Skip to content

FE-1648: add select option to filter - #9646

Merged
alex-e-leon merged 25 commits into
mainfrom
FE-1648-add-select-option-to-filter
Sep 11, 2026
Merged

FE-1648: add select option to filter#9646
alex-e-leon merged 25 commits into
mainfrom
FE-1648-add-select-option-to-filter

Conversation

@alex-e-leon

Copy link
Copy Markdown
Contributor

🌟 What is the purpose of this PR?

Adds a new "select" option to that allows adding single or multi-selects as filter input types. Also tidies up various ui select/select adjacent components. Specifically:

  • Add selection summary options to Select + better overflow handling inside the input for multiSelect
  • Improves keyboard handling for Selects, overriding ark-ui's default focus-trapping while selects are open so that users can tab out of selects, maps some other Select keyboard shortcuts to be closer to APG guidelines, and adds better keyboard handling inside Filter
  • Updates some Select + Input widths to correctly handle min/max + default widths at all container sizes/cases, including flex container variants.
  • Improve alignment of header/footer/search/custom items inside SelectableList UI
  • Simplified api pattern for searchable/clearable/etc updated across various components.

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

@cursor

cursor Bot commented Sep 10, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
Touches shared design-system form APIs (breaking prop shapes) and adds non-trivial Filter commit/keyboard and Select focus behavior that many product surfaces depend on.

Overview
Filter operators can now use single- and multi-select value inputs (including async item loaders and select-in-tuple operators), wired through a new naked Select segment with auto-open on operator pick, commit-on-close semantics, and left/right keyboard navigation across chip segments.

Select gains a naked variant for inline chrome-free triggers, overflow modes (scroll / truncate / summary) via a new OverflowRow primitive, searchable multi-select selection summary (count + select/clear all), and revised keyboard behavior (Tab through dropdown tabbables, Enter closes multi-select, Escape reverts session, no Left/Right changing value when closed).

Breaking-style API simplifications (minor @hashintel/ds-components): clearable / searchable on inputs and selects are now boolean | { callbacks… }; Banner.dismissible, Chip.removeable, and Filter.removeable use false | { on… } instead of nested enabled flags. SelectableList moves under util/ (public Item / ItemOrGroup re-export path changes); list padding tokens and header/footer/search alignment are retuned. Preset input/select widths flex more safely in narrow containers.

Call sites in hash-frontend supply-chain search and Petrinaut adopt clearable as a boolean.

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

@vercel

vercel Bot commented Sep 10, 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 10, 2026 7:18pm UTC
hashdotdesign-tokens Ready Ready Preview Sep 10, 2026 7:18pm UTC
petrinaut Ready Ready Preview Sep 10, 2026 7:18pm UTC
petrinaut-docs Ready Ready Preview Sep 10, 2026 7:18pm UTC

Request Review

@github-actions github-actions Bot added area/apps > hash* Affects HASH (a `hash-*` app) area/infra Relates to version control, CI, CD or IaC (area) area/libs Relates to first-party libraries/crates/packages (area) type/eng > frontend Owned by the @frontend team area/apps area/apps > hash.design Affects the `hash.design` design site (app) labels Sep 10, 2026
@alex-e-leon
alex-e-leon force-pushed the FE-1648-add-select-option-to-filter branch from dbdfe54 to 4661498 Compare September 10, 2026 16:16

@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.

Stale Bugbot comment from a previous run.

Comment thread libs/@hashintel/ds-components/src/components/Filter/filter.tsx Outdated

@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.

Stale Bugbot comment from a previous run.

Comment thread libs/@hashintel/ds-components/src/components/Select/select.tsx Outdated

@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 eed99bb. Configure here.

Comment thread libs/@hashintel/ds-components/src/components/Select/select.tsx Outdated
Comment thread libs/@hashintel/ds-components/src/components/Filter/filter.tsx

@lunelson lunelson left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks really nice 👍🏼

@alex-e-leon
alex-e-leon added this pull request to the merge queue Sep 11, 2026
Merged via the queue into main with commit f00f3ed Sep 11, 2026
63 checks passed
@alex-e-leon
alex-e-leon deleted the FE-1648-add-select-option-to-filter branch September 11, 2026 08:14
@hash-release hash-release Bot mentioned this pull request Sep 11, 2026
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/apps > hash* Affects HASH (a `hash-*` app) area/apps area/infra Relates to version control, CI, CD or IaC (area) 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.

2 participants