Skip to content

FE-681: add multiselect to ds - #9505

Open
alex-e-leon wants to merge 8 commits into
mainfrom
FE-681-add-multiselect-to-ds
Open

FE-681: add multiselect to ds#9505
alex-e-leon wants to merge 8 commits into
mainfrom
FE-681-add-multiselect-to-ds

Conversation

@alex-e-leon

Copy link
Copy Markdown
Contributor

🌟 What is the purpose of this PR?

  • Adds multiple prop to select to enable multi select
  • Adds searcheable prop to select

Pre-Merge Checklist 🚀

🚢 Has this modified a publishable library?

This PR:

  • does not modify any publishable blocks or libraries, or modifications do not need publishing

📜 Does this require a change to the docs?

The changes in this PR:

  • are internal and do not require a docs change

@vercel

vercel Bot commented Sep 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
hash Ready Ready Preview Sep 3, 2026 2:09pm UTC
hashdotdesign-tokens Ready Ready Preview Sep 3, 2026 2:09pm UTC
petrinaut Ready Ready Preview Sep 3, 2026 2:09pm UTC
petrinaut-docs Ready Ready Preview Sep 3, 2026 2:09pm UTC

Request Review

@cursor

cursor Bot commented Sep 2, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
Broad API and behavior changes to a core form Select (value shapes, Ark multi mode, keyboard/search edge cases); existing single-select callers should be unaffected but regressions in focus, filtering, or selection are possible.

Overview
Adds multi-select to Select via multiple: true, with array value/onChange, optional maxItems, per-item MultiSelectItem options (checkbox/tick/highlight indicators, tones, suffixes, hover "Only" to isolate one value), and the dropdown staying open while selecting.

Adds optional searchable filtering (label text, multi-term) with onSearch, empty states, and SearchHighlightSync so keyboard navigation from the search field targets visible matches. Search UI is shared as SelectableListSearch, also adopted by SortMenu; list layout/CSS moves the search row when the popover flips upward, and SelectableList passes arrow/Enter through custom rows in Select mode.

Single-select behavior is preserved with stricter typings (SelectSingleProps vs SelectMultipleProps). Minor UX fixes: clear-button visibility for keyboard focus and multi-select list row spacing. MultiSelectItem is exported; Ladle stories cover multi-select and single-select searchable.

Reviewed by Cursor Bugbot for commit 88cfe85. Bugbot is set up for automated code reviews on this repo. Configure here.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 3c789fc. Configure here.

Comment thread libs/@hashintel/ds-components/src/components/Select/select.tsx
Comment thread libs/@hashintel/ds-components/src/components/Select/select.tsx Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/apps > hash.design Affects the `hash.design` design site (app) area/libs Relates to first-party libraries/crates/packages (area) type/eng > frontend Owned by the @frontend team

Development

Successfully merging this pull request may close these issues.

1 participant