@fluentui/react-combobox 9.11.7 → 9.12.0

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.
Files changed (65) hide show
  1. package/CHANGELOG.md +174 -135
  2. package/dist/index.d.ts +16 -2
  3. package/lib/components/Combobox/useCombobox.js +18 -4
  4. package/lib/components/Combobox/useCombobox.js.map +1 -1
  5. package/lib/components/Combobox/useComboboxStyles.styles.js +2 -0
  6. package/lib/components/Combobox/useComboboxStyles.styles.js.map +1 -1
  7. package/lib/components/Combobox/useInputTriggerSlot.js +1 -0
  8. package/lib/components/Combobox/useInputTriggerSlot.js.map +1 -1
  9. package/lib/components/Dropdown/useButtonTriggerSlot.js +4 -1
  10. package/lib/components/Dropdown/useButtonTriggerSlot.js.map +1 -1
  11. package/lib/components/Dropdown/useDropdown.js +15 -2
  12. package/lib/components/Dropdown/useDropdown.js.map +1 -1
  13. package/lib/components/Dropdown/useDropdownStyles.styles.js +2 -0
  14. package/lib/components/Dropdown/useDropdownStyles.styles.js.map +1 -1
  15. package/lib/components/Listbox/Listbox.types.js.map +1 -1
  16. package/lib/components/Listbox/useListbox.js +67 -28
  17. package/lib/components/Listbox/useListbox.js.map +1 -1
  18. package/lib/components/Listbox/useListboxStyles.styles.js +2 -0
  19. package/lib/components/Listbox/useListboxStyles.styles.js.map +1 -1
  20. package/lib/components/Option/useOptionStyles.styles.js +2 -0
  21. package/lib/components/Option/useOptionStyles.styles.js.map +1 -1
  22. package/lib/components/OptionGroup/useOptionGroupStyles.styles.js +2 -0
  23. package/lib/components/OptionGroup/useOptionGroupStyles.styles.js.map +1 -1
  24. package/lib/contexts/ListboxContext.js +6 -0
  25. package/lib/contexts/ListboxContext.js.map +1 -1
  26. package/lib/contexts/useComboboxContextValues.js +3 -1
  27. package/lib/contexts/useComboboxContextValues.js.map +1 -1
  28. package/lib/contexts/useListboxContextValues.js +3 -1
  29. package/lib/contexts/useListboxContextValues.js.map +1 -1
  30. package/lib/utils/ComboboxBase.types.js.map +1 -1
  31. package/lib/utils/useComboboxBaseState.js +5 -24
  32. package/lib/utils/useComboboxBaseState.js.map +1 -1
  33. package/lib/utils/useComboboxPositioning.js +1 -0
  34. package/lib/utils/useComboboxPositioning.js.map +1 -1
  35. package/lib-commonjs/components/Combobox/useCombobox.js +17 -3
  36. package/lib-commonjs/components/Combobox/useCombobox.js.map +1 -1
  37. package/lib-commonjs/components/Combobox/useComboboxStyles.styles.js +1 -0
  38. package/lib-commonjs/components/Combobox/useComboboxStyles.styles.js.map +1 -1
  39. package/lib-commonjs/components/Combobox/useInputTriggerSlot.js +1 -0
  40. package/lib-commonjs/components/Combobox/useInputTriggerSlot.js.map +1 -1
  41. package/lib-commonjs/components/Dropdown/useButtonTriggerSlot.js +4 -1
  42. package/lib-commonjs/components/Dropdown/useButtonTriggerSlot.js.map +1 -1
  43. package/lib-commonjs/components/Dropdown/useDropdown.js +14 -1
  44. package/lib-commonjs/components/Dropdown/useDropdown.js.map +1 -1
  45. package/lib-commonjs/components/Dropdown/useDropdownStyles.styles.js +1 -0
  46. package/lib-commonjs/components/Dropdown/useDropdownStyles.styles.js.map +1 -1
  47. package/lib-commonjs/components/Listbox/useListbox.js +67 -28
  48. package/lib-commonjs/components/Listbox/useListbox.js.map +1 -1
  49. package/lib-commonjs/components/Listbox/useListboxStyles.styles.js +1 -0
  50. package/lib-commonjs/components/Listbox/useListboxStyles.styles.js.map +1 -1
  51. package/lib-commonjs/components/Option/useOptionStyles.styles.js +1 -0
  52. package/lib-commonjs/components/Option/useOptionStyles.styles.js.map +1 -1
  53. package/lib-commonjs/components/OptionGroup/useOptionGroupStyles.styles.js +1 -0
  54. package/lib-commonjs/components/OptionGroup/useOptionGroupStyles.styles.js.map +1 -1
  55. package/lib-commonjs/contexts/ListboxContext.js +6 -0
  56. package/lib-commonjs/contexts/ListboxContext.js.map +1 -1
  57. package/lib-commonjs/contexts/useComboboxContextValues.js +3 -1
  58. package/lib-commonjs/contexts/useComboboxContextValues.js.map +1 -1
  59. package/lib-commonjs/contexts/useListboxContextValues.js +3 -1
  60. package/lib-commonjs/contexts/useListboxContextValues.js.map +1 -1
  61. package/lib-commonjs/utils/useComboboxBaseState.js +5 -24
  62. package/lib-commonjs/utils/useComboboxBaseState.js.map +1 -1
  63. package/lib-commonjs/utils/useComboboxPositioning.js +1 -0
  64. package/lib-commonjs/utils/useComboboxPositioning.js.map +1 -1
  65. package/package.json +16 -14
@@ -7,7 +7,8 @@ import { useSelection } from '../utils/useSelection';
7
7
  * @internal
8
8
  * State shared between Combobox and Dropdown components
9
9
  */ export const useComboboxBaseState = (props)=>{
10
- const { appearance = 'outline', children, clearable = false, editable = false, inlinePopup = false, mountNode = undefined, multiselect, onOpenChange, size = 'medium', activeDescendantController, freeform = false, disabled = false, onActiveOptionChange = null } = props;
10
+ 'use no memo';
11
+ const { appearance = 'outline', disableAutoFocus, children, clearable = false, editable = false, inlinePopup = false, mountNode = undefined, multiselect, onOpenChange, size = 'medium', activeDescendantController, freeform = false, disabled = false, onActiveOptionChange = null } = props;
11
12
  const optionCollection = useOptionCollection();
12
13
  const { getOptionsMatchingValue } = optionCollection;
13
14
  const { getOptionById } = optionCollection;
@@ -116,36 +117,16 @@ import { useSelection } from '../utils/useSelection';
116
117
  freeform,
117
118
  disabled
118
119
  ]);
119
- // update active option based on change in open state
120
- React.useEffect(()=>{
121
- if (open) {
122
- // if it is single-select and there is a selected option, start at the selected option
123
- if (!multiselect && selectedOptions.length > 0) {
124
- const selectedOption = getOptionsMatchingValue((v)=>v === selectedOptions[0]).pop();
125
- if (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.id) {
126
- activeDescendantController.focus(selectedOption.id);
127
- }
128
- }
129
- } else {
130
- activeDescendantController.blur();
131
- }
132
- // this should only be run in response to changes in the open state or children
133
- // eslint-disable-next-line react-hooks/exhaustive-deps
134
- }, [
135
- open,
136
- activeDescendantController
137
- ]);
138
120
  // Fallback focus when children are updated in an open popover results in no item being focused
139
121
  React.useEffect(()=>{
140
- if (open) {
141
- if (!activeDescendantController.active()) {
142
- activeDescendantController.first();
143
- }
122
+ if (open && !disableAutoFocus && !activeDescendantController.active()) {
123
+ activeDescendantController.first();
144
124
  }
145
125
  // this should only be run in response to changes in the open state or children
146
126
  }, [
147
127
  open,
148
128
  children,
129
+ disableAutoFocus,
149
130
  activeDescendantController,
150
131
  getOptionById
151
132
  ]);
@@ -1 +1 @@
1
- {"version":3,"sources":["useComboboxBaseState.ts"],"sourcesContent":["import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { useControllableState, useEventCallback, useFirstMount } from '@fluentui/react-utilities';\nimport { ActiveDescendantChangeEvent, ActiveDescendantImperativeRef } from '@fluentui/react-aria';\nimport { useOptionCollection } from '../utils/useOptionCollection';\nimport { OptionValue } from '../utils/OptionCollection.types';\nimport { useSelection } from '../utils/useSelection';\nimport type { ComboboxBaseProps, ComboboxBaseOpenEvents, ComboboxBaseState } from './ComboboxBase.types';\nimport { SelectionEvents } from './Selection.types';\n\n/**\n * @internal\n * State shared between Combobox and Dropdown components\n */\nexport const useComboboxBaseState = (\n props: ComboboxBaseProps & {\n children?: React.ReactNode;\n editable?: boolean;\n disabled?: boolean;\n freeform?: boolean;\n activeDescendantController: ActiveDescendantImperativeRef;\n },\n): ComboboxBaseState => {\n const {\n appearance = 'outline',\n children,\n clearable = false,\n editable = false,\n inlinePopup = false,\n mountNode = undefined,\n multiselect,\n onOpenChange,\n size = 'medium',\n activeDescendantController,\n freeform = false,\n disabled = false,\n onActiveOptionChange = null,\n } = props;\n\n const optionCollection = useOptionCollection();\n const { getOptionsMatchingValue } = optionCollection;\n\n const { getOptionById } = optionCollection;\n const getActiveOption = React.useCallback(() => {\n const activeOptionId = activeDescendantController.active();\n return activeOptionId ? getOptionById(activeOptionId) : undefined;\n }, [activeDescendantController, getOptionById]);\n\n // Keeping some kind of backwards compatible functionality here\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const UNSAFE_activeOption = getActiveOption();\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const UNSAFE_setActiveOption = React.useCallback(\n (option: OptionValue | undefined | ((prev: OptionValue | undefined) => OptionValue | undefined)) => {\n let nextOption: OptionValue | undefined = undefined;\n if (typeof option === 'function') {\n const activeOption = getActiveOption();\n nextOption = option(activeOption);\n }\n\n if (nextOption) {\n activeDescendantController.focus(nextOption.id);\n } else {\n activeDescendantController.blur();\n }\n },\n [activeDescendantController, getActiveOption],\n );\n\n // track whether keyboard focus outline should be shown\n // tabster/keyborg doesn't work here, since the actual keyboard focus target doesn't move\n const [focusVisible, setFocusVisible] = React.useState(false);\n\n // track focused state to conditionally render collapsed listbox\n // when the trigger is focused - the listbox should but hidden until the open state is changed\n const [hasFocus, setHasFocus] = React.useState(false);\n\n const ignoreNextBlur = React.useRef(false);\n\n // calculate value based on props, internal value changes, and selected options\n const isFirstMount = useFirstMount();\n const [controllableValue, setValue] = useControllableState({\n state: props.value,\n initialState: undefined,\n });\n\n const { selectedOptions, selectOption: baseSelectOption, clearSelection } = useSelection(props);\n\n // reset any typed value when an option is selected\n const selectOption = React.useCallback(\n (ev: SelectionEvents, option: OptionValue) => {\n ReactDOM.unstable_batchedUpdates(() => {\n setValue(undefined);\n baseSelectOption(ev, option);\n });\n },\n [setValue, baseSelectOption],\n );\n\n const value = React.useMemo(() => {\n // don't compute the value if it is defined through props or setValue,\n if (controllableValue !== undefined) {\n return controllableValue;\n }\n\n // handle defaultValue here, so it is overridden by selection\n if (isFirstMount && props.defaultValue !== undefined) {\n return props.defaultValue;\n }\n\n const selectedOptionsText = getOptionsMatchingValue(optionValue => {\n return selectedOptions.includes(optionValue);\n }).map(option => option.text);\n\n if (multiselect) {\n // editable inputs should not display multiple selected options in the input as text\n return editable ? '' : selectedOptionsText.join(', ');\n }\n\n return selectedOptionsText[0];\n\n // do not change value after isFirstMount changes,\n // we do not want to accidentally override defaultValue on a second render\n // unless another value is intentionally set\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [controllableValue, editable, getOptionsMatchingValue, multiselect, props.defaultValue, selectedOptions]);\n\n // Handle open state, which is shared with options in context\n const [open, setOpenState] = useControllableState({\n state: props.open,\n defaultState: props.defaultOpen,\n initialState: false,\n });\n\n const setOpen = React.useCallback(\n (event: ComboboxBaseOpenEvents, newState: boolean) => {\n if (disabled) {\n return;\n }\n onOpenChange?.(event, { open: newState });\n ReactDOM.unstable_batchedUpdates(() => {\n if (!newState && !freeform) {\n setValue(undefined);\n }\n setOpenState(newState);\n });\n },\n [onOpenChange, setOpenState, setValue, freeform, disabled],\n );\n\n // update active option based on change in open state\n React.useEffect(() => {\n if (open) {\n // if it is single-select and there is a selected option, start at the selected option\n if (!multiselect && selectedOptions.length > 0) {\n const selectedOption = getOptionsMatchingValue(v => v === selectedOptions[0]).pop();\n if (selectedOption?.id) {\n activeDescendantController.focus(selectedOption.id);\n }\n }\n } else {\n activeDescendantController.blur();\n }\n // this should only be run in response to changes in the open state or children\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, activeDescendantController]);\n\n // Fallback focus when children are updated in an open popover results in no item being focused\n React.useEffect(() => {\n if (open) {\n if (!activeDescendantController.active()) {\n activeDescendantController.first();\n }\n }\n // this should only be run in response to changes in the open state or children\n }, [open, children, activeDescendantController, getOptionById]);\n\n const onActiveDescendantChange = useEventCallback((event: ActiveDescendantChangeEvent) => {\n const previousOption = event.detail.previousId ? optionCollection.getOptionById(event.detail.previousId) : null;\n const nextOption = optionCollection.getOptionById(event.detail.id);\n onActiveOptionChange?.(event, { event, type: 'change', previousOption, nextOption });\n });\n\n return {\n ...optionCollection,\n freeform,\n disabled,\n selectOption,\n clearSelection,\n selectedOptions,\n activeOption: UNSAFE_activeOption,\n appearance,\n clearable,\n focusVisible,\n ignoreNextBlur,\n inlinePopup,\n mountNode,\n open,\n hasFocus,\n setActiveOption: UNSAFE_setActiveOption,\n setFocusVisible,\n setHasFocus,\n setOpen,\n setValue,\n size,\n value,\n multiselect,\n onOptionClick: useEventCallback((e: React.MouseEvent<HTMLElement>) => {\n if (!multiselect) {\n setOpen(e, false);\n }\n }),\n onActiveDescendantChange,\n };\n};\n"],"names":["React","ReactDOM","useControllableState","useEventCallback","useFirstMount","useOptionCollection","useSelection","useComboboxBaseState","props","appearance","children","clearable","editable","inlinePopup","mountNode","undefined","multiselect","onOpenChange","size","activeDescendantController","freeform","disabled","onActiveOptionChange","optionCollection","getOptionsMatchingValue","getOptionById","getActiveOption","useCallback","activeOptionId","active","UNSAFE_activeOption","UNSAFE_setActiveOption","option","nextOption","activeOption","focus","id","blur","focusVisible","setFocusVisible","useState","hasFocus","setHasFocus","ignoreNextBlur","useRef","isFirstMount","controllableValue","setValue","state","value","initialState","selectedOptions","selectOption","baseSelectOption","clearSelection","ev","unstable_batchedUpdates","useMemo","defaultValue","selectedOptionsText","optionValue","includes","map","text","join","open","setOpenState","defaultState","defaultOpen","setOpen","event","newState","useEffect","length","selectedOption","v","pop","first","onActiveDescendantChange","previousOption","detail","previousId","type","setActiveOption","onOptionClick","e"],"mappings":"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"}
1
+ {"version":3,"sources":["useComboboxBaseState.ts"],"sourcesContent":["import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { useControllableState, useEventCallback, useFirstMount } from '@fluentui/react-utilities';\nimport { ActiveDescendantChangeEvent, ActiveDescendantImperativeRef } from '@fluentui/react-aria';\nimport { useOptionCollection } from '../utils/useOptionCollection';\nimport { OptionValue } from '../utils/OptionCollection.types';\nimport { useSelection } from '../utils/useSelection';\nimport type { ComboboxBaseProps, ComboboxBaseOpenEvents, ComboboxBaseState } from './ComboboxBase.types';\nimport { SelectionEvents } from './Selection.types';\n\n/**\n * @internal\n * State shared between Combobox and Dropdown components\n */\nexport const useComboboxBaseState = (\n props: ComboboxBaseProps & {\n children?: React.ReactNode;\n editable?: boolean;\n disabled?: boolean;\n freeform?: boolean;\n activeDescendantController: ActiveDescendantImperativeRef;\n },\n): ComboboxBaseState => {\n 'use no memo';\n\n const {\n appearance = 'outline',\n disableAutoFocus,\n children,\n clearable = false,\n editable = false,\n inlinePopup = false,\n mountNode = undefined,\n multiselect,\n onOpenChange,\n size = 'medium',\n activeDescendantController,\n freeform = false,\n disabled = false,\n onActiveOptionChange = null,\n } = props;\n\n const optionCollection = useOptionCollection();\n const { getOptionsMatchingValue } = optionCollection;\n\n const { getOptionById } = optionCollection;\n const getActiveOption = React.useCallback(() => {\n const activeOptionId = activeDescendantController.active();\n return activeOptionId ? getOptionById(activeOptionId) : undefined;\n }, [activeDescendantController, getOptionById]);\n\n // Keeping some kind of backwards compatible functionality here\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const UNSAFE_activeOption = getActiveOption();\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const UNSAFE_setActiveOption = React.useCallback(\n (option: OptionValue | undefined | ((prev: OptionValue | undefined) => OptionValue | undefined)) => {\n let nextOption: OptionValue | undefined = undefined;\n if (typeof option === 'function') {\n const activeOption = getActiveOption();\n nextOption = option(activeOption);\n }\n\n if (nextOption) {\n activeDescendantController.focus(nextOption.id);\n } else {\n activeDescendantController.blur();\n }\n },\n [activeDescendantController, getActiveOption],\n );\n\n // track whether keyboard focus outline should be shown\n // tabster/keyborg doesn't work here, since the actual keyboard focus target doesn't move\n const [focusVisible, setFocusVisible] = React.useState(false);\n\n // track focused state to conditionally render collapsed listbox\n // when the trigger is focused - the listbox should but hidden until the open state is changed\n const [hasFocus, setHasFocus] = React.useState(false);\n\n const ignoreNextBlur = React.useRef(false);\n\n // calculate value based on props, internal value changes, and selected options\n const isFirstMount = useFirstMount();\n const [controllableValue, setValue] = useControllableState({\n state: props.value,\n initialState: undefined,\n });\n\n const { selectedOptions, selectOption: baseSelectOption, clearSelection } = useSelection(props);\n\n // reset any typed value when an option is selected\n const selectOption = React.useCallback(\n (ev: SelectionEvents, option: OptionValue) => {\n ReactDOM.unstable_batchedUpdates(() => {\n setValue(undefined);\n baseSelectOption(ev, option);\n });\n },\n [setValue, baseSelectOption],\n );\n\n const value = React.useMemo(() => {\n // don't compute the value if it is defined through props or setValue,\n if (controllableValue !== undefined) {\n return controllableValue;\n }\n\n // handle defaultValue here, so it is overridden by selection\n if (isFirstMount && props.defaultValue !== undefined) {\n return props.defaultValue;\n }\n\n const selectedOptionsText = getOptionsMatchingValue(optionValue => {\n return selectedOptions.includes(optionValue);\n }).map(option => option.text);\n\n if (multiselect) {\n // editable inputs should not display multiple selected options in the input as text\n return editable ? '' : selectedOptionsText.join(', ');\n }\n\n return selectedOptionsText[0];\n\n // do not change value after isFirstMount changes,\n // we do not want to accidentally override defaultValue on a second render\n // unless another value is intentionally set\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [controllableValue, editable, getOptionsMatchingValue, multiselect, props.defaultValue, selectedOptions]);\n\n // Handle open state, which is shared with options in context\n const [open, setOpenState] = useControllableState({\n state: props.open,\n defaultState: props.defaultOpen,\n initialState: false,\n });\n\n const setOpen = React.useCallback(\n (event: ComboboxBaseOpenEvents, newState: boolean) => {\n if (disabled) {\n return;\n }\n onOpenChange?.(event, { open: newState });\n ReactDOM.unstable_batchedUpdates(() => {\n if (!newState && !freeform) {\n setValue(undefined);\n }\n setOpenState(newState);\n });\n },\n [onOpenChange, setOpenState, setValue, freeform, disabled],\n );\n\n // Fallback focus when children are updated in an open popover results in no item being focused\n React.useEffect(() => {\n if (open && !disableAutoFocus && !activeDescendantController.active()) {\n activeDescendantController.first();\n }\n // this should only be run in response to changes in the open state or children\n }, [open, children, disableAutoFocus, activeDescendantController, getOptionById]);\n\n const onActiveDescendantChange = useEventCallback((event: ActiveDescendantChangeEvent) => {\n const previousOption = event.detail.previousId ? optionCollection.getOptionById(event.detail.previousId) : null;\n const nextOption = optionCollection.getOptionById(event.detail.id);\n onActiveOptionChange?.(event, { event, type: 'change', previousOption, nextOption });\n });\n\n return {\n ...optionCollection,\n freeform,\n disabled,\n selectOption,\n clearSelection,\n selectedOptions,\n activeOption: UNSAFE_activeOption,\n appearance,\n clearable,\n focusVisible,\n ignoreNextBlur,\n inlinePopup,\n mountNode,\n open,\n hasFocus,\n setActiveOption: UNSAFE_setActiveOption,\n setFocusVisible,\n setHasFocus,\n setOpen,\n setValue,\n size,\n value,\n multiselect,\n onOptionClick: useEventCallback((e: React.MouseEvent<HTMLElement>) => {\n if (!multiselect) {\n setOpen(e, false);\n }\n }),\n onActiveDescendantChange,\n };\n};\n"],"names":["React","ReactDOM","useControllableState","useEventCallback","useFirstMount","useOptionCollection","useSelection","useComboboxBaseState","props","appearance","disableAutoFocus","children","clearable","editable","inlinePopup","mountNode","undefined","multiselect","onOpenChange","size","activeDescendantController","freeform","disabled","onActiveOptionChange","optionCollection","getOptionsMatchingValue","getOptionById","getActiveOption","useCallback","activeOptionId","active","UNSAFE_activeOption","UNSAFE_setActiveOption","option","nextOption","activeOption","focus","id","blur","focusVisible","setFocusVisible","useState","hasFocus","setHasFocus","ignoreNextBlur","useRef","isFirstMount","controllableValue","setValue","state","value","initialState","selectedOptions","selectOption","baseSelectOption","clearSelection","ev","unstable_batchedUpdates","useMemo","defaultValue","selectedOptionsText","optionValue","includes","map","text","join","open","setOpenState","defaultState","defaultOpen","setOpen","event","newState","useEffect","first","onActiveDescendantChange","previousOption","detail","previousId","type","setActiveOption","onOptionClick","e"],"mappings":"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"}
@@ -20,6 +20,7 @@ export function useComboboxPositioning(props) {
20
20
  },
21
21
  fallbackPositions,
22
22
  matchTargetSize: 'width',
23
+ autoSize: true,
23
24
  ...resolvePositioningShorthand(positioning)
24
25
  };
