@bigbinary/neeto-atoms 1.0.97 → 1.0.99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Alert-CQ7lMpGp.js → Alert-CydF7eEs.js} +9 -31
- package/dist/Alert-CydF7eEs.js.map +1 -0
- package/dist/{Combobox-CKR_H-QS.js → Combobox-DriZMj4f.js} +300 -5017
- package/dist/Combobox-DriZMj4f.js.map +1 -0
- package/dist/{Dialog-BOcBeB8v.js → Dialog-D8C0-nEo.js} +10 -31
- package/dist/Dialog-D8C0-nEo.js.map +1 -0
- package/dist/DialogTrigger-a3diAOif.js +992 -0
- package/dist/DialogTrigger-a3diAOif.js.map +1 -0
- package/dist/{Select-Bc0D3byr.js → Select-Dng-cXLj.js} +2 -2
- package/dist/{Select-Bc0D3byr.js.map → Select-Dng-cXLj.js.map} +1 -1
- package/dist/{Sheet-Bw8GVQPS.js → Sheet-D1MWtg1q.js} +9 -33
- package/dist/Sheet-D1MWtg1q.js.map +1 -0
- package/dist/{button-CrEMzWKw.js → button-CePY5zne.js} +2 -2
- package/dist/button-CePY5zne.js.map +1 -0
- package/dist/cjs/{Alert-CxctOMOk.js → Alert-BdZVGiON.js} +9 -31
- package/dist/cjs/Alert-BdZVGiON.js.map +1 -0
- package/dist/cjs/Combobox-BE8LT4yq.js +5501 -0
- package/dist/cjs/Combobox-BE8LT4yq.js.map +1 -0
- package/dist/cjs/{Dialog-CBSuKeu_.js → Dialog-DNv7j7ts.js} +10 -31
- package/dist/cjs/Dialog-DNv7j7ts.js.map +1 -0
- package/dist/cjs/DialogTrigger-B0Q6yIrx.js +1026 -0
- package/dist/cjs/DialogTrigger-B0Q6yIrx.js.map +1 -0
- package/dist/cjs/{Select-DVDECeJb.js → Select-gItId3pj.js} +2 -2
- package/dist/cjs/{Select-DVDECeJb.js.map → Select-gItId3pj.js.map} +1 -1
- package/dist/cjs/{Sheet-By1W1pFD.js → Sheet-D-NWMprq.js} +9 -33
- package/dist/cjs/Sheet-D-NWMprq.js.map +1 -0
- package/dist/cjs/{button-CMl9rLXi.js → button-CSBhDSDJ.js} +2 -2
- package/dist/cjs/button-CSBhDSDJ.js.map +1 -0
- package/dist/cjs/components/Alert.js +22 -18
- package/dist/cjs/components/Alert.js.map +1 -1
- package/dist/cjs/components/Avatar.js +4 -3
- package/dist/cjs/components/Avatar.js.map +1 -1
- package/dist/cjs/components/Button.js +5 -4
- package/dist/cjs/components/Button.js.map +1 -1
- package/dist/cjs/components/Checkbox.js +5 -4
- package/dist/cjs/components/Checkbox.js.map +1 -1
- package/dist/cjs/components/ColorPicker.js +4 -3
- package/dist/cjs/components/ColorPicker.js.map +1 -1
- package/dist/cjs/components/DataTable.js +6 -5
- package/dist/cjs/components/DataTable.js.map +1 -1
- package/dist/cjs/components/DatePicker.js +5 -4
- package/dist/cjs/components/DatePicker.js.map +1 -1
- package/dist/cjs/components/Dialog.js +10 -16
- package/dist/cjs/components/Dialog.js.map +1 -1
- package/dist/cjs/components/DropdownMenu.js +6 -5
- package/dist/cjs/components/DropdownMenu.js.map +1 -1
- package/dist/cjs/components/Empty.js +5 -4
- package/dist/cjs/components/Empty.js.map +1 -1
- package/dist/cjs/components/Input.js +6 -5
- package/dist/cjs/components/Input.js.map +1 -1
- package/dist/cjs/components/Kbd.js +4 -3
- package/dist/cjs/components/Kbd.js.map +1 -1
- package/dist/cjs/components/Label.js +5 -4
- package/dist/cjs/components/Label.js.map +1 -1
- package/dist/cjs/components/MultiEmailInput.js +5 -4
- package/dist/cjs/components/MultiEmailInput.js.map +1 -1
- package/dist/cjs/components/Pagination.js +1 -1
- package/dist/cjs/components/Popover.js +3 -2
- package/dist/cjs/components/Popover.js.map +1 -1
- package/dist/cjs/components/RadioGroup.js +5 -4
- package/dist/cjs/components/RadioGroup.js.map +1 -1
- package/dist/cjs/components/Select.js +9 -7
- package/dist/cjs/components/Select.js.map +1 -1
- package/dist/cjs/components/Sheet.js +10 -16
- package/dist/cjs/components/Sheet.js.map +1 -1
- package/dist/cjs/components/Slider.js +5 -4
- package/dist/cjs/components/Slider.js.map +1 -1
- package/dist/cjs/components/Switch.js +5 -4
- package/dist/cjs/components/Switch.js.map +1 -1
- package/dist/cjs/components/Textarea.js +5 -4
- package/dist/cjs/components/Textarea.js.map +1 -1
- package/dist/cjs/components/TimePicker.js +5 -4
- package/dist/cjs/components/TimePicker.js.map +1 -1
- package/dist/cjs/components/Tooltip.js +4 -3
- package/dist/cjs/components/Tooltip.js.map +1 -1
- package/dist/cjs/components/TreeSelect.js +5 -4
- package/dist/cjs/components/TreeSelect.js.map +1 -1
- package/dist/cjs/components/index.js +18 -16
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/{dialog-Cs1qH5xA.js → dialog-CGblgaX5.js} +34 -40
- package/dist/cjs/dialog-CGblgaX5.js.map +1 -0
- package/dist/cjs/{floating-ui.react-dom-B4Aw6O7R.js → floating-ui.react-dom--alWUjS1.js} +147 -463
- package/dist/cjs/floating-ui.react-dom--alWUjS1.js.map +1 -0
- package/dist/cjs/floating-ui.utils.dom-BGEmL7pd.js +339 -0
- package/dist/cjs/floating-ui.utils.dom-BGEmL7pd.js.map +1 -0
- package/dist/cjs/formik/ActionBlock.js +5 -4
- package/dist/cjs/formik/ActionBlock.js.map +1 -1
- package/dist/cjs/formik/BlockNavigation.js +23 -19
- package/dist/cjs/formik/BlockNavigation.js.map +1 -1
- package/dist/cjs/formik/Button.js +5 -4
- package/dist/cjs/formik/Button.js.map +1 -1
- package/dist/cjs/formik/Checkbox.js +5 -4
- package/dist/cjs/formik/Checkbox.js.map +1 -1
- package/dist/cjs/formik/Input.js +6 -5
- package/dist/cjs/formik/Input.js.map +1 -1
- package/dist/cjs/formik/MultiEmailInput.js +5 -4
- package/dist/cjs/formik/MultiEmailInput.js.map +1 -1
- package/dist/cjs/formik/RadioGroup.js +5 -4
- package/dist/cjs/formik/RadioGroup.js.map +1 -1
- package/dist/cjs/formik/Select.js +9 -7
- package/dist/cjs/formik/Select.js.map +1 -1
- package/dist/cjs/formik/Slider.js +5 -4
- package/dist/cjs/formik/Slider.js.map +1 -1
- package/dist/cjs/formik/Switch.js +5 -4
- package/dist/cjs/formik/Switch.js.map +1 -1
- package/dist/cjs/formik/Textarea.js +5 -4
- package/dist/cjs/formik/Textarea.js.map +1 -1
- package/dist/cjs/formik/TreeSelect.js +5 -4
- package/dist/cjs/formik/TreeSelect.js.map +1 -1
- package/dist/cjs/formik/index.js +12 -10
- package/dist/cjs/formik/index.js.map +1 -1
- package/dist/cjs/{index-DbA93GP3.js → index-CMFCdiR6.js} +2 -2
- package/dist/cjs/{index-DbA93GP3.js.map → index-CMFCdiR6.js.map} +1 -1
- package/dist/cjs/{index-BTsnrFFc.js → index-DdQaz0iQ.js} +31 -33
- package/dist/cjs/{index-BTsnrFFc.js.map → index-DdQaz0iQ.js.map} +1 -1
- package/dist/cjs/{index-C9ICrOhM.js → index-owSUsE-n.js} +2 -2
- package/dist/cjs/{index-C9ICrOhM.js.map → index-owSUsE-n.js.map} +1 -1
- package/dist/cjs/index.js +18 -16
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/{input-group-BdQoKm0i.js → input-group-DZ-c2jRZ.js} +2 -2
- package/dist/cjs/{input-group-BdQoKm0i.js.map → input-group-DZ-c2jRZ.js.map} +1 -1
- package/dist/cjs/primitives/AlertDialog.js +112 -188
- package/dist/cjs/primitives/AlertDialog.js.map +1 -1
- package/dist/cjs/primitives/Button.js +1 -2
- package/dist/cjs/primitives/Button.js.map +1 -1
- package/dist/cjs/primitives/Calendar.js +1 -1
- package/dist/cjs/primitives/Carousel.js +1 -1
- package/dist/cjs/primitives/Combobox.js +6 -4
- package/dist/cjs/primitives/Combobox.js.map +1 -1
- package/dist/cjs/primitives/Command.js +19 -5
- package/dist/cjs/primitives/Command.js.map +1 -1
- package/dist/cjs/primitives/ContextMenu.js +4 -3
- package/dist/cjs/primitives/ContextMenu.js.map +1 -1
- package/dist/cjs/primitives/Dialog.js +48 -44
- package/dist/cjs/primitives/Dialog.js.map +1 -1
- package/dist/cjs/primitives/Drawer.js +2 -2
- package/dist/cjs/primitives/Drawer.js.map +1 -1
- package/dist/cjs/primitives/DropdownMenu.js +20 -13
- package/dist/cjs/primitives/DropdownMenu.js.map +1 -1
- package/dist/cjs/primitives/Field.js +5 -4
- package/dist/cjs/primitives/Field.js.map +1 -1
- package/dist/cjs/primitives/HoverCard.js +3 -2
- package/dist/cjs/primitives/HoverCard.js.map +1 -1
- package/dist/cjs/primitives/InputGroup.js +2 -2
- package/dist/cjs/primitives/Menubar.js +4 -3
- package/dist/cjs/primitives/Menubar.js.map +1 -1
- package/dist/cjs/primitives/Pagination.js +1 -1
- package/dist/cjs/primitives/Popover.js +3 -2
- package/dist/cjs/primitives/Popover.js.map +1 -1
- package/dist/cjs/primitives/Select.js +3 -2
- package/dist/cjs/primitives/Select.js.map +1 -1
- package/dist/cjs/primitives/Sheet.js +68 -62
- package/dist/cjs/primitives/Sheet.js.map +1 -1
- package/dist/cjs/primitives/Sidebar.js +15 -11
- package/dist/cjs/primitives/Sidebar.js.map +1 -1
- package/dist/cjs/primitives/Tooltip.js +4 -3
- package/dist/cjs/primitives/Tooltip.js.map +1 -1
- package/dist/cjs/primitives/index.js +18 -15
- package/dist/cjs/primitives/index.js.map +1 -1
- package/dist/cjs/sheet-BMQ9juND.js +138 -0
- package/dist/cjs/sheet-BMQ9juND.js.map +1 -0
- package/dist/cjs/{tooltip-BYCcUMZn.js → tooltip-hM8gc5L8.js} +2 -2
- package/dist/cjs/{tooltip-BYCcUMZn.js.map → tooltip-hM8gc5L8.js.map} +1 -1
- package/dist/cjs/useOpenInteractionType-D4z6FTrA.js +4877 -0
- package/dist/cjs/useOpenInteractionType-D4z6FTrA.js.map +1 -0
- package/dist/components/Alert.js +22 -18
- package/dist/components/Alert.js.map +1 -1
- package/dist/components/Avatar.js +4 -3
- package/dist/components/Avatar.js.map +1 -1
- package/dist/components/Button.js +5 -4
- package/dist/components/Button.js.map +1 -1
- package/dist/components/Checkbox.js +5 -4
- package/dist/components/Checkbox.js.map +1 -1
- package/dist/components/ColorPicker.js +4 -3
- package/dist/components/ColorPicker.js.map +1 -1
- package/dist/components/DataTable.js +6 -5
- package/dist/components/DataTable.js.map +1 -1
- package/dist/components/DatePicker.js +5 -4
- package/dist/components/DatePicker.js.map +1 -1
- package/dist/components/Dialog/Dialog.d.ts +1 -1
- package/dist/components/Dialog.js +10 -16
- package/dist/components/Dialog.js.map +1 -1
- package/dist/components/DropdownMenu.js +6 -5
- package/dist/components/DropdownMenu.js.map +1 -1
- package/dist/components/Empty.js +5 -4
- package/dist/components/Empty.js.map +1 -1
- package/dist/components/Input.js +6 -5
- package/dist/components/Input.js.map +1 -1
- package/dist/components/Kbd.js +4 -3
- package/dist/components/Kbd.js.map +1 -1
- package/dist/components/Label.js +5 -4
- package/dist/components/Label.js.map +1 -1
- package/dist/components/MultiEmailInput.js +5 -4
- package/dist/components/MultiEmailInput.js.map +1 -1
- package/dist/components/Pagination.js +1 -1
- package/dist/components/Popover.js +3 -2
- package/dist/components/Popover.js.map +1 -1
- package/dist/components/RadioGroup.js +5 -4
- package/dist/components/RadioGroup.js.map +1 -1
- package/dist/components/Select.js +9 -7
- package/dist/components/Select.js.map +1 -1
- package/dist/components/Sheet/Sheet.d.ts +2 -2
- package/dist/components/Sheet.js +10 -16
- package/dist/components/Sheet.js.map +1 -1
- package/dist/components/Slider.js +5 -4
- package/dist/components/Slider.js.map +1 -1
- package/dist/components/Switch.js +5 -4
- package/dist/components/Switch.js.map +1 -1
- package/dist/components/Textarea.js +5 -4
- package/dist/components/Textarea.js.map +1 -1
- package/dist/components/TimePicker.js +5 -4
- package/dist/components/TimePicker.js.map +1 -1
- package/dist/components/Tooltip.js +4 -3
- package/dist/components/Tooltip.js.map +1 -1
- package/dist/components/TreeSelect.js +5 -4
- package/dist/components/TreeSelect.js.map +1 -1
- package/dist/components/index.js +18 -16
- package/dist/components/index.js.map +1 -1
- package/dist/{dialog-BVHqPY9y.js → dialog-CqXuhXNS.js} +34 -40
- package/dist/dialog-CqXuhXNS.js.map +1 -0
- package/dist/{floating-ui.react-dom-D8_f_WWh.js → floating-ui.react-dom-BtFUJRfb.js} +3 -299
- package/dist/floating-ui.react-dom-BtFUJRfb.js.map +1 -0
- package/dist/floating-ui.utils.dom-Bw_Rc4bg.js +299 -0
- package/dist/floating-ui.utils.dom-Bw_Rc4bg.js.map +1 -0
- package/dist/formik/ActionBlock.js +5 -4
- package/dist/formik/ActionBlock.js.map +1 -1
- package/dist/formik/BlockNavigation.js +23 -19
- package/dist/formik/BlockNavigation.js.map +1 -1
- package/dist/formik/Button.js +5 -4
- package/dist/formik/Button.js.map +1 -1
- package/dist/formik/Checkbox.js +5 -4
- package/dist/formik/Checkbox.js.map +1 -1
- package/dist/formik/Input.js +6 -5
- package/dist/formik/Input.js.map +1 -1
- package/dist/formik/MultiEmailInput.js +5 -4
- package/dist/formik/MultiEmailInput.js.map +1 -1
- package/dist/formik/RadioGroup.js +5 -4
- package/dist/formik/RadioGroup.js.map +1 -1
- package/dist/formik/Select.js +9 -7
- package/dist/formik/Select.js.map +1 -1
- package/dist/formik/Slider.js +5 -4
- package/dist/formik/Slider.js.map +1 -1
- package/dist/formik/Switch.js +5 -4
- package/dist/formik/Switch.js.map +1 -1
- package/dist/formik/Textarea.js +5 -4
- package/dist/formik/Textarea.js.map +1 -1
- package/dist/formik/TreeSelect.js +5 -4
- package/dist/formik/TreeSelect.js.map +1 -1
- package/dist/formik/index.js +12 -10
- package/dist/formik/index.js.map +1 -1
- package/dist/{index-DnD7-4_R.js → index-BQtGUR27.js} +2 -2
- package/dist/{index-DnD7-4_R.js.map → index-BQtGUR27.js.map} +1 -1
- package/dist/{index-GJ3FauH8.js → index-CLV7U7i7.js} +4 -4
- package/dist/{index-GJ3FauH8.js.map → index-CLV7U7i7.js.map} +1 -1
- package/dist/{index-C3hByjk3.js → index-XvwNqU74.js} +2 -2
- package/dist/{index-C3hByjk3.js.map → index-XvwNqU74.js.map} +1 -1
- package/dist/index.js +18 -16
- package/dist/index.js.map +1 -1
- package/dist/{input-group-DDwp2ozP.js → input-group-DuITGkyB.js} +2 -2
- package/dist/{input-group-DDwp2ozP.js.map → input-group-DuITGkyB.js.map} +1 -1
- package/dist/primitives/AlertDialog.js +113 -189
- package/dist/primitives/AlertDialog.js.map +1 -1
- package/dist/primitives/Button.js +2 -3
- package/dist/primitives/Button.js.map +1 -1
- package/dist/primitives/Calendar.js +1 -1
- package/dist/primitives/Carousel.js +1 -1
- package/dist/primitives/Combobox.js +6 -4
- package/dist/primitives/Combobox.js.map +1 -1
- package/dist/primitives/Command.js +19 -5
- package/dist/primitives/Command.js.map +1 -1
- package/dist/primitives/ContextMenu.js +4 -3
- package/dist/primitives/ContextMenu.js.map +1 -1
- package/dist/primitives/Dialog.d.ts +6 -4
- package/dist/primitives/Dialog.js +49 -45
- package/dist/primitives/Dialog.js.map +1 -1
- package/dist/primitives/Drawer.js +2 -2
- package/dist/primitives/Drawer.js.map +1 -1
- package/dist/primitives/DropdownMenu.js +20 -13
- package/dist/primitives/DropdownMenu.js.map +1 -1
- package/dist/primitives/Field.js +5 -4
- package/dist/primitives/Field.js.map +1 -1
- package/dist/primitives/HoverCard.js +3 -2
- package/dist/primitives/HoverCard.js.map +1 -1
- package/dist/primitives/InputGroup.js +2 -2
- package/dist/primitives/Menubar.js +4 -3
- package/dist/primitives/Menubar.js.map +1 -1
- package/dist/primitives/Pagination.js +1 -1
- package/dist/primitives/Popover.js +3 -2
- package/dist/primitives/Popover.js.map +1 -1
- package/dist/primitives/Select.js +3 -2
- package/dist/primitives/Select.js.map +1 -1
- package/dist/primitives/Sheet.d.ts +5 -4
- package/dist/primitives/Sheet.js +68 -62
- package/dist/primitives/Sheet.js.map +1 -1
- package/dist/primitives/Sidebar.js +15 -11
- package/dist/primitives/Sidebar.js.map +1 -1
- package/dist/primitives/Tooltip.js +4 -3
- package/dist/primitives/Tooltip.js.map +1 -1
- package/dist/primitives/index.js +18 -15
- package/dist/primitives/index.js.map +1 -1
- package/dist/shadcn/components/alert-dialog.d.ts +8 -8
- package/dist/shadcn/components/command.d.ts +3 -1
- package/dist/shadcn/components/dialog.d.ts +10 -9
- package/dist/shadcn/components/dropdown-menu.d.ts +1 -1
- package/dist/shadcn/components/sheet.d.ts +7 -7
- package/dist/sheet-B9oDGvvX.js +129 -0
- package/dist/sheet-B9oDGvvX.js.map +1 -0
- package/dist/{tooltip-ChQ9xD1j.js → tooltip-0DecQ06t.js} +2 -2
- package/dist/{tooltip-ChQ9xD1j.js.map → tooltip-0DecQ06t.js.map} +1 -1
- package/dist/useOpenInteractionType-CVfxIsuz.js +4766 -0
- package/dist/useOpenInteractionType-CVfxIsuz.js.map +1 -0
- package/package.json +1 -1
- package/dist/Alert-CQ7lMpGp.js.map +0 -1
- package/dist/Combobox-CKR_H-QS.js.map +0 -1
- package/dist/Dialog-BOcBeB8v.js.map +0 -1
- package/dist/Sheet-Bw8GVQPS.js.map +0 -1
- package/dist/button-CrEMzWKw.js.map +0 -1
- package/dist/cjs/Alert-CxctOMOk.js.map +0 -1
- package/dist/cjs/Combobox-Dd2m0qal.js +0 -10218
- package/dist/cjs/Combobox-Dd2m0qal.js.map +0 -1
- package/dist/cjs/Dialog-CBSuKeu_.js.map +0 -1
- package/dist/cjs/Sheet-By1W1pFD.js.map +0 -1
- package/dist/cjs/button-CMl9rLXi.js.map +0 -1
- package/dist/cjs/dialog-Cs1qH5xA.js.map +0 -1
- package/dist/cjs/floating-ui.react-dom-B4Aw6O7R.js.map +0 -1
- package/dist/cjs/sheet-G6ismmAK.js +0 -147
- package/dist/cjs/sheet-G6ismmAK.js.map +0 -1
- package/dist/dialog-BVHqPY9y.js.map +0 -1
- package/dist/floating-ui.react-dom-D8_f_WWh.js.map +0 -1
- package/dist/sheet-DNANcGkk.js +0 -138
- package/dist/sheet-DNANcGkk.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Combobox-DriZMj4f.js","sources":["../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloatingRootContext.js","../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloating.js","../node_modules/@base-ui/utils/esm/isMouseWithinBounds.js","../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useListNavigation.js","../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useTypeahead.js","../node_modules/@base-ui/utils/esm/useControlled.js","../node_modules/@base-ui/react/esm/composite/list/CompositeListContext.js","../node_modules/@base-ui/react/esm/composite/list/CompositeList.js","../node_modules/@base-ui/react/esm/direction-provider/DirectionContext.js","../node_modules/@base-ui/react/esm/composite/list/useCompositeListItem.js","../node_modules/@base-ui/react/esm/combobox/root/ComboboxRootContext.js","../node_modules/@base-ui/react/esm/utils/itemEquality.js","../node_modules/@base-ui/react/esm/utils/serializeValue.js","../node_modules/@base-ui/react/esm/utils/resolveValueLabel.js","../node_modules/@base-ui/react/esm/combobox/store.js","../node_modules/@base-ui/react/esm/field/control/FieldControlDataAttributes.js","../node_modules/@base-ui/react/esm/field/utils/constants.js","../node_modules/@base-ui/react/esm/field/root/FieldRootContext.js","../node_modules/@base-ui/react/esm/field/root/useRegisterFieldControl.js","../node_modules/@base-ui/react/esm/form/FormContext.js","../node_modules/@base-ui/react/esm/labelable-provider/LabelableContext.js","../node_modules/@base-ui/react/esm/labelable-provider/useLabelableId.js","../node_modules/@base-ui/react/esm/combobox/root/utils/index.js","../node_modules/@base-ui/react/esm/combobox/root/utils/useFilter.js","../node_modules/@base-ui/react/esm/combobox/root/utils/constants.js","../node_modules/@base-ui/react/esm/combobox/root/AriaCombobox.js","../node_modules/@base-ui/react/esm/combobox/utils/stateAttributesMapping.js","../node_modules/@base-ui/react/esm/utils/getPseudoElementBounds.js","../node_modules/@base-ui/react/esm/utils/resolveAriaLabelledBy.js","../node_modules/@base-ui/react/esm/combobox/trigger/ComboboxTrigger.js","../node_modules/@base-ui/react/esm/combobox/chips/ComboboxChipsContext.js","../node_modules/@base-ui/react/esm/combobox/positioner/ComboboxPositionerContext.js","../node_modules/@base-ui/react/esm/combobox/utils/ComboboxInternalDismissButton.js","../node_modules/@base-ui/react/esm/combobox/input/ComboboxInput.js","../node_modules/@base-ui/react/esm/combobox/utils/handleInputPress.js","../node_modules/@base-ui/react/esm/combobox/clear/ComboboxClear.js","../node_modules/@base-ui/react/esm/combobox/collection/GroupCollectionContext.js","../node_modules/@base-ui/react/esm/combobox/collection/ComboboxCollection.js","../node_modules/@base-ui/react/esm/combobox/list/ComboboxList.js","../node_modules/@base-ui/react/esm/combobox/utils/useInitialLiveRegionTextMutation.js","../node_modules/@base-ui/react/esm/combobox/portal/ComboboxPortalContext.js","../node_modules/@base-ui/react/esm/combobox/portal/ComboboxPortal.js","../node_modules/@base-ui/react/esm/floating-ui-react/middleware/arrow.js","../node_modules/@base-ui/react/esm/utils/hideMiddleware.js","../node_modules/@base-ui/react/esm/utils/adaptiveOriginMiddleware.js","../node_modules/@base-ui/react/esm/utils/useAnchorPositioning.js","../node_modules/@base-ui/react/esm/utils/getDisabledMountTransitionStyles.js","../node_modules/@base-ui/react/esm/utils/usePositioner.js","../node_modules/@base-ui/react/esm/utils/useAnchoredPopupScrollLock.js","../node_modules/@base-ui/react/esm/combobox/positioner/ComboboxPositioner.js","../node_modules/@base-ui/react/esm/combobox/popup/ComboboxPopup.js","../node_modules/@base-ui/react/esm/combobox/group/ComboboxGroupContext.js","../node_modules/@base-ui/react/esm/combobox/group/ComboboxGroup.js","../node_modules/@base-ui/react/esm/combobox/group-label/ComboboxGroupLabel.js","../node_modules/@base-ui/react/esm/combobox/item/ComboboxItemContext.js","../node_modules/@base-ui/react/esm/combobox/row/ComboboxRowContext.js","../node_modules/@base-ui/react/esm/combobox/item/ComboboxItem.js","../node_modules/@base-ui/react/esm/combobox/empty/ComboboxEmpty.js","../node_modules/@base-ui/react/esm/separator/Separator.js","../node_modules/@base-ui/react/esm/combobox/root/ComboboxRoot.js","../node_modules/@base-ui/react/esm/combobox/value/ComboboxValue.js","../node_modules/@base-ui/react/esm/combobox/item-indicator/ComboboxItemIndicator.js","../node_modules/@base-ui/react/esm/combobox/chips/ComboboxChips.js","../node_modules/@base-ui/react/esm/combobox/chip/ComboboxChipContext.js","../node_modules/@base-ui/react/esm/combobox/chip/ComboboxChip.js","../node_modules/@base-ui/react/esm/combobox/chip-remove/ComboboxChipRemove.js","../src/shadcn/components/combobox.tsx","../src/primitives/Combobox.tsx"],"sourcesContent":["'use client';\n\nimport { isElement } from '@floating-ui/utils/dom';\nimport { useId } from '@base-ui/utils/useId';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useFloatingParentNodeId } from \"../components/FloatingTree.js\";\nimport { FloatingRootStore } from \"../components/FloatingRootStore.js\";\nimport { PopupTriggerMap } from \"../../utils/popups/index.js\";\nexport function useFloatingRootContext(options) {\n const {\n open = false,\n onOpenChange,\n elements = {}\n } = options;\n const floatingId = useId();\n const nested = useFloatingParentNodeId() != null;\n if (process.env.NODE_ENV !== 'production') {\n const optionDomReference = elements.reference;\n if (optionDomReference && !isElement(optionDomReference)) {\n console.error('Cannot pass a virtual element to the `elements.reference` option,', 'as it must be a real DOM element. Use `context.setPositionReference()`', 'instead.');\n }\n }\n const store = useRefWithInit(() => new FloatingRootStore({\n open,\n transitionStatus: undefined,\n onOpenChange,\n referenceElement: elements.reference ?? null,\n floatingElement: elements.floating ?? null,\n triggerElements: new PopupTriggerMap(),\n floatingId,\n syncOnly: false,\n nested\n })).current;\n useIsoLayoutEffect(() => {\n const valuesToSync = {\n open,\n floatingId\n };\n\n // Only sync elements that are defined to avoid overwriting existing ones\n if (elements.reference !== undefined) {\n valuesToSync.referenceElement = elements.reference;\n valuesToSync.domReferenceElement = isElement(elements.reference) ? elements.reference : null;\n }\n if (elements.floating !== undefined) {\n valuesToSync.floatingElement = elements.floating;\n }\n store.update(valuesToSync);\n }, [open, floatingId, elements.reference, elements.floating, store]);\n store.context.onOpenChange = onOpenChange;\n store.context.nested = nested;\n return store;\n}","'use client';\n\nimport * as React from 'react';\nimport { useFloating as usePosition } from '@floating-ui/react-dom';\nimport { isElement } from '@floating-ui/utils/dom';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useFloatingTree } from \"../components/FloatingTree.js\";\nimport { useFloatingRootContext } from \"./useFloatingRootContext.js\";\n/**\n * Provides data to position a floating element and context to add interactions.\n * @see https://floating-ui.com/docs/useFloating\n */\nexport function useFloating(options = {}) {\n const {\n nodeId,\n externalTree\n } = options;\n const internalRootStore = useFloatingRootContext(options);\n const rootContext = options.rootContext || internalRootStore;\n const rootContextElements = {\n reference: rootContext.useState('referenceElement'),\n floating: rootContext.useState('floatingElement'),\n domReference: rootContext.useState('domReferenceElement')\n };\n const [positionReference, setPositionReferenceRaw] = React.useState(null);\n const domReferenceRef = React.useRef(null);\n const tree = useFloatingTree(externalTree);\n useIsoLayoutEffect(() => {\n if (rootContextElements.domReference) {\n domReferenceRef.current = rootContextElements.domReference;\n }\n }, [rootContextElements.domReference]);\n const position = usePosition({\n ...options,\n elements: {\n ...rootContextElements,\n ...(positionReference && {\n reference: positionReference\n })\n }\n });\n const setPositionReference = React.useCallback(node => {\n const computedPositionReference = isElement(node) ? {\n getBoundingClientRect: () => node.getBoundingClientRect(),\n getClientRects: () => node.getClientRects(),\n contextElement: node\n } : node;\n // Store the positionReference in state if the DOM reference is specified externally via the\n // `elements.reference` option. This ensures that it won't be overridden on future renders.\n setPositionReferenceRaw(computedPositionReference);\n position.refs.setReference(computedPositionReference);\n }, [position.refs]);\n const [localDomReference, setLocalDomReference] = React.useState(undefined);\n const [localFloatingElement, setLocalFloatingElement] = React.useState(null);\n rootContext.useSyncedValue('referenceElement', localDomReference ?? null);\n const localDomReferenceElement = isElement(localDomReference) ? localDomReference : null;\n rootContext.useSyncedValue('domReferenceElement', localDomReference === undefined ? rootContextElements.domReference : localDomReferenceElement);\n rootContext.useSyncedValue('floatingElement', localFloatingElement);\n const setReference = React.useCallback(node => {\n if (isElement(node) || node === null) {\n domReferenceRef.current = node;\n setLocalDomReference(node);\n }\n\n // Backwards-compatibility for passing a virtual element to `reference`\n // after it has set the DOM reference.\n if (isElement(position.refs.reference.current) || position.refs.reference.current === null ||\n // Don't allow setting virtual elements using the old technique back to\n // `null` to support `positionReference` + an unstable `reference`\n // callback ref.\n node !== null && !isElement(node)) {\n position.refs.setReference(node);\n }\n }, [position.refs, setLocalDomReference]);\n const setFloating = React.useCallback(node => {\n setLocalFloatingElement(node);\n position.refs.setFloating(node);\n }, [position.refs]);\n const refs = React.useMemo(() => ({\n ...position.refs,\n setReference,\n setFloating,\n setPositionReference,\n domReference: domReferenceRef\n }), [position.refs, setReference, setFloating, setPositionReference]);\n const elements = React.useMemo(() => ({\n ...position.elements,\n domReference: rootContextElements.domReference\n }), [position.elements, rootContextElements.domReference]);\n const open = rootContext.useState('open');\n const floatingId = rootContext.useState('floatingId');\n const context = React.useMemo(() => ({\n ...position,\n dataRef: rootContext.context.dataRef,\n open,\n onOpenChange: rootContext.setOpen,\n events: rootContext.context.events,\n floatingId,\n refs,\n elements,\n nodeId,\n rootStore: rootContext\n }), [position, refs, elements, nodeId, rootContext, open, floatingId]);\n useIsoLayoutEffect(() => {\n rootContext.context.dataRef.current.floatingContext = context;\n const node = tree?.nodesRef.current.find(n => n.id === nodeId);\n if (node) {\n node.context = context;\n }\n });\n return React.useMemo(() => ({\n ...position,\n context,\n refs,\n elements,\n rootStore: rootContext\n }), [position, refs, elements, context, rootContext]);\n}","export function isMouseWithinBounds(event) {\n const targetRect = event.currentTarget.getBoundingClientRect();\n\n // Safari randomly fires `mouseleave` incorrectly when the item is\n // aligned to the trigger. This is a workaround to prevent the highlight\n // from being removed while the cursor is still within the bounds of the item.\n // https://github.com/mui/base-ui/issues/869\n const isWithinBounds = targetRect.top + 1 <= event.clientY && event.clientY <= targetRect.bottom - 1 && targetRect.left + 1 <= event.clientX && event.clientX <= targetRect.right - 1;\n return isWithinBounds;\n}","'use client';\n\nimport * as React from 'react';\nimport { isHTMLElement } from '@floating-ui/utils/dom';\nimport { isMouseWithinBounds } from '@base-ui/utils/isMouseWithinBounds';\nimport { useValueAsRef } from '@base-ui/utils/useValueAsRef';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { activeElement, contains, getTarget, isTypeableCombobox, getFloatingFocusElement } from \"../utils/element.js\";\nimport { isVirtualClick, isVirtualPointerEvent, stopEvent } from \"../utils/event.js\";\nimport { isIndexOutOfListBounds, getMinListIndex, getMaxListIndex, getGridNavigatedIndex, isListIndexDisabled, createGridCellMap, getGridCellIndices, getGridCellIndexOfCorner, findNonDisabledListIndex } from \"../utils/composite.js\";\nimport { useFloatingParentNodeId, useFloatingTree } from \"../components/FloatingTree.js\";\nimport { createChangeEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { REASONS } from \"../../utils/reasons.js\";\nimport { enqueueFocus } from \"../utils/enqueueFocus.js\";\nimport { ARROW_UP, ARROW_DOWN, ARROW_RIGHT, ARROW_LEFT } from \"../utils/constants.js\";\nexport const ESCAPE = 'Escape';\nfunction doSwitch(orientation, vertical, horizontal) {\n switch (orientation) {\n case 'vertical':\n return vertical;\n case 'horizontal':\n return horizontal;\n default:\n return vertical || horizontal;\n }\n}\nfunction isMainOrientationKey(key, orientation) {\n const vertical = key === ARROW_UP || key === ARROW_DOWN;\n const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n const vertical = key === ARROW_DOWN;\n const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal) || key === 'Enter' || key === ' ' || key === '';\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n const horizontal = key === ARROW_DOWN;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl, cols) {\n const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n const horizontal = key === ARROW_UP;\n if (orientation === 'both' || orientation === 'horizontal' && cols && cols > 1) {\n return key === ESCAPE;\n }\n return doSwitch(orientation, vertical, horizontal);\n}\n/**\n * Adds arrow key-based navigation of a list of items, either using real DOM\n * focus or virtual focus.\n * @see https://floating-ui.com/docs/useListNavigation\n */\nexport function useListNavigation(context, props) {\n const store = 'rootStore' in context ? context.rootStore : context;\n const open = store.useState('open');\n const floatingElement = store.useState('floatingElement');\n const domReferenceElement = store.useState('domReferenceElement');\n const dataRef = store.context.dataRef;\n const {\n listRef,\n activeIndex,\n onNavigate: onNavigateProp = () => {},\n enabled = true,\n selectedIndex = null,\n allowEscape = false,\n loopFocus = false,\n nested = false,\n rtl = false,\n virtual = false,\n focusItemOnOpen = 'auto',\n focusItemOnHover = true,\n openOnArrowKeyDown = true,\n disabledIndices = undefined,\n orientation = 'vertical',\n parentOrientation,\n cols = 1,\n id,\n resetOnPointerLeave = true,\n externalTree\n } = props;\n if (process.env.NODE_ENV !== 'production') {\n if (allowEscape) {\n if (!loopFocus) {\n console.warn('`useListNavigation` looping must be enabled to allow escaping.');\n }\n if (!virtual) {\n console.warn('`useListNavigation` must be virtual to allow escaping.');\n }\n }\n if (orientation === 'vertical' && cols > 1) {\n console.warn('In grid list navigation mode (`cols` > 1), the `orientation` should', 'be either \"horizontal\" or \"both\".');\n }\n }\n const floatingFocusElement = getFloatingFocusElement(floatingElement);\n const floatingFocusElementRef = useValueAsRef(floatingFocusElement);\n const parentId = useFloatingParentNodeId();\n const tree = useFloatingTree(externalTree);\n useIsoLayoutEffect(() => {\n dataRef.current.orientation = orientation;\n }, [dataRef, orientation]);\n const typeableComboboxReference = isTypeableCombobox(domReferenceElement);\n const focusItemOnOpenRef = React.useRef(focusItemOnOpen);\n const indexRef = React.useRef(selectedIndex ?? -1);\n const keyRef = React.useRef(null);\n const isPointerModalityRef = React.useRef(true);\n const onNavigate = useStableCallback(event => {\n onNavigateProp(indexRef.current === -1 ? null : indexRef.current, event);\n });\n const previousOnNavigateRef = React.useRef(onNavigate);\n const previousMountedRef = React.useRef(!!floatingElement);\n const previousOpenRef = React.useRef(open);\n const forceSyncFocusRef = React.useRef(false);\n const forceScrollIntoViewRef = React.useRef(false);\n const cancelQueuedFocusRef = React.useRef(null);\n const disabledIndicesRef = useValueAsRef(disabledIndices);\n const latestOpenRef = useValueAsRef(open);\n const selectedIndexRef = useValueAsRef(selectedIndex);\n const resetOnPointerLeaveRef = useValueAsRef(resetOnPointerLeave);\n const focusItem = useStableCallback(() => {\n function runFocus(item) {\n if (virtual) {\n tree?.events.emit('virtualfocus', item);\n } else {\n cancelQueuedFocusRef.current = enqueueFocus(item, {\n sync: forceSyncFocusRef.current,\n preventScroll: true\n });\n }\n }\n const initialItem = listRef.current[indexRef.current];\n const forceScrollIntoView = forceScrollIntoViewRef.current;\n if (initialItem) {\n runFocus(initialItem);\n }\n const scheduler = forceSyncFocusRef.current ? v => v() : requestAnimationFrame;\n scheduler(() => {\n const waitedItem = listRef.current[indexRef.current] || initialItem;\n if (!waitedItem) {\n return;\n }\n if (!initialItem) {\n runFocus(waitedItem);\n }\n const shouldScrollIntoView =\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n item && (forceScrollIntoView || !isPointerModalityRef.current);\n if (shouldScrollIntoView) {\n // JSDOM doesn't support `.scrollIntoView()` but it's widely supported\n // by all browsers.\n waitedItem.scrollIntoView?.({\n block: 'nearest',\n inline: 'nearest'\n });\n }\n });\n });\n\n // Sync `selectedIndex` to be the `activeIndex` upon opening the floating\n // element. Also, reset `activeIndex` upon closing the floating element.\n useIsoLayoutEffect(() => {\n if (!enabled) {\n return;\n }\n if (open && floatingElement) {\n indexRef.current = selectedIndex ?? -1;\n if (focusItemOnOpenRef.current && selectedIndex != null) {\n // Regardless of the pointer modality, we want to ensure the selected\n // item comes into view when the floating element is opened.\n forceScrollIntoViewRef.current = true;\n onNavigate();\n }\n } else if (previousMountedRef.current) {\n // Since the user can specify `onNavigate` conditionally\n // (onNavigate: open ? setActiveIndex : setSelectedIndex),\n // we store and call the previous function.\n indexRef.current = -1;\n previousOnNavigateRef.current();\n }\n }, [enabled, open, floatingElement, selectedIndex, onNavigate]);\n\n // Sync `activeIndex` to be the focused item while the floating element is\n // open.\n useIsoLayoutEffect(() => {\n if (!enabled) {\n return;\n }\n if (!open) {\n forceSyncFocusRef.current = false;\n return;\n }\n if (!floatingElement) {\n return;\n }\n if (activeIndex == null) {\n forceSyncFocusRef.current = false;\n if (selectedIndexRef.current != null) {\n return;\n }\n\n // Reset while the floating element was open (e.g. the list changed).\n if (previousMountedRef.current) {\n indexRef.current = -1;\n focusItem();\n }\n\n // Initial sync.\n if ((!previousOpenRef.current || !previousMountedRef.current) && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n let runs = 0;\n const waitForListPopulated = () => {\n if (listRef.current[0] == null) {\n // Avoid letting the browser paint if possible on the first try,\n // otherwise use rAF. Don't try more than twice, since something\n // is wrong otherwise.\n if (runs < 2) {\n const scheduler = runs ? requestAnimationFrame : queueMicrotask;\n scheduler(waitForListPopulated);\n }\n runs += 1;\n } else {\n // initially focus the first non-disabled item\n indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinListIndex(listRef) : getMaxListIndex(listRef);\n keyRef.current = null;\n onNavigate();\n }\n };\n waitForListPopulated();\n }\n } else if (!isIndexOutOfListBounds(listRef.current, activeIndex)) {\n indexRef.current = activeIndex;\n focusItem();\n forceScrollIntoViewRef.current = false;\n }\n }, [enabled, open, floatingElement, activeIndex, selectedIndexRef, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);\n\n // Ensure the parent floating element has focus when a nested child closes\n // to allow arrow key navigation to work after the pointer leaves the child.\n useIsoLayoutEffect(() => {\n if (!enabled || floatingElement || !tree || virtual || !previousMountedRef.current) {\n return;\n }\n const nodes = tree.nodesRef.current;\n const parent = nodes.find(node => node.id === parentId)?.context?.elements.floating;\n const activeEl = activeElement(ownerDocument(floatingElement));\n const treeContainsActiveEl = nodes.some(node => node.context && contains(node.context.elements.floating, activeEl));\n if (parent && !treeContainsActiveEl && isPointerModalityRef.current) {\n parent.focus({\n preventScroll: true\n });\n }\n }, [enabled, floatingElement, tree, parentId, virtual]);\n useIsoLayoutEffect(() => {\n previousOnNavigateRef.current = onNavigate;\n previousOpenRef.current = open;\n previousMountedRef.current = !!floatingElement;\n });\n useIsoLayoutEffect(() => {\n if (!open) {\n keyRef.current = null;\n focusItemOnOpenRef.current = focusItemOnOpen;\n }\n }, [open, focusItemOnOpen]);\n const hasActiveIndex = activeIndex != null;\n const syncCurrentTarget = useStableCallback(event => {\n if (!latestOpenRef.current) {\n return;\n }\n const index = listRef.current.indexOf(event.currentTarget);\n if (index !== -1 && (indexRef.current !== index || activeIndex !== index)) {\n indexRef.current = index;\n onNavigate(event);\n }\n });\n const item = React.useMemo(() => {\n const itemProps = {\n onFocus(event) {\n forceSyncFocusRef.current = true;\n syncCurrentTarget(event);\n },\n onClick: ({\n currentTarget\n }) => currentTarget.focus({\n preventScroll: true\n }),\n // Safari\n onMouseMove(event) {\n forceSyncFocusRef.current = true;\n forceScrollIntoViewRef.current = false;\n if (focusItemOnHover) {\n syncCurrentTarget(event);\n }\n },\n onPointerLeave(event) {\n if (!latestOpenRef.current || !isPointerModalityRef.current || event.pointerType === 'touch') {\n return;\n }\n forceSyncFocusRef.current = true;\n const relatedTarget = event.relatedTarget;\n if (isMouseWithinBounds(event)) {\n return;\n }\n if (!focusItemOnHover || listRef.current.includes(relatedTarget)) {\n return;\n }\n if (!resetOnPointerLeaveRef.current) {\n return;\n }\n cancelQueuedFocusRef.current?.();\n cancelQueuedFocusRef.current = null;\n indexRef.current = -1;\n onNavigate(event);\n if (!virtual) {\n const floatingFocusEl = floatingFocusElementRef.current;\n const activeEl = activeElement(ownerDocument(floatingFocusEl));\n if (floatingFocusEl && contains(floatingFocusEl, activeEl)) {\n floatingFocusEl.focus({\n preventScroll: true\n });\n }\n }\n }\n };\n return itemProps;\n }, [syncCurrentTarget, latestOpenRef, floatingFocusElementRef, focusItemOnHover, listRef, onNavigate, resetOnPointerLeaveRef, virtual]);\n const getParentOrientation = React.useCallback(() => {\n return parentOrientation ?? tree?.nodesRef.current.find(node => node.id === parentId)?.context?.dataRef?.current.orientation;\n }, [parentId, tree, parentOrientation]);\n const commonOnKeyDown = useStableCallback(event => {\n isPointerModalityRef.current = false;\n forceSyncFocusRef.current = true;\n\n // When composing a character, Chrome fires ArrowDown twice. Firefox/Safari\n // don't appear to suffer from this. `event.isComposing` is avoided due to\n // Safari not supporting it properly (although it's not needed in the first\n // place for Safari, just avoiding any possible issues).\n if (event.which === 229) {\n return;\n }\n\n // If the floating element is animating out, ignore navigation. Otherwise,\n // the `activeIndex` gets set to 0 despite not being open so the next time\n // the user ArrowDowns, the first item won't be focused.\n if (!latestOpenRef.current && event.currentTarget === floatingFocusElementRef.current) {\n return;\n }\n if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl, cols)) {\n // If the nested list's close key is also the parent navigation key,\n // let the parent navigate. Otherwise, stop propagating the event.\n if (!isMainOrientationKey(event.key, getParentOrientation())) {\n stopEvent(event);\n }\n store.setOpen(false, createChangeEventDetails(REASONS.listNavigation, event.nativeEvent));\n if (isHTMLElement(domReferenceElement)) {\n if (virtual) {\n tree?.events.emit('virtualfocus', domReferenceElement);\n } else {\n domReferenceElement.focus();\n }\n }\n return;\n }\n const currentIndex = indexRef.current;\n const minIndex = getMinListIndex(listRef, disabledIndices);\n const maxIndex = getMaxListIndex(listRef, disabledIndices);\n if (!typeableComboboxReference) {\n if (event.key === 'Home') {\n stopEvent(event);\n indexRef.current = minIndex;\n onNavigate(event);\n }\n if (event.key === 'End') {\n stopEvent(event);\n indexRef.current = maxIndex;\n onNavigate(event);\n }\n }\n\n // Grid navigation.\n if (cols > 1) {\n const sizes = Array.from({\n length: listRef.current.length\n }, () => ({\n width: 1,\n height: 1\n }));\n // To calculate movements on the grid, we use hypothetical cell indices\n // as if every item was 1x1, then convert back to real indices.\n const cellMap = createGridCellMap(sizes, cols, false);\n const minGridIndex = cellMap.findIndex(index => index != null && !isListIndexDisabled(listRef.current, index, disabledIndices));\n // last enabled index\n const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isListIndexDisabled(listRef.current, index, disabledIndices) ? cellIndex : foundIndex, -1);\n const index = cellMap[getGridNavigatedIndex(cellMap.map(itemIndex => itemIndex != null ? listRef.current[itemIndex] : null), {\n event,\n orientation,\n loopFocus,\n rtl,\n cols,\n // treat undefined (empty grid spaces) as disabled indices so we\n // don't end up in them\n disabledIndices: getGridCellIndices([...((typeof disabledIndices !== 'function' ? disabledIndices : null) || listRef.current.map((_, listIndex) => isListIndexDisabled(listRef.current, listIndex, disabledIndices) ? listIndex : undefined)), undefined], cellMap),\n minIndex: minGridIndex,\n maxIndex: maxGridIndex,\n prevIndex: getGridCellIndexOfCorner(indexRef.current > maxIndex ? minIndex : indexRef.current, sizes, cellMap, cols,\n // use a corner matching the edge closest to the direction\n // we're moving in so we don't end up in the same item. Prefer\n // top/left over bottom/right.\n // eslint-disable-next-line no-nested-ternary\n event.key === ARROW_DOWN ? 'bl' : event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT) ? 'tr' : 'tl'),\n stopEvent: true\n })];\n if (index != null) {\n indexRef.current = index;\n onNavigate(event);\n }\n if (orientation === 'both') {\n return;\n }\n }\n if (isMainOrientationKey(event.key, orientation)) {\n stopEvent(event);\n\n // Reset the index if no item is focused.\n if (open && !virtual && activeElement(event.currentTarget.ownerDocument) === event.currentTarget) {\n indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n onNavigate(event);\n return;\n }\n if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n if (loopFocus) {\n if (currentIndex >= maxIndex) {\n if (allowEscape && currentIndex !== listRef.current.length) {\n indexRef.current = -1;\n } else {\n // Give time for virtualizers to update the listRef.\n forceSyncFocusRef.current = false;\n indexRef.current = minIndex;\n }\n } else {\n indexRef.current = findNonDisabledListIndex(listRef.current, {\n startingIndex: currentIndex,\n disabledIndices\n });\n }\n } else {\n indexRef.current = Math.min(maxIndex, findNonDisabledListIndex(listRef.current, {\n startingIndex: currentIndex,\n disabledIndices\n }));\n }\n } else if (loopFocus) {\n if (currentIndex <= minIndex) {\n if (allowEscape && currentIndex !== -1) {\n indexRef.current = listRef.current.length;\n } else {\n // Give time for virtualizers to update the listRef.\n forceSyncFocusRef.current = false;\n indexRef.current = maxIndex;\n }\n } else {\n indexRef.current = findNonDisabledListIndex(listRef.current, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n });\n }\n } else {\n indexRef.current = Math.max(minIndex, findNonDisabledListIndex(listRef.current, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n }));\n }\n if (isIndexOutOfListBounds(listRef.current, indexRef.current)) {\n indexRef.current = -1;\n }\n onNavigate(event);\n }\n });\n const ariaActiveDescendantProp = React.useMemo(() => {\n return virtual && open && hasActiveIndex && {\n 'aria-activedescendant': `${id}-${activeIndex}`\n };\n }, [virtual, open, hasActiveIndex, id, activeIndex]);\n const floating = React.useMemo(() => {\n return {\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n ...(!typeableComboboxReference ? ariaActiveDescendantProp : {}),\n onKeyDown(event) {\n // Close submenu on Shift+Tab\n if (event.key === 'Tab' && event.shiftKey && open && !virtual) {\n // If the event originated from within a nested element (e.g., a Dialog opened from\n // within the menu), don't close the menu. The nested element has its own focus\n // management and should handle the Tab key.\n const target = getTarget(event.nativeEvent);\n if (target && !contains(floatingFocusElementRef.current, target)) {\n return;\n }\n stopEvent(event);\n store.setOpen(false, createChangeEventDetails(REASONS.focusOut, event.nativeEvent));\n if (isHTMLElement(domReferenceElement)) {\n domReferenceElement.focus();\n }\n return;\n }\n commonOnKeyDown(event);\n },\n onPointerMove() {\n isPointerModalityRef.current = true;\n }\n };\n }, [ariaActiveDescendantProp, commonOnKeyDown, floatingFocusElementRef, orientation, typeableComboboxReference, store, open, virtual, domReferenceElement]);\n const trigger = React.useMemo(() => {\n function checkVirtualMouse(event) {\n if (focusItemOnOpen === 'auto' && isVirtualClick(event.nativeEvent)) {\n focusItemOnOpenRef.current = !virtual;\n }\n }\n function checkVirtualPointer(event) {\n // `pointerdown` fires first, reset the state then perform the checks.\n focusItemOnOpenRef.current = focusItemOnOpen;\n if (focusItemOnOpen === 'auto' && isVirtualPointerEvent(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n return {\n onKeyDown(event) {\n // non-reactive open state (to prevent re-creation of the handler)\n const currentOpen = store.select('open');\n isPointerModalityRef.current = false;\n const isArrowKey = event.key.startsWith('Arrow');\n const isParentCrossOpenKey = isCrossOrientationOpenKey(event.key, getParentOrientation(), rtl);\n const isMainKey = isMainOrientationKey(event.key, orientation);\n const isNavigationKey = (nested ? isParentCrossOpenKey : isMainKey) || event.key === 'Enter' || event.key.trim() === '';\n if (virtual && currentOpen) {\n return commonOnKeyDown(event);\n }\n\n // If a floating element should not open on arrow key down, avoid\n // setting `activeIndex` while it's closed.\n if (!currentOpen && !openOnArrowKeyDown && isArrowKey) {\n return undefined;\n }\n if (isNavigationKey) {\n const isParentMainKey = isMainOrientationKey(event.key, getParentOrientation());\n keyRef.current = nested && isParentMainKey ? null : event.key;\n }\n if (nested) {\n if (isParentCrossOpenKey) {\n stopEvent(event);\n if (currentOpen) {\n indexRef.current = getMinListIndex(listRef, disabledIndicesRef.current);\n onNavigate(event);\n } else {\n store.setOpen(true, createChangeEventDetails(REASONS.listNavigation, event.nativeEvent, event.currentTarget));\n }\n }\n return undefined;\n }\n if (isMainKey) {\n if (selectedIndexRef.current != null) {\n indexRef.current = selectedIndexRef.current;\n }\n stopEvent(event);\n if (!currentOpen && openOnArrowKeyDown) {\n store.setOpen(true, createChangeEventDetails(REASONS.listNavigation, event.nativeEvent, event.currentTarget));\n } else {\n commonOnKeyDown(event);\n }\n if (currentOpen) {\n onNavigate(event);\n }\n }\n return undefined;\n },\n onFocus(event) {\n if (store.select('open') && !virtual) {\n indexRef.current = -1;\n onNavigate(event);\n }\n },\n onPointerDown: checkVirtualPointer,\n onPointerEnter: checkVirtualPointer,\n onMouseDown: checkVirtualMouse,\n onClick: checkVirtualMouse\n };\n }, [commonOnKeyDown, disabledIndicesRef, focusItemOnOpen, listRef, nested, onNavigate, store, openOnArrowKeyDown, orientation, getParentOrientation, rtl, selectedIndexRef, virtual]);\n const reference = React.useMemo(() => {\n return {\n ...ariaActiveDescendantProp,\n ...trigger\n };\n }, [ariaActiveDescendantProp, trigger]);\n return React.useMemo(() => enabled ? {\n reference,\n floating,\n item,\n trigger\n } : {}, [enabled, reference, floating, trigger, item]);\n}","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { contains } from \"../utils/element.js\";\nimport { stopEvent } from \"../utils/event.js\";\nimport { isElementVisible } from \"../utils/composite.js\";\n/**\n * Provides a matching callback that can be used to focus an item as the user\n * types, often used in tandem with `useListNavigation()`.\n * @see https://floating-ui.com/docs/useTypeahead\n */\nexport function useTypeahead(context, props) {\n const store = 'rootStore' in context ? context.rootStore : context;\n const dataRef = store.context.dataRef;\n const open = store.useState('open');\n const {\n listRef,\n elementsRef,\n activeIndex,\n onMatch: onMatchProp,\n onTypingChange,\n enabled = true,\n resetMs = 750,\n selectedIndex = null\n } = props;\n const timeout = useTimeout();\n const stringRef = React.useRef('');\n const prevIndexRef = React.useRef(selectedIndex ?? activeIndex ?? -1);\n const matchIndexRef = React.useRef(null);\n useIsoLayoutEffect(() => {\n if (!open && selectedIndex !== null) {\n return;\n }\n timeout.clear();\n matchIndexRef.current = null;\n if (stringRef.current !== '') {\n stringRef.current = '';\n }\n }, [open, selectedIndex, timeout]);\n useIsoLayoutEffect(() => {\n // Sync arrow key navigation but not typeahead navigation.\n if (open && stringRef.current === '') {\n prevIndexRef.current = selectedIndex ?? activeIndex ?? -1;\n }\n }, [open, selectedIndex, activeIndex]);\n const setTypingChange = useStableCallback(value => {\n if (value) {\n if (!dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange?.(value);\n }\n } else if (dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange?.(value);\n }\n });\n const onKeyDown = useStableCallback(event => {\n function isVisible(index) {\n const element = elementsRef?.current[index];\n return !element || isElementVisible(element);\n }\n function getMatchingIndex(list, string, startIndex = 0) {\n if (list.length === 0) {\n return -1;\n }\n const normalizedStartIndex = (startIndex % list.length + list.length) % list.length;\n const lowerString = string.toLocaleLowerCase();\n for (let offset = 0; offset < list.length; offset += 1) {\n const index = (normalizedStartIndex + offset) % list.length;\n const text = list[index];\n if (!text?.toLocaleLowerCase().startsWith(lowerString) || !isVisible(index)) {\n continue;\n }\n return index;\n }\n return -1;\n }\n const listContent = listRef.current;\n if (stringRef.current.length > 0 && event.key === ' ') {\n // Space should continue the in-progress typeahead session.\n stopEvent(event);\n setTypingChange(true);\n }\n if (stringRef.current.length > 0 && stringRef.current[0] !== ' ') {\n if (getMatchingIndex(listContent, stringRef.current) === -1 && event.key !== ' ') {\n setTypingChange(false);\n }\n }\n if (listContent == null ||\n // Character key.\n event.key.length !== 1 ||\n // Modifier key.\n event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n if (open && event.key !== ' ') {\n stopEvent(event);\n setTypingChange(true);\n }\n\n // Capture whether this is a new typing session before mutating the string.\n const isNewSession = stringRef.current === '';\n if (isNewSession) {\n prevIndexRef.current = selectedIndex ?? activeIndex ?? -1;\n }\n\n // Bail out if the list contains a word like \"llama\" or \"aaron\". TODO:\n // allow it in this case, too.\n const allowRapidSuccessionOfFirstLetter = listContent.every(text => text ? text[0]?.toLocaleLowerCase() !== text[1]?.toLocaleLowerCase() : true);\n\n // Allows the user to cycle through items that start with the same letter\n // in rapid succession.\n if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n }\n stringRef.current += event.key;\n timeout.start(resetMs, () => {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n setTypingChange(false);\n });\n\n // Compute the starting index for this search.\n // If this is a new typing session (string is empty), base it on the current\n // selection/active item; otherwise continue from the last matched index.\n const prevIndex = isNewSession ? selectedIndex ?? activeIndex ?? -1 : prevIndexRef.current;\n const startIndex = (prevIndex ?? 0) + 1;\n const index = getMatchingIndex(listContent, stringRef.current, startIndex);\n if (index !== -1) {\n onMatchProp?.(index);\n matchIndexRef.current = index;\n } else if (event.key !== ' ') {\n stringRef.current = '';\n setTypingChange(false);\n }\n });\n const onBlur = useStableCallback(event => {\n const next = event.relatedTarget;\n const currentDomReferenceElement = store.select('domReferenceElement');\n const currentFloatingElement = store.select('floatingElement');\n const withinReference = contains(currentDomReferenceElement, next);\n const withinFloating = contains(currentFloatingElement, next);\n\n // Keep the session if focus moves within the composite (reference <-> floating).\n if (withinReference || withinFloating) {\n return;\n }\n\n // End the current typing session when focus leaves the composite entirely.\n timeout.clear();\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n setTypingChange(false);\n });\n const reference = React.useMemo(() => ({\n onKeyDown,\n onBlur\n }), [onKeyDown, onBlur]);\n const floating = React.useMemo(() => {\n return {\n onKeyDown,\n onBlur\n };\n }, [onKeyDown, onBlur]);\n return React.useMemo(() => enabled ? {\n reference,\n floating\n } : {}, [enabled, reference, floating]);\n}","'use client';\n\n// TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler -- process.env never changes, dependency arrays are intentionally ignored\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nimport { error } from \"./error.js\";\nexport function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n error([`A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && serializeToDevModeString(defaultValue) !== serializeToDevModeString(defaultProp)) {\n error([`A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [defaultProp]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}\nfunction serializeToDevModeString(input) {\n let nextId = 0;\n const seen = new WeakMap();\n try {\n const result = JSON.stringify(input, function replacer(key, value) {\n if (key === '_owner' && this != null && typeof this === 'object' && '$$typeof' in this) {\n return undefined;\n }\n if (typeof value === 'bigint') {\n return `__bigint__:${value}`;\n }\n if (value !== null && typeof value === 'object') {\n const id = seen.get(value);\n if (id !== undefined) {\n return `__object__:${id}`;\n }\n seen.set(value, nextId);\n nextId += 1;\n }\n return value;\n });\n return result ?? `__top__:${typeof input}`;\n } catch {\n return '__unserializable__';\n }\n}","'use client';\n\nimport * as React from 'react';\nexport const CompositeListContext = /*#__PURE__*/React.createContext({\n register: () => {},\n unregister: () => {},\n subscribeMapChange: () => {\n return () => {};\n },\n elementsRef: {\n current: []\n },\n nextIndexRef: {\n current: 0\n }\n});\nif (process.env.NODE_ENV !== \"production\") CompositeListContext.displayName = \"CompositeListContext\";\nexport function useCompositeListContext() {\n return React.useContext(CompositeListContext);\n}","/* eslint-disable no-bitwise */\n'use client';\n\nimport * as React from 'react';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { CompositeListContext } from \"./CompositeListContext.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Provides context for a list of items in a composite component.\n * @internal\n */\nexport function CompositeList(props) {\n const {\n children,\n elementsRef,\n labelsRef,\n onMapChange: onMapChangeProp\n } = props;\n const onMapChange = useStableCallback(onMapChangeProp);\n const nextIndexRef = React.useRef(0);\n const listeners = useRefWithInit(createListeners).current;\n\n // We use a stable `map` to avoid O(n^2) re-allocation costs for large lists.\n // `mapTick` is our re-render trigger mechanism. We also need to update the\n // elements and label refs, but there's a lot of async work going on and sometimes\n // the effect that handles `onMapChange` gets called after those refs have been\n // filled, and we don't want to lose those values by setting their lengths to `0`.\n // We also need to have them at the proper length because floating-ui uses that\n // information for list navigation.\n\n const map = useRefWithInit(createMap).current;\n // `mapTick` uses a counter rather than objects for low precision-loss risk and better memory efficiency\n const [mapTick, setMapTick] = React.useState(0);\n const lastTickRef = React.useRef(mapTick);\n const register = useStableCallback((node, metadata) => {\n map.set(node, metadata ?? null);\n lastTickRef.current += 1;\n setMapTick(lastTickRef.current);\n });\n const unregister = useStableCallback(node => {\n map.delete(node);\n lastTickRef.current += 1;\n setMapTick(lastTickRef.current);\n });\n const sortedMap = React.useMemo(() => {\n // `mapTick` is the `useMemo` trigger as `map` is stable.\n disableEslintWarning(mapTick);\n const newMap = new Map();\n // Filter out disconnected elements before sorting to avoid inconsistent\n // compareDocumentPosition results when elements are detached from the DOM.\n const sortedNodes = Array.from(map.keys()).filter(node => node.isConnected).sort(sortByDocumentPosition);\n sortedNodes.forEach((node, index) => {\n const metadata = map.get(node) ?? {};\n newMap.set(node, {\n ...metadata,\n index\n });\n });\n return newMap;\n }, [map, mapTick]);\n useIsoLayoutEffect(() => {\n if (typeof MutationObserver !== 'function' || sortedMap.size === 0) {\n return undefined;\n }\n const mutationObserver = new MutationObserver(entries => {\n const diff = new Set();\n const updateDiff = node => diff.has(node) ? diff.delete(node) : diff.add(node);\n entries.forEach(entry => {\n entry.removedNodes.forEach(updateDiff);\n entry.addedNodes.forEach(updateDiff);\n });\n if (diff.size === 0) {\n lastTickRef.current += 1;\n setMapTick(lastTickRef.current);\n }\n });\n sortedMap.forEach((_, node) => {\n if (node.parentElement) {\n mutationObserver.observe(node.parentElement, {\n childList: true\n });\n }\n });\n return () => {\n mutationObserver.disconnect();\n };\n }, [sortedMap]);\n useIsoLayoutEffect(() => {\n const shouldUpdateLengths = lastTickRef.current === mapTick;\n if (shouldUpdateLengths) {\n if (elementsRef.current.length !== sortedMap.size) {\n elementsRef.current.length = sortedMap.size;\n }\n if (labelsRef && labelsRef.current.length !== sortedMap.size) {\n labelsRef.current.length = sortedMap.size;\n }\n nextIndexRef.current = sortedMap.size;\n }\n onMapChange(sortedMap);\n }, [onMapChange, sortedMap, elementsRef, labelsRef, mapTick]);\n useIsoLayoutEffect(() => {\n return () => {\n elementsRef.current = [];\n };\n }, [elementsRef]);\n useIsoLayoutEffect(() => {\n return () => {\n if (labelsRef) {\n labelsRef.current = [];\n }\n };\n }, [labelsRef]);\n const subscribeMapChange = useStableCallback(fn => {\n listeners.add(fn);\n return () => {\n listeners.delete(fn);\n };\n });\n useIsoLayoutEffect(() => {\n listeners.forEach(l => l(sortedMap));\n }, [listeners, sortedMap]);\n const contextValue = React.useMemo(() => ({\n register,\n unregister,\n subscribeMapChange,\n elementsRef,\n labelsRef,\n nextIndexRef\n }), [register, unregister, subscribeMapChange, elementsRef, labelsRef, nextIndexRef]);\n return /*#__PURE__*/_jsx(CompositeListContext.Provider, {\n value: contextValue,\n children: children\n });\n}\nfunction createMap() {\n return new Map();\n}\nfunction createListeners() {\n return new Set();\n}\nfunction sortByDocumentPosition(a, b) {\n const position = a.compareDocumentPosition(b);\n if (position & Node.DOCUMENT_POSITION_FOLLOWING || position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return -1;\n }\n if (position & Node.DOCUMENT_POSITION_PRECEDING || position & Node.DOCUMENT_POSITION_CONTAINS) {\n return 1;\n }\n return 0;\n}\nfunction disableEslintWarning(_) {}","'use client';\n\nimport * as React from 'react';\n/**\n * @internal\n */\nexport const DirectionContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") DirectionContext.displayName = \"DirectionContext\";\nexport function useDirection() {\n const context = React.useContext(DirectionContext);\n return context?.direction ?? 'ltr';\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useCompositeListContext } from \"./CompositeListContext.js\";\nexport let IndexGuessBehavior = /*#__PURE__*/function (IndexGuessBehavior) {\n IndexGuessBehavior[IndexGuessBehavior[\"None\"] = 0] = \"None\";\n IndexGuessBehavior[IndexGuessBehavior[\"GuessFromOrder\"] = 1] = \"GuessFromOrder\";\n return IndexGuessBehavior;\n}({});\n\n/**\n * Used to register a list item and its index (DOM position) in the `CompositeList`.\n */\nexport function useCompositeListItem(params = {}) {\n const {\n label,\n metadata,\n textRef,\n indexGuessBehavior,\n index: externalIndex\n } = params;\n const {\n register,\n unregister,\n subscribeMapChange,\n elementsRef,\n labelsRef,\n nextIndexRef\n } = useCompositeListContext();\n const indexRef = React.useRef(-1);\n const [index, setIndex] = React.useState(externalIndex ?? (indexGuessBehavior === IndexGuessBehavior.GuessFromOrder ? () => {\n if (indexRef.current === -1) {\n const newIndex = nextIndexRef.current;\n nextIndexRef.current += 1;\n indexRef.current = newIndex;\n }\n return indexRef.current;\n } : -1));\n const componentRef = React.useRef(null);\n const ref = React.useCallback(node => {\n componentRef.current = node;\n if (index !== -1 && node !== null) {\n elementsRef.current[index] = node;\n if (labelsRef) {\n const isLabelDefined = label !== undefined;\n labelsRef.current[index] = isLabelDefined ? label : textRef?.current?.textContent ?? node.textContent;\n }\n }\n }, [index, elementsRef, labelsRef, label, textRef]);\n useIsoLayoutEffect(() => {\n if (externalIndex != null) {\n return undefined;\n }\n const node = componentRef.current;\n if (node) {\n register(node, metadata);\n return () => {\n unregister(node);\n };\n }\n return undefined;\n }, [externalIndex, register, unregister, metadata]);\n useIsoLayoutEffect(() => {\n if (externalIndex != null) {\n return undefined;\n }\n return subscribeMapChange(map => {\n const i = componentRef.current ? map.get(componentRef.current)?.index : null;\n if (i != null) {\n setIndex(i);\n }\n });\n }, [externalIndex, subscribeMapChange, setIndex]);\n return React.useMemo(() => ({\n ref,\n index\n }), [index, ref]);\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ComboboxRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxRootContext.displayName = \"ComboboxRootContext\";\nexport const ComboboxFloatingContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxFloatingContext.displayName = \"ComboboxFloatingContext\";\nexport const ComboboxDerivedItemsContext = /*#__PURE__*/React.createContext(undefined);\n// `inputValue` can't be placed in the store.\n// https://github.com/mui/base-ui/issues/2703\nif (process.env.NODE_ENV !== \"production\") ComboboxDerivedItemsContext.displayName = \"ComboboxDerivedItemsContext\";\nexport const ComboboxInputValueContext = /*#__PURE__*/React.createContext('');\nif (process.env.NODE_ENV !== \"production\") ComboboxInputValueContext.displayName = \"ComboboxInputValueContext\";\nexport function useComboboxRootContext() {\n const context = React.useContext(ComboboxRootContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ComboboxRootContext is missing. Combobox parts must be placed within <Combobox.Root>.' : _formatErrorMessage(22));\n }\n return context;\n}\nexport function useComboboxFloatingContext() {\n const context = React.useContext(ComboboxFloatingContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ComboboxFloatingContext is missing. Combobox parts must be placed within <Combobox.Root>.' : _formatErrorMessage(23));\n }\n return context;\n}\nexport function useComboboxDerivedItemsContext() {\n const context = React.useContext(ComboboxDerivedItemsContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ComboboxItemsContext is missing. Combobox parts must be placed within <Combobox.Root>.' : _formatErrorMessage(24));\n }\n return context;\n}\nexport function useComboboxInputValueContext() {\n return React.useContext(ComboboxInputValueContext);\n}","export const defaultItemEquality = (itemValue, selectedValue) => Object.is(itemValue, selectedValue);\nexport function compareItemEquality(itemValue, selectedValue, comparer) {\n if (itemValue == null || selectedValue == null) {\n return Object.is(itemValue, selectedValue);\n }\n return comparer(itemValue, selectedValue);\n}\nexport function selectedValueIncludes(selectedValues, itemValue, comparer) {\n if (!selectedValues || selectedValues.length === 0) {\n return false;\n }\n return selectedValues.some(selectedValue => {\n if (selectedValue === undefined) {\n return false;\n }\n return compareItemEquality(itemValue, selectedValue, comparer);\n });\n}\nexport function findItemIndex(itemValues, selectedValue, comparer) {\n if (!itemValues || itemValues.length === 0) {\n return -1;\n }\n return itemValues.findIndex(itemValue => {\n if (itemValue === undefined) {\n return false;\n }\n return compareItemEquality(itemValue, selectedValue, comparer);\n });\n}\nexport function removeItem(selectedValues, itemValue, comparer) {\n return selectedValues.filter(selectedValue => !compareItemEquality(itemValue, selectedValue, comparer));\n}","export function serializeValue(value) {\n if (value == null) {\n return '';\n }\n if (typeof value === 'string') {\n return value;\n }\n try {\n return JSON.stringify(value);\n } catch {\n return String(value);\n }\n}","'use client';\n\nimport * as React from 'react';\nimport { serializeValue } from \"./serializeValue.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isGroupedItems(items) {\n return items != null && items.length > 0 && typeof items[0] === 'object' && items[0] != null && 'items' in items[0];\n}\n\n/**\n * Checks if the items array contains an item with a null value that has a non-null label.\n */\nexport function hasNullItemLabel(items) {\n if (!Array.isArray(items)) {\n return items != null && 'null' in items;\n }\n const arrayItems = items;\n if (isGroupedItems(arrayItems)) {\n for (const group of arrayItems) {\n for (const item of group.items) {\n if (item && item.value == null && item.label != null) {\n return true;\n }\n }\n }\n return false;\n }\n for (const item of arrayItems) {\n if (item && item.value == null && item.label != null) {\n return true;\n }\n }\n return false;\n}\nexport function stringifyAsLabel(item, itemToStringLabel) {\n if (itemToStringLabel && item != null) {\n return itemToStringLabel(item) ?? '';\n }\n if (item && typeof item === 'object') {\n if ('label' in item && item.label != null) {\n return String(item.label);\n }\n if ('value' in item) {\n return String(item.value);\n }\n }\n return serializeValue(item);\n}\nexport function stringifyAsValue(item, itemToStringValue) {\n if (itemToStringValue && item != null) {\n return itemToStringValue(item) ?? '';\n }\n if (item && typeof item === 'object' && 'value' in item && 'label' in item) {\n return serializeValue(item.value);\n }\n return serializeValue(item);\n}\nexport function resolveSelectedLabel(value, items, itemToStringLabel) {\n function fallback() {\n return stringifyAsLabel(value, itemToStringLabel);\n }\n if (itemToStringLabel && value != null) {\n return itemToStringLabel(value);\n }\n\n // Custom object with explicit label takes precedence\n if (value && typeof value === 'object' && 'label' in value && value.label != null) {\n return value.label;\n }\n\n // Items provided as plain record map\n if (items && !Array.isArray(items)) {\n return items[value] ?? fallback();\n }\n\n // Items provided as array (flat or grouped)\n if (Array.isArray(items)) {\n const arrayItems = items;\n const flatItems = isGroupedItems(arrayItems) ? arrayItems.flatMap(group => group.items) : arrayItems;\n if (value == null || typeof value !== 'object') {\n const match = flatItems.find(item => item.value === value);\n if (match && match.label != null) {\n return match.label;\n }\n return fallback();\n }\n\n // Object without explicit label: try matching by its `value` property\n if ('value' in value) {\n const match = flatItems.find(item => item && item.value === value.value);\n if (match && match.label != null) {\n return match.label;\n }\n }\n }\n return fallback();\n}\nexport function resolveMultipleLabels(values, items, itemToStringLabel) {\n return values.reduce((acc, value, index) => {\n if (index > 0) {\n acc.push(', ');\n }\n acc.push(/*#__PURE__*/_jsx(React.Fragment, {\n children: resolveSelectedLabel(value, items, itemToStringLabel)\n }, index));\n return acc;\n }, []);\n}","import { createSelector } from '@base-ui/utils/store';\nimport { compareItemEquality } from \"../utils/itemEquality.js\";\nimport { hasNullItemLabel } from \"../utils/resolveValueLabel.js\";\nexport const selectors = {\n id: createSelector(state => state.id),\n labelId: createSelector(state => state.labelId),\n items: createSelector(state => state.items),\n selectedValue: createSelector(state => state.selectedValue),\n hasSelectionChips: createSelector(state => {\n const selectedValue = state.selectedValue;\n return Array.isArray(selectedValue) && selectedValue.length > 0;\n }),\n hasSelectedValue: createSelector(state => {\n const {\n selectedValue,\n selectionMode\n } = state;\n if (selectedValue == null) {\n return false;\n }\n if (selectionMode === 'multiple' && Array.isArray(selectedValue)) {\n return selectedValue.length > 0;\n }\n return true;\n }),\n hasNullItemLabel: createSelector((state, enabled) => {\n return enabled ? hasNullItemLabel(state.items) : false;\n }),\n open: createSelector(state => state.open),\n mounted: createSelector(state => state.mounted),\n forceMounted: createSelector(state => state.forceMounted),\n inline: createSelector(state => state.inline),\n activeIndex: createSelector(state => state.activeIndex),\n selectedIndex: createSelector(state => state.selectedIndex),\n isActive: createSelector((state, index) => state.activeIndex === index),\n isSelected: createSelector((state, itemValue) => {\n const comparer = state.isItemEqualToValue;\n const selectedValue = state.selectedValue;\n if (Array.isArray(selectedValue)) {\n return selectedValue.some(selectedItem => compareItemEquality(itemValue, selectedItem, comparer));\n }\n return compareItemEquality(itemValue, selectedValue, comparer);\n }),\n transitionStatus: createSelector(state => state.transitionStatus),\n popupProps: createSelector(state => state.popupProps),\n inputProps: createSelector(state => state.inputProps),\n triggerProps: createSelector(state => state.triggerProps),\n getItemProps: createSelector(state => state.getItemProps),\n positionerElement: createSelector(state => state.positionerElement),\n listElement: createSelector(state => state.listElement),\n triggerElement: createSelector(state => state.triggerElement),\n inputElement: createSelector(state => state.inputElement),\n inputGroupElement: createSelector(state => state.inputGroupElement),\n popupSide: createSelector(state => state.popupSide),\n openMethod: createSelector(state => state.openMethod),\n inputInsidePopup: createSelector(state => state.inputInsidePopup),\n selectionMode: createSelector(state => state.selectionMode),\n name: createSelector(state => state.name),\n form: createSelector(state => state.form),\n disabled: createSelector(state => state.disabled),\n readOnly: createSelector(state => state.readOnly),\n required: createSelector(state => state.required),\n grid: createSelector(state => state.grid),\n virtualized: createSelector(state => state.virtualized),\n itemToStringLabel: createSelector(state => state.itemToStringLabel),\n isItemEqualToValue: createSelector(state => state.isItemEqualToValue),\n modal: createSelector(state => state.modal),\n autoHighlight: createSelector(state => state.autoHighlight),\n submitOnItemClick: createSelector(state => state.submitOnItemClick)\n};","export let FieldControlDataAttributes = /*#__PURE__*/function (FieldControlDataAttributes) {\n /**\n * Present when the field is disabled.\n */\n FieldControlDataAttributes[\"disabled\"] = \"data-disabled\";\n /**\n * Present when the field is in valid state.\n */\n FieldControlDataAttributes[\"valid\"] = \"data-valid\";\n /**\n * Present when the field is in invalid state.\n */\n FieldControlDataAttributes[\"invalid\"] = \"data-invalid\";\n /**\n * Present when the field has been touched.\n */\n FieldControlDataAttributes[\"touched\"] = \"data-touched\";\n /**\n * Present when the field's value has changed.\n */\n FieldControlDataAttributes[\"dirty\"] = \"data-dirty\";\n /**\n * Present when the field is filled.\n */\n FieldControlDataAttributes[\"filled\"] = \"data-filled\";\n /**\n * Present when the field control is focused.\n */\n FieldControlDataAttributes[\"focused\"] = \"data-focused\";\n return FieldControlDataAttributes;\n}({});","import { FieldControlDataAttributes } from \"../control/FieldControlDataAttributes.js\";\nexport const DEFAULT_VALIDITY_STATE = {\n badInput: false,\n customError: false,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valid: null,\n valueMissing: false\n};\nexport const DEFAULT_FIELD_STATE_ATTRIBUTES = {\n valid: null,\n touched: false,\n dirty: false,\n filled: false,\n focused: false\n};\nexport const DEFAULT_FIELD_ROOT_STATE = {\n disabled: false,\n ...DEFAULT_FIELD_STATE_ATTRIBUTES\n};\nexport const fieldValidityMapping = {\n valid(value) {\n if (value === null) {\n return null;\n }\n if (value) {\n return {\n [FieldControlDataAttributes.valid]: ''\n };\n }\n return {\n [FieldControlDataAttributes.invalid]: ''\n };\n }\n};","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { NOOP } from \"../../utils/noop.js\";\nimport { DEFAULT_FIELD_ROOT_STATE, DEFAULT_FIELD_STATE_ATTRIBUTES, DEFAULT_VALIDITY_STATE } from \"../utils/constants.js\";\nimport { EMPTY_OBJECT } from \"../../utils/constants.js\";\nexport const FieldRootContext = /*#__PURE__*/React.createContext({\n invalid: undefined,\n name: undefined,\n validityData: {\n state: DEFAULT_VALIDITY_STATE,\n errors: [],\n error: '',\n value: '',\n initialValue: null\n },\n setValidityData: NOOP,\n disabled: undefined,\n touched: DEFAULT_FIELD_STATE_ATTRIBUTES.touched,\n setTouched: NOOP,\n dirty: DEFAULT_FIELD_STATE_ATTRIBUTES.dirty,\n setDirty: NOOP,\n filled: DEFAULT_FIELD_STATE_ATTRIBUTES.filled,\n setFilled: NOOP,\n focused: DEFAULT_FIELD_STATE_ATTRIBUTES.focused,\n setFocused: NOOP,\n validate: () => null,\n validationMode: 'onSubmit',\n validationDebounceTime: 0,\n shouldValidateOnChange: () => false,\n state: DEFAULT_FIELD_ROOT_STATE,\n markedDirtyRef: {\n current: false\n },\n registerFieldControl: NOOP,\n validation: {\n getValidationProps: (props = EMPTY_OBJECT) => props,\n getInputValidationProps: (props = EMPTY_OBJECT) => props,\n inputRef: {\n current: null\n },\n commit: async () => {}\n }\n});\nif (process.env.NODE_ENV !== \"production\") FieldRootContext.displayName = \"FieldRootContext\";\nexport function useFieldRootContext(optional = true) {\n const context = React.useContext(FieldRootContext);\n if (context.setValidityData === NOOP && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: FieldRootContext is missing. Field parts must be placed within <Field.Root>.' : _formatErrorMessage(28));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useFieldRootContext } from \"./FieldRootContext.js\";\nexport function useRegisterFieldControl(controlRef, params) {\n const {\n enabled = true,\n getValue,\n id,\n value\n } = params;\n const {\n registerFieldControl\n } = useFieldRootContext();\n const sourceRef = React.useRef(null);\n if (!sourceRef.current) {\n sourceRef.current = Symbol();\n }\n useIsoLayoutEffect(() => {\n const source = sourceRef.current;\n if (!source || !enabled) {\n return undefined;\n }\n registerFieldControl(source, {\n controlRef,\n getValue,\n id,\n value\n });\n return () => {\n registerFieldControl(source, undefined);\n };\n }, [controlRef, enabled, getValue, id, registerFieldControl, value]);\n}","'use client';\n\nimport * as React from 'react';\nimport { NOOP } from \"../utils/noop.js\";\nexport const FormContext = /*#__PURE__*/React.createContext({\n formRef: {\n current: {\n fields: new Map()\n }\n },\n errors: {},\n clearErrors: NOOP,\n validationMode: 'onSubmit',\n submitAttemptedRef: {\n current: false\n }\n});\nif (process.env.NODE_ENV !== \"production\") FormContext.displayName = \"FormContext\";\nexport function useFormContext() {\n return React.useContext(FormContext);\n}","'use client';\n\nimport * as React from 'react';\nimport { NOOP } from \"../utils/noop.js\";\n/**\n * A context for providing [labelable elements](https://html.spec.whatwg.org/multipage/forms.html#category-label)\\\n * with an accessible name (label) and description.\n */\nexport const LabelableContext = /*#__PURE__*/React.createContext({\n controlId: undefined,\n registerControlId: NOOP,\n labelId: undefined,\n setLabelId: NOOP,\n messageIds: [],\n setMessageIds: NOOP,\n getDescriptionProps: externalProps => externalProps\n});\nif (process.env.NODE_ENV !== \"production\") LabelableContext.displayName = \"LabelableContext\";\nexport function useLabelableContext() {\n return React.useContext(LabelableContext);\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { isElement } from '@floating-ui/utils/dom';\nimport { NOOP } from \"../utils/noop.js\";\nimport { useBaseUiId } from \"../utils/useBaseUiId.js\";\nimport { useLabelableContext } from \"./LabelableContext.js\";\nexport function useLabelableId(params = {}) {\n const {\n id,\n implicit = false,\n controlRef\n } = params;\n const {\n controlId,\n registerControlId\n } = useLabelableContext();\n const defaultId = useBaseUiId(id);\n const controlIdForEffect = implicit ? controlId : undefined;\n const controlSourceRef = useRefWithInit(() => Symbol('labelable-control'));\n const hasRegisteredRef = React.useRef(false);\n const hadExplicitIdRef = React.useRef(id != null);\n const unregisterControlId = useStableCallback(() => {\n if (!hasRegisteredRef.current || registerControlId === NOOP) {\n return;\n }\n hasRegisteredRef.current = false;\n registerControlId(controlSourceRef.current, undefined);\n });\n useIsoLayoutEffect(() => {\n if (registerControlId === NOOP) {\n return undefined;\n }\n let nextId;\n if (implicit) {\n const elem = controlRef?.current;\n if (isElement(elem) && elem.closest('label') != null) {\n nextId = id ?? null;\n } else {\n nextId = controlIdForEffect ?? defaultId;\n }\n } else if (id != null) {\n hadExplicitIdRef.current = true;\n nextId = id;\n } else if (hadExplicitIdRef.current) {\n nextId = defaultId;\n } else {\n unregisterControlId();\n return undefined;\n }\n if (nextId === undefined) {\n unregisterControlId();\n return undefined;\n }\n hasRegisteredRef.current = true;\n registerControlId(controlSourceRef.current, nextId);\n return undefined;\n }, [id, controlRef, controlIdForEffect, registerControlId, implicit, defaultId, controlSourceRef, unregisterControlId]);\n React.useEffect(() => {\n return unregisterControlId;\n }, [unregisterControlId]);\n return controlId ?? defaultId;\n}","import { stringifyAsLabel } from \"../../../utils/resolveValueLabel.js\";\n/**\n * Enhanced filter using Intl.Collator for more robust string matching.\n * Uses the provided `itemToStringLabel` function if available, otherwise falls back to:\n * • When `item` is an object with a `value` property, that property is used.\n * • When `item` is a primitive (e.g. `string`), it is used directly.\n */\nexport function createCollatorItemFilter(collatorFilter, itemToStringLabel) {\n return (item, query) => {\n if (item == null) {\n return false;\n }\n const itemString = stringifyAsLabel(item, itemToStringLabel);\n return collatorFilter.contains(itemString, query);\n };\n}\n\n/**\n * Enhanced filter for single selection mode using Intl.Collator that shows all items\n * when query is empty or matches the current selection, making it easier to browse options.\n */\nexport function createSingleSelectionCollatorFilter(collatorFilter, itemToStringLabel, selectedValue) {\n return (item, query) => {\n if (item == null) {\n return false;\n }\n if (!query) {\n return true;\n }\n const itemString = stringifyAsLabel(item, itemToStringLabel);\n const selectedString = selectedValue != null ? stringifyAsLabel(selectedValue, itemToStringLabel) : '';\n\n // Handle case-insensitive matching consistently\n if (selectedString && collatorFilter.contains(selectedString, query) && selectedString.length === query.length) {\n return true;\n }\n return collatorFilter.contains(itemString, query);\n };\n}","'use client';\n\nimport * as React from 'react';\nimport { createCollatorItemFilter, createSingleSelectionCollatorFilter } from \"./index.js\";\nimport { stringifyAsLabel } from \"../../../utils/resolveValueLabel.js\";\nconst filterCache = new Map();\nfunction stringifyLocale(locale) {\n if (Array.isArray(locale)) {\n return locale.map(value => stringifyLocale(value)).join(',');\n }\n if (locale == null) {\n return '';\n }\n return String(locale);\n}\nfunction getFilter(options = {}) {\n const mergedOptions = {\n usage: 'search',\n sensitivity: 'base',\n ignorePunctuation: true,\n ...options\n };\n const cacheKey = `${stringifyLocale(options.locale)}|${JSON.stringify(mergedOptions)}`;\n const cachedFilter = filterCache.get(cacheKey);\n if (cachedFilter) {\n return cachedFilter;\n }\n const collator = new Intl.Collator(options.locale, mergedOptions);\n const filter = {\n contains(item, query, itemToString) {\n if (!query) {\n return true;\n }\n const itemString = stringifyAsLabel(item, itemToString);\n for (let i = 0; i <= itemString.length - query.length; i += 1) {\n if (collator.compare(itemString.slice(i, i + query.length), query) === 0) {\n return true;\n }\n }\n return false;\n },\n startsWith(item, query, itemToString) {\n if (!query) {\n return true;\n }\n const itemString = stringifyAsLabel(item, itemToString);\n return collator.compare(itemString.slice(0, query.length), query) === 0;\n },\n endsWith(item, query, itemToString) {\n if (!query) {\n return true;\n }\n const itemString = stringifyAsLabel(item, itemToString);\n const queryLength = query.length;\n return itemString.length >= queryLength && collator.compare(itemString.slice(itemString.length - queryLength), query) === 0;\n }\n };\n filterCache.set(cacheKey, filter);\n return filter;\n}\n\n/**\n * Matches items against a query using `Intl.Collator` for robust string matching.\n */\nexport const useCoreFilter = getFilter;\n/**\n * Matches items against a query using `Intl.Collator` for robust string matching.\n */\nexport function useComboboxFilter(options = {}) {\n const {\n multiple = false,\n value,\n ...collatorOptions\n } = options;\n const coreFilter = getFilter(collatorOptions);\n const contains = React.useCallback((item, query, itemToString) => {\n if (multiple) {\n return createCollatorItemFilter(coreFilter, itemToString)(item, query);\n }\n return createSingleSelectionCollatorFilter(coreFilter, itemToString, value)(item, query);\n }, [coreFilter, value, multiple]);\n return React.useMemo(() => ({\n contains,\n startsWith: coreFilter.startsWith,\n endsWith: coreFilter.endsWith\n }), [contains, coreFilter]);\n}","export const NO_ACTIVE_VALUE = Symbol('none');\nexport const INITIAL_LAST_HIGHLIGHT = {\n value: NO_ACTIVE_VALUE,\n index: -1\n};","'use client';\n\nimport * as React from 'react';\nimport { useControlled } from '@base-ui/utils/useControlled';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useOnFirstRender } from '@base-ui/utils/useOnFirstRender';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { useValueAsRef } from '@base-ui/utils/useValueAsRef';\nimport { visuallyHidden, visuallyHiddenInput } from '@base-ui/utils/visuallyHidden';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { Store, useStore } from '@base-ui/utils/store';\nimport { useDismiss, useFloatingRootContext, useInteractions, useListNavigation, useClick } from \"../../floating-ui-react/index.js\";\nimport { contains, getTarget } from \"../../floating-ui-react/utils.js\";\nimport { createChangeEventDetails, createGenericEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { REASONS } from \"../../utils/reasons.js\";\nimport { ComboboxFloatingContext, ComboboxDerivedItemsContext, ComboboxRootContext, ComboboxInputValueContext } from \"./ComboboxRootContext.js\";\nimport { selectors } from \"../store.js\";\nimport { useOpenChangeComplete } from \"../../utils/useOpenChangeComplete.js\";\nimport { useFieldRootContext } from \"../../field/root/FieldRootContext.js\";\nimport { useRegisterFieldControl } from \"../../field/root/useRegisterFieldControl.js\";\nimport { useFormContext } from \"../../form/FormContext.js\";\nimport { useLabelableId } from \"../../labelable-provider/useLabelableId.js\";\nimport { createCollatorItemFilter, createSingleSelectionCollatorFilter } from \"./utils/index.js\";\nimport { useCoreFilter } from \"./utils/useFilter.js\";\nimport { useTransitionStatus } from \"../../utils/useTransitionStatus.js\";\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from \"../../utils/constants.js\";\nimport { useOpenInteractionType } from \"../../utils/useOpenInteractionType.js\";\nimport { useValueChanged } from \"../../utils/useValueChanged.js\";\nimport { NOOP } from \"../../utils/noop.js\";\nimport { stringifyAsLabel, stringifyAsValue, isGroupedItems } from \"../../utils/resolveValueLabel.js\";\nimport { compareItemEquality, defaultItemEquality, findItemIndex, removeItem, selectedValueIncludes } from \"../../utils/itemEquality.js\";\nimport { INITIAL_LAST_HIGHLIGHT, NO_ACTIVE_VALUE } from \"./utils/constants.js\";\n\n/**\n * @internal\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function AriaCombobox(props) {\n const {\n id: idProp,\n onOpenChangeComplete: onOpenChangeCompleteProp,\n defaultSelectedValue = null,\n selectedValue: selectedValueProp,\n onSelectedValueChange,\n defaultInputValue: defaultInputValueProp,\n inputValue: inputValueProp,\n open: openProp,\n defaultOpen = false,\n selectionMode = 'none',\n onItemHighlighted: onItemHighlightedProp,\n name: nameProp,\n form,\n disabled: disabledProp = false,\n readOnly = false,\n required = false,\n inputRef: inputRefProp,\n grid = false,\n items,\n filteredItems: filteredItemsProp,\n filter: filterProp,\n openOnInputClick = true,\n autoHighlight = false,\n keepHighlight = false,\n highlightItemOnHover = true,\n loopFocus = true,\n itemToStringLabel,\n itemToStringValue,\n isItemEqualToValue = defaultItemEquality,\n virtualized = false,\n inline: inlineProp = false,\n fillInputOnItemPress = true,\n modal = false,\n limit = -1,\n autoComplete = 'list',\n formAutoComplete,\n locale,\n submitOnItemClick = false\n } = props;\n const {\n clearErrors\n } = useFormContext();\n const {\n setDirty,\n validityData,\n shouldValidateOnChange,\n setFilled,\n name: fieldName,\n disabled: fieldDisabled,\n setTouched,\n setFocused,\n validationMode,\n validation\n } = useFieldRootContext();\n const id = useLabelableId({\n id: idProp\n });\n const collatorFilter = useCoreFilter({\n locale\n });\n const [queryChangedAfterOpen, setQueryChangedAfterOpen] = React.useState(false);\n const [closeQuery, setCloseQuery] = React.useState(null);\n const listRef = React.useRef([]);\n const labelsRef = React.useRef([]);\n const popupRef = React.useRef(null);\n const inputRef = React.useRef(null);\n const startDismissRef = React.useRef(null);\n const endDismissRef = React.useRef(null);\n const emptyRef = React.useRef(null);\n const keyboardActiveRef = React.useRef(true);\n const hadInputClearRef = React.useRef(false);\n const chipsContainerRef = React.useRef(null);\n const clearRef = React.useRef(null);\n const selectionEventRef = React.useRef(null);\n const lastHighlightRef = React.useRef(INITIAL_LAST_HIGHLIGHT);\n const pendingQueryHighlightRef = React.useRef(null);\n\n /**\n * Contains the currently visible list of item values post-filtering.\n */\n const valuesRef = React.useRef([]);\n /**\n * Contains all item values in a stable, unfiltered order.\n * This is only used when `items` prop is not provided.\n * It accumulates values on first mount and does not remove them on unmount due to\n * filtering, providing a stable index for selected value tracking.\n */\n const allValuesRef = React.useRef([]);\n const disabled = fieldDisabled || disabledProp;\n const name = fieldName ?? nameProp;\n const multiple = selectionMode === 'multiple';\n const single = selectionMode === 'single';\n const hasInputValue = inputValueProp !== undefined || defaultInputValueProp !== undefined;\n const hasItems = items !== undefined;\n const hasFilteredItemsProp = filteredItemsProp !== undefined;\n let autoHighlightMode;\n if (autoHighlight === 'always') {\n autoHighlightMode = 'always';\n } else {\n autoHighlightMode = autoHighlight ? 'input-change' : false;\n }\n const [selectedValue, setSelectedValueUnwrapped] = useControlled({\n controlled: selectedValueProp,\n default: multiple ? defaultSelectedValue ?? EMPTY_ARRAY : defaultSelectedValue,\n name: 'Combobox',\n state: 'selectedValue'\n });\n const filter = React.useMemo(() => {\n if (filterProp === null) {\n return () => true;\n }\n if (filterProp !== undefined) {\n return filterProp;\n }\n if (single && !queryChangedAfterOpen) {\n return createSingleSelectionCollatorFilter(collatorFilter, itemToStringLabel, selectedValue);\n }\n return createCollatorItemFilter(collatorFilter, itemToStringLabel);\n }, [filterProp, single, selectedValue, queryChangedAfterOpen, collatorFilter, itemToStringLabel]);\n\n // If neither inputValue nor defaultInputValue are provided, derive it from the\n // selected value for single mode so the input reflects the selection on mount.\n const initialDefaultInputValue = useRefWithInit(() => {\n if (hasInputValue) {\n return defaultInputValueProp ?? '';\n }\n if (single) {\n return stringifyAsLabel(selectedValue, itemToStringLabel);\n }\n return '';\n }).current;\n const [inputValue, setInputValueUnwrapped] = useControlled({\n controlled: inputValueProp,\n default: initialDefaultInputValue,\n name: 'Combobox',\n state: 'inputValue'\n });\n const [open, setOpenUnwrapped] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n name: 'Combobox',\n state: 'open'\n });\n const isGrouped = isGroupedItems(items);\n const query = closeQuery ?? (inputValue === '' ? '' : String(inputValue).trim());\n const selectedLabelString = single ? stringifyAsLabel(selectedValue, itemToStringLabel) : '';\n const shouldBypassFiltering = single && !queryChangedAfterOpen && query !== '' && selectedLabelString !== '' && selectedLabelString.length === query.length && collatorFilter.contains(selectedLabelString, query);\n const filterQuery = shouldBypassFiltering ? '' : query;\n const shouldIgnoreExternalFiltering = hasItems && hasFilteredItemsProp && shouldBypassFiltering;\n const flatItems = React.useMemo(() => {\n if (!items) {\n return EMPTY_ARRAY;\n }\n if (isGrouped) {\n return items.flatMap(group => group.items);\n }\n return items;\n }, [items, isGrouped]);\n const filteredItems = React.useMemo(() => {\n if (filteredItemsProp && !shouldIgnoreExternalFiltering) {\n return filteredItemsProp;\n }\n if (!items) {\n return EMPTY_ARRAY;\n }\n if (isGrouped) {\n const groupedItems = items;\n const resultingGroups = [];\n let currentCount = 0;\n for (const group of groupedItems) {\n if (limit > -1 && currentCount >= limit) {\n break;\n }\n const candidateItems = filterQuery === '' ? group.items : group.items.filter(item => filter(item, filterQuery, itemToStringLabel));\n if (candidateItems.length === 0) {\n continue;\n }\n const remainingLimit = limit > -1 ? limit - currentCount : Infinity;\n const itemsToTake = candidateItems.slice(0, remainingLimit);\n if (itemsToTake.length > 0) {\n const newGroup = {\n ...group,\n items: itemsToTake\n };\n resultingGroups.push(newGroup);\n currentCount += itemsToTake.length;\n }\n }\n return resultingGroups;\n }\n if (filterQuery === '') {\n return limit > -1 ? flatItems.slice(0, limit) :\n // The cast here is done as `flatItems` is readonly.\n // valuesRef.current, a mutable ref, can be set to `flatFilteredItems`, which may\n // reference this exact readonly value, creating a mutation risk.\n // However, <Combobox.Item> can never mutate this value as the mutating effect\n // bails early when `items` is provided, and this is only ever returned\n // when `items` is provided due to the early return at the top of this hook.\n flatItems;\n }\n const limitedItems = [];\n for (const item of flatItems) {\n if (limit > -1 && limitedItems.length >= limit) {\n break;\n }\n if (filter(item, filterQuery, itemToStringLabel)) {\n limitedItems.push(item);\n }\n }\n return limitedItems;\n }, [filteredItemsProp, shouldIgnoreExternalFiltering, items, isGrouped, filterQuery, limit, filter, itemToStringLabel, flatItems]);\n const flatFilteredItems = React.useMemo(() => {\n if (isGrouped) {\n const groups = filteredItems;\n return groups.flatMap(g => g.items);\n }\n return filteredItems;\n }, [filteredItems, isGrouped]);\n const store = useRefWithInit(() => new Store({\n id,\n labelId: undefined,\n selectedValue,\n open,\n filter,\n query,\n items,\n selectionMode,\n listRef,\n labelsRef,\n popupRef,\n emptyRef,\n inputRef,\n startDismissRef,\n endDismissRef,\n keyboardActiveRef,\n chipsContainerRef,\n clearRef,\n valuesRef,\n allValuesRef,\n selectionEventRef,\n name,\n form,\n disabled,\n readOnly,\n required,\n grid,\n isGrouped,\n virtualized,\n openOnInputClick,\n itemToStringLabel,\n isItemEqualToValue,\n modal,\n autoHighlight: autoHighlightMode,\n submitOnItemClick,\n hasInputValue,\n mounted: false,\n forceMounted: false,\n transitionStatus: 'idle',\n inline: inlineProp,\n activeIndex: null,\n selectedIndex: null,\n popupProps: {},\n inputProps: {},\n triggerProps: {},\n positionerElement: null,\n listElement: null,\n triggerElement: null,\n inputElement: null,\n inputGroupElement: null,\n popupSide: null,\n openMethod: null,\n inputInsidePopup: true,\n onOpenChangeComplete: onOpenChangeCompleteProp || NOOP,\n // Placeholder callbacks replaced on first render\n setOpen: NOOP,\n setInputValue: NOOP,\n setSelectedValue: NOOP,\n setIndices: NOOP,\n onItemHighlighted: NOOP,\n handleSelection: NOOP,\n getItemProps: () => EMPTY_OBJECT,\n forceMount: NOOP,\n requestSubmit: NOOP\n })).current;\n const fieldRawValue = selectionMode === 'none' ? inputValue : selectedValue;\n const fieldStringValue = React.useMemo(() => {\n if (selectionMode === 'none') {\n return fieldRawValue;\n }\n if (Array.isArray(selectedValue)) {\n return selectedValue.map(value => stringifyAsValue(value, itemToStringValue));\n }\n return stringifyAsValue(selectedValue, itemToStringValue);\n }, [fieldRawValue, itemToStringValue, selectionMode, selectedValue]);\n const onItemHighlighted = useStableCallback(onItemHighlightedProp);\n const onOpenChangeComplete = useStableCallback(onOpenChangeCompleteProp);\n const activeIndex = useStore(store, selectors.activeIndex);\n const selectedIndex = useStore(store, selectors.selectedIndex);\n const positionerElement = useStore(store, selectors.positionerElement);\n const listElement = useStore(store, selectors.listElement);\n const triggerElement = useStore(store, selectors.triggerElement);\n const inputElement = useStore(store, selectors.inputElement);\n const inputGroupElement = useStore(store, selectors.inputGroupElement);\n const inline = useStore(store, selectors.inline);\n const inputInsidePopup = useStore(store, selectors.inputInsidePopup);\n const triggerRef = useValueAsRef(triggerElement);\n const {\n mounted,\n setMounted,\n transitionStatus\n } = useTransitionStatus(open);\n const {\n openMethod,\n triggerProps\n } = useOpenInteractionType(open);\n const getFieldValue = useStableCallback(() => fieldStringValue);\n useRegisterFieldControl(inputInsidePopup ? triggerRef : inputRef, {\n id,\n value: fieldRawValue,\n getValue: getFieldValue\n });\n const forceMount = useStableCallback(() => {\n if (items) {\n // Ensure typeahead works on a closed list.\n labelsRef.current = flatFilteredItems.map(item => stringifyAsLabel(item, itemToStringLabel));\n } else {\n store.set('forceMounted', true);\n }\n });\n const initialSelectedValueRef = React.useRef(selectedValue);\n useIsoLayoutEffect(() => {\n // Ensure the values and labels are registered for programmatic value changes.\n if (selectedValue !== initialSelectedValueRef.current) {\n forceMount();\n }\n }, [forceMount, selectedValue]);\n const setIndices = useStableCallback(options => {\n store.update(options);\n const type = options.type || 'none';\n if (options.activeIndex === undefined) {\n return;\n }\n if (options.activeIndex === null) {\n if (lastHighlightRef.current !== INITIAL_LAST_HIGHLIGHT) {\n lastHighlightRef.current = INITIAL_LAST_HIGHLIGHT;\n onItemHighlighted(undefined, createGenericEventDetails(type, undefined, {\n index: -1\n }));\n }\n } else {\n const activeValue = valuesRef.current[options.activeIndex];\n lastHighlightRef.current = {\n value: activeValue,\n index: options.activeIndex\n };\n onItemHighlighted(activeValue, createGenericEventDetails(type, undefined, {\n index: options.activeIndex\n }));\n }\n });\n const setInputValue = useStableCallback((next, eventDetails) => {\n hadInputClearRef.current = eventDetails.reason === REASONS.inputClear;\n props.onInputValueChange?.(next, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n\n // If user is typing, ensure we don't auto-highlight on open due to a race\n // with the post-open effect that sets this flag.\n if (eventDetails.reason === REASONS.inputChange) {\n const event = eventDetails.event;\n const inputType = event.inputType;\n // Treat composition commits as typed input; autofill may omit `inputType` or\n // report `insertReplacementText`.\n const isTypedInput = event.type === 'compositionend' || inputType != null && inputType !== '' && inputType !== 'insertReplacementText';\n if (isTypedInput) {\n const hasQuery = next.trim() !== '';\n if (hasQuery) {\n setQueryChangedAfterOpen(true);\n }\n // Defer index updates until after the filtered items have been derived to ensure\n // `onItemHighlighted` receives the latest item.\n pendingQueryHighlightRef.current = {\n hasQuery\n };\n if (hasQuery && autoHighlightMode && store.state.activeIndex == null) {\n store.set('activeIndex', 0);\n }\n }\n }\n setInputValueUnwrapped(next);\n });\n const setOpen = useStableCallback((nextOpen, eventDetails) => {\n if (open === nextOpen) {\n return;\n }\n\n // If the `Empty` component is not used, the positioner or popup should be hidden\n // with CSS. In this case, allow the Escape key to bubble to close a parent popup\n // if there are no items to show.\n if (eventDetails.reason === 'escape-key' && hasItems && flatFilteredItems.length === 0 && !store.state.emptyRef.current) {\n eventDetails.allowPropagation();\n }\n props.onOpenChange?.(nextOpen, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n if (!nextOpen && queryChangedAfterOpen) {\n if (single) {\n if (!inline) {\n setCloseQuery(query);\n }\n // Avoid a flicker when closing the popup with an empty query.\n if (query === '') {\n setQueryChangedAfterOpen(false);\n }\n } else if (multiple) {\n if (inline || inputInsidePopup) {\n setIndices({\n activeIndex: null\n });\n } else {\n // Freeze the current query so filtering remains stable while exiting.\n setCloseQuery(query);\n }\n // Clear the input immediately on close while retaining filtering via closeQuery for exit animations\n // if the input is outside the popup.\n setInputValue('', createChangeEventDetails(REASONS.inputClear, eventDetails.event));\n }\n }\n setOpenUnwrapped(nextOpen);\n if (!nextOpen && inputInsidePopup && (eventDetails.reason === REASONS.focusOut || eventDetails.reason === REASONS.outsidePress)) {\n setTouched(true);\n setFocused(false);\n if (validationMode === 'onBlur') {\n const valueToValidate = selectionMode === 'none' ? inputValue : selectedValue;\n validation.commit(valueToValidate);\n }\n }\n });\n const setSelectedValue = useStableCallback((nextValue, eventDetails) => {\n // Cast to `any` due to conditional value type (single vs. multiple).\n // The runtime implementation already ensures the correct value shape.\n onSelectedValueChange?.(nextValue, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n setSelectedValueUnwrapped(nextValue);\n const shouldFillInput = selectionMode === 'none' && popupRef.current && fillInputOnItemPress || single && !store.state.inputInsidePopup;\n if (shouldFillInput) {\n setInputValue(stringifyAsLabel(nextValue, itemToStringLabel), createChangeEventDetails(eventDetails.reason, eventDetails.event));\n }\n if (single && nextValue != null && eventDetails.reason !== REASONS.inputChange && queryChangedAfterOpen && !inline) {\n setCloseQuery(query);\n }\n });\n const handleSelection = useStableCallback((event, passedValue) => {\n let itemValue = passedValue;\n if (itemValue === undefined) {\n if (activeIndex === null) {\n return;\n }\n itemValue = valuesRef.current[activeIndex];\n }\n const targetEl = getTarget(event);\n const overrideEvent = selectionEventRef.current ?? event;\n selectionEventRef.current = null;\n const eventDetails = createChangeEventDetails(REASONS.itemPress, overrideEvent);\n\n // Let the link handle the click.\n const href = targetEl?.closest('a')?.getAttribute('href');\n if (href) {\n if (href.startsWith('#')) {\n setOpen(false, eventDetails);\n }\n return;\n }\n if (multiple) {\n const currentSelectedValue = Array.isArray(selectedValue) ? selectedValue : [];\n const isCurrentlySelected = selectedValueIncludes(currentSelectedValue, itemValue, store.state.isItemEqualToValue);\n const nextValue = isCurrentlySelected ? removeItem(currentSelectedValue, itemValue, store.state.isItemEqualToValue) : [...currentSelectedValue, itemValue];\n setSelectedValue(nextValue, eventDetails);\n const wasFiltering = inputRef.current ? inputRef.current.value.trim() !== '' : false;\n if (!wasFiltering) {\n return;\n }\n if (store.state.inputInsidePopup) {\n setInputValue('', createChangeEventDetails(REASONS.inputClear, eventDetails.event));\n } else {\n setOpen(false, eventDetails);\n }\n } else {\n setSelectedValue(itemValue, eventDetails);\n setOpen(false, eventDetails);\n }\n });\n const requestSubmit = useStableCallback(() => {\n if (!store.state.submitOnItemClick) {\n return;\n }\n const formElement = validation.inputRef.current?.form ?? store.state.inputElement?.form;\n if (formElement && typeof formElement.requestSubmit === 'function') {\n formElement.requestSubmit();\n }\n });\n const handleUnmount = useStableCallback(() => {\n setMounted(false);\n onOpenChangeComplete?.(false);\n setQueryChangedAfterOpen(false);\n setCloseQuery(null);\n if (selectionMode === 'none') {\n setIndices({\n activeIndex: null,\n selectedIndex: null\n });\n } else {\n setIndices({\n activeIndex: null\n });\n }\n\n // Multiple selection mode:\n // If the user typed a filter and didn't select in multiple mode, clear the input\n // after close completes to avoid mid-exit flicker and start fresh on next open.\n if (multiple && inputRef.current && inputRef.current.value !== '' && !hadInputClearRef.current) {\n setInputValue('', createChangeEventDetails(REASONS.inputClear));\n }\n\n // Single selection mode:\n // - If input is rendered inside the popup, clear it so the next open is blank\n // - If input is outside the popup, sync it to the selected value\n if (single) {\n if (store.state.inputInsidePopup) {\n if (inputRef.current && inputRef.current.value !== '') {\n setInputValue('', createChangeEventDetails(REASONS.inputClear));\n }\n } else {\n const stringVal = stringifyAsLabel(selectedValue, itemToStringLabel);\n if (inputRef.current && inputRef.current.value !== stringVal) {\n // If no selection was made, treat this as clearing the typed filter.\n const reason = stringVal === '' ? REASONS.inputClear : REASONS.none;\n setInputValue(stringVal, createChangeEventDetails(reason));\n }\n }\n }\n });\n\n // Support composing the Dialog component around an inline combobox.\n // `[role=\"dialog\"]` is more interoperable than using a context, e.g. it can work\n // with third-party modal libraries, though the limitation is that the closest\n // `role=dialog` part must be the animated element.\n const resolvedPopupRef = React.useMemo(() => {\n if (inline && positionerElement) {\n return {\n current: positionerElement.closest('[role=\"dialog\"]')\n };\n }\n return popupRef;\n }, [inline, positionerElement]);\n useOpenChangeComplete({\n enabled: !props.actionsRef,\n open,\n ref: resolvedPopupRef,\n onComplete() {\n if (!open) {\n handleUnmount();\n }\n }\n });\n React.useImperativeHandle(props.actionsRef, () => ({\n unmount: handleUnmount\n }), [handleUnmount]);\n useIsoLayoutEffect(function syncSelectedIndex() {\n if (open || selectionMode === 'none') {\n return;\n }\n const registry = items ? flatItems : allValuesRef.current;\n if (multiple) {\n const currentValue = Array.isArray(selectedValue) ? selectedValue : [];\n const lastValue = currentValue[currentValue.length - 1];\n const lastIndex = findItemIndex(registry, lastValue, isItemEqualToValue);\n setIndices({\n selectedIndex: lastIndex === -1 ? null : lastIndex\n });\n } else {\n const index = findItemIndex(registry, selectedValue, isItemEqualToValue);\n setIndices({\n selectedIndex: index === -1 ? null : index\n });\n }\n }, [open, selectedValue, items, selectionMode, flatItems, multiple, isItemEqualToValue, setIndices]);\n useIsoLayoutEffect(() => {\n if (items) {\n valuesRef.current = flatFilteredItems;\n listRef.current.length = flatFilteredItems.length;\n }\n }, [items, flatFilteredItems]);\n useIsoLayoutEffect(() => {\n const pendingHighlight = pendingQueryHighlightRef.current;\n if (pendingHighlight) {\n if (pendingHighlight.hasQuery) {\n if (autoHighlightMode) {\n store.set('activeIndex', 0);\n }\n } else if (autoHighlightMode === 'always') {\n store.set('activeIndex', 0);\n }\n pendingQueryHighlightRef.current = null;\n }\n if (!open && !inline) {\n return;\n }\n const shouldUseFlatFilteredItems = hasItems || hasFilteredItemsProp;\n const candidateItems = shouldUseFlatFilteredItems ? flatFilteredItems : valuesRef.current;\n const storeActiveIndex = store.state.activeIndex;\n if (storeActiveIndex == null) {\n if (autoHighlightMode === 'always' && candidateItems.length > 0) {\n store.set('activeIndex', 0);\n return;\n }\n if (lastHighlightRef.current !== INITIAL_LAST_HIGHLIGHT) {\n lastHighlightRef.current = INITIAL_LAST_HIGHLIGHT;\n store.state.onItemHighlighted(undefined, createGenericEventDetails(REASONS.none, undefined, {\n index: -1\n }));\n }\n return;\n }\n if (storeActiveIndex >= candidateItems.length) {\n if (lastHighlightRef.current !== INITIAL_LAST_HIGHLIGHT) {\n lastHighlightRef.current = INITIAL_LAST_HIGHLIGHT;\n store.state.onItemHighlighted(undefined, createGenericEventDetails(REASONS.none, undefined, {\n index: -1\n }));\n }\n store.set('activeIndex', null);\n return;\n }\n const itemValue = candidateItems[storeActiveIndex];\n const previouslyHighlightedItemValue = lastHighlightRef.current.value;\n const isSameItem = previouslyHighlightedItemValue !== NO_ACTIVE_VALUE && compareItemEquality(itemValue, previouslyHighlightedItemValue, store.state.isItemEqualToValue);\n if (lastHighlightRef.current.index !== storeActiveIndex || !isSameItem) {\n lastHighlightRef.current = {\n value: itemValue,\n index: storeActiveIndex\n };\n store.state.onItemHighlighted(itemValue, createGenericEventDetails(REASONS.none, undefined, {\n index: storeActiveIndex\n }));\n }\n }, [activeIndex, autoHighlightMode, hasFilteredItemsProp, hasItems, flatFilteredItems, inline, open, store]);\n useIsoLayoutEffect(() => {\n if (selectionMode === 'none') {\n setFilled(String(inputValue) !== '');\n return;\n }\n setFilled(multiple ? Array.isArray(selectedValue) && selectedValue.length > 0 : selectedValue != null);\n }, [setFilled, selectionMode, inputValue, selectedValue, multiple]);\n\n // Ensures that the active index is not set to 0 when the list is empty.\n // This avoids needing to press ArrowDown twice under certain conditions.\n React.useEffect(() => {\n if (hasItems && autoHighlightMode && flatFilteredItems.length === 0) {\n setIndices({\n activeIndex: null\n });\n }\n }, [hasItems, autoHighlightMode, flatFilteredItems.length, setIndices]);\n useValueChanged(query, () => {\n if (!open || query === '' || query === String(initialDefaultInputValue)) {\n return;\n }\n setQueryChangedAfterOpen(true);\n });\n useValueChanged(selectedValue, () => {\n if (selectionMode === 'none') {\n return;\n }\n clearErrors(name);\n setDirty(selectedValue !== validityData.initialValue);\n if (shouldValidateOnChange()) {\n validation.commit(selectedValue);\n } else {\n validation.commit(selectedValue, true);\n }\n if (single && !hasInputValue && !inputInsidePopup) {\n const nextInputValue = stringifyAsLabel(selectedValue, itemToStringLabel);\n if (inputValue !== nextInputValue) {\n setInputValue(nextInputValue, createChangeEventDetails(REASONS.none));\n }\n }\n });\n useValueChanged(inputValue, () => {\n if (selectionMode !== 'none') {\n return;\n }\n clearErrors(name);\n setDirty(inputValue !== validityData.initialValue);\n if (shouldValidateOnChange()) {\n validation.commit(inputValue);\n } else {\n validation.commit(inputValue, true);\n }\n });\n useValueChanged(items, () => {\n if (!single || hasInputValue || inputInsidePopup || queryChangedAfterOpen) {\n return;\n }\n const nextInputValue = stringifyAsLabel(selectedValue, itemToStringLabel);\n if (inputValue !== nextInputValue) {\n setInputValue(nextInputValue, createChangeEventDetails(REASONS.none));\n }\n });\n const floatingRootContext = useFloatingRootContext({\n open: inline ? true : open,\n onOpenChange: setOpen,\n elements: {\n reference: inputInsidePopup ? triggerElement : inputElement,\n floating: positionerElement\n }\n });\n let ariaHasPopup;\n let ariaExpanded;\n if (!inline) {\n ariaHasPopup = grid ? 'grid' : 'listbox';\n ariaExpanded = open ? 'true' : 'false';\n }\n const role = React.useMemo(() => {\n const isPlainInput = inputElement?.tagName === 'INPUT';\n // During SSR and initial hydration, the input ref is not available yet.\n // Assume an input-like control so combobox ARIA attributes are present.\n const shouldTreatAsInput = inputElement == null || isPlainInput;\n const shouldApplyAria = shouldTreatAsInput || open;\n const reference = shouldTreatAsInput ? {\n autoComplete: 'off',\n spellCheck: 'false',\n autoCorrect: 'off',\n autoCapitalize: 'none'\n } : {};\n if (shouldApplyAria) {\n reference.role = 'combobox';\n reference['aria-expanded'] = ariaExpanded;\n reference['aria-haspopup'] = ariaHasPopup;\n reference['aria-controls'] = open ? listElement?.id : undefined;\n reference['aria-autocomplete'] = autoComplete;\n }\n return {\n reference,\n floating: {\n role: 'presentation'\n }\n };\n }, [inputElement, open, ariaExpanded, ariaHasPopup, listElement?.id, autoComplete]);\n const click = useClick(floatingRootContext, {\n enabled: !readOnly && !disabled && openOnInputClick,\n event: 'mousedown-only',\n toggle: false,\n // Apply a small delay for touch to let mobile viewport/keyboard positioning settle.\n // This avoids top-bottom flip flickers if the preferred position is \"top\" when first tapping.\n touchOpenDelay: inputInsidePopup ? 0 : 100,\n reason: REASONS.inputPress\n });\n const dismiss = useDismiss(floatingRootContext, {\n enabled: !readOnly && !disabled && !inline,\n outsidePressEvent: {\n mouse: 'sloppy',\n // The visual viewport (affected by the mobile software keyboard) can be\n // somewhat small. The user may want to scroll the screen to see more of\n // the popup.\n touch: 'intentional'\n },\n // Without a popup, let the Escape key bubble the event up to other popups' handlers.\n bubbles: inline ? true : undefined,\n outsidePress(event) {\n const target = getTarget(event);\n return !contains(triggerElement, target) && !contains(clearRef.current, target) && !contains(chipsContainerRef.current, target) && !contains(inputGroupElement, target);\n }\n });\n const listNavigation = useListNavigation(floatingRootContext, {\n enabled: !readOnly && !disabled,\n id,\n listRef,\n activeIndex,\n selectedIndex,\n virtual: true,\n loopFocus,\n allowEscape: loopFocus && !autoHighlightMode,\n focusItemOnOpen: queryChangedAfterOpen || selectionMode === 'none' && !autoHighlightMode ? false : 'auto',\n focusItemOnHover: highlightItemOnHover,\n resetOnPointerLeave: !keepHighlight,\n // `cols` > 1 enables grid navigation.\n // Since <Combobox.Row> infers column sizes (and is required when building a grid),\n // it works correctly even with a value of `2`.\n // Floating UI tests don't require `role=\"row\"` wrappers, so retains the number API.\n cols: grid ? 2 : 1,\n orientation: grid ? 'horizontal' : undefined,\n disabledIndices: EMPTY_ARRAY,\n onNavigate(nextActiveIndex, event) {\n // Retain the highlight only while actually transitioning out or closed.\n if (!event && !open || transitionStatus === 'ending') {\n return;\n }\n if (!event) {\n setIndices({\n activeIndex: nextActiveIndex\n });\n } else {\n setIndices({\n activeIndex: nextActiveIndex,\n type: keyboardActiveRef.current ? 'keyboard' : 'pointer'\n });\n }\n }\n });\n const {\n getReferenceProps,\n getFloatingProps,\n getItemProps\n } = useInteractions([role, click, dismiss, listNavigation]);\n useOnFirstRender(() => {\n store.update({\n inline: inlineProp,\n popupProps: getFloatingProps(),\n inputProps: getReferenceProps(),\n triggerProps,\n getItemProps,\n setOpen,\n setInputValue,\n setSelectedValue,\n setIndices,\n onItemHighlighted,\n handleSelection,\n forceMount,\n requestSubmit\n });\n });\n useIsoLayoutEffect(() => {\n store.update({\n id,\n selectedValue,\n open,\n mounted,\n transitionStatus,\n items,\n inline: inlineProp,\n popupProps: getFloatingProps(),\n inputProps: getReferenceProps(),\n triggerProps,\n openMethod,\n getItemProps,\n selectionMode,\n name,\n form,\n disabled,\n readOnly,\n required,\n grid,\n isGrouped,\n virtualized,\n onOpenChangeComplete,\n openOnInputClick,\n itemToStringLabel,\n modal,\n autoHighlight: autoHighlightMode,\n isItemEqualToValue,\n submitOnItemClick,\n hasInputValue,\n requestSubmit\n });\n }, [store, id, selectedValue, open, mounted, transitionStatus, items, getFloatingProps, getReferenceProps, getItemProps, openMethod, triggerProps, selectionMode, name, disabled, readOnly, required, validation, grid, isGrouped, virtualized, onOpenChangeComplete, openOnInputClick, itemToStringLabel, modal, isItemEqualToValue, submitOnItemClick, hasInputValue, inlineProp, requestSubmit, autoHighlightMode, form]);\n const hiddenInputRef = useMergedRefs(inputRefProp, validation.inputRef);\n const itemsContextValue = React.useMemo(() => ({\n query,\n hasItems,\n filteredItems,\n flatFilteredItems\n }), [query, hasItems, filteredItems, flatFilteredItems]);\n const serializedValue = React.useMemo(() => {\n if (Array.isArray(fieldRawValue)) {\n return '';\n }\n return stringifyAsValue(fieldRawValue, itemToStringValue);\n }, [fieldRawValue, itemToStringValue]);\n const hasMultipleSelection = multiple && Array.isArray(selectedValue) && selectedValue.length > 0;\n const hiddenInputName = multiple || selectionMode === 'none' ? undefined : name;\n const hiddenInputs = React.useMemo(() => {\n if (!multiple || !Array.isArray(selectedValue) || !name) {\n return null;\n }\n return selectedValue.map(value => {\n const currentSerializedValue = stringifyAsValue(value, itemToStringValue);\n return /*#__PURE__*/_jsx(\"input\", {\n type: \"hidden\",\n form: form,\n name: name,\n value: currentSerializedValue\n }, currentSerializedValue);\n });\n }, [multiple, selectedValue, form, name, itemToStringValue]);\n const children = /*#__PURE__*/_jsxs(React.Fragment, {\n children: [props.children, /*#__PURE__*/_jsx(\"input\", {\n ...validation.getInputValidationProps({\n // Move focus when the hidden input is focused.\n onFocus() {\n if (inputInsidePopup) {\n triggerElement?.focus();\n return;\n }\n (inputRef.current || triggerElement)?.focus();\n },\n // Handle browser autofill.\n onChange(event) {\n // Workaround for https://github.com/facebook/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n const nextValue = event.currentTarget.value;\n const details = createChangeEventDetails(REASONS.none, event.nativeEvent);\n function handleChange() {\n // Browser autofill only writes a single scalar value.\n if (multiple) {\n return;\n }\n if (selectionMode === 'none') {\n setDirty(nextValue !== validityData.initialValue);\n setInputValue(nextValue, details);\n if (shouldValidateOnChange()) {\n validation.commit(nextValue);\n }\n return;\n }\n const matchingValue = valuesRef.current.find(v => {\n // Try matching by value first (e.g., \"US\" for country code)\n const candidateValue = stringifyAsValue(v, itemToStringValue);\n if (candidateValue.toLowerCase() === nextValue.toLowerCase()) {\n return true;\n }\n // Also try matching by label for browser autofill compatibility\n // (browsers autofill with displayed text like \"United States\", not the underlying value)\n const candidateLabel = stringifyAsLabel(v, itemToStringLabel);\n if (candidateLabel.toLowerCase() === nextValue.toLowerCase()) {\n return true;\n }\n return false;\n });\n if (matchingValue != null) {\n setDirty(matchingValue !== validityData.initialValue);\n setSelectedValue?.(matchingValue, details);\n if (shouldValidateOnChange()) {\n validation.commit(matchingValue);\n }\n }\n }\n if (items) {\n handleChange();\n } else {\n forceMount();\n queueMicrotask(handleChange);\n }\n }\n }),\n id: id && hiddenInputName == null ? `${id}-hidden-input` : undefined,\n form: form,\n name: hiddenInputName,\n autoComplete: formAutoComplete,\n disabled: disabled,\n required: required && !hasMultipleSelection,\n readOnly: readOnly,\n value: serializedValue,\n ref: hiddenInputRef,\n style: hiddenInputName ? visuallyHiddenInput : visuallyHidden,\n tabIndex: -1,\n \"aria-hidden\": true,\n suppressHydrationWarning: true\n }), hiddenInputs]\n });\n return /*#__PURE__*/_jsx(ComboboxRootContext.Provider, {\n value: store,\n children: /*#__PURE__*/_jsx(ComboboxFloatingContext.Provider, {\n value: floatingRootContext,\n children: /*#__PURE__*/_jsx(ComboboxDerivedItemsContext.Provider, {\n value: itemsContextValue,\n children: /*#__PURE__*/_jsx(ComboboxInputValueContext.Provider, {\n value: inputValue,\n children: children\n })\n })\n })\n });\n}","import { pressableTriggerOpenStateMapping } from \"../../utils/popupStateMapping.js\";\nimport { fieldValidityMapping } from \"../../field/utils/constants.js\";\nexport const triggerStateAttributesMapping = {\n ...pressableTriggerOpenStateMapping,\n ...fieldValidityMapping,\n popupSide: side => side ? {\n 'data-popup-side': side\n } : null,\n listEmpty: empty => empty ? {\n 'data-list-empty': ''\n } : null\n};","import { ownerWindow } from '@base-ui/utils/owner';\nexport function getPseudoElementBounds(element) {\n const elementRect = element.getBoundingClientRect();\n\n // Avoid \"Not implemented: window.getComputedStyle(elt, pseudoElt)\"\n if (process.env.NODE_ENV !== 'production') {\n return elementRect;\n }\n const win = ownerWindow(element);\n const beforeStyles = win.getComputedStyle(element, '::before');\n const afterStyles = win.getComputedStyle(element, '::after');\n const hasPseudoElements = beforeStyles.content !== 'none' || afterStyles.content !== 'none';\n if (!hasPseudoElements) {\n return elementRect;\n }\n\n // Get dimensions of pseudo-elements\n const beforeWidth = parseFloat(beforeStyles.width) || 0;\n const beforeHeight = parseFloat(beforeStyles.height) || 0;\n const afterWidth = parseFloat(afterStyles.width) || 0;\n const afterHeight = parseFloat(afterStyles.height) || 0;\n\n // Calculate max dimensions including pseudo-elements\n const totalWidth = Math.max(elementRect.width, beforeWidth, afterWidth);\n const totalHeight = Math.max(elementRect.height, beforeHeight, afterHeight);\n\n // Calculate the differences to extend the bounds\n const widthDiff = totalWidth - elementRect.width;\n const heightDiff = totalHeight - elementRect.height;\n return {\n left: elementRect.left - widthDiff / 2,\n right: elementRect.right + widthDiff / 2,\n top: elementRect.top - heightDiff / 2,\n bottom: elementRect.bottom + heightDiff / 2\n };\n}","'use client';\n\nexport function getDefaultLabelId(id) {\n return id == null ? undefined : `${id}-label`;\n}\nexport function resolveAriaLabelledBy(fieldLabelId, localLabelId) {\n return fieldLabelId ?? localLabelId;\n}","'use client';\n\nimport * as React from 'react';\nimport { useStore } from '@base-ui/utils/store';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { useButton } from \"../../use-button/index.js\";\nimport { useComboboxFloatingContext, useComboboxDerivedItemsContext, useComboboxInputValueContext, useComboboxRootContext } from \"../root/ComboboxRootContext.js\";\nimport { triggerStateAttributesMapping } from \"../utils/stateAttributesMapping.js\";\nimport { selectors } from \"../store.js\";\nimport { useFieldRootContext } from \"../../field/root/FieldRootContext.js\";\nimport { useLabelableContext } from \"../../labelable-provider/LabelableContext.js\";\nimport { stopEvent, contains, getTarget } from \"../../floating-ui-react/utils.js\";\nimport { getPseudoElementBounds } from \"../../utils/getPseudoElementBounds.js\";\nimport { createChangeEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { REASONS } from \"../../utils/reasons.js\";\nimport { useClick, useTypeahead } from \"../../floating-ui-react/index.js\";\nimport { useLabelableId } from \"../../labelable-provider/useLabelableId.js\";\nimport { resolveAriaLabelledBy } from \"../../utils/resolveAriaLabelledBy.js\";\nconst BOUNDARY_OFFSET = 2;\n\n/**\n * A button that opens the popup.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxTrigger = /*#__PURE__*/React.forwardRef(function ComboboxTrigger(componentProps, forwardedRef) {\n const {\n render,\n className,\n nativeButton = true,\n disabled: disabledProp = false,\n id: idProp,\n style,\n ...elementProps\n } = componentProps;\n const {\n state: fieldState,\n disabled: fieldDisabled,\n setTouched,\n setFocused,\n validationMode,\n validation\n } = useFieldRootContext();\n const {\n labelId: fieldLabelId\n } = useLabelableContext();\n const store = useComboboxRootContext();\n const {\n filteredItems\n } = useComboboxDerivedItemsContext();\n const selectionMode = useStore(store, selectors.selectionMode);\n const comboboxDisabled = useStore(store, selectors.disabled);\n const readOnly = useStore(store, selectors.readOnly);\n const required = useStore(store, selectors.required);\n const mounted = useStore(store, selectors.mounted);\n const popupSideValue = useStore(store, selectors.popupSide);\n const positionerElement = useStore(store, selectors.positionerElement);\n const listElement = useStore(store, selectors.listElement);\n const triggerProps = useStore(store, selectors.triggerProps);\n const triggerElement = useStore(store, selectors.triggerElement);\n const inputInsidePopup = useStore(store, selectors.inputInsidePopup);\n const rootId = useStore(store, selectors.id);\n const comboboxLabelId = useStore(store, selectors.labelId);\n const open = useStore(store, selectors.open);\n const selectedValue = useStore(store, selectors.selectedValue);\n const activeIndex = useStore(store, selectors.activeIndex);\n const selectedIndex = useStore(store, selectors.selectedIndex);\n const hasSelectedValue = useStore(store, selectors.hasSelectedValue);\n const floatingRootContext = useComboboxFloatingContext();\n const inputValue = useComboboxInputValueContext();\n const focusTimeout = useTimeout();\n const disabled = fieldDisabled || comboboxDisabled || disabledProp;\n const listEmpty = filteredItems.length === 0;\n const popupSide = mounted && positionerElement ? popupSideValue : null;\n useLabelableId({\n id: inputInsidePopup ? idProp : undefined\n });\n const id = inputInsidePopup ? idProp ?? rootId : idProp;\n const ariaLabelledBy = resolveAriaLabelledBy(fieldLabelId, comboboxLabelId);\n const currentPointerTypeRef = React.useRef('');\n function trackPointerType(event) {\n currentPointerTypeRef.current = event.pointerType;\n }\n const domReference = floatingRootContext.useState('domReferenceElement');\n\n // Update the floating root context to use the trigger element when it differs from the current reference.\n // This ensures useClick and useTypeahead attach handlers to the correct element.\n React.useEffect(() => {\n if (!inputInsidePopup) {\n return;\n }\n if (triggerElement && triggerElement !== domReference) {\n floatingRootContext.set('domReferenceElement', triggerElement);\n }\n }, [triggerElement, domReference, floatingRootContext, inputInsidePopup]);\n const {\n reference: triggerTypeaheadProps\n } = useTypeahead(floatingRootContext, {\n enabled: !open && !readOnly && !comboboxDisabled && selectionMode === 'single',\n listRef: store.state.labelsRef,\n activeIndex,\n selectedIndex,\n onMatch(index) {\n const nextSelectedValue = store.state.valuesRef.current[index];\n if (nextSelectedValue !== undefined) {\n store.state.setSelectedValue(nextSelectedValue, createChangeEventDetails('none'));\n }\n }\n });\n const {\n reference: triggerClickProps\n } = useClick(floatingRootContext, {\n enabled: !readOnly && !comboboxDisabled,\n event: 'mousedown'\n });\n const {\n buttonRef,\n getButtonProps\n } = useButton({\n native: nativeButton,\n disabled\n });\n const state = {\n ...fieldState,\n open,\n disabled,\n popupSide,\n listEmpty,\n placeholder: selectionMode === 'none' ? false : !hasSelectedValue\n };\n const setTriggerElement = useStableCallback(element => {\n store.set('triggerElement', element);\n });\n const element = useRenderElement('button', componentProps, {\n ref: [forwardedRef, buttonRef, setTriggerElement],\n state,\n props: [triggerProps, triggerClickProps, triggerTypeaheadProps, {\n id,\n tabIndex: inputInsidePopup ? 0 : -1,\n role: inputInsidePopup ? 'combobox' : undefined,\n 'aria-expanded': open ? 'true' : 'false',\n 'aria-haspopup': inputInsidePopup ? 'dialog' : 'listbox',\n 'aria-controls': open ? listElement?.id : undefined,\n 'aria-required': inputInsidePopup ? required || undefined : undefined,\n 'aria-labelledby': ariaLabelledBy,\n onPointerDown: trackPointerType,\n onPointerEnter: trackPointerType,\n onFocus() {\n setFocused(true);\n if (disabled || readOnly) {\n return;\n }\n focusTimeout.start(0, store.state.forceMount);\n },\n onBlur(event) {\n // If focus is moving into the popup, don't count it as a blur.\n if (contains(positionerElement, event.relatedTarget)) {\n return;\n }\n setTouched(true);\n setFocused(false);\n if (validationMode === 'onBlur') {\n const valueToValidate = selectionMode === 'none' ? inputValue : selectedValue;\n validation.commit(valueToValidate);\n }\n },\n onMouseDown(event) {\n if (disabled || readOnly) {\n return;\n }\n if (!inputInsidePopup) {\n floatingRootContext.set('domReferenceElement', event.currentTarget);\n }\n\n // Ensure items are registered for initial selection highlight.\n store.state.forceMount();\n if (currentPointerTypeRef.current !== 'touch') {\n store.state.inputRef.current?.focus();\n if (!inputInsidePopup) {\n event.preventDefault();\n }\n }\n if (open) {\n return;\n }\n const doc = ownerDocument(event.currentTarget);\n function handleMouseUp(mouseEvent) {\n if (!triggerElement) {\n return;\n }\n const mouseUpTarget = getTarget(mouseEvent);\n const positioner = store.state.positionerElement;\n const list = store.state.listElement;\n if (contains(triggerElement, mouseUpTarget) || contains(positioner, mouseUpTarget) || contains(list, mouseUpTarget) || mouseUpTarget === triggerElement) {\n return;\n }\n const bounds = getPseudoElementBounds(triggerElement);\n const withinHorizontal = mouseEvent.clientX >= bounds.left - BOUNDARY_OFFSET && mouseEvent.clientX <= bounds.right + BOUNDARY_OFFSET;\n const withinVertical = mouseEvent.clientY >= bounds.top - BOUNDARY_OFFSET && mouseEvent.clientY <= bounds.bottom + BOUNDARY_OFFSET;\n if (withinHorizontal && withinVertical) {\n return;\n }\n store.state.setOpen(false, createChangeEventDetails('cancel-open', mouseEvent));\n }\n if (inputInsidePopup) {\n doc.addEventListener('mouseup', handleMouseUp, {\n once: true\n });\n }\n },\n onKeyDown(event) {\n if (disabled || readOnly) {\n return;\n }\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n stopEvent(event);\n store.state.setOpen(true, createChangeEventDetails(REASONS.listNavigation, event.nativeEvent));\n store.state.inputRef.current?.focus();\n }\n }\n }, validation ? validation.getValidationProps(elementProps) : elementProps, getButtonProps],\n stateAttributesMapping: triggerStateAttributesMapping\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxTrigger.displayName = \"ComboboxTrigger\";","'use client';\n\nimport * as React from 'react';\nexport const ComboboxChipsContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxChipsContext.displayName = \"ComboboxChipsContext\";\nexport function useComboboxChipsContext() {\n return React.useContext(ComboboxChipsContext);\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ComboboxPositionerContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxPositionerContext.displayName = \"ComboboxPositionerContext\";\nexport function useComboboxPositionerContext(optional) {\n const context = React.useContext(ComboboxPositionerContext);\n if (context === undefined && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: <Combobox.Popup> and <Combobox.Arrow> must be used within the <Combobox.Positioner> component' : _formatErrorMessage(21));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { visuallyHiddenInput } from '@base-ui/utils/visuallyHidden';\nimport { useButton } from \"../../use-button/index.js\";\nimport { createChangeEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { REASONS } from \"../../utils/reasons.js\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * @internal\n */\nexport const ComboboxInternalDismissButton = /*#__PURE__*/React.forwardRef(function ComboboxInternalDismissButton(_, forwardedRef) {\n const store = useComboboxRootContext();\n const {\n buttonRef,\n getButtonProps\n } = useButton({\n native: false\n });\n const mergedRef = useMergedRefs(forwardedRef, buttonRef);\n const handleDismiss = useStableCallback(event => {\n store.state.setOpen(false, createChangeEventDetails(REASONS.closePress, event.nativeEvent, event.currentTarget));\n });\n const dismissProps = getButtonProps({\n onClick: handleDismiss\n });\n return /*#__PURE__*/_jsx(\"span\", {\n ref: mergedRef,\n ...dismissProps,\n \"aria-label\": \"Dismiss\",\n tabIndex: undefined,\n style: visuallyHiddenInput\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxInternalDismissButton.displayName = \"ComboboxInternalDismissButton\";","'use client';\n\nimport * as React from 'react';\nimport { useStore } from '@base-ui/utils/store';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { isAndroid, isFirefox } from '@base-ui/utils/detectBrowser';\nimport { useBaseUiId } from \"../../utils/useBaseUiId.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { useComboboxDerivedItemsContext, useComboboxInputValueContext, useComboboxRootContext } from \"../root/ComboboxRootContext.js\";\nimport { triggerStateAttributesMapping } from \"../utils/stateAttributesMapping.js\";\nimport { selectors } from \"../store.js\";\nimport { useFieldRootContext } from \"../../field/root/FieldRootContext.js\";\nimport { DEFAULT_FIELD_STATE_ATTRIBUTES } from \"../../field/utils/constants.js\";\nimport { useLabelableContext } from \"../../labelable-provider/LabelableContext.js\";\nimport { useComboboxChipsContext } from \"../chips/ComboboxChipsContext.js\";\nimport { stopEvent } from \"../../floating-ui-react/utils.js\";\nimport { useComboboxPositionerContext } from \"../positioner/ComboboxPositionerContext.js\";\nimport { createChangeEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { REASONS } from \"../../utils/reasons.js\";\nimport { useDirection } from \"../../direction-provider/DirectionContext.js\";\nimport { resolveAriaLabelledBy } from \"../../utils/resolveAriaLabelledBy.js\";\nimport { ComboboxInternalDismissButton } from \"../utils/ComboboxInternalDismissButton.js\";\n\n/**\n * A text input to search for items in the list.\n * Renders an `<input>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const ComboboxInput = /*#__PURE__*/React.forwardRef(function ComboboxInput(componentProps, forwardedRef) {\n const {\n render,\n className,\n disabled: disabledProp = false,\n id: idProp,\n style,\n ...elementProps\n } = componentProps;\n const {\n state: fieldState,\n disabled: fieldDisabled,\n setTouched,\n setFocused,\n validationMode,\n validation\n } = useFieldRootContext();\n const {\n labelId: fieldLabelId\n } = useLabelableContext();\n const comboboxChipsContext = useComboboxChipsContext();\n const positioning = useComboboxPositionerContext(true);\n const hasPositionerParent = Boolean(positioning);\n const store = useComboboxRootContext();\n const {\n filteredItems\n } = useComboboxDerivedItemsContext();\n // `inputValue` can't be placed in the store.\n // https://github.com/mui/base-ui/issues/2703\n const inputValue = useComboboxInputValueContext();\n const direction = useDirection();\n const required = useStore(store, selectors.required);\n const comboboxDisabled = useStore(store, selectors.disabled);\n const readOnly = useStore(store, selectors.readOnly);\n const name = useStore(store, selectors.name);\n const form = useStore(store, selectors.form);\n const selectionMode = useStore(store, selectors.selectionMode);\n const autoHighlightMode = useStore(store, selectors.autoHighlight);\n const inputProps = useStore(store, selectors.inputProps);\n const triggerProps = useStore(store, selectors.triggerProps);\n const open = useStore(store, selectors.open);\n const mounted = useStore(store, selectors.mounted);\n const selectedValue = useStore(store, selectors.selectedValue);\n const popupSideValue = useStore(store, selectors.popupSide);\n const positionerElement = useStore(store, selectors.positionerElement);\n const rootId = useStore(store, selectors.id);\n const inline = useStore(store, selectors.inline);\n const modal = useStore(store, selectors.modal);\n const autoHighlightEnabled = Boolean(autoHighlightMode);\n const popupSide = mounted && positionerElement ? popupSideValue : null;\n const disabled = fieldDisabled || comboboxDisabled || disabledProp;\n const listEmpty = filteredItems.length === 0;\n const isInsidePopup = hasPositionerParent || inline;\n const focusManagerModal = !isInsidePopup || modal;\n const id = useBaseUiId(idProp ?? (!isInsidePopup ? rootId : undefined));\n const ariaLabelledBy = resolveAriaLabelledBy(fieldLabelId, undefined);\n const fieldStateForInput = hasPositionerParent ? DEFAULT_FIELD_STATE_ATTRIBUTES : fieldState;\n const [composingValue, setComposingValue] = React.useState(null);\n const isComposingRef = React.useRef(false);\n const lastActiveIndexRef = React.useRef(null);\n const shouldRestoreActiveIndexRef = React.useRef(false);\n const setInputElement = useStableCallback(element => {\n const nextIsInsidePopup = hasPositionerParent || store.state.inline;\n if (nextIsInsidePopup && !store.state.hasInputValue) {\n store.state.setInputValue('', createChangeEventDetails(REASONS.none));\n }\n store.update({\n inputElement: element,\n inputInsidePopup: nextIsInsidePopup\n });\n });\n const validationProps = hasPositionerParent || !validation ? elementProps : validation.getValidationProps(elementProps);\n const state = {\n ...fieldStateForInput,\n open,\n disabled,\n readOnly,\n popupSide,\n listEmpty\n };\n function handleKeyDown(event) {\n if (!comboboxChipsContext) {\n return undefined;\n }\n let nextIndex;\n const {\n highlightedChipIndex\n } = comboboxChipsContext;\n const renderedChipsCount = comboboxChipsContext.chipsRef.current.length;\n if (highlightedChipIndex !== undefined) {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n if (highlightedChipIndex > 0) {\n nextIndex = highlightedChipIndex - 1;\n } else {\n nextIndex = undefined;\n }\n } else if (event.key === 'ArrowRight') {\n event.preventDefault();\n if (highlightedChipIndex < renderedChipsCount - 1) {\n nextIndex = highlightedChipIndex + 1;\n } else {\n nextIndex = undefined;\n }\n } else if (event.key === 'Backspace' || event.key === 'Delete') {\n event.preventDefault();\n // Move highlight appropriately after removal.\n const computedNextIndex = highlightedChipIndex >= selectedValue.length - 1 ? selectedValue.length - 2 : highlightedChipIndex;\n // If the computed index is negative, treat it as no highlight.\n nextIndex = computedNextIndex >= 0 ? computedNextIndex : undefined;\n store.state.setIndices({\n activeIndex: null,\n selectedIndex: null,\n type: 'keyboard'\n });\n }\n return nextIndex;\n }\n\n // Handle navigation when no chip is highlighted\n if (event.key === 'ArrowLeft' && (event.currentTarget.selectionStart ?? 0) === 0 && selectedValue.length > 0) {\n event.preventDefault();\n nextIndex = renderedChipsCount > 0 ? renderedChipsCount - 1 : undefined;\n } else if (event.key === 'Backspace' && event.currentTarget.value === '' && selectedValue.length > 0) {\n store.state.setIndices({\n activeIndex: null,\n selectedIndex: null,\n type: 'keyboard'\n });\n event.preventDefault();\n }\n return nextIndex;\n }\n const element = useRenderElement('input', componentProps, {\n state,\n ref: [forwardedRef, store.state.inputRef, setInputElement],\n props: [inputProps, triggerProps, {\n type: 'text',\n value: componentProps.value ?? composingValue ?? inputValue,\n 'aria-readonly': readOnly || undefined,\n 'aria-required': required || undefined,\n 'aria-labelledby': ariaLabelledBy,\n disabled,\n readOnly,\n required: selectionMode === 'none' ? required : undefined,\n form,\n ...(selectionMode === 'none' && name && {\n name\n }),\n id,\n onFocus() {\n setFocused(true);\n if (!inline || !shouldRestoreActiveIndexRef.current) {\n return;\n }\n shouldRestoreActiveIndexRef.current = false;\n const nextActiveIndex = lastActiveIndexRef.current;\n if (nextActiveIndex == null ||\n // `valuesRef` can be sparse, so guard against restoring a removed slot.\n !Object.hasOwn(store.state.valuesRef.current, nextActiveIndex)) {\n return;\n }\n store.state.setIndices({\n activeIndex: nextActiveIndex\n });\n },\n onBlur() {\n setTouched(true);\n setFocused(false);\n const activeIndex = store.state.activeIndex;\n if (inline && activeIndex !== null && autoHighlightMode !== 'always') {\n lastActiveIndexRef.current = activeIndex;\n shouldRestoreActiveIndexRef.current = true;\n store.state.setIndices({\n activeIndex: null\n });\n }\n if (validationMode === 'onBlur') {\n const valueToValidate = selectionMode === 'none' ? inputValue : selectedValue;\n validation.commit(valueToValidate);\n }\n },\n onCompositionStart(event) {\n if (isAndroid) {\n return;\n }\n isComposingRef.current = true;\n setComposingValue(event.currentTarget.value);\n },\n onCompositionEnd(event) {\n isComposingRef.current = false;\n const next = event.currentTarget.value;\n setComposingValue(null);\n store.state.setInputValue(next, createChangeEventDetails(REASONS.inputChange, event.nativeEvent));\n },\n onChange(event) {\n // Autofill may not provide `inputType` (Chrome) or may report\n // `insertReplacementText` (Firefox).\n const inputType = event.nativeEvent.inputType;\n const autofillLikeInput = !inputType || inputType === 'insertReplacementText';\n const shouldOpenOnInput = isComposingRef.current || !autofillLikeInput;\n\n // During IME composition, avoid propagating controlled updates to prevent\n // filtering the options prematurely so `Empty` won't show incorrectly.\n // We can't rely on this check for Android due to how it handles composition\n // events with some keyboards (e.g. Samsung keyboard with predictive text on\n // treats all text as always-composing).\n // https://github.com/mui/base-ui/issues/2942\n if (isComposingRef.current) {\n const nextVal = event.currentTarget.value;\n setComposingValue(nextVal);\n if (nextVal === '' && !store.state.openOnInputClick && !store.state.inputInsidePopup) {\n store.state.setOpen(false, createChangeEventDetails(REASONS.inputClear, event.nativeEvent));\n }\n const trimmed = nextVal.trim();\n const shouldMaintainHighlight = autoHighlightEnabled && trimmed !== '';\n if (!readOnly && !disabled && trimmed) {\n if (shouldOpenOnInput) {\n store.state.setOpen(true, createChangeEventDetails(REASONS.inputChange, event.nativeEvent));\n if (!autoHighlightEnabled) {\n store.state.setIndices({\n activeIndex: null,\n selectedIndex: null,\n type: store.state.keyboardActiveRef.current ? 'keyboard' : 'pointer'\n });\n }\n }\n }\n if (open && store.state.activeIndex !== null && !shouldMaintainHighlight) {\n store.state.setIndices({\n activeIndex: null,\n selectedIndex: null,\n type: store.state.keyboardActiveRef.current ? 'keyboard' : 'pointer'\n });\n }\n return;\n }\n store.state.setInputValue(event.currentTarget.value, createChangeEventDetails(REASONS.inputChange, event.nativeEvent));\n const empty = event.currentTarget.value === '';\n const clearDetails = createChangeEventDetails(REASONS.inputClear, event.nativeEvent);\n if (empty && !store.state.inputInsidePopup) {\n if (selectionMode === 'single') {\n store.state.setSelectedValue(null, clearDetails);\n }\n if (!store.state.openOnInputClick) {\n store.state.setOpen(false, clearDetails);\n }\n }\n const trimmed = event.currentTarget.value.trim();\n if (!readOnly && !disabled && trimmed) {\n if (shouldOpenOnInput) {\n store.state.setOpen(true, createChangeEventDetails(REASONS.inputChange, event.nativeEvent));\n // When autoHighlight is enabled, keep the highlight (will be set to 0 in root).\n if (!autoHighlightEnabled) {\n store.state.setIndices({\n activeIndex: null,\n selectedIndex: null,\n type: store.state.keyboardActiveRef.current ? 'keyboard' : 'pointer'\n });\n }\n }\n }\n\n // When the user types, ensure the list resets its highlight so that\n // virtual focus returns to the input (aria-activedescendant is\n // cleared).\n if (open && store.state.activeIndex !== null && !autoHighlightEnabled) {\n store.state.setIndices({\n activeIndex: null,\n selectedIndex: null,\n type: store.state.keyboardActiveRef.current ? 'keyboard' : 'pointer'\n });\n }\n },\n onKeyDown(event) {\n if (disabled || readOnly) {\n return;\n }\n if (event.ctrlKey || event.shiftKey || event.altKey || event.metaKey) {\n return;\n }\n store.state.keyboardActiveRef.current = true;\n const input = event.currentTarget;\n const scrollAmount = input.scrollWidth - input.clientWidth;\n const isRTL = direction === 'rtl';\n if (event.key === 'Home') {\n stopEvent(event);\n const cursor = isFirefox && isRTL ? input.value.length : 0;\n input.setSelectionRange(cursor, cursor);\n input.scrollLeft = 0;\n return;\n }\n if (event.key === 'End') {\n stopEvent(event);\n const cursor = isFirefox && isRTL ? 0 : input.value.length;\n input.setSelectionRange(cursor, cursor);\n input.scrollLeft = isRTL ? -scrollAmount : scrollAmount;\n return;\n }\n if (!mounted && event.key === 'Escape') {\n const isClear = selectionMode === 'multiple' && Array.isArray(selectedValue) ? selectedValue.length === 0 : selectedValue === null;\n const details = createChangeEventDetails(REASONS.escapeKey, event.nativeEvent);\n const value = selectionMode === 'multiple' ? [] : null;\n store.state.setInputValue('', details);\n store.state.setSelectedValue(value, details);\n if (!isClear && !store.state.inline && !details.isPropagationAllowed) {\n event.stopPropagation();\n }\n return;\n }\n\n // Handle deletion when no chip is highlighted and the input is empty.\n if (comboboxChipsContext && event.key === 'Backspace' && input.value === '' && comboboxChipsContext.highlightedChipIndex === undefined && Array.isArray(selectedValue) && selectedValue.length > 0) {\n const renderedChipsCount = comboboxChipsContext.chipsRef.current.length;\n const removalIndex = renderedChipsCount > 0 ? renderedChipsCount - 1 : selectedValue.length - 1;\n const newValue = selectedValue.filter((_, index) => index !== removalIndex);\n // If the removed item was also the active (highlighted) item, clear highlight\n store.state.setIndices({\n activeIndex: null,\n selectedIndex: null,\n type: store.state.keyboardActiveRef.current ? 'keyboard' : 'pointer'\n });\n store.state.setSelectedValue(newValue, createChangeEventDetails(REASONS.none, event.nativeEvent));\n return;\n }\n const hadHighlightedChip = comboboxChipsContext?.highlightedChipIndex !== undefined;\n const nextIndex = handleKeyDown(event);\n comboboxChipsContext?.setHighlightedChipIndex(nextIndex);\n if (nextIndex !== undefined) {\n comboboxChipsContext?.chipsRef.current[nextIndex]?.focus();\n } else if (hadHighlightedChip) {\n store.state.inputRef.current?.focus();\n }\n\n // event.isComposing\n if (event.which === 229) {\n return;\n }\n if (event.key === 'Enter' && open) {\n const activeIndex = store.state.activeIndex;\n const nativeEvent = event.nativeEvent;\n if (activeIndex === null) {\n if (inline) {\n return;\n }\n\n // Allow form submission when no item is highlighted.\n store.state.setOpen(false, createChangeEventDetails(REASONS.none, nativeEvent));\n return;\n }\n stopEvent(event);\n const listItem = store.state.listRef.current[activeIndex];\n if (listItem) {\n store.state.selectionEventRef.current = nativeEvent;\n listItem.click();\n store.state.selectionEventRef.current = null;\n }\n }\n },\n onPointerMove() {\n store.state.keyboardActiveRef.current = false;\n },\n onPointerDown() {\n store.state.keyboardActiveRef.current = false;\n }\n }, validationProps],\n stateAttributesMapping: triggerStateAttributesMapping\n });\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [open && focusManagerModal && /*#__PURE__*/_jsx(ComboboxInternalDismissButton, {\n ref: store.state.startDismissRef\n }), element]\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxInput.displayName = \"ComboboxInput\";","import { isElement } from '@floating-ui/utils/dom';\nimport { createChangeEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { REASONS } from \"../../utils/reasons.js\";\nimport { getTarget, isInteractiveElement } from \"../../floating-ui-react/utils/element.js\";\nexport function handleInputPress(event, store, disabled, readOnly, shouldIgnoreTarget) {\n if (event.baseUIHandlerPrevented || readOnly) {\n return;\n }\n const target = getTarget(event.nativeEvent);\n const targetElement = isElement(target) ? target : null;\n if (targetElement !== event.currentTarget && (shouldIgnoreTarget?.(targetElement) || isInteractiveElement(targetElement))) {\n return;\n }\n event.preventDefault();\n if (disabled) {\n return;\n }\n store.state.inputRef.current?.focus();\n if (store.state.openOnInputClick) {\n store.state.setOpen(true, createChangeEventDetails(REASONS.inputPress, event.nativeEvent));\n }\n}","'use client';\n\nimport * as React from 'react';\nimport { useStore } from '@base-ui/utils/store';\nimport { useComboboxInputValueContext, useComboboxRootContext } from \"../root/ComboboxRootContext.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { selectors } from \"../store.js\";\nimport { useButton } from \"../../use-button/index.js\";\nimport { useFieldRootContext } from \"../../field/root/FieldRootContext.js\";\nimport { useTransitionStatus } from \"../../utils/useTransitionStatus.js\";\nimport { transitionStatusMapping } from \"../../utils/stateAttributesMapping.js\";\nimport { useOpenChangeComplete } from \"../../utils/useOpenChangeComplete.js\";\nimport { createChangeEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { REASONS } from \"../../utils/reasons.js\";\nimport { triggerOpenStateMapping } from \"../../utils/popupStateMapping.js\";\nconst stateAttributesMapping = {\n ...transitionStatusMapping,\n ...triggerOpenStateMapping\n};\n\n/**\n * Clears the value when clicked.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxClear = /*#__PURE__*/React.forwardRef(function ComboboxClear(componentProps, forwardedRef) {\n const {\n render,\n className,\n disabled: disabledProp = false,\n nativeButton = true,\n keepMounted = false,\n style,\n ...elementProps\n } = componentProps;\n const {\n disabled: fieldDisabled\n } = useFieldRootContext();\n const store = useComboboxRootContext();\n const selectionMode = useStore(store, selectors.selectionMode);\n const comboboxDisabled = useStore(store, selectors.disabled);\n const readOnly = useStore(store, selectors.readOnly);\n const open = useStore(store, selectors.open);\n const selectedValue = useStore(store, selectors.selectedValue);\n const hasSelectionChips = useStore(store, selectors.hasSelectionChips);\n const inputValue = useComboboxInputValueContext();\n let visible = false;\n if (selectionMode === 'none') {\n visible = inputValue !== '';\n } else if (selectionMode === 'single') {\n visible = selectedValue != null;\n } else {\n visible = hasSelectionChips;\n }\n const disabled = fieldDisabled || comboboxDisabled || disabledProp;\n const {\n buttonRef,\n getButtonProps\n } = useButton({\n native: nativeButton,\n disabled\n });\n const {\n mounted,\n transitionStatus,\n setMounted\n } = useTransitionStatus(visible);\n const state = {\n disabled,\n open,\n transitionStatus\n };\n useOpenChangeComplete({\n open: visible,\n ref: store.state.clearRef,\n onComplete() {\n if (!visible) {\n setMounted(false);\n }\n }\n });\n const element = useRenderElement('button', componentProps, {\n state,\n ref: [forwardedRef, buttonRef, store.state.clearRef],\n props: [{\n tabIndex: -1,\n children: 'x',\n // Avoid stealing focus from the input.\n onMouseDown(event) {\n event.preventDefault();\n },\n onClick(event) {\n if (disabled || readOnly) {\n return;\n }\n const keyboardActiveRef = store.state.keyboardActiveRef;\n store.state.setInputValue('', createChangeEventDetails(REASONS.clearPress, event.nativeEvent));\n if (selectionMode !== 'none') {\n store.state.setSelectedValue(Array.isArray(selectedValue) ? [] : null, createChangeEventDetails(REASONS.clearPress, event.nativeEvent));\n store.state.setIndices({\n activeIndex: null,\n selectedIndex: null,\n type: keyboardActiveRef.current ? 'keyboard' : 'pointer'\n });\n } else {\n store.state.setIndices({\n activeIndex: null,\n type: keyboardActiveRef.current ? 'keyboard' : 'pointer'\n });\n }\n store.state.inputRef.current?.focus();\n }\n }, elementProps, getButtonProps],\n stateAttributesMapping\n });\n const shouldRender = keepMounted || mounted;\n if (!shouldRender) {\n return null;\n }\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxClear.displayName = \"ComboboxClear\";","'use client';\n\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst GroupCollectionContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") GroupCollectionContext.displayName = \"GroupCollectionContext\";\nexport function useGroupCollectionContext() {\n return React.useContext(GroupCollectionContext);\n}\nexport function GroupCollectionProvider(props) {\n const {\n children,\n items\n } = props;\n const contextValue = React.useMemo(() => ({\n items\n }), [items]);\n return /*#__PURE__*/_jsx(GroupCollectionContext.Provider, {\n value: contextValue,\n children: children\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { useComboboxDerivedItemsContext } from \"../root/ComboboxRootContext.js\";\nimport { useGroupCollectionContext } from \"./GroupCollectionContext.js\";\n\n/**\n * Renders filtered list items.\n * Doesn't render its own HTML element.\n *\n * If rendering a flat list, pass a function child to the `List` component instead, which implicitly wraps it.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function ComboboxCollection(props) {\n const {\n children\n } = props;\n const {\n filteredItems\n } = useComboboxDerivedItemsContext();\n const groupContext = useGroupCollectionContext();\n const itemsToRender = groupContext ? groupContext.items : filteredItems;\n if (!itemsToRender) {\n return null;\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: itemsToRender.map(children)\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { useStore } from '@base-ui/utils/store';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { useComboboxDerivedItemsContext, useComboboxFloatingContext, useComboboxRootContext } from \"../root/ComboboxRootContext.js\";\nimport { useComboboxPositionerContext } from \"../positioner/ComboboxPositionerContext.js\";\nimport { selectors } from \"../store.js\";\nimport { ComboboxCollection } from \"../collection/ComboboxCollection.js\";\nimport { CompositeList } from \"../../composite/list/CompositeList.js\";\nimport { stopEvent } from \"../../floating-ui-react/utils.js\";\n\n/**\n * A list container for the items.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxList = /*#__PURE__*/React.forwardRef(function ComboboxList(componentProps, forwardedRef) {\n var _ComboboxCollection;\n const {\n render,\n className,\n style,\n children,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const floatingRootContext = useComboboxFloatingContext();\n const hasPositionerContext = Boolean(useComboboxPositionerContext(true));\n const {\n filteredItems,\n hasItems\n } = useComboboxDerivedItemsContext();\n const selectionMode = useStore(store, selectors.selectionMode);\n const grid = useStore(store, selectors.grid);\n const popupProps = useStore(store, selectors.popupProps);\n const virtualized = useStore(store, selectors.virtualized);\n const multiple = selectionMode === 'multiple';\n const empty = filteredItems.length === 0;\n const setPositionerElement = useStableCallback(element => {\n store.set('positionerElement', element);\n });\n const setListElement = useStableCallback(element => {\n store.set('listElement', element);\n });\n\n // Support \"closed template\" API: if children is a function, implicitly wrap it\n // with a Combobox.Collection that reads items from context/root.\n // Ensures this component's `popupProps` subscription does not cause <Combobox.Item>\n // to re-render on every active index change.\n const resolvedChildren = React.useMemo(() => {\n if (typeof children === 'function') {\n return _ComboboxCollection || (_ComboboxCollection = /*#__PURE__*/_jsx(ComboboxCollection, {\n children: children\n }));\n }\n return children;\n }, [children]);\n const state = {\n empty\n };\n const floatingId = floatingRootContext.useState('floatingId');\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, setListElement, hasPositionerContext ? null : setPositionerElement],\n props: [popupProps, {\n children: resolvedChildren,\n tabIndex: -1,\n id: floatingId,\n role: grid ? 'grid' : 'listbox',\n 'aria-multiselectable': multiple ? 'true' : undefined,\n onKeyDown(event) {\n if (store.state.disabled || store.state.readOnly) {\n return;\n }\n if (event.key === 'Enter') {\n const activeIndex = store.state.activeIndex;\n if (activeIndex == null) {\n // Allow form submission when no item is highlighted.\n return;\n }\n stopEvent(event);\n const nativeEvent = event.nativeEvent;\n const listItem = store.state.listRef.current[activeIndex];\n if (listItem) {\n store.state.selectionEventRef.current = nativeEvent;\n listItem.click();\n store.state.selectionEventRef.current = null;\n }\n }\n },\n onKeyDownCapture() {\n store.state.keyboardActiveRef.current = true;\n },\n onPointerMoveCapture() {\n store.state.keyboardActiveRef.current = false;\n }\n }, elementProps]\n });\n if (virtualized) {\n return element;\n }\n return /*#__PURE__*/_jsx(CompositeList, {\n elementsRef: store.state.listRef,\n labelsRef: hasItems ? undefined : store.state.labelsRef,\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxList.displayName = \"ComboboxList\";","'use client';\n\nimport * as React from 'react';\nimport { isIOS } from '@base-ui/utils/detectBrowser';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\n\n// Word Joiner is invisible and zero-width, so it forces a text mutation without shifting layout.\nconst LIVE_REGION_MARKER = '\\u2060';\n// Safari VoiceOver needed roughly 200ms to reliably notice the initial polite live-region change.\nexport const INITIAL_LIVE_REGION_TEXT_MUTATION_RESET_DELAY = 200;\nfunction findLastTextNode(root) {\n const walker = root.ownerDocument.createTreeWalker(root, NodeFilter.SHOW_TEXT);\n let lastTextNode = null;\n while (walker.nextNode()) {\n const textNode = walker.currentNode;\n if (textNode.nodeValue !== '') {\n lastTextNode = textNode;\n }\n }\n return lastTextNode;\n}\nexport function useInitialLiveRegionTextMutation() {\n const timeout = useTimeout();\n const rootRef = React.useRef(null);\n\n // Only the initial mounted announcement needs the marker; later text updates announce naturally.\n React.useEffect(() => {\n if (isIOS) {\n return undefined;\n }\n const root = rootRef.current;\n if (root == null) {\n return undefined;\n }\n const textNode = findLastTextNode(root);\n if (textNode == null) {\n return undefined;\n }\n const originalValue = textNode.nodeValue ?? '';\n const markedValue = `${originalValue}${LIVE_REGION_MARKER}`;\n textNode.nodeValue = markedValue;\n timeout.start(INITIAL_LIVE_REGION_TEXT_MUTATION_RESET_DELAY, () => {\n if (textNode.nodeValue === markedValue) {\n textNode.nodeValue = originalValue;\n }\n });\n return () => {\n timeout.clear();\n if (textNode.nodeValue === markedValue) {\n textNode.nodeValue = originalValue;\n }\n };\n }, [rootRef, timeout]);\n return rootRef;\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ComboboxPortalContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxPortalContext.displayName = \"ComboboxPortalContext\";\nexport function useComboboxPortalContext() {\n const context = React.useContext(ComboboxPortalContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: <Combobox.Portal> is missing.' : _formatErrorMessage(20));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { useStore } from '@base-ui/utils/store';\nimport { FloatingPortal } from \"../../floating-ui-react/index.js\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.js\";\nimport { ComboboxPortalContext } from \"./ComboboxPortalContext.js\";\nimport { selectors } from \"../store.js\";\n\n/**\n * A portal element that moves the popup to a different part of the DOM.\n * By default, the portal element is appended to `<body>`.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxPortal = /*#__PURE__*/React.forwardRef(function ComboboxPortal(props, forwardedRef) {\n const {\n keepMounted = false,\n ...portalProps\n } = props;\n const store = useComboboxRootContext();\n const mounted = useStore(store, selectors.mounted);\n const forceMounted = useStore(store, selectors.forceMounted);\n const shouldRender = mounted || keepMounted || forceMounted;\n if (!shouldRender) {\n return null;\n }\n return /*#__PURE__*/_jsx(ComboboxPortalContext.Provider, {\n value: keepMounted,\n children: /*#__PURE__*/_jsx(FloatingPortal, {\n ref: forwardedRef,\n ...portalProps\n })\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxPortal.displayName = \"ComboboxPortal\";","import { clamp, evaluate, getAlignment, getAlignmentAxis, getAxisLength, getPaddingObject } from '@floating-ui/utils';\n/**\n * Fork of the original `arrow` middleware from Floating UI that allows\n * configuring the offset parent.\n */\nexport const baseArrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0,\n offsetParent = 'real'\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = offsetParent === 'real' ? await platform.getOffsetParent?.(element) : elements.floating;\n let clientSize = elements.floating[clientProp] || rects.floating[length];\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await platform.isElement?.(arrowOffsetParent))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = Math.min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = Math.min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n // eslint-disable-next-line no-nested-ternary\n const alignmentOffset = shouldAddOffset ? center < min ? center - min : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nexport const arrow = (options, deps) => ({\n ...baseArrow(options),\n options: [options, deps]\n});","import { hide as nativeHide } from '@floating-ui/react-dom';\nexport const hide = {\n name: 'hide',\n async fn(state) {\n const {\n width,\n height,\n x,\n y\n } = state.rects.reference;\n const anchorHidden = width === 0 && height === 0 && x === 0 && y === 0;\n const nativeHideResult = await nativeHide().fn(state);\n return {\n data: {\n referenceHidden: nativeHideResult.data?.referenceHidden || anchorHidden\n }\n };\n }\n};","import { ownerDocument, ownerWindow } from '@base-ui/utils/owner';\nimport { getSide } from '@floating-ui/utils';\nexport const DEFAULT_SIDES = {\n sideX: 'left',\n sideY: 'top'\n};\nexport const adaptiveOrigin = {\n name: 'adaptiveOrigin',\n async fn(state) {\n const {\n x: rawX,\n y: rawY,\n rects: {\n floating: floatRect\n },\n elements: {\n floating\n },\n platform,\n strategy,\n placement\n } = state;\n const win = ownerWindow(floating);\n const styles = win.getComputedStyle(floating);\n const hasTransition = styles.transitionDuration !== '0s' && styles.transitionDuration !== '';\n if (!hasTransition) {\n return {\n x: rawX,\n y: rawY,\n data: DEFAULT_SIDES\n };\n }\n const offsetParent = await platform.getOffsetParent?.(floating);\n let offsetDimensions = {\n width: 0,\n height: 0\n };\n\n // For fixed strategy, prefer visualViewport if available\n if (strategy === 'fixed' && win?.visualViewport) {\n offsetDimensions = {\n width: win.visualViewport.width,\n height: win.visualViewport.height\n };\n } else if (offsetParent === win) {\n const doc = ownerDocument(floating);\n offsetDimensions = {\n width: doc.documentElement.clientWidth,\n height: doc.documentElement.clientHeight\n };\n } else if (await platform.isElement?.(offsetParent)) {\n offsetDimensions = await platform.getDimensions(offsetParent);\n }\n const currentSide = getSide(placement);\n let x = rawX;\n let y = rawY;\n if (currentSide === 'left') {\n x = offsetDimensions.width - (rawX + floatRect.width);\n }\n if (currentSide === 'top') {\n y = offsetDimensions.height - (rawY + floatRect.height);\n }\n const sideX = currentSide === 'left' ? 'right' : DEFAULT_SIDES.sideX;\n const sideY = currentSide === 'top' ? 'bottom' : DEFAULT_SIDES.sideY;\n return {\n x,\n y,\n data: {\n sideX,\n sideY\n }\n };\n }\n};","'use client';\n\nimport * as React from 'react';\nimport { getSide, getAlignment, getSideAxis } from '@floating-ui/utils';\nimport { ownerDocument, ownerWindow } from '@base-ui/utils/owner';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useValueAsRef } from '@base-ui/utils/useValueAsRef';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { autoUpdate, flip, limitShift, offset, shift, useFloating, size } from \"../floating-ui-react/index.js\";\nimport { useDirection } from \"../direction-provider/DirectionContext.js\";\nimport { arrow } from \"../floating-ui-react/middleware/arrow.js\";\nimport { hide } from \"./hideMiddleware.js\";\nimport { DEFAULT_SIDES } from \"./adaptiveOriginMiddleware.js\";\nfunction getLogicalSide(sideParam, renderedSide, isRtl) {\n const isLogicalSideParam = sideParam === 'inline-start' || sideParam === 'inline-end';\n const logicalRight = isRtl ? 'inline-start' : 'inline-end';\n const logicalLeft = isRtl ? 'inline-end' : 'inline-start';\n return {\n top: 'top',\n right: isLogicalSideParam ? logicalRight : 'right',\n bottom: 'bottom',\n left: isLogicalSideParam ? logicalLeft : 'left'\n }[renderedSide];\n}\nfunction getOffsetData(state, sideParam, isRtl) {\n const {\n rects,\n placement\n } = state;\n const data = {\n side: getLogicalSide(sideParam, getSide(placement), isRtl),\n align: getAlignment(placement) || 'center',\n anchor: {\n width: rects.reference.width,\n height: rects.reference.height\n },\n positioner: {\n width: rects.floating.width,\n height: rects.floating.height\n }\n };\n return data;\n}\n/**\n * Provides standardized anchor positioning behavior for floating elements. Wraps Floating UI's\n * `useFloating` hook.\n */\nexport function useAnchorPositioning(params) {\n const {\n // Public parameters\n anchor,\n positionMethod = 'absolute',\n side: sideParam = 'bottom',\n sideOffset = 0,\n align = 'center',\n alignOffset = 0,\n collisionBoundary,\n collisionPadding: collisionPaddingParam = 5,\n sticky = false,\n arrowPadding = 5,\n disableAnchorTracking = false,\n // Private parameters\n keepMounted = false,\n floatingRootContext,\n mounted,\n collisionAvoidance,\n shiftCrossAxis = false,\n nodeId,\n adaptiveOrigin,\n lazyFlip = false,\n externalTree\n } = params;\n const [mountSide, setMountSide] = React.useState(null);\n if (!mounted && mountSide !== null) {\n setMountSide(null);\n }\n const collisionAvoidanceSide = collisionAvoidance.side || 'flip';\n const collisionAvoidanceAlign = collisionAvoidance.align || 'flip';\n const collisionAvoidanceFallbackAxisSide = collisionAvoidance.fallbackAxisSide || 'end';\n const anchorFn = typeof anchor === 'function' ? anchor : undefined;\n const anchorFnCallback = useStableCallback(anchorFn);\n const anchorDep = anchorFn ? anchorFnCallback : anchor;\n const anchorValueRef = useValueAsRef(anchor);\n const mountedRef = useValueAsRef(mounted);\n const direction = useDirection();\n const isRtl = direction === 'rtl';\n const side = mountSide || {\n top: 'top',\n right: 'right',\n bottom: 'bottom',\n left: 'left',\n 'inline-end': isRtl ? 'left' : 'right',\n 'inline-start': isRtl ? 'right' : 'left'\n }[sideParam];\n const placement = align === 'center' ? side : `${side}-${align}`;\n let collisionPadding = collisionPaddingParam;\n\n // Create a bias to the preferred side.\n // On iOS, when the mobile software keyboard opens, the input is exactly centered\n // in the viewport, but this can cause it to flip to the top undesirably.\n const bias = 1;\n const biasTop = sideParam === 'bottom' ? bias : 0;\n const biasBottom = sideParam === 'top' ? bias : 0;\n const biasLeft = sideParam === 'right' ? bias : 0;\n const biasRight = sideParam === 'left' ? bias : 0;\n if (typeof collisionPadding === 'number') {\n collisionPadding = {\n top: collisionPadding + biasTop,\n right: collisionPadding + biasRight,\n bottom: collisionPadding + biasBottom,\n left: collisionPadding + biasLeft\n };\n } else if (collisionPadding) {\n collisionPadding = {\n top: (collisionPadding.top || 0) + biasTop,\n right: (collisionPadding.right || 0) + biasRight,\n bottom: (collisionPadding.bottom || 0) + biasBottom,\n left: (collisionPadding.left || 0) + biasLeft\n };\n }\n const commonCollisionProps = {\n boundary: collisionBoundary === 'clipping-ancestors' ? 'clippingAncestors' : collisionBoundary,\n padding: collisionPadding\n };\n\n // Using a ref assumes that the arrow element is always present in the DOM for the lifetime of the\n // popup. If this assumption ends up being false, we can switch to state to manage the arrow's\n // presence.\n const arrowRef = React.useRef(null);\n\n // Keep these reactive if they're not functions\n const sideOffsetRef = useValueAsRef(sideOffset);\n const alignOffsetRef = useValueAsRef(alignOffset);\n const sideOffsetDep = typeof sideOffset !== 'function' ? sideOffset : 0;\n const alignOffsetDep = typeof alignOffset !== 'function' ? alignOffset : 0;\n const middleware = [offset(state => {\n const data = getOffsetData(state, sideParam, isRtl);\n const sideAxis = typeof sideOffsetRef.current === 'function' ? sideOffsetRef.current(data) : sideOffsetRef.current;\n const alignAxis = typeof alignOffsetRef.current === 'function' ? alignOffsetRef.current(data) : alignOffsetRef.current;\n return {\n mainAxis: sideAxis,\n crossAxis: alignAxis,\n alignmentAxis: alignAxis\n };\n }, [sideOffsetDep, alignOffsetDep, isRtl, sideParam])];\n const shiftDisabled = collisionAvoidanceAlign === 'none' && collisionAvoidanceSide !== 'shift';\n const crossAxisShiftEnabled = !shiftDisabled && (sticky || shiftCrossAxis || collisionAvoidanceSide === 'shift');\n const flipMiddleware = collisionAvoidanceSide === 'none' ? null : flip({\n ...commonCollisionProps,\n // Ensure the popup flips if it's been limited by its --available-height and it resizes.\n // Since the size() padding is smaller than the flip() padding, flip() will take precedence.\n padding: {\n top: collisionPadding.top + bias,\n right: collisionPadding.right + bias,\n bottom: collisionPadding.bottom + bias,\n left: collisionPadding.left + bias\n },\n mainAxis: !shiftCrossAxis && collisionAvoidanceSide === 'flip',\n crossAxis: collisionAvoidanceAlign === 'flip' ? 'alignment' : false,\n fallbackAxisSideDirection: collisionAvoidanceFallbackAxisSide\n });\n const shiftMiddleware = shiftDisabled ? null : shift(data => {\n const html = ownerDocument(data.elements.floating).documentElement;\n return {\n ...commonCollisionProps,\n // Use the Layout Viewport to avoid shifting around when pinch-zooming\n // for context menus.\n rootBoundary: shiftCrossAxis ? {\n x: 0,\n y: 0,\n width: html.clientWidth,\n height: html.clientHeight\n } : undefined,\n mainAxis: collisionAvoidanceAlign !== 'none',\n crossAxis: crossAxisShiftEnabled,\n limiter: sticky || shiftCrossAxis ? undefined : limitShift(limitData => {\n if (!arrowRef.current) {\n return {};\n }\n const {\n width,\n height\n } = arrowRef.current.getBoundingClientRect();\n const sideAxis = getSideAxis(getSide(limitData.placement));\n const arrowSize = sideAxis === 'y' ? width : height;\n const offsetAmount = sideAxis === 'y' ? collisionPadding.left + collisionPadding.right : collisionPadding.top + collisionPadding.bottom;\n return {\n offset: arrowSize / 2 + offsetAmount / 2\n };\n })\n };\n }, [commonCollisionProps, sticky, shiftCrossAxis, collisionPadding, collisionAvoidanceAlign]);\n\n // https://floating-ui.com/docs/flip#combining-with-shift\n if (collisionAvoidanceSide === 'shift' || collisionAvoidanceAlign === 'shift' || align === 'center') {\n middleware.push(shiftMiddleware, flipMiddleware);\n } else {\n middleware.push(flipMiddleware, shiftMiddleware);\n }\n middleware.push(size({\n ...commonCollisionProps,\n apply({\n elements: {\n floating\n },\n availableWidth,\n availableHeight,\n rects\n }) {\n if (!mountedRef.current) {\n return;\n }\n const floatingStyle = floating.style;\n floatingStyle.setProperty('--available-width', `${availableWidth}px`);\n floatingStyle.setProperty('--available-height', `${availableHeight}px`);\n\n // Snap anchor dimensions to device pixels to ensure the popup's visual width matches the anchor's one.\n const dpr = ownerWindow(floating).devicePixelRatio || 1;\n const {\n x,\n y,\n width,\n height\n } = rects.reference;\n const anchorWidth = (Math.round((x + width) * dpr) - Math.round(x * dpr)) / dpr;\n const anchorHeight = (Math.round((y + height) * dpr) - Math.round(y * dpr)) / dpr;\n floatingStyle.setProperty('--anchor-width', `${anchorWidth}px`);\n floatingStyle.setProperty('--anchor-height', `${anchorHeight}px`);\n }\n }), arrow(() => ({\n // `transform-origin` calculations rely on an element existing. If the arrow hasn't been set,\n // we'll create a fake element.\n element: arrowRef.current || ownerDocument(arrowRef.current).createElement('div'),\n padding: arrowPadding,\n offsetParent: 'floating'\n }), [arrowPadding]), {\n name: 'transformOrigin',\n fn(state) {\n const {\n elements,\n middlewareData,\n placement: renderedPlacement,\n rects,\n y\n } = state;\n const currentRenderedSide = getSide(renderedPlacement);\n const currentRenderedAxis = getSideAxis(currentRenderedSide);\n const arrowEl = arrowRef.current;\n const arrowX = middlewareData.arrow?.x || 0;\n const arrowY = middlewareData.arrow?.y || 0;\n const arrowWidth = arrowEl?.clientWidth || 0;\n const arrowHeight = arrowEl?.clientHeight || 0;\n const transformX = arrowX + arrowWidth / 2;\n const transformY = arrowY + arrowHeight / 2;\n const shiftY = Math.abs(middlewareData.shift?.y || 0);\n const halfAnchorHeight = rects.reference.height / 2;\n const sideOffsetValue = typeof sideOffset === 'function' ? sideOffset(getOffsetData(state, sideParam, isRtl)) : sideOffset;\n const isOverlappingAnchor = shiftY > sideOffsetValue;\n const adjacentTransformOrigin = {\n top: `${transformX}px calc(100% + ${sideOffsetValue}px)`,\n bottom: `${transformX}px ${-sideOffsetValue}px`,\n left: `calc(100% + ${sideOffsetValue}px) ${transformY}px`,\n right: `${-sideOffsetValue}px ${transformY}px`\n }[currentRenderedSide];\n const overlapTransformOrigin = `${transformX}px ${rects.reference.y + halfAnchorHeight - y}px`;\n elements.floating.style.setProperty('--transform-origin', crossAxisShiftEnabled && currentRenderedAxis === 'y' && isOverlappingAnchor ? overlapTransformOrigin : adjacentTransformOrigin);\n return {};\n }\n }, hide, adaptiveOrigin);\n useIsoLayoutEffect(() => {\n // Ensure positioning doesn't run initially for `keepMounted` elements that\n // aren't initially open.\n if (!mounted && floatingRootContext) {\n floatingRootContext.update({\n referenceElement: null,\n floatingElement: null,\n domReferenceElement: null,\n positionReference: null\n });\n }\n }, [mounted, floatingRootContext]);\n const autoUpdateOptions = React.useMemo(() => ({\n elementResize: !disableAnchorTracking && typeof ResizeObserver !== 'undefined',\n layoutShift: !disableAnchorTracking && typeof IntersectionObserver !== 'undefined'\n }), [disableAnchorTracking]);\n const {\n refs,\n elements,\n x,\n y,\n middlewareData,\n update,\n placement: renderedPlacement,\n context,\n isPositioned,\n floatingStyles: originalFloatingStyles\n } = useFloating({\n rootContext: floatingRootContext,\n open: keepMounted ? mounted : undefined,\n placement,\n middleware,\n strategy: positionMethod,\n whileElementsMounted: keepMounted ? undefined : (...args) => autoUpdate(...args, autoUpdateOptions),\n nodeId,\n externalTree\n });\n const {\n sideX,\n sideY\n } = middlewareData.adaptiveOrigin || DEFAULT_SIDES;\n\n // Default to `fixed` when not positioned to prevent `autoFocus` scroll jumps.\n // This ensures the popup is inside the viewport initially before it gets positioned.\n const resolvedPosition = isPositioned ? positionMethod : 'fixed';\n const floatingStyles = React.useMemo(() => {\n const base = adaptiveOrigin ? {\n position: resolvedPosition,\n [sideX]: x,\n [sideY]: y\n } : {\n position: resolvedPosition,\n ...originalFloatingStyles\n };\n if (!isPositioned) {\n base.opacity = 0;\n }\n return base;\n }, [adaptiveOrigin, resolvedPosition, sideX, x, sideY, y, originalFloatingStyles, isPositioned]);\n const registeredPositionReferenceRef = React.useRef(null);\n useIsoLayoutEffect(() => {\n if (!mounted) {\n return;\n }\n const anchorValue = anchorValueRef.current;\n const resolvedAnchor = typeof anchorValue === 'function' ? anchorValue() : anchorValue;\n const unwrappedElement = (isRef(resolvedAnchor) ? resolvedAnchor.current : resolvedAnchor) || null;\n const finalAnchor = unwrappedElement || null;\n if (finalAnchor !== registeredPositionReferenceRef.current) {\n refs.setPositionReference(finalAnchor);\n registeredPositionReferenceRef.current = finalAnchor;\n }\n }, [mounted, refs, anchorDep, anchorValueRef]);\n React.useEffect(() => {\n if (!mounted) {\n return;\n }\n const anchorValue = anchorValueRef.current;\n\n // Refs from parent components are set after useLayoutEffect runs and are available in useEffect.\n // Therefore, if the anchor is a ref, we need to update the position reference in useEffect.\n if (typeof anchorValue === 'function') {\n return;\n }\n if (isRef(anchorValue) && anchorValue.current !== registeredPositionReferenceRef.current) {\n refs.setPositionReference(anchorValue.current);\n registeredPositionReferenceRef.current = anchorValue.current;\n }\n }, [mounted, refs, anchorDep, anchorValueRef]);\n React.useEffect(() => {\n if (keepMounted && mounted && elements.domReference && elements.floating) {\n return autoUpdate(elements.domReference, elements.floating, update, autoUpdateOptions);\n }\n return undefined;\n }, [keepMounted, mounted, elements, update, autoUpdateOptions]);\n const renderedSide = getSide(renderedPlacement);\n const logicalRenderedSide = getLogicalSide(sideParam, renderedSide, isRtl);\n const renderedAlign = getAlignment(renderedPlacement) || 'center';\n const anchorHidden = Boolean(middlewareData.hide?.referenceHidden);\n\n /**\n * Locks the flip (makes it \"sticky\") so it doesn't prefer a given placement\n * and flips back lazily, not eagerly. Ideal for filtered lists that change\n * the size of the popup dynamically to avoid unwanted flipping when typing.\n */\n useIsoLayoutEffect(() => {\n if (lazyFlip && mounted && isPositioned) {\n setMountSide(renderedSide);\n }\n }, [lazyFlip, mounted, isPositioned, renderedSide]);\n const arrowStyles = React.useMemo(() => ({\n position: 'absolute',\n top: middlewareData.arrow?.y,\n left: middlewareData.arrow?.x\n }), [middlewareData.arrow]);\n const arrowUncentered = middlewareData.arrow?.centerOffset !== 0;\n return React.useMemo(() => ({\n positionerStyles: floatingStyles,\n arrowStyles,\n arrowRef,\n arrowUncentered,\n side: logicalRenderedSide,\n align: renderedAlign,\n physicalSide: renderedSide,\n anchorHidden,\n refs,\n context,\n isPositioned,\n update\n }), [floatingStyles, arrowStyles, arrowRef, arrowUncentered, logicalRenderedSide, renderedAlign, renderedSide, anchorHidden, refs, context, isPositioned, update]);\n}\nfunction isRef(param) {\n return param != null && 'current' in param;\n}","import { DISABLED_TRANSITIONS_STYLE, EMPTY_OBJECT } from \"./constants.js\";\nexport function getDisabledMountTransitionStyles(transitionStatus) {\n return transitionStatus === 'starting' ? DISABLED_TRANSITIONS_STYLE : EMPTY_OBJECT;\n}","'use client';\n\nimport { popupStateMapping } from \"./popupStateMapping.js\";\nimport { useRenderElement } from \"./useRenderElement.js\";\nimport { getDisabledMountTransitionStyles } from \"./getDisabledMountTransitionStyles.js\";\n/**\n * Renders the shared outer Positioner element used by popup components.\n * Applies the common role, hidden state, transition styles, state attributes, and optional inert styling.\n */\nexport function usePositioner(componentProps, state, {\n styles,\n transitionStatus,\n props,\n refs,\n hidden,\n inert = false\n}) {\n const style = {\n ...styles\n };\n if (inert) {\n style.pointerEvents = 'none';\n }\n return useRenderElement('div', componentProps, {\n state,\n ref: refs,\n props: [{\n role: 'presentation',\n hidden,\n style\n }, getDisabledMountTransitionStyles(transitionStatus), props],\n stateAttributesMapping: popupStateMapping\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { useScrollLock } from '@base-ui/utils/useScrollLock';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\n\n// Touch-opened popups normally avoid scroll locking so users can still swipe outside to dismiss.\n// This hook re-enables scroll lock only when the popup is effectively full-width.\n// Treat popups with up to 20px of total horizontal gutter as full-width so common ~10px side\n// padding still locks scroll, since that leaves too little outside space for a reliable swipe.\nconst VIEWPORT_WIDTH_TOLERANCE_PX = 20;\n\n/**\n * Manages scroll lock for anchored popups. For non-touch opens, scroll lock is applied when\n * enabled. For touch opens, scroll lock is applied only when the positioner width is effectively\n * viewport-sized.\n */\nexport function useAnchoredPopupScrollLock(enabled, touchOpen, positionerElement, referenceElement) {\n const [touchOpenShouldLockScroll, setTouchOpenShouldLockScroll] = React.useState(false);\n useIsoLayoutEffect(() => {\n if (!enabled || !touchOpen || positionerElement == null) {\n setTouchOpenShouldLockScroll(false);\n return;\n }\n const viewportWidth = ownerDocument(positionerElement).documentElement.clientWidth;\n const popupWidth = positionerElement.offsetWidth;\n setTouchOpenShouldLockScroll(viewportWidth > 0 && popupWidth > 0 && popupWidth >= viewportWidth - VIEWPORT_WIDTH_TOLERANCE_PX);\n }, [enabled, touchOpen, positionerElement]);\n useScrollLock(enabled && (!touchOpen || touchOpenShouldLockScroll), referenceElement);\n}","'use client';\n\nimport * as React from 'react';\nimport { useStore } from '@base-ui/utils/store';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { inertValue } from '@base-ui/utils/inertValue';\nimport { useComboboxFloatingContext, useComboboxRootContext, useComboboxDerivedItemsContext } from \"../root/ComboboxRootContext.js\";\nimport { ComboboxPositionerContext } from \"./ComboboxPositionerContext.js\";\nimport { useAnchorPositioning } from \"../../utils/useAnchorPositioning.js\";\nimport { useComboboxPortalContext } from \"../portal/ComboboxPortalContext.js\";\nimport { DROPDOWN_COLLISION_AVOIDANCE } from \"../../utils/constants.js\";\nimport { selectors } from \"../store.js\";\nimport { InternalBackdrop } from \"../../utils/InternalBackdrop.js\";\nimport { usePositioner } from \"../../utils/usePositioner.js\";\nimport { useAnchoredPopupScrollLock } from \"../../utils/useAnchoredPopupScrollLock.js\";\n\n/**\n * Positions the popup against the trigger.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const ComboboxPositioner = /*#__PURE__*/React.forwardRef(function ComboboxPositioner(componentProps, forwardedRef) {\n const {\n render,\n className,\n anchor,\n positionMethod = 'absolute',\n side = 'bottom',\n align = 'center',\n sideOffset = 0,\n alignOffset = 0,\n collisionBoundary = 'clipping-ancestors',\n collisionPadding = 5,\n arrowPadding = 5,\n sticky = false,\n disableAnchorTracking = false,\n collisionAvoidance = DROPDOWN_COLLISION_AVOIDANCE,\n style: styleProp,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const {\n filteredItems\n } = useComboboxDerivedItemsContext();\n const floatingRootContext = useComboboxFloatingContext();\n const keepMounted = useComboboxPortalContext();\n const modal = useStore(store, selectors.modal);\n const open = useStore(store, selectors.open);\n const mounted = useStore(store, selectors.mounted);\n const openMethod = useStore(store, selectors.openMethod);\n const positionerElement = useStore(store, selectors.positionerElement);\n const triggerElement = useStore(store, selectors.triggerElement);\n const inputElement = useStore(store, selectors.inputElement);\n const inputGroupElement = useStore(store, selectors.inputGroupElement);\n const inputInsidePopup = useStore(store, selectors.inputInsidePopup);\n const transitionStatus = useStore(store, selectors.transitionStatus);\n const empty = filteredItems.length === 0;\n const resolvedAnchor = anchor ?? (inputInsidePopup ? triggerElement : inputGroupElement ?? inputElement);\n const positioning = useAnchorPositioning({\n anchor: resolvedAnchor,\n floatingRootContext,\n positionMethod,\n mounted,\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n disableAnchorTracking,\n keepMounted,\n collisionAvoidance,\n lazyFlip: true\n });\n useAnchoredPopupScrollLock(open && modal, openMethod === 'touch', positionerElement, triggerElement);\n const state = {\n open,\n side: positioning.side,\n align: positioning.align,\n anchorHidden: positioning.anchorHidden,\n empty\n };\n useIsoLayoutEffect(() => {\n store.set('popupSide', positioning.side);\n }, [store, positioning.side]);\n const setPositionerElement = useStableCallback(element => {\n store.set('positionerElement', element);\n });\n const element = usePositioner(componentProps, state, {\n styles: positioning.positionerStyles,\n transitionStatus,\n props: elementProps,\n refs: [forwardedRef, setPositionerElement],\n hidden: !mounted,\n inert: !open\n });\n return /*#__PURE__*/_jsxs(ComboboxPositionerContext.Provider, {\n value: positioning,\n children: [mounted && modal && /*#__PURE__*/_jsx(InternalBackdrop, {\n inert: inertValue(!open),\n cutout: inputGroupElement ?? inputElement ?? triggerElement\n }), element]\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxPositioner.displayName = \"ComboboxPositioner\";","'use client';\n\nimport * as React from 'react';\nimport { useStore } from '@base-ui/utils/store';\nimport { FloatingFocusManager } from \"../../floating-ui-react/index.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { useComboboxFloatingContext, useComboboxRootContext, useComboboxDerivedItemsContext } from \"../root/ComboboxRootContext.js\";\nimport { selectors } from \"../store.js\";\nimport { popupStateMapping } from \"../../utils/popupStateMapping.js\";\nimport { useComboboxPositionerContext } from \"../positioner/ComboboxPositionerContext.js\";\nimport { useOpenChangeComplete } from \"../../utils/useOpenChangeComplete.js\";\nimport { transitionStatusMapping } from \"../../utils/stateAttributesMapping.js\";\nimport { contains, getTarget } from \"../../floating-ui-react/utils.js\";\nimport { getDisabledMountTransitionStyles } from \"../../utils/getDisabledMountTransitionStyles.js\";\nimport { ComboboxInternalDismissButton } from \"../utils/ComboboxInternalDismissButton.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst stateAttributesMapping = {\n ...popupStateMapping,\n ...transitionStatusMapping\n};\n\n/**\n * A container for the list.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxPopup = /*#__PURE__*/React.forwardRef(function ComboboxPopup(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n initialFocus,\n finalFocus,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const positioning = useComboboxPositionerContext();\n const floatingRootContext = useComboboxFloatingContext();\n const {\n filteredItems\n } = useComboboxDerivedItemsContext();\n const mounted = useStore(store, selectors.mounted);\n const open = useStore(store, selectors.open);\n const openMethod = useStore(store, selectors.openMethod);\n const transitionStatus = useStore(store, selectors.transitionStatus);\n const inputInsidePopup = useStore(store, selectors.inputInsidePopup);\n const inputElement = useStore(store, selectors.inputElement);\n const modal = useStore(store, selectors.modal);\n const empty = filteredItems.length === 0;\n useOpenChangeComplete({\n open,\n ref: store.state.popupRef,\n onComplete() {\n if (open) {\n store.state.onOpenChangeComplete(true);\n }\n }\n });\n const state = {\n open,\n side: positioning.side,\n align: positioning.align,\n anchorHidden: positioning.anchorHidden,\n transitionStatus,\n empty\n };\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, store.state.popupRef],\n props: [{\n role: inputInsidePopup ? 'dialog' : 'presentation',\n tabIndex: -1,\n onFocus(event) {\n const target = getTarget(event.nativeEvent);\n if (openMethod !== 'touch' && (contains(store.state.listElement, target) || target === event.currentTarget)) {\n store.state.inputRef.current?.focus();\n }\n }\n }, getDisabledMountTransitionStyles(transitionStatus), elementProps],\n stateAttributesMapping\n });\n\n // Default initial focus logic:\n // If opened by touch, focus the popup element to prevent the virtual keyboard from opening\n // (this is required for Android specifically as iOS handles this automatically).\n const computedDefaultInitialFocus = inputInsidePopup ? interactionType => interactionType === 'touch' ? store.state.popupRef.current : inputElement : false;\n const resolvedInitialFocus = initialFocus === undefined ? computedDefaultInitialFocus : initialFocus;\n let resolvedFinalFocus;\n if (finalFocus != null) {\n resolvedFinalFocus = finalFocus;\n } else {\n resolvedFinalFocus = inputInsidePopup ? undefined : false;\n }\n const focusManagerModal = !inputInsidePopup || modal;\n return /*#__PURE__*/_jsx(FloatingFocusManager, {\n context: floatingRootContext,\n disabled: !mounted,\n modal: focusManagerModal,\n openInteractionType: openMethod,\n initialFocus: resolvedInitialFocus,\n returnFocus: resolvedFinalFocus,\n getInsideElements: () => [store.state.startDismissRef.current, store.state.endDismissRef.current],\n children: /*#__PURE__*/_jsxs(React.Fragment, {\n children: [element, focusManagerModal && /*#__PURE__*/_jsx(ComboboxInternalDismissButton, {\n ref: store.state.endDismissRef\n })]\n })\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxPopup.displayName = \"ComboboxPopup\";","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ComboboxGroupContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxGroupContext.displayName = \"ComboboxGroupContext\";\nexport function useComboboxGroupContext() {\n const context = React.useContext(ComboboxGroupContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ComboboxGroupContext is missing. ComboboxGroup parts must be placed within <Combobox.Group>.' : _formatErrorMessage(18));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { ComboboxGroupContext } from \"./ComboboxGroupContext.js\";\nimport { GroupCollectionProvider } from \"../collection/GroupCollectionContext.js\";\n\n/**\n * Groups related items with the corresponding label.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxGroup = /*#__PURE__*/React.forwardRef(function ComboboxGroup(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n items,\n ...elementProps\n } = componentProps;\n const [labelId, setLabelId] = React.useState();\n const contextValue = React.useMemo(() => ({\n labelId,\n setLabelId,\n items\n }), [labelId, setLabelId, items]);\n const element = useRenderElement('div', componentProps, {\n ref: forwardedRef,\n props: [{\n role: 'group',\n 'aria-labelledby': labelId\n }, elementProps]\n });\n const wrappedElement = /*#__PURE__*/_jsx(ComboboxGroupContext.Provider, {\n value: contextValue,\n children: element\n });\n if (items) {\n return /*#__PURE__*/_jsx(GroupCollectionProvider, {\n items: items,\n children: wrappedElement\n });\n }\n return wrappedElement;\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxGroup.displayName = \"ComboboxGroup\";","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useBaseUiId } from \"../../utils/useBaseUiId.js\";\nimport { useComboboxGroupContext } from \"../group/ComboboxGroupContext.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\n\n/**\n * An accessible label that is automatically associated with its parent group.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxGroupLabel = /*#__PURE__*/React.forwardRef(function ComboboxGroupLabel(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n id: idProp,\n ...elementProps\n } = componentProps;\n const {\n setLabelId\n } = useComboboxGroupContext();\n const id = useBaseUiId(idProp);\n useIsoLayoutEffect(() => {\n setLabelId(id);\n return () => {\n setLabelId(undefined);\n };\n }, [id, setLabelId]);\n const element = useRenderElement('div', componentProps, {\n ref: forwardedRef,\n props: [{\n id\n }, elementProps]\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxGroupLabel.displayName = \"ComboboxGroupLabel\";","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ComboboxItemContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxItemContext.displayName = \"ComboboxItemContext\";\nexport function useComboboxItemContext() {\n const context = React.useContext(ComboboxItemContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ComboboxItemContext is missing. ComboboxItem parts must be placed within <Combobox.Item>.' : _formatErrorMessage(19));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nexport const ComboboxRowContext = /*#__PURE__*/React.createContext(false);\nif (process.env.NODE_ENV !== \"production\") ComboboxRowContext.displayName = \"ComboboxRowContext\";\nexport function useComboboxRowContext() {\n return React.useContext(ComboboxRowContext);\n}","'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { useStore } from '@base-ui/utils/store';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useComboboxRootContext, useComboboxDerivedItemsContext } from \"../root/ComboboxRootContext.js\";\nimport { useCompositeListItem, IndexGuessBehavior } from \"../../composite/list/useCompositeListItem.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { ComboboxItemContext } from \"./ComboboxItemContext.js\";\nimport { selectors } from \"../store.js\";\nimport { useButton } from \"../../use-button/index.js\";\nimport { useComboboxRowContext } from \"../row/ComboboxRowContext.js\";\nimport { compareItemEquality, findItemIndex } from \"../../utils/itemEquality.js\";\n\n/**\n * An individual item in the list.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxItem = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function ComboboxItem(componentProps, forwardedRef) {\n const {\n render,\n className,\n value: itemValue = null,\n index: indexProp,\n disabled = false,\n nativeButton = false,\n style,\n ...elementProps\n } = componentProps;\n const didPointerDownRef = React.useRef(false);\n const textRef = React.useRef(null);\n const listItem = useCompositeListItem({\n index: indexProp,\n textRef,\n indexGuessBehavior: IndexGuessBehavior.GuessFromOrder\n });\n const store = useComboboxRootContext();\n const isRow = useComboboxRowContext();\n const {\n flatFilteredItems,\n hasItems\n } = useComboboxDerivedItemsContext();\n const open = useStore(store, selectors.open);\n const selectionMode = useStore(store, selectors.selectionMode);\n const readOnly = useStore(store, selectors.readOnly);\n const virtualized = useStore(store, selectors.virtualized);\n const isItemEqualToValue = useStore(store, selectors.isItemEqualToValue);\n const selectable = selectionMode !== 'none';\n const index = indexProp ?? (virtualized ? findItemIndex(flatFilteredItems, itemValue, isItemEqualToValue) : listItem.index);\n const hasRegistered = listItem.index !== -1;\n const rootId = useStore(store, selectors.id);\n const highlighted = useStore(store, selectors.isActive, index);\n const matchesSelectedValue = useStore(store, selectors.isSelected, itemValue);\n const getItemProps = useStore(store, selectors.getItemProps);\n const itemRef = React.useRef(null);\n const id = rootId != null && hasRegistered ? `${rootId}-${index}` : undefined;\n const selected = matchesSelectedValue && selectable;\n useIsoLayoutEffect(() => {\n const shouldRun = hasRegistered && (virtualized || indexProp != null);\n if (!shouldRun) {\n return undefined;\n }\n const list = store.state.listRef.current;\n list[index] = itemRef.current;\n return () => {\n delete list[index];\n };\n }, [hasRegistered, virtualized, index, indexProp, store]);\n useIsoLayoutEffect(() => {\n if (!hasRegistered || hasItems) {\n return undefined;\n }\n const visibleMap = store.state.valuesRef.current;\n visibleMap[index] = itemValue;\n\n // Stable registry that doesn't depend on filtering. Assume that no\n // filtering had occurred at this point; otherwise, an `items` prop is\n // required.\n if (selectionMode !== 'none') {\n store.state.allValuesRef.current.push(itemValue);\n }\n return () => {\n delete visibleMap[index];\n };\n }, [hasRegistered, hasItems, index, itemValue, store, selectionMode]);\n useIsoLayoutEffect(() => {\n if (!open) {\n didPointerDownRef.current = false;\n return;\n }\n if (!hasRegistered || hasItems) {\n return;\n }\n const selectedValue = store.state.selectedValue;\n const lastSelectedValue = Array.isArray(selectedValue) ? selectedValue[selectedValue.length - 1] : selectedValue;\n if (compareItemEquality(itemValue, lastSelectedValue, isItemEqualToValue)) {\n store.set('selectedIndex', index);\n }\n }, [hasRegistered, hasItems, open, store, index, itemValue, isItemEqualToValue]);\n const state = {\n disabled,\n selected,\n highlighted\n };\n const rootProps = getItemProps({\n active: highlighted,\n selected\n });\n rootProps.id = undefined;\n rootProps.onFocus = undefined;\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n focusableWhenDisabled: true,\n native: nativeButton,\n composite: true\n });\n function commitSelection(nativeEvent) {\n function selectItem() {\n store.state.handleSelection(nativeEvent, itemValue);\n }\n if (store.state.submitOnItemClick) {\n ReactDOM.flushSync(selectItem);\n store.state.requestSubmit();\n } else {\n selectItem();\n }\n }\n const defaultProps = {\n id,\n role: isRow ? 'gridcell' : 'option',\n 'aria-selected': selectable ? selected : undefined,\n // Focusable items steal focus from the input upon mouseup.\n // Warn if the user renders a natively focusable element like `<button>`,\n // as it should be a `<div>` instead.\n tabIndex: undefined,\n onPointerDownCapture(event) {\n didPointerDownRef.current = true;\n event.preventDefault();\n },\n onMouseDown(event) {\n // iOS Safari can emit a synthetic mousedown for touch taps without a preceding\n // pointerdown. Prevent default here too so tapping an item does not blur the input.\n event.preventDefault();\n },\n onClick(event) {\n if (disabled || readOnly) {\n return;\n }\n commitSelection(event.nativeEvent);\n },\n onMouseUp(event) {\n const pointerStartedOnItem = didPointerDownRef.current;\n didPointerDownRef.current = false;\n if (disabled || readOnly || event.button !== 0 || pointerStartedOnItem || !highlighted) {\n return;\n }\n commitSelection(event.nativeEvent);\n }\n };\n const element = useRenderElement('div', componentProps, {\n ref: [buttonRef, forwardedRef, listItem.ref, itemRef],\n state,\n props: [rootProps, defaultProps, elementProps, getButtonProps]\n });\n const contextValue = React.useMemo(() => ({\n selected,\n textRef\n }), [selected, textRef]);\n return /*#__PURE__*/_jsx(ComboboxItemContext.Provider, {\n value: contextValue,\n children: element\n });\n}));\nif (process.env.NODE_ENV !== \"production\") ComboboxItem.displayName = \"ComboboxItem\";","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { useComboboxDerivedItemsContext, useComboboxRootContext } from \"../root/ComboboxRootContext.js\";\nimport { useInitialLiveRegionTextMutation } from \"../utils/useInitialLiveRegionTextMutation.js\";\n\n/**\n * Renders its children only when the list is empty.\n * Requires the `items` prop on the root component.\n * Announces changes politely to screen readers.\n * This component's root element must remain mounted in the DOM to announce\n * changes consistently across screen readers. Avoid hiding or removing the\n * component itself with `display: none`, `hidden`, `aria-hidden`, or conditional\n * rendering. Prefer updating or conditionally rendering its children instead.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxEmpty = /*#__PURE__*/React.forwardRef(function ComboboxEmpty(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n children: childrenProp,\n ...elementProps\n } = componentProps;\n const {\n filteredItems\n } = useComboboxDerivedItemsContext();\n const store = useComboboxRootContext();\n const emptyRef = useInitialLiveRegionTextMutation();\n const children = filteredItems.length === 0 ? childrenProp : null;\n return useRenderElement('div', componentProps, {\n ref: [forwardedRef, store.state.emptyRef, emptyRef],\n props: [{\n children,\n role: 'status',\n 'aria-live': 'polite',\n 'aria-atomic': true\n }, elementProps]\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxEmpty.displayName = \"ComboboxEmpty\";","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../utils/useRenderElement.js\";\n\n/**\n * A separator element accessible to screen readers.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Separator](https://base-ui.com/react/components/separator)\n */\nexport const Separator = /*#__PURE__*/React.forwardRef(function SeparatorComponent(componentProps, forwardedRef) {\n const {\n className,\n render,\n orientation = 'horizontal',\n style,\n ...elementProps\n } = componentProps;\n const state = {\n orientation\n };\n const element = useRenderElement('div', componentProps, {\n state,\n ref: forwardedRef,\n props: [{\n role: 'separator',\n 'aria-orientation': orientation\n }, elementProps]\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") Separator.displayName = \"Separator\";","'use client';\n\nimport * as React from 'react';\nimport { AriaCombobox } from \"./AriaCombobox.js\";\n\n/**\n * Groups all parts of the combobox.\n * Doesn't render its own HTML element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function ComboboxRoot(props) {\n const {\n multiple = false,\n defaultValue,\n value,\n onValueChange,\n autoComplete,\n ...other\n } = props;\n return /*#__PURE__*/_jsx(AriaCombobox, {\n ...other,\n selectionMode: multiple ? 'multiple' : 'single',\n selectedValue: value,\n defaultSelectedValue: defaultValue,\n onSelectedValueChange: onValueChange,\n formAutoComplete: autoComplete\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { useStore } from '@base-ui/utils/store';\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.js\";\nimport { resolveMultipleLabels, resolveSelectedLabel } from \"../../utils/resolveValueLabel.js\";\nimport { selectors } from \"../store.js\";\n\n/**\n * The current value of the combobox.\n * Doesn't render its own HTML element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function ComboboxValue(props) {\n const {\n children: childrenProp,\n placeholder\n } = props;\n const store = useComboboxRootContext();\n const itemToStringLabel = useStore(store, selectors.itemToStringLabel);\n const selectedValue = useStore(store, selectors.selectedValue);\n const items = useStore(store, selectors.items);\n const multiple = useStore(store, selectors.selectionMode) === 'multiple';\n const hasSelectedValue = useStore(store, selectors.hasSelectedValue);\n const shouldCheckNullItemLabel = !hasSelectedValue && placeholder != null && childrenProp == null;\n const hasNullLabel = useStore(store, selectors.hasNullItemLabel, shouldCheckNullItemLabel);\n let children = null;\n if (typeof childrenProp === 'function') {\n children = childrenProp(selectedValue);\n } else if (childrenProp != null) {\n children = childrenProp;\n } else if (!hasSelectedValue && placeholder != null && !hasNullLabel) {\n children = placeholder;\n } else if (multiple && Array.isArray(selectedValue)) {\n children = resolveMultipleLabels(selectedValue, items, itemToStringLabel);\n } else {\n children = resolveSelectedLabel(selectedValue, items, itemToStringLabel);\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: children\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { useComboboxItemContext } from \"../item/ComboboxItemContext.js\";\nimport { useTransitionStatus } from \"../../utils/useTransitionStatus.js\";\nimport { useOpenChangeComplete } from \"../../utils/useOpenChangeComplete.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { transitionStatusMapping } from \"../../utils/stateAttributesMapping.js\";\n\n/**\n * Indicates whether the item is selected.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxItemIndicator = /*#__PURE__*/React.forwardRef(function ComboboxItemIndicator(componentProps, forwardedRef) {\n const keepMounted = componentProps.keepMounted ?? false;\n const {\n selected\n } = useComboboxItemContext();\n const shouldRender = keepMounted || selected;\n if (!shouldRender) {\n return null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return /*#__PURE__*/_jsx(Inner, {\n ...componentProps,\n ref: forwardedRef\n });\n});\n\n/** The core implementation of the indicator is split here to avoid paying the hooks\n * costs unless the element needs to be mounted. */\nif (process.env.NODE_ENV !== \"production\") ComboboxItemIndicator.displayName = \"ComboboxItemIndicator\";\nconst Inner = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef((componentProps, forwardedRef) => {\n const {\n render,\n className,\n style,\n keepMounted,\n ...elementProps\n } = componentProps;\n const {\n selected\n } = useComboboxItemContext();\n const indicatorRef = React.useRef(null);\n const {\n transitionStatus,\n setMounted\n } = useTransitionStatus(selected);\n const state = {\n selected,\n transitionStatus\n };\n const element = useRenderElement('span', componentProps, {\n ref: [forwardedRef, indicatorRef],\n state,\n props: [{\n 'aria-hidden': true,\n children: '✔️'\n }, elementProps],\n stateAttributesMapping: transitionStatusMapping\n });\n useOpenChangeComplete({\n open: selected,\n ref: indicatorRef,\n onComplete() {\n if (!selected) {\n setMounted(false);\n }\n }\n });\n return element;\n}));\nif (process.env.NODE_ENV !== \"production\") Inner.displayName = \"Inner\";","'use client';\n\nimport * as React from 'react';\nimport { useStore } from '@base-ui/utils/store';\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { ComboboxChipsContext } from \"./ComboboxChipsContext.js\";\nimport { CompositeList } from \"../../composite/list/CompositeList.js\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.js\";\nimport { selectors } from \"../store.js\";\nimport { EMPTY_OBJECT } from \"../../utils/constants.js\";\nimport { handleInputPress } from \"../utils/handleInputPress.js\";\n\n/**\n * A container for the chips in a multiselectable input.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxChips = /*#__PURE__*/React.forwardRef(function ComboboxChips(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const open = useStore(store, selectors.open);\n const hasSelectionChips = useStore(store, selectors.hasSelectionChips);\n const [highlightedChipIndex, setHighlightedChipIndex] = React.useState(undefined);\n if (open && highlightedChipIndex !== undefined) {\n setHighlightedChipIndex(undefined);\n }\n const chipsRef = React.useRef([]);\n const element = useRenderElement('div', componentProps, {\n ref: [forwardedRef, store.state.chipsContainerRef],\n // NVDA enters browse mode instead of staying in focus mode when navigating with\n // arrow keys inside a container unless it has a toolbar role.\n props: [hasSelectionChips ? {\n role: 'toolbar'\n } : EMPTY_OBJECT, {\n onMouseDown(event) {\n handleInputPress(event, store, store.state.disabled, store.state.readOnly);\n }\n }, elementProps]\n });\n const contextValue = React.useMemo(() => ({\n highlightedChipIndex,\n setHighlightedChipIndex,\n chipsRef\n }), [highlightedChipIndex, setHighlightedChipIndex, chipsRef]);\n return /*#__PURE__*/_jsx(ComboboxChipsContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(CompositeList, {\n elementsRef: chipsRef,\n children: element\n })\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxChips.displayName = \"ComboboxChips\";","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ComboboxChipContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxChipContext.displayName = \"ComboboxChipContext\";\nexport function useComboboxChipContext() {\n const context = React.useContext(ComboboxChipContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'useComboboxChipContext must be used within a ComboboxChip' : _formatErrorMessage(17));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { useStore } from '@base-ui/utils/store';\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { useComboboxChipsContext } from \"../chips/ComboboxChipsContext.js\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.js\";\nimport { useCompositeListItem } from \"../../composite/list/useCompositeListItem.js\";\nimport { ComboboxChipContext } from \"./ComboboxChipContext.js\";\nimport { stopEvent } from \"../../floating-ui-react/utils.js\";\nimport { selectors } from \"../store.js\";\nimport { createChangeEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { REASONS } from \"../../utils/reasons.js\";\n\n/**\n * An individual chip that represents a value in a multiselectable input.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxChip = /*#__PURE__*/React.forwardRef(function ComboboxChip(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const {\n setHighlightedChipIndex,\n chipsRef\n } = useComboboxChipsContext();\n const disabled = useStore(store, selectors.disabled);\n const readOnly = useStore(store, selectors.readOnly);\n const selectedValue = useStore(store, selectors.selectedValue);\n const {\n ref,\n index\n } = useCompositeListItem();\n function handleKeyDown(event) {\n let nextIndex = index;\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n if (index > 0) {\n nextIndex = index - 1;\n } else {\n nextIndex = undefined;\n }\n } else if (event.key === 'ArrowRight') {\n event.preventDefault();\n if (index < chipsRef.current.length - 1) {\n nextIndex = index + 1;\n } else {\n nextIndex = undefined;\n }\n } else if (event.key === 'Backspace' || event.key === 'Delete') {\n const computedNextIndex = index >= selectedValue.length - 1 ? selectedValue.length - 2 : index;\n nextIndex = computedNextIndex >= 0 ? computedNextIndex : undefined;\n stopEvent(event);\n store.state.setIndices({\n activeIndex: null,\n selectedIndex: null,\n type: 'keyboard'\n });\n store.state.setSelectedValue(selectedValue.filter((_, i) => i !== index), createChangeEventDetails(REASONS.none, event.nativeEvent));\n } else if (event.key === 'Enter' || event.key === ' ') {\n stopEvent(event);\n nextIndex = undefined;\n } else if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n stopEvent(event);\n store.state.setOpen(true, createChangeEventDetails(REASONS.listNavigation, event.nativeEvent));\n nextIndex = undefined;\n } else if (\n // Check for printable characters (letters, numbers, symbols)\n event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey) {\n nextIndex = undefined;\n }\n return nextIndex;\n }\n const state = {\n disabled\n };\n const element = useRenderElement('div', componentProps, {\n ref: [forwardedRef, ref],\n state,\n props: [{\n tabIndex: -1,\n 'aria-disabled': disabled || undefined,\n 'aria-readonly': readOnly || undefined,\n onKeyDown(event) {\n if (disabled || readOnly) {\n return;\n }\n const nextIndex = handleKeyDown(event);\n ReactDOM.flushSync(() => {\n setHighlightedChipIndex(nextIndex);\n });\n if (nextIndex === undefined) {\n store.state.inputRef.current?.focus();\n } else {\n chipsRef.current[nextIndex]?.focus();\n }\n }\n }, elementProps]\n });\n const contextValue = React.useMemo(() => ({\n index\n }), [index]);\n return /*#__PURE__*/_jsx(ComboboxChipContext.Provider, {\n value: contextValue,\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxChip.displayName = \"ComboboxChip\";","'use client';\n\nimport * as React from 'react';\nimport { useStore } from '@base-ui/utils/store';\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.js\";\nimport { useComboboxChipContext } from \"../chip/ComboboxChipContext.js\";\nimport { useButton } from \"../../use-button/index.js\";\nimport { stopEvent } from \"../../floating-ui-react/utils.js\";\nimport { selectors } from \"../store.js\";\nimport { createChangeEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { REASONS } from \"../../utils/reasons.js\";\nimport { findItemIndex } from \"../../utils/itemEquality.js\";\n\n/**\n * A button to remove a chip.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxChipRemove = /*#__PURE__*/React.forwardRef(function ComboboxChipRemove(componentProps, forwardedRef) {\n const {\n render,\n className,\n disabled: disabledProp = false,\n nativeButton = true,\n style,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const {\n index\n } = useComboboxChipContext();\n const comboboxDisabled = useStore(store, selectors.disabled);\n const readOnly = useStore(store, selectors.readOnly);\n const selectedValue = useStore(store, selectors.selectedValue);\n const isItemEqualToValue = useStore(store, selectors.isItemEqualToValue);\n const disabled = comboboxDisabled || disabledProp;\n const {\n buttonRef,\n getButtonProps\n } = useButton({\n native: nativeButton,\n disabled: disabled || readOnly,\n focusableWhenDisabled: true\n });\n const state = {\n disabled\n };\n function clearActiveIndexForRemovedItem(removedItem) {\n const activeIndex = store.state.activeIndex;\n if (activeIndex == null) {\n return;\n }\n\n // Try current visible list first; if not found, it's filtered out.\n // No need to clear highlight in that case since it can't equal activeIndex.\n const removedIndex = findItemIndex(store.state.valuesRef.current, removedItem, isItemEqualToValue);\n if (removedIndex !== -1 && activeIndex === removedIndex) {\n store.state.setIndices({\n activeIndex: null,\n type: store.state.keyboardActiveRef.current ? 'keyboard' : 'pointer'\n });\n }\n }\n function removeChip(event) {\n const eventDetails = createChangeEventDetails(REASONS.chipRemovePress, event.nativeEvent);\n const removedItem = selectedValue[index];\n clearActiveIndexForRemovedItem(removedItem);\n store.state.setSelectedValue(selectedValue.filter((_, i) => i !== index), eventDetails);\n store.state.inputRef.current?.focus();\n return eventDetails;\n }\n const element = useRenderElement('button', componentProps, {\n ref: [forwardedRef, buttonRef],\n state,\n props: [{\n tabIndex: -1,\n onMouseDown(event) {\n event.preventDefault();\n },\n onClick(event) {\n if (disabled || readOnly) {\n return;\n }\n const eventDetails = removeChip(event);\n if (!eventDetails.isPropagationAllowed) {\n event.stopPropagation();\n }\n },\n onKeyDown(event) {\n if (disabled || readOnly) {\n return;\n }\n if (event.key === 'Enter' || event.key === ' ') {\n const eventDetails = removeChip(event);\n if (!eventDetails.isPropagationAllowed) {\n stopEvent(event);\n }\n }\n }\n }, elementProps, getButtonProps]\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxChipRemove.displayName = \"ComboboxChipRemove\";","\"use client\"\n\nimport * as React from \"react\"\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\"\n\nimport { cn } from \"src/shadcn/lib/utils\"\nimport { Button } from \"src/shadcn/components/button\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n} from \"src/shadcn/components/input-group\"\nimport { ChevronDownIcon, XIcon, CheckIcon } from \"lucide-react\"\n\nconst Combobox = ComboboxPrimitive.Root\n\nfunction ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />\n}\n\nfunction ComboboxTrigger({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Trigger.Props) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={cn(\"[&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n </ComboboxPrimitive.Trigger>\n )\n}\n\nfunction ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n render={<InputGroupButton variant=\"ghost\" size=\"icon-xs\" />}\n className={cn(className)}\n {...props}\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.Clear>\n )\n}\n\nfunction ComboboxInput({\n className,\n children,\n disabled = false,\n showTrigger = true,\n showClear = false,\n ...props\n}: ComboboxPrimitive.Input.Props & {\n showTrigger?: boolean\n showClear?: boolean\n}) {\n return (\n <InputGroup className={cn(\"w-auto\", className)}>\n <ComboboxPrimitive.Input\n render={<InputGroupInput disabled={disabled} />}\n {...props}\n />\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupButton\n size=\"icon-xs\"\n variant=\"ghost\"\n asChild\n data-slot=\"input-group-button\"\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent\"\n disabled={disabled}\n >\n <ComboboxTrigger />\n </InputGroupButton>\n )}\n {showClear && <ComboboxClear disabled={disabled} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n )\n}\n\nfunction ComboboxContent({\n className,\n side = \"bottom\",\n sideOffset = 6,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n return (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n className=\"pointer-events-auto isolate z-50\"\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-content\"\n data-chips={!!anchor}\n className={cn(\"group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n )\n}\n\nfunction ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n \"max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxItem({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Item.Props) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pe-8 ps-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ComboboxPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute end-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n )\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {\n return (\n <ComboboxPrimitive.Group\n data-slot=\"combobox-group\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxLabel({\n className,\n ...props\n}: ComboboxPrimitive.GroupLabel.Props) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={cn(\"px-2 py-1.5 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props) {\n return (\n <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n )\n}\n\nfunction ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n \"hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxSeparator({\n className,\n ...props\n}: ComboboxPrimitive.Separator.Props) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxChips({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> &\n ComboboxPrimitive.Chips.Props) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={cn(\n \"flex min-h-8 flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxChip({\n className,\n children,\n showRemove = true,\n ...props\n}: ComboboxPrimitive.Chip.Props & {\n showRemove?: boolean\n}) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n \"flex h-[calc(--spacing(5.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pe-0\",\n className\n )}\n {...props}\n >\n {children}\n {showRemove && (\n <ComboboxPrimitive.ChipRemove\n render={<Button variant=\"ghost\" size=\"icon-xs\" />}\n className=\"-ms-1 opacity-50 hover:opacity-100\"\n data-slot=\"combobox-chip-remove\"\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ChipRemove>\n )}\n </ComboboxPrimitive.Chip>\n )\n}\n\nconst ComboboxChipsInput = React.forwardRef<\n HTMLInputElement,\n ComboboxPrimitive.Input.Props\n>(({ className, ...props }, ref) => (\n <ComboboxPrimitive.Input\n ref={ref}\n data-slot=\"combobox-chip-input\"\n className={cn(\"min-w-16 flex-1 outline-none\", className)}\n {...props}\n />\n))\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null)\n}\n\nexport {\n Combobox,\n ComboboxInput,\n ComboboxContent,\n ComboboxList,\n ComboboxItem,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n ComboboxSeparator,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n ComboboxTrigger,\n ComboboxValue,\n useComboboxAnchor,\n}\n","import React from \"react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Combobox as ShadcnCombobox,\n ComboboxInput as ShadcnComboboxInput,\n ComboboxContent as ShadcnComboboxContent,\n ComboboxList as ShadcnComboboxList,\n ComboboxItem as ShadcnComboboxItem,\n ComboboxGroup as ShadcnComboboxGroup,\n ComboboxLabel as ShadcnComboboxLabel,\n ComboboxCollection as ShadcnComboboxCollection,\n ComboboxEmpty as ShadcnComboboxEmpty,\n ComboboxSeparator as ShadcnComboboxSeparator,\n ComboboxChips as ShadcnComboboxChips,\n ComboboxChip as ShadcnComboboxChip,\n ComboboxChipsInput as ShadcnComboboxChipsInput,\n ComboboxTrigger as ShadcnComboboxTrigger,\n ComboboxValue as ShadcnComboboxValue,\n useComboboxAnchor,\n} from \"src/shadcn/components/combobox\";\n\nconst Combobox = (props: React.ComponentProps<typeof ShadcnCombobox>) => (\n <ShadcnCombobox {...props} />\n);\n\nconst ComboboxInput = (\n props: React.ComponentProps<typeof ShadcnComboboxInput>\n) => <ShadcnComboboxInput {...props} />;\n\nconst ComboboxContent = (\n props: React.ComponentProps<typeof ShadcnComboboxContent>\n) => <ShadcnComboboxContent {...props} />;\n\nconst ComboboxList = (\n props: React.ComponentProps<typeof ShadcnComboboxList>\n) => <ShadcnComboboxList {...props} />;\n\nconst ComboboxItem = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnComboboxItem>) => (\n <ShadcnComboboxItem\n className={cn(\n \"cursor-pointer not-data-[variant=destructive]:data-highlighted:**:text-inherit\",\n className\n )}\n {...props}\n />\n);\n\nconst ComboboxGroup = (\n props: React.ComponentProps<typeof ShadcnComboboxGroup>\n) => <ShadcnComboboxGroup {...props} />;\n\nconst ComboboxLabel = (\n props: React.ComponentProps<typeof ShadcnComboboxLabel>\n) => <ShadcnComboboxLabel {...props} />;\n\nconst ComboboxCollection = (\n props: React.ComponentProps<typeof ShadcnComboboxCollection>\n) => <ShadcnComboboxCollection {...props} />;\n\nconst ComboboxEmpty = (\n props: React.ComponentProps<typeof ShadcnComboboxEmpty>\n) => <ShadcnComboboxEmpty {...props} />;\n\nconst ComboboxSeparator = (\n props: React.ComponentProps<typeof ShadcnComboboxSeparator>\n) => <ShadcnComboboxSeparator {...props} />;\n\nconst ComboboxChips = (\n props: React.ComponentProps<typeof ShadcnComboboxChips>\n) => <ShadcnComboboxChips {...props} />;\n\nconst ComboboxChip = (\n props: React.ComponentProps<typeof ShadcnComboboxChip>\n) => <ShadcnComboboxChip {...props} />;\n\nconst ComboboxChipsInput = React.forwardRef<\n HTMLInputElement,\n React.ComponentProps<typeof ShadcnComboboxChipsInput>\n>((props, ref) => <ShadcnComboboxChipsInput ref={ref} {...props} />);\n\nconst ComboboxTrigger = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnComboboxTrigger>) => (\n <ShadcnComboboxTrigger\n className={cn(\"cursor-pointer\", className)}\n {...props}\n />\n);\n\nconst ComboboxValue = (\n props: React.ComponentProps<typeof ShadcnComboboxValue>\n) => <ShadcnComboboxValue {...props} />;\n\nexport {\n Combobox,\n ComboboxInput,\n ComboboxContent,\n ComboboxList,\n ComboboxItem,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n ComboboxSeparator,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n ComboboxTrigger,\n ComboboxValue,\n useComboboxAnchor,\n};\n"],"names":["usePosition","REASONS.listNavigation","REASONS.focusOut","_jsx","_formatErrorMessage","REASONS.inputClear","REASONS.inputChange","REASONS.outsidePress","REASONS.itemPress","REASONS.none","REASONS.inputPress","_jsxs","ownerWindow","ComboboxTrigger","REASONS.closePress","ComboboxInput","REASONS.escapeKey","stateAttributesMapping","ComboboxClear","REASONS.clearPress","ComboboxCollection","ComboboxList","nativeHide","ComboboxGroup","ComboboxItem","ComboboxEmpty","ComboboxValue","ComboboxChips","ComboboxChip","REASONS.chipRemovePress","Combobox","ComboboxPrimitive.Root","ComboboxPrimitive.Value","ComboboxPrimitive.Trigger","ChevronDownIcon","ComboboxPrimitive.Clear","XIcon","ComboboxPrimitive.Input","ComboboxContent","ComboboxPrimitive.Portal","ComboboxPrimitive.Positioner","ComboboxPrimitive.Popup","ComboboxPrimitive.List","ComboboxPrimitive.Item","ComboboxPrimitive.ItemIndicator","CheckIcon","ComboboxPrimitive.Group","ComboboxLabel","ComboboxPrimitive.GroupLabel","ComboboxPrimitive.Collection","ComboboxPrimitive.Empty","ComboboxSeparator","ComboboxPrimitive.Separator","ComboboxPrimitive.Chips","ComboboxPrimitive.Chip","ComboboxPrimitive.ChipRemove","ComboboxChipsInput","ShadcnCombobox","ShadcnComboboxInput","ShadcnComboboxContent","ShadcnComboboxList","ShadcnComboboxItem","ShadcnComboboxGroup","ShadcnComboboxLabel","ShadcnComboboxCollection","ShadcnComboboxEmpty","ShadcnComboboxSeparator","ShadcnComboboxChips","ShadcnComboboxChip","React","ShadcnComboboxChipsInput","ShadcnComboboxTrigger","ShadcnComboboxValue"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]}
|