@cdx-ui/primitives 0.3.3 → 0.3.4
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/lib/commonjs/select/SelectContent.js +89 -45
- package/lib/commonjs/select/SelectContent.js.map +1 -1
- package/lib/commonjs/select/SelectDismissButton.js +14 -0
- package/lib/commonjs/select/SelectDismissButton.js.map +1 -0
- package/lib/commonjs/select/SelectDismissButton.web.js +28 -0
- package/lib/commonjs/select/SelectDismissButton.web.js.map +1 -0
- package/lib/commonjs/select/SelectEmpty.js +53 -0
- package/lib/commonjs/select/SelectEmpty.js.map +1 -0
- package/lib/commonjs/select/SelectItem.js +30 -9
- package/lib/commonjs/select/SelectItem.js.map +1 -1
- package/lib/commonjs/select/SelectListbox.js +47 -0
- package/lib/commonjs/select/SelectListbox.js.map +1 -0
- package/lib/commonjs/select/SelectRoot.js +110 -21
- package/lib/commonjs/select/SelectRoot.js.map +1 -1
- package/lib/commonjs/select/SelectSearch.js +81 -0
- package/lib/commonjs/select/SelectSearch.js.map +1 -0
- package/lib/commonjs/select/SelectSearchStatus.js +14 -0
- package/lib/commonjs/select/SelectSearchStatus.js.map +1 -0
- package/lib/commonjs/select/SelectSearchStatus.web.js +24 -0
- package/lib/commonjs/select/SelectSearchStatus.web.js.map +1 -0
- package/lib/commonjs/select/SelectSheetContent.js +67 -0
- package/lib/commonjs/select/SelectSheetContent.js.map +1 -0
- package/lib/commonjs/select/context.js +5 -1
- package/lib/commonjs/select/context.js.map +1 -1
- package/lib/commonjs/select/filter.js +16 -0
- package/lib/commonjs/select/filter.js.map +1 -0
- package/lib/commonjs/select/index.js +34 -0
- package/lib/commonjs/select/index.js.map +1 -1
- package/lib/commonjs/select/popupRole.js +27 -0
- package/lib/commonjs/select/popupRole.js.map +1 -0
- package/lib/commonjs/select/useContentFocus.js +10 -21
- package/lib/commonjs/select/useContentFocus.js.map +1 -1
- package/lib/commonjs/select/useListboxNavigation.js +21 -8
- package/lib/commonjs/select/useListboxNavigation.js.map +1 -1
- package/lib/commonjs/select/useQueryHighlight.js +50 -0
- package/lib/commonjs/select/useQueryHighlight.js.map +1 -0
- package/lib/commonjs/select/useSelectTrigger.js +4 -1
- package/lib/commonjs/select/useSelectTrigger.js.map +1 -1
- package/lib/commonjs/select/useSelectTrigger.web.js +4 -1
- package/lib/commonjs/select/useSelectTrigger.web.js.map +1 -1
- package/lib/module/select/SelectContent.js +94 -48
- package/lib/module/select/SelectContent.js.map +1 -1
- package/lib/module/select/SelectDismissButton.js +10 -0
- package/lib/module/select/SelectDismissButton.js.map +1 -0
- package/lib/module/select/SelectDismissButton.web.js +24 -0
- package/lib/module/select/SelectDismissButton.web.js.map +1 -0
- package/lib/module/select/SelectEmpty.js +49 -0
- package/lib/module/select/SelectEmpty.js.map +1 -0
- package/lib/module/select/SelectItem.js +32 -11
- package/lib/module/select/SelectItem.js.map +1 -1
- package/lib/module/select/SelectListbox.js +43 -0
- package/lib/module/select/SelectListbox.js.map +1 -0
- package/lib/module/select/SelectRoot.js +111 -22
- package/lib/module/select/SelectRoot.js.map +1 -1
- package/lib/module/select/SelectSearch.js +77 -0
- package/lib/module/select/SelectSearch.js.map +1 -0
- package/lib/module/select/SelectSearchStatus.js +10 -0
- package/lib/module/select/SelectSearchStatus.js.map +1 -0
- package/lib/module/select/SelectSearchStatus.web.js +20 -0
- package/lib/module/select/SelectSearchStatus.web.js.map +1 -0
- package/lib/module/select/SelectSheetContent.js +63 -0
- package/lib/module/select/SelectSheetContent.js.map +1 -0
- package/lib/module/select/context.js +2 -0
- package/lib/module/select/context.js.map +1 -1
- package/lib/module/select/filter.js +11 -0
- package/lib/module/select/filter.js.map +1 -0
- package/lib/module/select/index.js +5 -1
- package/lib/module/select/index.js.map +1 -1
- package/lib/module/select/popupRole.js +23 -0
- package/lib/module/select/popupRole.js.map +1 -0
- package/lib/module/select/useContentFocus.js +11 -22
- package/lib/module/select/useContentFocus.js.map +1 -1
- package/lib/module/select/useListboxNavigation.js +21 -8
- package/lib/module/select/useListboxNavigation.js.map +1 -1
- package/lib/module/select/useQueryHighlight.js +46 -0
- package/lib/module/select/useQueryHighlight.js.map +1 -0
- package/lib/module/select/useSelectTrigger.js +4 -1
- package/lib/module/select/useSelectTrigger.js.map +1 -1
- package/lib/module/select/useSelectTrigger.web.js +4 -1
- package/lib/module/select/useSelectTrigger.web.js.map +1 -1
- package/lib/typescript/select/SelectContent.d.ts.map +1 -1
- package/lib/typescript/select/SelectDismissButton.d.ts +10 -0
- package/lib/typescript/select/SelectDismissButton.d.ts.map +1 -0
- package/lib/typescript/select/SelectDismissButton.web.d.ts +9 -0
- package/lib/typescript/select/SelectDismissButton.web.d.ts.map +1 -0
- package/lib/typescript/select/SelectEmpty.d.ts +12 -0
- package/lib/typescript/select/SelectEmpty.d.ts.map +1 -0
- package/lib/typescript/select/SelectItem.d.ts.map +1 -1
- package/lib/typescript/select/SelectListbox.d.ts +12 -0
- package/lib/typescript/select/SelectListbox.d.ts.map +1 -0
- package/lib/typescript/select/SelectRoot.d.ts +2 -2
- package/lib/typescript/select/SelectRoot.d.ts.map +1 -1
- package/lib/typescript/select/SelectSearch.d.ts +18 -0
- package/lib/typescript/select/SelectSearch.d.ts.map +1 -0
- package/lib/typescript/select/SelectSearchStatus.d.ts +9 -0
- package/lib/typescript/select/SelectSearchStatus.d.ts.map +1 -0
- package/lib/typescript/select/SelectSearchStatus.web.d.ts +8 -0
- package/lib/typescript/select/SelectSearchStatus.web.d.ts.map +1 -0
- package/lib/typescript/select/SelectSheetContent.d.ts +14 -0
- package/lib/typescript/select/SelectSheetContent.d.ts.map +1 -0
- package/lib/typescript/select/context.d.ts +9 -0
- package/lib/typescript/select/context.d.ts.map +1 -1
- package/lib/typescript/select/filter.d.ts +4 -0
- package/lib/typescript/select/filter.d.ts.map +1 -0
- package/lib/typescript/select/index.d.ts +6 -2
- package/lib/typescript/select/index.d.ts.map +1 -1
- package/lib/typescript/select/popupRole.d.ts +18 -0
- package/lib/typescript/select/popupRole.d.ts.map +1 -0
- package/lib/typescript/select/types.d.ts +129 -8
- package/lib/typescript/select/types.d.ts.map +1 -1
- package/lib/typescript/select/useContentFocus.d.ts +4 -7
- package/lib/typescript/select/useContentFocus.d.ts.map +1 -1
- package/lib/typescript/select/useListboxNavigation.d.ts +16 -3
- package/lib/typescript/select/useListboxNavigation.d.ts.map +1 -1
- package/lib/typescript/select/useQueryHighlight.d.ts +21 -0
- package/lib/typescript/select/useQueryHighlight.d.ts.map +1 -0
- package/lib/typescript/select/useSelectTrigger.d.ts.map +1 -1
- package/lib/typescript/select/useSelectTrigger.web.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/select/SelectContent.tsx +89 -54
- package/src/select/SelectDismissButton.tsx +14 -0
- package/src/select/SelectDismissButton.web.tsx +26 -0
- package/src/select/SelectEmpty.tsx +61 -0
- package/src/select/SelectItem.tsx +42 -10
- package/src/select/SelectListbox.tsx +43 -0
- package/src/select/SelectRoot.tsx +184 -12
- package/src/select/SelectSearch.tsx +98 -0
- package/src/select/SelectSearchStatus.tsx +11 -0
- package/src/select/SelectSearchStatus.web.tsx +18 -0
- package/src/select/SelectSheetContent.tsx +54 -0
- package/src/select/context.tsx +9 -0
- package/src/select/filter.ts +12 -0
- package/src/select/index.ts +14 -1
- package/src/select/popupRole.ts +26 -0
- package/src/select/types.ts +142 -9
- package/src/select/useContentFocus.ts +12 -31
- package/src/select/useListboxNavigation.ts +41 -9
- package/src/select/useQueryHighlight.ts +61 -0
- package/src/select/useSelectTrigger.ts +5 -1
- package/src/select/useSelectTrigger.web.ts +5 -1
|
@@ -7,18 +7,24 @@ exports.useListboxNavigation = useListboxNavigation;
|
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
// TODO: Split into web and native versions?
|
|
9
9
|
|
|
10
|
+
/** Keys the search input keeps for text editing: Space types, Home/End move the caret. */
|
|
11
|
+
const SEARCH_INPUT_KEYS = new Set([' ', 'Home', 'End']);
|
|
10
12
|
function useListboxNavigation({
|
|
11
13
|
items,
|
|
12
14
|
activeValue,
|
|
13
15
|
setActiveValue,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
type,
|
|
17
|
+
onToggle,
|
|
18
|
+
onSelectAndClose,
|
|
19
|
+
isItemDisabled,
|
|
20
|
+
onDismiss,
|
|
21
|
+
isSearch = false
|
|
16
22
|
}) {
|
|
17
|
-
const
|
|
18
|
-
|
|
23
|
+
const commitRef = (0, _react.useRef)(onSelectAndClose);
|
|
24
|
+
commitRef.current = type === 'multiple' ? onToggle : onSelectAndClose;
|
|
19
25
|
const onDismissRef = (0, _react.useRef)(onDismiss);
|
|
20
26
|
onDismissRef.current = onDismiss;
|
|
21
|
-
const getEnabledItems = (0, _react.useCallback)(() => items.filter(item => !item.
|
|
27
|
+
const getEnabledItems = (0, _react.useCallback)(() => items.filter(item => !isItemDisabled(item.value)), [items, isItemDisabled]);
|
|
22
28
|
const handleKeyDown = (0, _react.useCallback)(e => {
|
|
23
29
|
if (e.key === 'Escape') {
|
|
24
30
|
e.preventDefault();
|
|
@@ -30,6 +36,13 @@ function useListboxNavigation({
|
|
|
30
36
|
onDismissRef.current();
|
|
31
37
|
return;
|
|
32
38
|
}
|
|
39
|
+
if (isSearch && SEARCH_INPUT_KEYS.has(e.key)) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (isSearch && e.key === 'Enter') {
|
|
43
|
+
// Keeps the input from blurring or submitting an enclosing form, even with no match.
|
|
44
|
+
e.preventDefault();
|
|
45
|
+
}
|
|
33
46
|
const enabledItems = getEnabledItems();
|
|
34
47
|
if (enabledItems.length === 0) {
|
|
35
48
|
return;
|
|
@@ -67,13 +80,13 @@ function useListboxNavigation({
|
|
|
67
80
|
case ' ':
|
|
68
81
|
{
|
|
69
82
|
e.preventDefault();
|
|
70
|
-
if (activeValue) {
|
|
71
|
-
|
|
83
|
+
if (activeValue !== undefined && idx !== -1) {
|
|
84
|
+
commitRef.current(activeValue);
|
|
72
85
|
}
|
|
73
86
|
break;
|
|
74
87
|
}
|
|
75
88
|
}
|
|
76
|
-
}, [activeValue, getEnabledItems, setActiveValue]);
|
|
89
|
+
}, [activeValue, getEnabledItems, isSearch, setActiveValue]);
|
|
77
90
|
return {
|
|
78
91
|
handleKeyDown,
|
|
79
92
|
getEnabledItems
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","useListboxNavigation","items","activeValue","setActiveValue","
|
|
1
|
+
{"version":3,"names":["_react","require","SEARCH_INPUT_KEYS","Set","useListboxNavigation","items","activeValue","setActiveValue","type","onToggle","onSelectAndClose","isItemDisabled","onDismiss","isSearch","commitRef","useRef","current","onDismissRef","getEnabledItems","useCallback","filter","item","value","handleKeyDown","e","key","preventDefault","stopPropagation","has","enabledItems","length","idx","findIndex","i","last","at","undefined"],"sourceRoot":"../../../src","sources":["select/useListboxNavigation.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useQueryHighlight = useQueryHighlight;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
/**
|
|
9
|
+
* Owns the highlight while open:
|
|
10
|
+
* - Unset (on open, or once async `items` arrive): the first enabled selected item, or the
|
|
11
|
+
* first enabled item.
|
|
12
|
+
* - Query change: the first enabled match.
|
|
13
|
+
* - Hidden by the filter or a swapped `items` list: the first enabled item.
|
|
14
|
+
*
|
|
15
|
+
* Otherwise the highlight stays put, so a multiple-mode toggle does not move it.
|
|
16
|
+
*/
|
|
17
|
+
function useQueryHighlight({
|
|
18
|
+
open,
|
|
19
|
+
inputValue,
|
|
20
|
+
visibleItems,
|
|
21
|
+
selectedValues,
|
|
22
|
+
isItemDisabled,
|
|
23
|
+
activeValue,
|
|
24
|
+
setActiveValue
|
|
25
|
+
}) {
|
|
26
|
+
const prevInputValueRef = (0, _react.useRef)(inputValue);
|
|
27
|
+
const selectedRef = (0, _react.useRef)(selectedValues);
|
|
28
|
+
selectedRef.current = selectedValues;
|
|
29
|
+
(0, _react.useEffect)(() => {
|
|
30
|
+
const queryChanged = prevInputValueRef.current !== inputValue;
|
|
31
|
+
prevInputValueRef.current = inputValue;
|
|
32
|
+
if (!open) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const enabled = visibleItems.filter(item => !isItemDisabled(item.value));
|
|
36
|
+
if (activeValue === undefined) {
|
|
37
|
+
const selected = selectedRef.current;
|
|
38
|
+
const initial = enabled.find(item => selected.includes(item.value)) ?? enabled.at(0);
|
|
39
|
+
if (initial) {
|
|
40
|
+
setActiveValue(initial.value);
|
|
41
|
+
}
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const activeHidden = !enabled.some(item => item.value === activeValue);
|
|
45
|
+
if (queryChanged || activeHidden) {
|
|
46
|
+
setActiveValue(enabled.at(0)?.value);
|
|
47
|
+
}
|
|
48
|
+
}, [open, inputValue, visibleItems, isItemDisabled, activeValue, setActiveValue]);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=useQueryHighlight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","useQueryHighlight","open","inputValue","visibleItems","selectedValues","isItemDisabled","activeValue","setActiveValue","prevInputValueRef","useRef","selectedRef","current","useEffect","queryChanged","enabled","filter","item","value","undefined","selected","initial","find","includes","at","activeHidden","some"],"sourceRoot":"../../../src","sources":["select/useQueryHighlight.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAAC;EAChCC,IAAI;EACJC,UAAU;EACVC,YAAY;EACZC,cAAc;EACdC,cAAc;EACdC,WAAW;EACXC;AACwB,CAAC,EAAE;EAC3B,MAAMC,iBAAiB,GAAG,IAAAC,aAAM,EAACP,UAAU,CAAC;EAC5C,MAAMQ,WAAW,GAAG,IAAAD,aAAM,EAACL,cAAc,CAAC;EAC1CM,WAAW,CAACC,OAAO,GAAGP,cAAc;EAEpC,IAAAQ,gBAAS,EAAC,MAAM;IACd,MAAMC,YAAY,GAAGL,iBAAiB,CAACG,OAAO,KAAKT,UAAU;IAC7DM,iBAAiB,CAACG,OAAO,GAAGT,UAAU;IAEtC,IAAI,CAACD,IAAI,EAAE;MACT;IACF;IAEA,MAAMa,OAAO,GAAGX,YAAY,CAACY,MAAM,CAAEC,IAAI,IAAK,CAACX,cAAc,CAACW,IAAI,CAACC,KAAK,CAAC,CAAC;IAE1E,IAAIX,WAAW,KAAKY,SAAS,EAAE;MAC7B,MAAMC,QAAQ,GAAGT,WAAW,CAACC,OAAO;MACpC,MAAMS,OAAO,GAAGN,OAAO,CAACO,IAAI,CAAEL,IAAI,IAAKG,QAAQ,CAACG,QAAQ,CAACN,IAAI,CAACC,KAAK,CAAC,CAAC,IAAIH,OAAO,CAACS,EAAE,CAAC,CAAC,CAAC;MACtF,IAAIH,OAAO,EAAE;QACXb,cAAc,CAACa,OAAO,CAACH,KAAK,CAAC;MAC/B;MACA;IACF;IAEA,MAAMO,YAAY,GAAG,CAACV,OAAO,CAACW,IAAI,CAAET,IAAI,IAAKA,IAAI,CAACC,KAAK,KAAKX,WAAW,CAAC;IAExE,IAAIO,YAAY,IAAIW,YAAY,EAAE;MAChCjB,cAAc,CAACO,OAAO,CAACS,EAAE,CAAC,CAAC,CAAC,EAAEN,KAAK,CAAC;IACtC;EACF,CAAC,EAAE,CAAChB,IAAI,EAAEC,UAAU,EAAEC,YAAY,EAAEE,cAAc,EAAEC,WAAW,EAAEC,cAAc,CAAC,CAAC;AACnF","ignoreList":[]}
|
|
@@ -58,6 +58,7 @@ function useSelectTrigger(forwardedRef, options) {
|
|
|
58
58
|
contentId,
|
|
59
59
|
triggerRef,
|
|
60
60
|
activeValue,
|
|
61
|
+
hasSearch,
|
|
61
62
|
accessibilityLabel,
|
|
62
63
|
ariaDescribedBy: ariaDescribedByFromField
|
|
63
64
|
} = (0, _context.useSelectContext)();
|
|
@@ -166,10 +167,12 @@ function useSelectTrigger(forwardedRef, options) {
|
|
|
166
167
|
const ariaProps = {
|
|
167
168
|
role: 'combobox',
|
|
168
169
|
'aria-label': accessibilityLabel,
|
|
170
|
+
// Kept as `listbox` with search too (RAC's choice), pending the a11y spike (DEVEX-8289).
|
|
169
171
|
'aria-haspopup': 'listbox',
|
|
170
172
|
'aria-expanded': open,
|
|
171
173
|
'aria-controls': contentId,
|
|
172
|
-
|
|
174
|
+
// With search, the input owns the active descendant.
|
|
175
|
+
'aria-activedescendant': open && activeValue && !hasSearch ? `${contentId}-option-${activeValue}` : undefined,
|
|
173
176
|
'aria-required': contextRequired || undefined,
|
|
174
177
|
'aria-invalid': contextInvalid || undefined,
|
|
175
178
|
'aria-readonly': contextReadOnly || undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_utils","_focus","_interactions","_context","FIELD_STATES","useSelectTrigger","forwardedRef","options","isHovered","isHoveredProp","isActive","isActiveProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","isDisabled","isDisabledProp","ariaDescribedBy","ariaDescribedByProp","onPress","consumerOnPress","onPressIn","consumerOnPressIn","onPressOut","consumerOnPressOut","onHoverIn","consumerOnHoverIn","onHoverOut","consumerOnHoverOut","onFocus","consumerOnFocus","onBlur","consumerOnBlur","onKeyDown","consumerOnKeyDown","open","setOpen","disabled","contextDisabled","required","contextRequired","invalid","contextInvalid","readOnly","contextReadOnly","triggerId","contentId","triggerRef","activeValue","accessibilityLabel","ariaDescribedByFromField","useSelectContext","field","useFormControlContext","focusProps","focusRingProps","useFocusRing","pressProps","isPressed","usePress","useFocus","hoverProps","useHover","triggerFocused","setTriggerFocused","useState","handlePress","useCallback","_e","handleKeyDown","e","key","preventDefault","isLabelActive","Boolean","useReportFormControlLabelFocus","useLayoutEffect","interactionState","useMemo","hover","focus","active","focusVisible","labelFocusGateRef","useRef","current","labelFocusBridge","isOff","isRO","node","inputRef","r","mergedRef","mergeRefs","filter","join","ariaProps","role","undefined","id","fieldState","dataAttrValues","readonly","state","handlers","composeEventHandlers"],"sourceRoot":"../../../src","sources":["select/useSelectTrigger.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAUA,IAAAC,MAAA,GAAAD,OAAA;AAOA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAJ,OAAA;AAEA,MAAMK,YAAY,GAAG;EACnB,aAAa,EAAE,MAAM;EACrB,YAAY,EAAE,SAAS;EACvB,YAAY,EAAE,SAAS;EACvB,WAAW,EAAE;AACf,CAAU;AAsEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,gBAAgBA,CAC9BC,YAAmC,EACnCC,OAAgC,EACR;EACxB;AACF;AACA;AACA;AACA;AACA;EACE,MAAM;IACJC,SAAS,EAAEC,aAAa;IACxBC,QAAQ,EAAEC,YAAY;IACtBC,SAAS,EAAEC,aAAa;IACxBC,cAAc,EAAEC,kBAAkB;IAClCC,UAAU,EAAEC,cAAc;IAC1BC,eAAe,EAAEC,mBAAmB;IACpCC,OAAO,EAAEC,eAAe;IACxBC,SAAS,EAAEC,iBAAiB;IAC5BC,UAAU,EAAEC,kBAAkB;IAC9BC,SAAS,EAAEC,iBAAiB;IAC5BC,UAAU,EAAEC,kBAAkB;IAC9BC,OAAO,EAAEC,eAAe;IACxBC,MAAM,EAAEC,cAAc;IACtBC,SAAS,EAAEC;EACb,CAAC,GAAG5B,OAAO;EAEX,MAAM;IACJ6B,IAAI;IACJC,OAAO;IACPC,QAAQ,EAAEC,eAAe;IACzBC,QAAQ,EAAEC,eAAe;IACzBC,OAAO,EAAEC,cAAc;IACvBC,QAAQ,EAAEC,eAAe;IACzBC,SAAS;IACTC,SAAS;IACTC,UAAU;IACVC,WAAW;IACXC,kBAAkB;
|
|
1
|
+
{"version":3,"names":["_react","require","_utils","_focus","_interactions","_context","FIELD_STATES","useSelectTrigger","forwardedRef","options","isHovered","isHoveredProp","isActive","isActiveProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","isDisabled","isDisabledProp","ariaDescribedBy","ariaDescribedByProp","onPress","consumerOnPress","onPressIn","consumerOnPressIn","onPressOut","consumerOnPressOut","onHoverIn","consumerOnHoverIn","onHoverOut","consumerOnHoverOut","onFocus","consumerOnFocus","onBlur","consumerOnBlur","onKeyDown","consumerOnKeyDown","open","setOpen","disabled","contextDisabled","required","contextRequired","invalid","contextInvalid","readOnly","contextReadOnly","triggerId","contentId","triggerRef","activeValue","hasSearch","accessibilityLabel","ariaDescribedByFromField","useSelectContext","field","useFormControlContext","focusProps","focusRingProps","useFocusRing","pressProps","isPressed","usePress","useFocus","hoverProps","useHover","triggerFocused","setTriggerFocused","useState","handlePress","useCallback","_e","handleKeyDown","e","key","preventDefault","isLabelActive","Boolean","useReportFormControlLabelFocus","useLayoutEffect","interactionState","useMemo","hover","focus","active","focusVisible","labelFocusGateRef","useRef","current","labelFocusBridge","isOff","isRO","node","inputRef","r","mergedRef","mergeRefs","filter","join","ariaProps","role","undefined","id","fieldState","dataAttrValues","readonly","state","handlers","composeEventHandlers"],"sourceRoot":"../../../src","sources":["select/useSelectTrigger.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -56,6 +56,7 @@ function useSelectTrigger(forwardedRef, options) {
|
|
|
56
56
|
contentId,
|
|
57
57
|
triggerRef,
|
|
58
58
|
activeValue,
|
|
59
|
+
hasSearch,
|
|
59
60
|
accessibilityLabel,
|
|
60
61
|
ariaDescribedBy: ariaDescribedByFromField
|
|
61
62
|
} = (0, _context.useSelectContext)();
|
|
@@ -155,10 +156,12 @@ function useSelectTrigger(forwardedRef, options) {
|
|
|
155
156
|
const ariaProps = {
|
|
156
157
|
role: 'combobox',
|
|
157
158
|
'aria-label': accessibilityLabel,
|
|
159
|
+
// Kept as `listbox` with search too (RAC's choice), pending the a11y spike (DEVEX-8289).
|
|
158
160
|
'aria-haspopup': 'listbox',
|
|
159
161
|
'aria-expanded': open,
|
|
160
162
|
'aria-controls': contentId,
|
|
161
|
-
|
|
163
|
+
// With search, the input owns the active descendant.
|
|
164
|
+
'aria-activedescendant': open && activeValue && !hasSearch ? `${contentId}-option-${activeValue}` : undefined,
|
|
162
165
|
'aria-required': contextRequired || undefined,
|
|
163
166
|
'aria-invalid': contextInvalid || undefined,
|
|
164
167
|
'aria-readonly': contextReadOnly || undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_utils","_focus","_interactions","_context","FIELD_STATES","useSelectTrigger","forwardedRef","options","asChild","isHovered","isHoveredProp","isActive","isActiveProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","isDisabled","isDisabledProp","ariaDescribedBy","ariaDescribedByProp","onPress","consumerOnPress","onPressIn","consumerOnPressIn","onPressOut","consumerOnPressOut","onHoverIn","consumerOnHoverIn","onHoverOut","consumerOnHoverOut","onFocus","consumerOnFocus","onBlur","consumerOnBlur","onKeyDown","consumerOnKeyDown","open","setOpen","disabled","contextDisabled","required","contextRequired","invalid","contextInvalid","readOnly","contextReadOnly","triggerId","contentId","triggerRef","activeValue","accessibilityLabel","ariaDescribedByFromField","useSelectContext","field","useFormControlContext","pressProps","isPressed","usePress","focusProps","useFocus","triggerFocused","setTriggerFocused","useState","handlePress","useCallback","_e","handleKeyDown","e","key","preventDefault","isLabelActive","Boolean","useReportFormControlLabelFocus","useLayoutEffect","interactionState","useMemo","hover","focus","active","focusVisible","labelFocusGateRef","useRef","current","labelFocusBridge","isOff","isRO","node","shouldMountLabelFocusBridge","inputRef","r","mergedRef","mergeRefs","filter","join","ariaProps","role","undefined","id","fieldState","dataAttrValues","readonly","state","handlers","composeEventHandlers"],"sourceRoot":"../../../src","sources":["select/useSelectTrigger.web.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAUA,IAAAC,MAAA,GAAAD,OAAA;AAOA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAJ,OAAA;AASA,MAAMK,YAAY,GAAG;EACnB,aAAa,EAAE,MAAM;EACrB,YAAY,EAAE,SAAS;EACvB,YAAY,EAAE,SAAS;EACvB,WAAW,EAAE;AACf,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,gBAAgBA,CAC9BC,YAAmC,EACnCC,OAAgC,EACR;EACxB,MAAM;IACJC,OAAO;IACPC,SAAS,EAAEC,aAAa;IACxBC,QAAQ,EAAEC,YAAY;IACtBC,SAAS,EAAEC,aAAa;IACxBC,cAAc,EAAEC,kBAAkB;IAClCC,UAAU,EAAEC,cAAc;IAC1BC,eAAe,EAAEC,mBAAmB;IACpCC,OAAO,EAAEC,eAAe;IACxBC,SAAS,EAAEC,iBAAiB;IAC5BC,UAAU,EAAEC,kBAAkB;IAC9BC,SAAS,EAAEC,iBAAiB;IAC5BC,UAAU,EAAEC,kBAAkB;IAC9BC,OAAO,EAAEC,eAAe;IACxBC,MAAM,EAAEC,cAAc;IACtBC,SAAS,EAAEC;EACb,CAAC,GAAG7B,OAAO;EAEX,MAAM;IACJ8B,IAAI;IACJC,OAAO;IACPC,QAAQ,EAAEC,eAAe;IACzBC,QAAQ,EAAEC,eAAe;IACzBC,OAAO,EAAEC,cAAc;IACvBC,QAAQ,EAAEC,eAAe;IACzBC,SAAS;IACTC,SAAS;IACTC,UAAU;IACVC,WAAW;IACXC,kBAAkB;
|
|
1
|
+
{"version":3,"names":["_react","require","_utils","_focus","_interactions","_context","FIELD_STATES","useSelectTrigger","forwardedRef","options","asChild","isHovered","isHoveredProp","isActive","isActiveProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","isDisabled","isDisabledProp","ariaDescribedBy","ariaDescribedByProp","onPress","consumerOnPress","onPressIn","consumerOnPressIn","onPressOut","consumerOnPressOut","onHoverIn","consumerOnHoverIn","onHoverOut","consumerOnHoverOut","onFocus","consumerOnFocus","onBlur","consumerOnBlur","onKeyDown","consumerOnKeyDown","open","setOpen","disabled","contextDisabled","required","contextRequired","invalid","contextInvalid","readOnly","contextReadOnly","triggerId","contentId","triggerRef","activeValue","hasSearch","accessibilityLabel","ariaDescribedByFromField","useSelectContext","field","useFormControlContext","pressProps","isPressed","usePress","focusProps","useFocus","triggerFocused","setTriggerFocused","useState","handlePress","useCallback","_e","handleKeyDown","e","key","preventDefault","isLabelActive","Boolean","useReportFormControlLabelFocus","useLayoutEffect","interactionState","useMemo","hover","focus","active","focusVisible","labelFocusGateRef","useRef","current","labelFocusBridge","isOff","isRO","node","shouldMountLabelFocusBridge","inputRef","r","mergedRef","mergeRefs","filter","join","ariaProps","role","undefined","id","fieldState","dataAttrValues","readonly","state","handlers","composeEventHandlers"],"sourceRoot":"../../../src","sources":["select/useSelectTrigger.web.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,16 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { forwardRef, useCallback, useRef } from 'react';
|
|
3
|
+
import React, { forwardRef, useCallback, useMemo, useRef } from 'react';
|
|
4
4
|
import { Platform, View } from 'react-native';
|
|
5
5
|
import { FadeIn, FadeOut } from 'react-native-reanimated';
|
|
6
6
|
import { composeEventHandlers, mergeRefs } from '@cdx-ui/utils';
|
|
7
|
+
import { FocusScope } from '@react-native-aria/focus';
|
|
7
8
|
import { OverlayContainer, useAnchoredOverlay, useDismissOverlay, useEscapeKey } from '../overlay';
|
|
8
9
|
import { Slot } from '../slot';
|
|
9
10
|
import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
|
|
10
|
-
import { useSelectContext } from './context';
|
|
11
|
+
import { SelectContentProvider, useSelectContext } from './context';
|
|
12
|
+
import { getPopupRoleProps } from './popupRole';
|
|
13
|
+
import { SelectDismissButton } from './SelectDismissButton';
|
|
11
14
|
import { useContentFocus } from './useContentFocus';
|
|
12
15
|
import { useListboxNavigation } from './useListboxNavigation';
|
|
13
|
-
import {
|
|
16
|
+
import { useQueryHighlight } from './useQueryHighlight';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Keeps DOM focus in the search input when the pointer goes down elsewhere in the popup, so
|
|
20
|
+
* typing continues after an option is clicked (virtual focus).
|
|
21
|
+
*/
|
|
22
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
23
|
+
function keepSearchInputFocus(e) {
|
|
24
|
+
const target = e.target;
|
|
25
|
+
if (target?.closest?.('input, textarea') == null) {
|
|
26
|
+
e.preventDefault();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
14
29
|
export const SelectContent = /*#__PURE__*/forwardRef(({
|
|
15
30
|
asChild,
|
|
16
31
|
children,
|
|
@@ -21,6 +36,7 @@ export const SelectContent = /*#__PURE__*/forwardRef(({
|
|
|
21
36
|
placement = 'bottom-start',
|
|
22
37
|
offset = 4,
|
|
23
38
|
crossOffset = 0,
|
|
39
|
+
dismissAccessibilityLabel = 'Dismiss',
|
|
24
40
|
...props
|
|
25
41
|
}, ref) => {
|
|
26
42
|
const {
|
|
@@ -30,23 +46,21 @@ export const SelectContent = /*#__PURE__*/forwardRef(({
|
|
|
30
46
|
triggerId,
|
|
31
47
|
activeValue,
|
|
32
48
|
setActiveValue,
|
|
33
|
-
|
|
34
|
-
|
|
49
|
+
type,
|
|
50
|
+
selectedValues,
|
|
51
|
+
toggleValue,
|
|
52
|
+
selectValueAndClose,
|
|
53
|
+
isItemDisabled,
|
|
35
54
|
native,
|
|
36
55
|
triggerRef,
|
|
37
|
-
|
|
56
|
+
inputValue,
|
|
57
|
+
visibleItems,
|
|
58
|
+
hasSearch,
|
|
59
|
+
labelId,
|
|
60
|
+
accessibilityLabel
|
|
38
61
|
} = useSelectContext();
|
|
39
62
|
const contentRef = useRef(null);
|
|
40
|
-
const
|
|
41
|
-
contentRef.current = node;
|
|
42
|
-
if (node && Platform.OS === 'web') {
|
|
43
|
-
requestAnimationFrame(() => {
|
|
44
|
-
setTimeout(() => {
|
|
45
|
-
node.focus?.();
|
|
46
|
-
}, 100);
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}, []);
|
|
63
|
+
const dismissButtonRef = useRef(null);
|
|
50
64
|
const dismiss = useCallback(() => setOpen(false), [setOpen]);
|
|
51
65
|
const overlayOpen = open && !native;
|
|
52
66
|
const {
|
|
@@ -61,55 +75,87 @@ export const SelectContent = /*#__PURE__*/forwardRef(({
|
|
|
61
75
|
collisionBehavior: 'flip-shift',
|
|
62
76
|
width: 'anchor'
|
|
63
77
|
});
|
|
64
|
-
const mergedRef = mergeRefs(ref,
|
|
65
|
-
useDismissOverlay(overlayOpen, contentRef, [triggerRef], dismiss);
|
|
78
|
+
const mergedRef = mergeRefs(ref, contentRef, floatingRef);
|
|
79
|
+
useDismissOverlay(overlayOpen, contentRef, [triggerRef, dismissButtonRef], dismiss);
|
|
66
80
|
useEscapeKey(overlayOpen, dismiss);
|
|
67
81
|
const {
|
|
68
82
|
handleKeyDown
|
|
69
83
|
} = useListboxNavigation({
|
|
70
|
-
items,
|
|
84
|
+
items: visibleItems,
|
|
71
85
|
activeValue,
|
|
72
86
|
setActiveValue,
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
onDismiss: dismiss
|
|
87
|
+
type,
|
|
88
|
+
onToggle: toggleValue,
|
|
89
|
+
onSelectAndClose: selectValueAndClose,
|
|
90
|
+
isItemDisabled,
|
|
91
|
+
onDismiss: dismiss,
|
|
92
|
+
isSearch: hasSearch
|
|
78
93
|
});
|
|
79
94
|
useContentFocus({
|
|
80
95
|
open,
|
|
81
96
|
triggerRef,
|
|
82
|
-
items,
|
|
83
|
-
value,
|
|
84
97
|
setActiveValue
|
|
85
98
|
});
|
|
99
|
+
useQueryHighlight({
|
|
100
|
+
open,
|
|
101
|
+
inputValue,
|
|
102
|
+
visibleItems,
|
|
103
|
+
selectedValues,
|
|
104
|
+
isItemDisabled,
|
|
105
|
+
activeValue,
|
|
106
|
+
setActiveValue
|
|
107
|
+
});
|
|
108
|
+
const contentContext = useMemo(() => ({
|
|
109
|
+
handleKeyDown
|
|
110
|
+
}), [handleKeyDown]);
|
|
86
111
|
if (!overlayOpen) {
|
|
87
112
|
return null;
|
|
88
113
|
}
|
|
89
|
-
const
|
|
114
|
+
const platformProps = Platform.OS === 'web' ? {
|
|
90
115
|
onKeyDown: composeEventHandlers(props.onKeyDown, handleKeyDown),
|
|
91
|
-
tabIndex: -1
|
|
92
|
-
|
|
116
|
+
tabIndex: -1,
|
|
117
|
+
'aria-multiselectable': !hasSearch && type === 'multiple' || undefined,
|
|
118
|
+
...(hasSearch ? {
|
|
119
|
+
onMouseDown: keepSearchInputFocus
|
|
120
|
+
} : {})
|
|
121
|
+
} : {
|
|
122
|
+
onAccessibilityEscape: composeEventHandlers(props.onAccessibilityEscape, dismiss)
|
|
123
|
+
};
|
|
124
|
+
const roleProps = getPopupRoleProps({
|
|
125
|
+
hasSearch,
|
|
126
|
+
labelId,
|
|
127
|
+
accessibilityLabel,
|
|
128
|
+
triggerId
|
|
129
|
+
});
|
|
93
130
|
const Comp = asChild ? Slot : View;
|
|
94
|
-
return /*#__PURE__*/_jsx(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
131
|
+
return /*#__PURE__*/_jsx(SelectContentProvider, {
|
|
132
|
+
value: contentContext,
|
|
133
|
+
children: /*#__PURE__*/_jsx(OverlayContainer, {
|
|
134
|
+
onDismiss: dismiss,
|
|
135
|
+
entering: enteringAnimation ?? FadeIn.duration(150),
|
|
136
|
+
exiting: exitingAnimation ?? FadeOut.duration(100),
|
|
137
|
+
children: /*#__PURE__*/_jsxs(FocusScope, {
|
|
138
|
+
autoFocus: true,
|
|
139
|
+
children: [/*#__PURE__*/_jsx(Comp, {
|
|
140
|
+
ref: mergedRef,
|
|
141
|
+
onLayout: composeEventHandlers(onLayout, onFloatingLayout),
|
|
142
|
+
style: [style, overlayStyle],
|
|
143
|
+
id: contentId,
|
|
144
|
+
...roleProps,
|
|
145
|
+
...props,
|
|
146
|
+
...mergeDataAttributes(props, dataAttributes({
|
|
147
|
+
state: 'open',
|
|
148
|
+
side: position?.resolvedPlacement.side,
|
|
149
|
+
align: position?.resolvedPlacement.align
|
|
150
|
+
})),
|
|
151
|
+
...platformProps,
|
|
152
|
+
children: children
|
|
153
|
+
}), /*#__PURE__*/_jsx(SelectDismissButton, {
|
|
154
|
+
ref: dismissButtonRef,
|
|
155
|
+
onDismiss: dismiss,
|
|
156
|
+
accessibilityLabel: dismissAccessibilityLabel
|
|
157
|
+
})]
|
|
158
|
+
})
|
|
113
159
|
})
|
|
114
160
|
});
|
|
115
161
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useCallback","useRef","Platform","View","FadeIn","FadeOut","composeEventHandlers","mergeRefs","OverlayContainer","useAnchoredOverlay","useDismissOverlay","useEscapeKey","Slot","dataAttributes","mergeDataAttributes","useSelectContext","useContentFocus","useListboxNavigation","jsx","_jsx","SelectContent","asChild","children","enteringAnimation","exitingAnimation","onLayout","style","placement","offset","crossOffset","props","ref","open","setOpen","contentId","triggerId","activeValue","setActiveValue","
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useCallback","useMemo","useRef","Platform","View","FadeIn","FadeOut","composeEventHandlers","mergeRefs","FocusScope","OverlayContainer","useAnchoredOverlay","useDismissOverlay","useEscapeKey","Slot","dataAttributes","mergeDataAttributes","SelectContentProvider","useSelectContext","getPopupRoleProps","SelectDismissButton","useContentFocus","useListboxNavigation","useQueryHighlight","jsx","_jsx","jsxs","_jsxs","keepSearchInputFocus","e","target","closest","preventDefault","SelectContent","asChild","children","enteringAnimation","exitingAnimation","onLayout","style","placement","offset","crossOffset","dismissAccessibilityLabel","props","ref","open","setOpen","contentId","triggerId","activeValue","setActiveValue","type","selectedValues","toggleValue","selectValueAndClose","isItemDisabled","native","triggerRef","inputValue","visibleItems","hasSearch","labelId","accessibilityLabel","contentRef","dismissButtonRef","dismiss","overlayOpen","floatingRef","onFloatingLayout","overlayStyle","position","collisionBehavior","width","mergedRef","handleKeyDown","items","onToggle","onSelectAndClose","onDismiss","isSearch","contentContext","platformProps","OS","onKeyDown","tabIndex","undefined","onMouseDown","onAccessibilityEscape","roleProps","Comp","value","entering","duration","exiting","autoFocus","id","state","side","resolvedPlacement","align","displayName"],"sourceRoot":"../../../src","sources":["select/SelectContent.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* Web-only. Native screen readers close the popup with the iOS escape gesture
|
|
6
|
+
* (`onAccessibilityEscape` on `SelectContent`) and Android back (`onRequestClose`).
|
|
7
|
+
*/
|
|
8
|
+
export const SelectDismissButton = /*#__PURE__*/forwardRef(() => null);
|
|
9
|
+
SelectDismissButton.displayName = 'SelectDismissButton';
|
|
10
|
+
//# sourceMappingURL=SelectDismissButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","SelectDismissButton","displayName"],"sourceRoot":"../../../src","sources":["select/SelectDismissButton.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAOlC;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,gBAAGD,UAAU,CAAoC,MAAM,IAAI,CAAC;AAE5FC,mBAAmB,CAACC,WAAW,GAAG,qBAAqB","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { VisuallyHidden } from '@react-aria/visually-hidden';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
/**
|
|
7
|
+
* Visually hidden close control for screen-reader users, who cannot press Escape or click
|
|
8
|
+
* outside while browsing the popup. Out of the Tab order (Tab already closes the listbox).
|
|
9
|
+
* Rendered as a sibling of the listbox because a listbox may only own options.
|
|
10
|
+
*/
|
|
11
|
+
export const SelectDismissButton = /*#__PURE__*/forwardRef(({
|
|
12
|
+
onDismiss,
|
|
13
|
+
accessibilityLabel
|
|
14
|
+
}, ref) => /*#__PURE__*/_jsx(VisuallyHidden, {
|
|
15
|
+
children: /*#__PURE__*/_jsx("button", {
|
|
16
|
+
ref: ref,
|
|
17
|
+
type: "button",
|
|
18
|
+
tabIndex: -1,
|
|
19
|
+
"aria-label": accessibilityLabel,
|
|
20
|
+
onClick: onDismiss
|
|
21
|
+
})
|
|
22
|
+
}));
|
|
23
|
+
SelectDismissButton.displayName = 'SelectDismissButton';
|
|
24
|
+
//# sourceMappingURL=SelectDismissButton.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","VisuallyHidden","jsx","_jsx","SelectDismissButton","onDismiss","accessibilityLabel","ref","children","type","tabIndex","onClick","displayName"],"sourceRoot":"../../../src","sources":["select/SelectDismissButton.web.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,cAAc,QAAQ,6BAA6B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAK7D;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,gBAAGJ,UAAU,CAC3C,CAAC;EAAEK,SAAS;EAAEC;AAAmB,CAAC,EAAEC,GAAG,kBACrCJ,IAAA,CAACF,cAAc;EAAAO,QAAA,eACbL,IAAA;IACEI,GAAG,EAAEA,GAAI;IACTE,IAAI,EAAC,QAAQ;IACbC,QAAQ,EAAE,CAAC,CAAE;IACb,cAAYJ,kBAAmB;IAC/BK,OAAO,EAAEN;EAAU,CACpB;AAAC,CACY,CAEpB,CAAC;AAEDD,mBAAmB,CAACQ,WAAW,GAAG,qBAAqB","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Children, forwardRef, isValidElement, useLayoutEffect } from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { Slot } from '../slot';
|
|
6
|
+
import { useSelectContext } from './context';
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
function getTextContent(node) {
|
|
9
|
+
return Children.toArray(node).map(child => {
|
|
10
|
+
if (typeof child === 'string' || typeof child === 'number') {
|
|
11
|
+
return String(child);
|
|
12
|
+
}
|
|
13
|
+
if (/*#__PURE__*/isValidElement(child)) {
|
|
14
|
+
return getTextContent(child.props.children);
|
|
15
|
+
}
|
|
16
|
+
return '';
|
|
17
|
+
}).join('');
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Renders only when no option matches. Its text is also what the search live region
|
|
22
|
+
* announces in that case.
|
|
23
|
+
*/
|
|
24
|
+
export const SelectEmpty = /*#__PURE__*/forwardRef(({
|
|
25
|
+
asChild,
|
|
26
|
+
children,
|
|
27
|
+
...props
|
|
28
|
+
}, ref) => {
|
|
29
|
+
const {
|
|
30
|
+
visibleItems,
|
|
31
|
+
setEmptyText
|
|
32
|
+
} = useSelectContext();
|
|
33
|
+
const text = getTextContent(children);
|
|
34
|
+
useLayoutEffect(() => {
|
|
35
|
+
setEmptyText(text || undefined);
|
|
36
|
+
return () => setEmptyText(undefined);
|
|
37
|
+
}, [setEmptyText, text]);
|
|
38
|
+
if (visibleItems.length > 0) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const Comp = asChild ? Slot : View;
|
|
42
|
+
return /*#__PURE__*/_jsx(Comp, {
|
|
43
|
+
ref: ref,
|
|
44
|
+
...props,
|
|
45
|
+
children: children
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
SelectEmpty.displayName = 'SelectEmpty';
|
|
49
|
+
//# sourceMappingURL=SelectEmpty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Children","forwardRef","isValidElement","useLayoutEffect","View","Slot","useSelectContext","jsx","_jsx","getTextContent","node","toArray","map","child","String","props","children","join","SelectEmpty","asChild","ref","visibleItems","setEmptyText","text","undefined","length","Comp","displayName"],"sourceRoot":"../../../src","sources":["select/SelectEmpty.tsx"],"mappings":";;AAAA,SACEA,QAAQ,EACRC,UAAU,EACVC,cAAc,EACdC,eAAe,QAGV,OAAO;AACd,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,gBAAgB,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ7C,SAASC,cAAcA,CAACC,IAAe,EAAU;EAC/C,OAAOV,QAAQ,CAACW,OAAO,CAACD,IAAI,CAAC,CAC1BE,GAAG,CAAEC,KAAK,IAAK;IACd,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC1D,OAAOC,MAAM,CAACD,KAAK,CAAC;IACtB;IACA,iBAAIX,cAAc,CAA2BW,KAAK,CAAC,EAAE;MACnD,OAAOJ,cAAc,CAACI,KAAK,CAACE,KAAK,CAACC,QAAQ,CAAC;IAC7C;IACA,OAAO,EAAE;EACX,CAAC,CAAC,CACDC,IAAI,CAAC,EAAE,CAAC;AACb;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,gBAAGjB,UAAU,CACnC,CAAC;EAAEkB,OAAO;EAAEH,QAAQ;EAAE,GAAGD;AAAM,CAAC,EAAEK,GAAG,KAAK;EACxC,MAAM;IAAEC,YAAY;IAAEC;EAAa,CAAC,GAAGhB,gBAAgB,CAAC,CAAC;EACzD,MAAMiB,IAAI,GAAGd,cAAc,CAACO,QAAQ,CAAC;EAErCb,eAAe,CAAC,MAAM;IACpBmB,YAAY,CAACC,IAAI,IAAIC,SAAS,CAAC;IAC/B,OAAO,MAAMF,YAAY,CAACE,SAAS,CAAC;EACtC,CAAC,EAAE,CAACF,YAAY,EAAEC,IAAI,CAAC,CAAC;EAExB,IAAIF,YAAY,CAACI,MAAM,GAAG,CAAC,EAAE;IAC3B,OAAO,IAAI;EACb;EAEA,MAAMC,IAAI,GAAGP,OAAO,GAAGd,IAAI,GAAGD,IAAI;EAElC,oBACEI,IAAA,CAACkB,IAAI;IAACN,GAAG,EAAEA,GAAI;IAAA,GAAKL,KAAK;IAAAC,QAAA,EACtBA;EAAQ,CACL,CAAC;AAEX,CACF,CAAC;AAEDE,WAAW,CAACS,WAAW,GAAG,aAAa","ignoreList":[]}
|