Skip to content

feat(react-headless-components-preview): add TagPicker#36285

Open
mainframev wants to merge 10 commits into
microsoft:masterfrom
mainframev:feat/create-headless-tag-picker
Open

feat(react-headless-components-preview): add TagPicker#36285
mainframev wants to merge 10 commits into
microsoft:masterfrom
mainframev:feat/create-headless-tag-picker

Conversation

@mainframev

@mainframev mainframev commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Adds a headless TagPicker to @fluentui/react-headless-components-preview - a composite, style-free picker that lets users select tags from a filterable list of options

  • Reuses base hooks, not styled components - wraps useTagPickerBase_unstable, useTagPickerControlBase_unstable, useTagPickerInputBase_unstable,
    useTagPickerButtonBase_unstable, useTagPickerContext_unstable (from @fluentui/react-tag-picker), useTagGroupBase_unstable (@fluentui/react-tags), and the headless
    Dropdown's useOption/useListboxSlot (over @fluentui/react-combobox).
  • Renders are re-exported from @fluentui/react-tag-picker where the only difference from v9 is the intentionally-stripped size/appearance styling props (TagPickerControl, TagPickerInput, TagPickerGroup); TagPickerList/TagPickerOption keep thin local renders because their slot component types differ structurally from
    v9.
  • Navigation - options use the v9 useActiveDescendant model (focus stays on the trigger; listbox has no roving tabindex), consistent with the headless Combobox/Dropdown. Selected tags use the native WICG focusgroup attribute in place of Tabster's useArrowNavigationGroup.

@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown

📊 Bundle size report