25
26
  const { targetRef, containerRef } = usePositioning(popperOptions);
@@ -1 +1 @@
1
- {"version":3,"sources":["useComboboxPositioning.ts"],"sourcesContent":["import { PositioningShorthandValue, resolvePositioningShorthand, usePositioning } from '@fluentui/react-positioning';\nimport type { ComboboxBaseProps } from './ComboboxBase.types';\nimport * as React from 'react';\n\nexport function useComboboxPositioning(props: ComboboxBaseProps): [\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n listboxRef: React.MutableRefObject<any>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n triggerRef: React.MutableRefObject<any>,\n] {\n const { positioning } = props;\n\n // Set a default set of fallback positions to try if the dropdown does not fit on screen\n const fallbackPositions: PositioningShorthandValue[] = ['above', 'after', 'after-top', 'before', 'before-top'];\n\n // popper options\n const popperOptions = {\n position: 'below' as const,\n align: 'start' as const,\n offset: { crossAxis: 0, mainAxis: 2 },\n fallbackPositions,\n matchTargetSize: 'width' as const,\n ...resolvePositioningShorthand(positioning),\n };\n\n const { targetRef, containerRef } = usePositioning(popperOptions);\n\n return [containerRef, targetRef];\n}\n"],"names":["resolvePositioningShorthand","usePositioning","React","useComboboxPositioning","props","positioning","fallbackPositions","popperOptions","position","align","offset","crossAxis","mainAxis","matchTargetSize","targetRef","containerRef"],"mappings":"AAAA,SAAoCA,2BAA2B,EAAEC,cAAc,QAAQ,8BAA8B;AAErH,YAAYC,WAAW,QAAQ;AAE/B,OAAO,SAASC,uBAAuBC,KAAwB;IAM7D,MAAM,EAAEC,WAAW,EAAE,GAAGD;IAExB,wFAAwF;IACxF,MAAME,oBAAiD;QAAC;QAAS;QAAS;QAAa;QAAU;KAAa;IAE9G,iBAAiB;IACjB,MAAMC,gBAAgB;QACpBC,UAAU;QACVC,OAAO;QACPC,QAAQ;YAAEC,WAAW;YAAGC,UAAU;QAAE;QACpCN;QACAO,iBAAiB;QACjB,GAAGb,4BAA4BK,YAAY;IAC7C;IAEA,MAAM,EAAES,SAAS,EAAEC,YAAY,EAAE,GAAGd,eAAeM;IAEnD,OAAO;QAACQ;QAAcD;KAAU;AAClC"}
1
+ {"version":3,"sources":["useComboboxPositioning.ts"],"sourcesContent":["import { PositioningShorthandValue, resolvePositioningShorthand, usePositioning } from '@fluentui/react-positioning';\nimport type { ComboboxBaseProps } from './ComboboxBase.types';\nimport * as React from 'react';\n\nexport function useComboboxPositioning(props: ComboboxBaseProps): [\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n listboxRef: React.MutableRefObject<any>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n triggerRef: React.MutableRefObject<any>,\n] {\n const { positioning } = props;\n\n // Set a default set of fallback positions to try if the dropdown does not fit on screen\n const fallbackPositions: PositioningShorthandValue[] = ['above', 'after', 'after-top', 'before', 'before-top'];\n\n // popper options\n const popperOptions = {\n position: 'below' as const,\n align: 'start' as const,\n offset: { crossAxis: 0, mainAxis: 2 },\n fallbackPositions,\n matchTargetSize: 'width' as const,\n autoSize: true,\n ...resolvePositioningShorthand(positioning),\n };\n\n const { targetRef, containerRef } = usePositioning(popperOptions);\n\n return [containerRef, targetRef];\n}\n"],"names":["resolvePositioningShorthand","usePositioning","React","useComboboxPositioning","props","positioning","fallbackPositions","popperOptions","position","align","offset","crossAxis","mainAxis","matchTargetSize","autoSize","targetRef","containerRef"],"mappings":"AAAA,SAAoCA,2BAA2B,EAAEC,cAAc,QAAQ,8BAA8B;AAErH,YAAYC,WAAW,QAAQ;AAE/B,OAAO,SAASC,uBAAuBC,KAAwB;IAM7D,MAAM,EAAEC,WAAW,EAAE,GAAGD;IAExB,wFAAwF;IACxF,MAAME,oBAAiD;QAAC;QAAS;QAAS;QAAa;QAAU;KAAa;IAE9G,iBAAiB;IACjB,MAAMC,gBAAgB;QACpBC,UAAU;QACVC,OAAO;QACPC,QAAQ;YAAEC,WAAW;YAAGC,UAAU;QAAE;QACpCN;QACAO,iBAAiB;QACjBC,UAAU;QACV,GAAGd,4BAA4BK,YAAY;IAC7C;IAEA,MAAM,EAAEU,SAAS,EAAEC,YAAY,EAAE,GAAGf,eAAeM;IAEnD,OAAO;QAACS;QAAcD;KAAU;AAClC"}
@@ -14,6 +14,7 @@ const _reactaria = require("@fluentui/react-aria");
14
14
  const _reactfield = require("@fluentui/react-field");
15
15
  const _reacticons = require("@fluentui/react-icons");
16
16
  const _reactutilities = require("@fluentui/react-utilities");
17
+ const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
17
18
  const _useComboboxBaseState = require("../../utils/useComboboxBaseState");
18
19
  const _useComboboxPositioning = require("../../utils/useComboboxPositioning");
19
20
  const _Listbox = require("../Listbox/Listbox");
@@ -21,6 +22,7 @@ const _useListboxSlot = require("../../utils/useListboxSlot");
21
22
  const _useInputTriggerSlot = require("./useInputTriggerSlot");
22
23
  const _useOptionStylesstyles = require("../Option/useOptionStyles.styles");
