Skip to content

feat(select): multiselect tag handling improvements, story updates, visual fixes #587#613

Open
airikej wants to merge 4 commits intorcfrom
fix/587-select-multiselect-tag-handling-improvements
Open

feat(select): multiselect tag handling improvements, story updates, visual fixes #587#613
airikej wants to merge 4 commits intorcfrom
fix/587-select-multiselect-tag-handling-improvements

Conversation

@airikej
Copy link
Copy Markdown
Contributor

@airikej airikej commented Apr 28, 2026

Summary by CodeRabbit

  • New Features

    • “Select all” checkbox for multi-select and per-group toggles; dedicated single-value renderer for customized single-option display
    • Grid-mode dropdown for swatch-style options
  • Behavior

    • Multi-row vs single-row tag measurement with overflow “+N” counter and keyboard/mouse interaction modes
  • Style

    • Menu, option and tag styling refinements (keyboard focus, grid visuals, overflow)
  • Documentation

    • Updated stories demonstrating grid, group selection, renderValue, and tag layouts
  • Tests

    • Expanded tests for bulk selection, tag removal/activation, and overflow measurement
  • Labels

    • Added localized label for “Select all” toggle

@airikej airikej linked an issue Apr 28, 2026 that may be closed by this pull request
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 28, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: c66d89cb-afe8-49af-8d3e-d3d46ffe3312

📥 Commits

Reviewing files that changed from the base of the PR and between 2cc1036 and ec070d8.

📒 Files selected for processing (3)
  • src/community/components/form/select/select.stories.tsx
  • src/tedi/components/form/select/components/select-group-heading.tsx
  • src/tedi/components/form/select/components/select-value-container.tsx

📝 Walkthrough

Walkthrough

Adds bulk-selection utilities and UI (global and per-group), single-row multiselect tag measurement/overflow with contextual hiding, keyboard-mode focus behavior, new single-value/tag helpers and contexts, expanded stories/tests, and related styling updates.

Changes

Cohort / File(s) Summary
Bulk selection helpers & tests
src/tedi/components/form/select/components/select-bulk-helpers.ts, src/tedi/components/form/select/components/select-bulk-helpers.spec.ts
New helpers to detect grouped options, flatten/get enabled options, compute all/indeterminate selection state, and toggle bulk selection; comprehensive unit tests covering grouping, enabled extraction, selection-state logic, and toggle behaviors.
Group context, heading & provider
src/tedi/components/form/select/components/select-group-bulk-context.ts, src/tedi/components/form/select/components/select-group.tsx, src/tedi/components/form/select/components/select-group-heading.tsx
New SelectGroupBulkContext API and provider in SelectGroup; group heading conditionally renders a bulk-selection checkbox when selectableGroups and multi-mode are enabled, using bulk helpers to compute and apply changes.
Menu list & select-all UI
src/tedi/components/form/select/components/select-menu-list.tsx
MenuList reads labels/props, computes enabled options and bulk state, renders a "Select all" row for multi-select with showSelectAll, and toggles via bulk helpers; also wires keyboard-mode mouse/keyboard interactions and class modifiers.
Tag measurement, context & multi-value
src/tedi/components/form/select/components/select-tags-context.ts, src/tedi/components/form/select/components/select-value-container.tsx, src/tedi/components/form/select/components/select-multi-value.tsx, src/tedi/components/form/select/components/select-multi-value.spec.ts
Adds SelectTagsContext (isSingleRow, visibleCount); SelectValueContainer measures tag widths, computes visible/hidden counts, reorders children to place overflow counter, provides context; MultiValue uses new createMultiValueCloseHandler and hides tags beyond visibleCount; tests added for close handler behavior and overflow measurement.
Single-value renderer & single-option radio behavior
src/tedi/components/form/select/components/select-single-value.tsx, src/tedi/components/form/select/components/select-single-option.tsx
New SelectSingleValue component with optional renderValue support; single-option Radio now receives onChange so visual checked state tracks react-select selection.
Select root & API surface
src/tedi/components/form/select/select.tsx
Registers SelectSingleValue, adds props (showSelectAll, selectableGroups, dropdownType, renderValue), introduces keyboardMode state and exitKeyboardMode callback, forwards flags to subcomponents, and enriches TypeScript docs.
Styling
src/tedi/components/form/select/select.module.scss
Grid menu layout, keyboard-only focus-ring changes, replace overflow gradient with overflow:hidden for row tags, reorder input to end, add classes for overflow tags, select-all row, group-heading toggle, and grid swatch styles.
Stories & tests
src/tedi/components/form/select/select.stories.tsx, src/tedi/components/form/select/select.spec.tsx, src/community/components/form/select/select.stories.tsx
Storybook reorganized with new Type/ValueType/Examples stories and removed legacy stories; tests extended for bulk selection, keyboard-mode, tag overflow measurement, grid dropdown, rendering and interaction coverage.
Localization
src/tedi/components/label-provider/labels-map.ts
Adds select.select-all label translations for the bulk select toggle.