Package & Exports Baseline (minified/GZIP) PR Change
react-headless-components-preview
react-headless-components-preview: entire library
247.572 kB
71.442 kB
263.97 kB
76.327 kB
16.398 kB
4.885 kB
Unchanged fixtures
Package & Exports Size (minified/GZIP)
global-context
createContext
510 B
326 B
global-context
createContextSelector
531 B
334 B
keyboard-key
keyboard-key package
3.927 kB
1.99 kB
keyboard-keys
Multiple keyCodes
50 B
70 B
keyboard-keys
Multiple keys
87 B
94 B
keyboard-keys
Single key
44 B
64 B
keyboard-keys
Single keyCode
39 B
59 B
priority-overflow
createOverflowManager
5.357 kB
2.168 kB
react
ActivityItem
71.325 kB
23.383 kB
react
Announced
38.608 kB
13.311 kB
react
Autofill
15.557 kB
4.803 kB
react
Breadcrumb
200.621 kB
59.689 kB
react
Button
194.205 kB
55.965 kB
react
ButtonGrid
179.086 kB
53.992 kB
react
Calendar
121.135 kB
36.876 kB
react
Callout
84.298 kB
27.615 kB
react
Check
53.313 kB
17.864 kB
react
Checkbox
60.067 kB
19.914 kB
react
ChoiceGroup
65.559 kB
21.501 kB
react
ChoiceGroupOption
58.872 kB
19.392 kB
react
Coachmark
92.671 kB
29.35 kB
react
Color
7.94 kB
3.172 kB
react
ColorPicker
134.933 kB
42.178 kB
react
ComboBox
250.434 kB
71.587 kB
react
CommandBar
201.666 kB
59.483 kB
react
ContextualMenu
154.116 kB
47.626 kB
react
DatePicker
183.062 kB
55.957 kB
react
DateTimeUtilities
5.447 kB
1.917 kB
react
DetailsList
229.85 kB
65.939 kB
react
Dialog
209.916 kB
62.437 kB
react
Divider
19.734 kB
6.864 kB
react
DocumentCard
215.655 kB
63.78 kB
react
DragDrop
8.546 kB
2.789 kB
react
DraggableZone
34.424 kB
11.523 kB
react
Dropdown
232.921 kB
68.065 kB
react
ExtendedPicker
96.928 kB
27.882 kB
react
Fabric
41.848 kB
14.38 kB
react
Facepile
209.216 kB
62.497 kB
react
FloatingPicker
240.678 kB
68.317 kB
react
FocusTrapZone
17.089 kB
5.915 kB
react
FocusZone
55.233 kB
17.473 kB
react
Grid
179.086 kB
53.992 kB
react
GroupedList
135.055 kB
40.734 kB
react
GroupedListV2
122.679 kB
37.825 kB
react
HoverCard
96.759 kB
30.724 kB
react
Icon
52.001 kB
17.299 kB
react
Icons
66.473 kB
24.407 kB
react
Image
47.025 kB
15.709 kB
react
Keytip
81.328 kB
26.694 kB
react
KeytipData
14.177 kB
4.622 kB
react
KeytipLayer
103.068 kB
31.92 kB
react
Keytips
105.842 kB
32.946 kB
react
Label
38.468 kB
13.275 kB
react
Layer
48.188 kB
16.394 kB
react
Link
39.789 kB
13.695 kB
react
List
39.49 kB
12.456 kB
react
MarqueeSelection
74.606 kB
22.455 kB
react
MessageBar
189.234 kB
56.397 kB
react
Modal
93.687 kB
30.243 kB
react
Nav
186.684 kB
55.792 kB
react
OverflowSet
33.478 kB
11.281 kB
react
Overlay
41.017 kB
14.114 kB
react
Panel
200.142 kB
59.404 kB
react
Persona
114.568 kB
36.504 kB
react
PersonaCoin
114.568 kB
36.504 kB
react
PersonaPresence
58.183 kB
19.409 kB
react
Pickers
297.674 kB
83.136 kB
react
Pivot
187.561 kB
56.552 kB
react
Popup
12.427 kB
4.226 kB
react
Positioning
22.95 kB
7.688 kB
react
PositioningContainer
73.521 kB
23.729 kB
react
ProgressIndicator
39.607 kB
13.567 kB
react
Rating
82.165 kB
26.148 kB
react
Fluent UI React (entire library)
1.017 MB
283.522 kB
react
ResizeGroup
13.467 kB
4.42 kB
react
ResponsiveMode
8.271 kB
3.006 kB
react
ScrollablePane
55.644 kB
17.752 kB
react
SearchBox
187.474 kB
55.981 kB
react
SelectableOption
927 B
479 B
react
SelectedItemsList
231.161 kB
67.276 kB
react
Selection
42.561 kB
12.301 kB
react
Separator
35.503 kB
12.157 kB
react
Shimmer
49.352 kB
16.289 kB
react
ShimmeredDetailsList
240.582 kB
68.666 kB
react
Slider
57.732 kB
19.228 kB
react
SpinButton
191.118 kB
57.07 kB
react
Spinner
41.895 kB
14.494 kB
react
Stack
42.178 kB
14.397 kB
react
Sticky
32.714 kB
10.513 kB
react
Styling
46.189 kB
15.171 kB
react
SwatchColorPicker
189.439 kB
57.534 kB
react
TeachingBubble
204.45 kB
60.389 kB
react
Text
37.032 kB
12.806 kB
react
TextField
80.859 kB
25.345 kB
react
Theme
43.634 kB
14.2 kB
react
ThemeGenerator
12.525 kB
4.15 kB
react
TimePicker
240.248 kB
69.384 kB
react
Toggle
46.322 kB
15.998 kB
react
Tooltip
87.089 kB
28.186 kB
react
Utilities
82.965 kB
25.199 kB
react
Viewport
24.019 kB
7.646 kB
react
WeeklyDayPicker
101.383 kB
31.705 kB
react
WindowProvider
1.262 kB
614 B
react-accordion
Accordion (including children components)
90.913 kB
28.698 kB
react-aria
ARIA - useARIAButtonProps
1.35 kB
631 B
react-aria
ARIA - AriaLiveAnnouncer
3.265 kB
1.499 kB
react-avatar
Avatar
47.22 kB
14.855 kB
react-avatar
AvatarGroup
16.254 kB
6.502 kB
react-avatar
AvatarGroupItem
60.339 kB
18.758 kB
react-badge
Badge
22.977 kB
7.352 kB
react-badge
CounterBadge
23.696 kB
7.61 kB
react-badge
PresenceBadge
22.944 kB
8.292 kB
react-breadcrumb
@fluentui/react-breadcrumb - package
103.012 kB
28.827 kB
react-button
Button
32.675 kB
8.499 kB
react-button
CompoundButton
39.553 kB
9.853 kB
react-button
MenuButton
37.621 kB
9.89 kB
react-button
SplitButton
46.572 kB
11.521 kB
react-button
ToggleButton
52.331 kB
10.633 kB
react-calendar-compat
Calendar Compat
142.184 kB
40.129 kB
react-card
Card - All
92.93 kB
26.936 kB
react-card
Card
85.55 kB
25.023 kB
react-card
CardFooter
11.515 kB
4.599 kB
react-card
CardHeader
14.044 kB
5.422 kB
react-card
CardPreview
11.592 kB
4.711 kB
react-charting
AreaChart
305 kB
95.841 kB
react-charting
ChartHoverCard
37.132 kB
12.67 kB
react-charting
DeclarativeChart
680.305 kB
193.789 kB
react-charting
DonutChart
204.258 kB
64.249 kB
react-charting
GanttChart
287.068 kB
90.746 kB
react-charting
GaugeChart
197.573 kB
61.694 kB
react-charting
GroupedVerticalBarChart
296.869 kB
93.081 kB
react-charting
HeatMapChart
287.765 kB
90.488 kB
react-charting
HorizontalBarChart
127.317 kB
40.052 kB
react-charting
HorizontalBarChartWithAxis
298.241 kB
93.153 kB
react-charting
Legends
151.879 kB
46.746 kB
react-charting
LineChart
334.566 kB
102.869 kB
react-charting
MultiStackedBarChart
182.412 kB
55.774 kB
react-charting
PieChart
134.901 kB
42.679 kB
react-charting
PolarChart
235.543 kB
74.649 kB
react-charting
SankeyChart
158.418 kB
49.581 kB
react-charting
ScatterChart
291.042 kB
92.116 kB
react-charting
Sparkline
87.986 kB
29.798 kB
react-charting
StackedBarChart
175.987 kB
53.348 kB
react-charting
TreeChart
85.606 kB
27.025 kB
react-charting
VerticalBarChart
307.931 kB
95.221 kB
react-charting
VerticalStackedBarChart
305.041 kB
94.905 kB
react-charts
AreaChart
404.329 kB
126.469 kB
react-charts
DeclarativeChart
754.978 kB
221.556 kB
react-charts
DonutChart
315.1 kB
97.161 kB
react-charts
FunnelChart
306.341 kB
93.907 kB
react-charts
GanttChart
387.386 kB
120.871 kB
react-charts
GaugeChart
314.433 kB
96.548 kB
react-charts
GroupedVerticalBarChart
395.54 kB
123.695 kB
react-charts
HeatMapChart
389.494 kB
121.928 kB
react-charts
HorizontalBarChart
294.866 kB
89.744 kB
react-charts
HorizontalBarChartWithAxis
63 B
83 B
react-charts
Legends
234.402 kB
70.454 kB
react-charts
LineChart
415.68 kB
129.602 kB
react-charts
PolarChart
343.353 kB
107.405 kB
react-charts
SankeyChart
212.023 kB
68.066 kB
react-charts
ScatterChart
395.006 kB
123.651 kB
react-charts
Sparkline
80.888 kB
26.864 kB
react-charts
VerticalBarChart
431.938 kB
128.619 kB
react-charts
VerticalStackedBarChart
401.558 kB
125.102 kB
react-checkbox
Checkbox
29.609 kB
10.527 kB
react-color-picker
ColorArea
43.944 kB
15.811 kB
react-color-picker
ColorPicker
14.988 kB
6.041 kB
react-color-picker
ColorSlider
38.952 kB
14.294 kB
react-combobox
Combobox (including child components)
137.959 kB
44.618 kB
react-combobox
Dropdown (including child components)
137.715 kB
44.382 kB
react-components
react-components: Button, FluentProvider & webLightTheme
66.281 kB
19.002 kB
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
225.836 kB
67.998 kB
react-components
react-components: FluentProvider & webLightTheme
39.504 kB
13.112 kB
react-components
react-components: entire library
1.294 MB
326.096 kB
react-datepicker-compat
DatePicker Compat
216.034 kB
63.912 kB
react-dialog
Dialog (including children components)
89.951 kB
27.858 kB
react-divider
Divider
15.077 kB
5.398 kB
react-field
Field
21.132 kB
7.881 kB
react-image
Image
12.348 kB
5.014 kB
react-input
Input
25.027 kB
8.183 kB
react-jsx-runtime
Classic Pragma
1.282 kB
613 B
react-jsx-runtime
JSX Dev Runtime
2.137 kB
988 B
react-jsx-runtime
JSX Runtime
1.491 kB
665 B
react-label
Label
11.695 kB
4.734 kB
react-link
Link
15.262 kB
6.039 kB
react-list
List
74.531 kB
23.01 kB
react-list
ListItem
98.023 kB
29.881 kB
react-menu
Menu (including children components)
159.561 kB
50.654 kB
react-menu
Menu (including selectable components)
162.727 kB
51.291 kB
react-message-bar
MessageBar (all components)
22.304 kB
8.196 kB
react-motion
@fluentui/react-motion - createMotionComponent()
4.275 kB
1.864 kB
react-motion
@fluentui/react-motion - createPresenceComponent()
6.007 kB
2.484 kB
react-motion
@fluentui/react-motion - PresenceGroup
1.715 kB
816 B
react-overflow
hooks only
9.052 kB
3.227 kB
react-persona
Persona
54.173 kB
16.791 kB
react-popover
Popover
125.312 kB
40.384 kB
react-portal
Portal
12.714 kB
4.947 kB
react-portal-compat
PortalCompatProvider
5.341 kB
2.146 kB
react-positioning
usePositioning
28.795 kB
10.14 kB
react-positioning
useSafeZoneArea
12.399 kB
4.977 kB
react-progress
ProgressBar
19.063 kB
7.418 kB
react-provider
FluentProvider
18.896 kB
7.265 kB
react-radio
Radio
26.994 kB
8.711 kB
react-radio
RadioGroup
12.759 kB
5.176 kB
react-select
Select
24.876 kB
8.936 kB
react-slider
Slider
32.231 kB
11.086 kB
react-spinbutton
SpinButton
32.513 kB
10.584 kB
react-spinner
Spinner
22.428 kB
7.342 kB
react-swatch-picker
@fluentui/react-swatch-picker - package
92.187 kB
27.315 kB
react-switch
Switch
32.231 kB
10.156 kB
react-table
DataGrid
146.759 kB
43.576 kB
react-table
Table (Primitives only)
36.893 kB
12.305 kB
react-table
Table as DataGrid
118.503 kB
33.331 kB
react-table
Table (Selection only)
65.373 kB
18.591 kB
react-table
Table (Sort only)
64.036 kB
18.204 kB
react-tag-picker
@fluentui/react-tag-picker - package
173.82 kB
54.128 kB
react-tags
InteractionTag
12.463 kB
4.942 kB
react-tags
Tag
28.376 kB
8.9 kB
react-tags
TagGroup
69.648 kB
21.404 kB
react-teaching-popover
TeachingPopover
100.504 kB
31.752 kB
react-text
Text - Default
14.035 kB
5.454 kB
react-text
Text - Wrappers
17.193 kB
5.764 kB
react-textarea
Textarea
23.392 kB
8.447 kB
react-theme
Single theme token import
69 B
89 B
react-theme
Teams: all themes
37.967 kB
7.989 kB
react-theme
Teams: Light theme
20.797 kB
5.863 kB
react-timepicker-compat
TimePicker
140.677 kB
45.99 kB
react-toast
Toast (including Toaster)
90.317 kB
28.14 kB
react-tooltip
Tooltip
53.023 kB
18.833 kB
react-tree
FlatTree
135.661 kB
40.459 kB
react-tree
PersonaFlatTree
137.524 kB
40.991 kB
react-tree
PersonaTree
133.605 kB
39.781 kB
react-tree
Tree
131.748 kB
39.265 kB
react-utilities
SSRProvider
182 B
160 B
🤖 This report was generated against e85170a2cc9139a7adfbbb524090541389cbeafe

