@cdx-ui/primitives 0.3.2 → 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/index.js +12 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/insight/InsightRoot.js +159 -0
- package/lib/commonjs/insight/InsightRoot.js.map +1 -0
- package/lib/commonjs/insight/context.js +11 -0
- package/lib/commonjs/insight/context.js.map +1 -0
- package/lib/commonjs/insight/index.js +26 -0
- package/lib/commonjs/insight/index.js.map +1 -0
- package/lib/commonjs/insight/types.js +6 -0
- package/lib/commonjs/insight/types.js.map +1 -0
- package/lib/commonjs/list-item/ListItemRoot.js +2 -18
- package/lib/commonjs/list-item/ListItemRoot.js.map +1 -1
- 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/commonjs/utils/splitContainerProps.js +26 -0
- package/lib/commonjs/utils/splitContainerProps.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/insight/InsightRoot.js +154 -0
- package/lib/module/insight/InsightRoot.js.map +1 -0
- package/lib/module/insight/context.js +5 -0
- package/lib/module/insight/context.js.map +1 -0
- package/lib/module/insight/index.js +5 -0
- package/lib/module/insight/index.js.map +1 -0
- package/lib/module/insight/types.js +4 -0
- package/lib/module/insight/types.js.map +1 -0
- package/lib/module/list-item/ListItemRoot.js +1 -17
- package/lib/module/list-item/ListItemRoot.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/module/utils/splitContainerProps.js +22 -0
- package/lib/module/utils/splitContainerProps.js.map +1 -0
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/insight/InsightRoot.d.ts +6 -0
- package/lib/typescript/insight/InsightRoot.d.ts.map +1 -0
- package/lib/typescript/insight/context.d.ts +6 -0
- package/lib/typescript/insight/context.d.ts.map +1 -0
- package/lib/typescript/insight/index.d.ts +4 -0
- package/lib/typescript/insight/index.d.ts.map +1 -0
- package/lib/typescript/insight/types.d.ts +44 -0
- package/lib/typescript/insight/types.d.ts.map +1 -0
- package/lib/typescript/list-item/ListItemRoot.d.ts.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/lib/typescript/utils/splitContainerProps.d.ts +9 -0
- package/lib/typescript/utils/splitContainerProps.d.ts.map +1 -0
- package/package.json +3 -3
- package/src/index.ts +1 -0
- package/src/insight/InsightRoot.tsx +162 -0
- package/src/insight/context.tsx +5 -0
- package/src/insight/index.ts +11 -0
- package/src/insight/types.ts +51 -0
- package/src/list-item/ListItemRoot.tsx +1 -14
- 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
- package/src/utils/splitContainerProps.ts +16 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SelectSearchStatus = SelectSearchStatus;
|
|
7
|
+
/**
|
|
8
|
+
* Web-only. On native, screen readers move through the rows directly, in the anchored popover
|
|
9
|
+
* or in `Select.BottomSheet`, instead of following an input-driven live region.
|
|
10
|
+
*/
|
|
11
|
+
function SelectSearchStatus(_props) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=SelectSearchStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SelectSearchStatus","_props"],"sourceRoot":"../../../src","sources":["select/SelectSearchStatus.tsx"],"mappings":";;;;;;AAIA;AACA;AACA;AACA;AACO,SAASA,kBAAkBA,CAACC,MAA+B,EAAE;EAClE,OAAO,IAAI;AACb","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SelectSearchStatus = SelectSearchStatus;
|
|
7
|
+
var _visuallyHidden = require("@react-aria/visually-hidden");
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
+
/**
|
|
10
|
+
* Polite live region for the search results. It stays mounted while the search is, so each
|
|
11
|
+
* change to the count (or to the empty-state text) is announced.
|
|
12
|
+
*/
|
|
13
|
+
function SelectSearchStatus({
|
|
14
|
+
message
|
|
15
|
+
}) {
|
|
16
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_visuallyHidden.VisuallyHidden, {
|
|
17
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
18
|
+
role: "status",
|
|
19
|
+
"aria-live": "polite",
|
|
20
|
+
children: message
|
|
21
|
+
})
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=SelectSearchStatus.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_visuallyHidden","require","_jsxRuntime","SelectSearchStatus","message","jsx","VisuallyHidden","children","role"],"sourceRoot":"../../../src","sources":["select/SelectSearchStatus.web.tsx"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAA6D,IAAAC,WAAA,GAAAD,OAAA;AAK7D;AACA;AACA;AACA;AACO,SAASE,kBAAkBA,CAAC;EAAEC;AAAiC,CAAC,EAAE;EACvE,oBACE,IAAAF,WAAA,CAAAG,GAAA,EAACL,eAAA,CAAAM,cAAc;IAAAC,QAAA,eACb,IAAAL,WAAA,CAAAG,GAAA;MAAKG,IAAI,EAAC,QAAQ;MAAC,aAAU,QAAQ;MAAAD,QAAA,EAClCH;IAAO,CACL;EAAC,CACQ,CAAC;AAErB","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SelectSheetContent = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _utils = require("@cdx-ui/utils");
|
|
10
|
+
var _slot = require("../slot");
|
|
11
|
+
var _dataAttributes = require("../utils/dataAttributes");
|
|
12
|
+
var _context = require("./context");
|
|
13
|
+
var _popupRole = require("./popupRole");
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
/**
|
|
16
|
+
* Native rows take screen-reader focus directly, so the sheet has no listbox keyboard model
|
|
17
|
+
* for `Select.Search` to drive.
|
|
18
|
+
*/
|
|
19
|
+
const SHEET_CONTENT_CONTEXT = {
|
|
20
|
+
handleKeyDown: () => undefined
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Body of a native sheet surface that presents the options in place of `SelectContent`. The
|
|
25
|
+
* styled layer owns presentation (open, swipe, backdrop, back) and renders this inside it.
|
|
26
|
+
* It carries the popup role and name, and closes on the VoiceOver escape gesture without
|
|
27
|
+
* changing the value.
|
|
28
|
+
*/
|
|
29
|
+
const SelectSheetContent = exports.SelectSheetContent = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
30
|
+
asChild,
|
|
31
|
+
children,
|
|
32
|
+
onAccessibilityEscape,
|
|
33
|
+
...props
|
|
34
|
+
}, ref) => {
|
|
35
|
+
const {
|
|
36
|
+
setOpen,
|
|
37
|
+
hasSearch,
|
|
38
|
+
labelId,
|
|
39
|
+
accessibilityLabel,
|
|
40
|
+
triggerId,
|
|
41
|
+
contentId
|
|
42
|
+
} = (0, _context.useSelectContext)();
|
|
43
|
+
const dismiss = (0, _react.useCallback)(() => setOpen(false), [setOpen]);
|
|
44
|
+
const roleProps = (0, _popupRole.getPopupRoleProps)({
|
|
45
|
+
hasSearch,
|
|
46
|
+
labelId,
|
|
47
|
+
accessibilityLabel,
|
|
48
|
+
triggerId
|
|
49
|
+
});
|
|
50
|
+
const Comp = asChild ? _slot.Slot : _reactNative.View;
|
|
51
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.SelectContentProvider, {
|
|
52
|
+
value: SHEET_CONTENT_CONTEXT,
|
|
53
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Comp, {
|
|
54
|
+
ref: ref,
|
|
55
|
+
id: contentId,
|
|
56
|
+
...roleProps,
|
|
57
|
+
...props,
|
|
58
|
+
...(0, _dataAttributes.mergeDataAttributes)(props, (0, _dataAttributes.dataAttributes)({
|
|
59
|
+
state: 'open'
|
|
60
|
+
})),
|
|
61
|
+
onAccessibilityEscape: (0, _utils.composeEventHandlers)(onAccessibilityEscape, dismiss),
|
|
62
|
+
children: children
|
|
63
|
+
})
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
SelectSheetContent.displayName = 'SelectSheetContent';
|
|
67
|
+
//# sourceMappingURL=SelectSheetContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_utils","_slot","_dataAttributes","_context","_popupRole","_jsxRuntime","SHEET_CONTENT_CONTEXT","handleKeyDown","undefined","SelectSheetContent","exports","forwardRef","asChild","children","onAccessibilityEscape","props","ref","setOpen","hasSearch","labelId","accessibilityLabel","triggerId","contentId","useSelectContext","dismiss","useCallback","roleProps","getPopupRoleProps","Comp","Slot","View","jsx","SelectContentProvider","value","id","mergeDataAttributes","dataAttributes","state","composeEventHandlers","displayName"],"sourceRoot":"../../../src","sources":["select/SelectSheetContent.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AAAgD,IAAAO,WAAA,GAAAP,OAAA;AAQhD;AACA;AACA;AACA;AACA,MAAMQ,qBAAgD,GAAG;EAAEC,aAAa,EAAEA,CAAA,KAAMC;AAAU,CAAC;;AAE3F;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,gBAAG,IAAAE,iBAAU,EAC1C,CAAC;EAAEC,OAAO;EAAEC,QAAQ;EAAEC,qBAAqB;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC/D,MAAM;IAAEC,OAAO;IAAEC,SAAS;IAAEC,OAAO;IAAEC,kBAAkB;IAAEC,SAAS;IAAEC;EAAU,CAAC,GAC7E,IAAAC,yBAAgB,EAAC,CAAC;EAEpB,MAAMC,OAAO,GAAG,IAAAC,kBAAW,EAAC,MAAMR,OAAO,CAAC,KAAK,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAC5D,MAAMS,SAAS,GAAG,IAAAC,4BAAiB,EAAC;IAAET,SAAS;IAAEC,OAAO;IAAEC,kBAAkB;IAAEC;EAAU,CAAC,CAAC;EAE1F,MAAMO,IAAI,GAAGhB,OAAO,GAAGiB,UAAI,GAAGC,iBAAI;EAElC,oBACE,IAAAzB,WAAA,CAAA0B,GAAA,EAAC5B,QAAA,CAAA6B,qBAAqB;IAACC,KAAK,EAAE3B,qBAAsB;IAAAO,QAAA,eAClD,IAAAR,WAAA,CAAA0B,GAAA,EAACH,IAAI;MACHZ,GAAG,EAAEA,GAAI;MACTkB,EAAE,EAAEZ,SAAU;MAAA,GACVI,SAAS;MAAA,GACTX,KAAK;MAAA,GACL,IAAAoB,mCAAmB,EAACpB,KAAK,EAAE,IAAAqB,8BAAc,EAAC;QAAEC,KAAK,EAAE;MAAO,CAAC,CAAC,CAAC;MACjEvB,qBAAqB,EAAE,IAAAwB,2BAAoB,EAACxB,qBAAqB,EAAEU,OAAO,CAAE;MAAAX,QAAA,EAE3EA;IAAQ,CACL;EAAC,CACc,CAAC;AAE5B,CACF,CAAC;AAEDJ,kBAAkB,CAAC8B,WAAW,GAAG,oBAAoB","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.useSelectItemContext = exports.useSelectContext = exports.SelectProvider = exports.SelectItemProvider = void 0;
|
|
6
|
+
exports.useSelectItemContext = exports.useSelectContext = exports.useSelectContentContext = exports.SelectProvider = exports.SelectItemProvider = exports.SelectContentProvider = void 0;
|
|
7
7
|
var _utils = require("@cdx-ui/utils");
|
|
8
8
|
const [SelectProvider, useSelectContext] = (0, _utils.createContext)('SelectContext');
|
|
9
9
|
|
|
@@ -16,4 +16,8 @@ exports.SelectProvider = SelectProvider;
|
|
|
16
16
|
const [SelectItemProvider, useSelectItemContext] = (0, _utils.createContext)('SelectItemContext');
|
|
17
17
|
exports.useSelectItemContext = useSelectItemContext;
|
|
18
18
|
exports.SelectItemProvider = SelectItemProvider;
|
|
19
|
+
/** Internal: lets `Select.Search` drive the listbox from its input. */
|
|
20
|
+
const [SelectContentProvider, useSelectContentContext] = (0, _utils.createContext)('SelectContentContext');
|
|
21
|
+
exports.useSelectContentContext = useSelectContentContext;
|
|
22
|
+
exports.SelectContentProvider = SelectContentProvider;
|
|
19
23
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_utils","require","SelectProvider","useSelectContext","createContext","exports","SelectItemProvider","useSelectItemContext"],"sourceRoot":"../../../src","sources":["select/context.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGO,MAAM,CAACC,cAAc,EAAEC,gBAAgB,CAAC,GAC7C,IAAAC,oBAAa,EAAqB,eAAe,CAAC;;AAEpD;AACA;AACA;AACA;AAHAC,OAAA,CAAAF,gBAAA,GAAAA,gBAAA;AAAAE,OAAA,CAAAH,cAAA,GAAAA,cAAA;AAIO,MAAM,CAACI,kBAAkB,EAAEC,oBAAoB,CAAC,GACrD,IAAAH,oBAAa,EAA6B,mBAAmB,CAAC;AAACC,OAAA,CAAAE,oBAAA,GAAAA,oBAAA;AAAAF,OAAA,CAAAC,kBAAA,GAAAA,kBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_utils","require","SelectProvider","useSelectContext","createContext","exports","SelectItemProvider","useSelectItemContext","SelectContentProvider","useSelectContentContext"],"sourceRoot":"../../../src","sources":["select/context.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGO,MAAM,CAACC,cAAc,EAAEC,gBAAgB,CAAC,GAC7C,IAAAC,oBAAa,EAAqB,eAAe,CAAC;;AAEpD;AACA;AACA;AACA;AAHAC,OAAA,CAAAF,gBAAA,GAAAA,gBAAA;AAAAE,OAAA,CAAAH,cAAA,GAAAA,cAAA;AAIO,MAAM,CAACI,kBAAkB,EAAEC,oBAAoB,CAAC,GACrD,IAAAH,oBAAa,EAA6B,mBAAmB,CAAC;AAACC,OAAA,CAAAE,oBAAA,GAAAA,oBAAA;AAAAF,OAAA,CAAAC,kBAAA,GAAAA,kBAAA;AAOjE;AACO,MAAM,CAACE,qBAAqB,EAAEC,uBAAuB,CAAC,GAC3D,IAAAL,oBAAa,EAA4B,sBAAsB,CAAC;AAACC,OAAA,CAAAI,uBAAA,GAAAA,uBAAA;AAAAJ,OAAA,CAAAG,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.defaultSelectFilter = void 0;
|
|
7
|
+
const COMBINING_MARKS = /[̀-ͯ]/g;
|
|
8
|
+
function normalize(text) {
|
|
9
|
+
const decomposed = typeof text.normalize === 'function' ? text.normalize('NFD') : text;
|
|
10
|
+
return decomposed.replace(COMBINING_MARKS, '').toLocaleLowerCase();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/** Case- and accent-insensitive `contains`: "cafe" matches "Café". */
|
|
14
|
+
const defaultSelectFilter = (textValue, inputValue) => normalize(textValue).includes(normalize(inputValue));
|
|
15
|
+
exports.defaultSelectFilter = defaultSelectFilter;
|
|
16
|
+
//# sourceMappingURL=filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["COMBINING_MARKS","normalize","text","decomposed","replace","toLocaleLowerCase","defaultSelectFilter","textValue","inputValue","includes","exports"],"sourceRoot":"../../../src","sources":["select/filter.ts"],"mappings":";;;;;;AAEA,MAAMA,eAAe,GAAG,QAAQ;AAEhC,SAASC,SAASA,CAACC,IAAY,EAAU;EACvC,MAAMC,UAAU,GAAG,OAAOD,IAAI,CAACD,SAAS,KAAK,UAAU,GAAGC,IAAI,CAACD,SAAS,CAAC,KAAK,CAAC,GAAGC,IAAI;EACtF,OAAOC,UAAU,CAACC,OAAO,CAACJ,eAAe,EAAE,EAAE,CAAC,CAACK,iBAAiB,CAAC,CAAC;AACpE;;AAEA;AACO,MAAMC,mBAAiC,GAAGA,CAACC,SAAS,EAAEC,UAAU,KACrEP,SAAS,CAACM,SAAS,CAAC,CAACE,QAAQ,CAACR,SAAS,CAACO,UAAU,CAAC,CAAC;AAACE,OAAA,CAAAJ,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
|
@@ -9,18 +9,48 @@ Object.defineProperty(exports, "SelectContent", {
|
|
|
9
9
|
return _SelectContent.SelectContent;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
Object.defineProperty(exports, "SelectEmpty", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _SelectEmpty.SelectEmpty;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
12
18
|
Object.defineProperty(exports, "SelectItem", {
|
|
13
19
|
enumerable: true,
|
|
14
20
|
get: function () {
|
|
15
21
|
return _SelectItem.SelectItem;
|
|
16
22
|
}
|
|
17
23
|
});
|
|
24
|
+
Object.defineProperty(exports, "SelectListbox", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _SelectListbox.SelectListbox;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "SelectProvider", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _context.SelectProvider;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
18
36
|
Object.defineProperty(exports, "SelectRoot", {
|
|
19
37
|
enumerable: true,
|
|
20
38
|
get: function () {
|
|
21
39
|
return _SelectRoot.SelectRoot;
|
|
22
40
|
}
|
|
23
41
|
});
|
|
42
|
+
Object.defineProperty(exports, "SelectSearch", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _SelectSearch.SelectSearch;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "SelectSheetContent", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _SelectSheetContent.SelectSheetContent;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
24
54
|
Object.defineProperty(exports, "SelectTrigger", {
|
|
25
55
|
enumerable: true,
|
|
26
56
|
get: function () {
|
|
@@ -43,5 +73,9 @@ var _context = require("./context");
|
|
|
43
73
|
var _SelectRoot = require("./SelectRoot");
|
|
44
74
|
var _SelectTrigger = require("./SelectTrigger");
|
|
45
75
|
var _SelectContent = require("./SelectContent");
|
|
76
|
+
var _SelectSheetContent = require("./SelectSheetContent");
|
|
77
|
+
var _SelectSearch = require("./SelectSearch");
|
|
78
|
+
var _SelectListbox = require("./SelectListbox");
|
|
79
|
+
var _SelectEmpty = require("./SelectEmpty");
|
|
46
80
|
var _SelectItem = require("./SelectItem");
|
|
47
81
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_context","require","_SelectRoot","_SelectTrigger","_SelectContent","_SelectItem"],"sourceRoot":"../../../src","sources":["select/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_context","require","_SelectRoot","_SelectTrigger","_SelectContent","_SelectSheetContent","_SelectSearch","_SelectListbox","_SelectEmpty","_SelectItem"],"sourceRoot":"../../../src","sources":["select/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getPopupRoleProps = getPopupRoleProps;
|
|
7
|
+
/**
|
|
8
|
+
* Role and name of the popup surface. With `Select.Search` the popup is a dialog holding a
|
|
9
|
+
* searchbox and a listbox (a listbox may only own options), named by the field label, then
|
|
10
|
+
* `accessibilityLabel`. Without it the popup is the listbox.
|
|
11
|
+
*/
|
|
12
|
+
function getPopupRoleProps({
|
|
13
|
+
hasSearch,
|
|
14
|
+
labelId,
|
|
15
|
+
accessibilityLabel,
|
|
16
|
+
triggerId
|
|
17
|
+
}) {
|
|
18
|
+
return hasSearch ? {
|
|
19
|
+
role: 'dialog',
|
|
20
|
+
'aria-labelledby': labelId ?? (accessibilityLabel ? undefined : triggerId),
|
|
21
|
+
'aria-label': labelId ? undefined : accessibilityLabel
|
|
22
|
+
} : {
|
|
23
|
+
role: 'listbox',
|
|
24
|
+
'aria-labelledby': triggerId
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=popupRole.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getPopupRoleProps","hasSearch","labelId","accessibilityLabel","triggerId","role","undefined"],"sourceRoot":"../../../src","sources":["select/popupRole.ts"],"mappings":";;;;;;AAOA;AACA;AACA;AACA;AACA;AACO,SAASA,iBAAiBA,CAAC;EAChCC,SAAS;EACTC,OAAO;EACPC,kBAAkB;EAClBC;AACe,CAAC,EAAE;EAClB,OAAOH,SAAS,GACZ;IACEI,IAAI,EAAE,QAAiB;IACvB,iBAAiB,EAAEH,OAAO,KAAKC,kBAAkB,GAAGG,SAAS,GAAGF,SAAS,CAAC;IAC1E,YAAY,EAAEF,OAAO,GAAGI,SAAS,GAAGH;EACtC,CAAC,GACD;IAAEE,IAAI,EAAE,SAAkB;IAAE,iBAAiB,EAAED;EAAU,CAAC;AAChE","ignoreList":[]}
|
|
@@ -10,38 +10,27 @@ var _reactNative = require("react-native");
|
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Manages focus lifecycle for overlay content:
|
|
13
|
+
* - Clears `activeValue` when the overlay closes
|
|
13
14
|
* - Restores focus to the trigger when the overlay closes (web)
|
|
14
|
-
* - Initializes `activeValue` to the current value or first enabled item
|
|
15
15
|
*
|
|
16
|
-
* Initial focus on open is handled
|
|
17
|
-
*
|
|
16
|
+
* Initial focus on open is handled by `FocusScope autoFocus` in SelectContent, and the
|
|
17
|
+
* highlight while open by `useQueryHighlight`.
|
|
18
18
|
*/
|
|
19
19
|
function useContentFocus({
|
|
20
20
|
open,
|
|
21
21
|
triggerRef,
|
|
22
|
-
items,
|
|
23
|
-
value,
|
|
24
22
|
setActiveValue
|
|
25
23
|
}) {
|
|
26
|
-
const prevOpenRef = (0, _react.useRef)(
|
|
27
|
-
const getEnabledItems = (0, _react.useCallback)(() => items.filter(item => !item.disabled), [items]);
|
|
24
|
+
const prevOpenRef = (0, _react.useRef)(false);
|
|
28
25
|
(0, _react.useEffect)(() => {
|
|
29
|
-
|
|
30
|
-
triggerRef.current?.focus?.();
|
|
31
|
-
}
|
|
26
|
+
const wasOpen = prevOpenRef.current;
|
|
32
27
|
prevOpenRef.current = open;
|
|
33
|
-
|
|
34
|
-
(0, _react.useEffect)(() => {
|
|
35
|
-
if (open) {
|
|
36
|
-
const enabled = getEnabledItems();
|
|
37
|
-
if (value && enabled.some(i => i.value === value)) {
|
|
38
|
-
setActiveValue(value);
|
|
39
|
-
} else if (enabled.length > 0) {
|
|
40
|
-
setActiveValue(enabled[0].value);
|
|
41
|
-
}
|
|
42
|
-
} else {
|
|
28
|
+
if (!open) {
|
|
43
29
|
setActiveValue(undefined);
|
|
30
|
+
if (wasOpen && _reactNative.Platform.OS === 'web') {
|
|
31
|
+
triggerRef.current?.focus?.();
|
|
32
|
+
}
|
|
44
33
|
}
|
|
45
|
-
}, [open,
|
|
34
|
+
}, [open, setActiveValue, triggerRef]);
|
|
46
35
|
}
|
|
47
36
|
//# sourceMappingURL=useContentFocus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","useContentFocus","open","triggerRef","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","useContentFocus","open","triggerRef","setActiveValue","prevOpenRef","useRef","useEffect","wasOpen","current","undefined","Platform","OS","focus"],"sourceRoot":"../../../src","sources":["select/useContentFocus.ts"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,eAAeA,CAAC;EAAEC,IAAI;EAAEC,UAAU;EAAEC;AAAuC,CAAC,EAAE;EAC5F,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAAC,KAAK,CAAC;EAEjC,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,OAAO,GAAGH,WAAW,CAACI,OAAO;IACnCJ,WAAW,CAACI,OAAO,GAAGP,IAAI;IAE1B,IAAI,CAACA,IAAI,EAAE;MACTE,cAAc,CAACM,SAAS,CAAC;MACzB,IAAIF,OAAO,IAAIG,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;QACpCT,UAAU,CAACM,OAAO,EAAEI,KAAK,GAAG,CAAC;MAC/B;IACF;EACF,CAAC,EAAE,CAACX,IAAI,EAAEE,cAAc,EAAED,UAAU,CAAC,CAAC;AACxC","ignoreList":[]}
|
|
@@ -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":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.splitContainerProps = splitContainerProps;
|
|
7
|
+
/**
|
|
8
|
+
* Splits the props a split root's container keeps (`className`, data attributes) from the ones
|
|
9
|
+
* its press region receives.
|
|
10
|
+
*/
|
|
11
|
+
function splitContainerProps(props) {
|
|
12
|
+
const container = {};
|
|
13
|
+
const region = {};
|
|
14
|
+
for (const key in props) {
|
|
15
|
+
if (key === 'className' || key === 'dataSet' || key.startsWith('data-')) {
|
|
16
|
+
container[key] = props[key];
|
|
17
|
+
} else {
|
|
18
|
+
region[key] = props[key];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
container,
|
|
23
|
+
region
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=splitContainerProps.js.map
|