Repository navigation
chore: Adds internal style api v2 to multiselect - #5242
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The examples keep selection state in local useState rather than AppContext URL parameters, preventing selected states from being shared or directly targeted by integration tests.
1 open issue
What changed in this PR
Adds internal Style API v2 support to Multiselect, reusing existing Select, Input, Dropdown, and Token styling infrastructure without expanding the public props interface.
Changes:
- Adds trigger and inline-label styling, plus forwarding for filter, dropdown, and token styles.
- Applies token classes to both inline tokens and tokens below the trigger.
- Adds slot-forwarding unit tests and a styled demo page.
| File | Description |
|---|---|
src/token-group/internal.tsx |
Forwards style classes to each token. |
src/select/parts/trigger.tsx |
Passes token classes to inline tokens. |
src/multiselect/styles.scss |
Declares styling slots and forwarding documentation. |
src/multiselect/internal.tsx |
Defines and routes internal style classes. |
src/multiselect/index.tsx |
Passes internal styling through the component wrapper. |
src/multiselect/__tests__/style-api.test.tsx |
Tests class forwarding and DOM prop isolation. |
pages/multiselect/style-api-v2.scss |
Defines demo styles for slots and states. |
pages/multiselect/style-api-v2.page.tsx |
Demonstrates styled Multiselect variants. |
Review effort: Balanced
| inlineTokens, | ||
| ...rest | ||
| }: StyledMultiselectProps) { | ||
| const [selectedOptions, setSelectedOptions] = useState(initialSelectedOptions); |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5242 +/- ##
=======================================
Coverage 97.82% 97.82%
=======================================
Files 1006 1006
Lines 32608 32616 +8
Branches 12106 12114 +8
=======================================
+ Hits 31900 31908 +8
Misses 702 702
Partials 6 6 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
vvaliyev
marked this pull request as ready for review
November 3, 2026 16:30
vvaliyev
requested review from
NathanZlion and
pan-kot
and removed request for
a team
November 3, 2026 16:30
pan-kot
approved these changes
Nov 4, 2026
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Description
Adds the internal Style API v2 to Multiselect:
triggerandinlineLabel(the same elements and rows as Select),filterforwards to Input,dropdownforwards to Dropdown.container,tokenforwards to Token and applies to the tokens below the trigger and to the inline tokens (inlineTokens). Options have no slot;renderOptioncovers them.Changes outside the component:
select/parts/trigger.tsx: inline tokens receive the forwarded Token classes. Select passes none; unchanged there.token-group/internal.tsx: internal pass-through of the Token classes to each token.Token.root has no font rows, so a font set on the trigger does not reach the inline token text.
The style-docs snapshot and the VR registration of the dev page follow in one PR for all components.
Tracker section: P3d34KdbCd6o.
Related links, issue #, if available: n/a
How has this been tested?
Unit tests for every slot and forward, dev page
multiselect/style-api-v2, build and lint green.Review checklist
The following items are to be evaluated by the author(s) and the reviewer(s).
Correctness
CONTRIBUTING.md.CONTRIBUTING.md.Security
checkSafeUrlfunction.Testing
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.