@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown

Pull request demo site: URL

@mainframev
mainframev force-pushed the feat/create-headless-tag-picker branch 4 times, most recently from 85e4ed8 to c78d12c Compare June 4, 2026 21:03
@mainframev
mainframev requested a review from Copilot June 4, 2026 21:48

Copilot AI 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.

Pull request overview

Adds a new headless TagPicker surface to @fluentui/react-headless-components-preview, along with Storybook examples and API/package wiring so consumers can compose TagPicker behavior without bundled styles.

Changes:

  • Introduces the headless TagPicker root + subcomponents (Control/Input/Button/Group/List/Option/OptionGroup) and re-exports the relevant base utilities (useTagPickerFilter, useTagPickerContext_unstable).
  • Adds a full Storybook story set (default, filtering, grouping, single-select, no-popover, truncation, secondary action) and shared CSS-module styling/helpers.
  • Updates package exports, dependencies, API report, bundle-size fixture, and adds a beachball change file.

Reviewed changes

Copilot reviewed 53 out of 53 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages/react-components/react-headless-components-preview/stories/src/TagPicker/utils.tsx Shared story helpers (initials/media, option/tag render helpers).
packages/react-components/react-headless-components-preview/stories/src/TagPicker/TagPickerDefault.stories.tsx Baseline multiselect TagPicker story.
packages/react-components/react-headless-components-preview/stories/src/TagPicker/TagPickerFiltering.stories.tsx Filtering story using useTagPickerFilter.
packages/react-components/react-headless-components-preview/stories/src/TagPicker/TagPickerGrouped.stories.tsx Grouped options story using TagPickerOptionGroup.
packages/react-components/react-headless-components-preview/stories/src/TagPicker/TagPickerSingleSelect.stories.tsx Single-select pattern story (external state control).
packages/react-components/react-headless-components-preview/stories/src/TagPicker/TagPickerSecondaryAction.stories.tsx Story demonstrating secondaryAction slot on the control.
packages/react-components/react-headless-components-preview/stories/src/TagPicker/TagPickerTruncatedText.stories.tsx Story demonstrating CSS-driven truncation.
packages/react-components/react-headless-components-preview/stories/src/TagPicker/TagPickerNoPopover.stories.tsx Story demonstrating noPopover + free-text entry.
packages/react-components/react-headless-components-preview/stories/src/TagPicker/TagPickerDescription.md Component docs page content for the TagPicker story set.
packages/react-components/react-headless-components-preview/stories/src/TagPicker/tag-picker.module.css CSS module used by TagPicker stories (control/list/tag/option styling).
packages/react-components/react-headless-components-preview/stories/src/TagPicker/index.stories.tsx Storybook index/metadata + exports for the TagPicker story group.
packages/react-components/react-headless-components-preview/library/src/tag-picker.ts Public subpath entry point re-exporting headless TagPicker API.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/index.ts Barrel exports for TagPicker and subcomponents.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPicker.types.ts Headless TagPicker prop/type shaping (omits styled-only props).
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPicker.tsx Headless TagPicker root component wiring state + context + render.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/useTagPicker.ts Headless TagPicker state composition (base hook + positioning refs).
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/useTagPickerContextValues.ts TagPicker context value assembly for subcomponents.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/renderTagPicker.tsx Re-export of base renderTagPicker_unstable as renderTagPicker.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerControl/TagPickerControl.tsx Headless control component wrapper.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerControl/useTagPickerControl.ts Control state wrapper adding data-* flags.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerControl/renderTagPickerControl.tsx Control renderer re-export wrapper.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerControl/TagPickerControl.types.ts Control state typing incl. internal slots and data-* flags.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerControl/index.ts Control barrel exports.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerInput/TagPickerInput.tsx Headless input component wrapper.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerInput/useTagPickerInput.ts Input state wrapper + ArrowLeft/Backspace focus behavior.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerInput/renderTagPickerInput.tsx Input renderer re-export wrapper.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerInput/TagPickerInput.types.ts Input state typing incl. data-disabled.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerInput/index.ts Input barrel exports.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerButton/TagPickerButton.tsx Headless button trigger component wrapper.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerButton/useTagPickerButton.ts Button trigger wrapper adding data-disabled.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerButton/renderTagPickerButton.tsx Button renderer implementation using slots.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerButton/TagPickerButton.types.ts Button trigger state typing incl. data-disabled.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerButton/index.ts Button trigger barrel exports.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerGroup/TagPickerGroup.tsx Headless selected-tags group wrapper (adds TagGroup context).
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerGroup/useTagPickerGroup.ts Group state wrapper (dismiss wiring + focusgroup attribute + data-*).
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerGroup/renderTagPickerGroup.tsx Group renderer re-export wrapper.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerGroup/TagPickerGroup.types.ts Group state typing incl. focusgroup + data-disabled.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerGroup/index.ts Group barrel exports.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerList/TagPickerList.tsx Headless list/popover wrapper.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerList/useTagPickerList.ts List state wrapper (Listbox slot + refs + id/role wiring).
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerList/renderTagPickerList.tsx List renderer implementation using slots.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerList/TagPickerList.types.ts List props/state typing.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerList/index.ts List barrel exports.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerOption/TagPickerOption.tsx Headless option component wrapper.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerOption/useTagPickerOption.ts Option wrapper adding option-class marker + media/secondary slots.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerOption/renderTagPickerOption.tsx Option renderer (media + content + secondary).
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerOption/TagPickerOption.types.ts Option props/state typing for extra slots.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPickerOption/index.ts Option barrel exports.
packages/react-components/react-headless-components-preview/library/src/components/TagPicker/TagPicker.test.tsx Unit coverage for core rendering/roles/classes/focusgroup/disabled behavior.
packages/react-components/react-headless-components-preview/library/package.json Adds dependency on @fluentui/react-tag-picker and exports ./tag-picker.
packages/react-components/react-headless-components-preview/library/etc/tag-picker.api.md API Extractor report for the new TagPicker subpath.
packages/react-components/react-headless-components-preview/library/bundle-size/AllComponents.fixture.js Ensures TagPicker is included in bundle-size checks.
change/@fluentui-react-headless-components-preview-7694d78b-9ac6-40a0-8490-31128315e61a.json Beachball change file for publishing the new headless TagPicker surface.

