@cdx-ui/primitives 0.0.1-beta.159 → 0.0.1-beta.160
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/dialog/DialogContent.js +17 -3
- package/lib/commonjs/dialog/DialogContent.js.map +1 -1
- package/lib/commonjs/dialog/DialogPopup.js +5 -1
- package/lib/commonjs/dialog/DialogPopup.js.map +1 -1
- package/lib/commonjs/index.js +54 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/menu/MenuCheckboxItem.js +42 -0
- package/lib/commonjs/menu/MenuCheckboxItem.js.map +1 -0
- package/lib/commonjs/menu/MenuItem.js +142 -0
- package/lib/commonjs/menu/MenuItem.js.map +1 -0
- package/lib/commonjs/menu/MenuOverlayRoot.js +80 -0
- package/lib/commonjs/menu/MenuOverlayRoot.js.map +1 -0
- package/lib/commonjs/menu/MenuPopup.js +78 -0
- package/lib/commonjs/menu/MenuPopup.js.map +1 -0
- package/lib/commonjs/menu/MenuRadioGroup.js +48 -0
- package/lib/commonjs/menu/MenuRadioGroup.js.map +1 -0
- package/lib/commonjs/menu/MenuRadioItem.js +32 -0
- package/lib/commonjs/menu/MenuRadioItem.js.map +1 -0
- package/lib/commonjs/menu/MenuRoot.js +139 -0
- package/lib/commonjs/menu/MenuRoot.js.map +1 -0
- package/lib/commonjs/menu/MenuTrigger.js +59 -0
- package/lib/commonjs/menu/MenuTrigger.js.map +1 -0
- package/lib/commonjs/menu/context.js +36 -0
- package/lib/commonjs/menu/context.js.map +1 -0
- package/lib/commonjs/menu/index.js +118 -0
- package/lib/commonjs/menu/index.js.map +1 -0
- package/lib/commonjs/menu/overlayContext.js +30 -0
- package/lib/commonjs/menu/overlayContext.js.map +1 -0
- package/lib/commonjs/menu/types.js +6 -0
- package/lib/commonjs/menu/types.js.map +1 -0
- package/lib/commonjs/menu/useMenuNavigation.js +87 -0
- package/lib/commonjs/menu/useMenuNavigation.js.map +1 -0
- package/lib/commonjs/menu/useMenuOverlayLifecycle.js +68 -0
- package/lib/commonjs/menu/useMenuOverlayLifecycle.js.map +1 -0
- package/lib/commonjs/menu/useMenuTrigger.js +115 -0
- package/lib/commonjs/menu/useMenuTrigger.js.map +1 -0
- package/lib/commonjs/overlay/OverlayContainer.js +2 -3
- package/lib/commonjs/overlay/OverlayContainer.js.map +1 -1
- package/lib/commonjs/overlay/OverlayStack.js +125 -0
- package/lib/commonjs/overlay/OverlayStack.js.map +1 -0
- package/lib/commonjs/overlay/constants.js +7 -1
- package/lib/commonjs/overlay/constants.js.map +1 -1
- package/lib/commonjs/overlay/getAnchoredOverlayPosition.js +188 -0
- package/lib/commonjs/overlay/getAnchoredOverlayPosition.js.map +1 -0
- package/lib/commonjs/overlay/index.js +39 -0
- package/lib/commonjs/overlay/index.js.map +1 -1
- package/lib/commonjs/overlay/useAnchoredOverlay.js +127 -0
- package/lib/commonjs/overlay/useAnchoredOverlay.js.map +1 -0
- package/lib/commonjs/overlay/useDismissOverlay.js +8 -1
- package/lib/commonjs/overlay/useDismissOverlay.js.map +1 -1
- package/lib/commonjs/overlay/useDismissOverlay.web.js +11 -3
- package/lib/commonjs/overlay/useDismissOverlay.web.js.map +1 -1
- package/lib/commonjs/overlay/useEscapeKey.js +8 -1
- package/lib/commonjs/overlay/useEscapeKey.js.map +1 -1
- package/lib/commonjs/overlay/useEscapeKey.web.js +11 -3
- package/lib/commonjs/overlay/useEscapeKey.web.js.map +1 -1
- package/lib/commonjs/overlay/useOverlayPosition.js +16 -7
- package/lib/commonjs/overlay/useOverlayPosition.js.map +1 -1
- package/lib/commonjs/portal/portal.js +86 -63
- package/lib/commonjs/portal/portal.js.map +1 -1
- package/lib/commonjs/select/SelectContent.js +23 -11
- package/lib/commonjs/select/SelectContent.js.map +1 -1
- package/lib/commonjs/select/useListboxNavigation.js +10 -11
- package/lib/commonjs/select/useListboxNavigation.js.map +1 -1
- package/lib/commonjs/tooltip/TooltipContent.js +25 -24
- package/lib/commonjs/tooltip/TooltipContent.js.map +1 -1
- package/lib/commonjs/tooltip/getTooltipPosition.js +37 -84
- package/lib/commonjs/tooltip/getTooltipPosition.js.map +1 -1
- package/lib/module/dialog/DialogContent.js +18 -4
- package/lib/module/dialog/DialogContent.js.map +1 -1
- package/lib/module/dialog/DialogPopup.js +5 -1
- package/lib/module/dialog/DialogPopup.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/menu/MenuCheckboxItem.js +38 -0
- package/lib/module/menu/MenuCheckboxItem.js.map +1 -0
- package/lib/module/menu/MenuItem.js +138 -0
- package/lib/module/menu/MenuItem.js.map +1 -0
- package/lib/module/menu/MenuOverlayRoot.js +76 -0
- package/lib/module/menu/MenuOverlayRoot.js.map +1 -0
- package/lib/module/menu/MenuPopup.js +74 -0
- package/lib/module/menu/MenuPopup.js.map +1 -0
- package/lib/module/menu/MenuRadioGroup.js +44 -0
- package/lib/module/menu/MenuRadioGroup.js.map +1 -0
- package/lib/module/menu/MenuRadioItem.js +28 -0
- package/lib/module/menu/MenuRadioItem.js.map +1 -0
- package/lib/module/menu/MenuRoot.js +135 -0
- package/lib/module/menu/MenuRoot.js.map +1 -0
- package/lib/module/menu/MenuTrigger.js +55 -0
- package/lib/module/menu/MenuTrigger.js.map +1 -0
- package/lib/module/menu/context.js +27 -0
- package/lib/module/menu/context.js.map +1 -0
- package/lib/module/menu/index.js +13 -0
- package/lib/module/menu/index.js.map +1 -0
- package/lib/module/menu/overlayContext.js +24 -0
- package/lib/module/menu/overlayContext.js.map +1 -0
- package/lib/module/menu/types.js +4 -0
- package/lib/module/menu/types.js.map +1 -0
- package/lib/module/menu/useMenuNavigation.js +84 -0
- package/lib/module/menu/useMenuNavigation.js.map +1 -0
- package/lib/module/menu/useMenuOverlayLifecycle.js +63 -0
- package/lib/module/menu/useMenuOverlayLifecycle.js.map +1 -0
- package/lib/module/menu/useMenuTrigger.js +111 -0
- package/lib/module/menu/useMenuTrigger.js.map +1 -0
- package/lib/module/overlay/OverlayContainer.js +2 -3
- package/lib/module/overlay/OverlayContainer.js.map +1 -1
- package/lib/module/overlay/OverlayStack.js +119 -0
- package/lib/module/overlay/OverlayStack.js.map +1 -0
- package/lib/module/overlay/constants.js +6 -0
- package/lib/module/overlay/constants.js.map +1 -1
- package/lib/module/overlay/getAnchoredOverlayPosition.js +183 -0
- package/lib/module/overlay/getAnchoredOverlayPosition.js.map +1 -0
- package/lib/module/overlay/index.js +4 -1
- package/lib/module/overlay/index.js.map +1 -1
- package/lib/module/overlay/useAnchoredOverlay.js +123 -0
- package/lib/module/overlay/useAnchoredOverlay.js.map +1 -0
- package/lib/module/overlay/useDismissOverlay.js +9 -1
- package/lib/module/overlay/useDismissOverlay.js.map +1 -1
- package/lib/module/overlay/useDismissOverlay.web.js +11 -3
- package/lib/module/overlay/useDismissOverlay.web.js.map +1 -1
- package/lib/module/overlay/useEscapeKey.js +9 -1
- package/lib/module/overlay/useEscapeKey.js.map +1 -1
- package/lib/module/overlay/useEscapeKey.web.js +11 -3
- package/lib/module/overlay/useEscapeKey.web.js.map +1 -1
- package/lib/module/overlay/useOverlayPosition.js +16 -7
- package/lib/module/overlay/useOverlayPosition.js.map +1 -1
- package/lib/module/portal/portal.js +86 -64
- package/lib/module/portal/portal.js.map +1 -1
- package/lib/module/select/SelectContent.js +25 -13
- package/lib/module/select/SelectContent.js.map +1 -1
- package/lib/module/select/useListboxNavigation.js +10 -11
- package/lib/module/select/useListboxNavigation.js.map +1 -1
- package/lib/module/tooltip/TooltipContent.js +30 -29
- package/lib/module/tooltip/TooltipContent.js.map +1 -1
- package/lib/module/tooltip/getTooltipPosition.js +37 -84
- package/lib/module/tooltip/getTooltipPosition.js.map +1 -1
- package/lib/typescript/dialog/DialogContent.d.ts.map +1 -1
- package/lib/typescript/dialog/DialogPopup.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +2 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/menu/MenuCheckboxItem.d.ts +6 -0
- package/lib/typescript/menu/MenuCheckboxItem.d.ts.map +1 -0
- package/lib/typescript/menu/MenuItem.d.ts +8 -0
- package/lib/typescript/menu/MenuItem.d.ts.map +1 -0
- package/lib/typescript/menu/MenuOverlayRoot.d.ts +8 -0
- package/lib/typescript/menu/MenuOverlayRoot.d.ts.map +1 -0
- package/lib/typescript/menu/MenuPopup.d.ts +8 -0
- package/lib/typescript/menu/MenuPopup.d.ts.map +1 -0
- package/lib/typescript/menu/MenuRadioGroup.d.ts +8 -0
- package/lib/typescript/menu/MenuRadioGroup.d.ts.map +1 -0
- package/lib/typescript/menu/MenuRadioItem.d.ts +6 -0
- package/lib/typescript/menu/MenuRadioItem.d.ts.map +1 -0
- package/lib/typescript/menu/MenuRoot.d.ts +8 -0
- package/lib/typescript/menu/MenuRoot.d.ts.map +1 -0
- package/lib/typescript/menu/MenuTrigger.d.ts +7 -0
- package/lib/typescript/menu/MenuTrigger.d.ts.map +1 -0
- package/lib/typescript/menu/context.d.ts +15 -0
- package/lib/typescript/menu/context.d.ts.map +1 -0
- package/lib/typescript/menu/index.d.ts +12 -0
- package/lib/typescript/menu/index.d.ts.map +1 -0
- package/lib/typescript/menu/overlayContext.d.ts +35 -0
- package/lib/typescript/menu/overlayContext.d.ts.map +1 -0
- package/lib/typescript/menu/types.d.ts +104 -0
- package/lib/typescript/menu/types.d.ts.map +1 -0
- package/lib/typescript/menu/useMenuNavigation.d.ts +16 -0
- package/lib/typescript/menu/useMenuNavigation.d.ts.map +1 -0
- package/lib/typescript/menu/useMenuOverlayLifecycle.d.ts +15 -0
- package/lib/typescript/menu/useMenuOverlayLifecycle.d.ts.map +1 -0
- package/lib/typescript/menu/useMenuTrigger.d.ts +35 -0
- package/lib/typescript/menu/useMenuTrigger.d.ts.map +1 -0
- package/lib/typescript/overlay/OverlayContainer.d.ts.map +1 -1
- package/lib/typescript/overlay/OverlayStack.d.ts +46 -0
- package/lib/typescript/overlay/OverlayStack.d.ts.map +1 -0
- package/lib/typescript/overlay/constants.d.ts +5 -0
- package/lib/typescript/overlay/constants.d.ts.map +1 -1
- package/lib/typescript/overlay/getAnchoredOverlayPosition.d.ts +45 -0
- package/lib/typescript/overlay/getAnchoredOverlayPosition.d.ts.map +1 -0
- package/lib/typescript/overlay/index.d.ts +5 -2
- package/lib/typescript/overlay/index.d.ts.map +1 -1
- package/lib/typescript/overlay/useAnchoredOverlay.d.ts +15 -0
- package/lib/typescript/overlay/useAnchoredOverlay.d.ts.map +1 -0
- package/lib/typescript/overlay/useDismissOverlay.d.ts +2 -1
- package/lib/typescript/overlay/useDismissOverlay.d.ts.map +1 -1
- package/lib/typescript/overlay/useDismissOverlay.web.d.ts +2 -1
- package/lib/typescript/overlay/useDismissOverlay.web.d.ts.map +1 -1
- package/lib/typescript/overlay/useEscapeKey.d.ts +2 -1
- package/lib/typescript/overlay/useEscapeKey.d.ts.map +1 -1
- package/lib/typescript/overlay/useEscapeKey.web.d.ts +2 -1
- package/lib/typescript/overlay/useEscapeKey.web.d.ts.map +1 -1
- package/lib/typescript/overlay/useOverlayPosition.d.ts +5 -1
- package/lib/typescript/overlay/useOverlayPosition.d.ts.map +1 -1
- package/lib/typescript/portal/portal.d.ts +3 -0
- package/lib/typescript/portal/portal.d.ts.map +1 -1
- package/lib/typescript/select/SelectContent.d.ts.map +1 -1
- package/lib/typescript/select/useListboxNavigation.d.ts.map +1 -1
- package/lib/typescript/tooltip/TooltipContent.d.ts.map +1 -1
- package/lib/typescript/tooltip/getTooltipPosition.d.ts +6 -8
- package/lib/typescript/tooltip/getTooltipPosition.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/dialog/DialogContent.tsx +16 -4
- package/src/dialog/DialogPopup.tsx +5 -1
- package/src/index.ts +23 -0
- package/src/menu/MenuCheckboxItem.tsx +51 -0
- package/src/menu/MenuItem.tsx +197 -0
- package/src/menu/MenuOverlayRoot.tsx +100 -0
- package/src/menu/MenuPopup.tsx +81 -0
- package/src/menu/MenuRadioGroup.tsx +48 -0
- package/src/menu/MenuRadioItem.tsx +32 -0
- package/src/menu/MenuRoot.tsx +190 -0
- package/src/menu/MenuTrigger.tsx +57 -0
- package/src/menu/context.tsx +38 -0
- package/src/menu/index.ts +36 -0
- package/src/menu/overlayContext.tsx +61 -0
- package/src/menu/types.ts +119 -0
- package/src/menu/useMenuNavigation.ts +102 -0
- package/src/menu/useMenuOverlayLifecycle.ts +77 -0
- package/src/menu/useMenuTrigger.ts +161 -0
- package/src/overlay/OverlayContainer.tsx +3 -1
- package/src/overlay/OverlayStack.tsx +202 -0
- package/src/overlay/constants.ts +6 -0
- package/src/overlay/getAnchoredOverlayPosition.ts +326 -0
- package/src/overlay/index.ts +29 -1
- package/src/overlay/useAnchoredOverlay.ts +153 -0
- package/src/overlay/useDismissOverlay.ts +10 -2
- package/src/overlay/useDismissOverlay.web.ts +9 -2
- package/src/overlay/useEscapeKey.ts +13 -1
- package/src/overlay/useEscapeKey.web.ts +13 -3
- package/src/overlay/useOverlayPosition.ts +35 -8
- package/src/portal/portal.tsx +109 -69
- package/src/select/SelectContent.tsx +29 -17
- package/src/select/useListboxNavigation.ts +12 -9
- package/src/tooltip/TooltipContent.tsx +32 -34
- package/src/tooltip/getTooltipPosition.ts +58 -125
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_utils","_overlay","_slot","_dataAttributes","_overlayContext","_useMenuOverlayLifecycle","_jsxRuntime","MenuPopup","exports","forwardRef","asChild","children","onLayout","style","props","ref","overlay","useMenuOverlayContext","open","closeMenu","triggerRef","placement","offset","crossOffset","dismiss","floatingRef","onFloatingLayout","overlayStyle","position","useAnchoredOverlay","collisionBehavior","width","useDismissOverlay","useEscapeKey","useMenuOverlayCloseFocus","Comp","Slot","View","jsx","MenuPopupProvider","value","availableHeight","availableWidth","OverlayContainer","onDismiss","entering","FadeIn","duration","exiting","FadeOut","mergeRefs","composeEventHandlers","mergeDataAttributes","dataAttributes","slot","side","resolvedPlacement","align","displayName"],"sourceRoot":"../../../src","sources":["menu/MenuPopup.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA;AAEA,IAAAQ,wBAAA,GAAAR,OAAA;AAAqE,IAAAS,WAAA,GAAAT,OAAA;AAO9D,MAAMU,SAAS,GAAAC,OAAA,CAAAD,SAAA,gBAAG,IAAAE,iBAAU,EACjC,CAAC;EAAEC,OAAO;EAAEC,QAAQ;EAAEC,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACzD,MAAMC,OAAO,GAAG,IAAAC,qCAAqB,EAAC,CAAC;EACvC,MAAM;IAAEC,IAAI;IAAEC,SAAS;IAAEC,UAAU;IAAEC,SAAS;IAAEC,MAAM;IAAEC;EAAY,CAAC,GAAGP,OAAO;EAE/E,MAAMQ,OAAO,GAAGA,CAAA,KAAML,SAAS,CAAC,SAAS,CAAC;EAE1C,MAAM;IACJM,WAAW;IACXC,gBAAgB;IAChBb,KAAK,EAAEc,YAAY;IACnBC;EACF,CAAC,GAAG,IAAAC,2BAAkB,EAACT,UAAU,EAAEF,IAAI,EAAE;IACvCG,SAAS;IACTC,MAAM;IACNC,WAAW;IACXO,iBAAiB,EAAE,YAAY;IAC/BC,KAAK,EAAE;EACT,CAAC,CAAC;EAEF,IAAAC,0BAAiB,EAACd,IAAI,EAAEO,WAAW,EAAE,CAACL,UAAU,CAAC,EAAEI,OAAO,CAAC;EAC3D,IAAAS,qBAAY,EAACf,IAAI,EAAE,MAAMC,SAAS,CAAC,QAAQ,CAAC,CAAC;EAC7C,IAAAe,iDAAwB,EAAClB,OAAO,CAAC;EAEjC,IAAI,CAACE,IAAI,EAAE;IACT,OAAO,IAAI;EACb;EAEA,MAAMiB,IAAI,GAAGzB,OAAO,GAAG0B,UAAI,GAAGC,iBAAI;EAElC,oBACE,IAAA/B,WAAA,CAAAgC,GAAA,EAAClC,eAAA,CAAAmC,iBAAiB;IAChBC,KAAK,EAAE;MACLC,eAAe,EAAEb,QAAQ,EAAEa,eAAe;MAC1CC,cAAc,EAAEd,QAAQ,EAAEc;IAC5B,CAAE;IAAA/B,QAAA,eAEF,IAAAL,WAAA,CAAAgC,GAAA,EAACrC,QAAA,CAAA0C,gBAAgB;MACfC,SAAS,EAAEpB,OAAQ;MACnBqB,QAAQ,EAAEC,6BAAM,CAACC,QAAQ,CAAC,GAAG,CAAE;MAC/BC,OAAO,EAAEC,8BAAO,CAACF,QAAQ,CAAC,GAAG,CAAE;MAAApC,QAAA,eAE/B,IAAAL,WAAA,CAAAgC,GAAA,EAACH,IAAI;QACHpB,GAAG,EAAE,IAAAmC,gBAAS,EAACnC,GAAG,EAAEU,WAAW,CAAE;QACjCb,QAAQ,EAAE,IAAAuC,2BAAoB,EAACvC,QAAQ,EAAEc,gBAAgB,CAAE;QAC3Db,KAAK,EAAE,CAACA,KAAK,EAAEc,YAAY,CAAE;QAAA,GACzBb,KAAK;QAAA,GACL,IAAAsC,mCAAmB,EACrBtC,KAAK,EACL,IAAAuC,8BAAc,EAAC;UACbC,IAAI,EAAE,YAAY;UAClBC,IAAI,EAAE3B,QAAQ,EAAE4B,iBAAiB,CAACD,IAAI;UACtCE,KAAK,EAAE7B,QAAQ,EAAE4B,iBAAiB,CAACC;QACrC,CAAC,CACH,CAAC;QAAA9C,QAAA,EAEAA;MAAQ,CACL;IAAC,CACS;EAAC,CACF,CAAC;AAExB,CACF,CAAC;AAEDJ,SAAS,CAACmD,WAAW,GAAG,WAAW","ignoreList":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MenuRadioGroup = 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 _context = require("./context");
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
const MenuRadioGroup = exports.MenuRadioGroup = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
14
|
+
asChild,
|
|
15
|
+
children,
|
|
16
|
+
value: valueProp,
|
|
17
|
+
defaultValue,
|
|
18
|
+
onChange,
|
|
19
|
+
...props
|
|
20
|
+
}, ref) => {
|
|
21
|
+
const [value, setValueState] = (0, _utils.useControllableState)({
|
|
22
|
+
prop: valueProp,
|
|
23
|
+
defaultProp: defaultValue
|
|
24
|
+
});
|
|
25
|
+
const setValue = (0, _react.useCallback)(nextValue => {
|
|
26
|
+
if (nextValue === value) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
setValueState(nextValue);
|
|
30
|
+
onChange?.(nextValue);
|
|
31
|
+
}, [onChange, setValueState, value]);
|
|
32
|
+
const contextValue = (0, _react.useMemo)(() => ({
|
|
33
|
+
value,
|
|
34
|
+
setValue
|
|
35
|
+
}), [setValue, value]);
|
|
36
|
+
const Comp = asChild ? _slot.Slot : _reactNative.View;
|
|
37
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.MenuRadioGroupProvider, {
|
|
38
|
+
value: contextValue,
|
|
39
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Comp, {
|
|
40
|
+
ref: ref,
|
|
41
|
+
role: "group",
|
|
42
|
+
...props,
|
|
43
|
+
children: children
|
|
44
|
+
})
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
MenuRadioGroup.displayName = 'MenuRadioGroup';
|
|
48
|
+
//# sourceMappingURL=MenuRadioGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_utils","_slot","_context","_jsxRuntime","MenuRadioGroup","exports","forwardRef","asChild","children","value","valueProp","defaultValue","onChange","props","ref","setValueState","useControllableState","prop","defaultProp","setValue","useCallback","nextValue","contextValue","useMemo","Comp","Slot","View","jsx","MenuRadioGroupProvider","role","displayName"],"sourceRoot":"../../../src","sources":["menu/MenuRadioGroup.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAAmD,IAAAK,WAAA,GAAAL,OAAA;AAQ5C,MAAMM,cAAc,GAAAC,OAAA,CAAAD,cAAA,gBAAG,IAAAE,iBAAU,EACtC,CAAC;EAAEC,OAAO;EAAEC,QAAQ;EAAEC,KAAK,EAAEC,SAAS;EAAEC,YAAY;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAClF,MAAM,CAACL,KAAK,EAAEM,aAAa,CAAC,GAAG,IAAAC,2BAAoB,EAAS;IAC1DC,IAAI,EAAEP,SAAS;IACfQ,WAAW,EAAEP;EACf,CAAC,CAAC;EACF,MAAMQ,QAAQ,GAAG,IAAAC,kBAAW,EACzBC,SAAiB,IAAK;IACrB,IAAIA,SAAS,KAAKZ,KAAK,EAAE;MACvB;IACF;IACAM,aAAa,CAACM,SAAS,CAAC;IACxBT,QAAQ,GAAGS,SAAS,CAAC;EACvB,CAAC,EACD,CAACT,QAAQ,EAAEG,aAAa,EAAEN,KAAK,CACjC,CAAC;EACD,MAAMa,YAAY,GAAG,IAAAC,cAAO,EAC1B,OAAO;IACLd,KAAK;IACLU;EACF,CAAC,CAAC,EACF,CAACA,QAAQ,EAAEV,KAAK,CAClB,CAAC;EACD,MAAMe,IAAI,GAAGjB,OAAO,GAAGkB,UAAI,GAAGC,iBAAI;EAElC,oBACE,IAAAvB,WAAA,CAAAwB,GAAA,EAACzB,QAAA,CAAA0B,sBAAsB;IAACnB,KAAK,EAAEa,YAAa;IAAAd,QAAA,eAC1C,IAAAL,WAAA,CAAAwB,GAAA,EAACH,IAAI;MAACV,GAAG,EAAEA,GAAI;MAACe,IAAI,EAAC,OAAO;MAAA,GAAKhB,KAAK;MAAAL,QAAA,EACnCA;IAAQ,CACL;EAAC,CACe,CAAC;AAE7B,CACF,CAAC;AAEDJ,cAAc,CAAC0B,WAAW,GAAG,gBAAgB","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MenuRadioItem = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _utils = require("@cdx-ui/utils");
|
|
9
|
+
var _context = require("./context");
|
|
10
|
+
var _MenuItem = require("./MenuItem");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
const MenuRadioItem = exports.MenuRadioItem = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
13
|
+
asChild,
|
|
14
|
+
children,
|
|
15
|
+
value,
|
|
16
|
+
onPress,
|
|
17
|
+
...props
|
|
18
|
+
}, ref) => {
|
|
19
|
+
const radioGroup = (0, _context.useMenuRadioGroupContext)();
|
|
20
|
+
const checked = radioGroup.value === value;
|
|
21
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.MenuItem, {
|
|
22
|
+
ref: ref,
|
|
23
|
+
asChild: asChild,
|
|
24
|
+
itemRole: "menuitemradio",
|
|
25
|
+
isChecked: checked,
|
|
26
|
+
onPress: (0, _utils.composeEventHandlers)(onPress, () => radioGroup.setValue(value)),
|
|
27
|
+
...props,
|
|
28
|
+
children: children
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
MenuRadioItem.displayName = 'MenuRadioItem';
|
|
32
|
+
//# sourceMappingURL=MenuRadioItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_utils","_context","_MenuItem","_jsxRuntime","MenuRadioItem","exports","forwardRef","asChild","children","value","onPress","props","ref","radioGroup","useMenuRadioGroupContext","checked","jsx","MenuItem","itemRole","isChecked","composeEventHandlers","setValue","displayName"],"sourceRoot":"../../../src","sources":["menu/MenuRadioItem.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAAsC,IAAAI,WAAA,GAAAJ,OAAA;AAO/B,MAAMK,aAAa,GAAAC,OAAA,CAAAD,aAAA,gBAAG,IAAAE,iBAAU,EACrC,CAAC;EAAEC,OAAO;EAAEC,QAAQ;EAAEC,KAAK;EAAEC,OAAO;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACxD,MAAMC,UAAU,GAAG,IAAAC,iCAAwB,EAAC,CAAC;EAC7C,MAAMC,OAAO,GAAGF,UAAU,CAACJ,KAAK,KAAKA,KAAK;EAE1C,oBACE,IAAAN,WAAA,CAAAa,GAAA,EAACd,SAAA,CAAAe,QAAQ;IACPL,GAAG,EAAEA,GAAI;IACTL,OAAO,EAAEA,OAAQ;IACjBW,QAAQ,EAAC,eAAe;IACxBC,SAAS,EAAEJ,OAAQ;IACnBL,OAAO,EAAE,IAAAU,2BAAoB,EAACV,OAAO,EAAE,MAAMG,UAAU,CAACQ,QAAQ,CAACZ,KAAK,CAAC,CAAE;IAAA,GACrEE,KAAK;IAAAH,QAAA,EAERA;EAAQ,CACD,CAAC;AAEf,CACF,CAAC;AAEDJ,aAAa,CAACkB,WAAW,GAAG,eAAe","ignoreList":[]}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MenuRoot = 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 _overlayContext = require("./overlayContext");
|
|
14
|
+
var _useMenuNavigation = require("./useMenuNavigation");
|
|
15
|
+
var _useMenuOverlayLifecycle = require("./useMenuOverlayLifecycle");
|
|
16
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
+
function getItemsInRenderedOrder(items) {
|
|
18
|
+
const entries = Array.from(items.entries());
|
|
19
|
+
if (_reactNative.Platform.OS !== 'web' || typeof Node === 'undefined') {
|
|
20
|
+
return entries;
|
|
21
|
+
}
|
|
22
|
+
return entries.sort(([, first], [, second]) => {
|
|
23
|
+
const firstNode = first.node;
|
|
24
|
+
const secondNode = second.node;
|
|
25
|
+
if (!firstNode?.compareDocumentPosition || !secondNode) {
|
|
26
|
+
return 0;
|
|
27
|
+
}
|
|
28
|
+
const position = firstNode.compareDocumentPosition(secondNode);
|
|
29
|
+
if (position & Node.DOCUMENT_POSITION_FOLLOWING) {
|
|
30
|
+
return -1;
|
|
31
|
+
}
|
|
32
|
+
if (position & Node.DOCUMENT_POSITION_PRECEDING) {
|
|
33
|
+
return 1;
|
|
34
|
+
}
|
|
35
|
+
return 0;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
const MenuRoot = exports.MenuRoot = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
39
|
+
asChild,
|
|
40
|
+
children,
|
|
41
|
+
scrollable,
|
|
42
|
+
asSurface = false,
|
|
43
|
+
onEscape,
|
|
44
|
+
...props
|
|
45
|
+
}, ref) => {
|
|
46
|
+
const overlay = (0, _overlayContext.useOptionalMenuOverlayContext)();
|
|
47
|
+
const itemsRef = (0, _react.useRef)(new Map());
|
|
48
|
+
const [focusedItemId, setFocusedItemId] = (0, _react.useState)(undefined);
|
|
49
|
+
const registerItem = (0, _react.useCallback)((itemId, entry) => {
|
|
50
|
+
itemsRef.current.set(itemId, entry);
|
|
51
|
+
if (!overlay && !entry.disabled) {
|
|
52
|
+
setFocusedItemId(previous => previous ?? itemId);
|
|
53
|
+
}
|
|
54
|
+
}, [overlay]);
|
|
55
|
+
const unregisterItem = (0, _react.useCallback)(itemId => {
|
|
56
|
+
itemsRef.current.delete(itemId);
|
|
57
|
+
setFocusedItemId(previous => {
|
|
58
|
+
if (previous !== itemId) {
|
|
59
|
+
return previous;
|
|
60
|
+
}
|
|
61
|
+
if (overlay) {
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
return getItemsInRenderedOrder(itemsRef.current).find(([, entry]) => !entry.disabled)?.[0];
|
|
65
|
+
});
|
|
66
|
+
}, [overlay]);
|
|
67
|
+
const getItems = (0, _react.useCallback)(() => getItemsInRenderedOrder(itemsRef.current), []);
|
|
68
|
+
const reactId = (0, _react.useId)();
|
|
69
|
+
const localMenuId = `menu-${reactId}`;
|
|
70
|
+
const menuId = overlay?.menuId ?? localMenuId;
|
|
71
|
+
const dismissOverlay = (0, _react.useCallback)(() => {
|
|
72
|
+
overlay?.closeMenu('programmatic');
|
|
73
|
+
}, [overlay]);
|
|
74
|
+
const handleEscape = (0, _react.useCallback)(() => {
|
|
75
|
+
if (overlay) {
|
|
76
|
+
overlay.closeMenu('escape');
|
|
77
|
+
}
|
|
78
|
+
onEscape?.();
|
|
79
|
+
}, [overlay, onEscape]);
|
|
80
|
+
const handleTab = (0, _react.useCallback)(() => {
|
|
81
|
+
if (!overlay) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (_reactNative.Platform.OS === 'web') {
|
|
85
|
+
overlay.triggerRef.current?.focus?.();
|
|
86
|
+
}
|
|
87
|
+
overlay.closeMenu('tab');
|
|
88
|
+
}, [overlay]);
|
|
89
|
+
const {
|
|
90
|
+
handleKeyDown
|
|
91
|
+
} = (0, _useMenuNavigation.useMenuNavigation)({
|
|
92
|
+
getItems,
|
|
93
|
+
focusedItemId,
|
|
94
|
+
setFocusedItemId,
|
|
95
|
+
onEscape: handleEscape,
|
|
96
|
+
onTab: handleTab
|
|
97
|
+
});
|
|
98
|
+
(0, _useMenuOverlayLifecycle.useMenuOverlayOpenFocus)({
|
|
99
|
+
overlay,
|
|
100
|
+
getItems,
|
|
101
|
+
setFocusedItemId
|
|
102
|
+
});
|
|
103
|
+
const contextValue = (0, _react.useMemo)(() => ({
|
|
104
|
+
menuId,
|
|
105
|
+
registerItem,
|
|
106
|
+
unregisterItem,
|
|
107
|
+
getItems,
|
|
108
|
+
focusedItemId,
|
|
109
|
+
setFocusedItemId,
|
|
110
|
+
onEscape: handleEscape,
|
|
111
|
+
closeOnSelect: !!overlay,
|
|
112
|
+
dismissOverlay: overlay?.closeMenu ?? dismissOverlay
|
|
113
|
+
}), [menuId, registerItem, unregisterItem, getItems, focusedItemId, setFocusedItemId, handleEscape, overlay, dismissOverlay]);
|
|
114
|
+
const webProps = _reactNative.Platform.OS === 'web' && !asSurface ? {
|
|
115
|
+
onKeyDown: (0, _utils.composeEventHandlers)(props.onKeyDown, handleKeyDown),
|
|
116
|
+
...(overlay ? {
|
|
117
|
+
tabIndex: -1
|
|
118
|
+
} : {})
|
|
119
|
+
} : {};
|
|
120
|
+
const mergedRef = overlay ? (0, _utils.mergeRefs)(ref, overlay.contentRef) : ref;
|
|
121
|
+
const Comp = asChild ? _slot.Slot : _reactNative.View;
|
|
122
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.MenuProvider, {
|
|
123
|
+
value: contextValue,
|
|
124
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Comp, {
|
|
125
|
+
ref: mergedRef,
|
|
126
|
+
id: overlay && !asSurface ? menuId : undefined,
|
|
127
|
+
role: asSurface ? undefined : 'menu',
|
|
128
|
+
"aria-labelledby": overlay && !asSurface ? overlay.triggerId : undefined,
|
|
129
|
+
...props,
|
|
130
|
+
...webProps,
|
|
131
|
+
...(0, _dataAttributes.mergeDataAttributes)(props, (0, _dataAttributes.dataAttributes)({
|
|
132
|
+
scrollable: scrollable ? true : undefined
|
|
133
|
+
})),
|
|
134
|
+
children: children
|
|
135
|
+
})
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
MenuRoot.displayName = 'MenuRoot';
|
|
139
|
+
//# sourceMappingURL=MenuRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_utils","_slot","_dataAttributes","_context","_overlayContext","_useMenuNavigation","_useMenuOverlayLifecycle","_jsxRuntime","getItemsInRenderedOrder","items","entries","Array","from","Platform","OS","Node","sort","first","second","firstNode","node","secondNode","compareDocumentPosition","position","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","MenuRoot","exports","forwardRef","asChild","children","scrollable","asSurface","onEscape","props","ref","overlay","useOptionalMenuOverlayContext","itemsRef","useRef","Map","focusedItemId","setFocusedItemId","useState","undefined","registerItem","useCallback","itemId","entry","current","set","disabled","previous","unregisterItem","delete","find","getItems","reactId","useId","localMenuId","menuId","dismissOverlay","closeMenu","handleEscape","handleTab","triggerRef","focus","handleKeyDown","useMenuNavigation","onTab","useMenuOverlayOpenFocus","contextValue","useMemo","closeOnSelect","webProps","onKeyDown","composeEventHandlers","tabIndex","mergedRef","mergeRefs","contentRef","Comp","Slot","View","jsx","MenuProvider","value","id","role","triggerId","mergeDataAttributes","dataAttributes","displayName"],"sourceRoot":"../../../src","sources":["menu/MenuRoot.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MenuTrigger = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _slot = require("../slot");
|
|
10
|
+
var _dataAttributes = require("../utils/dataAttributes");
|
|
11
|
+
var _useMenuTrigger = require("./useMenuTrigger");
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
const MenuTrigger = exports.MenuTrigger = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
14
|
+
asChild,
|
|
15
|
+
children,
|
|
16
|
+
onPress,
|
|
17
|
+
onHoverIn,
|
|
18
|
+
onHoverOut,
|
|
19
|
+
onFocus,
|
|
20
|
+
onBlur,
|
|
21
|
+
...rest
|
|
22
|
+
}, ref) => {
|
|
23
|
+
const {
|
|
24
|
+
ariaProps,
|
|
25
|
+
interactionState,
|
|
26
|
+
mergedRef,
|
|
27
|
+
handlers
|
|
28
|
+
} = (0, _useMenuTrigger.useMenuTrigger)(ref, {
|
|
29
|
+
asChild,
|
|
30
|
+
onPress,
|
|
31
|
+
onHoverIn,
|
|
32
|
+
onHoverOut,
|
|
33
|
+
onFocus: onFocus,
|
|
34
|
+
onBlur: onBlur,
|
|
35
|
+
onKeyDown: rest.onKeyDown
|
|
36
|
+
});
|
|
37
|
+
const Comp = asChild ? _slot.Slot : _reactNative.Pressable;
|
|
38
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Comp, {
|
|
39
|
+
ref: mergedRef,
|
|
40
|
+
...ariaProps,
|
|
41
|
+
...rest,
|
|
42
|
+
...(0, _dataAttributes.mergeDataAttributes)(rest, (0, _dataAttributes.dataAttributes)({
|
|
43
|
+
slot: 'menu-trigger',
|
|
44
|
+
hover: interactionState.hover,
|
|
45
|
+
focus: interactionState.focus,
|
|
46
|
+
disabled: interactionState.disabled,
|
|
47
|
+
state: ariaProps['aria-expanded'] ? 'open' : 'closed'
|
|
48
|
+
})),
|
|
49
|
+
onPress: handlers.onPress,
|
|
50
|
+
onHoverIn: handlers.onHoverIn,
|
|
51
|
+
onHoverOut: handlers.onHoverOut,
|
|
52
|
+
onFocus: handlers.onFocus,
|
|
53
|
+
onBlur: handlers.onBlur,
|
|
54
|
+
onKeyDown: handlers.onKeyDown,
|
|
55
|
+
children: children
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
MenuTrigger.displayName = 'MenuTrigger';
|
|
59
|
+
//# sourceMappingURL=MenuTrigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_slot","_dataAttributes","_useMenuTrigger","_jsxRuntime","MenuTrigger","exports","forwardRef","asChild","children","onPress","onHoverIn","onHoverOut","onFocus","onBlur","rest","ref","ariaProps","interactionState","mergedRef","handlers","useMenuTrigger","onKeyDown","Comp","Slot","Pressable","jsx","mergeDataAttributes","dataAttributes","slot","hover","focus","disabled","state","displayName"],"sourceRoot":"../../../src","sources":["menu/MenuTrigger.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AAEA,IAAAI,eAAA,GAAAJ,OAAA;AAAkD,IAAAK,WAAA,GAAAL,OAAA;AAM3C,MAAMM,WAAW,GAAAC,OAAA,CAAAD,WAAA,gBAAG,IAAAE,iBAAU,EACnC,CAAC;EAAEC,OAAO;EAAEC,QAAQ;EAAEC,OAAO;EAAEC,SAAS;EAAEC,UAAU;EAAEC,OAAO;EAAEC,MAAM;EAAE,GAAGC;AAAK,CAAC,EAAEC,GAAG,KAAK;EACxF,MAAM;IAAEC,SAAS;IAAEC,gBAAgB;IAAEC,SAAS;IAAEC;EAAS,CAAC,GAAG,IAAAC,8BAAc,EACzEL,GAAG,EACH;IACER,OAAO;IACPE,OAAO;IACPC,SAAS;IACTC,UAAU;IACVC,OAAO,EAAEA,OAA0C;IACnDC,MAAM,EAAEA,MAAyC;IACjDQ,SAAS,EAAGP,IAAI,CAAgDO;EAClE,CACF,CAAC;EAED,MAAMC,IAAI,GAAGf,OAAO,GAAGgB,UAAI,GAAGC,sBAAS;EAEvC,oBACE,IAAArB,WAAA,CAAAsB,GAAA,EAACH,IAAI;IACHP,GAAG,EAAEG,SAAU;IAAA,GACXF,SAAS;IAAA,GACTF,IAAI;IAAA,GACJ,IAAAY,mCAAmB,EACrBZ,IAAI,EACJ,IAAAa,8BAAc,EAAC;MACbC,IAAI,EAAE,cAAc;MACpBC,KAAK,EAAEZ,gBAAgB,CAACY,KAAK;MAC7BC,KAAK,EAAEb,gBAAgB,CAACa,KAAK;MAC7BC,QAAQ,EAAEd,gBAAgB,CAACc,QAAQ;MACnCC,KAAK,EAAEhB,SAAS,CAAC,eAAe,CAAC,GAAG,MAAM,GAAG;IAC/C,CAAC,CACH,CAAC;IACDP,OAAO,EAAEU,QAAQ,CAACV,OAAQ;IAC1BC,SAAS,EAAES,QAAQ,CAACT,SAAU;IAC9BC,UAAU,EAAEQ,QAAQ,CAACR,UAAW;IAChCC,OAAO,EAAEO,QAAQ,CAACP,OAAQ;IAC1BC,MAAM,EAAEM,QAAQ,CAACN,MAAO;IACxBQ,SAAS,EAAEF,QAAQ,CAACE,SAAU;IAAAb,QAAA,EAE7BA;EAAQ,CACL,CAAC;AAEX,CACF,CAAC;AAEDJ,WAAW,CAAC6B,WAAW,GAAG,aAAa","ignoreList":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useMenuContext = exports.MenuRadioGroupProvider = exports.MenuProvider = exports.MenuItemProvider = void 0;
|
|
7
|
+
exports.useMenuItemContext = useMenuItemContext;
|
|
8
|
+
exports.useMenuRadioGroupContext = useMenuRadioGroupContext;
|
|
9
|
+
exports.useOptionalMenuItemContext = useOptionalMenuItemContext;
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
var _utils = require("@cdx-ui/utils");
|
|
12
|
+
const [MenuProvider, useMenuContext] = (0, _utils.createContext)('MenuContext');
|
|
13
|
+
exports.useMenuContext = useMenuContext;
|
|
14
|
+
exports.MenuProvider = MenuProvider;
|
|
15
|
+
const MenuItemContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
16
|
+
const MenuItemProvider = exports.MenuItemProvider = MenuItemContext.Provider;
|
|
17
|
+
function useMenuItemContext() {
|
|
18
|
+
const ctx = (0, _react.useContext)(MenuItemContext);
|
|
19
|
+
if (!ctx) {
|
|
20
|
+
throw new Error('Menu item slot must be used within Menu.Item');
|
|
21
|
+
}
|
|
22
|
+
return ctx;
|
|
23
|
+
}
|
|
24
|
+
function useOptionalMenuItemContext() {
|
|
25
|
+
return (0, _react.useContext)(MenuItemContext);
|
|
26
|
+
}
|
|
27
|
+
const MenuRadioGroupContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
28
|
+
const MenuRadioGroupProvider = exports.MenuRadioGroupProvider = MenuRadioGroupContext.Provider;
|
|
29
|
+
function useMenuRadioGroupContext() {
|
|
30
|
+
const ctx = (0, _react.useContext)(MenuRadioGroupContext);
|
|
31
|
+
if (!ctx) {
|
|
32
|
+
throw new Error('Menu.RadioItem must be used within Menu.RadioGroup');
|
|
33
|
+
}
|
|
34
|
+
return ctx;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_utils","MenuProvider","useMenuContext","createContext","exports","MenuItemContext","createReactContext","MenuItemProvider","Provider","useMenuItemContext","ctx","useContext","Error","useOptionalMenuItemContext","MenuRadioGroupContext","MenuRadioGroupProvider","useMenuRadioGroupContext"],"sourceRoot":"../../../src","sources":["menu/context.tsx"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAGO,MAAM,CAACE,YAAY,EAAEC,cAAc,CAAC,GAAG,IAAAC,oBAAa,EAAmB,aAAa,CAAC;AAACC,OAAA,CAAAF,cAAA,GAAAA,cAAA;AAAAE,OAAA,CAAAH,YAAA,GAAAA,YAAA;AAE7F,MAAMI,eAAe,gBAAG,IAAAC,oBAAkB,EAAkC,IAAI,CAAC;AAE1E,MAAMC,gBAAgB,GAAAH,OAAA,CAAAG,gBAAA,GAAGF,eAAe,CAACG,QAAQ;AAEjD,SAASC,kBAAkBA,CAAA,EAA6B;EAC7D,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAACN,eAAe,CAAC;EACvC,IAAI,CAACK,GAAG,EAAE;IACR,MAAM,IAAIE,KAAK,CAAC,8CAA8C,CAAC;EACjE;EACA,OAAOF,GAAG;AACZ;AAEO,SAASG,0BAA0BA,CAAA,EAAoC;EAC5E,OAAO,IAAAF,iBAAU,EAACN,eAAe,CAAC;AACpC;AAOA,MAAMS,qBAAqB,gBAAG,IAAAR,oBAAkB,EAAoC,IAAI,CAAC;AAElF,MAAMS,sBAAsB,GAAAX,OAAA,CAAAW,sBAAA,GAAGD,qBAAqB,CAACN,QAAQ;AAE7D,SAASQ,wBAAwBA,CAAA,EAA+B;EACrE,MAAMN,GAAG,GAAG,IAAAC,iBAAU,EAACG,qBAAqB,CAAC;EAC7C,IAAI,CAACJ,GAAG,EAAE;IACR,MAAM,IAAIE,KAAK,CAAC,oDAAoD,CAAC;EACvE;EACA,OAAOF,GAAG;AACZ","ignoreList":[]}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "MenuCheckboxItem", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _MenuCheckboxItem.MenuCheckboxItem;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "MenuItem", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _MenuItem.MenuItem;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "MenuOverlayProvider", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _overlayContext.MenuOverlayProvider;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "MenuOverlayRoot", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _MenuOverlayRoot.MenuOverlayRoot;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "MenuPopup", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _MenuPopup.MenuPopup;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "MenuPopupProvider", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _overlayContext.MenuPopupProvider;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "MenuRadioGroup", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _MenuRadioGroup.MenuRadioGroup;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "MenuRadioItem", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _MenuRadioItem.MenuRadioItem;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "MenuRoot", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _MenuRoot.MenuRoot;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(exports, "MenuTrigger", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function () {
|
|
63
|
+
return _MenuTrigger.MenuTrigger;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(exports, "useMenuContext", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function () {
|
|
69
|
+
return _context.useMenuContext;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(exports, "useMenuItemContext", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function () {
|
|
75
|
+
return _context.useMenuItemContext;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
Object.defineProperty(exports, "useMenuOverlayContext", {
|
|
79
|
+
enumerable: true,
|
|
80
|
+
get: function () {
|
|
81
|
+
return _overlayContext.useMenuOverlayContext;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
Object.defineProperty(exports, "useMenuRadioGroupContext", {
|
|
85
|
+
enumerable: true,
|
|
86
|
+
get: function () {
|
|
87
|
+
return _context.useMenuRadioGroupContext;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
Object.defineProperty(exports, "useOptionalMenuItemContext", {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
get: function () {
|
|
93
|
+
return _context.useOptionalMenuItemContext;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
Object.defineProperty(exports, "useOptionalMenuOverlayContext", {
|
|
97
|
+
enumerable: true,
|
|
98
|
+
get: function () {
|
|
99
|
+
return _overlayContext.useOptionalMenuOverlayContext;
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
Object.defineProperty(exports, "useOptionalMenuPopupContext", {
|
|
103
|
+
enumerable: true,
|
|
104
|
+
get: function () {
|
|
105
|
+
return _overlayContext.useOptionalMenuPopupContext;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
var _context = require("./context");
|
|
109
|
+
var _overlayContext = require("./overlayContext");
|
|
110
|
+
var _MenuOverlayRoot = require("./MenuOverlayRoot");
|
|
111
|
+
var _MenuTrigger = require("./MenuTrigger");
|
|
112
|
+
var _MenuPopup = require("./MenuPopup");
|
|
113
|
+
var _MenuRoot = require("./MenuRoot");
|
|
114
|
+
var _MenuItem = require("./MenuItem");
|
|
115
|
+
var _MenuCheckboxItem = require("./MenuCheckboxItem");
|
|
116
|
+
var _MenuRadioGroup = require("./MenuRadioGroup");
|
|
117
|
+
var _MenuRadioItem = require("./MenuRadioItem");
|
|
118
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_context","require","_overlayContext","_MenuOverlayRoot","_MenuTrigger","_MenuPopup","_MenuRoot","_MenuItem","_MenuCheckboxItem","_MenuRadioGroup","_MenuRadioItem"],"sourceRoot":"../../../src","sources":["menu/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAAA,QAAA,GAAAC,OAAA;AAMA,IAAAC,eAAA,GAAAD,OAAA;AAOA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,iBAAA,GAAAP,OAAA;AACA,IAAAQ,eAAA,GAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MenuPopupProvider = exports.MenuOverlayProvider = void 0;
|
|
7
|
+
exports.useMenuOverlayContext = useMenuOverlayContext;
|
|
8
|
+
exports.useOptionalMenuOverlayContext = useOptionalMenuOverlayContext;
|
|
9
|
+
exports.useOptionalMenuPopupContext = useOptionalMenuPopupContext;
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
/** Where to place focus when an overlay menu opens. */
|
|
12
|
+
|
|
13
|
+
const MenuOverlayContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
14
|
+
const MenuOverlayProvider = exports.MenuOverlayProvider = MenuOverlayContext.Provider;
|
|
15
|
+
function useMenuOverlayContext() {
|
|
16
|
+
const ctx = (0, _react.useContext)(MenuOverlayContext);
|
|
17
|
+
if (!ctx) {
|
|
18
|
+
throw new Error('Menu overlay slot must be used within Menu');
|
|
19
|
+
}
|
|
20
|
+
return ctx;
|
|
21
|
+
}
|
|
22
|
+
function useOptionalMenuOverlayContext() {
|
|
23
|
+
return (0, _react.useContext)(MenuOverlayContext);
|
|
24
|
+
}
|
|
25
|
+
const MenuPopupContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
26
|
+
const MenuPopupProvider = exports.MenuPopupProvider = MenuPopupContext.Provider;
|
|
27
|
+
function useOptionalMenuPopupContext() {
|
|
28
|
+
return (0, _react.useContext)(MenuPopupContext);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=overlayContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","MenuOverlayContext","createReactContext","MenuOverlayProvider","exports","Provider","useMenuOverlayContext","ctx","useContext","Error","useOptionalMenuOverlayContext","MenuPopupContext","MenuPopupProvider","useOptionalMenuPopupContext"],"sourceRoot":"../../../src","sources":["menu/overlayContext.tsx"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAUA;;AAuBA,MAAMC,kBAAkB,gBAAG,IAAAC,oBAAkB,EAAiC,IAAI,CAAC;AAE5E,MAAMC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAGF,kBAAkB,CAACI,QAAQ;AAEvD,SAASC,qBAAqBA,CAAA,EAA4B;EAC/D,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAACP,kBAAkB,CAAC;EAC1C,IAAI,CAACM,GAAG,EAAE;IACR,MAAM,IAAIE,KAAK,CAAC,4CAA4C,CAAC;EAC/D;EACA,OAAOF,GAAG;AACZ;AAEO,SAASG,6BAA6BA,CAAA,EAAmC;EAC9E,OAAO,IAAAF,iBAAU,EAACP,kBAAkB,CAAC;AACvC;AAOA,MAAMU,gBAAgB,gBAAG,IAAAT,oBAAkB,EAA+B,IAAI,CAAC;AAExE,MAAMU,iBAAiB,GAAAR,OAAA,CAAAQ,iBAAA,GAAGD,gBAAgB,CAACN,QAAQ;AAEnD,SAASQ,2BAA2BA,CAAA,EAAiC;EAC1E,OAAO,IAAAL,iBAAU,EAACG,gBAAgB,CAAC;AACrC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["menu/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useMenuNavigation = useMenuNavigation;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
// Web-only — native platforms rely on OS-managed sequential focus.
|
|
9
|
+
|
|
10
|
+
function useMenuNavigation({
|
|
11
|
+
getItems,
|
|
12
|
+
focusedItemId,
|
|
13
|
+
setFocusedItemId,
|
|
14
|
+
onEscape,
|
|
15
|
+
onTab
|
|
16
|
+
}) {
|
|
17
|
+
const onEscapeRef = (0, _react.useRef)(onEscape);
|
|
18
|
+
onEscapeRef.current = onEscape;
|
|
19
|
+
const onTabRef = (0, _react.useRef)(onTab);
|
|
20
|
+
onTabRef.current = onTab;
|
|
21
|
+
const getEnabledItems = (0, _react.useCallback)(() => getItems().filter(([, entry]) => !entry.disabled), [getItems]);
|
|
22
|
+
const moveFocus = (0, _react.useCallback)(([targetId, targetEntry]) => {
|
|
23
|
+
setFocusedItemId(targetId);
|
|
24
|
+
targetEntry.node?.focus?.();
|
|
25
|
+
}, [setFocusedItemId]);
|
|
26
|
+
const handleKeyDown = (0, _react.useCallback)(e => {
|
|
27
|
+
if (e.key === 'Escape') {
|
|
28
|
+
e.preventDefault();
|
|
29
|
+
e.stopPropagation?.();
|
|
30
|
+
onEscapeRef.current?.();
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (e.key === 'Tab') {
|
|
34
|
+
onTabRef.current?.();
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const enabledItems = getEnabledItems();
|
|
38
|
+
if (enabledItems.length === 0) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const idx = focusedItemId ? enabledItems.findIndex(([itemId]) => itemId === focusedItemId) : -1;
|
|
42
|
+
switch (e.key) {
|
|
43
|
+
case 'ArrowDown':
|
|
44
|
+
{
|
|
45
|
+
e.preventDefault();
|
|
46
|
+
if (idx === -1) {
|
|
47
|
+
moveFocus(enabledItems[0]);
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
moveFocus(enabledItems[idx < enabledItems.length - 1 ? idx + 1 : 0]);
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case 'ArrowUp':
|
|
54
|
+
{
|
|
55
|
+
e.preventDefault();
|
|
56
|
+
if (idx === -1) {
|
|
57
|
+
const last = enabledItems.at(-1);
|
|
58
|
+
if (last) {
|
|
59
|
+
moveFocus(last);
|
|
60
|
+
}
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
moveFocus(enabledItems[idx > 0 ? idx - 1 : enabledItems.length - 1]);
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
case 'Home':
|
|
67
|
+
{
|
|
68
|
+
e.preventDefault();
|
|
69
|
+
moveFocus(enabledItems[0]);
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
case 'End':
|
|
73
|
+
{
|
|
74
|
+
e.preventDefault();
|
|
75
|
+
const last = enabledItems.at(-1);
|
|
76
|
+
if (last) {
|
|
77
|
+
moveFocus(last);
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}, [focusedItemId, getEnabledItems, moveFocus]);
|
|
83
|
+
return {
|
|
84
|
+
handleKeyDown
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=useMenuNavigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","useMenuNavigation","getItems","focusedItemId","setFocusedItemId","onEscape","onTab","onEscapeRef","useRef","current","onTabRef","getEnabledItems","useCallback","filter","entry","disabled","moveFocus","targetId","targetEntry","node","focus","handleKeyDown","e","key","preventDefault","stopPropagation","enabledItems","length","idx","findIndex","itemId","last","at"],"sourceRoot":"../../../src","sources":["menu/useMenuNavigation.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA;;AAUO,SAASC,iBAAiBA,CAAC;EAChCC,QAAQ;EACRC,aAAa;EACbC,gBAAgB;EAChBC,QAAQ;EACRC;AACwB,CAAC,EAAE;EAC3B,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAACH,QAAQ,CAAC;EACpCE,WAAW,CAACE,OAAO,GAAGJ,QAAQ;EAC9B,MAAMK,QAAQ,GAAG,IAAAF,aAAM,EAACF,KAAK,CAAC;EAC9BI,QAAQ,CAACD,OAAO,GAAGH,KAAK;EAExB,MAAMK,eAAe,GAAG,IAAAC,kBAAW,EACjC,MAAMV,QAAQ,CAAC,CAAC,CAACW,MAAM,CAAC,CAAC,GAAGC,KAAK,CAAC,KAAK,CAACA,KAAK,CAACC,QAAQ,CAAC,EACvD,CAACb,QAAQ,CACX,CAAC;EAED,MAAMc,SAAS,GAAG,IAAAJ,kBAAW,EAC3B,CAAC,CAACK,QAAQ,EAAEC,WAAW,CAA+B,KAAK;IACzDd,gBAAgB,CAACa,QAAQ,CAAC;IAC1BC,WAAW,CAACC,IAAI,EAAEC,KAAK,GAAG,CAAC;EAC7B,CAAC,EACD,CAAChB,gBAAgB,CACnB,CAAC;EAED,MAAMiB,aAAa,GAAG,IAAAT,kBAAW,EAC9BU,CAA4E,IAAK;IAChF,IAAIA,CAAC,CAACC,GAAG,KAAK,QAAQ,EAAE;MACtBD,CAAC,CAACE,cAAc,CAAC,CAAC;MAClBF,CAAC,CAACG,eAAe,GAAG,CAAC;MACrBlB,WAAW,CAACE,OAAO,GAAG,CAAC;MACvB;IACF;IACA,IAAIa,CAAC,CAACC,GAAG,KAAK,KAAK,EAAE;MACnBb,QAAQ,CAACD,OAAO,GAAG,CAAC;MACpB;IACF;IAEA,MAAMiB,YAAY,GAAGf,eAAe,CAAC,CAAC;IACtC,IAAIe,YAAY,CAACC,MAAM,KAAK,CAAC,EAAE;MAC7B;IACF;IAEA,MAAMC,GAAG,GAAGzB,aAAa,GACrBuB,YAAY,CAACG,SAAS,CAAC,CAAC,CAACC,MAAM,CAAC,KAAKA,MAAM,KAAK3B,aAAa,CAAC,GAC9D,CAAC,CAAC;IAEN,QAAQmB,CAAC,CAACC,GAAG;MACX,KAAK,WAAW;QAAE;UAChBD,CAAC,CAACE,cAAc,CAAC,CAAC;UAClB,IAAII,GAAG,KAAK,CAAC,CAAC,EAAE;YACdZ,SAAS,CAACU,YAAY,CAAC,CAAC,CAAC,CAAC;YAC1B;UACF;UACAV,SAAS,CAACU,YAAY,CAACE,GAAG,GAAGF,YAAY,CAACC,MAAM,GAAG,CAAC,GAAGC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;UACpE;QACF;MACA,KAAK,SAAS;QAAE;UACdN,CAAC,CAACE,cAAc,CAAC,CAAC;UAClB,IAAII,GAAG,KAAK,CAAC,CAAC,EAAE;YACd,MAAMG,IAAI,GAAGL,YAAY,CAACM,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,IAAID,IAAI,EAAE;cACRf,SAAS,CAACe,IAAI,CAAC;YACjB;YACA;UACF;UACAf,SAAS,CAACU,YAAY,CAACE,GAAG,GAAG,CAAC,GAAGA,GAAG,GAAG,CAAC,GAAGF,YAAY,CAACC,MAAM,GAAG,CAAC,CAAC,CAAC;UACpE;QACF;MACA,KAAK,MAAM;QAAE;UACXL,CAAC,CAACE,cAAc,CAAC,CAAC;UAClBR,SAAS,CAACU,YAAY,CAAC,CAAC,CAAC,CAAC;UAC1B;QACF;MACA,KAAK,KAAK;QAAE;UACVJ,CAAC,CAACE,cAAc,CAAC,CAAC;UAClB,MAAMO,IAAI,GAAGL,YAAY,CAACM,EAAE,CAAC,CAAC,CAAC,CAAC;UAChC,IAAID,IAAI,EAAE;YACRf,SAAS,CAACe,IAAI,CAAC;UACjB;UACA;QACF;IACF;EACF,CAAC,EACD,CAAC5B,aAAa,EAAEQ,eAAe,EAAEK,SAAS,CAC5C,CAAC;EAED,OAAO;IAAEK;EAAc,CAAC;AAC1B","ignoreList":[]}
|