-
Notifications
You must be signed in to change notification settings - Fork 10
refactor(selector): not hiding the first option
HTML element anymore
#4020
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
it's inconsistent in between browsers and we should only use it for placeholders or floating labels
🔭🐙🐈 Test this branch here: https://db-ux-design-system.github.io/core-web/review/4019-dbselect-dropdown-checkmark-on-first-element |
Co-authored-by: Copilot <[email protected]>
option
anymore
option
anymoreoption
anymore
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…ttps://github.com/db-ux-design-system/core-web into 4019-dbselect-dropdown-checkmark-on-first-element
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
option
anymoreoption
HTML element anymore
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR refactors the select component to improve browser consistency and form behavior by replacing the hidden placeholder option with a visible CSS-classed option. The changes address Safari-specific display issues and ensure the select component behaves like standard HTML select elements.
Key Changes:
- Replace
hidden
attribute with.placeholder
CSS class for the first option element - Update CSS selectors to target
.placeholder
class instead of[hidden]
attribute - Add placeholder props to showcase examples and tests
Reviewed Changes
Copilot reviewed 18 out of 22 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
packages/components/src/components/select/select.lite.tsx | Core component logic updated to use CSS class instead of hidden attribute for placeholder option |
packages/components/src/styles/internal/_form-components.scss | Updated CSS selector from [hidden] to .placeholder class |
packages/components/src/components/select/select.scss | Updated CSS selector for placeholder option styling |
showcases/shared/select.json | Added placeholder properties to all showcase examples |
showcases/vue-showcase/src/components/select/Select.vue | Fixed placeholder prop binding from exampleName to exampleProps?.placeholder |
showcases/react-showcase/src/components/select/index.tsx | Updated prop name from children to placeholder |
packages/components/src/components/select/index.html | Updated HTML examples to use CSS class instead of hidden attribute |
packages/components/src/components/select/select.spec.tsx | Added value prop to test component |
Multiple snapshot files | Updated accessibility snapshots to reflect new option structure |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
<span id={state._placeholderId}> | ||
{props.placeholder ?? props.label} | ||
</span> | ||
<Show when={props.placeholder !== ''}> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The condition props.placeholder !== ''
will show the placeholder span even when props.placeholder
is undefined
or null
. This should check for truthy values: <Show when={props.placeholder}>
to properly handle all falsy cases.
<Show when={props.placeholder !== ''}> | |
<Show when={props.placeholder}> |
Copilot uses AI. Check for mistakes.
Proposed changes
option[hidden]
)select
-HTML-elements, as those would actually mark the firstoption
as checked as well, whereas this is actually the selected one (gets transmitted in form submits etc.)placeholder
, there should be anoption
that the users could set to "unselect" all selectable options, or in other words "reset" any other selection. We wouldn't provide this possibility at the moment anyhow.Resolves #4019
Types of changes
Further comments