@mainframev
mainframev marked this pull request as ready for review June 4, 2026 22:43
@mainframev
mainframev requested a review from a team as a code owner June 4, 2026 22:43
@dmytrokirpa
dmytrokirpa requested review from Hotell and dmytrokirpa June 9, 2026 12:04

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

left some comments, we also need to add some e2e tests

… comments

- TagPicker: drop the no-op forwardRef (the component has no DOM root of its
  own) and render as a plain function returning JSXElement, matching the
  package's Popover pattern.
- Document why the Button/List/Option render fns stay local instead of
  re-exporting the base render fns (state shape differs).
- Document the targetRef/popoverRef cast (callback ref vs object ref bridge).
@mainframev
mainframev force-pushed the feat/create-headless-tag-picker branch from dc3cd50 to 9586d19 Compare July 22, 2026 13:23
@mainframev
mainframev requested a review from a team as a code owner July 22, 2026 13:23
@mainframev
mainframev requested a review from dmytrokirpa July 22, 2026 13:25
@mainframev
mainframev force-pushed the feat/create-headless-tag-picker branch 2 times, most recently from 03a2dfb to a603b0a Compare July 22, 2026 14:11
@mainframev
mainframev force-pushed the feat/create-headless-tag-picker branch from a603b0a to e84a120 Compare July 22, 2026 14:11
@mainframev
mainframev force-pushed the feat/create-headless-tag-picker branch from e84a120 to a658271 Compare July 22, 2026 15:12
@mainframev
mainframev force-pushed the feat/create-headless-tag-picker branch from a658271 to 1356cdd Compare July 22, 2026 15:44
@mainframev
mainframev force-pushed the feat/create-headless-tag-picker branch from a993db1 to 333796e Compare July 23, 2026 16:58
@mainframev
mainframev requested a review from a team as a code owner July 23, 2026 16:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants