@fluentui/react-combobox 9.5.34 → 9.5.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -9
- package/dist/index.d.ts +11 -0
- package/lib/components/Combobox/useCombobox.js +22 -126
- package/lib/components/Combobox/useCombobox.js.map +1 -1
- package/lib/components/Combobox/useInputTriggerSlot.js +103 -0
- package/lib/components/Combobox/useInputTriggerSlot.js.map +1 -0
- package/lib/components/Dropdown/useButtonTriggerSlot.js +69 -0
- package/lib/components/Dropdown/useButtonTriggerSlot.js.map +1 -0
- package/lib/components/Dropdown/useDropdown.js +18 -76
- package/lib/components/Dropdown/useDropdown.js.map +1 -1
- package/lib/components/Option/useOptionStyles.styles.js +31 -5
- package/lib/components/Option/useOptionStyles.styles.js.map +1 -1
- package/lib/utils/ComboboxBase.types.js.map +1 -1
- package/lib/utils/useComboboxBaseState.js +2 -1
- package/lib/utils/useComboboxBaseState.js.map +1 -1
- package/lib/utils/useListboxSlot.js +37 -0
- package/lib/utils/useListboxSlot.js.map +1 -0
- package/lib/utils/useTriggerSlot.js +75 -0
- package/lib/utils/useTriggerSlot.js.map +1 -0
- package/lib-commonjs/components/Combobox/useCombobox.js +22 -126
- package/lib-commonjs/components/Combobox/useCombobox.js.map +1 -1
- package/lib-commonjs/components/Combobox/useInputTriggerSlot.js +110 -0
- package/lib-commonjs/components/Combobox/useInputTriggerSlot.js.map +1 -0
- package/lib-commonjs/components/Dropdown/useButtonTriggerSlot.js +76 -0
- package/lib-commonjs/components/Dropdown/useButtonTriggerSlot.js.map +1 -0
- package/lib-commonjs/components/Dropdown/useDropdown.js +17 -75
- package/lib-commonjs/components/Dropdown/useDropdown.js.map +1 -1
- package/lib-commonjs/components/Option/useOptionStyles.styles.js +85 -5
- package/lib-commonjs/components/Option/useOptionStyles.styles.js.map +1 -1
- package/lib-commonjs/utils/useComboboxBaseState.js +2 -1
- package/lib-commonjs/utils/useComboboxBaseState.js.map +1 -1
- package/lib-commonjs/utils/useListboxSlot.js +46 -0
- package/lib-commonjs/utils/useListboxSlot.js.map +1 -0
- package/lib-commonjs/utils/useTriggerSlot.js +83 -0
- package/lib-commonjs/utils/useTriggerSlot.js.map +1 -0
- package/package.json +2 -2
- package/lib/utils/useTriggerListboxSlots.js +0 -133
- package/lib/utils/useTriggerListboxSlots.js.map +0 -1
- package/lib-commonjs/utils/useTriggerListboxSlots.js +0 -140
- package/lib-commonjs/utils/useTriggerListboxSlots.js.map +0 -1
|
@@ -13,11 +13,11 @@ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
|
13
13
|
const _reactfield = require("@fluentui/react-field");
|
|
14
14
|
const _reacticons = require("@fluentui/react-icons");
|
|
15
15
|
const _reactutilities = require("@fluentui/react-utilities");
|
|
16
|
-
const _dropdownKeyActions = require("../../utils/dropdownKeyActions");
|
|
17
16
|
const _useComboboxBaseState = require("../../utils/useComboboxBaseState");
|
|
18
17
|
const _useComboboxPositioning = require("../../utils/useComboboxPositioning");
|
|
19
|
-
const _useTriggerListboxSlots = require("../../utils/useTriggerListboxSlots");
|
|
20
18
|
const _Listbox = require("../Listbox/Listbox");
|
|
19
|
+
const _useListboxSlot = require("../../utils/useListboxSlot");
|
|
20
|
+
const _useButtonTriggerSlot = require("./useButtonTriggerSlot");
|
|
21
21
|
const useDropdown_unstable = (props, ref)=>{
|
|
22
22
|
// Merge props from surrounding <Field>, if any
|
|
23
23
|
props = (0, _reactfield.useFieldControlProps_unstable)(props, {
|
|
@@ -25,7 +25,7 @@ const useDropdown_unstable = (props, ref)=>{
|
|
|
25
25
|
supportsSize: true
|
|
26
26
|
});
|
|
27
27
|
const baseState = (0, _useComboboxBaseState.useComboboxBaseState)(props);
|
|
28
|
-
const {
|
|
28
|
+
const { open } = baseState;
|
|
29
29
|
const { primary: triggerNativeProps, root: rootNativeProps } = (0, _reactutilities.getPartitionedNativeProps)({
|
|
30
30
|
props,
|
|
31
31
|
primarySlotTagName: 'button',
|
|
@@ -34,85 +34,27 @@ const useDropdown_unstable = (props, ref)=>{
|
|
|
34
34
|
]
|
|
35
35
|
});
|
|
36
36
|
const [comboboxPopupRef, comboboxTargetRef] = (0, _useComboboxPositioning.useComboboxPositioning)(props);
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
let matches = getOptionsMatchingText(matcher);
|
|
44
|
-
let startIndex = activeOption ? getIndexOfId(activeOption.id) : 0;
|
|
45
|
-
// if the dropdown is already open and the searchstring is a single character,
|
|
46
|
-
// then look after the current activeOption for letters
|
|
47
|
-
// this is so slowly typing the same letter will cycle through matches
|
|
48
|
-
if (open && searchString.current.length === 1) {
|
|
49
|
-
startIndex++;
|
|
50
|
-
}
|
|
51
|
-
// if there are no direct matches, check if the search is all the same letter, e.g. "aaa"
|
|
52
|
-
if (!matches.length) {
|
|
53
|
-
const letters = searchString.current.split('');
|
|
54
|
-
const allSameLetter = letters.length && letters.every((letter)=>letter === letters[0]);
|
|
55
|
-
// if the search is all the same letter, cycle through options starting with that letter
|
|
56
|
-
if (allSameLetter) {
|
|
57
|
-
startIndex++;
|
|
58
|
-
matcher = (optionText)=>optionText.toLowerCase().indexOf(letters[0]) === 0;
|
|
59
|
-
matches = getOptionsMatchingText(matcher);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
// if there is an active option and multiple matches,
|
|
63
|
-
// return first matching option after the current active option, looping back to the top
|
|
64
|
-
if (matches.length > 1 && activeOption) {
|
|
65
|
-
const nextMatch = matches.find((option)=>getIndexOfId(option.id) >= startIndex);
|
|
66
|
-
return nextMatch !== null && nextMatch !== void 0 ? nextMatch : matches[0];
|
|
67
|
-
}
|
|
68
|
-
var _matches_;
|
|
69
|
-
return (_matches_ = matches[0]) !== null && _matches_ !== void 0 ? _matches_ : undefined;
|
|
70
|
-
};
|
|
71
|
-
const onTriggerKeyDown = (ev)=>{
|
|
72
|
-
// clear timeout, if it exists
|
|
73
|
-
clearKeyTimeout();
|
|
74
|
-
// if the key was a char key, update search string
|
|
75
|
-
if ((0, _dropdownKeyActions.getDropdownActionFromKey)(ev) === 'Type') {
|
|
76
|
-
// update search string
|
|
77
|
-
searchString.current += ev.key.toLowerCase();
|
|
78
|
-
setKeyTimeout(()=>{
|
|
79
|
-
searchString.current = '';
|
|
80
|
-
}, 500);
|
|
81
|
-
// update state
|
|
82
|
-
!open && setOpen(ev, true);
|
|
83
|
-
const nextOption = getNextMatchingOption();
|
|
84
|
-
setActiveOption(nextOption);
|
|
85
|
-
setFocusVisible(true);
|
|
37
|
+
const triggerRef = _react.useRef(null);
|
|
38
|
+
const listbox = (0, _useListboxSlot.useListboxSlot)(props.listbox, comboboxPopupRef, {
|
|
39
|
+
state: baseState,
|
|
40
|
+
triggerRef,
|
|
41
|
+
defaultProps: {
|
|
42
|
+
children: props.children
|
|
86
43
|
}
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
triggerSlot = _reactutilities.slot.always(props.button, {
|
|
44
|
+
});
|
|
45
|
+
var _props_button;
|
|
46
|
+
const trigger = (0, _useButtonTriggerSlot.useButtonTriggerSlot)((_props_button = props.button) !== null && _props_button !== void 0 ? _props_button : {}, (0, _reactutilities.useMergedRefs)(triggerRef, ref), {
|
|
47
|
+
state: baseState,
|
|
92
48
|
defaultProps: {
|
|
93
49
|
type: 'button',
|
|
94
50
|
tabIndex: 0,
|
|
95
51
|
children: baseState.value || props.placeholder,
|
|
96
52
|
...triggerNativeProps
|
|
97
|
-
}
|
|
98
|
-
elementType: 'button'
|
|
53
|
+
}
|
|
99
54
|
});
|
|
100
|
-
triggerSlot.onKeyDown = (0, _reactutilities.mergeCallbacks)(onTriggerKeyDown, triggerSlot.onKeyDown);
|
|
101
|
-
listboxSlot = baseState.open || baseState.hasFocus ? _reactutilities.slot.optional(props.listbox, {
|
|
102
|
-
renderByDefault: true,
|
|
103
|
-
defaultProps: {
|
|
104
|
-
children: props.children
|
|
105
|
-
},
|
|
106
|
-
elementType: _Listbox.Listbox
|
|
107
|
-
}) : undefined;
|
|
108
|
-
[triggerSlot, listboxSlot] = (0, _useTriggerListboxSlots.useTriggerListboxSlots)(props, baseState, ref, triggerSlot, listboxSlot);
|
|
109
|
-
const listboxRef = (0, _reactutilities.useMergedRefs)(listboxSlot === null || listboxSlot === void 0 ? void 0 : listboxSlot.ref, comboboxPopupRef);
|
|
110
|
-
if (listboxSlot) {
|
|
111
|
-
listboxSlot.ref = listboxRef;
|
|
112
|
-
}
|
|
113
55
|
const rootSlot = _reactutilities.slot.always(props.root, {
|
|
114
56
|
defaultProps: {
|
|
115
|
-
'aria-owns': !props.inlinePopup ?
|
|
57
|
+
'aria-owns': !props.inlinePopup && open ? listbox === null || listbox === void 0 ? void 0 : listbox.id : undefined,
|
|
116
58
|
children: props.children,
|
|
117
59
|
...rootNativeProps
|
|
118
60
|
},
|
|
@@ -127,8 +69,8 @@ const useDropdown_unstable = (props, ref)=>{
|
|
|
127
69
|
listbox: _Listbox.Listbox
|
|
128
70
|
},
|
|
129
71
|
root: rootSlot,
|
|
130
|
-
button:
|
|
131
|
-
listbox:
|
|
72
|
+
button: trigger,
|
|
73
|
+
listbox: open ? listbox : undefined,
|
|
132
74
|
expandIcon: _reactutilities.slot.optional(props.expandIcon, {
|
|
133
75
|
renderByDefault: true,
|
|
134
76
|
defaultProps: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useDropdown.js"],"sourcesContent":["import * as React from 'react';\nimport { useFieldControlProps_unstable } from '@fluentui/react-field';\nimport { ChevronDownRegular as ChevronDownIcon } from '@fluentui/react-icons';\nimport { getPartitionedNativeProps, mergeCallbacks, useMergedRefs, useTimeout, slot } from '@fluentui/react-utilities';\nimport { getDropdownActionFromKey } from '../../utils/dropdownKeyActions';\nimport { useComboboxBaseState } from '../../utils/useComboboxBaseState';\nimport { useComboboxPositioning } from '../../utils/useComboboxPositioning';\nimport { useTriggerListboxSlots } from '../../utils/useTriggerListboxSlots';\nimport { Listbox } from '../Listbox/Listbox';\n/**\n * Create the state required to render Dropdown.\n *\n * The returned state can be modified with hooks such as useDropdownStyles_unstable,\n * before being passed to renderDropdown_unstable.\n *\n * @param props - props from this instance of Dropdown\n * @param ref - reference to root HTMLElement of Dropdown\n */ export const useDropdown_unstable = (props, ref)=>{\n // Merge props from surrounding <Field>, if any\n props = useFieldControlProps_unstable(props, {\n supportsLabelFor: true,\n supportsSize: true\n });\n const baseState = useComboboxBaseState(props);\n const { activeOption, getIndexOfId, getOptionsMatchingText, open, setActiveOption, setFocusVisible, setOpen } = baseState;\n const { primary: triggerNativeProps, root: rootNativeProps } = getPartitionedNativeProps({\n props,\n primarySlotTagName: 'button',\n excludedPropNames: [\n 'children'\n ]\n });\n const [comboboxPopupRef, comboboxTargetRef] = useComboboxPositioning(props);\n // jump to matching option based on typing\n const searchString = React.useRef('');\n const [setKeyTimeout, clearKeyTimeout] = useTimeout();\n const getNextMatchingOption = ()=>{\n // first check for matches for the full searchString\n let matcher = (optionText)=>optionText.toLowerCase().indexOf(searchString.current) === 0;\n let matches = getOptionsMatchingText(matcher);\n let startIndex = activeOption ? getIndexOfId(activeOption.id) : 0;\n // if the dropdown is already open and the searchstring is a single character,\n // then look after the current activeOption for letters\n // this is so slowly typing the same letter will cycle through matches\n if (open && searchString.current.length === 1) {\n startIndex++;\n }\n // if there are no direct matches, check if the search is all the same letter, e.g. \"aaa\"\n if (!matches.length) {\n const letters = searchString.current.split('');\n const allSameLetter = letters.length && letters.every((letter)=>letter === letters[0]);\n // if the search is all the same letter, cycle through options starting with that letter\n if (allSameLetter) {\n startIndex++;\n matcher = (optionText)=>optionText.toLowerCase().indexOf(letters[0]) === 0;\n matches = getOptionsMatchingText(matcher);\n }\n }\n // if there is an active option and multiple matches,\n // return first matching option after the current active option, looping back to the top\n if (matches.length > 1 && activeOption) {\n const nextMatch = matches.find((option)=>getIndexOfId(option.id) >= startIndex);\n return nextMatch !== null && nextMatch !== void 0 ? nextMatch : matches[0];\n }\n var _matches_;\n return (_matches_ = matches[0]) !== null && _matches_ !== void 0 ? _matches_ : undefined;\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 const nextOption = getNextMatchingOption();\n setActiveOption(nextOption);\n setFocusVisible(true);\n }\n };\n // resolve button and listbox slot props\n let triggerSlot;\n let listboxSlot;\n triggerSlot = slot.always(props.button, {\n defaultProps: {\n type: 'button',\n tabIndex: 0,\n children: baseState.value || props.placeholder,\n ...triggerNativeProps\n },\n elementType: 'button'\n });\n triggerSlot.onKeyDown = mergeCallbacks(onTriggerKeyDown, triggerSlot.onKeyDown);\n listboxSlot = baseState.open || baseState.hasFocus ? slot.optional(props.listbox, {\n renderByDefault: true,\n defaultProps: {\n children: props.children\n },\n elementType: Listbox\n }) : undefined;\n [triggerSlot, listboxSlot] = useTriggerListboxSlots(props, baseState, ref, triggerSlot, listboxSlot);\n const listboxRef = useMergedRefs(listboxSlot === null || listboxSlot === void 0 ? void 0 : listboxSlot.ref, comboboxPopupRef);\n if (listboxSlot) {\n listboxSlot.ref = listboxRef;\n }\n const rootSlot = slot.always(props.root, {\n defaultProps: {\n 'aria-owns': !props.inlinePopup ? listboxSlot === null || listboxSlot === void 0 ? void 0 : listboxSlot.id : undefined,\n children: props.children,\n ...rootNativeProps\n },\n elementType: 'div'\n });\n rootSlot.ref = useMergedRefs(rootSlot.ref, comboboxTargetRef);\n const state = {\n components: {\n root: 'div',\n button: 'button',\n expandIcon: 'span',\n listbox: Listbox\n },\n root: rootSlot,\n button: triggerSlot,\n listbox: listboxSlot,\n expandIcon: slot.optional(props.expandIcon, {\n renderByDefault: true,\n defaultProps: {\n children: /*#__PURE__*/ React.createElement(ChevronDownIcon, null)\n },\n elementType: 'span'\n }),\n placeholderVisible: !baseState.value && !!props.placeholder,\n ...baseState\n };\n return state;\n};\n"],"names":["useDropdown_unstable","props","ref","useFieldControlProps_unstable","supportsLabelFor","supportsSize","baseState","useComboboxBaseState","activeOption","getIndexOfId","getOptionsMatchingText","open","setActiveOption","setFocusVisible","setOpen","primary","triggerNativeProps","root","rootNativeProps","getPartitionedNativeProps","primarySlotTagName","excludedPropNames","comboboxPopupRef","comboboxTargetRef","useComboboxPositioning","searchString","React","useRef","setKeyTimeout","clearKeyTimeout","useTimeout","getNextMatchingOption","matcher","optionText","toLowerCase","indexOf","current","matches","startIndex","id","length","letters","split","allSameLetter","every","letter","nextMatch","find","option","_matches_","undefined","onTriggerKeyDown","ev","getDropdownActionFromKey","key","nextOption","triggerSlot","listboxSlot","slot","always","button","defaultProps","type","tabIndex","children","value","placeholder","elementType","onKeyDown","mergeCallbacks","hasFocus","optional","listbox","renderByDefault","Listbox","useTriggerListboxSlots","listboxRef","useMergedRefs","rootSlot","inlinePopup","state","components","expandIcon","createElement","ChevronDownIcon","placeholderVisible"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["useDropdown.js"],"sourcesContent":["import * as React from 'react';\nimport { useFieldControlProps_unstable } from '@fluentui/react-field';\nimport { ChevronDownRegular as ChevronDownIcon } from '@fluentui/react-icons';\nimport { getPartitionedNativeProps, 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 { useButtonTriggerSlot } from './useButtonTriggerSlot';\n/**\n * Create the state required to render Dropdown.\n *\n * The returned state can be modified with hooks such as useDropdownStyles_unstable,\n * before being passed to renderDropdown_unstable.\n *\n * @param props - props from this instance of Dropdown\n * @param ref - reference to root HTMLElement of Dropdown\n */ export const useDropdown_unstable = (props, ref)=>{\n // Merge props from surrounding <Field>, if any\n props = useFieldControlProps_unstable(props, {\n supportsLabelFor: true,\n supportsSize: true\n });\n const baseState = useComboboxBaseState(props);\n const { open } = baseState;\n const { primary: triggerNativeProps, root: rootNativeProps } = getPartitionedNativeProps({\n props,\n primarySlotTagName: 'button',\n excludedPropNames: [\n 'children'\n ]\n });\n const [comboboxPopupRef, comboboxTargetRef] = useComboboxPositioning(props);\n const triggerRef = React.useRef(null);\n const listbox = useListboxSlot(props.listbox, comboboxPopupRef, {\n state: baseState,\n triggerRef,\n defaultProps: {\n children: props.children\n }\n });\n var _props_button;\n const trigger = useButtonTriggerSlot((_props_button = props.button) !== null && _props_button !== void 0 ? _props_button : {}, useMergedRefs(triggerRef, ref), {\n state: baseState,\n defaultProps: {\n type: 'button',\n tabIndex: 0,\n children: baseState.value || props.placeholder,\n ...triggerNativeProps\n }\n });\n const rootSlot = slot.always(props.root, {\n defaultProps: {\n 'aria-owns': !props.inlinePopup && open ? listbox === null || listbox === void 0 ? void 0 : listbox.id : undefined,\n children: props.children,\n ...rootNativeProps\n },\n elementType: 'div'\n });\n rootSlot.ref = useMergedRefs(rootSlot.ref, comboboxTargetRef);\n const state = {\n components: {\n root: 'div',\n button: 'button',\n expandIcon: 'span',\n listbox: Listbox\n },\n root: rootSlot,\n button: trigger,\n listbox: open ? listbox : undefined,\n expandIcon: slot.optional(props.expandIcon, {\n renderByDefault: true,\n defaultProps: {\n children: /*#__PURE__*/ React.createElement(ChevronDownIcon, null)\n },\n elementType: 'span'\n }),\n placeholderVisible: !baseState.value && !!props.placeholder,\n ...baseState\n };\n return state;\n};\n"],"names":["useDropdown_unstable","props","ref","useFieldControlProps_unstable","supportsLabelFor","supportsSize","baseState","useComboboxBaseState","open","primary","triggerNativeProps","root","rootNativeProps","getPartitionedNativeProps","primarySlotTagName","excludedPropNames","comboboxPopupRef","comboboxTargetRef","useComboboxPositioning","triggerRef","React","useRef","listbox","useListboxSlot","state","defaultProps","children","_props_button","trigger","useButtonTriggerSlot","button","useMergedRefs","type","tabIndex","value","placeholder","rootSlot","slot","always","inlinePopup","id","undefined","elementType","components","expandIcon","Listbox","optional","renderByDefault","createElement","ChevronDownIcon","placeholderVisible"],"mappings":";;;;+BAiBiBA;;;eAAAA;;;;iEAjBM;4BACuB;4BACQ;gCACS;sCAC1B;wCACE;yBACf;gCACO;sCACM;AAS1B,MAAMA,uBAAuB,CAACC,OAAOC;IAC5C,+CAA+C;IAC/CD,QAAQE,IAAAA,yCAA6B,EAACF,OAAO;QACzCG,kBAAkB;QAClBC,cAAc;IAClB;IACA,MAAMC,YAAYC,IAAAA,0CAAoB,EAACN;IACvC,MAAM,EAAEO,IAAI,EAAE,GAAGF;IACjB,MAAM,EAAEG,SAASC,kBAAkB,EAAEC,MAAMC,eAAe,EAAE,GAAGC,IAAAA,yCAAyB,EAAC;QACrFZ;QACAa,oBAAoB;QACpBC,mBAAmB;YACf;SACH;IACL;IACA,MAAM,CAACC,kBAAkBC,kBAAkB,GAAGC,IAAAA,8CAAsB,EAACjB;IACrE,MAAMkB,aAAaC,OAAMC,MAAM,CAAC;IAChC,MAAMC,UAAUC,IAAAA,8BAAc,EAACtB,MAAMqB,OAAO,EAAEN,kBAAkB;QAC5DQ,OAAOlB;QACPa;QACAM,cAAc;YACVC,UAAUzB,MAAMyB,QAAQ;QAC5B;IACJ;IACA,IAAIC;IACJ,MAAMC,UAAUC,IAAAA,0CAAoB,EAAC,AAACF,CAAAA,gBAAgB1B,MAAM6B,MAAM,AAAD,MAAO,QAAQH,kBAAkB,KAAK,IAAIA,gBAAgB,CAAC,GAAGI,IAAAA,6BAAa,EAACZ,YAAYjB,MAAM;QAC3JsB,OAAOlB;QACPmB,cAAc;YACVO,MAAM;YACNC,UAAU;YACVP,UAAUpB,UAAU4B,KAAK,IAAIjC,MAAMkC,WAAW;YAC9C,GAAGzB,kBAAkB;QACzB;IACJ;IACA,MAAM0B,WAAWC,oBAAI,CAACC,MAAM,CAACrC,MAAMU,IAAI,EAAE;QACrCc,cAAc;YACV,aAAa,CAACxB,MAAMsC,WAAW,IAAI/B,OAAOc,YAAY,QAAQA,YAAY,KAAK,IAAI,KAAK,IAAIA,QAAQkB,EAAE,GAAGC;YACzGf,UAAUzB,MAAMyB,QAAQ;YACxB,GAAGd,eAAe;QACtB;QACA8B,aAAa;IACjB;IACAN,SAASlC,GAAG,GAAG6B,IAAAA,6BAAa,EAACK,SAASlC,GAAG,EAAEe;IAC3C,MAAMO,QAAQ;QACVmB,YAAY;YACRhC,MAAM;YACNmB,QAAQ;YACRc,YAAY;YACZtB,SAASuB,gBAAO;QACpB;QACAlC,MAAMyB;QACNN,QAAQF;QACRN,SAASd,OAAOc,UAAUmB;QAC1BG,YAAYP,oBAAI,CAACS,QAAQ,CAAC7C,MAAM2C,UAAU,EAAE;YACxCG,iBAAiB;YACjBtB,cAAc;gBACVC,UAAU,WAAW,GAAGN,OAAM4B,aAAa,CAACC,8BAAe,EAAE;YACjE;YACAP,aAAa;QACjB;QACAQ,oBAAoB,CAAC5C,UAAU4B,KAAK,IAAI,CAAC,CAACjC,MAAMkC,WAAW;QAC3D,GAAG7B,SAAS;IAChB;IACA,OAAOkB;AACX"}
|
|
@@ -61,7 +61,29 @@ const optionClassNames = {
|
|
|
61
61
|
],
|
|
62
62
|
qhf8xq: "f10pi13n",
|
|
63
63
|
Jwef8y: "f1knas48",
|
|
64
|
-
|
|
64
|
+
Bi91k9c: "feu1g3u",
|
|
65
|
+
zqbkvg: "fo79ri9",
|
|
66
|
+
h82x05: [
|
|
67
|
+
"f1osiabc",
|
|
68
|
+
"f1e8le25"
|
|
69
|
+
],
|
|
70
|
+
cqj998: "f1yusjty",
|
|
71
|
+
j3hlsh: [
|
|
72
|
+
"f1e8le25",
|
|
73
|
+
"f1osiabc"
|
|
74
|
+
],
|
|
75
|
+
ecr2s2: "fb40n2d",
|
|
76
|
+
lj723h: "f1g4hkjv",
|
|
77
|
+
Btxx2vb: "f1lnr2zp",
|
|
78
|
+
sltcwy: [
|
|
79
|
+
"f1ogfk9z",
|
|
80
|
+
"f1g7j8ec"
|
|
81
|
+
],
|
|
82
|
+
dnwvvm: "fiuf46r",
|
|
83
|
+
Blyvkvs: [
|
|
84
|
+
"f1g7j8ec",
|
|
85
|
+
"f1ogfk9z"
|
|
86
|
+
]
|
|
65
87
|
},
|
|
66
88
|
active: {
|
|
67
89
|
Bsft5z2: "f13zj6fq",
|
|
@@ -128,7 +150,29 @@ const optionClassNames = {
|
|
|
128
150
|
disabled: {
|
|
129
151
|
sj55zd: "f1s2aq7o",
|
|
130
152
|
Jwef8y: "f9ql6rf",
|
|
153
|
+
Bi91k9c: "fvgxktp",
|
|
154
|
+
zqbkvg: "f185j3qj",
|
|
155
|
+
h82x05: [
|
|
156
|
+
"f1dligi3",
|
|
157
|
+
"f1vydzie"
|
|
158
|
+
],
|
|
159
|
+
cqj998: "fjw1di3",
|
|
160
|
+
j3hlsh: [
|
|
161
|
+
"f1vydzie",
|
|
162
|
+
"f1dligi3"
|
|
163
|
+
],
|
|
131
164
|
ecr2s2: "fgj9um3",
|
|
165
|
+
lj723h: "f19wldhg",
|
|
166
|
+
Btxx2vb: "f1ss0kt2",
|
|
167
|
+
sltcwy: [
|
|
168
|
+
"f1t6oli3",
|
|
169
|
+
"fjy9ci8"
|
|
170
|
+
],
|
|
171
|
+
dnwvvm: "fresaxk",
|
|
172
|
+
Blyvkvs: [
|
|
173
|
+
"fjy9ci8",
|
|
174
|
+
"f1t6oli3"
|
|
175
|
+
],
|
|
132
176
|
Bbusuzp: "f1dcs8yz"
|
|
133
177
|
},
|
|
134
178
|
selected: {},
|
|
@@ -222,6 +266,18 @@ const optionClassNames = {
|
|
|
222
266
|
checkDisabled: {
|
|
223
267
|
sj55zd: "f1s2aq7o",
|
|
224
268
|
Bbusuzp: "f1dcs8yz"
|
|
269
|
+
},
|
|
270
|
+
multiselectCheckDisabled: {
|
|
271
|
+
g2u3we: "f1r1t4y1",
|
|
272
|
+
h3c5rm: [
|
|
273
|
+
"fmj8ijw",
|
|
274
|
+
"figx54m"
|
|
275
|
+
],
|
|
276
|
+
B9xav0g: "f360ss8",
|
|
277
|
+
zhjwy3: [
|
|
278
|
+
"figx54m",
|
|
279
|
+
"fmj8ijw"
|
|
280
|
+
]
|
|
225
281
|
}
|
|
226
282
|
}, {
|
|
227
283
|
d: [
|
|
@@ -302,15 +358,39 @@ const optionClassNames = {
|
|
|
302
358
|
".f3xi7mh{border-top-color:var(--colorCompoundBrandBackground);}",
|
|
303
359
|
".ftovhe4{border-right-color:var(--colorCompoundBrandBackground);}",
|
|
304
360
|
".f1wczvin{border-left-color:var(--colorCompoundBrandBackground);}",
|
|
305
|
-
".f68vbr6{border-bottom-color:var(--colorCompoundBrandBackground);}"
|
|
361
|
+
".f68vbr6{border-bottom-color:var(--colorCompoundBrandBackground);}",
|
|
362
|
+
".f1r1t4y1{border-top-color:var(--colorNeutralForegroundDisabled);}",
|
|
363
|
+
".fmj8ijw{border-right-color:var(--colorNeutralForegroundDisabled);}",
|
|
364
|
+
".figx54m{border-left-color:var(--colorNeutralForegroundDisabled);}",
|
|
365
|
+
".f360ss8{border-bottom-color:var(--colorNeutralForegroundDisabled);}"
|
|
306
366
|
],
|
|
307
367
|
h: [
|
|
308
368
|
".f1knas48:hover{background-color:var(--colorNeutralBackground1Hover);}",
|
|
309
|
-
".
|
|
369
|
+
".feu1g3u:hover{color:var(--colorNeutralForeground1Hover);}",
|
|
370
|
+
".fo79ri9:hover .fui-Option__checkIcon{border-top-color:var(--colorNeutralForeground1Hover);}",
|
|
371
|
+
".f1osiabc:hover .fui-Option__checkIcon{border-right-color:var(--colorNeutralForeground1Hover);}",
|
|
372
|
+
".f1e8le25:hover .fui-Option__checkIcon{border-left-color:var(--colorNeutralForeground1Hover);}",
|
|
373
|
+
".f1yusjty:hover .fui-Option__checkIcon{border-bottom-color:var(--colorNeutralForeground1Hover);}",
|
|
374
|
+
".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}",
|
|
375
|
+
".fvgxktp:hover{color:var(--colorNeutralForegroundDisabled);}",
|
|
376
|
+
".f185j3qj:hover .fui-Option__checkIcon{border-top-color:var(--colorNeutralForegroundDisabled);}",
|
|
377
|
+
".f1dligi3:hover .fui-Option__checkIcon{border-right-color:var(--colorNeutralForegroundDisabled);}",
|
|
378
|
+
".f1vydzie:hover .fui-Option__checkIcon{border-left-color:var(--colorNeutralForegroundDisabled);}",
|
|
379
|
+
".fjw1di3:hover .fui-Option__checkIcon{border-bottom-color:var(--colorNeutralForegroundDisabled);}"
|
|
310
380
|
],
|
|
311
381
|
a: [
|
|
312
382
|
".fb40n2d:active{background-color:var(--colorNeutralBackground1Pressed);}",
|
|
313
|
-
".
|
|
383
|
+
".f1g4hkjv:active{color:var(--colorNeutralForeground1Pressed);}",
|
|
384
|
+
".f1lnr2zp:active .fui-Option__checkIcon{border-top-color:var(--colorNeutralForeground1Hover);}",
|
|
385
|
+
".f1ogfk9z:active .fui-Option__checkIcon{border-right-color:var(--colorNeutralForeground1Hover);}",
|
|
386
|
+
".f1g7j8ec:active .fui-Option__checkIcon{border-left-color:var(--colorNeutralForeground1Hover);}",
|
|
387
|
+
".fiuf46r:active .fui-Option__checkIcon{border-bottom-color:var(--colorNeutralForeground1Hover);}",
|
|
388
|
+
".fgj9um3:active{background-color:var(--colorTransparentBackground);}",
|
|
389
|
+
".f19wldhg:active{color:var(--colorNeutralForegroundDisabled);}",
|
|
390
|
+
".f1ss0kt2:active .fui-Option__checkIcon{border-top-color:var(--colorNeutralForegroundDisabled);}",
|
|
391
|
+
".f1t6oli3:active .fui-Option__checkIcon{border-right-color:var(--colorNeutralForegroundDisabled);}",
|
|
392
|
+
".fjy9ci8:active .fui-Option__checkIcon{border-left-color:var(--colorNeutralForegroundDisabled);}",
|
|
393
|
+
".fresaxk:active .fui-Option__checkIcon{border-bottom-color:var(--colorNeutralForegroundDisabled);}"
|
|
314
394
|
],
|
|
315
395
|
m: [
|
|
316
396
|
[
|
|
@@ -326,7 +406,7 @@ const useOptionStyles_unstable = (state)=>{
|
|
|
326
406
|
const styles = useStyles();
|
|
327
407
|
state.root.className = (0, _react.mergeClasses)(optionClassNames.root, styles.root, active && focusVisible && styles.active, disabled && styles.disabled, selected && styles.selected, state.root.className);
|
|
328
408
|
if (state.checkIcon) {
|
|
329
|
-
state.checkIcon.className = (0, _react.mergeClasses)(optionClassNames.checkIcon, styles.checkIcon, multiselect && styles.multiselectCheck, selected && styles.selectedCheck, selected && multiselect && styles.selectedMultiselectCheck, disabled && styles.checkDisabled, state.checkIcon.className);
|
|
409
|
+
state.checkIcon.className = (0, _react.mergeClasses)(optionClassNames.checkIcon, styles.checkIcon, multiselect && styles.multiselectCheck, selected && styles.selectedCheck, selected && multiselect && styles.selectedMultiselectCheck, disabled && styles.checkDisabled, disabled && multiselect && styles.multiselectCheckDisabled, state.checkIcon.className);
|
|
330
410
|
}
|
|
331
411
|
return state;
|
|
332
412
|
}; //# sourceMappingURL=useOptionStyles.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useOptionStyles.styles.js"],"sourcesContent":["import { tokens } from '@fluentui/react-theme';\nimport { __styles, mergeClasses, shorthands } from '@griffel/react';\nexport const optionClassNames = {\n root: 'fui-Option',\n checkIcon: 'fui-Option__checkIcon'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n Bt984gj: \"f122n59\",\n Bbmb7ep: [\"f1aa9q02\", \"f16jpd5f\"],\n Beyfa6y: [\"f16jpd5f\", \"f1aa9q02\"],\n B7oj6ja: [\"f1jar5jt\", \"fyu767a\"],\n Btl43ni: [\"fyu767a\", \"f1jar5jt\"],\n sj55zd: \"f19n0e5\",\n i8kkvl: \"f1ufnopg\",\n Bceei9c: \"f1k6fduh\",\n mc9l5x: \"f22iagw\",\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fkhj508\",\n Bg96gwp: \"f1i3iumi\",\n z8tnut: \"fp2oml8\",\n z189sj: [\"f1vdfbxk\", \"f1f5gg8d\"],\n Byoj8tv: \"f1tdddsa\",\n uwmqm3: [\"f1f5gg8d\", \"f1vdfbxk\"],\n qhf8xq: \"f10pi13n\",\n Jwef8y: \"f1knas48\",\n ecr2s2: \"fb40n2d\"\n },\n active: {\n Bsft5z2: \"f13zj6fq\",\n E3zdtr: \"f1mdlcz9\",\n B80jsxd: \"f1nwj1ja\",\n t2ki1e: \"ffmd2fr\",\n Bm2nyyq: \"f8rth92\",\n Barhvk9: [\"flthirb\", \"ftkbnf5\"],\n Bw17bha: \"f1lh990p\",\n vfts7: [\"ftkbnf5\", \"flthirb\"],\n xrcqlc: \"fc9v8v1\",\n Ihftqj: [\"f1mwfetb\", \"f18mat8f\"],\n Bcgy8vk: \"f1cb6c3\",\n Bhxzhr1: [\"f18mat8f\", \"f1mwfetb\"],\n B3778ie: [\"f1ibwz09\", \"f1kp91vd\"],\n d9w3h3: [\"f1kp91vd\", \"f1ibwz09\"],\n Bl18szs: [\"f1pix4dl\", \"f13nd1z4\"],\n B4j8arr: [\"f13nd1z4\", \"f1pix4dl\"],\n B0n5ga8: \"f1qw5sz7\",\n s924m2: [\"f19va7ni\", \"f1a9v3mw\"],\n B1q35kw: \"fkkziue\",\n Gp14am: [\"f1a9v3mw\", \"f19va7ni\"],\n bn5sak: \"f1a97anr\",\n By385i5: \"f5226zp\",\n Eqx8gd: [\"fa2bdqt\", \"fei6g0k\"],\n B1piin3: [\"fei6g0k\", \"fa2bdqt\"]\n },\n disabled: {\n sj55zd: \"f1s2aq7o\",\n Jwef8y: \"f9ql6rf\",\n ecr2s2: \"fgj9um3\",\n Bbusuzp: \"f1dcs8yz\"\n },\n selected: {},\n checkIcon: {\n Be2twd7: \"fod5ikn\",\n Frg6f3: [\"f18b9hdq\", \"fn6qj8t\"],\n t21cq0: [\"f1xk557c\", \"f1h9en5y\"],\n Bcdw1i0: \"fd7fpy0\",\n Bo70h7d: \"fvc9v3g\"\n },\n selectedCheck: {\n Bcdw1i0: \"f1022m68\"\n },\n multiselectCheck: {\n B4j52fo: \"f192inf7\",\n Bekrc4i: [\"f5tn483\", \"f1ojsxk5\"],\n Bn0qgzm: \"f1vxd6vx\",\n ibv6hh: [\"f1ojsxk5\", \"f5tn483\"],\n icvyot: \"fzkkow9\",\n vrafjx: [\"fcdblym\", \"fjik90z\"],\n oivjwe: \"fg706s2\",\n wvpqe5: [\"fjik90z\", \"fcdblym\"],\n g2u3we: \"fq0vr37\",\n h3c5rm: [\"f1byw159\", \"f11cr0be\"],\n B9xav0g: \"f1c1zstj\",\n zhjwy3: [\"f11cr0be\", \"f1byw159\"],\n Bbmb7ep: [\"f1g3puop\", \"fi2rrw2\"],\n Beyfa6y: [\"fi2rrw2\", \"f1g3puop\"],\n B7oj6ja: [\"f1rstyi9\", \"f1s4nn1u\"],\n Btl43ni: [\"f1s4nn1u\", \"f1rstyi9\"],\n B7ck84d: \"f1ewtqcl\",\n mc9l5x: \"f22iagw\",\n Bt984gj: \"f122n59\",\n Brf1p80: \"f4d9j23\",\n Bkfmm31: \"f1w9h62z\",\n Be2twd7: \"f1ugzwwg\",\n Bqenvij: \"fd461yt\",\n a9b677: \"fjw5fx7\",\n Bcdw1i0: \"f1022m68\"\n },\n selectedMultiselectCheck: {\n De3pzq: \"ftywsgz\",\n sj55zd: \"fqpbvvt\",\n g2u3we: \"f3xi7mh\",\n h3c5rm: [\"ftovhe4\", \"f1wczvin\"],\n B9xav0g: \"f68vbr6\",\n zhjwy3: [\"f1wczvin\", \"ftovhe4\"]\n },\n checkDisabled: {\n sj55zd: \"f1s2aq7o\",\n Bbusuzp: \"f1dcs8yz\"\n }\n}, {\n d: [\".f122n59{align-items:center;}\", \".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}\", \".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}\", \".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}\", \".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}\", \".f19n0e5{color:var(--colorNeutralForeground1);}\", \".f1ufnopg{column-gap:var(--spacingHorizontalXS);}\", \".f1k6fduh{cursor:pointer;}\", \".f22iagw{display:flex;}\", \".fk6fouc{font-family:var(--fontFamilyBase);}\", \".fkhj508{font-size:var(--fontSizeBase300);}\", \".f1i3iumi{line-height:var(--lineHeightBase300);}\", \".fp2oml8{padding-top:var(--spacingVerticalSNudge);}\", \".f1vdfbxk{padding-right:var(--spacingHorizontalS);}\", \".f1f5gg8d{padding-left:var(--spacingHorizontalS);}\", \".f1tdddsa{padding-bottom:var(--spacingVerticalSNudge);}\", \".f10pi13n{position:relative;}\", \".f13zj6fq::after{content:\\\"\\\";}\", \".f1mdlcz9::after{position:absolute;}\", \".f1nwj1ja::after{pointer-events:none;}\", \".ffmd2fr::after{z-index:1;}\", \".f8rth92::after{border-top-style:solid;}\", \".flthirb::after{border-right-style:solid;}\", \".ftkbnf5::after{border-left-style:solid;}\", \".f1lh990p::after{border-bottom-style:solid;}\", \".fc9v8v1::after{border-top-width:2px;}\", \".f1mwfetb::after{border-right-width:2px;}\", \".f18mat8f::after{border-left-width:2px;}\", \".f1cb6c3::after{border-bottom-width:2px;}\", \".f1ibwz09::after{border-bottom-right-radius:var(--borderRadiusMedium);}\", \".f1kp91vd::after{border-bottom-left-radius:var(--borderRadiusMedium);}\", \".f1pix4dl::after{border-top-right-radius:var(--borderRadiusMedium);}\", \".f13nd1z4::after{border-top-left-radius:var(--borderRadiusMedium);}\", \".f1qw5sz7::after{border-top-color:var(--colorStrokeFocus2);}\", \".f19va7ni::after{border-right-color:var(--colorStrokeFocus2);}\", \".f1a9v3mw::after{border-left-color:var(--colorStrokeFocus2);}\", \".fkkziue::after{border-bottom-color:var(--colorStrokeFocus2);}\", \".f1a97anr::after{top:-2px;}\", \".f5226zp::after{bottom:-2px;}\", \".fa2bdqt::after{left:-2px;}\", \".fei6g0k::after{right:-2px;}\", \".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}\", \".fod5ikn{font-size:var(--fontSizeBase400);}\", \".f18b9hdq{margin-left:calc(var(--spacingHorizontalXXS) * -1);}\", \".fn6qj8t{margin-right:calc(var(--spacingHorizontalXXS) * -1);}\", \".f1xk557c{margin-right:var(--spacingHorizontalXXS);}\", \".f1h9en5y{margin-left:var(--spacingHorizontalXXS);}\", \".fd7fpy0{visibility:hidden;}\", \".fvc9v3g svg{display:block;}\", \".f1022m68{visibility:visible;}\", \".f192inf7{border-top-width:var(--strokeWidthThin);}\", \".f5tn483{border-right-width:var(--strokeWidthThin);}\", \".f1ojsxk5{border-left-width:var(--strokeWidthThin);}\", \".f1vxd6vx{border-bottom-width:var(--strokeWidthThin);}\", \".fzkkow9{border-top-style:solid;}\", \".fcdblym{border-right-style:solid;}\", \".fjik90z{border-left-style:solid;}\", \".fg706s2{border-bottom-style:solid;}\", \".fq0vr37{border-top-color:var(--colorNeutralStrokeAccessible);}\", \".f1byw159{border-right-color:var(--colorNeutralStrokeAccessible);}\", \".f11cr0be{border-left-color:var(--colorNeutralStrokeAccessible);}\", \".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}\", \".f1g3puop{border-bottom-right-radius:var(--borderRadiusSmall);}\", \".fi2rrw2{border-bottom-left-radius:var(--borderRadiusSmall);}\", \".f1rstyi9{border-top-right-radius:var(--borderRadiusSmall);}\", \".f1s4nn1u{border-top-left-radius:var(--borderRadiusSmall);}\", \".f1ewtqcl{box-sizing:border-box;}\", \".f4d9j23{justify-content:center;}\", \".f1w9h62z{fill:currentColor;}\", \".f1ugzwwg{font-size:12px;}\", \".fd461yt{height:16px;}\", \".fjw5fx7{width:16px;}\", \".ftywsgz{background-color:var(--colorCompoundBrandBackground);}\", \".fqpbvvt{color:var(--colorNeutralForegroundInverted);}\", \".f3xi7mh{border-top-color:var(--colorCompoundBrandBackground);}\", \".ftovhe4{border-right-color:var(--colorCompoundBrandBackground);}\", \".f1wczvin{border-left-color:var(--colorCompoundBrandBackground);}\", \".f68vbr6{border-bottom-color:var(--colorCompoundBrandBackground);}\"],\n h: [\".f1knas48:hover{background-color:var(--colorNeutralBackground1Hover);}\", \".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}\"],\n a: [\".fb40n2d:active{background-color:var(--colorNeutralBackground1Pressed);}\", \".fgj9um3:active{background-color:var(--colorTransparentBackground);}\"],\n m: [[\"@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}\", {\n m: \"(forced-colors: active)\"\n }]]\n});\n/**\n * Apply styling to the Option slots based on the state\n */\nexport const useOptionStyles_unstable = state => {\n const {\n active,\n disabled,\n focusVisible,\n multiselect,\n selected\n } = state;\n const styles = useStyles();\n state.root.className = mergeClasses(optionClassNames.root, styles.root, active && focusVisible && styles.active, disabled && styles.disabled, selected && styles.selected, state.root.className);\n if (state.checkIcon) {\n state.checkIcon.className = mergeClasses(optionClassNames.checkIcon, styles.checkIcon, multiselect && styles.multiselectCheck, selected && styles.selectedCheck, selected && multiselect && styles.selectedMultiselectCheck, disabled && styles.checkDisabled, state.checkIcon.className);\n }\n return state;\n};\n//# sourceMappingURL=useOptionStyles.styles.js.map"],"names":["optionClassNames","useOptionStyles_unstable","root","checkIcon","useStyles","__styles","Bt984gj","Bbmb7ep","Beyfa6y","B7oj6ja","Btl43ni","sj55zd","i8kkvl","Bceei9c","mc9l5x","Bahqtrf","Be2twd7","Bg96gwp","z8tnut","z189sj","Byoj8tv","uwmqm3","qhf8xq","Jwef8y","ecr2s2","active","Bsft5z2","E3zdtr","B80jsxd","t2ki1e","Bm2nyyq","Barhvk9","Bw17bha","vfts7","xrcqlc","Ihftqj","Bcgy8vk","Bhxzhr1","B3778ie","d9w3h3","Bl18szs","B4j8arr","B0n5ga8","s924m2","B1q35kw","Gp14am","bn5sak","By385i5","Eqx8gd","B1piin3","disabled","Bbusuzp","selected","Frg6f3","t21cq0","Bcdw1i0","Bo70h7d","selectedCheck","multiselectCheck","B4j52fo","Bekrc4i","Bn0qgzm","ibv6hh","icvyot","vrafjx","oivjwe","wvpqe5","g2u3we","h3c5rm","B9xav0g","zhjwy3","B7ck84d","Brf1p80","Bkfmm31","Bqenvij","a9b677","selectedMultiselectCheck","De3pzq","checkDisabled","d","h","a","m","state","focusVisible","multiselect","styles","className","mergeClasses"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["useOptionStyles.styles.js"],"sourcesContent":["import { tokens } from '@fluentui/react-theme';\nimport { __styles, mergeClasses, shorthands } from '@griffel/react';\nexport const optionClassNames = {\n root: 'fui-Option',\n checkIcon: 'fui-Option__checkIcon'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n Bt984gj: \"f122n59\",\n Bbmb7ep: [\"f1aa9q02\", \"f16jpd5f\"],\n Beyfa6y: [\"f16jpd5f\", \"f1aa9q02\"],\n B7oj6ja: [\"f1jar5jt\", \"fyu767a\"],\n Btl43ni: [\"fyu767a\", \"f1jar5jt\"],\n sj55zd: \"f19n0e5\",\n i8kkvl: \"f1ufnopg\",\n Bceei9c: \"f1k6fduh\",\n mc9l5x: \"f22iagw\",\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fkhj508\",\n Bg96gwp: \"f1i3iumi\",\n z8tnut: \"fp2oml8\",\n z189sj: [\"f1vdfbxk\", \"f1f5gg8d\"],\n Byoj8tv: \"f1tdddsa\",\n uwmqm3: [\"f1f5gg8d\", \"f1vdfbxk\"],\n qhf8xq: \"f10pi13n\",\n Jwef8y: \"f1knas48\",\n Bi91k9c: \"feu1g3u\",\n zqbkvg: \"fo79ri9\",\n h82x05: [\"f1osiabc\", \"f1e8le25\"],\n cqj998: \"f1yusjty\",\n j3hlsh: [\"f1e8le25\", \"f1osiabc\"],\n ecr2s2: \"fb40n2d\",\n lj723h: \"f1g4hkjv\",\n Btxx2vb: \"f1lnr2zp\",\n sltcwy: [\"f1ogfk9z\", \"f1g7j8ec\"],\n dnwvvm: \"fiuf46r\",\n Blyvkvs: [\"f1g7j8ec\", \"f1ogfk9z\"]\n },\n active: {\n Bsft5z2: \"f13zj6fq\",\n E3zdtr: \"f1mdlcz9\",\n B80jsxd: \"f1nwj1ja\",\n t2ki1e: \"ffmd2fr\",\n Bm2nyyq: \"f8rth92\",\n Barhvk9: [\"flthirb\", \"ftkbnf5\"],\n Bw17bha: \"f1lh990p\",\n vfts7: [\"ftkbnf5\", \"flthirb\"],\n xrcqlc: \"fc9v8v1\",\n Ihftqj: [\"f1mwfetb\", \"f18mat8f\"],\n Bcgy8vk: \"f1cb6c3\",\n Bhxzhr1: [\"f18mat8f\", \"f1mwfetb\"],\n B3778ie: [\"f1ibwz09\", \"f1kp91vd\"],\n d9w3h3: [\"f1kp91vd\", \"f1ibwz09\"],\n Bl18szs: [\"f1pix4dl\", \"f13nd1z4\"],\n B4j8arr: [\"f13nd1z4\", \"f1pix4dl\"],\n B0n5ga8: \"f1qw5sz7\",\n s924m2: [\"f19va7ni\", \"f1a9v3mw\"],\n B1q35kw: \"fkkziue\",\n Gp14am: [\"f1a9v3mw\", \"f19va7ni\"],\n bn5sak: \"f1a97anr\",\n By385i5: \"f5226zp\",\n Eqx8gd: [\"fa2bdqt\", \"fei6g0k\"],\n B1piin3: [\"fei6g0k\", \"fa2bdqt\"]\n },\n disabled: {\n sj55zd: \"f1s2aq7o\",\n Jwef8y: \"f9ql6rf\",\n Bi91k9c: \"fvgxktp\",\n zqbkvg: \"f185j3qj\",\n h82x05: [\"f1dligi3\", \"f1vydzie\"],\n cqj998: \"fjw1di3\",\n j3hlsh: [\"f1vydzie\", \"f1dligi3\"],\n ecr2s2: \"fgj9um3\",\n lj723h: \"f19wldhg\",\n Btxx2vb: \"f1ss0kt2\",\n sltcwy: [\"f1t6oli3\", \"fjy9ci8\"],\n dnwvvm: \"fresaxk\",\n Blyvkvs: [\"fjy9ci8\", \"f1t6oli3\"],\n Bbusuzp: \"f1dcs8yz\"\n },\n selected: {},\n checkIcon: {\n Be2twd7: \"fod5ikn\",\n Frg6f3: [\"f18b9hdq\", \"fn6qj8t\"],\n t21cq0: [\"f1xk557c\", \"f1h9en5y\"],\n Bcdw1i0: \"fd7fpy0\",\n Bo70h7d: \"fvc9v3g\"\n },\n selectedCheck: {\n Bcdw1i0: \"f1022m68\"\n },\n multiselectCheck: {\n B4j52fo: \"f192inf7\",\n Bekrc4i: [\"f5tn483\", \"f1ojsxk5\"],\n Bn0qgzm: \"f1vxd6vx\",\n ibv6hh: [\"f1ojsxk5\", \"f5tn483\"],\n icvyot: \"fzkkow9\",\n vrafjx: [\"fcdblym\", \"fjik90z\"],\n oivjwe: \"fg706s2\",\n wvpqe5: [\"fjik90z\", \"fcdblym\"],\n g2u3we: \"fq0vr37\",\n h3c5rm: [\"f1byw159\", \"f11cr0be\"],\n B9xav0g: \"f1c1zstj\",\n zhjwy3: [\"f11cr0be\", \"f1byw159\"],\n Bbmb7ep: [\"f1g3puop\", \"fi2rrw2\"],\n Beyfa6y: [\"fi2rrw2\", \"f1g3puop\"],\n B7oj6ja: [\"f1rstyi9\", \"f1s4nn1u\"],\n Btl43ni: [\"f1s4nn1u\", \"f1rstyi9\"],\n B7ck84d: \"f1ewtqcl\",\n mc9l5x: \"f22iagw\",\n Bt984gj: \"f122n59\",\n Brf1p80: \"f4d9j23\",\n Bkfmm31: \"f1w9h62z\",\n Be2twd7: \"f1ugzwwg\",\n Bqenvij: \"fd461yt\",\n a9b677: \"fjw5fx7\",\n Bcdw1i0: \"f1022m68\"\n },\n selectedMultiselectCheck: {\n De3pzq: \"ftywsgz\",\n sj55zd: \"fqpbvvt\",\n g2u3we: \"f3xi7mh\",\n h3c5rm: [\"ftovhe4\", \"f1wczvin\"],\n B9xav0g: \"f68vbr6\",\n zhjwy3: [\"f1wczvin\", \"ftovhe4\"]\n },\n checkDisabled: {\n sj55zd: \"f1s2aq7o\",\n Bbusuzp: \"f1dcs8yz\"\n },\n multiselectCheckDisabled: {\n g2u3we: \"f1r1t4y1\",\n h3c5rm: [\"fmj8ijw\", \"figx54m\"],\n B9xav0g: \"f360ss8\",\n zhjwy3: [\"figx54m\", \"fmj8ijw\"]\n }\n}, {\n d: [\".f122n59{align-items:center;}\", \".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}\", \".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}\", \".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}\", \".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}\", \".f19n0e5{color:var(--colorNeutralForeground1);}\", \".f1ufnopg{column-gap:var(--spacingHorizontalXS);}\", \".f1k6fduh{cursor:pointer;}\", \".f22iagw{display:flex;}\", \".fk6fouc{font-family:var(--fontFamilyBase);}\", \".fkhj508{font-size:var(--fontSizeBase300);}\", \".f1i3iumi{line-height:var(--lineHeightBase300);}\", \".fp2oml8{padding-top:var(--spacingVerticalSNudge);}\", \".f1vdfbxk{padding-right:var(--spacingHorizontalS);}\", \".f1f5gg8d{padding-left:var(--spacingHorizontalS);}\", \".f1tdddsa{padding-bottom:var(--spacingVerticalSNudge);}\", \".f10pi13n{position:relative;}\", \".f13zj6fq::after{content:\\\"\\\";}\", \".f1mdlcz9::after{position:absolute;}\", \".f1nwj1ja::after{pointer-events:none;}\", \".ffmd2fr::after{z-index:1;}\", \".f8rth92::after{border-top-style:solid;}\", \".flthirb::after{border-right-style:solid;}\", \".ftkbnf5::after{border-left-style:solid;}\", \".f1lh990p::after{border-bottom-style:solid;}\", \".fc9v8v1::after{border-top-width:2px;}\", \".f1mwfetb::after{border-right-width:2px;}\", \".f18mat8f::after{border-left-width:2px;}\", \".f1cb6c3::after{border-bottom-width:2px;}\", \".f1ibwz09::after{border-bottom-right-radius:var(--borderRadiusMedium);}\", \".f1kp91vd::after{border-bottom-left-radius:var(--borderRadiusMedium);}\", \".f1pix4dl::after{border-top-right-radius:var(--borderRadiusMedium);}\", \".f13nd1z4::after{border-top-left-radius:var(--borderRadiusMedium);}\", \".f1qw5sz7::after{border-top-color:var(--colorStrokeFocus2);}\", \".f19va7ni::after{border-right-color:var(--colorStrokeFocus2);}\", \".f1a9v3mw::after{border-left-color:var(--colorStrokeFocus2);}\", \".fkkziue::after{border-bottom-color:var(--colorStrokeFocus2);}\", \".f1a97anr::after{top:-2px;}\", \".f5226zp::after{bottom:-2px;}\", \".fa2bdqt::after{left:-2px;}\", \".fei6g0k::after{right:-2px;}\", \".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}\", \".fod5ikn{font-size:var(--fontSizeBase400);}\", \".f18b9hdq{margin-left:calc(var(--spacingHorizontalXXS) * -1);}\", \".fn6qj8t{margin-right:calc(var(--spacingHorizontalXXS) * -1);}\", \".f1xk557c{margin-right:var(--spacingHorizontalXXS);}\", \".f1h9en5y{margin-left:var(--spacingHorizontalXXS);}\", \".fd7fpy0{visibility:hidden;}\", \".fvc9v3g svg{display:block;}\", \".f1022m68{visibility:visible;}\", \".f192inf7{border-top-width:var(--strokeWidthThin);}\", \".f5tn483{border-right-width:var(--strokeWidthThin);}\", \".f1ojsxk5{border-left-width:var(--strokeWidthThin);}\", \".f1vxd6vx{border-bottom-width:var(--strokeWidthThin);}\", \".fzkkow9{border-top-style:solid;}\", \".fcdblym{border-right-style:solid;}\", \".fjik90z{border-left-style:solid;}\", \".fg706s2{border-bottom-style:solid;}\", \".fq0vr37{border-top-color:var(--colorNeutralStrokeAccessible);}\", \".f1byw159{border-right-color:var(--colorNeutralStrokeAccessible);}\", \".f11cr0be{border-left-color:var(--colorNeutralStrokeAccessible);}\", \".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}\", \".f1g3puop{border-bottom-right-radius:var(--borderRadiusSmall);}\", \".fi2rrw2{border-bottom-left-radius:var(--borderRadiusSmall);}\", \".f1rstyi9{border-top-right-radius:var(--borderRadiusSmall);}\", \".f1s4nn1u{border-top-left-radius:var(--borderRadiusSmall);}\", \".f1ewtqcl{box-sizing:border-box;}\", \".f4d9j23{justify-content:center;}\", \".f1w9h62z{fill:currentColor;}\", \".f1ugzwwg{font-size:12px;}\", \".fd461yt{height:16px;}\", \".fjw5fx7{width:16px;}\", \".ftywsgz{background-color:var(--colorCompoundBrandBackground);}\", \".fqpbvvt{color:var(--colorNeutralForegroundInverted);}\", \".f3xi7mh{border-top-color:var(--colorCompoundBrandBackground);}\", \".ftovhe4{border-right-color:var(--colorCompoundBrandBackground);}\", \".f1wczvin{border-left-color:var(--colorCompoundBrandBackground);}\", \".f68vbr6{border-bottom-color:var(--colorCompoundBrandBackground);}\", \".f1r1t4y1{border-top-color:var(--colorNeutralForegroundDisabled);}\", \".fmj8ijw{border-right-color:var(--colorNeutralForegroundDisabled);}\", \".figx54m{border-left-color:var(--colorNeutralForegroundDisabled);}\", \".f360ss8{border-bottom-color:var(--colorNeutralForegroundDisabled);}\"],\n h: [\".f1knas48:hover{background-color:var(--colorNeutralBackground1Hover);}\", \".feu1g3u:hover{color:var(--colorNeutralForeground1Hover);}\", \".fo79ri9:hover .fui-Option__checkIcon{border-top-color:var(--colorNeutralForeground1Hover);}\", \".f1osiabc:hover .fui-Option__checkIcon{border-right-color:var(--colorNeutralForeground1Hover);}\", \".f1e8le25:hover .fui-Option__checkIcon{border-left-color:var(--colorNeutralForeground1Hover);}\", \".f1yusjty:hover .fui-Option__checkIcon{border-bottom-color:var(--colorNeutralForeground1Hover);}\", \".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}\", \".fvgxktp:hover{color:var(--colorNeutralForegroundDisabled);}\", \".f185j3qj:hover .fui-Option__checkIcon{border-top-color:var(--colorNeutralForegroundDisabled);}\", \".f1dligi3:hover .fui-Option__checkIcon{border-right-color:var(--colorNeutralForegroundDisabled);}\", \".f1vydzie:hover .fui-Option__checkIcon{border-left-color:var(--colorNeutralForegroundDisabled);}\", \".fjw1di3:hover .fui-Option__checkIcon{border-bottom-color:var(--colorNeutralForegroundDisabled);}\"],\n a: [\".fb40n2d:active{background-color:var(--colorNeutralBackground1Pressed);}\", \".f1g4hkjv:active{color:var(--colorNeutralForeground1Pressed);}\", \".f1lnr2zp:active .fui-Option__checkIcon{border-top-color:var(--colorNeutralForeground1Hover);}\", \".f1ogfk9z:active .fui-Option__checkIcon{border-right-color:var(--colorNeutralForeground1Hover);}\", \".f1g7j8ec:active .fui-Option__checkIcon{border-left-color:var(--colorNeutralForeground1Hover);}\", \".fiuf46r:active .fui-Option__checkIcon{border-bottom-color:var(--colorNeutralForeground1Hover);}\", \".fgj9um3:active{background-color:var(--colorTransparentBackground);}\", \".f19wldhg:active{color:var(--colorNeutralForegroundDisabled);}\", \".f1ss0kt2:active .fui-Option__checkIcon{border-top-color:var(--colorNeutralForegroundDisabled);}\", \".f1t6oli3:active .fui-Option__checkIcon{border-right-color:var(--colorNeutralForegroundDisabled);}\", \".fjy9ci8:active .fui-Option__checkIcon{border-left-color:var(--colorNeutralForegroundDisabled);}\", \".fresaxk:active .fui-Option__checkIcon{border-bottom-color:var(--colorNeutralForegroundDisabled);}\"],\n m: [[\"@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}\", {\n m: \"(forced-colors: active)\"\n }]]\n});\n/**\n * Apply styling to the Option slots based on the state\n */\nexport const useOptionStyles_unstable = state => {\n const {\n active,\n disabled,\n focusVisible,\n multiselect,\n selected\n } = state;\n const styles = useStyles();\n state.root.className = mergeClasses(optionClassNames.root, styles.root, active && focusVisible && styles.active, disabled && styles.disabled, selected && styles.selected, state.root.className);\n if (state.checkIcon) {\n state.checkIcon.className = mergeClasses(optionClassNames.checkIcon, styles.checkIcon, multiselect && styles.multiselectCheck, selected && styles.selectedCheck, selected && multiselect && styles.selectedMultiselectCheck, disabled && styles.checkDisabled, disabled && multiselect && styles.multiselectCheckDisabled, state.checkIcon.className);\n }\n return state;\n};\n//# sourceMappingURL=useOptionStyles.styles.js.map"],"names":["optionClassNames","useOptionStyles_unstable","root","checkIcon","useStyles","__styles","Bt984gj","Bbmb7ep","Beyfa6y","B7oj6ja","Btl43ni","sj55zd","i8kkvl","Bceei9c","mc9l5x","Bahqtrf","Be2twd7","Bg96gwp","z8tnut","z189sj","Byoj8tv","uwmqm3","qhf8xq","Jwef8y","Bi91k9c","zqbkvg","h82x05","cqj998","j3hlsh","ecr2s2","lj723h","Btxx2vb","sltcwy","dnwvvm","Blyvkvs","active","Bsft5z2","E3zdtr","B80jsxd","t2ki1e","Bm2nyyq","Barhvk9","Bw17bha","vfts7","xrcqlc","Ihftqj","Bcgy8vk","Bhxzhr1","B3778ie","d9w3h3","Bl18szs","B4j8arr","B0n5ga8","s924m2","B1q35kw","Gp14am","bn5sak","By385i5","Eqx8gd","B1piin3","disabled","Bbusuzp","selected","Frg6f3","t21cq0","Bcdw1i0","Bo70h7d","selectedCheck","multiselectCheck","B4j52fo","Bekrc4i","Bn0qgzm","ibv6hh","icvyot","vrafjx","oivjwe","wvpqe5","g2u3we","h3c5rm","B9xav0g","zhjwy3","B7ck84d","Brf1p80","Bkfmm31","Bqenvij","a9b677","selectedMultiselectCheck","De3pzq","checkDisabled","multiselectCheckDisabled","d","h","a","m","state","focusVisible","multiselect","styles","className","mergeClasses"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useComboboxBaseState.js"],"sourcesContent":["import * as React from 'react';\nimport { useControllableState, useFirstMount } from '@fluentui/react-utilities';\nimport { useOptionCollection } from '../utils/useOptionCollection';\nimport { useSelection } from '../utils/useSelection';\n/**\n * State shared between Combobox and Dropdown components\n */ export const useComboboxBaseState = (props)=>{\n const { appearance = 'outline', children, editable = false, inlinePopup = false, mountNode = undefined, multiselect, onOpenChange, size = 'medium' } = props;\n const optionCollection = useOptionCollection();\n const { getOptionAtIndex, getOptionsMatchingValue } = optionCollection;\n const [activeOption, setActiveOption] = React.useState();\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 // track focused state to conditionally render collapsed listbox\n const [hasFocus, setHasFocus] = React.useState(false);\n const ignoreNextBlur = React.useRef(false);\n const selectionState = useSelection(props);\n const { selectedOptions } = selectionState;\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 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 // handle defaultValue here, so it is overridden by selection\n if (isFirstMount && props.defaultValue !== undefined) {\n return props.defaultValue;\n }\n const selectedOptionsText = getOptionsMatchingValue((optionValue)=>{\n return selectedOptions.includes(optionValue);\n }).map((option)=>option.text);\n if (multiselect) {\n // editable inputs should not display multiple selected options in the input as text\n return editable ? '' : selectedOptionsText.join(', ');\n }\n return selectedOptionsText[0];\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 }, [\n controllableValue,\n editable,\n getOptionsMatchingValue,\n multiselect,\n props.defaultValue,\n 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 const setOpen = React.useCallback((event, newState)=>{\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(event, {\n open: newState\n });\n setOpenState(newState);\n }, [\n onOpenChange,\n setOpenState\n ]);\n // update active option based on change in open state or children\n React.useEffect(()=>{\n if (open && !activeOption) {\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 selectedOption && setActiveOption(selectedOption);\n } else {\n setActiveOption(getOptionAtIndex(0));\n }\n } else if (!open) {\n // reset the active option when closing\n setActiveOption(undefined);\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 }, [\n open,\n children\n ]);\n return {\n ...optionCollection,\n ...selectionState,\n activeOption,\n appearance,\n focusVisible,\n hasFocus,\n ignoreNextBlur,\n inlinePopup,\n mountNode,\n open,\n setActiveOption,\n setFocusVisible,\n setHasFocus,\n setOpen,\n setValue,\n size,\n value\n };\n};\n"],"names":["useComboboxBaseState","props","appearance","children","editable","inlinePopup","mountNode","undefined","multiselect","onOpenChange","size","optionCollection","useOptionCollection","getOptionAtIndex","getOptionsMatchingValue","activeOption","setActiveOption","React","useState","focusVisible","setFocusVisible","hasFocus","setHasFocus","ignoreNextBlur","useRef","selectionState","useSelection","selectedOptions","isFirstMount","useFirstMount","controllableValue","setValue","useControllableState","state","value","initialState","useMemo","defaultValue","selectedOptionsText","optionValue","includes","map","option","text","join","open","setOpenState","defaultState","defaultOpen","setOpen","useCallback","event","newState","useEffect","length","selectedOption","v","pop"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["useComboboxBaseState.js"],"sourcesContent":["import * as React from 'react';\nimport { useControllableState, useFirstMount } from '@fluentui/react-utilities';\nimport { useOptionCollection } from '../utils/useOptionCollection';\nimport { useSelection } from '../utils/useSelection';\n/**\n * State shared between Combobox and Dropdown components\n */ export const useComboboxBaseState = (props)=>{\n const { appearance = 'outline', children, editable = false, inlinePopup = false, mountNode = undefined, multiselect, onOpenChange, size = 'medium' } = props;\n const optionCollection = useOptionCollection();\n const { getOptionAtIndex, getOptionsMatchingValue } = optionCollection;\n const [activeOption, setActiveOption] = React.useState();\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 // track focused state to conditionally render collapsed listbox\n const [hasFocus, setHasFocus] = React.useState(false);\n const ignoreNextBlur = React.useRef(false);\n const selectionState = useSelection(props);\n const { selectedOptions } = selectionState;\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 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 // handle defaultValue here, so it is overridden by selection\n if (isFirstMount && props.defaultValue !== undefined) {\n return props.defaultValue;\n }\n const selectedOptionsText = getOptionsMatchingValue((optionValue)=>{\n return selectedOptions.includes(optionValue);\n }).map((option)=>option.text);\n if (multiselect) {\n // editable inputs should not display multiple selected options in the input as text\n return editable ? '' : selectedOptionsText.join(', ');\n }\n return selectedOptionsText[0];\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 }, [\n controllableValue,\n editable,\n getOptionsMatchingValue,\n multiselect,\n props.defaultValue,\n 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 const setOpen = React.useCallback((event, newState)=>{\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(event, {\n open: newState\n });\n setOpenState(newState);\n }, [\n onOpenChange,\n setOpenState\n ]);\n // update active option based on change in open state or children\n React.useEffect(()=>{\n if (open && !activeOption) {\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 selectedOption && setActiveOption(selectedOption);\n } else {\n setActiveOption(getOptionAtIndex(0));\n }\n } else if (!open) {\n // reset the active option when closing\n setActiveOption(undefined);\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 }, [\n open,\n children\n ]);\n return {\n ...optionCollection,\n ...selectionState,\n activeOption,\n appearance,\n focusVisible,\n hasFocus,\n ignoreNextBlur,\n inlinePopup,\n mountNode,\n open,\n setActiveOption,\n setFocusVisible,\n setHasFocus,\n setOpen,\n setValue,\n size,\n value,\n multiselect\n };\n};\n"],"names":["useComboboxBaseState","props","appearance","children","editable","inlinePopup","mountNode","undefined","multiselect","onOpenChange","size","optionCollection","useOptionCollection","getOptionAtIndex","getOptionsMatchingValue","activeOption","setActiveOption","React","useState","focusVisible","setFocusVisible","hasFocus","setHasFocus","ignoreNextBlur","useRef","selectionState","useSelection","selectedOptions","isFirstMount","useFirstMount","controllableValue","setValue","useControllableState","state","value","initialState","useMemo","defaultValue","selectedOptionsText","optionValue","includes","map","option","text","join","open","setOpenState","defaultState","defaultOpen","setOpen","useCallback","event","newState","useEffect","length","selectedOption","v","pop"],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "useListboxSlot", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return useListboxSlot;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
12
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
13
|
+
const _reactutilities = require("@fluentui/react-utilities");
|
|
14
|
+
const _Listbox = require("../Listbox");
|
|
15
|
+
function useListboxSlot(listboxSlotFromProp, ref, options) {
|
|
16
|
+
const { state: { multiselect }, triggerRef, defaultProps } = options;
|
|
17
|
+
const listboxId = (0, _reactutilities.useId)('fluent-listbox', (0, _reactutilities.isResolvedShorthand)(listboxSlotFromProp) ? listboxSlotFromProp.id : undefined);
|
|
18
|
+
const listboxSlot = _reactutilities.slot.optional(listboxSlotFromProp, {
|
|
19
|
+
renderByDefault: true,
|
|
20
|
+
elementType: _Listbox.Listbox,
|
|
21
|
+
defaultProps: {
|
|
22
|
+
id: listboxId,
|
|
23
|
+
multiselect,
|
|
24
|
+
tabIndex: undefined,
|
|
25
|
+
...defaultProps
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
/**
|
|
29
|
+
* Clicking on the listbox should never blur the trigger
|
|
30
|
+
* in a combobox
|
|
31
|
+
*/ const onMouseDown = (0, _reactutilities.useEventCallback)((0, _reactutilities.mergeCallbacks)((event)=>{
|
|
32
|
+
event.preventDefault();
|
|
33
|
+
}, listboxSlot === null || listboxSlot === void 0 ? void 0 : listboxSlot.onMouseDown));
|
|
34
|
+
const onClick = (0, _reactutilities.useEventCallback)((0, _reactutilities.mergeCallbacks)((event)=>{
|
|
35
|
+
var _triggerRef_current;
|
|
36
|
+
event.preventDefault();
|
|
37
|
+
(_triggerRef_current = triggerRef.current) === null || _triggerRef_current === void 0 ? void 0 : _triggerRef_current.focus();
|
|
38
|
+
}, listboxSlot === null || listboxSlot === void 0 ? void 0 : listboxSlot.onClick));
|
|
39
|
+
const listboxRef = (0, _reactutilities.useMergedRefs)(listboxSlot === null || listboxSlot === void 0 ? void 0 : listboxSlot.ref, ref);
|
|
40
|
+
if (listboxSlot) {
|
|
41
|
+
listboxSlot.ref = listboxRef;
|
|
42
|
+
listboxSlot.onMouseDown = onMouseDown;
|
|
43
|
+
listboxSlot.onClick = onClick;
|
|
44
|
+
}
|
|
45
|
+
return listboxSlot;
|
|
46
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useListboxSlot.js"],"sourcesContent":["import * as React from 'react';\nimport { mergeCallbacks, useId, useEventCallback, slot, isResolvedShorthand, useMergedRefs } from '@fluentui/react-utilities';\nimport { Listbox } from '../Listbox';\n/**\n * @returns listbox slot with desired behaviour and props\n */ export function useListboxSlot(listboxSlotFromProp, ref, options) {\n const { state: { multiselect }, triggerRef, defaultProps } = options;\n const listboxId = useId('fluent-listbox', isResolvedShorthand(listboxSlotFromProp) ? listboxSlotFromProp.id : undefined);\n const listboxSlot = slot.optional(listboxSlotFromProp, {\n renderByDefault: true,\n elementType: Listbox,\n defaultProps: {\n id: listboxId,\n multiselect,\n tabIndex: undefined,\n ...defaultProps\n }\n });\n /**\n * Clicking on the listbox should never blur the trigger\n * in a combobox\n */ const onMouseDown = useEventCallback(mergeCallbacks((event)=>{\n event.preventDefault();\n }, listboxSlot === null || listboxSlot === void 0 ? void 0 : listboxSlot.onMouseDown));\n const onClick = useEventCallback(mergeCallbacks((event)=>{\n var _triggerRef_current;\n event.preventDefault();\n (_triggerRef_current = triggerRef.current) === null || _triggerRef_current === void 0 ? void 0 : _triggerRef_current.focus();\n }, listboxSlot === null || listboxSlot === void 0 ? void 0 : listboxSlot.onClick));\n const listboxRef = useMergedRefs(listboxSlot === null || listboxSlot === void 0 ? void 0 : listboxSlot.ref, ref);\n if (listboxSlot) {\n listboxSlot.ref = listboxRef;\n listboxSlot.onMouseDown = onMouseDown;\n listboxSlot.onClick = onClick;\n }\n return listboxSlot;\n}\n"],"names":["useListboxSlot","listboxSlotFromProp","ref","options","state","multiselect","triggerRef","defaultProps","listboxId","useId","isResolvedShorthand","id","undefined","listboxSlot","slot","optional","renderByDefault","elementType","Listbox","tabIndex","onMouseDown","useEventCallback","mergeCallbacks","event","preventDefault","onClick","_triggerRef_current","current","focus","listboxRef","useMergedRefs"],"mappings":";;;;+BAKoBA;;;eAAAA;;;;iEALG;gCAC2E;yBAC1E;AAGb,SAASA,eAAeC,mBAAmB,EAAEC,GAAG,EAAEC,OAAO;IAChE,MAAM,EAAEC,OAAO,EAAEC,WAAW,EAAE,EAAEC,UAAU,EAAEC,YAAY,EAAE,GAAGJ;IAC7D,MAAMK,YAAYC,IAAAA,qBAAK,EAAC,kBAAkBC,IAAAA,mCAAmB,EAACT,uBAAuBA,oBAAoBU,EAAE,GAAGC;IAC9G,MAAMC,cAAcC,oBAAI,CAACC,QAAQ,CAACd,qBAAqB;QACnDe,iBAAiB;QACjBC,aAAaC,gBAAO;QACpBX,cAAc;YACVI,IAAIH;YACJH;YACAc,UAAUP;YACV,GAAGL,YAAY;QACnB;IACJ;IACA;;;GAGD,GAAG,MAAMa,cAAcC,IAAAA,gCAAgB,EAACC,IAAAA,8BAAc,EAAC,CAACC;QACnDA,MAAMC,cAAc;IACxB,GAAGX,gBAAgB,QAAQA,gBAAgB,KAAK,IAAI,KAAK,IAAIA,YAAYO,WAAW;IACpF,MAAMK,UAAUJ,IAAAA,gCAAgB,EAACC,IAAAA,8BAAc,EAAC,CAACC;QAC7C,IAAIG;QACJH,MAAMC,cAAc;QACnBE,CAAAA,sBAAsBpB,WAAWqB,OAAO,AAAD,MAAO,QAAQD,wBAAwB,KAAK,IAAI,KAAK,IAAIA,oBAAoBE,KAAK;IAC9H,GAAGf,gBAAgB,QAAQA,gBAAgB,KAAK,IAAI,KAAK,IAAIA,YAAYY,OAAO;IAChF,MAAMI,aAAaC,IAAAA,6BAAa,EAACjB,gBAAgB,QAAQA,gBAAgB,KAAK,IAAI,KAAK,IAAIA,YAAYX,GAAG,EAAEA;IAC5G,IAAIW,aAAa;QACbA,YAAYX,GAAG,GAAG2B;QAClBhB,YAAYO,WAAW,GAAGA;QAC1BP,YAAYY,OAAO,GAAGA;IAC1B;IACA,OAAOZ;AACX"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "useTriggerSlot", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return useTriggerSlot;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
12
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
13
|
+
const _reactutilities = require("@fluentui/react-utilities");
|
|
14
|
+
const _dropdownKeyActions = require("../utils/dropdownKeyActions");
|
|
15
|
+
function useTriggerSlot(triggerSlotFromProp, ref, options) {
|
|
16
|
+
const { state: { activeOption, getCount, getIndexOfId, getOptionAtIndex, open, selectOption, setActiveOption, setFocusVisible, setOpen, multiselect }, defaultProps, elementType } = options;
|
|
17
|
+
const trigger = _reactutilities.slot.always(triggerSlotFromProp, {
|
|
18
|
+
defaultProps: {
|
|
19
|
+
type: 'text',
|
|
20
|
+
'aria-expanded': open,
|
|
21
|
+
'aria-activedescendant': open ? activeOption === null || activeOption === void 0 ? void 0 : activeOption.id : undefined,
|
|
22
|
+
role: 'combobox',
|
|
23
|
+
...typeof defaultProps === 'object' && defaultProps
|
|
24
|
+
},
|
|
25
|
+
elementType
|
|
26
|
+
});
|
|
27
|
+
// handle trigger focus/blur
|
|
28
|
+
const triggerRef = _react.useRef(null);
|
|
29
|
+
trigger.ref = (0, _reactutilities.useMergedRefs)(triggerRef, trigger.ref, ref);
|
|
30
|
+
// the trigger should open/close the popup on click or blur
|
|
31
|
+
trigger.onBlur = (0, _reactutilities.mergeCallbacks)((event)=>{
|
|
32
|
+
setOpen(event, false);
|
|
33
|
+
}, trigger.onBlur);
|
|
34
|
+
trigger.onClick = (0, _reactutilities.mergeCallbacks)((event)=>{
|
|
35
|
+
setOpen(event, !open);
|
|
36
|
+
}, trigger.onClick);
|
|
37
|
+
// handle combobox keyboard interaction
|
|
38
|
+
trigger.onKeyDown = (0, _reactutilities.mergeCallbacks)((event)=>{
|
|
39
|
+
const action = (0, _dropdownKeyActions.getDropdownActionFromKey)(event, {
|
|
40
|
+
open,
|
|
41
|
+
multiselect
|
|
42
|
+
});
|
|
43
|
+
const maxIndex = getCount() - 1;
|
|
44
|
+
const activeIndex = activeOption ? getIndexOfId(activeOption.id) : -1;
|
|
45
|
+
let newIndex = activeIndex;
|
|
46
|
+
switch(action){
|
|
47
|
+
case 'Open':
|
|
48
|
+
event.preventDefault();
|
|
49
|
+
setFocusVisible(true);
|
|
50
|
+
setOpen(event, true);
|
|
51
|
+
break;
|
|
52
|
+
case 'Close':
|
|
53
|
+
// stop propagation for escape key to avoid dismissing any parent popups
|
|
54
|
+
event.stopPropagation();
|
|
55
|
+
event.preventDefault();
|
|
56
|
+
setOpen(event, false);
|
|
57
|
+
break;
|
|
58
|
+
case 'CloseSelect':
|
|
59
|
+
!multiselect && !(activeOption === null || activeOption === void 0 ? void 0 : activeOption.disabled) && setOpen(event, false);
|
|
60
|
+
// fallthrough
|
|
61
|
+
case 'Select':
|
|
62
|
+
activeOption && selectOption(event, activeOption);
|
|
63
|
+
event.preventDefault();
|
|
64
|
+
break;
|
|
65
|
+
case 'Tab':
|
|
66
|
+
!multiselect && activeOption && selectOption(event, activeOption);
|
|
67
|
+
break;
|
|
68
|
+
default:
|
|
69
|
+
newIndex = (0, _dropdownKeyActions.getIndexFromAction)(action, activeIndex, maxIndex);
|
|
70
|
+
}
|
|
71
|
+
if (newIndex !== activeIndex) {
|
|
72
|
+
// prevent default page scroll/keyboard action if the index changed
|
|
73
|
+
event.preventDefault();
|
|
74
|
+
setActiveOption(getOptionAtIndex(newIndex));
|
|
75
|
+
setFocusVisible(true);
|
|
76
|
+
}
|
|
77
|
+
}, trigger.onKeyDown);
|
|
78
|
+
trigger.onMouseOver = (0, _reactutilities.mergeCallbacks)((event)=>{
|
|
79
|
+
setFocusVisible(false);
|
|
80
|
+
}, trigger.onMouseOver);
|
|
81
|
+
// TODO fix cast
|
|
82
|
+
return trigger;
|
|
83
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useTriggerSlot.js"],"sourcesContent":["import * as React from 'react';\nimport { mergeCallbacks, slot, useMergedRefs } from '@fluentui/react-utilities';\nimport { getDropdownActionFromKey, getIndexFromAction } from '../utils/dropdownKeyActions';\n/**\n * Shared trigger behaviour for combobox and dropdown\n * @returns trigger slot with desired behaviour and props\n */ export function useTriggerSlot(triggerSlotFromProp, ref, options) {\n const { state: { activeOption, getCount, getIndexOfId, getOptionAtIndex, open, selectOption, setActiveOption, setFocusVisible, setOpen, multiselect }, defaultProps, elementType } = options;\n const trigger = slot.always(triggerSlotFromProp, {\n defaultProps: {\n type: 'text',\n 'aria-expanded': open,\n 'aria-activedescendant': open ? activeOption === null || activeOption === void 0 ? void 0 : activeOption.id : undefined,\n role: 'combobox',\n ...typeof defaultProps === 'object' && defaultProps\n },\n elementType\n });\n // handle trigger focus/blur\n const triggerRef = React.useRef(null);\n trigger.ref = useMergedRefs(triggerRef, trigger.ref, ref);\n // the trigger should open/close the popup on click or blur\n trigger.onBlur = mergeCallbacks((event)=>{\n setOpen(event, false);\n }, trigger.onBlur);\n trigger.onClick = mergeCallbacks((event)=>{\n setOpen(event, !open);\n }, trigger.onClick);\n // handle combobox keyboard interaction\n trigger.onKeyDown = mergeCallbacks((event)=>{\n const action = getDropdownActionFromKey(event, {\n open,\n multiselect\n });\n const maxIndex = getCount() - 1;\n const activeIndex = activeOption ? getIndexOfId(activeOption.id) : -1;\n let newIndex = activeIndex;\n switch(action){\n case 'Open':\n event.preventDefault();\n setFocusVisible(true);\n setOpen(event, true);\n break;\n case 'Close':\n // stop propagation for escape key to avoid dismissing any parent popups\n event.stopPropagation();\n event.preventDefault();\n setOpen(event, false);\n break;\n case 'CloseSelect':\n !multiselect && !(activeOption === null || activeOption === void 0 ? void 0 : activeOption.disabled) && setOpen(event, false);\n // fallthrough\n case 'Select':\n activeOption && selectOption(event, activeOption);\n event.preventDefault();\n break;\n case 'Tab':\n !multiselect && activeOption && selectOption(event, activeOption);\n break;\n default:\n newIndex = getIndexFromAction(action, activeIndex, maxIndex);\n }\n if (newIndex !== activeIndex) {\n // prevent default page scroll/keyboard action if the index changed\n event.preventDefault();\n setActiveOption(getOptionAtIndex(newIndex));\n setFocusVisible(true);\n }\n }, trigger.onKeyDown);\n trigger.onMouseOver = mergeCallbacks((event)=>{\n setFocusVisible(false);\n }, trigger.onMouseOver);\n // TODO fix cast\n return trigger;\n}\n"],"names":["useTriggerSlot","triggerSlotFromProp","ref","options","state","activeOption","getCount","getIndexOfId","getOptionAtIndex","open","selectOption","setActiveOption","setFocusVisible","setOpen","multiselect","defaultProps","elementType","trigger","slot","always","type","id","undefined","role","triggerRef","React","useRef","useMergedRefs","onBlur","mergeCallbacks","event","onClick","onKeyDown","action","getDropdownActionFromKey","maxIndex","activeIndex","newIndex","preventDefault","stopPropagation","disabled","getIndexFromAction","onMouseOver"],"mappings":";;;;+BAMoBA;;;eAAAA;;;;iEANG;gCAC6B;oCACS;AAIlD,SAASA,eAAeC,mBAAmB,EAAEC,GAAG,EAAEC,OAAO;IAChE,MAAM,EAAEC,OAAO,EAAEC,YAAY,EAAEC,QAAQ,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,eAAe,EAAEC,eAAe,EAAEC,OAAO,EAAEC,WAAW,EAAE,EAAEC,YAAY,EAAEC,WAAW,EAAE,GAAGb;IACrL,MAAMc,UAAUC,oBAAI,CAACC,MAAM,CAAClB,qBAAqB;QAC7Cc,cAAc;YACVK,MAAM;YACN,iBAAiBX;YACjB,yBAAyBA,OAAOJ,iBAAiB,QAAQA,iBAAiB,KAAK,IAAI,KAAK,IAAIA,aAAagB,EAAE,GAAGC;YAC9GC,MAAM;YACN,GAAG,OAAOR,iBAAiB,YAAYA,YAAY;QACvD;QACAC;IACJ;IACA,4BAA4B;IAC5B,MAAMQ,aAAaC,OAAMC,MAAM,CAAC;IAChCT,QAAQf,GAAG,GAAGyB,IAAAA,6BAAa,EAACH,YAAYP,QAAQf,GAAG,EAAEA;IACrD,2DAA2D;IAC3De,QAAQW,MAAM,GAAGC,IAAAA,8BAAc,EAAC,CAACC;QAC7BjB,QAAQiB,OAAO;IACnB,GAAGb,QAAQW,MAAM;IACjBX,QAAQc,OAAO,GAAGF,IAAAA,8BAAc,EAAC,CAACC;QAC9BjB,QAAQiB,OAAO,CAACrB;IACpB,GAAGQ,QAAQc,OAAO;IAClB,uCAAuC;IACvCd,QAAQe,SAAS,GAAGH,IAAAA,8BAAc,EAAC,CAACC;QAChC,MAAMG,SAASC,IAAAA,4CAAwB,EAACJ,OAAO;YAC3CrB;YACAK;QACJ;QACA,MAAMqB,WAAW7B,aAAa;QAC9B,MAAM8B,cAAc/B,eAAeE,aAAaF,aAAagB,EAAE,IAAI,CAAC;QACpE,IAAIgB,WAAWD;QACf,OAAOH;YACH,KAAK;gBACDH,MAAMQ,cAAc;gBACpB1B,gBAAgB;gBAChBC,QAAQiB,OAAO;gBACf;YACJ,KAAK;gBACD,wEAAwE;gBACxEA,MAAMS,eAAe;gBACrBT,MAAMQ,cAAc;gBACpBzB,QAAQiB,OAAO;gBACf;YACJ,KAAK;gBACD,CAAChB,eAAe,CAAET,CAAAA,iBAAiB,QAAQA,iBAAiB,KAAK,IAAI,KAAK,IAAIA,aAAamC,QAAQ,AAAD,KAAM3B,QAAQiB,OAAO;YAC3H,cAAc;YACd,KAAK;gBACDzB,gBAAgBK,aAAaoB,OAAOzB;gBACpCyB,MAAMQ,cAAc;gBACpB;YACJ,KAAK;gBACD,CAACxB,eAAeT,gBAAgBK,aAAaoB,OAAOzB;gBACpD;YACJ;gBACIgC,WAAWI,IAAAA,sCAAkB,EAACR,QAAQG,aAAaD;QAC3D;QACA,IAAIE,aAAaD,aAAa;YAC1B,mEAAmE;YACnEN,MAAMQ,cAAc;YACpB3B,gBAAgBH,iBAAiB6B;YACjCzB,gBAAgB;QACpB;IACJ,GAAGK,QAAQe,SAAS;IACpBf,QAAQyB,WAAW,GAAGb,IAAAA,8BAAc,EAAC,CAACC;QAClClB,gBAAgB;IACpB,GAAGK,QAAQyB,WAAW;IACtB,gBAAgB;IAChB,OAAOzB;AACX"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui/react-combobox",
|
|
3
|
-
"version": "9.5.
|
|
3
|
+
"version": "9.5.36",
|
|
4
4
|
"description": "Fluent UI React Combobox component",
|
|
5
5
|
"main": "lib-commonjs/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"@fluentui/react-icons": "^2.0.217",
|
|
40
40
|
"@fluentui/react-jsx-runtime": "^9.0.22",
|
|
41
41
|
"@fluentui/react-portal": "^9.4.5",
|
|
42
|
-
"@fluentui/react-positioning": "^9.10.
|
|
42
|
+
"@fluentui/react-positioning": "^9.10.5",
|
|
43
43
|
"@fluentui/react-shared-contexts": "^9.13.2",
|
|
44
44
|
"@fluentui/react-theme": "^9.1.16",
|
|
45
45
|
"@fluentui/react-utilities": "^9.15.4",
|