23
24
  const useCombobox_unstable = (props, ref)=>{
25
+ 'use no memo';
24
26
  var _state_clearIcon, _state_clearIcon1;
25
27
  // Merge props from surrounding <Field>, if any
26
28
  props = (0, _reactfield.useFieldControlProps_unstable)(props, {
@@ -36,9 +38,9 @@ const useCombobox_unstable = (props, ref)=>{
36
38
  editable: true,
37
39
  activeDescendantController
38
40
  });
39
- const { clearable, clearSelection, disabled, multiselect, open, selectedOptions, value, hasFocus } = baseState;
41
+ const { clearable, clearSelection, disabled, multiselect, open, selectedOptions, setOpen, value, hasFocus } = baseState;
40
42
  const [comboboxPopupRef, comboboxTargetRef] = (0, _useComboboxPositioning.useComboboxPositioning)(props);
41
- const { freeform, inlinePopup } = props;
43
+ const { disableAutoFocus = false, freeform, inlinePopup } = props;
42
44
  const comboId = (0, _reactutilities.useId)('combobox-');
43
45
  const { primary: triggerNativeProps, root: rootNativeProps } = (0, _reactutilities.getPartitionedNativeProps)({
44
46
  props,
@@ -53,7 +55,8 @@ const useCombobox_unstable = (props, ref)=>{
53
55
  state: baseState,
54
56
  triggerRef,
55
57
  defaultProps: {
56
- children: props.children
58
+ children: props.children,
59
+ disableAutoFocus
57
60
  }
58
61
  });
59
62
  var _props_input;
@@ -110,6 +113,17 @@ const useCombobox_unstable = (props, ref)=>{
110
113
  activeDescendantController,
111
114
  ...baseState
112
115
  };
116
+ const { targetDocument } = (0, _reactsharedcontexts.useFluent_unstable)();
117
+ (0, _reactutilities.useOnClickOutside)({
118
+ element: targetDocument,
119
+ callback: (event)=>setOpen(event, false),
120
+ refs: [
121
+ triggerRef,
122
+ comboboxPopupRef,
123
+ comboboxTargetRef
124
+ ],
125
+ disabled: !open
126
+ });
113
127
  /* handle open/close + focus change when clicking expandIcon */ const { onMouseDown: onIconMouseDown } = state.expandIcon || {};
114
128
  const onExpandIconMouseDown = (0, _reactutilities.useEventCallback)((0, _reactutilities.mergeCallbacks)(onIconMouseDown, (event)=>{
115
129
  var _triggerRef_current;
@@ -1 +1 @@
1
- {"version":3,"sources":["useCombobox.js"],"sourcesContent":["import * as React from 'react';\nimport { useActiveDescendant } from '@fluentui/react-aria';\nimport { useFieldControlProps_unstable } from '@fluentui/react-field';\nimport { ChevronDownRegular as ChevronDownIcon, DismissRegular as DismissIcon } from '@fluentui/react-icons';\nimport { getPartitionedNativeProps, mergeCallbacks, useEventCallback, useId, useMergedRefs, slot } from '@fluentui/react-utilities';\nimport { useComboboxBaseState } from '../../utils/useComboboxBaseState';\nimport { useComboboxPositioning } from '../../utils/useComboboxPositioning';\nimport { Listbox } from '../Listbox/Listbox';\nimport { useListboxSlot } from '../../utils/useListboxSlot';\nimport { useInputTriggerSlot } from './useInputTriggerSlot';\nimport { optionClassNames } from '../Option/useOptionStyles.styles';\n/**\n * Create the state required to render Combobox.\n *\n * The returned state can be modified with hooks such as useComboboxStyles_unstable,\n * before being passed to renderCombobox_unstable.\n *\n * @param props - props from this instance of Combobox\n * @param ref - reference to root HTMLElement of Combobox\n */ export const useCombobox_unstable = (props, ref)=>{\n var _state_clearIcon, _state_clearIcon1;\n // Merge props from surrounding <Field>, if any\n props = useFieldControlProps_unstable(props, {\n supportsLabelFor: true,\n supportsRequired: true,\n supportsSize: true\n });\n const { listboxRef: activeDescendantListboxRef, activeParentRef, controller: activeDescendantController } = useActiveDescendant({\n matchOption: (el)=>el.classList.contains(optionClassNames.root)\n });\n const baseState = useComboboxBaseState({\n ...props,\n editable: true,\n activeDescendantController\n });\n const { clearable, clearSelection, disabled, multiselect, open, selectedOptions, value, hasFocus } = baseState;\n const [comboboxPopupRef, comboboxTargetRef] = useComboboxPositioning(props);\n const { freeform, inlinePopup } = props;\n const comboId = useId('combobox-');\n const { primary: triggerNativeProps, root: rootNativeProps } = getPartitionedNativeProps({\n props,\n primarySlotTagName: 'input',\n excludedPropNames: [\n 'children',\n 'size'\n ]\n });\n const triggerRef = React.useRef(null);\n const listbox = useListboxSlot(props.listbox, useMergedRefs(comboboxPopupRef, activeDescendantListboxRef), {\n state: baseState,\n triggerRef,\n defaultProps: {\n children: props.children\n }\n });\n var _props_input;\n const triggerSlot = useInputTriggerSlot((_props_input = props.input) !== null && _props_input !== void 0 ? _props_input : {}, useMergedRefs(triggerRef, activeParentRef, ref), {\n state: baseState,\n freeform,\n defaultProps: {\n type: 'text',\n value: value !== null && value !== void 0 ? value : '',\n 'aria-controls': open ? listbox === null || listbox === void 0 ? void 0 : listbox.id : undefined,\n ...triggerNativeProps\n },\n activeDescendantController\n });\n const rootSlot = slot.always(props.root, {\n defaultProps: {\n 'aria-owns': !inlinePopup && open ? listbox === null || listbox === void 0 ? void 0 : listbox.id : undefined,\n ...rootNativeProps\n },\n elementType: 'div'\n });\n rootSlot.ref = useMergedRefs(rootSlot.ref, comboboxTargetRef);\n const showClearIcon = selectedOptions.length > 0 && clearable && !multiselect;\n const state = {\n components: {\n root: 'div',\n input: 'input',\n expandIcon: 'span',\n listbox: Listbox,\n clearIcon: 'span'\n },\n root: rootSlot,\n input: triggerSlot,\n listbox: open || hasFocus ? listbox : undefined,\n clearIcon: slot.optional(props.clearIcon, {\n defaultProps: {\n 'aria-hidden': 'true',\n children: /*#__PURE__*/ React.createElement(DismissIcon, null)\n },\n elementType: 'span',\n renderByDefault: true\n }),\n expandIcon: slot.optional(props.expandIcon, {\n renderByDefault: true,\n defaultProps: {\n 'aria-disabled': disabled ? 'true' : undefined,\n 'aria-expanded': open,\n children: /*#__PURE__*/ React.createElement(ChevronDownIcon, null),\n role: 'button'\n },\n elementType: 'span'\n }),\n showClearIcon,\n activeDescendantController,\n ...baseState\n };\n /* handle open/close + focus change when clicking expandIcon */ const { onMouseDown: onIconMouseDown } = state.expandIcon || {};\n const onExpandIconMouseDown = useEventCallback(mergeCallbacks(onIconMouseDown, (event)=>{\n var _triggerRef_current;\n event.preventDefault();\n state.setOpen(event, !state.open);\n (_triggerRef_current = triggerRef.current) === null || _triggerRef_current === void 0 ? void 0 : _triggerRef_current.focus();\n }));\n if (state.expandIcon) {\n state.expandIcon.onMouseDown = onExpandIconMouseDown;\n // If there is no explicit aria-label, calculate default accName attribute for expandIcon button,\n // using the following steps:\n // 1. If there is an aria-label, it is \"Open [aria-label]\"\n // 2. If there is an aria-labelledby, it is \"Open [aria-labelledby target]\" (using aria-labelledby + ids)\n // 3. If there is no aria-label/ledby attr, it falls back to \"Open\"\n // We can't fall back to a label/htmlFor name because of https://github.com/w3c/accname/issues/179\n const hasExpandLabel = state.expandIcon['aria-label'] || state.expandIcon['aria-labelledby'];\n const defaultOpenString = 'Open'; // this is english-only since it is the fallback\n if (!hasExpandLabel) {\n if (props['aria-labelledby']) {\n var _state_expandIcon_id;\n const chevronId = (_state_expandIcon_id = state.expandIcon.id) !== null && _state_expandIcon_id !== void 0 ? _state_expandIcon_id : `${comboId}-chevron`;\n const chevronLabelledBy = `${chevronId} ${state.input['aria-labelledby']}`;\n state.expandIcon['aria-label'] = defaultOpenString;\n state.expandIcon.id = chevronId;\n state.expandIcon['aria-labelledby'] = chevronLabelledBy;\n } else if (props['aria-label']) {\n state.expandIcon['aria-label'] = `${defaultOpenString} ${props['aria-label']}`;\n } else {\n state.expandIcon['aria-label'] = defaultOpenString;\n }\n }\n }\n const onClearIconMouseDown = useEventCallback(mergeCallbacks((_state_clearIcon = state.clearIcon) === null || _state_clearIcon === void 0 ? void 0 : _state_clearIcon.onMouseDown, (ev)=>{\n ev.preventDefault();\n }));\n const onClearIconClick = useEventCallback(mergeCallbacks((_state_clearIcon1 = state.clearIcon) === null || _state_clearIcon1 === void 0 ? void 0 : _state_clearIcon1.onClick, (ev)=>{\n clearSelection(ev);\n }));\n if (state.clearIcon) {\n state.clearIcon.onMouseDown = onClearIconMouseDown;\n state.clearIcon.onClick = onClearIconClick;\n }\n // Heads up! We don't support \"clearable\" in multiselect mode, so we should never display a slot\n if (multiselect) {\n state.clearIcon = undefined;\n }\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- \"process.env\" does not change in runtime\n React.useEffect(()=>{\n if (clearable && multiselect) {\n // eslint-disable-next-line no-console\n console.error(`[@fluentui/react-combobox] \"clearable\" prop is not supported in multiselect mode.`);\n }\n }, [\n clearable,\n multiselect\n ]);\n }\n return state;\n};\n"],"names":["useCombobox_unstable","props","ref","_state_clearIcon","_state_clearIcon1","useFieldControlProps_unstable","supportsLabelFor","supportsRequired","supportsSize","listboxRef","activeDescendantListboxRef","activeParentRef","controller","activeDescendantController","useActiveDescendant","matchOption","el","classList","contains","optionClassNames","root","baseState","useComboboxBaseState","editable","clearable","clearSelection","disabled","multiselect","open","selectedOptions","value","hasFocus","comboboxPopupRef","comboboxTargetRef","useComboboxPositioning","freeform","inlinePopup","comboId","useId","primary","triggerNativeProps","rootNativeProps","getPartitionedNativeProps","primarySlotTagName","excludedPropNames","triggerRef","React","useRef","listbox","useListboxSlot","useMergedRefs","state","defaultProps","children","_props_input","triggerSlot","useInputTriggerSlot","input","type","id","undefined","rootSlot","slot","always","elementType","showClearIcon","length","components","expandIcon","Listbox","clearIcon","optional","createElement","DismissIcon","renderByDefault","ChevronDownIcon","role","onMouseDown","onIconMouseDown","onExpandIconMouseDown","useEventCallback","mergeCallbacks","event","_triggerRef_current","preventDefault","setOpen","current","focus","hasExpandLabel","defaultOpenString","_state_expandIcon_id","chevronId","chevronLabelledBy","onClearIconMouseDown","ev","onClearIconClick","onClick","process","env","NODE_ENV","useEffect","console","error"],"mappings":"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"}
1
+ {"version":3,"sources":["useCombobox.js"],"sourcesContent":["import * as React from 'react';\nimport { useActiveDescendant } from '@fluentui/react-aria';\nimport { useFieldControlProps_unstable } from '@fluentui/react-field';\nimport { ChevronDownRegular as ChevronDownIcon, DismissRegular as DismissIcon } from '@fluentui/react-icons';\nimport { getPartitionedNativeProps, mergeCallbacks, useEventCallback, useId, useMergedRefs, slot, useOnClickOutside } from '@fluentui/react-utilities';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useComboboxBaseState } from '../../utils/useComboboxBaseState';\nimport { useComboboxPositioning } from '../../utils/useComboboxPositioning';\nimport { Listbox } from '../Listbox/Listbox';\nimport { useListboxSlot } from '../../utils/useListboxSlot';\nimport { useInputTriggerSlot } from './useInputTriggerSlot';\nimport { optionClassNames } from '../Option/useOptionStyles.styles';\n/**\n * Create the state required to render Combobox.\n *\n * The returned state can be modified with hooks such as useComboboxStyles_unstable,\n * before being passed to renderCombobox_unstable.\n *\n * @param props - props from this instance of Combobox\n * @param ref - reference to root HTMLElement of Combobox\n */ export const useCombobox_unstable = (props, ref)=>{\n 'use no memo';\n var _state_clearIcon, _state_clearIcon1;\n // Merge props from surrounding <Field>, if any\n props = useFieldControlProps_unstable(props, {\n supportsLabelFor: true,\n supportsRequired: true,\n supportsSize: true\n });\n const { listboxRef: activeDescendantListboxRef, activeParentRef, controller: activeDescendantController } = useActiveDescendant({\n matchOption: (el)=>el.classList.contains(optionClassNames.root)\n });\n const baseState = useComboboxBaseState({\n ...props,\n editable: true,\n activeDescendantController\n });\n const { clearable, clearSelection, disabled, multiselect, open, selectedOptions, setOpen, value, hasFocus } = baseState;\n const [comboboxPopupRef, comboboxTargetRef] = useComboboxPositioning(props);\n const { disableAutoFocus = false, freeform, inlinePopup } = props;\n const comboId = useId('combobox-');\n const { primary: triggerNativeProps, root: rootNativeProps } = getPartitionedNativeProps({\n props,\n primarySlotTagName: 'input',\n excludedPropNames: [\n 'children',\n 'size'\n ]\n });\n const triggerRef = React.useRef(null);\n const listbox = useListboxSlot(props.listbox, useMergedRefs(comboboxPopupRef, activeDescendantListboxRef), {\n state: baseState,\n triggerRef,\n defaultProps: {\n children: props.children,\n disableAutoFocus\n }\n });\n var _props_input;\n const triggerSlot = useInputTriggerSlot((_props_input = props.input) !== null && _props_input !== void 0 ? _props_input : {}, useMergedRefs(triggerRef, activeParentRef, ref), {\n state: baseState,\n freeform,\n defaultProps: {\n type: 'text',\n value: value !== null && value !== void 0 ? value : '',\n 'aria-controls': open ? listbox === null || listbox === void 0 ? void 0 : listbox.id : undefined,\n ...triggerNativeProps\n },\n activeDescendantController\n });\n const rootSlot = slot.always(props.root, {\n defaultProps: {\n 'aria-owns': !inlinePopup && open ? listbox === null || listbox === void 0 ? void 0 : listbox.id : undefined,\n ...rootNativeProps\n },\n elementType: 'div'\n });\n rootSlot.ref = useMergedRefs(rootSlot.ref, comboboxTargetRef);\n const showClearIcon = selectedOptions.length > 0 && clearable && !multiselect;\n const state = {\n components: {\n root: 'div',\n input: 'input',\n expandIcon: 'span',\n listbox: Listbox,\n clearIcon: 'span'\n },\n root: rootSlot,\n input: triggerSlot,\n listbox: open || hasFocus ? listbox : undefined,\n clearIcon: slot.optional(props.clearIcon, {\n defaultProps: {\n 'aria-hidden': 'true',\n children: /*#__PURE__*/ React.createElement(DismissIcon, null)\n },\n elementType: 'span',\n renderByDefault: true\n }),\n expandIcon: slot.optional(props.expandIcon, {\n renderByDefault: true,\n defaultProps: {\n 'aria-disabled': disabled ? 'true' : undefined,\n 'aria-expanded': open,\n children: /*#__PURE__*/ React.createElement(ChevronDownIcon, null),\n role: 'button'\n },\n elementType: 'span'\n }),\n showClearIcon,\n activeDescendantController,\n ...baseState\n };\n const { targetDocument } = useFluent();\n useOnClickOutside({\n element: targetDocument,\n callback: (event)=>setOpen(event, false),\n refs: [\n triggerRef,\n comboboxPopupRef,\n comboboxTargetRef\n ],\n disabled: !open\n });\n /* handle open/close + focus change when clicking expandIcon */ const { onMouseDown: onIconMouseDown } = state.expandIcon || {};\n const onExpandIconMouseDown = useEventCallback(mergeCallbacks(onIconMouseDown, (event)=>{\n var _triggerRef_current;\n event.preventDefault();\n state.setOpen(event, !state.open);\n (_triggerRef_current = triggerRef.current) === null || _triggerRef_current === void 0 ? void 0 : _triggerRef_current.focus();\n }));\n if (state.expandIcon) {\n state.expandIcon.onMouseDown = onExpandIconMouseDown;\n // If there is no explicit aria-label, calculate default accName attribute for expandIcon button,\n // using the following steps:\n // 1. If there is an aria-label, it is \"Open [aria-label]\"\n // 2. If there is an aria-labelledby, it is \"Open [aria-labelledby target]\" (using aria-labelledby + ids)\n // 3. If there is no aria-label/ledby attr, it falls back to \"Open\"\n // We can't fall back to a label/htmlFor name because of https://github.com/w3c/accname/issues/179\n const hasExpandLabel = state.expandIcon['aria-label'] || state.expandIcon['aria-labelledby'];\n const defaultOpenString = 'Open'; // this is english-only since it is the fallback\n if (!hasExpandLabel) {\n if (props['aria-labelledby']) {\n var _state_expandIcon_id;\n const chevronId = (_state_expandIcon_id = state.expandIcon.id) !== null && _state_expandIcon_id !== void 0 ? _state_expandIcon_id : `${comboId}-chevron`;\n const chevronLabelledBy = `${chevronId} ${state.input['aria-labelledby']}`;\n state.expandIcon['aria-label'] = defaultOpenString;\n state.expandIcon.id = chevronId;\n state.expandIcon['aria-labelledby'] = chevronLabelledBy;\n } else if (props['aria-label']) {\n state.expandIcon['aria-label'] = `${defaultOpenString} ${props['aria-label']}`;\n } else {\n state.expandIcon['aria-label'] = defaultOpenString;\n }\n }\n }\n const onClearIconMouseDown = useEventCallback(mergeCallbacks((_state_clearIcon = state.clearIcon) === null || _state_clearIcon === void 0 ? void 0 : _state_clearIcon.onMouseDown, (ev)=>{\n ev.preventDefault();\n }));\n const onClearIconClick = useEventCallback(mergeCallbacks((_state_clearIcon1 = state.clearIcon) === null || _state_clearIcon1 === void 0 ? void 0 : _state_clearIcon1.onClick, (ev)=>{\n clearSelection(ev);\n }));\n if (state.clearIcon) {\n state.clearIcon.onMouseDown = onClearIconMouseDown;\n state.clearIcon.onClick = onClearIconClick;\n }\n // Heads up! We don't support \"clearable\" in multiselect mode, so we should never display a slot\n if (multiselect) {\n state.clearIcon = undefined;\n }\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- \"process.env\" does not change in runtime\n React.useEffect(()=>{\n if (clearable && multiselect) {\n // eslint-disable-next-line no-console\n console.error(`[@fluentui/react-combobox] \"clearable\" prop is not supported in multiselect mode.`);\n }\n }, [\n clearable,\n multiselect\n ]);\n }\n return state;\n};\n"],"names":["useCombobox_unstable","props","ref","_state_clearIcon","_state_clearIcon1","useFieldControlProps_unstable","supportsLabelFor","supportsRequired","supportsSize","listboxRef","activeDescendantListboxRef","activeParentRef","controller","activeDescendantController","useActiveDescendant","matchOption","el","classList","contains","optionClassNames","root","baseState","useComboboxBaseState","editable","clearable","clearSelection","disabled","multiselect","open","selectedOptions","setOpen","value","hasFocus","comboboxPopupRef","comboboxTargetRef","useComboboxPositioning","disableAutoFocus","freeform","inlinePopup","comboId","useId","primary","triggerNativeProps","rootNativeProps","getPartitionedNativeProps","primarySlotTagName","excludedPropNames","triggerRef","React","useRef","listbox","useListboxSlot","useMergedRefs","state","defaultProps","children","_props_input","triggerSlot","useInputTriggerSlot","input","type","id","undefined","rootSlot","slot","always","elementType","showClearIcon","length","components","expandIcon","Listbox","clearIcon","optional","createElement","DismissIcon","renderByDefault","ChevronDownIcon","role","targetDocument","useFluent","useOnClickOutside","element","callback","event","refs","onMouseDown","onIconMouseDown","onExpandIconMouseDown","useEventCallback","mergeCallbacks","_triggerRef_current","preventDefault","current","focus","hasExpandLabel","defaultOpenString","_state_expandIcon_id","chevronId","chevronLabelledBy","onClearIconMouseDown","ev","onClearIconClick","onClick","process","env","NODE_ENV","useEffect","console","error"],"mappings":"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"}
@@ -670,6 +670,7 @@ const useIconStyles = /*#__PURE__*/ (0, _react.__styles)({
670
670
  ]
671
671
  });
672
672
  const useComboboxStyles_unstable = (state)=>{
673
+ 'use no memo';
673
674
  const { appearance, open, size, showClearIcon } = state;
674
675
  const invalid = `${state.input['aria-invalid']}` === 'true';
675
676
  const disabled = state.input.disabled;
@@ -1 +1 @@
1
- {"version":3,"sources":["useComboboxStyles.styles.js"],"sourcesContent":["import { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { __styles, mergeClasses, shorthands } from '@griffel/react';\nimport { iconSizes } from '../../utils/internalTokens';\nexport const comboboxClassNames = {\n root: 'fui-Combobox',\n input: 'fui-Combobox__input',\n expandIcon: 'fui-Combobox__expandIcon',\n clearIcon: 'fui-Combobox__clearIcon',\n listbox: 'fui-Combobox__listbox'\n};\n// Matches internal heights for Select and Input, but there are no theme variables for these\nconst fieldHeights = {\n small: '24px',\n medium: '32px',\n large: '40px'\n};\n/**\n * Styles for Combobox\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n Bt984gj: \"f122n59\",\n Beyfa6y: 0,\n Bbmb7ep: 0,\n Btl43ni: 0,\n B7oj6ja: 0,\n Dimara: \"ft85np5\",\n B7ck84d: \"f1ewtqcl\",\n i8kkvl: \"f14mj54c\",\n mc9l5x: \"fwk3njj\",\n Budl1dq: \"fz17x9o\",\n Brf1p80: \"f1869bpl\",\n Bf4jedk: \"f1exfvgq\",\n qhf8xq: \"f10pi13n\",\n Bbr2w1p: \"f14a1fxs\",\n Bduesf4: \"f3e99gv\",\n Bpq79vn: \"fhljsf7\",\n li1rpt: \"f1gw3sf2\",\n Bsft5z2: \"f13zj6fq\",\n E3zdtr: \"f1mdlcz9\",\n Eqx8gd: [\"f1a7op3\", \"f1cjjd47\"],\n By385i5: \"f1gboi2j\",\n B1piin3: [\"f1cjjd47\", \"f1a7op3\"],\n Dlnsje: \"f145g4dw\",\n d9w3h3: [\"f1kp91vd\", \"f1ibwz09\"],\n B3778ie: [\"f1ibwz09\", \"f1kp91vd\"],\n B1q35kw: 0,\n Bw17bha: 0,\n Bcgy8vk: 0,\n Bjuhk93: \"f1mnjydx\",\n Gjdm7m: \"f13evtba\",\n b1kco5: \"f1yk9hq\",\n Ba2ppi3: \"fhwpy7i\",\n F2fol1: \"f14ee0xe\",\n lck23g: \"f1xhbsuh\",\n df92cz: \"fv8e3ye\",\n I188md: \"ftb5wc6\",\n umuwi5: \"fjw5xc1\",\n Blcqepd: \"f1xdyd5c\",\n nplu4u: \"fatpbeo\",\n Bioka5o: \"fb7uyps\",\n H713fs: \"f1cmft4k\",\n B9ooomg: \"f1x58t8o\",\n Bercvud: \"f1ibeo51\"\n },\n listbox: {\n E5pizo: \"f1hg901r\",\n Beyfa6y: 0,\n Bbmb7ep: 0,\n Btl43ni: 0,\n B7oj6ja: 0,\n Dimara: \"ft85np5\",\n Bxyxcbc: \"fmmk62d\",\n B7ck84d: \"f1ewtqcl\"\n },\n listboxCollapsed: {\n mc9l5x: \"fjseox\"\n },\n inlineListbox: {\n Bj3rh1h: \"f19g0ac\"\n },\n small: {\n Bqenvij: \"frvgh55\",\n z189sj: [\"fdw0yi8\", \"fk8j09s\"]\n },\n medium: {\n Bqenvij: \"f1d2rq10\",\n z189sj: [\"f11gcy0p\", \"f1ng84yb\"]\n },\n large: {\n i8kkvl: \"f1rjii52\",\n Bqenvij: \"fbhnoac\",\n z189sj: [\"fw5db7e\", \"f1uw59to\"]\n },\n outline: {\n De3pzq: \"fxugw4r\",\n Bgfg5da: 0,\n B9xav0g: \"f1c1zstj\",\n oivjwe: 0,\n Bn0qgzm: 0,\n B4g9neb: 0,\n zhjwy3: 0,\n wvpqe5: 0,\n ibv6hh: 0,\n u1mtju: 0,\n h3c5rm: 0,\n vrafjx: 0,\n Bekrc4i: 0,\n i8vvqc: 0,\n g2u3we: 0,\n icvyot: 0,\n B4j52fo: 0,\n irswps: \"fhz96rm\"\n },\n outlineInteractive: {\n Bgoe8wy: \"fvcxoqz\",\n Bwzppfd: [\"f1ub3y4t\", \"f1m52nbi\"],\n oetu4i: \"flmw63s\",\n gg5e9n: [\"f1m52nbi\", \"f1ub3y4t\"],\n B6oc9vd: \"fvs00aa\",\n ak43y8: [\"f1assf6x\", \"f4ruux4\"],\n wmxk5l: \"fqhmt4z\",\n B50zh58: [\"f4ruux4\", \"f1assf6x\"]\n },\n underline: {\n De3pzq: \"f1c21dwh\",\n B9xav0g: 0,\n oivjwe: 0,\n Bn0qgzm: 0,\n Bgfg5da: \"f9ez7ne\",\n Beyfa6y: 0,\n Bbmb7ep: 0,\n Btl43ni: 0,\n B7oj6ja: 0,\n Dimara: \"fokr779\"\n },\n \"filled-lighter\": {\n De3pzq: \"fxugw4r\",\n Bgfg5da: 0,\n B9xav0g: 0,\n oivjwe: 0,\n Bn0qgzm: 0,\n B4g9neb: 0,\n zhjwy3: 0,\n wvpqe5: 0,\n ibv6hh: 0,\n u1mtju: 0,\n h3c5rm: 0,\n vrafjx: 0,\n Bekrc4i: 0,\n i8vvqc: 0,\n g2u3we: 0,\n icvyot: 0,\n B4j52fo: 0,\n irswps: \"f88035w\"\n },\n \"filled-darker\": {\n De3pzq: \"f16xq7d1\",\n Bgfg5da: 0,\n B9xav0g: 0,\n oivjwe: 0,\n Bn0qgzm: 0,\n B4g9neb: 0,\n zhjwy3: 0,\n wvpqe5: 0,\n ibv6hh: 0,\n u1mtju: 0,\n h3c5rm: 0,\n vrafjx: 0,\n Bekrc4i: 0,\n i8vvqc: 0,\n g2u3we: 0,\n icvyot: 0,\n B4j52fo: 0,\n irswps: \"f88035w\"\n },\n invalid: {\n tvckwq: \"fs4k3qj\",\n gk2u95: [\"fcee079\", \"fmyw78r\"],\n hhx65j: \"f1fgmyf4\",\n Bxowmz0: [\"fmyw78r\", \"fcee079\"]\n },\n invalidUnderline: {\n hhx65j: \"f1fgmyf4\"\n },\n disabled: {\n Bceei9c: \"fdrzuqr\",\n De3pzq: \"f1c21dwh\",\n g2u3we: \"f1jj8ep1\",\n h3c5rm: [\"f15xbau\", \"fy0fskl\"],\n B9xav0g: \"f4ikngz\",\n zhjwy3: [\"fy0fskl\", \"f15xbau\"],\n Bjwas2f: \"fg455y9\",\n Bn1d65q: [\"f1rvyvqg\", \"f14g86mu\"],\n Bxeuatn: \"f1cwzwz\",\n n51gp8: [\"f14g86mu\", \"f1rvyvqg\"]\n }\n}, {\n d: [\".f122n59{align-items:center;}\", [\".ft85np5{border-radius:var(--borderRadiusMedium);}\", {\n p: -1\n }], \".f1ewtqcl{box-sizing:border-box;}\", \".f14mj54c{column-gap:var(--spacingHorizontalXXS);}\", \".fwk3njj{display:inline-grid;}\", \".fz17x9o{grid-template-columns:1fr auto;}\", \".f1869bpl{justify-content:space-between;}\", \".f1exfvgq{min-width:250px;}\", \".f10pi13n{position:relative;}\", \".f1gw3sf2::after{box-sizing:border-box;}\", \".f13zj6fq::after{content:\\\"\\\";}\", \".f1mdlcz9::after{position:absolute;}\", \".f1a7op3::after{left:-1px;}\", \".f1cjjd47::after{right:-1px;}\", \".f1gboi2j::after{bottom:-1px;}\", \".f145g4dw::after{height:max(2px, var(--borderRadiusMedium));}\", \".f1kp91vd::after{border-bottom-left-radius:var(--borderRadiusMedium);}\", \".f1ibwz09::after{border-bottom-right-radius:var(--borderRadiusMedium);}\", [\".f1mnjydx::after{border-bottom:var(--strokeWidthThick) solid var(--colorCompoundBrandStroke);}\", {\n p: -1\n }], \".f13evtba::after{clip-path:inset(calc(100% - 2px) 0 0 0);}\", \".f1yk9hq::after{transform:scaleX(0);}\", \".fhwpy7i::after{transition-property:transform;}\", \".f14ee0xe::after{transition-duration:var(--durationUltraFast);}\", \".f1xhbsuh::after{transition-delay:var(--curveAccelerateMid);}\", \".f1hg901r{box-shadow:var(--shadow16);}\", [\".ft85np5{border-radius:var(--borderRadiusMedium);}\", {\n p: -1\n }], \".fmmk62d{max-height:80vh;}\", \".fjseox{display:none;}\", \".f19g0ac{z-index:1;}\", \".frvgh55{height:24px;}\", \".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}\", \".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}\", \".f1d2rq10{height:32px;}\", \".f11gcy0p{padding-right:var(--spacingHorizontalMNudge);}\", \".f1ng84yb{padding-left:var(--spacingHorizontalMNudge);}\", \".f1rjii52{column-gap:var(--spacingHorizontalSNudge);}\", \".fbhnoac{height:40px;}\", \".fw5db7e{padding-right:var(--spacingHorizontalM);}\", \".f1uw59to{padding-left:var(--spacingHorizontalM);}\", \".fxugw4r{background-color:var(--colorNeutralBackground1);}\", [\".fhz96rm{border:var(--strokeWidthThin) solid var(--colorNeutralStroke1);}\", {\n p: -2\n }], \".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}\", \".f1c21dwh{background-color:var(--colorTransparentBackground);}\", [\".f9ez7ne{border-bottom:var(--strokeWidthThin) solid var(--colorNeutralStrokeAccessible);}\", {\n p: -1\n }], [\".fokr779{border-radius:0;}\", {\n p: -1\n }], [\".f88035w{border:var(--strokeWidthThin) solid var(--colorTransparentStroke);}\", {\n p: -2\n }], \".f16xq7d1{background-color:var(--colorNeutralBackground3);}\", [\".f88035w{border:var(--strokeWidthThin) solid var(--colorTransparentStroke);}\", {\n p: -2\n }], \".fs4k3qj:not(:focus-within),.fs4k3qj:hover:not(:focus-within){border-top-color:var(--colorPaletteRedBorder2);}\", \".fcee079:not(:focus-within),.fcee079:hover:not(:focus-within){border-right-color:var(--colorPaletteRedBorder2);}\", \".fmyw78r:not(:focus-within),.fmyw78r:hover:not(:focus-within){border-left-color:var(--colorPaletteRedBorder2);}\", \".f1fgmyf4:not(:focus-within),.f1fgmyf4:hover:not(:focus-within){border-bottom-color:var(--colorPaletteRedBorder2);}\", \".fdrzuqr{cursor:not-allowed;}\", \".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}\", \".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}\", \".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}\", \".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}\"],\n w: [\".f14a1fxs:focus-within{outline-width:2px;}\", \".f3e99gv:focus-within{outline-style:solid;}\", \".fhljsf7:focus-within{outline-color:transparent;}\", \".fjw5xc1:focus-within::after{transform:scaleX(1);}\", \".f1xdyd5c:focus-within::after{transition-property:transform;}\", \".fatpbeo:focus-within::after{transition-duration:var(--durationNormal);}\", \".fb7uyps:focus-within::after{transition-delay:var(--curveDecelerateMid);}\", \".f1ibeo51:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}\"],\n m: [[\"@media screen and (prefers-reduced-motion: reduce){.fv8e3ye::after{transition-duration:0.01ms;}}\", {\n m: \"screen and (prefers-reduced-motion: reduce)\"\n }], [\"@media screen and (prefers-reduced-motion: reduce){.ftb5wc6::after{transition-delay:0.01ms;}}\", {\n m: \"screen and (prefers-reduced-motion: reduce)\"\n }], [\"@media screen and (prefers-reduced-motion: reduce){.f1cmft4k:focus-within::after{transition-duration:0.01ms;}}\", {\n m: \"screen and (prefers-reduced-motion: reduce)\"\n }], [\"@media screen and (prefers-reduced-motion: reduce){.f1x58t8o:focus-within::after{transition-delay:0.01ms;}}\", {\n m: \"screen and (prefers-reduced-motion: reduce)\"\n }], [\"@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}\", {\n m: \"(forced-colors: active)\"\n }], [\"@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}\", {\n m: \"(forced-colors: active)\"\n }], [\"@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}\", {\n m: \"(forced-colors: active)\"\n }]],\n h: [\".fvcxoqz:hover{border-top-color:var(--colorNeutralStroke1Hover);}\", \".f1ub3y4t:hover{border-right-color:var(--colorNeutralStroke1Hover);}\", \".f1m52nbi:hover{border-left-color:var(--colorNeutralStroke1Hover);}\", \".flmw63s:hover{border-bottom-color:var(--colorNeutralStrokeAccessible);}\"],\n a: [\".fvs00aa:active{border-top-color:var(--colorNeutralStroke1Pressed);}\", \".f1assf6x:active{border-right-color:var(--colorNeutralStroke1Pressed);}\", \".f4ruux4:active{border-left-color:var(--colorNeutralStroke1Pressed);}\", \".fqhmt4z:active{border-bottom-color:var(--colorNeutralStrokeAccessible);}\"]\n});\nconst useInputStyles = /*#__PURE__*/__styles({\n input: {\n qb2dma: \"f1ub7u0d\",\n De3pzq: \"f1c21dwh\",\n Bgfg5da: 0,\n B9xav0g: 0,\n oivjwe: 0,\n Bn0qgzm: 0,\n B4g9neb: 0,\n zhjwy3: 0,\n wvpqe5: 0,\n ibv6hh: 0,\n u1mtju: 0,\n h3c5rm: 0,\n vrafjx: 0,\n Bekrc4i: 0,\n i8vvqc: 0,\n g2u3we: 0,\n icvyot: 0,\n B4j52fo: 0,\n irswps: \"f3bhgqh\",\n sj55zd: \"f19n0e5\",\n Bahqtrf: \"fk6fouc\",\n Brovlpu: \"ftqa4ok\",\n yvdlaj: \"fwyc1cq\",\n B3o7kgh: \"f13ta7ih\"\n },\n small: {\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fy9rknc\",\n Bhrd7zp: \"figsok6\",\n Bg96gwp: \"fwrc4pm\",\n Byoj8tv: 0,\n uwmqm3: 0,\n z189sj: 0,\n z8tnut: 0,\n B0ocmuz: [\"fxe2rs\", \"f1gflqzi\"]\n },\n medium: {\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fkhj508\",\n Bhrd7zp: \"figsok6\",\n Bg96gwp: \"f1i3iumi\",\n Byoj8tv: 0,\n uwmqm3: 0,\n z189sj: 0,\n z8tnut: 0,\n B0ocmuz: [\"fzy81xo\", \"f58b53b\"]\n },\n large: {\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fod5ikn\",\n Bhrd7zp: \"figsok6\",\n Bg96gwp: \"faaz57k\",\n Byoj8tv: 0,\n uwmqm3: 0,\n z189sj: 0,\n z8tnut: 0,\n B0ocmuz: [\"f1kdav7a\", \"footqm6\"]\n },\n disabled: {\n sj55zd: \"f1s2aq7o\",\n De3pzq: \"f1c21dwh\",\n Bceei9c: \"fdrzuqr\",\n yvdlaj: \"fahhnxm\"\n }\n}, {\n d: [\".f1ub7u0d{align-self:stretch;}\", \".f1c21dwh{background-color:var(--colorTransparentBackground);}\", [\".f3bhgqh{border:none;}\", {\n p: -2\n }], \".f19n0e5{color:var(--colorNeutralForeground1);}\", \".fk6fouc{font-family:var(--fontFamilyBase);}\", \".fwyc1cq::-webkit-input-placeholder{color:var(--colorNeutralForeground4);}\", \".fwyc1cq::-moz-placeholder{color:var(--colorNeutralForeground4);}\", \".f13ta7ih::-webkit-input-placeholder{opacity:1;}\", \".f13ta7ih::-moz-placeholder{opacity:1;}\", \".fy9rknc{font-size:var(--fontSizeBase200);}\", \".figsok6{font-weight:var(--fontWeightRegular);}\", \".fwrc4pm{line-height:var(--lineHeightBase200);}\", [\".fxe2rs{padding:0 0 0 calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}\", {\n p: -1\n }], [\".f1gflqzi{padding:0 calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS)) 0 0;}\", {\n p: -1\n }], \".fkhj508{font-size:var(--fontSizeBase300);}\", \".f1i3iumi{line-height:var(--lineHeightBase300);}\", [\".fzy81xo{padding:0 0 0 calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS));}\", {\n p: -1\n }], [\".f58b53b{padding:0 calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS)) 0 0;}\", {\n p: -1\n }], \".fod5ikn{font-size:var(--fontSizeBase400);}\", \".faaz57k{line-height:var(--lineHeightBase400);}\", [\".f1kdav7a{padding:0 0 0 calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge));}\", {\n p: -1\n }], [\".footqm6{padding:0 calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge)) 0 0;}\", {\n p: -1\n }], \".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}\", \".fdrzuqr{cursor:not-allowed;}\", \".fahhnxm::-webkit-input-placeholder{color:var(--colorNeutralForegroundDisabled);}\", \".fahhnxm::-moz-placeholder{color:var(--colorNeutralForegroundDisabled);}\"],\n f: [\".ftqa4ok:focus{outline-style:none;}\"]\n});\nconst useIconStyles = /*#__PURE__*/__styles({\n icon: {\n B7ck84d: \"f1ewtqcl\",\n sj55zd: \"fxkbij4\",\n Bceei9c: \"f1k6fduh\",\n mc9l5x: \"ftgm304\",\n Be2twd7: \"f1pp30po\",\n Bo70h7d: \"fvc9v3g\"\n },\n hidden: {\n mc9l5x: \"fjseox\"\n },\n visuallyHidden: {\n Bh84pgu: \"f1ekcaio\",\n Bqenvij: \"f1mpe4l3\",\n jrapky: 0,\n Frg6f3: 0,\n t21cq0: 0,\n B6of3ja: 0,\n B74szlk: \"f1jlpb2r\",\n B68tc82: 0,\n Bmxbyg5: 0,\n Bpg54ce: \"f1a3p1vp\",\n Byoj8tv: 0,\n uwmqm3: 0,\n z189sj: 0,\n z8tnut: 0,\n B0ocmuz: \"f1c5fvqg\",\n a9b677: \"frkrog8\",\n qhf8xq: \"f1euv43f\"\n },\n small: {\n Be2twd7: \"f4ybsrx\",\n Frg6f3: [\"f1h9en5y\", \"f1xk557c\"]\n },\n medium: {\n Be2twd7: \"fe5j1ua\",\n Frg6f3: [\"f1h9en5y\", \"f1xk557c\"]\n },\n large: {\n Be2twd7: \"f1rt2boy\",\n Frg6f3: [\"f1t5qyk5\", \"f1ikr372\"]\n },\n disabled: {\n sj55zd: \"f1s2aq7o\",\n Bceei9c: \"fdrzuqr\"\n }\n}, {\n d: [\".f1ewtqcl{box-sizing:border-box;}\", \".fxkbij4{color:var(--colorNeutralStrokeAccessible);}\", \".f1k6fduh{cursor:pointer;}\", \".ftgm304{display:block;}\", \".f1pp30po{font-size:var(--fontSizeBase500);}\", \".fvc9v3g svg{display:block;}\", \".fjseox{display:none;}\", \".f1ekcaio{clip:rect(0px, 0px, 0px, 0px);}\", \".f1mpe4l3{height:1px;}\", [\".f1jlpb2r{margin:-1px;}\", {\n p: -1\n }], [\".f1a3p1vp{overflow:hidden;}\", {\n p: -1\n }], [\".f1c5fvqg{padding:0px;}\", {\n p: -1\n }], \".frkrog8{width:1px;}\", \".f1euv43f{position:absolute;}\", \".f4ybsrx{font-size:16px;}\", \".f1h9en5y{margin-left:var(--spacingHorizontalXXS);}\", \".f1xk557c{margin-right:var(--spacingHorizontalXXS);}\", \".fe5j1ua{font-size:20px;}\", \".f1rt2boy{font-size:24px;}\", \".f1t5qyk5{margin-left:var(--spacingHorizontalSNudge);}\", \".f1ikr372{margin-right:var(--spacingHorizontalSNudge);}\", \".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}\", \".fdrzuqr{cursor:not-allowed;}\"]\n});\n/**\n * Apply styling to the Combobox slots based on the state\n */\nexport const useComboboxStyles_unstable = state => {\n const {\n appearance,\n open,\n size,\n showClearIcon\n } = state;\n const invalid = `${state.input['aria-invalid']}` === 'true';\n const disabled = state.input.disabled;\n const styles = useStyles();\n const iconStyles = useIconStyles();\n const inputStyles = useInputStyles();\n state.root.className = mergeClasses(comboboxClassNames.root, styles.root, styles[appearance], styles[size], !disabled && appearance === 'outline' && styles.outlineInteractive, invalid && appearance !== 'underline' && styles.invalid, invalid && appearance === 'underline' && styles.invalidUnderline, disabled && styles.disabled, state.root.className);\n state.input.className = mergeClasses(comboboxClassNames.input, inputStyles.input, inputStyles[size], disabled && inputStyles.disabled, state.input.className);\n if (state.listbox) {\n state.listbox.className = mergeClasses(comboboxClassNames.listbox, styles.listbox, state.inlinePopup && styles.inlineListbox, !open && styles.listboxCollapsed, state.listbox.className);\n }\n if (state.expandIcon) {\n state.expandIcon.className = mergeClasses(comboboxClassNames.expandIcon, iconStyles.icon, iconStyles[size], disabled && iconStyles.disabled, showClearIcon && iconStyles.visuallyHidden, state.expandIcon.className);\n }\n if (state.clearIcon) {\n state.clearIcon.className = mergeClasses(comboboxClassNames.clearIcon, iconStyles.icon, iconStyles[size], disabled && iconStyles.disabled, !showClearIcon && iconStyles.hidden, state.clearIcon.className);\n }\n return state;\n};\n//# sourceMappingURL=useComboboxStyles.styles.js.map"],"names":["comboboxClassNames","useComboboxStyles_unstable","root","input","expandIcon","clearIcon","listbox","fieldHeights","small","medium","large","useStyles","__styles","Bt984gj","Beyfa6y","Bbmb7ep","Btl43ni","B7oj6ja","Dimara","B7ck84d","i8kkvl","mc9l5x","Budl1dq","Brf1p80","Bf4jedk","qhf8xq","Bbr2w1p","Bduesf4","Bpq79vn","li1rpt","Bsft5z2","E3zdtr","Eqx8gd","By385i5","B1piin3","Dlnsje","d9w3h3","B3778ie","B1q35kw","Bw17bha","Bcgy8vk","Bjuhk93","Gjdm7m","b1kco5","Ba2ppi3","F2fol1","lck23g","df92cz","I188md","umuwi5","Blcqepd","nplu4u","Bioka5o","H713fs","B9ooomg","Bercvud","E5pizo","Bxyxcbc","listboxCollapsed","inlineListbox","Bj3rh1h","Bqenvij","z189sj","outline","De3pzq","Bgfg5da","B9xav0g","oivjwe","Bn0qgzm","B4g9neb","zhjwy3","wvpqe5","ibv6hh","u1mtju","h3c5rm","vrafjx","Bekrc4i","i8vvqc","g2u3we","icvyot","B4j52fo","irswps","outlineInteractive","Bgoe8wy","Bwzppfd","oetu4i","gg5e9n","B6oc9vd","ak43y8","wmxk5l","B50zh58","underline","invalid","tvckwq","gk2u95","hhx65j","Bxowmz0","invalidUnderline","disabled","Bceei9c","Bjwas2f","Bn1d65q","Bxeuatn","n51gp8","d","p","w","m","h","a","useInputStyles","qb2dma","sj55zd","Bahqtrf","Brovlpu","yvdlaj","B3o7kgh","Be2twd7","Bhrd7zp","Bg96gwp","Byoj8tv","uwmqm3","z8tnut","B0ocmuz","f","useIconStyles","icon","Bo70h7d","hidden","visuallyHidden","Bh84pgu","jrapky","Frg6f3","t21cq0","B6of3ja","B74szlk","B68tc82","Bmxbyg5","Bpg54ce","a9b677","state","appearance","open","size","showClearIcon","styles","iconStyles","inputStyles","className","mergeClasses","inlinePopup"],"mappings":"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"}
1
+ {"version":3,"sources":["useComboboxStyles.styles.js"],"sourcesContent":["import { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { __styles, mergeClasses, shorthands } from '@griffel/react';\nimport { iconSizes } from '../../utils/internalTokens';\nexport const comboboxClassNames = {\n root: 'fui-Combobox',\n input: 'fui-Combobox__input',\n expandIcon: 'fui-Combobox__expandIcon',\n clearIcon: 'fui-Combobox__clearIcon',\n listbox: 'fui-Combobox__listbox'\n};\n// Matches internal heights for Select and Input, but there are no theme variables for these\nconst fieldHeights = {\n small: '24px',\n medium: '32px',\n large: '40px'\n};\n/**\n * Styles for Combobox\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n Bt984gj: \"f122n59\",\n Beyfa6y: 0,\n Bbmb7ep: 0,\n Btl43ni: 0,\n B7oj6ja: 0,\n Dimara: \"ft85np5\",\n B7ck84d: \"f1ewtqcl\",\n i8kkvl: \"f14mj54c\",\n mc9l5x: \"fwk3njj\",\n Budl1dq: \"fz17x9o\",\n Brf1p80: \"f1869bpl\",\n Bf4jedk: \"f1exfvgq\",\n qhf8xq: \"f10pi13n\",\n Bbr2w1p: \"f14a1fxs\",\n Bduesf4: \"f3e99gv\",\n Bpq79vn: \"fhljsf7\",\n li1rpt: \"f1gw3sf2\",\n Bsft5z2: \"f13zj6fq\",\n E3zdtr: \"f1mdlcz9\",\n Eqx8gd: [\"f1a7op3\", \"f1cjjd47\"],\n By385i5: \"f1gboi2j\",\n B1piin3: [\"f1cjjd47\", \"f1a7op3\"],\n Dlnsje: \"f145g4dw\",\n d9w3h3: [\"f1kp91vd\", \"f1ibwz09\"],\n B3778ie: [\"f1ibwz09\", \"f1kp91vd\"],\n B1q35kw: 0,\n Bw17bha: 0,\n Bcgy8vk: 0,\n Bjuhk93: \"f1mnjydx\",\n Gjdm7m: \"f13evtba\",\n b1kco5: \"f1yk9hq\",\n Ba2ppi3: \"fhwpy7i\",\n F2fol1: \"f14ee0xe\",\n lck23g: \"f1xhbsuh\",\n df92cz: \"fv8e3ye\",\n I188md: \"ftb5wc6\",\n umuwi5: \"fjw5xc1\",\n Blcqepd: \"f1xdyd5c\",\n nplu4u: \"fatpbeo\",\n Bioka5o: \"fb7uyps\",\n H713fs: \"f1cmft4k\",\n B9ooomg: \"f1x58t8o\",\n Bercvud: \"f1ibeo51\"\n },\n listbox: {\n E5pizo: \"f1hg901r\",\n Beyfa6y: 0,\n Bbmb7ep: 0,\n Btl43ni: 0,\n B7oj6ja: 0,\n Dimara: \"ft85np5\",\n Bxyxcbc: \"fmmk62d\",\n B7ck84d: \"f1ewtqcl\"\n },\n listboxCollapsed: {\n mc9l5x: \"fjseox\"\n },\n inlineListbox: {\n Bj3rh1h: \"f19g0ac\"\n },\n small: {\n Bqenvij: \"frvgh55\",\n z189sj: [\"fdw0yi8\", \"fk8j09s\"]\n },\n medium: {\n Bqenvij: \"f1d2rq10\",\n z189sj: [\"f11gcy0p\", \"f1ng84yb\"]\n },\n large: {\n i8kkvl: \"f1rjii52\",\n Bqenvij: \"fbhnoac\",\n z189sj: [\"fw5db7e\", \"f1uw59to\"]\n },\n outline: {\n De3pzq: \"fxugw4r\",\n Bgfg5da: 0,\n B9xav0g: \"f1c1zstj\",\n oivjwe: 0,\n Bn0qgzm: 0,\n B4g9neb: 0,\n zhjwy3: 0,\n wvpqe5: 0,\n ibv6hh: 0,\n u1mtju: 0,\n h3c5rm: 0,\n vrafjx: 0,\n Bekrc4i: 0,\n i8vvqc: 0,\n g2u3we: 0,\n icvyot: 0,\n B4j52fo: 0,\n irswps: \"fhz96rm\"\n },\n outlineInteractive: {\n Bgoe8wy: \"fvcxoqz\",\n Bwzppfd: [\"f1ub3y4t\", \"f1m52nbi\"],\n oetu4i: \"flmw63s\",\n gg5e9n: [\"f1m52nbi\", \"f1ub3y4t\"],\n B6oc9vd: \"fvs00aa\",\n ak43y8: [\"f1assf6x\", \"f4ruux4\"],\n wmxk5l: \"fqhmt4z\",\n B50zh58: [\"f4ruux4\", \"f1assf6x\"]\n },\n underline: {\n De3pzq: \"f1c21dwh\",\n B9xav0g: 0,\n oivjwe: 0,\n Bn0qgzm: 0,\n Bgfg5da: \"f9ez7ne\",\n Beyfa6y: 0,\n Bbmb7ep: 0,\n Btl43ni: 0,\n B7oj6ja: 0,\n Dimara: \"fokr779\"\n },\n \"filled-lighter\": {\n De3pzq: \"fxugw4r\",\n Bgfg5da: 0,\n B9xav0g: 0,\n oivjwe: 0,\n Bn0qgzm: 0,\n B4g9neb: 0,\n zhjwy3: 0,\n wvpqe5: 0,\n ibv6hh: 0,\n u1mtju: 0,\n h3c5rm: 0,\n vrafjx: 0,\n Bekrc4i: 0,\n i8vvqc: 0,\n g2u3we: 0,\n icvyot: 0,\n B4j52fo: 0,\n irswps: \"f88035w\"\n },\n \"filled-darker\": {\n De3pzq: \"f16xq7d1\",\n Bgfg5da: 0,\n B9xav0g: 0,\n oivjwe: 0,\n Bn0qgzm: 0,\n B4g9neb: 0,\n zhjwy3: 0,\n wvpqe5: 0,\n ibv6hh: 0,\n u1mtju: 0,\n h3c5rm: 0,\n vrafjx: 0,\n Bekrc4i: 0,\n i8vvqc: 0,\n g2u3we: 0,\n icvyot: 0,\n B4j52fo: 0,\n irswps: \"f88035w\"\n },\n invalid: {\n tvckwq: \"fs4k3qj\",\n gk2u95: [\"fcee079\", \"fmyw78r\"],\n hhx65j: \"f1fgmyf4\",\n Bxowmz0: [\"fmyw78r\", \"fcee079\"]\n },\n invalidUnderline: {\n hhx65j: \"f1fgmyf4\"\n },\n disabled: {\n Bceei9c: \"fdrzuqr\",\n De3pzq: \"f1c21dwh\",\n g2u3we: \"f1jj8ep1\",\n h3c5rm: [\"f15xbau\", \"fy0fskl\"],\n B9xav0g: \"f4ikngz\",\n zhjwy3: [\"fy0fskl\", \"f15xbau\"],\n Bjwas2f: \"fg455y9\",\n Bn1d65q: [\"f1rvyvqg\", \"f14g86mu\"],\n Bxeuatn: \"f1cwzwz\",\n n51gp8: [\"f14g86mu\", \"f1rvyvqg\"]\n }\n}, {\n d: [\".f122n59{align-items:center;}\", [\".ft85np5{border-radius:var(--borderRadiusMedium);}\", {\n p: -1\n }], \".f1ewtqcl{box-sizing:border-box;}\", \".f14mj54c{column-gap:var(--spacingHorizontalXXS);}\", \".fwk3njj{display:inline-grid;}\", \".fz17x9o{grid-template-columns:1fr auto;}\", \".f1869bpl{justify-content:space-between;}\", \".f1exfvgq{min-width:250px;}\", \".f10pi13n{position:relative;}\", \".f1gw3sf2::after{box-sizing:border-box;}\", \".f13zj6fq::after{content:\\\"\\\";}\", \".f1mdlcz9::after{position:absolute;}\", \".f1a7op3::after{left:-1px;}\", \".f1cjjd47::after{right:-1px;}\", \".f1gboi2j::after{bottom:-1px;}\", \".f145g4dw::after{height:max(2px, var(--borderRadiusMedium));}\", \".f1kp91vd::after{border-bottom-left-radius:var(--borderRadiusMedium);}\", \".f1ibwz09::after{border-bottom-right-radius:var(--borderRadiusMedium);}\", [\".f1mnjydx::after{border-bottom:var(--strokeWidthThick) solid var(--colorCompoundBrandStroke);}\", {\n p: -1\n }], \".f13evtba::after{clip-path:inset(calc(100% - 2px) 0 0 0);}\", \".f1yk9hq::after{transform:scaleX(0);}\", \".fhwpy7i::after{transition-property:transform;}\", \".f14ee0xe::after{transition-duration:var(--durationUltraFast);}\", \".f1xhbsuh::after{transition-delay:var(--curveAccelerateMid);}\", \".f1hg901r{box-shadow:var(--shadow16);}\", [\".ft85np5{border-radius:var(--borderRadiusMedium);}\", {\n p: -1\n }], \".fmmk62d{max-height:80vh;}\", \".fjseox{display:none;}\", \".f19g0ac{z-index:1;}\", \".frvgh55{height:24px;}\", \".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}\", \".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}\", \".f1d2rq10{height:32px;}\", \".f11gcy0p{padding-right:var(--spacingHorizontalMNudge);}\", \".f1ng84yb{padding-left:var(--spacingHorizontalMNudge);}\", \".f1rjii52{column-gap:var(--spacingHorizontalSNudge);}\", \".fbhnoac{height:40px;}\", \".fw5db7e{padding-right:var(--spacingHorizontalM);}\", \".f1uw59to{padding-left:var(--spacingHorizontalM);}\", \".fxugw4r{background-color:var(--colorNeutralBackground1);}\", [\".fhz96rm{border:var(--strokeWidthThin) solid var(--colorNeutralStroke1);}\", {\n p: -2\n }], \".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}\", \".f1c21dwh{background-color:var(--colorTransparentBackground);}\", [\".f9ez7ne{border-bottom:var(--strokeWidthThin) solid var(--colorNeutralStrokeAccessible);}\", {\n p: -1\n }], [\".fokr779{border-radius:0;}\", {\n p: -1\n }], [\".f88035w{border:var(--strokeWidthThin) solid var(--colorTransparentStroke);}\", {\n p: -2\n }], \".f16xq7d1{background-color:var(--colorNeutralBackground3);}\", [\".f88035w{border:var(--strokeWidthThin) solid var(--colorTransparentStroke);}\", {\n p: -2\n }], \".fs4k3qj:not(:focus-within),.fs4k3qj:hover:not(:focus-within){border-top-color:var(--colorPaletteRedBorder2);}\", \".fcee079:not(:focus-within),.fcee079:hover:not(:focus-within){border-right-color:var(--colorPaletteRedBorder2);}\", \".fmyw78r:not(:focus-within),.fmyw78r:hover:not(:focus-within){border-left-color:var(--colorPaletteRedBorder2);}\", \".f1fgmyf4:not(:focus-within),.f1fgmyf4:hover:not(:focus-within){border-bottom-color:var(--colorPaletteRedBorder2);}\", \".fdrzuqr{cursor:not-allowed;}\", \".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}\", \".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}\", \".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}\", \".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}\"],\n w: [\".f14a1fxs:focus-within{outline-width:2px;}\", \".f3e99gv:focus-within{outline-style:solid;}\", \".fhljsf7:focus-within{outline-color:transparent;}\", \".fjw5xc1:focus-within::after{transform:scaleX(1);}\", \".f1xdyd5c:focus-within::after{transition-property:transform;}\", \".fatpbeo:focus-within::after{transition-duration:var(--durationNormal);}\", \".fb7uyps:focus-within::after{transition-delay:var(--curveDecelerateMid);}\", \".f1ibeo51:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}\"],\n m: [[\"@media screen and (prefers-reduced-motion: reduce){.fv8e3ye::after{transition-duration:0.01ms;}}\", {\n m: \"screen and (prefers-reduced-motion: reduce)\"\n }], [\"@media screen and (prefers-reduced-motion: reduce){.ftb5wc6::after{transition-delay:0.01ms;}}\", {\n m: \"screen and (prefers-reduced-motion: reduce)\"\n }], [\"@media screen and (prefers-reduced-motion: reduce){.f1cmft4k:focus-within::after{transition-duration:0.01ms;}}\", {\n m: \"screen and (prefers-reduced-motion: reduce)\"\n }], [\"@media screen and (prefers-reduced-motion: reduce){.f1x58t8o:focus-within::after{transition-delay:0.01ms;}}\", {\n m: \"screen and (prefers-reduced-motion: reduce)\"\n }], [\"@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}\", {\n m: \"(forced-colors: active)\"\n }], [\"@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}\", {\n m: \"(forced-colors: active)\"\n }], [\"@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}\", {\n m: \"(forced-colors: active)\"\n }]],\n h: [\".fvcxoqz:hover{border-top-color:var(--colorNeutralStroke1Hover);}\", \".f1ub3y4t:hover{border-right-color:var(--colorNeutralStroke1Hover);}\", \".f1m52nbi:hover{border-left-color:var(--colorNeutralStroke1Hover);}\", \".flmw63s:hover{border-bottom-color:var(--colorNeutralStrokeAccessible);}\"],\n a: [\".fvs00aa:active{border-top-color:var(--colorNeutralStroke1Pressed);}\", \".f1assf6x:active{border-right-color:var(--colorNeutralStroke1Pressed);}\", \".f4ruux4:active{border-left-color:var(--colorNeutralStroke1Pressed);}\", \".fqhmt4z:active{border-bottom-color:var(--colorNeutralStrokeAccessible);}\"]\n});\nconst useInputStyles = /*#__PURE__*/__styles({\n input: {\n qb2dma: \"f1ub7u0d\",\n De3pzq: \"f1c21dwh\",\n Bgfg5da: 0,\n B9xav0g: 0,\n oivjwe: 0,\n Bn0qgzm: 0,\n B4g9neb: 0,\n zhjwy3: 0,\n wvpqe5: 0,\n ibv6hh: 0,\n u1mtju: 0,\n h3c5rm: 0,\n vrafjx: 0,\n Bekrc4i: 0,\n i8vvqc: 0,\n g2u3we: 0,\n icvyot: 0,\n B4j52fo: 0,\n irswps: \"f3bhgqh\",\n sj55zd: \"f19n0e5\",\n Bahqtrf: \"fk6fouc\",\n Brovlpu: \"ftqa4ok\",\n yvdlaj: \"fwyc1cq\",\n B3o7kgh: \"f13ta7ih\"\n },\n small: {\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fy9rknc\",\n Bhrd7zp: \"figsok6\",\n Bg96gwp: \"fwrc4pm\",\n Byoj8tv: 0,\n uwmqm3: 0,\n z189sj: 0,\n z8tnut: 0,\n B0ocmuz: [\"fxe2rs\", \"f1gflqzi\"]\n },\n medium: {\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fkhj508\",\n Bhrd7zp: \"figsok6\",\n Bg96gwp: \"f1i3iumi\",\n Byoj8tv: 0,\n uwmqm3: 0,\n z189sj: 0,\n z8tnut: 0,\n B0ocmuz: [\"fzy81xo\", \"f58b53b\"]\n },\n large: {\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fod5ikn\",\n Bhrd7zp: \"figsok6\",\n Bg96gwp: \"faaz57k\",\n Byoj8tv: 0,\n uwmqm3: 0,\n z189sj: 0,\n z8tnut: 0,\n B0ocmuz: [\"f1kdav7a\", \"footqm6\"]\n },\n disabled: {\n sj55zd: \"f1s2aq7o\",\n De3pzq: \"f1c21dwh\",\n Bceei9c: \"fdrzuqr\",\n yvdlaj: \"fahhnxm\"\n }\n}, {\n d: [\".f1ub7u0d{align-self:stretch;}\", \".f1c21dwh{background-color:var(--colorTransparentBackground);}\", [\".f3bhgqh{border:none;}\", {\n p: -2\n }], \".f19n0e5{color:var(--colorNeutralForeground1);}\", \".fk6fouc{font-family:var(--fontFamilyBase);}\", \".fwyc1cq::-webkit-input-placeholder{color:var(--colorNeutralForeground4);}\", \".fwyc1cq::-moz-placeholder{color:var(--colorNeutralForeground4);}\", \".f13ta7ih::-webkit-input-placeholder{opacity:1;}\", \".f13ta7ih::-moz-placeholder{opacity:1;}\", \".fy9rknc{font-size:var(--fontSizeBase200);}\", \".figsok6{font-weight:var(--fontWeightRegular);}\", \".fwrc4pm{line-height:var(--lineHeightBase200);}\", [\".fxe2rs{padding:0 0 0 calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}\", {\n p: -1\n }], [\".f1gflqzi{padding:0 calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS)) 0 0;}\", {\n p: -1\n }], \".fkhj508{font-size:var(--fontSizeBase300);}\", \".f1i3iumi{line-height:var(--lineHeightBase300);}\", [\".fzy81xo{padding:0 0 0 calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS));}\", {\n p: -1\n }], [\".f58b53b{padding:0 calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS)) 0 0;}\", {\n p: -1\n }], \".fod5ikn{font-size:var(--fontSizeBase400);}\", \".faaz57k{line-height:var(--lineHeightBase400);}\", [\".f1kdav7a{padding:0 0 0 calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge));}\", {\n p: -1\n }], [\".footqm6{padding:0 calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge)) 0 0;}\", {\n p: -1\n }], \".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}\", \".fdrzuqr{cursor:not-allowed;}\", \".fahhnxm::-webkit-input-placeholder{color:var(--colorNeutralForegroundDisabled);}\", \".fahhnxm::-moz-placeholder{color:var(--colorNeutralForegroundDisabled);}\"],\n f: [\".ftqa4ok:focus{outline-style:none;}\"]\n});\nconst useIconStyles = /*#__PURE__*/__styles({\n icon: {\n B7ck84d: \"f1ewtqcl\",\n sj55zd: \"fxkbij4\",\n Bceei9c: \"f1k6fduh\",\n mc9l5x: \"ftgm304\",\n Be2twd7: \"f1pp30po\",\n Bo70h7d: \"fvc9v3g\"\n },\n hidden: {\n mc9l5x: \"fjseox\"\n },\n visuallyHidden: {\n Bh84pgu: \"f1ekcaio\",\n Bqenvij: \"f1mpe4l3\",\n jrapky: 0,\n Frg6f3: 0,\n t21cq0: 0,\n B6of3ja: 0,\n B74szlk: \"f1jlpb2r\",\n B68tc82: 0,\n Bmxbyg5: 0,\n Bpg54ce: \"f1a3p1vp\",\n Byoj8tv: 0,\n uwmqm3: 0,\n z189sj: 0,\n z8tnut: 0,\n B0ocmuz: \"f1c5fvqg\",\n a9b677: \"frkrog8\",\n qhf8xq: \"f1euv43f\"\n },\n small: {\n Be2twd7: \"f4ybsrx\",\n Frg6f3: [\"f1h9en5y\", \"f1xk557c\"]\n },\n medium: {\n Be2twd7: \"fe5j1ua\",\n Frg6f3: [\"f1h9en5y\", \"f1xk557c\"]\n },\n large: {\n Be2twd7: \"f1rt2boy\",\n Frg6f3: [\"f1t5qyk5\", \"f1ikr372\"]\n },\n disabled: {\n sj55zd: \"f1s2aq7o\",\n Bceei9c: \"fdrzuqr\"\n }\n}, {\n d: [\".f1ewtqcl{box-sizing:border-box;}\", \".fxkbij4{color:var(--colorNeutralStrokeAccessible);}\", \".f1k6fduh{cursor:pointer;}\", \".ftgm304{display:block;}\", \".f1pp30po{font-size:var(--fontSizeBase500);}\", \".fvc9v3g svg{display:block;}\", \".fjseox{display:none;}\", \".f1ekcaio{clip:rect(0px, 0px, 0px, 0px);}\", \".f1mpe4l3{height:1px;}\", [\".f1jlpb2r{margin:-1px;}\", {\n p: -1\n }], [\".f1a3p1vp{overflow:hidden;}\", {\n p: -1\n }], [\".f1c5fvqg{padding:0px;}\", {\n p: -1\n }], \".frkrog8{width:1px;}\", \".f1euv43f{position:absolute;}\", \".f4ybsrx{font-size:16px;}\", \".f1h9en5y{margin-left:var(--spacingHorizontalXXS);}\", \".f1xk557c{margin-right:var(--spacingHorizontalXXS);}\", \".fe5j1ua{font-size:20px;}\", \".f1rt2boy{font-size:24px;}\", \".f1t5qyk5{margin-left:var(--spacingHorizontalSNudge);}\", \".f1ikr372{margin-right:var(--spacingHorizontalSNudge);}\", \".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}\", \".fdrzuqr{cursor:not-allowed;}\"]\n});\n/**\n * Apply styling to the Combobox slots based on the state\n */\nexport const useComboboxStyles_unstable = state => {\n 'use no memo';\n\n const {\n appearance,\n open,\n size,\n showClearIcon\n } = state;\n const invalid = `${state.input['aria-invalid']}` === 'true';\n const disabled = state.input.disabled;\n const styles = useStyles();\n const iconStyles = useIconStyles();\n const inputStyles = useInputStyles();\n state.root.className = mergeClasses(comboboxClassNames.root, styles.root, styles[appearance], styles[size], !disabled && appearance === 'outline' && styles.outlineInteractive, invalid && appearance !== 'underline' && styles.invalid, invalid && appearance === 'underline' && styles.invalidUnderline, disabled && styles.disabled, state.root.className);\n state.input.className = mergeClasses(comboboxClassNames.input, inputStyles.input, inputStyles[size], disabled && inputStyles.disabled, state.input.className);\n if (state.listbox) {\n state.listbox.className = mergeClasses(comboboxClassNames.listbox, styles.listbox, state.inlinePopup && styles.inlineListbox, !open && styles.listboxCollapsed, state.listbox.className);\n }\n if (state.expandIcon) {\n state.expandIcon.className = mergeClasses(comboboxClassNames.expandIcon, iconStyles.icon, iconStyles[size], disabled && iconStyles.disabled, showClearIcon && iconStyles.visuallyHidden, state.expandIcon.className);\n }\n if (state.clearIcon) {\n state.clearIcon.className = mergeClasses(comboboxClassNames.clearIcon, iconStyles.icon, iconStyles[size], disabled && iconStyles.disabled, !showClearIcon && iconStyles.hidden, state.clearIcon.className);\n }\n return state;\n};\n//# sourceMappingURL=useComboboxStyles.styles.js.map"],"names":["comboboxClassNames","useComboboxStyles_unstable","root","input","expandIcon","clearIcon","listbox","fieldHeights","small","medium","large","useStyles","__styles","Bt984gj","Beyfa6y","Bbmb7ep","Btl43ni","B7oj6ja","Dimara","B7ck84d","i8kkvl","mc9l5x","Budl1dq","Brf1p80","Bf4jedk","qhf8xq","Bbr2w1p","Bduesf4","Bpq79vn","li1rpt","Bsft5z2","E3zdtr","Eqx8gd","By385i5","B1piin3","Dlnsje","d9w3h3","B3778ie","B1q35kw","Bw17bha","Bcgy8vk","Bjuhk93","Gjdm7m","b1kco5","Ba2ppi3","F2fol1","lck23g","df92cz","I188md","umuwi5","Blcqepd","nplu4u","Bioka5o","H713fs","B9ooomg","Bercvud","E5pizo","Bxyxcbc","listboxCollapsed","inlineListbox","Bj3rh1h","Bqenvij","z189sj","outline","De3pzq","Bgfg5da","B9xav0g","oivjwe","Bn0qgzm","B4g9neb","zhjwy3","wvpqe5","ibv6hh","u1mtju","h3c5rm","vrafjx","Bekrc4i","i8vvqc","g2u3we","icvyot","B4j52fo","irswps","outlineInteractive","Bgoe8wy","Bwzppfd","oetu4i","gg5e9n","B6oc9vd","ak43y8","wmxk5l","B50zh58","underline","invalid","tvckwq","gk2u95","hhx65j","Bxowmz0","invalidUnderline","disabled","Bceei9c","Bjwas2f","Bn1d65q","Bxeuatn","n51gp8","d","p","w","m","h","a","useInputStyles","qb2dma","sj55zd","Bahqtrf","Brovlpu","yvdlaj","B3o7kgh","Be2twd7","Bhrd7zp","Bg96gwp","Byoj8tv","uwmqm3","z8tnut","B0ocmuz","f","useIconStyles","icon","Bo70h7d","hidden","visuallyHidden","Bh84pgu","jrapky","Frg6f3","t21cq0","B6of3ja","B74szlk","B68tc82","Bmxbyg5","Bpg54ce","a9b677","state","appearance","open","size","showClearIcon","styles","iconStyles","inputStyles","className","mergeClasses","inlinePopup"],"mappings":"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"}
@@ -15,6 +15,7 @@ const _keyboardkeys = require("@fluentui/keyboard-keys");
15
15
  const _useTriggerSlot = require("../../utils/useTriggerSlot");
16
16
  const _dropdownKeyActions = require("../../utils/dropdownKeyActions");
17
17
  function useInputTriggerSlot(triggerFromProps, ref, options) {
18
+ 'use no memo';
18
19
  const { state: { open, value, selectOption, setValue, multiselect, selectedOptions, clearSelection, getOptionById, setOpen }, freeform, defaultProps, activeDescendantController } = options;
19
20
  const onBlur = (event)=>{
20
21
  // handle selection and updating value if freeform is false
@@ -1 +1 @@
1
- {"version":3,"sources":["useInputTriggerSlot.js"],"sourcesContent":["import * as React from 'react';\nimport { mergeCallbacks, useEventCallback } from '@fluentui/react-utilities';\nimport { ArrowLeft, ArrowRight } from '@fluentui/keyboard-keys';\nimport { useTriggerSlot } from '../../utils/useTriggerSlot';\nimport { getDropdownActionFromKey } from '../../utils/dropdownKeyActions';\n/**\n * @internal\n * useInputTriggerSlot returns a tuple of trigger/listbox shorthand,\n * with the semantics and event handlers needed for the Combobox and Dropdown components.\n * The element type of the ref should always match the element type used in the trigger shorthand.\n */ export function useInputTriggerSlot(triggerFromProps, ref, options) {\n const { state: { open, value, selectOption, setValue, multiselect, selectedOptions, clearSelection, getOptionById, setOpen }, freeform, defaultProps, activeDescendantController } = options;\n const onBlur = (event)=>{\n // handle selection and updating value if freeform is false\n if (!open && !freeform) {\n const activeOptionId = activeDescendantController.active();\n const activeOption = activeOptionId ? getOptionById(activeOptionId) : null;\n // select matching option, if the value fully matches\n if (value && activeOption && value.trim().toLowerCase() === (activeOption === null || activeOption === void 0 ? void 0 : activeOption.text.toLowerCase())) {\n selectOption(event, activeOption);\n }\n // reset typed value when the input loses focus while collapsed, unless freeform is true\n setValue(undefined);\n }\n };\n const getOptionFromInput = (inputValue)=>{\n const searchString = inputValue === null || inputValue === void 0 ? void 0 : inputValue.trim().toLowerCase();\n if (!searchString || searchString.length === 0) {\n activeDescendantController.blur();\n return;\n }\n const matcher = (optionText)=>optionText.toLowerCase().indexOf(searchString) === 0;\n const match = activeDescendantController.find((id)=>{\n const option = getOptionById(id);\n return !!option && matcher(option.text);\n });\n if (!match) {\n activeDescendantController.blur();\n return undefined;\n }\n return getOptionById(match);\n };\n // update value and active option based on input\n const onChange = (event)=>{\n const inputValue = event.target.value;\n // update uncontrolled value\n setValue(inputValue);\n // handle updating active option based on input\n const matchingOption = getOptionFromInput(inputValue);\n // clear selection for single-select if the input value no longer matches the selection\n if (!multiselect && selectedOptions.length === 1 && (inputValue.length < 1 || !matchingOption)) {\n clearSelection(event);\n }\n };\n const trigger = useTriggerSlot(triggerFromProps, ref, {\n state: options.state,\n defaultProps,\n elementType: 'input',\n activeDescendantController\n });\n trigger.onChange = mergeCallbacks(trigger.onChange, onChange);\n trigger.onBlur = mergeCallbacks(trigger.onBlur, onBlur);\n // NVDA and JAWS have bugs that suppress reading the input value text when aria-activedescendant is set\n // To prevent this, we clear the HTML attribute (but save the state) when a user presses left/right arrows\n // ref: https://github.com/microsoft/fluentui/issues/26359#issuecomment-1397759888\n const [hideActiveDescendant, setHideActiveDescendant] = React.useState(false);\n // save the typing vs. navigating options state, as the space key should behave differently in each case\n // we do not want to update the combobox when this changes, just save the value between renders\n const isTyping = React.useRef(false);\n /**\n * Freeform combobox should not select\n */ const defaultOnKeyDown = trigger.onKeyDown;\n const onKeyDown = useEventCallback((event)=>{\n if (!open && getDropdownActionFromKey(event) === 'Type') {\n setOpen(event, true);\n }\n // clear activedescendant when moving the text insertion cursor\n if (event.key === ArrowLeft || event.key === ArrowRight) {\n setHideActiveDescendant(true);\n } else {\n setHideActiveDescendant(false);\n }\n // update typing state to true if the user is typing\n const action = getDropdownActionFromKey(event, {\n open,\n multiselect\n });\n if (action === 'Type') {\n isTyping.current = true;\n } else if (action === 'Open' && event.key !== ' ' || action === 'Next' || action === 'Previous' || action === 'First' || action === 'Last' || action === 'PageUp' || action === 'PageDown') {\n isTyping.current = false;\n }\n // allow space to insert a character if freeform & the last action was typing, or if the popup is closed\n if ((isTyping.current || !open) && event.key === ' ') {\n var _triggerFromProps_onKeyDown;\n triggerFromProps === null || triggerFromProps === void 0 ? void 0 : (_triggerFromProps_onKeyDown = triggerFromProps.onKeyDown) === null || _triggerFromProps_onKeyDown === void 0 ? void 0 : _triggerFromProps_onKeyDown.call(triggerFromProps, event);\n return;\n }\n defaultOnKeyDown === null || defaultOnKeyDown === void 0 ? void 0 : defaultOnKeyDown(event);\n });\n trigger.onKeyDown = onKeyDown;\n if (hideActiveDescendant) {\n trigger['aria-activedescendant'] = undefined;\n }\n return trigger;\n}\n"],"names":["useInputTriggerSlot","triggerFromProps","ref","options","state","open","value","selectOption","setValue","multiselect","selectedOptions","clearSelection","getOptionById","setOpen","freeform","defaultProps","activeDescendantController","onBlur","event","activeOptionId","active","activeOption","trim","toLowerCase","text","undefined","getOptionFromInput","inputValue","searchString","length","blur","matcher","optionText","indexOf","match","find","id","option","onChange","target","matchingOption","trigger","useTriggerSlot","elementType","mergeCallbacks","hideActiveDescendant","setHideActiveDescendant","React","useState","isTyping","useRef","defaultOnKeyDown","onKeyDown","useEventCallback","getDropdownActionFromKey","key","ArrowLeft","ArrowRight","action","current","_triggerFromProps_onKeyDown","call"],"mappings":"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"}
1
+ {"version":3,"sources":["useInputTriggerSlot.js"],"sourcesContent":["import * as React from 'react';\nimport { mergeCallbacks, useEventCallback } from '@fluentui/react-utilities';\nimport { ArrowLeft, ArrowRight } from '@fluentui/keyboard-keys';\nimport { useTriggerSlot } from '../../utils/useTriggerSlot';\nimport { getDropdownActionFromKey } from '../../utils/dropdownKeyActions';\n/**\n * @internal\n * useInputTriggerSlot returns a tuple of trigger/listbox shorthand,\n * with the semantics and event handlers needed for the Combobox and Dropdown components.\n * The element type of the ref should always match the element type used in the trigger shorthand.\n */ export function useInputTriggerSlot(triggerFromProps, ref, options) {\n 'use no memo';\n const { state: { open, value, selectOption, setValue, multiselect, selectedOptions, clearSelection, getOptionById, setOpen }, freeform, defaultProps, activeDescendantController } = options;\n const onBlur = (event)=>{\n // handle selection and updating value if freeform is false\n if (!open && !freeform) {\n const activeOptionId = activeDescendantController.active();\n const activeOption = activeOptionId ? getOptionById(activeOptionId) : null;\n // select matching option, if the value fully matches\n if (value && activeOption && value.trim().toLowerCase() === (activeOption === null || activeOption === void 0 ? void 0 : activeOption.text.toLowerCase())) {\n selectOption(event, activeOption);\n }\n // reset typed value when the input loses focus while collapsed, unless freeform is true\n setValue(undefined);\n }\n };\n const getOptionFromInput = (inputValue)=>{\n const searchString = inputValue === null || inputValue === void 0 ? void 0 : inputValue.trim().toLowerCase();\n if (!searchString || searchString.length === 0) {\n activeDescendantController.blur();\n return;\n }\n const matcher = (optionText)=>optionText.toLowerCase().indexOf(searchString) === 0;\n const match = activeDescendantController.find((id)=>{\n const option = getOptionById(id);\n return !!option && matcher(option.text);\n });\n if (!match) {\n activeDescendantController.blur();\n return undefined;\n }\n return getOptionById(match);\n };\n // update value and active option based on input\n const onChange = (event)=>{\n const inputValue = event.target.value;\n // update uncontrolled value\n setValue(inputValue);\n // handle updating active option based on input\n const matchingOption = getOptionFromInput(inputValue);\n // clear selection for single-select if the input value no longer matches the selection\n if (!multiselect && selectedOptions.length === 1 && (inputValue.length < 1 || !matchingOption)) {\n clearSelection(event);\n }\n };\n const trigger = useTriggerSlot(triggerFromProps, ref, {\n state: options.state,\n defaultProps,\n elementType: 'input',\n activeDescendantController\n });\n trigger.onChange = mergeCallbacks(trigger.onChange, onChange);\n trigger.onBlur = mergeCallbacks(trigger.onBlur, onBlur);\n // NVDA and JAWS have bugs that suppress reading the input value text when aria-activedescendant is set\n // To prevent this, we clear the HTML attribute (but save the state) when a user presses left/right arrows\n // ref: https://github.com/microsoft/fluentui/issues/26359#issuecomment-1397759888\n const [hideActiveDescendant, setHideActiveDescendant] = React.useState(false);\n // save the typing vs. navigating options state, as the space key should behave differently in each case\n // we do not want to update the combobox when this changes, just save the value between renders\n const isTyping = React.useRef(false);\n /**\n * Freeform combobox should not select\n */ const defaultOnKeyDown = trigger.onKeyDown;\n const onKeyDown = useEventCallback((event)=>{\n if (!open && getDropdownActionFromKey(event) === 'Type') {\n setOpen(event, true);\n }\n // clear activedescendant when moving the text insertion cursor\n if (event.key === ArrowLeft || event.key === ArrowRight) {\n setHideActiveDescendant(true);\n } else {\n setHideActiveDescendant(false);\n }\n // update typing state to true if the user is typing\n const action = getDropdownActionFromKey(event, {\n open,\n multiselect\n });\n if (action === 'Type') {\n isTyping.current = true;\n } else if (action === 'Open' && event.key !== ' ' || action === 'Next' || action === 'Previous' || action === 'First' || action === 'Last' || action === 'PageUp' || action === 'PageDown') {\n isTyping.current = false;\n }\n // allow space to insert a character if freeform & the last action was typing, or if the popup is closed\n if ((isTyping.current || !open) && event.key === ' ') {\n var _triggerFromProps_onKeyDown;\n triggerFromProps === null || triggerFromProps === void 0 ? void 0 : (_triggerFromProps_onKeyDown = triggerFromProps.onKeyDown) === null || _triggerFromProps_onKeyDown === void 0 ? void 0 : _triggerFromProps_onKeyDown.call(triggerFromProps, event);\n return;\n }\n defaultOnKeyDown === null || defaultOnKeyDown === void 0 ? void 0 : defaultOnKeyDown(event);\n });\n trigger.onKeyDown = onKeyDown;\n if (hideActiveDescendant) {\n trigger['aria-activedescendant'] = undefined;\n }\n return trigger;\n}\n"],"names":["useInputTriggerSlot","triggerFromProps","ref","options","state","open","value","selectOption","setValue","multiselect","selectedOptions","clearSelection","getOptionById","setOpen","freeform","defaultProps","activeDescendantController","onBlur","event","activeOptionId","active","activeOption","trim","toLowerCase","text","undefined","getOptionFromInput","inputValue","searchString","length","blur","matcher","optionText","indexOf","match","find","id","option","onChange","target","matchingOption","trigger","useTriggerSlot","elementType","mergeCallbacks","hideActiveDescendant","setHideActiveDescendant","React","useState","isTyping","useRef","defaultOnKeyDown","onKeyDown","useEventCallback","getDropdownActionFromKey","key","ArrowLeft","ArrowRight","action","current","_triggerFromProps_onKeyDown","call"],"mappings":"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"}
@@ -14,6 +14,7 @@ const _reactutilities = require("@fluentui/react-utilities");
14
14
  const _useTriggerSlot = require("../../utils/useTriggerSlot");
15
15
  const _dropdownKeyActions = require("../../utils/dropdownKeyActions");
16
16
  function useButtonTriggerSlot(triggerFromProps, ref, options) {
17
+ 'use no memo';
17
18
  const { state: { open, setOpen, getOptionById }, defaultProps, activeDescendantController } = options;
18
19
  // jump to matching option based on typing
19
20
  const searchString = _react.useRef('');
@@ -70,9 +71,11 @@ function useButtonTriggerSlot(triggerFromProps, ref, options) {
70
71
  setKeyTimeout(()=>{
71
72
  searchString.current = '';
72
73
  }, 500);
74
+ if (open) {
75
+ moveToNextMatchingOptionWithSameCharacterHandling();
76
+ }
73
77
  // update state
74
78
  !open && setOpen(ev, true);
75
- moveToNextMatchingOptionWithSameCharacterHandling();
76
79
  }
77
80
  };
78
81
  const trigger = (0, _useTriggerSlot.useTriggerSlot)(triggerFromProps, ref, {
@@ -1 +1 @@
1
- {"version":3,"sources":["useButtonTriggerSlot.js"],"sourcesContent":["import * as React from 'react';\nimport { useTimeout, mergeCallbacks } from '@fluentui/react-utilities';\nimport { useTriggerSlot } from '../../utils/useTriggerSlot';\nimport { getDropdownActionFromKey } from '../../utils/dropdownKeyActions';\n/**\n * @internal\n * useButtonTriggerSlot returns a tuple of trigger/listbox shorthand,\n * with the semantics and event handlers needed for the Combobox and Dropdown components.\n * The element type of the ref should always match the element type used in the trigger shorthand.\n */ export function useButtonTriggerSlot(triggerFromProps, ref, options) {\n const { state: { open, setOpen, getOptionById }, defaultProps, activeDescendantController } = options;\n // jump to matching option based on typing\n const searchString = React.useRef('');\n const [setKeyTimeout, clearKeyTimeout] = useTimeout();\n const moveToNextMatchingOption = (matcher, opt = {\n startFromNext: false\n })=>{\n const { startFromNext } = opt;\n const activeOptionId = activeDescendantController.active();\n const nextInOrder = activeDescendantController.find((id)=>{\n const option = getOptionById(id);\n return !!option && matcher(option.text);\n }, {\n startFrom: startFromNext ? activeDescendantController.next({\n passive: true\n }) : activeOptionId\n });\n if (nextInOrder) {\n return nextInOrder;\n }\n // Cycle back to first match\n return activeDescendantController.find((id)=>{\n const option = getOptionById(id);\n return !!option && matcher(option.text);\n });\n };\n const moveToNextMatchingOptionWithSameCharacterHandling = ()=>{\n if (moveToNextMatchingOption((optionText)=>{\n return optionText.toLocaleLowerCase().indexOf(searchString.current) === 0;\n }, {\n // Slowly pressing the same key will cycle through options\n startFromNext: searchString.current.length === 1\n })) {\n return;\n }\n // if there are no direct matches, check if the search is all the same letter, e.g. \"aaa\"\n if (allCharactersSame(searchString.current) && moveToNextMatchingOption((optionText)=>{\n return optionText.toLocaleLowerCase().indexOf(searchString.current[0]) === 0;\n }, {\n // if the search is all the same letter, cycle through options starting with that letter\n startFromNext: true\n })) {\n return;\n }\n activeDescendantController.blur();\n };\n const onTriggerKeyDown = (ev)=>{\n // clear timeout, if it exists\n clearKeyTimeout();\n // if the key was a char key, update search string\n if (getDropdownActionFromKey(ev) === 'Type') {\n // update search string\n searchString.current += ev.key.toLowerCase();\n setKeyTimeout(()=>{\n searchString.current = '';\n }, 500);\n // update state\n !open && setOpen(ev, true);\n moveToNextMatchingOptionWithSameCharacterHandling();\n }\n };\n const trigger = useTriggerSlot(triggerFromProps, ref, {\n state: options.state,\n defaultProps,\n elementType: 'button',\n activeDescendantController\n });\n trigger.onKeyDown = mergeCallbacks(onTriggerKeyDown, trigger.onKeyDown);\n return trigger;\n}\n/**\n * @returns - whether every character in the string is the same\n */ function allCharactersSame(str) {\n for(let i = 1; i < str.length; i++){\n if (str[i] !== str[i - 1]) {\n return false;\n }\n }\n return true;\n}\n"],"names":["useButtonTriggerSlot","triggerFromProps","ref","options","state","open","setOpen","getOptionById","defaultProps","activeDescendantController","searchString","React","useRef","setKeyTimeout","clearKeyTimeout","useTimeout","moveToNextMatchingOption","matcher","opt","startFromNext","activeOptionId","active","nextInOrder","find","id","option","text","startFrom","next","passive","moveToNextMatchingOptionWithSameCharacterHandling","optionText","toLocaleLowerCase","indexOf","current","length","allCharactersSame","blur","onTriggerKeyDown","ev","getDropdownActionFromKey","key","toLowerCase","trigger","useTriggerSlot","elementType","onKeyDown","mergeCallbacks","str","i"],"mappings":";;;;+BASoBA;;;eAAAA;;;;iEATG;gCACoB;gCACZ;oCACU;AAM9B,SAASA,qBAAqBC,gBAAgB,EAAEC,GAAG,EAAEC,OAAO;IACnE,MAAM,EAAEC,OAAO,EAAEC,IAAI,EAAEC,OAAO,EAAEC,aAAa,EAAE,EAAEC,YAAY,EAAEC,0BAA0B,EAAE,GAAGN;IAC9F,0CAA0C;IAC1C,MAAMO,eAAeC,OAAMC,MAAM,CAAC;IAClC,MAAM,CAACC,eAAeC,gBAAgB,GAAGC,IAAAA,0BAAU;IACnD,MAAMC,2BAA2B,CAACC,SAASC,MAAM;QAC7CC,eAAe;IACnB,CAAC;QACG,MAAM,EAAEA,aAAa,EAAE,GAAGD;QAC1B,MAAME,iBAAiBX,2BAA2BY,MAAM;QACxD,MAAMC,cAAcb,2BAA2Bc,IAAI,CAAC,CAACC;YACjD,MAAMC,SAASlB,cAAciB;YAC7B,OAAO,CAAC,CAACC,UAAUR,QAAQQ,OAAOC,IAAI;QAC1C,GAAG;YACCC,WAAWR,gBAAgBV,2BAA2BmB,IAAI,CAAC;gBACvDC,SAAS;YACb,KAAKT;QACT;QACA,IAAIE,aAAa;YACb,OAAOA;QACX;QACA,4BAA4B;QAC5B,OAAOb,2BAA2Bc,IAAI,CAAC,CAACC;YACpC,MAAMC,SAASlB,cAAciB;YAC7B,OAAO,CAAC,CAACC,UAAUR,QAAQQ,OAAOC,IAAI;QAC1C;IACJ;IACA,MAAMI,oDAAoD;QACtD,IAAId,yBAAyB,CAACe;YAC1B,OAAOA,WAAWC,iBAAiB,GAAGC,OAAO,CAACvB,aAAawB,OAAO,MAAM;QAC5E,GAAG;YACC,0DAA0D;YAC1Df,eAAeT,aAAawB,OAAO,CAACC,MAAM,KAAK;QACnD,IAAI;YACA;QACJ;QACA,yFAAyF;QACzF,IAAIC,kBAAkB1B,aAAawB,OAAO,KAAKlB,yBAAyB,CAACe;YACrE,OAAOA,WAAWC,iBAAiB,GAAGC,OAAO,CAACvB,aAAawB,OAAO,CAAC,EAAE,MAAM;QAC/E,GAAG;YACC,wFAAwF;YACxFf,eAAe;QACnB,IAAI;YACA;QACJ;QACAV,2BAA2B4B,IAAI;IACnC;IACA,MAAMC,mBAAmB,CAACC;QACtB,8BAA8B;QAC9BzB;QACA,kDAAkD;QAClD,IAAI0B,IAAAA,4CAAwB,EAACD,QAAQ,QAAQ;YACzC,uBAAuB;YACvB7B,aAAawB,OAAO,IAAIK,GAAGE,GAAG,CAACC,WAAW;YAC1C7B,cAAc;gBACVH,aAAawB,OAAO,GAAG;YAC3B,GAAG;YACH,eAAe;YACf,CAAC7B,QAAQC,QAAQiC,IAAI;YACrBT;QACJ;IACJ;IACA,MAAMa,UAAUC,IAAAA,8BAAc,EAAC3C,kBAAkBC,KAAK;QAClDE,OAAOD,QAAQC,KAAK;QACpBI;QACAqC,aAAa;QACbpC;IACJ;IACAkC,QAAQG,SAAS,GAAGC,IAAAA,8BAAc,EAACT,kBAAkBK,QAAQG,SAAS;IACtE,OAAOH;AACX;AACA;;CAEC,GAAG,SAASP,kBAAkBY,GAAG;IAC9B,IAAI,IAAIC,IAAI,GAAGA,IAAID,IAAIb,MAAM,EAAEc,IAAI;QAC/B,IAAID,GAAG,CAACC,EAAE,KAAKD,GAAG,CAACC,IAAI,EAAE,EAAE;YACvB,OAAO;QACX;IACJ;IACA,OAAO;AACX"}
1
+ {"version":3,"sources":["useButtonTriggerSlot.js"],"sourcesContent":["import * as React from 'react';\nimport { useTimeout, mergeCallbacks } from '@fluentui/react-utilities';\nimport { useTriggerSlot } from '../../utils/useTriggerSlot';\nimport { getDropdownActionFromKey } from '../../utils/dropdownKeyActions';\n/**\n * @internal\n * useButtonTriggerSlot returns a tuple of trigger/listbox shorthand,\n * with the semantics and event handlers needed for the Combobox and Dropdown components.\n * The element type of the ref should always match the element type used in the trigger shorthand.\n */ export function useButtonTriggerSlot(triggerFromProps, ref, options) {\n 'use no memo';\n const { state: { open, setOpen, getOptionById }, defaultProps, activeDescendantController } = options;\n // jump to matching option based on typing\n const searchString = React.useRef('');\n const [setKeyTimeout, clearKeyTimeout] = useTimeout();\n const moveToNextMatchingOption = (matcher, opt = {\n startFromNext: false\n })=>{\n const { startFromNext } = opt;\n const activeOptionId = activeDescendantController.active();\n const nextInOrder = activeDescendantController.find((id)=>{\n const option = getOptionById(id);\n return !!option && matcher(option.text);\n }, {\n startFrom: startFromNext ? activeDescendantController.next({\n passive: true\n }) : activeOptionId\n });\n if (nextInOrder) {\n return nextInOrder;\n }\n // Cycle back to first match\n return activeDescendantController.find((id)=>{\n const option = getOptionById(id);\n return !!option && matcher(option.text);\n });\n };\n const moveToNextMatchingOptionWithSameCharacterHandling = ()=>{\n if (moveToNextMatchingOption((optionText)=>{\n return optionText.toLocaleLowerCase().indexOf(searchString.current) === 0;\n }, {\n // Slowly pressing the same key will cycle through options\n startFromNext: searchString.current.length === 1\n })) {\n return;\n }\n // if there are no direct matches, check if the search is all the same letter, e.g. \"aaa\"\n if (allCharactersSame(searchString.current) && moveToNextMatchingOption((optionText)=>{\n return optionText.toLocaleLowerCase().indexOf(searchString.current[0]) === 0;\n }, {\n // if the search is all the same letter, cycle through options starting with that letter\n startFromNext: true\n })) {\n return;\n }\n activeDescendantController.blur();\n };\n const onTriggerKeyDown = (ev)=>{\n // clear timeout, if it exists\n clearKeyTimeout();\n // if the key was a char key, update search string\n if (getDropdownActionFromKey(ev) === 'Type') {\n // update search string\n searchString.current += ev.key.toLowerCase();\n setKeyTimeout(()=>{\n searchString.current = '';\n }, 500);\n if (open) {\n moveToNextMatchingOptionWithSameCharacterHandling();\n }\n // update state\n !open && setOpen(ev, true);\n }\n };\n const trigger = useTriggerSlot(triggerFromProps, ref, {\n state: options.state,\n defaultProps,\n elementType: 'button',\n activeDescendantController\n });\n trigger.onKeyDown = mergeCallbacks(onTriggerKeyDown, trigger.onKeyDown);\n return trigger;\n}\n/**\n * @returns - whether every character in the string is the same\n */ function allCharactersSame(str) {\n for(let i = 1; i < str.length; i++){\n if (str[i] !== str[i - 1]) {\n return false;\n }\n }\n return true;\n}\n"],"names":["useButtonTriggerSlot","triggerFromProps","ref","options","state","open","setOpen","getOptionById","defaultProps","activeDescendantController","searchString","React","useRef","setKeyTimeout","clearKeyTimeout","useTimeout","moveToNextMatchingOption","matcher","opt","startFromNext","activeOptionId","active","nextInOrder","find","id","option","text","startFrom","next","passive","moveToNextMatchingOptionWithSameCharacterHandling","optionText","toLocaleLowerCase","indexOf","current","length","allCharactersSame","blur","onTriggerKeyDown","ev","getDropdownActionFromKey","key","toLowerCase","trigger","useTriggerSlot","elementType","onKeyDown","mergeCallbacks","str","i"],"mappings":";;;;+BASoBA;;;eAAAA;;;;iEATG;gCACoB;gCACZ;oCACU;AAM9B,SAASA,qBAAqBC,gBAAgB,EAAEC,GAAG,EAAEC,OAAO;IACnE;IACA,MAAM,EAAEC,OAAO,EAAEC,IAAI,EAAEC,OAAO,EAAEC,aAAa,EAAE,EAAEC,YAAY,EAAEC,0BAA0B,EAAE,GAAGN;IAC9F,0CAA0C;IAC1C,MAAMO,eAAeC,OAAMC,MAAM,CAAC;IAClC,MAAM,CAACC,eAAeC,gBAAgB,GAAGC,IAAAA,0BAAU;IACnD,MAAMC,2BAA2B,CAACC,SAASC,MAAM;QAC7CC,eAAe;IACnB,CAAC;QACG,MAAM,EAAEA,aAAa,EAAE,GAAGD;QAC1B,MAAME,iBAAiBX,2BAA2BY,MAAM;QACxD,MAAMC,cAAcb,2BAA2Bc,IAAI,CAAC,CAACC;YACjD,MAAMC,SAASlB,cAAciB;YAC7B,OAAO,CAAC,CAACC,UAAUR,QAAQQ,OAAOC,IAAI;QAC1C,GAAG;YACCC,WAAWR,gBAAgBV,2BAA2BmB,IAAI,CAAC;gBACvDC,SAAS;YACb,KAAKT;QACT;QACA,IAAIE,aAAa;YACb,OAAOA;QACX;QACA,4BAA4B;QAC5B,OAAOb,2BAA2Bc,IAAI,CAAC,CAACC;YACpC,MAAMC,SAASlB,cAAciB;YAC7B,OAAO,CAAC,CAACC,UAAUR,QAAQQ,OAAOC,IAAI;QAC1C;IACJ;IACA,MAAMI,oDAAoD;QACtD,IAAId,yBAAyB,CAACe;YAC1B,OAAOA,WAAWC,iBAAiB,GAAGC,OAAO,CAACvB,aAAawB,OAAO,MAAM;QAC5E,GAAG;YACC,0DAA0D;YAC1Df,eAAeT,aAAawB,OAAO,CAACC,MAAM,KAAK;QACnD,IAAI;YACA;QACJ;QACA,yFAAyF;QACzF,IAAIC,kBAAkB1B,aAAawB,OAAO,KAAKlB,yBAAyB,CAACe;YACrE,OAAOA,WAAWC,iBAAiB,GAAGC,OAAO,CAACvB,aAAawB,OAAO,CAAC,EAAE,MAAM;QAC/E,GAAG;YACC,wFAAwF;YACxFf,eAAe;QACnB,IAAI;YACA;QACJ;QACAV,2BAA2B4B,IAAI;IACnC;IACA,MAAMC,mBAAmB,CAACC;QACtB,8BAA8B;QAC9BzB;QACA,kDAAkD;QAClD,IAAI0B,IAAAA,4CAAwB,EAACD,QAAQ,QAAQ;YACzC,uBAAuB;YACvB7B,aAAawB,OAAO,IAAIK,GAAGE,GAAG,CAACC,WAAW;YAC1C7B,cAAc;gBACVH,aAAawB,OAAO,GAAG;YAC3B,GAAG;YACH,IAAI7B,MAAM;gBACNyB;YACJ;YACA,eAAe;YACf,CAACzB,QAAQC,QAAQiC,IAAI;QACzB;IACJ;IACA,MAAMI,UAAUC,IAAAA,8BAAc,EAAC3C,kBAAkBC,KAAK;QAClDE,OAAOD,QAAQC,KAAK;QACpBI;QACAqC,aAAa;QACbpC;IACJ;IACAkC,QAAQG,SAAS,GAAGC,IAAAA,8BAAc,EAACT,kBAAkBK,QAAQG,SAAS;IACtE,OAAOH;AACX;AACA;;CAEC,GAAG,SAASP,kBAAkBY,GAAG;IAC9B,IAAI,IAAIC,IAAI,GAAGA,IAAID,IAAIb,MAAM,EAAEc,IAAI;QAC/B,IAAID,GAAG,CAACC,EAAE,KAAKD,GAAG,CAACC,IAAI,EAAE,EAAE;YACvB,OAAO;QACX;IACJ;IACA,OAAO;AACX"}
@@ -13,6 +13,7 @@ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
13
13
  const _reactfield = require("@fluentui/react-field");
14
14
  const _reactaria = require("@fluentui/react-aria");
15
15
  const _reacticons = require("@fluentui/react-icons");
16
+ const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
16
17
  const _reactutilities = require("@fluentui/react-utilities");
17
18
  const _useComboboxBaseState = require("../../utils/useComboboxBaseState");
18
19
  const _useComboboxPositioning = require("../../utils/useComboboxPositioning");
@@ -21,6 +22,7 @@ const _useListboxSlot = require("../../utils/useListboxSlot");
21
22
  const _useButtonTriggerSlot = require("./useButtonTriggerSlot");
22
23
  const _useOptionStylesstyles = require("../Option/useOptionStyles.styles");
23
24
  const useDropdown_unstable = (props, ref)=>{
25
+ 'use no memo';
24
26
  var _state_clearButton;
25
27
  // Merge props from surrounding <Field>, if any
26
28
  props = (0, _reactfield.useFieldControlProps_unstable)(props, {
@@ -35,7 +37,7 @@ const useDropdown_unstable = (props, ref)=>{
35
37
  activeDescendantController,
36
38
  freeform: false
37
39
  });
38
- const { clearable, clearSelection, hasFocus, multiselect, open, selectedOptions } = baseState;
40
+ const { clearable, clearSelection, hasFocus, multiselect, open, selectedOptions, setOpen } = baseState;
39
41
  const { primary: triggerNativeProps, root: rootNativeProps } = (0, _reactutilities.getPartitionedNativeProps)({
40
42
  props,
41
43
  primarySlotTagName: 'button',
@@ -52,6 +54,17 @@ const useDropdown_unstable = (props, ref)=>{
52
54
  children: props.children
53
55
  }
54
56
  });
57
+ const { targetDocument } = (0, _reactsharedcontexts.useFluent_unstable)();
58
+ (0, _reactutilities.useOnClickOutside)({
59
+ element: targetDocument,
60
+ callback: (event)=>setOpen(event, false),
61
+ refs: [
62
+ triggerRef,
63
+ comboboxPopupRef,
64
+ comboboxTargetRef
65
+ ],
66
+ disabled: !open
67
+ });
55
68
  var _props_button;
56
69
  const trigger = (0, _useButtonTriggerSlot.useButtonTriggerSlot)((_props_button = props.button) !== null && _props_button !== void 0 ? _props_button : {}, (0, _reactutilities.useMergedRefs)(triggerRef, activeParentRef, ref), {
57
70
  state: baseState,