Sequence Diagrams

sequenceDiagram
    participant User
    participant SelectMenuList
    participant BulkHelpers
    participant SelectRoot

    User->>SelectMenuList: Click "Select all" checkbox
    SelectMenuList->>BulkHelpers: toggleBulkSelection(currentValue, enabledOptions)
    BulkHelpers-->>SelectMenuList: newSelection
    SelectMenuList->>SelectRoot: props.setValue(newSelection, "select-option" or "deselect-option")
    SelectRoot-->>User: UI updates with new selection
Loading
sequenceDiagram
    participant Browser
    participant SelectValueContainer
    participant DOM
    participant SelectTagsContext
    participant SelectMultiValue

    Browser->>SelectValueContainer: Mount or selection changes
    SelectValueContainer->>DOM: render tags + ref
    SelectValueContainer->>DOM: measure child widths (layout effect / ResizeObserver)
    DOM-->>SelectValueContainer: measured widths
    SelectValueContainer->>SelectValueContainer: compute visibleCount & hiddenCount
    SelectValueContainer->>SelectTagsContext: provide {isSingleRow, visibleCount}
    SelectMultiValue->>SelectTagsContext: useSelectTagsContext()
    SelectMultiValue-->>Browser: render or hide tag based on index vs visibleCount
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related issues

Suggested reviewers

  • mart-sessman
  • ly-tempel-bitweb
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: it highlights multiselect tag handling improvements (new SelectValueContainer with overflow, SelectMultiValue with visibility constraints), visual fixes (SCSS updates for grid mode, tag layout), and story updates (new comprehensive stories and deprecated component marking).
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/587-select-multiselect-tag-handling-improvements

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 0/1 reviews remaining, refill in 60 minutes.

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 28, 2026

Codecov Report

❌ Patch coverage is 96.61017% with 6 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
.../form/select/components/select-value-container.tsx 91.04% 6 Missing ⚠️

📢 Thoughts on this report? Let us know!

@airikej airikej changed the title fix(select): multiselect tag handling improvements, story updates, visual fixes #587 feat(select): multiselect tag handling improvements, story updates, visual fixes #587 Apr 28, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/tedi/components/form/select/components/select-multi-value.tsx (1)

40-63: ⚠️ Potential issue | 🟡 Minor

Missing displayName on exported component.

Per coding guidelines, all exported components must have a displayName property set.

Proposed fix
 export const SelectMultiValue = ({
   isTagRemovable,
   children,
   removeProps,
   ...props
 }: MultiValueType): JSX.Element | null => {
   // ... component body
 };
+
+SelectMultiValue.displayName = 'SelectMultiValue';
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/tedi/components/form/select/components/select-multi-value.tsx` around
lines 40 - 63, The exported React component SelectMultiValue is missing a
displayName; add a static displayName property to the component after its
declaration (e.g., set SelectMultiValue.displayName = 'SelectMultiValue') so the
exported symbol SelectMultiValue has a readable displayName for debugging and
tooling.
🧹 Nitpick comments (2)
src/tedi/components/form/select/components/select-group-heading.tsx (1)

15-62: Set a displayName for this exported component.

This component is exported from src/tedi/components, so it should declare displayName consistently with the TEDI component conventions.

Suggested change
 export const SelectGroupHeading = ({ optionGroupHeadingText, ...props }: GroupHeadingType): ReactElement => {
   const textSettings = props.data.text || optionGroupHeadingText;
   ...
 };
+
+SelectGroupHeading.displayName = 'SelectGroupHeading';
As per coding guidelines, "All exported components must have a `displayName` property set".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/tedi/components/form/select/components/select-group-heading.tsx` around
lines 15 - 62, The exported React component SelectGroupHeading is missing a
displayName; add a displayName assignment after the component declaration (e.g.,
set SelectGroupHeading.displayName = 'SelectGroupHeading' or the TEDI naming
convention used elsewhere) so the exported symbol has a declared displayName
property consistent with other TEDI components; ensure this is added in the same
file immediately after the SelectGroupHeading declaration.
src/tedi/components/form/select/select.spec.tsx (1)

