<!-- These issues are used by core contributors to track the list of items that should be completed as part of creating a v9 component. More info can be found here: https://github.com/microsoft/fluentui/wiki/Component-Implementation-Guide --> 💡 When you create a PR for any of the checklist items, add a link to this Epic under the PR's **Related Issues** section. ## Preparation - [ ] [Open UI Research](https://github.com/microsoft/fluentui/wiki/Component-Implementation-Guide#open-ui-research) - [link to https://open-ui.org/] - [x] [Create react-\* package and component from template](https://github.com/microsoft/fluentui/wiki/Component-Implementation-Guide#component-package) - https://github.com/microsoft/fluentui/tree/master/packages/react-components/react-tag-picker-preview - [x] [Component Spec authored](https://github.com/microsoft/fluentui/wiki/Component-Implementation-Guide#component-spec) and [reviewed](https://github.com/microsoft/fluentui/wiki/Component-Implementation-Guide#spec-review) https://github.com/microsoft/fluentui/pull/31000 ## Implementation - [x] [Component implementation](https://github.com/microsoft/fluentui/wiki/Component-Implementation-Guide#implementation) - [x] Initial conformance and unit tests (validate basic functionality) https://github.com/microsoft/fluentui/pull/31004 - [ ] [Initial documentation](https://github.com/microsoft/fluentui/wiki/Component-Implementation-Guide#documentation) - [x] [Storybook stories](https://github.com/microsoft/fluentui/wiki/Component-Implementation-Guide#storybook-stories) - [x] README.md covering basic usage https://github.com/microsoft/fluentui/pull/31016 - [ ] MIGRATION.md guide (include v8 and v0) ## Validation - [ ] [Add tests](https://github.com/microsoft/fluentui/wiki/Component-Implementation-Guide#tests) - [x] Unit and conformance tests https://github.com/microsoft/fluentui/pull/31004 - [x] VR tests (https://github.com/microsoft/fluentui/pull/31219) - [x] Bundle size fixtures https://github.com/microsoft/fluentui/pull/31023 - [ ] Performance test scenario - [x] Accessibility behavior tests https://github.com/microsoft/fluentui/pull/31004 - [x] Create an issue and run [manual accessibility tests](https://github.com/microsoft/fluentui/wiki/Manual-Accessibility-Review-Checklist): https://github.com/microsoft/fluentui/issues/31037 - [x] [Validate with partners](https://github.com/microsoft/fluentui/wiki/Component-Implementation-Guide#validation) - [x] [Run a bug bash with other FUI crews](https://github.com/microsoft/fluentui/wiki/Component-Implementation-Guide#bug-bash) - [x] [Finalize documentation](https://github.com/microsoft/fluentui/wiki/Component-Implementation-Guide#finalize-documentation) - [x] Review and add any missing storybook stories - [ ] Finalize migration guide - [x] [Component released as stable](https://github.com/microsoft/fluentui/wiki/Component-Implementation-Guide#stable-release) from `@fluentui/react-components` https://github.com/microsoft/fluentui/pull/31321 - [x] Ensure exports are removed from `@fluentui/react-components/unstable` - [x] In package.json: Remove the alpha/beta tag from the version number in package.json - [x] In package.json: Change beachball's `disallowedChangeTypes` to `"major", "prerelease"` ## Dev TODOs - [x] Make combobox active descendant implementation not reliant on react state - [x] Remove usages of `ComboboxContext` that overlaps with `ListboxContext` - [x] Encapsulate slot logic for combobox and extract - [x] Recompose listbox so it's used as a standalone component in the picker - [x] Recompose TagGroup so that it works with the combobox selection state - [x] Different input types should be possible through composition instead of entirely different control (input/button) - [x] Recompose option to include desired entity layout - [x] Override combobox behaviour that keeps multiselect variants open - [x] Extract styles from react-combobox and reuse + override - [x] #30831 - [x] Figure out how to use the picker with [useComboboxFilter](https://github.com/microsoft/fluentui/blob/master/packages/react-components/react-combobox/src/hooks/useComboboxFilter.tsx) - [x] Position expand icon correctly when scrollbar appears - [x] Implement option grouping (https://github.com/microsoft/fluentui/pull/30934) - [x] Implement size prop - most likely need to update react-tags package to add size customization (https://github.com/microsoft/fluentui/pull/30742) - [x] Decide on API or code sameple to align popver to editable area only - [x] Recompose `Tag` component to include defaults (i.e. always dismissble) (https://github.com/microsoft/fluentui/pull/30800) - [x] Address TODOs in code - [x] Design polish - [x] Implement secondary action as unstable feature (https://github.com/microsoft/fluentui/pull/30829) - [x] Ensures `disabled` state works properly between all controllers (https://github.com/microsoft/fluentui/pull/30822) - [x] add `freeform` support https://github.com/microsoft/fluentui/pull/30947
💡 When you create a PR for any of the checklist items, add a link to this Epic under the PR's Related Issues section.
Preparation
Implementation
Validation
@fluentui/react-componentschore(react-tag-picker): release stable version #31321@fluentui/react-components/unstabledisallowedChangeTypesto"major", "prerelease"Dev TODOs
ComboboxContextthat overlaps withListboxContextTagcomponent to include defaults (i.e. always dismissble) (feat(react-tags): adds appearance and dismissible to TagGroupContext #30800)disabledstate works properly between all controllers (feat(react-tag-picker-preview): adds disabled state #30822)freeformsupport chore(react-combobox): movefreeformanddisabledto ComboboxBase types #30947