568-616: Consider extracting SelectMultiValueRemove tests to a dedicated spec file.

These unit tests for SelectMultiValueRemove are nested inside the Select describe block, but they test the component in isolation. Moving them to select-multi-value-remove.spec.tsx would improve test organization and align with the project's convention of placing tests in component-name.spec.tsx files.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/tedi/components/form/select/select.spec.tsx` around lines 568 - 616,
Extract the SelectMultiValueRemove block into its own spec file: create
select-multi-value-remove.spec.tsx and move the entire
describe('SelectMultiValueRemove', ...) suite (including the helper renderRemove
and all its tests) out of the larger Select spec; ensure the new file imports
React, render, fireEvent, jest utilities, and the SelectMultiValueRemove
component, and remove the duplicated tests from the original select.spec.tsx so
only the isolated suite remains in the new file (keep the helper name
renderRemove and test assertions unchanged).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/tedi/components/form/select/components/select-bulk-helpers.ts`:
- Around line 29-35: getGroupEnabledOptions currently looks up the group by
label which breaks when multiple GroupBase<ISelectOption> share the same label;
change the helper (getGroupEnabledOptions) to accept the group object or its
options array directly (e.g., signature accepting GroupBase<ISelectOption> or
ISelectOption[] instead of groupLabel) and filter that array for non-disabled
items, then update callers to pass the current group (or group.options) rather
than the rendered label; keep the isGroupedOptions check only where callers
still need to guard for grouped vs flat options.

In `@src/tedi/components/form/select/components/select-group-heading.tsx`:
- Around line 42-55: The wrapper div and the Checkbox both call handleToggle,
causing duplicate toggles because clicks bubble; to fix, stop the click/change
event from bubbling when the Checkbox handles the toggle: change the Checkbox
onChange prop to a handler that calls event.stopPropagation() then invokes
handleToggle (e.g., onChange={(e) => { e.stopPropagation(); handleToggle(); }}),
ensuring the wrapper's onClick can remain for clicks outside the actual input
while checkbox activations only trigger one toggle; reference Checkbox and
handleToggle in your change.
- Around line 19-37: Replace direct usage of selectProps.value and
selectProps.onChange with react-select helpers: read current selection with
props.getValue() and update with props.setValue(...) inside handleToggle (use
same bulk-selection logic: getGroupEnabledOptions, toggleBulkSelection,
areAllSelected, isIndeterminate). Remove the wrapper element's onClick so only
the Checkbox's onChange calls handleToggle to avoid double firing. Ensure
handleToggle uses props.setValue to apply the new value and uses
props.getValue() to compute selected; keep references to selectableGroups,
isMulti and options as needed. Finally, add a displayName property to the
exported component to match the codebase convention.

In `@src/tedi/components/form/select/components/select-menu-list.tsx`:
- Around line 14-74: Add a displayName to the exported React component
SelectMenuList to satisfy the coding guideline; locate the export const
SelectMenuList declaration and, immediately after the component definition, set
its displayName property (e.g., SelectMenuList.displayName = 'SelectMenuList')
so the component has a readable name in devtools and warnings.
- Around line 48-65: The wrapper div and the Checkbox both call handleSelectAll
causing a double-toggle; fix by preventing duplicate invocation: either remove
the Checkbox prop onChange={handleSelectAll} so only the div's onClick invokes
handleSelectAll, or keep the Checkbox onChange and modify its handler to stop
propagation (e.g., call event.stopPropagation() before invoking handleSelectAll)
so the div's onClick won't also run; update references around the JSX containing
the div with class tedi-select__select-all, the Checkbox component and the
handleSelectAll function accordingly.

In `@src/tedi/components/form/select/components/select-value-container.tsx`:
- Around line 17-110: The exported React component SelectValueContainer is
missing a displayName; add a displayName property after its declaration like
SelectValueContainer.displayName = 'SelectValueContainer' so the component
follows the guideline and shows a readable name in React DevTools and error
messages; place this statement directly below the SelectValueContainer function
export in the same file.
- Around line 92-97: Exported component SelectValueContainer is missing a
displayName; add SelectValueContainer.displayName = 'SelectValueContainer' after
the component definition/export to satisfy the coding guideline. Locate the
SelectValueContainer component (references: SelectValueContainer, containerRef,
innerProps) and append the displayName assignment before exporting or
immediately after its declaration.

---

Outside diff comments:
In `@src/tedi/components/form/select/components/select-multi-value.tsx`:
- Around line 40-63: The exported React component SelectMultiValue is missing a
displayName; add a static displayName property to the component after its
declaration (e.g., set SelectMultiValue.displayName = 'SelectMultiValue') so the
exported symbol SelectMultiValue has a readable displayName for debugging and
tooling.

---

Nitpick comments:
In `@src/tedi/components/form/select/components/select-group-heading.tsx`:
- Around line 15-62: The exported React component SelectGroupHeading is missing
a displayName; add a displayName assignment after the component declaration
(e.g., set SelectGroupHeading.displayName = 'SelectGroupHeading' or the TEDI
naming convention used elsewhere) so the exported symbol has a declared
displayName property consistent with other TEDI components; ensure this is added
in the same file immediately after the SelectGroupHeading declaration.

In `@src/tedi/components/form/select/select.spec.tsx`:
- Around line 568-616: Extract the SelectMultiValueRemove block into its own
spec file: create select-multi-value-remove.spec.tsx and move the entire
describe('SelectMultiValueRemove', ...) suite (including the helper renderRemove
and all its tests) out of the larger Select spec; ensure the new file imports
React, render, fireEvent, jest utilities, and the SelectMultiValueRemove
component, and remove the duplicated tests from the original select.spec.tsx so
only the isolated suite remains in the new file (keep the helper name
renderRemove and test assertions unchanged).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 1e0beb85-d491-413a-b7ea-3ab609e97161

📥 Commits

Reviewing files that changed from the base of the PR and between 1329251 and 4125065.

📒 Files selected for processing (14)
  • src/tedi/components/form/select/components/select-bulk-helpers.spec.ts
  • src/tedi/components/form/select/components/select-bulk-helpers.ts
  • src/tedi/components/form/select/components/select-group-heading.tsx
  • src/tedi/components/form/select/components/select-menu-list.tsx
  • src/tedi/components/form/select/components/select-multi-value.spec.ts
  • src/tedi/components/form/select/components/select-multi-value.tsx
  • src/tedi/components/form/select/components/select-single-value.tsx
  • src/tedi/components/form/select/components/select-tags-context.ts
  • src/tedi/components/form/select/components/select-value-container.tsx
  • src/tedi/components/form/select/select.module.scss
  • src/tedi/components/form/select/select.spec.tsx
  • src/tedi/components/form/select/select.stories.tsx
  • src/tedi/components/form/select/select.tsx
  • src/tedi/providers/label-provider/labels-map.ts

Comment thread src/tedi/components/form/select/components/select-bulk-helpers.ts Outdated
Comment thread src/tedi/components/form/select/components/select-group-heading.tsx Outdated
Comment thread src/tedi/components/form/select/components/select-group-heading.tsx Outdated
Comment thread src/tedi/components/form/select/components/select-menu-list.tsx
Comment thread src/tedi/components/form/select/components/select-menu-list.tsx
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
src/tedi/components/form/select/components/select-value-container.tsx (1)

55-57: Consider deriving the class selector from props.selectProps.classNamePrefix for robustness.

Currently, the selector .select__input-container at lines 55-57 assumes classNamePrefix is "select". While this is hardcoded in the Select component today, deriving the selector from props.selectProps.classNamePrefix would make the code resilient to future changes. Since selectProps is already available via the component's props, this is a straightforward defensive improvement.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/tedi/components/form/select/components/select-value-container.tsx` around
lines 55 - 57, The code currently queries '.select__input-container' assuming
classNamePrefix "select"; update the selector construction to derive the prefix
from props.selectProps.classNamePrefix (falling back to "select" if undefined)
before calling container.querySelector, and use that computed prefix to build
the input container selector (the code around inputEl / inputMin / available in
select-value-container.tsx). Ensure you still parse computed minWidth and
compute available the same way after changing the selector.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/tedi/components/form/select/components/select-group-heading.tsx`:
- Around line 55-57: The generated checkbox id currently concatenates
props.selectProps.instanceId with props.data.label which can collide when labels
repeat; change the id generation in the SelectGroupHeading component to use a
stable unique group identifier (e.g., props.data.id or props.data.value)
combined with props.selectProps.instanceId (and as a fallback use the group
index or a short generated uid) instead of props.data.label, and ensure the
matching label's htmlFor/for attribute uses that same id so the input/label
association remains correct.

---

Nitpick comments:
In `@src/tedi/components/form/select/components/select-value-container.tsx`:
- Around line 55-57: The code currently queries '.select__input-container'
assuming classNamePrefix "select"; update the selector construction to derive
the prefix from props.selectProps.classNamePrefix (falling back to "select" if
undefined) before calling container.querySelector, and use that computed prefix
to build the input container selector (the code around inputEl / inputMin /
available in select-value-container.tsx). Ensure you still parse computed
minWidth and compute available the same way after changing the selector.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3bcc1204-21f4-4460-aa63-a60c854d0a1e

📥 Commits

Reviewing files that changed from the base of the PR and between 4125065 and 2cc1036.

📒 Files selected for processing (9)
  • src/tedi/components/form/select/components/select-bulk-helpers.spec.ts
  • src/tedi/components/form/select/components/select-bulk-helpers.ts
  • src/tedi/components/form/select/components/select-group-bulk-context.ts
  • src/tedi/components/form/select/components/select-group-heading.tsx
  • src/tedi/components/form/select/components/select-group.tsx
  • src/tedi/components/form/select/components/select-menu-list.tsx
  • src/tedi/components/form/select/components/select-single-option.tsx
  • src/tedi/components/form/select/components/select-value-container.tsx
  • src/tedi/components/form/select/select.module.scss
✅ Files skipped from review due to trivial changes (1)
  • src/tedi/components/form/select/components/select-bulk-helpers.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/tedi/components/form/select/select.module.scss

Comment thread src/tedi/components/form/select/components/select-group-heading.tsx Outdated
Copy link
Copy Markdown

@ly-tempel-bitweb ly-tempel-bitweb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please check the dark mode as well.

export const Examples: Story = {
render: () => (
<VerticalSpacing>
<Select
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Second option is always focused when opening select and the focus ring is only around checkbox when opening it for the first time. Shouldn't the focus be on the first option when nothing is selected and otherwise on the first selected item?
Image
  1. "Select all" becomes unselected when all options are selected.
Screen.Recording.2026-05-05.at.12.59.18.mov
  1. It's not possible to move to "Select all" option with arrows.
Screen.Recording.2026-05-05.at.13.01.10.mov

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This focus being visible only after the second opening seems to be more general for Select component.

isClearable={false}
isSearchable={false}
/>
<Select
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In Angular, for Searchable select "Enter" has to be used to choose an option, with "Space" it writes to the input.
In React, it's possible to use "Space" for selecting when input is empty or predefined value is selected, otherwise it writes to the input as well.
I don't know, which behavior is correct, though. 😄

/>
<Select
id="examples-grouped-selectable"
label="Grouped multiselect with selectable groups"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Selectable groups are not accessible with arrows.

renderOption={renderHorizontalMetaOption}
isClearable={false}
/>
<Select
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In Angular, selected option doesn't have blue background.

React
Image

Angular
Image

showRadioButtons
isClearable={false}
/>
<Select
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it intentional that this example doesn't have checkboxes unlike Angular example?

placeholder="Text value"
isClearable={false}
/>
<Select
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this intended behavior?

Screen.Recording.2026-05-05.at.13.18.10.mov

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, in React it's possible to delete values with Backspace, but in Angular it's not.

},
};

export const AsyncSelect: Story = {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the purpose of this?

),
};

export const States: Story = {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not directly related to this PR, but I would move the inputs below their title on mobile. Same for the Sizes story.
Image

isTagRemovable
isClearable
/>
<Select
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The first selected options aren't always fully visible.

Screen.Recording.2026-05-05.at.13.41.49.mov

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Select]: Multiselect tag handling improvements

2 participants