@eightshift/ui-components 5.0.0 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/dist/Button-wERNNG0T.js +185 -0
  2. package/dist/Collection-CKsHTyhc.js +2363 -0
  3. package/dist/Color-BhgbJF5x.js +2452 -0
  4. package/dist/ColorSwatch-Bcn6oRSg.js +64 -0
  5. package/dist/ComboBox-D1LPUwWP.js +1906 -0
  6. package/dist/Dialog-D190gMbE.js +2298 -0
  7. package/dist/FieldError-DeUh5Wkw.js +42 -0
  8. package/dist/FocusScope-C-plSxbS.js +831 -0
  9. package/dist/Form-Cq3fu75_.js +5 -0
  10. package/dist/Group-C5iZpSAM.js +48 -0
  11. package/dist/Heading-D-Pboe4p.js +16 -0
  12. package/dist/Hidden-rE6uR-lr.js +41 -0
  13. package/dist/Input--mF4XVE1.js +133 -0
  14. package/dist/Label-Fp6AwSRn.js +17 -0
  15. package/dist/List-CZMUbkFU.js +593 -0
  16. package/dist/ListBox-4oW9kh3R.js +582 -0
  17. package/dist/NumberFormatter-DA8u1Ot7.js +140 -0
  18. package/dist/OverlayArrow-BpB9uB_I.js +637 -0
  19. package/dist/RSPContexts-2lR5GG9p.js +14 -0
  20. package/dist/Select-aab027f3.esm-BKIJGje-.js +2469 -0
  21. package/dist/Separator-B88tj5YD.js +323 -0
  22. package/dist/Slider-CyJzC1bp.js +853 -0
  23. package/dist/Text-DRpwWot2.js +16 -0
  24. package/dist/VisuallyHidden-DsKYcRQ_.js +48 -0
  25. package/dist/_commonjsHelpers-CUmg6egw.js +6 -0
  26. package/dist/assets/index.css +57 -0
  27. package/dist/assets/style-admin.css +5864 -0
  28. package/dist/assets/style-editor.css +5864 -0
  29. package/dist/assets/style.css +5870 -0
  30. package/dist/assets/wp-font-enhancements.css +8 -0
  31. package/dist/assets/wp-ui-enhancements.css +377 -0
  32. package/dist/components/animated-visibility/animated-visibility.js +105 -0
  33. package/dist/components/base-control/base-control.js +86 -0
  34. package/dist/components/breakpoint-preview/breakpoint-preview.js +161 -0
  35. package/dist/components/button/button.js +387 -0
  36. package/dist/components/checkbox/checkbox.js +320 -0
  37. package/dist/components/color-pickers/color-picker.js +272 -0
  38. package/dist/components/color-pickers/color-swatch.js +59 -0
  39. package/dist/components/color-pickers/gradient-editor.js +534 -0
  40. package/dist/components/color-pickers/solid-color-picker.js +1567 -0
  41. package/dist/components/component-toggle/component-toggle.js +161 -0
  42. package/dist/components/container-panel/container-panel.js +131 -0
  43. package/dist/components/draggable/draggable-context.js +5 -0
  44. package/dist/components/draggable/draggable-handle.js +46 -0
  45. package/dist/components/draggable/draggable.js +6979 -0
  46. package/dist/components/draggable-list/draggable-list-context.js +5 -0
  47. package/dist/components/draggable-list/draggable-list-item.js +77 -0
  48. package/dist/components/draggable-list/draggable-list.js +151 -0
  49. package/dist/components/expandable/expandable.js +342 -0
  50. package/dist/components/index.js +137 -0
  51. package/dist/components/input-field/input-field.js +231 -0
  52. package/dist/components/item-collection/item-collection.js +59 -0
  53. package/dist/components/layout/hstack.js +30 -0
  54. package/dist/components/layout/vstack.js +30 -0
  55. package/dist/components/link-input/link-input.js +291 -0
  56. package/dist/components/matrix-align/matrix-align.js +134 -0
  57. package/dist/components/menu/menu.js +285 -0
  58. package/dist/components/modal/modal.js +305 -0
  59. package/dist/components/notice/notice.js +123 -0
  60. package/dist/components/number-picker/number-picker.js +292 -0
  61. package/dist/components/option-select/option-select.js +264 -0
  62. package/dist/components/options-panel/options-panel.js +158 -0
  63. package/dist/components/placeholders/file-placeholder.js +42 -0
  64. package/dist/components/placeholders/image-placeholder.js +88 -0
  65. package/dist/components/placeholders/media-placeholder.js +63 -0
  66. package/dist/components/popover/popover.js +207 -0
  67. package/dist/components/radio/radio.js +579 -0
  68. package/dist/components/repeater/repeater-context.js +5 -0
  69. package/dist/components/repeater/repeater-item.js +119 -0
  70. package/dist/components/repeater/repeater.js +280 -0
  71. package/dist/components/responsive/mini-responsive.js +498 -0
  72. package/dist/components/responsive/responsive-legacy.js +343 -0
  73. package/dist/components/responsive/responsive.js +583 -0
  74. package/dist/components/responsive-preview/responsive-preview.js +123 -0
  75. package/dist/components/rich-label/rich-label.js +66 -0
  76. package/dist/components/select/async-multi-select.js +157 -0
  77. package/dist/components/select/async-single-select.js +137 -0
  78. package/dist/components/select/custom-select-default-components.js +38 -0
  79. package/dist/components/select/multi-select-components.js +8 -0
  80. package/dist/components/select/multi-select.js +151 -0
  81. package/dist/components/select/react-select-component-wrappers.js +90 -0
  82. package/dist/components/select/shared.js +26 -0
  83. package/dist/components/select/single-select.js +131 -0
  84. package/dist/components/select/styles.js +49 -0
  85. package/dist/components/select/v2/async-select.js +297 -0
  86. package/dist/components/select/v2/shared.js +24 -0
  87. package/dist/components/select/v2/single-select.js +991 -0
  88. package/dist/components/slider/column-config-slider.js +210 -0
  89. package/dist/components/slider/slider.js +345 -0
  90. package/dist/components/slider/utils.js +94 -0
  91. package/dist/components/spacer/spacer.js +97 -0
  92. package/dist/components/tabs/tabs.js +704 -0
  93. package/dist/components/toggle/switch.js +156 -0
  94. package/dist/components/toggle/toggle.js +64 -0
  95. package/dist/components/toggle-button/toggle-button.js +343 -0
  96. package/dist/components/tooltip/tooltip.js +527 -0
  97. package/dist/context-BYWrbm1z.js +92 -0
  98. package/dist/default-i18n-CT_oS1Fy.js +922 -0
  99. package/dist/filterDOMProps-EDDcM64A.js +28 -0
  100. package/dist/icons/block-icon.js +42 -0
  101. package/dist/icons/generic-color-swatch.js +113 -0
  102. package/dist/icons/icons.js +30371 -0
  103. package/dist/icons/index.js +11 -0
  104. package/dist/icons/jsx-svg.js +50 -0
  105. package/dist/index-641ee5b8.esm-BPU8rMZr.js +3137 -0
  106. package/dist/index-CFozsmNS.js +28321 -0
  107. package/dist/index-wl5606BX.js +44 -0
  108. package/dist/index.js +139 -0
  109. package/dist/lite-DVmmD_-j.js +7 -0
  110. package/dist/modifiers.esm-BuJQPI1X.js +31 -0
  111. package/dist/multi-select-components-Sp-JEFEX.js +3744 -0
  112. package/dist/number-GajL10e1.js +36 -0
  113. package/dist/react-jsx-parser.min-DZCiis5V.js +11753 -0
  114. package/dist/react-select-async.esm-D937XTWW.js +107 -0
  115. package/dist/react-select.esm-Ciai3aKf.js +15 -0
  116. package/dist/style-admin.js +1 -0
  117. package/dist/style-editor.js +1 -0
  118. package/dist/style.js +1 -0
  119. package/dist/textSelection-CCcyjiRP.js +46 -0
  120. package/dist/useButton-BOHxkGQF.js +50 -0
  121. package/dist/useEvent-D5o_CqDH.js +23 -0
  122. package/dist/useFocusRing-nMG2uzxS.js +107 -0
  123. package/dist/useFormReset-DlmRL87g.js +22 -0
  124. package/dist/useFormValidation-D0_aaK-e.js +224 -0
  125. package/dist/useHover-VO5tcIli.js +890 -0
  126. package/dist/useLabel-BKH4fVA4.js +27 -0
  127. package/dist/useLabels-ntF3rFY0.js +23 -0
  128. package/dist/useListState-Cq2Nvr-v.js +161 -0
  129. package/dist/useLocalizedStringFormatter-CGzwx1a0.js +121 -0
  130. package/dist/useNumberField-C9dmERhP.js +1207 -0
  131. package/dist/useNumberFormatter-MrRLgvhj.js +13 -0
  132. package/dist/usePress-DjNo5790.js +677 -0
  133. package/dist/useSingleSelectListState--r3AAhRj.js +38 -0
  134. package/dist/useToggle-CQaXLe-O.js +59 -0
  135. package/dist/useToggleState-C3DLdez5.js +19 -0
  136. package/dist/utilities/array-helpers.js +56 -0
  137. package/dist/utilities/debounce-throttle.js +123 -0
  138. package/dist/utilities/es-dash.js +382 -0
  139. package/dist/utilities/index.js +27 -0
  140. package/dist/utilities/text-helpers.js +136 -0
  141. package/dist/utils-B94NDG0v.js +370 -0
  142. package/dist/wp/wp-font-enhancements.js +1 -0
  143. package/dist/wp/wp-ui-enhancements.js +1 -0
  144. package/package.json +8 -8
@@ -0,0 +1,2298 @@
1
+ import { a as $d2b4bc8c273e7be6$export$24d547caef80ccd1 } from "./Button-wERNNG0T.js";
2
+ import { l as $df56164dff5785e2$export$4338b53315abf666, d as $3ef42575df84b30b$export$9d1611c77c2fe928, f as $8ae05eaa5c114e9c$export$7f54fc3180508a52, e as $bdb11010cef70236$export$f680877a34711e37, k as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c, p as $ff5963eb1fccf552$export$e08e3b67e392101e, n as $b5e257d569688ac6$export$535bd6ca7f90a273, j as $bdb11010cef70236$export$b4cc09c592e8fdb8, a as $64fa3d84918910a7$export$29f1550f4b0d4415, b as $64fa3d84918910a7$export$4d86445c2cf5e3, i as $64fa3d84918910a7$export$2881499e37b75b9a, $ as $64fa3d84918910a7$export$fabf2dc03a41866e, o as $64fa3d84918910a7$export$c62b8e45d58ddad9, m as $5dc95899b306f630$export$c9058316764c140e, g as $64fa3d84918910a7$export$9d4c57ee4c6ffdd8 } from "./utils-B94NDG0v.js";
3
+ import { $ as $4e85f108e88277b8$export$d688439359537581 } from "./RSPContexts-2lR5GG9p.js";
4
+ import { h as $dd149f63282afbbf$export$f6211563215e3b37, d as $2a41e45df1593e64$export$d39e1813b3bdd0e1, c as $96b38030c423d352$export$9fc1347d4195ccb3, g as $9daab02d461809db$export$683480f191c0e3ea, $ as $fc909762b330b746$export$61c6a8c84e605fb6, a as $d3f049242431219c$export$45fda7c47f93fd48, b as $d3f049242431219c$export$6d3443f2c48bfc20, e as $44f671af83e7d9e0$export$2de4954e8ae13b9f } from "./OverlayArrow-BpB9uB_I.js";
5
+ import { j as $cc38e7bd3fc7b213$export$2bb74740c4e19def, q as $8a26561d2877236e$export$c24ed0104d07eab9, c as $880e95eb8b93ba9a$export$ecf600387e221c37, $ as $7af3f5b51489e0b5$export$253fe78d46329472, a as $7613b1592d41b092$export$6cd28814d92fa9c9, b as $d496c0a20b6e58ec$export$6c8a5aaad13c9852, d as $e1995378a142960e$export$18af5c7a9e9b3664, r as $e1995378a142960e$export$e953bb1cd0f19726, e as $e1995378a142960e$export$bf788dd355e3a401, f as $e1995378a142960e$export$fb8073518f34e6ec, g as $7135fc7d473fd974$export$4feb769f8ddf26c5, h as $7135fc7d473fd974$export$d40e14dec8b060a8, n as $7135fc7d473fd974$export$90e00781bc59d8f9 } from "./Collection-CKsHTyhc.js";
6
+ import { b as $982254629710d113$export$b95089534ab7c1fd, c as $453cc9f0df89c0a5$export$77d5aafae4e095b2, d as $d2f53cda644affe3$export$65d2a03b8800d6e3, g as $431f98aba6844401$export$6615d83f6de245ce, h as $72a5793c14baf454$export$e0e4026c12a8bdbb } from "./Separator-B88tj5YD.js";
7
+ import React__default, { useRef, useContext, useEffect, useMemo, useState, useCallback, forwardRef, createContext } from "react";
8
+ import { a as $514c0188e459b4c0$export$9afb8bc826b033ea } from "./Text-DRpwWot2.js";
9
+ import { $ as $65484d02dcb7eb3e$export$457c3d6518dd4c6f } from "./filterDOMProps-EDDcM64A.js";
10
+ import { d as $ae1eeba8b9eafd08$export$5165eccb35aaadb5, b as $ea8dcbcb9ea1b556$export$9a302a45f65d0572, $ as $f6c31cce2adf654f$export$45712eceda6fad21, a as $ea8dcbcb9ea1b556$export$7e924b3091a3bd18 } from "./usePress-DjNo5790.js";
11
+ import { I as $e7801be82b4b2a53$export$4debdb1a3f0fa79e, d as $431fbd86ca7dc216$export$b204af158042fbac, c as $c87311424ea30a05$export$fedb369cb70207f1, z as $7215afc6de606d6b$export$de79e2c695e052f3, $ as $6179b936705e76d3$export$ae780daf29e6d456, n as $507fabe10e71c6fb$export$b9b3dfddab17db27, A as $46d819fcbaf35654$export$8f71654801c2f7cd, p as $a1ea59d68270f0dd$export$f8168d8dd8fd66e6, M as $507fabe10e71c6fb$export$98e20ec92f614cfe, u as $3ad3f6e1647bc98d$export$80f3e147d781571c, b as $458b0a5536c1a7cf$export$40bfa8c7b0832715 } from "./useHover-VO5tcIli.js";
12
+ import { $ as $fca6afa0e843324b$export$f12b703ca79dfbb1 } from "./useLocalizedStringFormatter-CGzwx1a0.js";
13
+ import { $ as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7 } from "./context-BYWrbm1z.js";
14
+ import { c as $9bf71ea28793e738$export$1258395f99bf9cbf, b as $9bf71ea28793e738$export$20e40289641fbbb6 } from "./FocusScope-C-plSxbS.js";
15
+ import { $ as $dbSRa$reactdom } from "./index-CFozsmNS.js";
16
+ import { b as $f39a9eba43920ace$export$b5d7cc18bb8d2b59 } from "./Hidden-rE6uR-lr.js";
17
+ import { a as $9ab94262bd0047c7$export$420e68273165f4ec } from "./useFocusRing-nMG2uzxS.js";
18
+ import { $ as $313b98861ee5dd6c$export$d6875122194c7b44 } from "./useLabels-ntF3rFY0.js";
19
+ import { $ as $5c3e21d68f1c4674$export$439d29a4e110a164 } from "./VisuallyHidden-DsKYcRQ_.js";
20
+ function $62d8ded9296f3872$export$cfa2225e87938781(node, checkForOverflow) {
21
+ let scrollableNode = node;
22
+ if ($cc38e7bd3fc7b213$export$2bb74740c4e19def(scrollableNode, checkForOverflow)) scrollableNode = scrollableNode.parentElement;
23
+ while (scrollableNode && !$cc38e7bd3fc7b213$export$2bb74740c4e19def(scrollableNode, checkForOverflow)) scrollableNode = scrollableNode.parentElement;
24
+ return scrollableNode || document.scrollingElement || document.documentElement;
25
+ }
26
+ const $f1ab8c75478c6f73$export$3351871ee4b288b8 = /* @__PURE__ */ React__default.forwardRef(({ children, ...props }, ref) => {
27
+ let isRegistered = useRef(false);
28
+ let prevContext = useContext($ae1eeba8b9eafd08$export$5165eccb35aaadb5);
29
+ ref = $df56164dff5785e2$export$4338b53315abf666(ref || (prevContext === null || prevContext === void 0 ? void 0 : prevContext.ref));
30
+ let context = $3ef42575df84b30b$export$9d1611c77c2fe928(prevContext || {}, {
31
+ ...props,
32
+ ref,
33
+ register() {
34
+ isRegistered.current = true;
35
+ if (prevContext) prevContext.register();
36
+ }
37
+ });
38
+ $e7801be82b4b2a53$export$4debdb1a3f0fa79e(prevContext, ref);
39
+ useEffect(() => {
40
+ if (!isRegistered.current) {
41
+ if (process.env.NODE_ENV !== "production") console.warn("A PressResponder was rendered without a pressable child. Either call the usePress hook, or wrap your DOM node with <Pressable> component.");
42
+ isRegistered.current = true;
43
+ }
44
+ }, []);
45
+ return /* @__PURE__ */ React__default.createElement($ae1eeba8b9eafd08$export$5165eccb35aaadb5.Provider, {
46
+ value: context
47
+ }, children);
48
+ });
49
+ function $f1ab8c75478c6f73$export$cf75428e0b9ed1ea({ children }) {
50
+ let context = useMemo(() => ({
51
+ register: () => {
52
+ }
53
+ }), []);
54
+ return /* @__PURE__ */ React__default.createElement($ae1eeba8b9eafd08$export$5165eccb35aaadb5.Provider, {
55
+ value: context
56
+ }, children);
57
+ }
58
+ function $e0b6e0b68ec7f50f$export$872b660ac5a1ff98(props) {
59
+ let { ref, onInteractOutside, isDisabled, onInteractOutsideStart } = props;
60
+ let stateRef = useRef({
61
+ isPointerDown: false,
62
+ ignoreEmulatedMouseEvents: false
63
+ });
64
+ let onPointerDown = $8ae05eaa5c114e9c$export$7f54fc3180508a52((e) => {
65
+ if (onInteractOutside && $e0b6e0b68ec7f50f$var$isValidEvent(e, ref)) {
66
+ if (onInteractOutsideStart) onInteractOutsideStart(e);
67
+ stateRef.current.isPointerDown = true;
68
+ }
69
+ });
70
+ let triggerInteractOutside = $8ae05eaa5c114e9c$export$7f54fc3180508a52((e) => {
71
+ if (onInteractOutside) onInteractOutside(e);
72
+ });
73
+ useEffect(() => {
74
+ let state = stateRef.current;
75
+ if (isDisabled) return;
76
+ const element = ref.current;
77
+ const documentObject = $431fbd86ca7dc216$export$b204af158042fbac(element);
78
+ if (typeof PointerEvent !== "undefined") {
79
+ let onPointerUp = (e) => {
80
+ if (state.isPointerDown && $e0b6e0b68ec7f50f$var$isValidEvent(e, ref)) triggerInteractOutside(e);
81
+ state.isPointerDown = false;
82
+ };
83
+ documentObject.addEventListener("pointerdown", onPointerDown, true);
84
+ documentObject.addEventListener("pointerup", onPointerUp, true);
85
+ return () => {
86
+ documentObject.removeEventListener("pointerdown", onPointerDown, true);
87
+ documentObject.removeEventListener("pointerup", onPointerUp, true);
88
+ };
89
+ } else if (process.env.NODE_ENV === "test") {
90
+ let onMouseUp = (e) => {
91
+ if (state.ignoreEmulatedMouseEvents) state.ignoreEmulatedMouseEvents = false;
92
+ else if (state.isPointerDown && $e0b6e0b68ec7f50f$var$isValidEvent(e, ref)) triggerInteractOutside(e);
93
+ state.isPointerDown = false;
94
+ };
95
+ let onTouchEnd = (e) => {
96
+ state.ignoreEmulatedMouseEvents = true;
97
+ if (state.isPointerDown && $e0b6e0b68ec7f50f$var$isValidEvent(e, ref)) triggerInteractOutside(e);
98
+ state.isPointerDown = false;
99
+ };
100
+ documentObject.addEventListener("mousedown", onPointerDown, true);
101
+ documentObject.addEventListener("mouseup", onMouseUp, true);
102
+ documentObject.addEventListener("touchstart", onPointerDown, true);
103
+ documentObject.addEventListener("touchend", onTouchEnd, true);
104
+ return () => {
105
+ documentObject.removeEventListener("mousedown", onPointerDown, true);
106
+ documentObject.removeEventListener("mouseup", onMouseUp, true);
107
+ documentObject.removeEventListener("touchstart", onPointerDown, true);
108
+ documentObject.removeEventListener("touchend", onTouchEnd, true);
109
+ };
110
+ }
111
+ }, [
112
+ ref,
113
+ isDisabled,
114
+ onPointerDown,
115
+ triggerInteractOutside
116
+ ]);
117
+ }
118
+ function $e0b6e0b68ec7f50f$var$isValidEvent(event, ref) {
119
+ if (event.button > 0) return false;
120
+ if (event.target) {
121
+ const ownerDocument = event.target.ownerDocument;
122
+ if (!ownerDocument || !ownerDocument.documentElement.contains(event.target)) return false;
123
+ if (event.target.closest("[data-react-aria-top-layer]")) return false;
124
+ }
125
+ if (!ref.current) return false;
126
+ return !event.composedPath().includes(ref.current);
127
+ }
128
+ const $a11501f3d1d39e6c$var$visibleOverlays = [];
129
+ function $a11501f3d1d39e6c$export$ea8f71083e90600f(props, ref) {
130
+ let { onClose, shouldCloseOnBlur, isOpen, isDismissable = false, isKeyboardDismissDisabled = false, shouldCloseOnInteractOutside } = props;
131
+ useEffect(() => {
132
+ if (isOpen && !$a11501f3d1d39e6c$var$visibleOverlays.includes(ref)) {
133
+ $a11501f3d1d39e6c$var$visibleOverlays.push(ref);
134
+ return () => {
135
+ let index = $a11501f3d1d39e6c$var$visibleOverlays.indexOf(ref);
136
+ if (index >= 0) $a11501f3d1d39e6c$var$visibleOverlays.splice(index, 1);
137
+ };
138
+ }
139
+ }, [
140
+ isOpen,
141
+ ref
142
+ ]);
143
+ let onHide = () => {
144
+ if ($a11501f3d1d39e6c$var$visibleOverlays[$a11501f3d1d39e6c$var$visibleOverlays.length - 1] === ref && onClose) onClose();
145
+ };
146
+ let onInteractOutsideStart = (e) => {
147
+ if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target)) {
148
+ if ($a11501f3d1d39e6c$var$visibleOverlays[$a11501f3d1d39e6c$var$visibleOverlays.length - 1] === ref) {
149
+ e.stopPropagation();
150
+ e.preventDefault();
151
+ }
152
+ }
153
+ };
154
+ let onInteractOutside = (e) => {
155
+ if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target)) {
156
+ if ($a11501f3d1d39e6c$var$visibleOverlays[$a11501f3d1d39e6c$var$visibleOverlays.length - 1] === ref) {
157
+ e.stopPropagation();
158
+ e.preventDefault();
159
+ }
160
+ onHide();
161
+ }
162
+ };
163
+ let onKeyDown = (e) => {
164
+ if (e.key === "Escape" && !isKeyboardDismissDisabled && !e.nativeEvent.isComposing) {
165
+ e.stopPropagation();
166
+ e.preventDefault();
167
+ onHide();
168
+ }
169
+ };
170
+ $e0b6e0b68ec7f50f$export$872b660ac5a1ff98({
171
+ ref,
172
+ onInteractOutside: isDismissable && isOpen ? onInteractOutside : void 0,
173
+ onInteractOutsideStart
174
+ });
175
+ let { focusWithinProps } = $9ab94262bd0047c7$export$420e68273165f4ec({
176
+ isDisabled: !shouldCloseOnBlur,
177
+ onBlurWithin: (e) => {
178
+ if (!e.relatedTarget || $9bf71ea28793e738$export$1258395f99bf9cbf(e.relatedTarget)) return;
179
+ if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.relatedTarget)) onClose === null || onClose === void 0 ? void 0 : onClose();
180
+ }
181
+ });
182
+ let onPointerDownUnderlay = (e) => {
183
+ if (e.target === e.currentTarget) e.preventDefault();
184
+ };
185
+ return {
186
+ overlayProps: {
187
+ onKeyDown,
188
+ ...focusWithinProps
189
+ },
190
+ underlayProps: {
191
+ onPointerDown: onPointerDownUnderlay
192
+ }
193
+ };
194
+ }
195
+ function $628037886ba31236$export$f9d5c8beee7d008d(props, state, ref) {
196
+ let { type } = props;
197
+ let { isOpen } = state;
198
+ useEffect(() => {
199
+ if (ref && ref.current) $dd149f63282afbbf$export$f6211563215e3b37.set(ref.current, state.close);
200
+ });
201
+ let ariaHasPopup = void 0;
202
+ if (type === "menu") ariaHasPopup = true;
203
+ else if (type === "listbox") ariaHasPopup = "listbox";
204
+ let overlayId = $bdb11010cef70236$export$f680877a34711e37();
205
+ return {
206
+ triggerProps: {
207
+ "aria-haspopup": ariaHasPopup,
208
+ "aria-expanded": isOpen,
209
+ "aria-controls": isOpen ? overlayId : void 0,
210
+ onPress: state.toggle
211
+ },
212
+ overlayProps: {
213
+ id: overlayId
214
+ }
215
+ };
216
+ }
217
+ const $49c51c25361d4cd2$var$visualViewport = typeof document !== "undefined" && window.visualViewport;
218
+ const $49c51c25361d4cd2$var$nonTextInputTypes = /* @__PURE__ */ new Set([
219
+ "checkbox",
220
+ "radio",
221
+ "range",
222
+ "color",
223
+ "file",
224
+ "image",
225
+ "button",
226
+ "submit",
227
+ "reset"
228
+ ]);
229
+ let $49c51c25361d4cd2$var$preventScrollCount = 0;
230
+ let $49c51c25361d4cd2$var$restore;
231
+ function $49c51c25361d4cd2$export$ee0f7cc6afcd1c18(options = {}) {
232
+ let { isDisabled } = options;
233
+ $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c(() => {
234
+ if (isDisabled) return;
235
+ $49c51c25361d4cd2$var$preventScrollCount++;
236
+ if ($49c51c25361d4cd2$var$preventScrollCount === 1) {
237
+ if ($c87311424ea30a05$export$fedb369cb70207f1()) $49c51c25361d4cd2$var$restore = $49c51c25361d4cd2$var$preventScrollMobileSafari();
238
+ else $49c51c25361d4cd2$var$restore = $49c51c25361d4cd2$var$preventScrollStandard();
239
+ }
240
+ return () => {
241
+ $49c51c25361d4cd2$var$preventScrollCount--;
242
+ if ($49c51c25361d4cd2$var$preventScrollCount === 0) $49c51c25361d4cd2$var$restore();
243
+ };
244
+ }, [
245
+ isDisabled
246
+ ]);
247
+ }
248
+ function $49c51c25361d4cd2$var$preventScrollStandard() {
249
+ return $ff5963eb1fccf552$export$e08e3b67e392101e($49c51c25361d4cd2$var$setStyle(document.documentElement, "paddingRight", `${window.innerWidth - document.documentElement.clientWidth}px`), $49c51c25361d4cd2$var$setStyle(document.documentElement, "overflow", "hidden"));
250
+ }
251
+ function $49c51c25361d4cd2$var$preventScrollMobileSafari() {
252
+ let scrollable;
253
+ let restoreScrollableStyles;
254
+ let onTouchStart = (e) => {
255
+ scrollable = $62d8ded9296f3872$export$cfa2225e87938781(e.target, true);
256
+ if (scrollable === document.documentElement && scrollable === document.body) return;
257
+ if (scrollable instanceof HTMLElement && window.getComputedStyle(scrollable).overscrollBehavior === "auto") restoreScrollableStyles = $49c51c25361d4cd2$var$setStyle(scrollable, "overscrollBehavior", "contain");
258
+ };
259
+ let onTouchMove = (e) => {
260
+ if (!scrollable || scrollable === document.documentElement || scrollable === document.body) {
261
+ e.preventDefault();
262
+ return;
263
+ }
264
+ if (scrollable.scrollHeight === scrollable.clientHeight && scrollable.scrollWidth === scrollable.clientWidth) e.preventDefault();
265
+ };
266
+ let onTouchEnd = () => {
267
+ if (restoreScrollableStyles) restoreScrollableStyles();
268
+ };
269
+ let onFocus = (e) => {
270
+ let target = e.target;
271
+ if ($49c51c25361d4cd2$var$willOpenKeyboard(target)) {
272
+ setupStyles();
273
+ target.style.transform = "translateY(-2000px)";
274
+ requestAnimationFrame(() => {
275
+ target.style.transform = "";
276
+ if ($49c51c25361d4cd2$var$visualViewport) {
277
+ if ($49c51c25361d4cd2$var$visualViewport.height < window.innerHeight)
278
+ requestAnimationFrame(() => {
279
+ $49c51c25361d4cd2$var$scrollIntoView(target);
280
+ });
281
+ else
282
+ $49c51c25361d4cd2$var$visualViewport.addEventListener("resize", () => $49c51c25361d4cd2$var$scrollIntoView(target), {
283
+ once: true
284
+ });
285
+ }
286
+ });
287
+ }
288
+ };
289
+ let restoreStyles = null;
290
+ let setupStyles = () => {
291
+ if (restoreStyles) return;
292
+ let onWindowScroll = () => {
293
+ window.scrollTo(0, 0);
294
+ };
295
+ let scrollX = window.pageXOffset;
296
+ let scrollY = window.pageYOffset;
297
+ restoreStyles = $ff5963eb1fccf552$export$e08e3b67e392101e($49c51c25361d4cd2$var$addEvent(window, "scroll", onWindowScroll), $49c51c25361d4cd2$var$setStyle(document.documentElement, "paddingRight", `${window.innerWidth - document.documentElement.clientWidth}px`), $49c51c25361d4cd2$var$setStyle(document.documentElement, "overflow", "hidden"), $49c51c25361d4cd2$var$setStyle(document.body, "marginTop", `-${scrollY}px`), () => {
298
+ window.scrollTo(scrollX, scrollY);
299
+ });
300
+ window.scrollTo(0, 0);
301
+ };
302
+ let removeEvents = $ff5963eb1fccf552$export$e08e3b67e392101e($49c51c25361d4cd2$var$addEvent(document, "touchstart", onTouchStart, {
303
+ passive: false,
304
+ capture: true
305
+ }), $49c51c25361d4cd2$var$addEvent(document, "touchmove", onTouchMove, {
306
+ passive: false,
307
+ capture: true
308
+ }), $49c51c25361d4cd2$var$addEvent(document, "touchend", onTouchEnd, {
309
+ passive: false,
310
+ capture: true
311
+ }), $49c51c25361d4cd2$var$addEvent(document, "focus", onFocus, true));
312
+ return () => {
313
+ restoreScrollableStyles === null || restoreScrollableStyles === void 0 ? void 0 : restoreScrollableStyles();
314
+ restoreStyles === null || restoreStyles === void 0 ? void 0 : restoreStyles();
315
+ removeEvents();
316
+ };
317
+ }
318
+ function $49c51c25361d4cd2$var$setStyle(element, style, value) {
319
+ let cur = element.style[style];
320
+ element.style[style] = value;
321
+ return () => {
322
+ element.style[style] = cur;
323
+ };
324
+ }
325
+ function $49c51c25361d4cd2$var$addEvent(target, event, handler, options) {
326
+ target.addEventListener(event, handler, options);
327
+ return () => {
328
+ target.removeEventListener(event, handler, options);
329
+ };
330
+ }
331
+ function $49c51c25361d4cd2$var$scrollIntoView(target) {
332
+ let root = document.scrollingElement || document.documentElement;
333
+ let nextTarget = target;
334
+ while (nextTarget && nextTarget !== root) {
335
+ let scrollable = $62d8ded9296f3872$export$cfa2225e87938781(nextTarget);
336
+ if (scrollable !== document.documentElement && scrollable !== document.body && scrollable !== nextTarget) {
337
+ let scrollableTop = scrollable.getBoundingClientRect().top;
338
+ let targetTop = nextTarget.getBoundingClientRect().top;
339
+ if (targetTop > scrollableTop + nextTarget.clientHeight) scrollable.scrollTop += targetTop - scrollableTop;
340
+ }
341
+ nextTarget = scrollable.parentElement;
342
+ }
343
+ }
344
+ function $49c51c25361d4cd2$var$willOpenKeyboard(target) {
345
+ return target instanceof HTMLInputElement && !$49c51c25361d4cd2$var$nonTextInputTypes.has(target.type) || target instanceof HTMLTextAreaElement || target instanceof HTMLElement && target.isContentEditable;
346
+ }
347
+ var $773d5888b972f1cf$exports = {};
348
+ $773d5888b972f1cf$exports = {
349
+ "dismiss": `تجاهل`
350
+ };
351
+ var $d11f19852b941573$exports = {};
352
+ $d11f19852b941573$exports = {
353
+ "dismiss": `Отхвърляне`
354
+ };
355
+ var $b983974c2ee1efb3$exports = {};
356
+ $b983974c2ee1efb3$exports = {
357
+ "dismiss": `Odstranit`
358
+ };
359
+ var $5809cc9d4e92de73$exports = {};
360
+ $5809cc9d4e92de73$exports = {
361
+ "dismiss": `Luk`
362
+ };
363
+ var $c68c2e4fc74398d1$exports = {};
364
+ $c68c2e4fc74398d1$exports = {
365
+ "dismiss": `Schließen`
366
+ };
367
+ var $0898b4c153db2b77$exports = {};
368
+ $0898b4c153db2b77$exports = {
369
+ "dismiss": `Απόρριψη`
370
+ };
371
+ var $6d74810286a15183$exports = {};
372
+ $6d74810286a15183$exports = {
373
+ "dismiss": `Dismiss`
374
+ };
375
+ var $309d73dc65f78055$exports = {};
376
+ $309d73dc65f78055$exports = {
377
+ "dismiss": `Descartar`
378
+ };
379
+ var $44ad94f7205cf593$exports = {};
380
+ $44ad94f7205cf593$exports = {
381
+ "dismiss": `Lõpeta`
382
+ };
383
+ var $7c28f5687f0779a9$exports = {};
384
+ $7c28f5687f0779a9$exports = {
385
+ "dismiss": `Hylkää`
386
+ };
387
+ var $e6d75df4b68bd73a$exports = {};
388
+ $e6d75df4b68bd73a$exports = {
389
+ "dismiss": `Rejeter`
390
+ };
391
+ var $87505c9dab186d0f$exports = {};
392
+ $87505c9dab186d0f$exports = {
393
+ "dismiss": `התעלם`
394
+ };
395
+ var $553439c3ffb3e492$exports = {};
396
+ $553439c3ffb3e492$exports = {
397
+ "dismiss": `Odbaci`
398
+ };
399
+ var $74cf411061b983a2$exports = {};
400
+ $74cf411061b983a2$exports = {
401
+ "dismiss": `Elutasítás`
402
+ };
403
+ var $e933f298574dc435$exports = {};
404
+ $e933f298574dc435$exports = {
405
+ "dismiss": `Ignora`
406
+ };
407
+ var $ac91fc9fe02f71f6$exports = {};
408
+ $ac91fc9fe02f71f6$exports = {
409
+ "dismiss": `閉じる`
410
+ };
411
+ var $52b96f86422025af$exports = {};
412
+ $52b96f86422025af$exports = {
413
+ "dismiss": `무시`
414
+ };
415
+ var $c0d724c3e51dafa6$exports = {};
416
+ $c0d724c3e51dafa6$exports = {
417
+ "dismiss": `Atmesti`
418
+ };
419
+ var $c92899672a3fe72e$exports = {};
420
+ $c92899672a3fe72e$exports = {
421
+ "dismiss": `Nerādīt`
422
+ };
423
+ var $9f576b39d8e7a9d6$exports = {};
424
+ $9f576b39d8e7a9d6$exports = {
425
+ "dismiss": `Lukk`
426
+ };
427
+ var $9d025808aeec81a7$exports = {};
428
+ $9d025808aeec81a7$exports = {
429
+ "dismiss": `Negeren`
430
+ };
431
+ var $fce709921e2c0fa6$exports = {};
432
+ $fce709921e2c0fa6$exports = {
433
+ "dismiss": `Zignoruj`
434
+ };
435
+ var $2599cf0c4ab37f59$exports = {};
436
+ $2599cf0c4ab37f59$exports = {
437
+ "dismiss": `Descartar`
438
+ };
439
+ var $3c220ae7ef8a35fd$exports = {};
440
+ $3c220ae7ef8a35fd$exports = {
441
+ "dismiss": `Dispensar`
442
+ };
443
+ var $93562b5094072f54$exports = {};
444
+ $93562b5094072f54$exports = {
445
+ "dismiss": `Revocare`
446
+ };
447
+ var $cd9e2abd0d06c7b4$exports = {};
448
+ $cd9e2abd0d06c7b4$exports = {
449
+ "dismiss": `Пропустить`
450
+ };
451
+ var $45375701f409adf1$exports = {};
452
+ $45375701f409adf1$exports = {
453
+ "dismiss": `Zrušiť`
454
+ };
455
+ var $27fab53a576de9dd$exports = {};
456
+ $27fab53a576de9dd$exports = {
457
+ "dismiss": `Opusti`
458
+ };
459
+ var $4438748d9952e7c7$exports = {};
460
+ $4438748d9952e7c7$exports = {
461
+ "dismiss": `Odbaci`
462
+ };
463
+ var $0936d7347ef4da4c$exports = {};
464
+ $0936d7347ef4da4c$exports = {
465
+ "dismiss": `Avvisa`
466
+ };
467
+ var $29700c92185d38f8$exports = {};
468
+ $29700c92185d38f8$exports = {
469
+ "dismiss": `Kapat`
470
+ };
471
+ var $662ccaf2be4c25b3$exports = {};
472
+ $662ccaf2be4c25b3$exports = {
473
+ "dismiss": `Скасувати`
474
+ };
475
+ var $d80a27deda7cdb3c$exports = {};
476
+ $d80a27deda7cdb3c$exports = {
477
+ "dismiss": `取消`
478
+ };
479
+ var $2b2734393847c884$exports = {};
480
+ $2b2734393847c884$exports = {
481
+ "dismiss": `關閉`
482
+ };
483
+ var $a2f21f5f14f60553$exports = {};
484
+ $a2f21f5f14f60553$exports = {
485
+ "ar-AE": $773d5888b972f1cf$exports,
486
+ "bg-BG": $d11f19852b941573$exports,
487
+ "cs-CZ": $b983974c2ee1efb3$exports,
488
+ "da-DK": $5809cc9d4e92de73$exports,
489
+ "de-DE": $c68c2e4fc74398d1$exports,
490
+ "el-GR": $0898b4c153db2b77$exports,
491
+ "en-US": $6d74810286a15183$exports,
492
+ "es-ES": $309d73dc65f78055$exports,
493
+ "et-EE": $44ad94f7205cf593$exports,
494
+ "fi-FI": $7c28f5687f0779a9$exports,
495
+ "fr-FR": $e6d75df4b68bd73a$exports,
496
+ "he-IL": $87505c9dab186d0f$exports,
497
+ "hr-HR": $553439c3ffb3e492$exports,
498
+ "hu-HU": $74cf411061b983a2$exports,
499
+ "it-IT": $e933f298574dc435$exports,
500
+ "ja-JP": $ac91fc9fe02f71f6$exports,
501
+ "ko-KR": $52b96f86422025af$exports,
502
+ "lt-LT": $c0d724c3e51dafa6$exports,
503
+ "lv-LV": $c92899672a3fe72e$exports,
504
+ "nb-NO": $9f576b39d8e7a9d6$exports,
505
+ "nl-NL": $9d025808aeec81a7$exports,
506
+ "pl-PL": $fce709921e2c0fa6$exports,
507
+ "pt-BR": $2599cf0c4ab37f59$exports,
508
+ "pt-PT": $3c220ae7ef8a35fd$exports,
509
+ "ro-RO": $93562b5094072f54$exports,
510
+ "ru-RU": $cd9e2abd0d06c7b4$exports,
511
+ "sk-SK": $45375701f409adf1$exports,
512
+ "sl-SI": $27fab53a576de9dd$exports,
513
+ "sr-SP": $4438748d9952e7c7$exports,
514
+ "sv-SE": $0936d7347ef4da4c$exports,
515
+ "tr-TR": $29700c92185d38f8$exports,
516
+ "uk-UA": $662ccaf2be4c25b3$exports,
517
+ "zh-CN": $d80a27deda7cdb3c$exports,
518
+ "zh-TW": $2b2734393847c884$exports
519
+ };
520
+ function $parcel$interopDefault$1(a) {
521
+ return a && a.__esModule ? a.default : a;
522
+ }
523
+ function $86ea4cb521eb2e37$export$2317d149ed6f78c4(props) {
524
+ let { onDismiss, ...otherProps } = props;
525
+ let stringFormatter = $fca6afa0e843324b$export$f12b703ca79dfbb1($parcel$interopDefault$1($a2f21f5f14f60553$exports), "@react-aria/overlays");
526
+ let labels = $313b98861ee5dd6c$export$d6875122194c7b44(otherProps, stringFormatter.format("dismiss"));
527
+ let onClick = () => {
528
+ if (onDismiss) onDismiss();
529
+ };
530
+ return /* @__PURE__ */ React__default.createElement($5c3e21d68f1c4674$export$439d29a4e110a164, null, /* @__PURE__ */ React__default.createElement("button", {
531
+ ...labels,
532
+ tabIndex: -1,
533
+ onClick,
534
+ style: {
535
+ width: 1,
536
+ height: 1
537
+ }
538
+ }));
539
+ }
540
+ let $5e3802645cc19319$var$refCountMap = /* @__PURE__ */ new WeakMap();
541
+ let $5e3802645cc19319$var$observerStack = [];
542
+ function $5e3802645cc19319$export$1c3ebcada18427bf(targets, root = document.body) {
543
+ let visibleNodes = new Set(targets);
544
+ let hiddenNodes = /* @__PURE__ */ new Set();
545
+ let walk = (root2) => {
546
+ for (let element of root2.querySelectorAll("[data-live-announcer], [data-react-aria-top-layer]")) visibleNodes.add(element);
547
+ let acceptNode = (node) => {
548
+ if (visibleNodes.has(node) || node.parentElement && hiddenNodes.has(node.parentElement) && node.parentElement.getAttribute("role") !== "row") return NodeFilter.FILTER_REJECT;
549
+ for (let target of visibleNodes) {
550
+ if (node.contains(target)) return NodeFilter.FILTER_SKIP;
551
+ }
552
+ return NodeFilter.FILTER_ACCEPT;
553
+ };
554
+ let walker = document.createTreeWalker(root2, NodeFilter.SHOW_ELEMENT, {
555
+ acceptNode
556
+ });
557
+ let acceptRoot = acceptNode(root2);
558
+ if (acceptRoot === NodeFilter.FILTER_ACCEPT) hide(root2);
559
+ if (acceptRoot !== NodeFilter.FILTER_REJECT) {
560
+ let node = walker.nextNode();
561
+ while (node != null) {
562
+ hide(node);
563
+ node = walker.nextNode();
564
+ }
565
+ }
566
+ };
567
+ let hide = (node) => {
568
+ var _refCountMap_get;
569
+ let refCount = (_refCountMap_get = $5e3802645cc19319$var$refCountMap.get(node)) !== null && _refCountMap_get !== void 0 ? _refCountMap_get : 0;
570
+ if (node.getAttribute("aria-hidden") === "true" && refCount === 0) return;
571
+ if (refCount === 0) node.setAttribute("aria-hidden", "true");
572
+ hiddenNodes.add(node);
573
+ $5e3802645cc19319$var$refCountMap.set(node, refCount + 1);
574
+ };
575
+ if ($5e3802645cc19319$var$observerStack.length) $5e3802645cc19319$var$observerStack[$5e3802645cc19319$var$observerStack.length - 1].disconnect();
576
+ walk(root);
577
+ let observer = new MutationObserver((changes) => {
578
+ for (let change of changes) {
579
+ if (change.type !== "childList" || change.addedNodes.length === 0) continue;
580
+ if (![
581
+ ...visibleNodes,
582
+ ...hiddenNodes
583
+ ].some((node) => node.contains(change.target))) {
584
+ for (let node of change.removedNodes) if (node instanceof Element) {
585
+ visibleNodes.delete(node);
586
+ hiddenNodes.delete(node);
587
+ }
588
+ for (let node of change.addedNodes) {
589
+ if ((node instanceof HTMLElement || node instanceof SVGElement) && (node.dataset.liveAnnouncer === "true" || node.dataset.reactAriaTopLayer === "true")) visibleNodes.add(node);
590
+ else if (node instanceof Element) walk(node);
591
+ }
592
+ }
593
+ }
594
+ });
595
+ observer.observe(root, {
596
+ childList: true,
597
+ subtree: true
598
+ });
599
+ let observerWrapper = {
600
+ visibleNodes,
601
+ hiddenNodes,
602
+ observe() {
603
+ observer.observe(root, {
604
+ childList: true,
605
+ subtree: true
606
+ });
607
+ },
608
+ disconnect() {
609
+ observer.disconnect();
610
+ }
611
+ };
612
+ $5e3802645cc19319$var$observerStack.push(observerWrapper);
613
+ return () => {
614
+ observer.disconnect();
615
+ for (let node of hiddenNodes) {
616
+ let count = $5e3802645cc19319$var$refCountMap.get(node);
617
+ if (count == null) continue;
618
+ if (count === 1) {
619
+ node.removeAttribute("aria-hidden");
620
+ $5e3802645cc19319$var$refCountMap.delete(node);
621
+ } else $5e3802645cc19319$var$refCountMap.set(node, count - 1);
622
+ }
623
+ if (observerWrapper === $5e3802645cc19319$var$observerStack[$5e3802645cc19319$var$observerStack.length - 1]) {
624
+ $5e3802645cc19319$var$observerStack.pop();
625
+ if ($5e3802645cc19319$var$observerStack.length) $5e3802645cc19319$var$observerStack[$5e3802645cc19319$var$observerStack.length - 1].observe();
626
+ } else $5e3802645cc19319$var$observerStack.splice($5e3802645cc19319$var$observerStack.indexOf(observerWrapper), 1);
627
+ };
628
+ }
629
+ function $5e3802645cc19319$export$1020fa7f77e17884(element) {
630
+ let observer = $5e3802645cc19319$var$observerStack[$5e3802645cc19319$var$observerStack.length - 1];
631
+ if (observer && !observer.visibleNodes.has(element)) {
632
+ observer.visibleNodes.add(element);
633
+ return () => {
634
+ observer.visibleNodes.delete(element);
635
+ };
636
+ }
637
+ }
638
+ function $f2f8a6077418541e$export$542a6fd13ac93354(props, state) {
639
+ let { triggerRef, popoverRef, groupRef, isNonModal, isKeyboardDismissDisabled, shouldCloseOnInteractOutside, ...otherProps } = props;
640
+ let isSubmenu = otherProps["trigger"] === "SubmenuTrigger";
641
+ let { overlayProps, underlayProps } = $a11501f3d1d39e6c$export$ea8f71083e90600f({
642
+ isOpen: state.isOpen,
643
+ onClose: state.close,
644
+ shouldCloseOnBlur: true,
645
+ isDismissable: !isNonModal || isSubmenu,
646
+ isKeyboardDismissDisabled,
647
+ shouldCloseOnInteractOutside
648
+ }, groupRef !== null && groupRef !== void 0 ? groupRef : popoverRef);
649
+ let { overlayProps: positionProps, arrowProps, placement } = $2a41e45df1593e64$export$d39e1813b3bdd0e1({
650
+ ...otherProps,
651
+ targetRef: triggerRef,
652
+ overlayRef: popoverRef,
653
+ isOpen: state.isOpen,
654
+ onClose: isNonModal && !isSubmenu ? state.close : null
655
+ });
656
+ $49c51c25361d4cd2$export$ee0f7cc6afcd1c18({
657
+ isDisabled: isNonModal || !state.isOpen
658
+ });
659
+ $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c(() => {
660
+ if (state.isOpen && popoverRef.current) {
661
+ var _groupRef_current, _groupRef_current1;
662
+ if (isNonModal) return $5e3802645cc19319$export$1020fa7f77e17884((_groupRef_current = groupRef === null || groupRef === void 0 ? void 0 : groupRef.current) !== null && _groupRef_current !== void 0 ? _groupRef_current : popoverRef.current);
663
+ else return $5e3802645cc19319$export$1c3ebcada18427bf([
664
+ (_groupRef_current1 = groupRef === null || groupRef === void 0 ? void 0 : groupRef.current) !== null && _groupRef_current1 !== void 0 ? _groupRef_current1 : popoverRef.current
665
+ ]);
666
+ }
667
+ }, [
668
+ isNonModal,
669
+ state.isOpen,
670
+ popoverRef,
671
+ groupRef
672
+ ]);
673
+ return {
674
+ popoverProps: $3ef42575df84b30b$export$9d1611c77c2fe928(overlayProps, positionProps),
675
+ arrowProps,
676
+ underlayProps,
677
+ placement
678
+ };
679
+ }
680
+ const $337b884510726a0d$export$a2200b96afd16271 = /* @__PURE__ */ React__default.createContext(null);
681
+ function $337b884510726a0d$export$c6fdb837b070b4ff(props) {
682
+ let isSSR = $b5e257d569688ac6$export$535bd6ca7f90a273();
683
+ let { portalContainer = isSSR ? null : document.body, isExiting } = props;
684
+ let [contain, setContain] = useState(false);
685
+ let contextValue = useMemo(() => ({
686
+ contain,
687
+ setContain
688
+ }), [
689
+ contain,
690
+ setContain
691
+ ]);
692
+ let { getContainer } = $96b38030c423d352$export$9fc1347d4195ccb3();
693
+ if (!props.portalContainer && getContainer) portalContainer = getContainer();
694
+ if (!portalContainer) return null;
695
+ let contents = props.children;
696
+ if (!props.disableFocusManagement) contents = /* @__PURE__ */ React__default.createElement($9bf71ea28793e738$export$20e40289641fbbb6, {
697
+ restoreFocus: true,
698
+ contain: (props.shouldContainFocus || contain) && !isExiting
699
+ }, contents);
700
+ contents = /* @__PURE__ */ React__default.createElement($337b884510726a0d$export$a2200b96afd16271.Provider, {
701
+ value: contextValue
702
+ }, /* @__PURE__ */ React__default.createElement($f1ab8c75478c6f73$export$cf75428e0b9ed1ea, null, contents));
703
+ return /* @__PURE__ */ $dbSRa$reactdom.createPortal(contents, portalContainer);
704
+ }
705
+ function $337b884510726a0d$export$14c98a7594375490() {
706
+ let ctx = useContext($337b884510726a0d$export$a2200b96afd16271);
707
+ let setContain = ctx === null || ctx === void 0 ? void 0 : ctx.setContain;
708
+ $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c(() => {
709
+ setContain === null || setContain === void 0 ? void 0 : setContain(true);
710
+ }, [
711
+ setContain
712
+ ]);
713
+ }
714
+ var $c0398ad35c3639b7$exports = {};
715
+ $c0398ad35c3639b7$exports = {
716
+ "longPressMessage": `اضغط مطولاً أو اضغط على Alt + السهم لأسفل لفتح القائمة`
717
+ };
718
+ var $7af657c4165927c3$exports = {};
719
+ $7af657c4165927c3$exports = {
720
+ "longPressMessage": `Натиснете продължително или натиснете Alt+ стрелка надолу, за да отворите менюто`
721
+ };
722
+ var $d95d4da6d531ab81$exports = {};
723
+ $d95d4da6d531ab81$exports = {
724
+ "longPressMessage": `Dlouhým stiskem nebo stisknutím kláves Alt + šipka dolů otevřete nabídku`
725
+ };
726
+ var $24ebda9c775dca17$exports = {};
727
+ $24ebda9c775dca17$exports = {
728
+ "longPressMessage": `Langt tryk eller tryk på Alt + pil ned for at åbne menuen`
729
+ };
730
+ var $743e0dfca6cab1e9$exports = {};
731
+ $743e0dfca6cab1e9$exports = {
732
+ "longPressMessage": `Drücken Sie lange oder drücken Sie Alt + Nach-unten, um das Menü zu öffnen`
733
+ };
734
+ var $a2f41026e05f1c84$exports = {};
735
+ $a2f41026e05f1c84$exports = {
736
+ "longPressMessage": `Πιέστε παρατεταμένα ή πατήστε Alt + κάτω βέλος για να ανοίξετε το μενού`
737
+ };
738
+ var $43b800e97c901737$exports = {};
739
+ $43b800e97c901737$exports = {
740
+ "longPressMessage": `Long press or press Alt + ArrowDown to open menu`
741
+ };
742
+ var $442f5f6ac211e29f$exports = {};
743
+ $442f5f6ac211e29f$exports = {
744
+ "longPressMessage": `Mantenga pulsado o pulse Alt + flecha abajo para abrir el menú`
745
+ };
746
+ var $dff280acfeb2d8ac$exports = {};
747
+ $dff280acfeb2d8ac$exports = {
748
+ "longPressMessage": `Menüü avamiseks vajutage pikalt või vajutage klahve Alt + allanool`
749
+ };
750
+ var $51608325613944d7$exports = {};
751
+ $51608325613944d7$exports = {
752
+ "longPressMessage": `Avaa valikko painamalla pohjassa tai näppäinyhdistelmällä Alt + Alanuoli`
753
+ };
754
+ var $c4a1b1eabeaa87be$exports = {};
755
+ $c4a1b1eabeaa87be$exports = {
756
+ "longPressMessage": `Appuyez de manière prolongée ou appuyez sur Alt + Flèche vers le bas pour ouvrir le menu.`
757
+ };
758
+ var $8c74815cdee18d1b$exports = {};
759
+ $8c74815cdee18d1b$exports = {
760
+ "longPressMessage": `לחץ לחיצה ארוכה או הקש Alt + ArrowDown כדי לפתוח את התפריט`
761
+ };
762
+ var $fd0e9ef6a7fe0ec9$exports = {};
763
+ $fd0e9ef6a7fe0ec9$exports = {
764
+ "longPressMessage": `Dugo pritisnite ili pritisnite Alt + strelicu prema dolje za otvaranje izbornika`
765
+ };
766
+ var $a89a74a39eba465a$exports = {};
767
+ $a89a74a39eba465a$exports = {
768
+ "longPressMessage": `Nyomja meg hosszan, vagy nyomja meg az Alt + lefele nyíl gombot a menü megnyitásához`
769
+ };
770
+ var $edc7c66594a0ae8a$exports = {};
771
+ $edc7c66594a0ae8a$exports = {
772
+ "longPressMessage": `Premere a lungo o premere Alt + Freccia giù per aprire il menu`
773
+ };
774
+ var $f1ab51510712db52$exports = {};
775
+ $f1ab51510712db52$exports = {
776
+ "longPressMessage": `長押しまたは Alt+下矢印キーでメニューを開く`
777
+ };
778
+ var $f9b672d9b82fa3d6$exports = {};
779
+ $f9b672d9b82fa3d6$exports = {
780
+ "longPressMessage": `길게 누르거나 Alt + 아래쪽 화살표를 눌러 메뉴 열기`
781
+ };
782
+ var $a385f3910feda499$exports = {};
783
+ $a385f3910feda499$exports = {
784
+ "longPressMessage": `Norėdami atidaryti meniu, nuspaudę palaikykite arba paspauskite „Alt + ArrowDown“.`
785
+ };
786
+ var $4f1bde932c441789$exports = {};
787
+ $4f1bde932c441789$exports = {
788
+ "longPressMessage": `Lai atvērtu izvēlni, turiet nospiestu vai nospiediet taustiņu kombināciju Alt + lejupvērstā bultiņa`
789
+ };
790
+ var $914a51a8a594d5be$exports = {};
791
+ $914a51a8a594d5be$exports = {
792
+ "longPressMessage": `Langt trykk eller trykk Alt + PilNed for å åpne menyen`
793
+ };
794
+ var $89aaf803103bb500$exports = {};
795
+ $89aaf803103bb500$exports = {
796
+ "longPressMessage": `Druk lang op Alt + pijl-omlaag of druk op Alt om het menu te openen`
797
+ };
798
+ var $c685891476dbaaca$exports = {};
799
+ $c685891476dbaaca$exports = {
800
+ "longPressMessage": `Naciśnij i przytrzymaj lub naciśnij klawisze Alt + Strzałka w dół, aby otworzyć menu`
801
+ };
802
+ var $885879b9b10c2959$exports = {};
803
+ $885879b9b10c2959$exports = {
804
+ "longPressMessage": `Pressione e segure ou pressione Alt + Seta para baixo para abrir o menu`
805
+ };
806
+ var $6b39616688a51692$exports = {};
807
+ $6b39616688a51692$exports = {
808
+ "longPressMessage": `Prima continuamente ou prima Alt + Seta Para Baixo para abrir o menu`
809
+ };
810
+ var $f26362aed63f47e2$exports = {};
811
+ $f26362aed63f47e2$exports = {
812
+ "longPressMessage": `Apăsați lung sau apăsați pe Alt + săgeată în jos pentru a deschide meniul`
813
+ };
814
+ var $06cbade644558bf0$exports = {};
815
+ $06cbade644558bf0$exports = {
816
+ "longPressMessage": `Нажмите и удерживайте или нажмите Alt + Стрелка вниз, чтобы открыть меню`
817
+ };
818
+ var $0a391ff68f9d59b1$exports = {};
819
+ $0a391ff68f9d59b1$exports = {
820
+ "longPressMessage": `Ponuku otvoríte dlhým stlačením alebo stlačením klávesu Alt + klávesu so šípkou nadol`
821
+ };
822
+ var $8193cf0e649c7928$exports = {};
823
+ $8193cf0e649c7928$exports = {
824
+ "longPressMessage": `Za odprtje menija pritisnite in držite gumb ali pritisnite Alt+puščica navzdol`
825
+ };
826
+ var $f398debcce5a5c55$exports = {};
827
+ $f398debcce5a5c55$exports = {
828
+ "longPressMessage": `Dugo pritisnite ili pritisnite Alt + strelicu prema dole da otvorite meni`
829
+ };
830
+ var $9e9fef000aa4c013$exports = {};
831
+ $9e9fef000aa4c013$exports = {
832
+ "longPressMessage": `Håll nedtryckt eller tryck på Alt + pil nedåt för att öppna menyn`
833
+ };
834
+ var $c016c8183bbe3d68$exports = {};
835
+ $c016c8183bbe3d68$exports = {
836
+ "longPressMessage": `Menüyü açmak için uzun basın veya Alt + Aşağı Ok tuşuna basın`
837
+ };
838
+ var $ca4f6c8462244e62$exports = {};
839
+ $ca4f6c8462244e62$exports = {
840
+ "longPressMessage": `Довго або звичайно натисніть комбінацію клавіш Alt і стрілка вниз, щоб відкрити меню`
841
+ };
842
+ var $2d9960c02ccac927$exports = {};
843
+ $2d9960c02ccac927$exports = {
844
+ "longPressMessage": `长按或按 Alt + 向下方向键以打开菜单`
845
+ };
846
+ var $f1b682a4c8c5631c$exports = {};
847
+ $f1b682a4c8c5631c$exports = {
848
+ "longPressMessage": `長按或按 Alt+向下鍵以開啟功能表`
849
+ };
850
+ var $2cbb7ca666678a14$exports = {};
851
+ $2cbb7ca666678a14$exports = {
852
+ "ar-AE": $c0398ad35c3639b7$exports,
853
+ "bg-BG": $7af657c4165927c3$exports,
854
+ "cs-CZ": $d95d4da6d531ab81$exports,
855
+ "da-DK": $24ebda9c775dca17$exports,
856
+ "de-DE": $743e0dfca6cab1e9$exports,
857
+ "el-GR": $a2f41026e05f1c84$exports,
858
+ "en-US": $43b800e97c901737$exports,
859
+ "es-ES": $442f5f6ac211e29f$exports,
860
+ "et-EE": $dff280acfeb2d8ac$exports,
861
+ "fi-FI": $51608325613944d7$exports,
862
+ "fr-FR": $c4a1b1eabeaa87be$exports,
863
+ "he-IL": $8c74815cdee18d1b$exports,
864
+ "hr-HR": $fd0e9ef6a7fe0ec9$exports,
865
+ "hu-HU": $a89a74a39eba465a$exports,
866
+ "it-IT": $edc7c66594a0ae8a$exports,
867
+ "ja-JP": $f1ab51510712db52$exports,
868
+ "ko-KR": $f9b672d9b82fa3d6$exports,
869
+ "lt-LT": $a385f3910feda499$exports,
870
+ "lv-LV": $4f1bde932c441789$exports,
871
+ "nb-NO": $914a51a8a594d5be$exports,
872
+ "nl-NL": $89aaf803103bb500$exports,
873
+ "pl-PL": $c685891476dbaaca$exports,
874
+ "pt-BR": $885879b9b10c2959$exports,
875
+ "pt-PT": $6b39616688a51692$exports,
876
+ "ro-RO": $f26362aed63f47e2$exports,
877
+ "ru-RU": $06cbade644558bf0$exports,
878
+ "sk-SK": $0a391ff68f9d59b1$exports,
879
+ "sl-SI": $8193cf0e649c7928$exports,
880
+ "sr-SP": $f398debcce5a5c55$exports,
881
+ "sv-SE": $9e9fef000aa4c013$exports,
882
+ "tr-TR": $c016c8183bbe3d68$exports,
883
+ "uk-UA": $ca4f6c8462244e62$exports,
884
+ "zh-CN": $2d9960c02ccac927$exports,
885
+ "zh-TW": $f1b682a4c8c5631c$exports
886
+ };
887
+ function $parcel$interopDefault(a) {
888
+ return a && a.__esModule ? a.default : a;
889
+ }
890
+ function $168583247155ddda$export$dc9c12ed27dd1b49(props, state, ref) {
891
+ let { type = "menu", isDisabled, trigger = "press" } = props;
892
+ let menuTriggerId = $bdb11010cef70236$export$f680877a34711e37();
893
+ let { triggerProps, overlayProps } = $628037886ba31236$export$f9d5c8beee7d008d({
894
+ type
895
+ }, state, ref);
896
+ let onKeyDown = (e) => {
897
+ if (isDisabled) return;
898
+ if (trigger === "longPress" && !e.altKey) return;
899
+ if (ref && ref.current) switch (e.key) {
900
+ case "Enter":
901
+ case " ":
902
+ if (trigger === "longPress") return;
903
+ // fallthrough
904
+ case "ArrowDown":
905
+ if (!("continuePropagation" in e)) e.stopPropagation();
906
+ e.preventDefault();
907
+ state.toggle("first");
908
+ break;
909
+ case "ArrowUp":
910
+ if (!("continuePropagation" in e)) e.stopPropagation();
911
+ e.preventDefault();
912
+ state.toggle("last");
913
+ break;
914
+ default:
915
+ if ("continuePropagation" in e) e.continuePropagation();
916
+ }
917
+ };
918
+ let stringFormatter = $fca6afa0e843324b$export$f12b703ca79dfbb1($parcel$interopDefault($2cbb7ca666678a14$exports), "@react-aria/menu");
919
+ let { longPressProps } = $8a26561d2877236e$export$c24ed0104d07eab9({
920
+ isDisabled: isDisabled || trigger !== "longPress",
921
+ accessibilityDescription: stringFormatter.format("longPressMessage"),
922
+ onLongPressStart() {
923
+ state.close();
924
+ },
925
+ onLongPress() {
926
+ state.open("first");
927
+ }
928
+ });
929
+ let pressProps = {
930
+ preventFocusOnPress: true,
931
+ onPressStart(e) {
932
+ if (e.pointerType !== "touch" && e.pointerType !== "keyboard" && !isDisabled) {
933
+ $7215afc6de606d6b$export$de79e2c695e052f3(e.target);
934
+ state.open(e.pointerType === "virtual" ? "first" : null);
935
+ }
936
+ },
937
+ onPress(e) {
938
+ if (e.pointerType === "touch" && !isDisabled) {
939
+ $7215afc6de606d6b$export$de79e2c695e052f3(e.target);
940
+ state.toggle();
941
+ }
942
+ }
943
+ };
944
+ delete triggerProps.onPress;
945
+ return {
946
+ // @ts-ignore - TODO we pass out both DOMAttributes AND AriaButtonProps, but useButton will discard the longPress event handlers, it's only through PressResponder magic that this works for RSP and RAC. it does not work in aria examples
947
+ menuTriggerProps: {
948
+ ...triggerProps,
949
+ ...trigger === "press" ? pressProps : longPressProps,
950
+ id: menuTriggerId,
951
+ onKeyDown
952
+ },
953
+ menuProps: {
954
+ ...overlayProps,
955
+ "aria-labelledby": menuTriggerId,
956
+ autoFocus: state.focusStrategy || true,
957
+ onClose: state.close
958
+ }
959
+ };
960
+ }
961
+ const $fc79756100351201$export$6f49b4016bfc8d56 = /* @__PURE__ */ new WeakMap();
962
+ function $d5336fe17ce95402$export$38eaa17faae8f579(props, state, ref) {
963
+ let { shouldFocusWrap = true, onKeyDown, onKeyUp, ...otherProps } = props;
964
+ if (!props["aria-label"] && !props["aria-labelledby"] && process.env.NODE_ENV !== "production") console.warn("An aria-label or aria-labelledby prop is required for accessibility.");
965
+ let domProps = $65484d02dcb7eb3e$export$457c3d6518dd4c6f(props, {
966
+ labelable: true
967
+ });
968
+ let { listProps } = $982254629710d113$export$b95089534ab7c1fd({
969
+ ...otherProps,
970
+ ref,
971
+ selectionManager: state.selectionManager,
972
+ collection: state.collection,
973
+ disabledKeys: state.disabledKeys,
974
+ shouldFocusWrap,
975
+ linkBehavior: "override"
976
+ });
977
+ $fc79756100351201$export$6f49b4016bfc8d56.set(state, {
978
+ onClose: props.onClose,
979
+ onAction: props.onAction,
980
+ shouldUseVirtualFocus: props.shouldUseVirtualFocus
981
+ });
982
+ return {
983
+ menuProps: $3ef42575df84b30b$export$9d1611c77c2fe928(domProps, {
984
+ onKeyDown,
985
+ onKeyUp
986
+ }, {
987
+ role: "menu",
988
+ ...listProps,
989
+ onKeyDown: (e) => {
990
+ var _listProps_onKeyDown;
991
+ if (e.key !== "Escape" || props.shouldUseVirtualFocus) (_listProps_onKeyDown = listProps.onKeyDown) === null || _listProps_onKeyDown === void 0 ? void 0 : _listProps_onKeyDown.call(listProps, e);
992
+ }
993
+ })
994
+ };
995
+ }
996
+ function $a2e5df62f93c7633$export$9d32628fc2aea7da(props, state, ref) {
997
+ let { id, key, closeOnSelect, isVirtualized, "aria-haspopup": hasPopup, onPressStart: pressStartProp, onPressUp: pressUpProp, onPress: pressProp, onPressChange, onPressEnd, onHoverStart: hoverStartProp, onHoverChange, onHoverEnd, onKeyDown, onKeyUp, onFocus, onFocusChange, onBlur, selectionManager = state.selectionManager } = props;
998
+ let isTrigger = !!hasPopup;
999
+ let isTriggerExpanded = isTrigger && props["aria-expanded"] === "true";
1000
+ var _props_isDisabled;
1001
+ let isDisabled = (_props_isDisabled = props.isDisabled) !== null && _props_isDisabled !== void 0 ? _props_isDisabled : selectionManager.isDisabled(key);
1002
+ var _props_isSelected;
1003
+ let isSelected = (_props_isSelected = props.isSelected) !== null && _props_isSelected !== void 0 ? _props_isSelected : selectionManager.isSelected(key);
1004
+ let data = $fc79756100351201$export$6f49b4016bfc8d56.get(state);
1005
+ let item = state.collection.getItem(key);
1006
+ let onClose = props.onClose || data.onClose;
1007
+ let router = $ea8dcbcb9ea1b556$export$9a302a45f65d0572();
1008
+ let performAction = (e) => {
1009
+ var _item_props;
1010
+ if (isTrigger) return;
1011
+ if (item === null || item === void 0 ? void 0 : (_item_props = item.props) === null || _item_props === void 0 ? void 0 : _item_props.onAction) item.props.onAction();
1012
+ else if (props.onAction) props.onAction(key);
1013
+ if (data.onAction) {
1014
+ let onAction = data.onAction;
1015
+ onAction(key);
1016
+ }
1017
+ if (e.target instanceof HTMLAnchorElement && item) router.open(e.target, e, item.props.href, item.props.routerOptions);
1018
+ };
1019
+ let role = "menuitem";
1020
+ if (!isTrigger) {
1021
+ if (selectionManager.selectionMode === "single") role = "menuitemradio";
1022
+ else if (selectionManager.selectionMode === "multiple") role = "menuitemcheckbox";
1023
+ }
1024
+ let labelId = $bdb11010cef70236$export$b4cc09c592e8fdb8();
1025
+ let descriptionId = $bdb11010cef70236$export$b4cc09c592e8fdb8();
1026
+ let keyboardId = $bdb11010cef70236$export$b4cc09c592e8fdb8();
1027
+ let ariaProps = {
1028
+ id,
1029
+ "aria-disabled": isDisabled || void 0,
1030
+ role,
1031
+ "aria-label": props["aria-label"],
1032
+ "aria-labelledby": labelId,
1033
+ "aria-describedby": [
1034
+ descriptionId,
1035
+ keyboardId
1036
+ ].filter(Boolean).join(" ") || void 0,
1037
+ "aria-controls": props["aria-controls"],
1038
+ "aria-haspopup": hasPopup,
1039
+ "aria-expanded": props["aria-expanded"]
1040
+ };
1041
+ if (selectionManager.selectionMode !== "none" && !isTrigger) ariaProps["aria-checked"] = isSelected;
1042
+ if (isVirtualized) {
1043
+ ariaProps["aria-posinset"] = item === null || item === void 0 ? void 0 : item.index;
1044
+ ariaProps["aria-setsize"] = $453cc9f0df89c0a5$export$77d5aafae4e095b2(state.collection);
1045
+ }
1046
+ let onPressStart = (e) => {
1047
+ if (e.pointerType === "keyboard") performAction(e);
1048
+ pressStartProp === null || pressStartProp === void 0 ? void 0 : pressStartProp(e);
1049
+ };
1050
+ let maybeClose = () => {
1051
+ if (!isTrigger && onClose && (closeOnSelect !== null && closeOnSelect !== void 0 ? closeOnSelect : selectionManager.selectionMode !== "multiple" || selectionManager.isLink(key))) onClose();
1052
+ };
1053
+ let onPressUp = (e) => {
1054
+ if (e.pointerType === "mouse") {
1055
+ performAction(e);
1056
+ maybeClose();
1057
+ }
1058
+ pressUpProp === null || pressUpProp === void 0 ? void 0 : pressUpProp(e);
1059
+ };
1060
+ let onPress = (e) => {
1061
+ if (e.pointerType !== "keyboard" && e.pointerType !== "mouse") {
1062
+ performAction(e);
1063
+ maybeClose();
1064
+ }
1065
+ pressProp === null || pressProp === void 0 ? void 0 : pressProp(e);
1066
+ };
1067
+ let { itemProps, isFocused } = $880e95eb8b93ba9a$export$ecf600387e221c37({
1068
+ id,
1069
+ selectionManager,
1070
+ key,
1071
+ ref,
1072
+ shouldSelectOnPressUp: true,
1073
+ allowsDifferentPressOrigin: true,
1074
+ // Disable all handling of links in useSelectable item
1075
+ // because we handle it ourselves. The behavior of menus
1076
+ // is slightly different from other collections because
1077
+ // actions are performed on key down rather than key up.
1078
+ linkBehavior: "none",
1079
+ shouldUseVirtualFocus: data.shouldUseVirtualFocus
1080
+ });
1081
+ let { pressProps, isPressed } = $f6c31cce2adf654f$export$45712eceda6fad21({
1082
+ onPressStart,
1083
+ onPress,
1084
+ onPressUp,
1085
+ onPressChange,
1086
+ onPressEnd,
1087
+ isDisabled
1088
+ });
1089
+ let { hoverProps } = $6179b936705e76d3$export$ae780daf29e6d456({
1090
+ isDisabled,
1091
+ onHoverStart(e) {
1092
+ if (!$507fabe10e71c6fb$export$b9b3dfddab17db27() && !(isTriggerExpanded && hasPopup)) {
1093
+ selectionManager.setFocused(true);
1094
+ selectionManager.setFocusedKey(key);
1095
+ }
1096
+ hoverStartProp === null || hoverStartProp === void 0 ? void 0 : hoverStartProp(e);
1097
+ },
1098
+ onHoverChange,
1099
+ onHoverEnd
1100
+ });
1101
+ let { keyboardProps } = $46d819fcbaf35654$export$8f71654801c2f7cd({
1102
+ onKeyDown: (e) => {
1103
+ if (e.repeat) {
1104
+ e.continuePropagation();
1105
+ return;
1106
+ }
1107
+ switch (e.key) {
1108
+ case " ":
1109
+ if (!isDisabled && selectionManager.selectionMode === "none" && !isTrigger && closeOnSelect !== false && onClose) onClose();
1110
+ break;
1111
+ case "Enter":
1112
+ if (!isDisabled && closeOnSelect !== false && !isTrigger && onClose) onClose();
1113
+ break;
1114
+ default:
1115
+ if (!isTrigger) e.continuePropagation();
1116
+ onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);
1117
+ break;
1118
+ }
1119
+ },
1120
+ onKeyUp
1121
+ });
1122
+ let { focusProps } = $a1ea59d68270f0dd$export$f8168d8dd8fd66e6({
1123
+ onBlur,
1124
+ onFocus,
1125
+ onFocusChange
1126
+ });
1127
+ let domProps = $65484d02dcb7eb3e$export$457c3d6518dd4c6f(item === null || item === void 0 ? void 0 : item.props);
1128
+ delete domProps.id;
1129
+ let linkProps = $ea8dcbcb9ea1b556$export$7e924b3091a3bd18(item === null || item === void 0 ? void 0 : item.props);
1130
+ return {
1131
+ menuItemProps: {
1132
+ ...ariaProps,
1133
+ ...$3ef42575df84b30b$export$9d1611c77c2fe928(
1134
+ domProps,
1135
+ linkProps,
1136
+ isTrigger ? {
1137
+ onFocus: itemProps.onFocus,
1138
+ "data-collection": itemProps["data-collection"],
1139
+ "data-key": itemProps["data-key"]
1140
+ } : itemProps,
1141
+ pressProps,
1142
+ hoverProps,
1143
+ keyboardProps,
1144
+ focusProps,
1145
+ // Prevent DOM focus from moving on mouse down when using virtual focus or this is a submenu/subdialog trigger.
1146
+ data.shouldUseVirtualFocus || isTrigger ? {
1147
+ onMouseDown: (e) => e.preventDefault()
1148
+ } : void 0
1149
+ ),
1150
+ // If a submenu is expanded, set the tabIndex to -1 so that shift tabbing goes out of the menu instead of the parent menu item.
1151
+ tabIndex: itemProps.tabIndex != null && isTriggerExpanded && !data.shouldUseVirtualFocus ? -1 : itemProps.tabIndex
1152
+ },
1153
+ labelProps: {
1154
+ id: labelId
1155
+ },
1156
+ descriptionProps: {
1157
+ id: descriptionId
1158
+ },
1159
+ keyboardShortcutProps: {
1160
+ id: keyboardId
1161
+ },
1162
+ isFocused,
1163
+ isFocusVisible: isFocused && selectionManager.isFocused && $507fabe10e71c6fb$export$b9b3dfddab17db27() && !isTriggerExpanded,
1164
+ isSelected,
1165
+ isPressed,
1166
+ isDisabled
1167
+ };
1168
+ }
1169
+ function $3e5eb2498db5b506$export$73f7a44322579622(props) {
1170
+ let { heading, "aria-label": ariaLabel } = props;
1171
+ let headingId = $bdb11010cef70236$export$f680877a34711e37();
1172
+ return {
1173
+ itemProps: {
1174
+ role: "presentation"
1175
+ },
1176
+ headingProps: heading ? {
1177
+ // Techincally, menus cannot contain headings according to ARIA.
1178
+ // We hide the heading from assistive technology, using role="presentation",
1179
+ // and only use it as a label for the nested group.
1180
+ id: headingId,
1181
+ role: "presentation"
1182
+ } : {},
1183
+ groupProps: {
1184
+ role: "group",
1185
+ "aria-label": ariaLabel,
1186
+ "aria-labelledby": heading ? headingId : void 0
1187
+ }
1188
+ };
1189
+ }
1190
+ const $d275435c250248f8$var$ALLOWED_INVALID_MOVEMENTS = 2;
1191
+ const $d275435c250248f8$var$THROTTLE_TIME = 50;
1192
+ const $d275435c250248f8$var$TIMEOUT_TIME = 1e3;
1193
+ const $d275435c250248f8$var$ANGLE_PADDING = Math.PI / 12;
1194
+ function $d275435c250248f8$export$85ec83e04c95f50a(options) {
1195
+ let { menuRef, submenuRef, isOpen, isDisabled } = options;
1196
+ let prevPointerPos = useRef(void 0);
1197
+ let submenuRect = useRef(void 0);
1198
+ let lastProcessedTime = useRef(0);
1199
+ let timeout = useRef(void 0);
1200
+ let autoCloseTimeout = useRef(void 0);
1201
+ let submenuSide = useRef(void 0);
1202
+ let movementsTowardsSubmenuCount = useRef(2);
1203
+ let [preventPointerEvents, setPreventPointerEvents] = useState(false);
1204
+ let updateSubmenuRect = () => {
1205
+ if (submenuRef.current) {
1206
+ submenuRect.current = submenuRef.current.getBoundingClientRect();
1207
+ submenuSide.current = void 0;
1208
+ }
1209
+ };
1210
+ $9daab02d461809db$export$683480f191c0e3ea({
1211
+ ref: submenuRef,
1212
+ onResize: updateSubmenuRect
1213
+ });
1214
+ let reset = () => {
1215
+ setPreventPointerEvents(false);
1216
+ movementsTowardsSubmenuCount.current = $d275435c250248f8$var$ALLOWED_INVALID_MOVEMENTS;
1217
+ prevPointerPos.current = void 0;
1218
+ };
1219
+ let modality = $507fabe10e71c6fb$export$98e20ec92f614cfe();
1220
+ let onPointerDown = $8ae05eaa5c114e9c$export$7f54fc3180508a52((e) => {
1221
+ if (preventPointerEvents) e.preventDefault();
1222
+ });
1223
+ useEffect(() => {
1224
+ if (preventPointerEvents && menuRef.current) menuRef.current.style.pointerEvents = "none";
1225
+ else menuRef.current.style.pointerEvents = "";
1226
+ }, [
1227
+ menuRef,
1228
+ preventPointerEvents
1229
+ ]);
1230
+ useEffect(() => {
1231
+ let submenu = submenuRef.current;
1232
+ let menu = menuRef.current;
1233
+ if (isDisabled || !submenu || !isOpen || modality !== "pointer" || !menu) {
1234
+ reset();
1235
+ return;
1236
+ }
1237
+ submenuRect.current = submenu.getBoundingClientRect();
1238
+ let onPointerMove = (e) => {
1239
+ if (e.pointerType === "touch" || e.pointerType === "pen") return;
1240
+ let currentTime = Date.now();
1241
+ if (currentTime - lastProcessedTime.current < $d275435c250248f8$var$THROTTLE_TIME) return;
1242
+ clearTimeout(timeout.current);
1243
+ clearTimeout(autoCloseTimeout.current);
1244
+ let { clientX: mouseX, clientY: mouseY } = e;
1245
+ if (!prevPointerPos.current) {
1246
+ prevPointerPos.current = {
1247
+ x: mouseX,
1248
+ y: mouseY
1249
+ };
1250
+ return;
1251
+ }
1252
+ if (!submenuRect.current) return;
1253
+ if (!submenuSide.current) submenuSide.current = mouseX > submenuRect.current.right ? "left" : "right";
1254
+ if (mouseX < menu.getBoundingClientRect().left || mouseX > menu.getBoundingClientRect().right || mouseY < menu.getBoundingClientRect().top || mouseY > menu.getBoundingClientRect().bottom) {
1255
+ reset();
1256
+ return;
1257
+ }
1258
+ let prevMouseX = prevPointerPos.current.x;
1259
+ let prevMouseY = prevPointerPos.current.y;
1260
+ let toSubmenuX = submenuSide.current === "right" ? submenuRect.current.left - prevMouseX : prevMouseX - submenuRect.current.right;
1261
+ let angleTop = Math.atan2(prevMouseY - submenuRect.current.top, toSubmenuX) + $d275435c250248f8$var$ANGLE_PADDING;
1262
+ let angleBottom = Math.atan2(prevMouseY - submenuRect.current.bottom, toSubmenuX) - $d275435c250248f8$var$ANGLE_PADDING;
1263
+ let anglePointer = Math.atan2(prevMouseY - mouseY, submenuSide.current === "left" ? -(mouseX - prevMouseX) : mouseX - prevMouseX);
1264
+ let isMovingTowardsSubmenu = anglePointer < angleTop && anglePointer > angleBottom;
1265
+ movementsTowardsSubmenuCount.current = isMovingTowardsSubmenu ? Math.min(movementsTowardsSubmenuCount.current + 1, $d275435c250248f8$var$ALLOWED_INVALID_MOVEMENTS) : Math.max(movementsTowardsSubmenuCount.current - 1, 0);
1266
+ if (movementsTowardsSubmenuCount.current >= $d275435c250248f8$var$ALLOWED_INVALID_MOVEMENTS) setPreventPointerEvents(true);
1267
+ else setPreventPointerEvents(false);
1268
+ lastProcessedTime.current = currentTime;
1269
+ prevPointerPos.current = {
1270
+ x: mouseX,
1271
+ y: mouseY
1272
+ };
1273
+ if (isMovingTowardsSubmenu) timeout.current = setTimeout(() => {
1274
+ reset();
1275
+ autoCloseTimeout.current = setTimeout(() => {
1276
+ let target = document.elementFromPoint(mouseX, mouseY);
1277
+ if (target && menu.contains(target)) target.dispatchEvent(new PointerEvent("pointerover", {
1278
+ bubbles: true,
1279
+ cancelable: true
1280
+ }));
1281
+ }, 100);
1282
+ }, $d275435c250248f8$var$TIMEOUT_TIME);
1283
+ };
1284
+ window.addEventListener("pointermove", onPointerMove);
1285
+ if (process.env.NODE_ENV !== "test") window.addEventListener("pointerdown", onPointerDown, true);
1286
+ return () => {
1287
+ window.removeEventListener("pointermove", onPointerMove);
1288
+ if (process.env.NODE_ENV !== "test") window.removeEventListener("pointerdown", onPointerDown, true);
1289
+ clearTimeout(timeout.current);
1290
+ clearTimeout(autoCloseTimeout.current);
1291
+ movementsTowardsSubmenuCount.current = $d275435c250248f8$var$ALLOWED_INVALID_MOVEMENTS;
1292
+ };
1293
+ }, [
1294
+ isDisabled,
1295
+ isOpen,
1296
+ menuRef,
1297
+ modality,
1298
+ setPreventPointerEvents,
1299
+ onPointerDown,
1300
+ submenuRef
1301
+ ]);
1302
+ }
1303
+ function $0065b146e7192841$export$7138b0d059a6e743(props, state, ref) {
1304
+ let { parentMenuRef, submenuRef, type = "menu", isDisabled, delay = 200, shouldUseVirtualFocus } = props;
1305
+ let submenuTriggerId = $bdb11010cef70236$export$f680877a34711e37();
1306
+ let overlayId = $bdb11010cef70236$export$f680877a34711e37();
1307
+ let { direction } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7();
1308
+ let openTimeout = useRef(void 0);
1309
+ let cancelOpenTimeout = useCallback(() => {
1310
+ if (openTimeout.current) {
1311
+ clearTimeout(openTimeout.current);
1312
+ openTimeout.current = void 0;
1313
+ }
1314
+ }, [
1315
+ openTimeout
1316
+ ]);
1317
+ let onSubmenuOpen = $8ae05eaa5c114e9c$export$7f54fc3180508a52((focusStrategy) => {
1318
+ cancelOpenTimeout();
1319
+ state.open(focusStrategy);
1320
+ });
1321
+ let onSubmenuClose = $8ae05eaa5c114e9c$export$7f54fc3180508a52(() => {
1322
+ cancelOpenTimeout();
1323
+ state.close();
1324
+ });
1325
+ $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c(() => {
1326
+ return () => {
1327
+ cancelOpenTimeout();
1328
+ };
1329
+ }, [
1330
+ cancelOpenTimeout
1331
+ ]);
1332
+ let submenuKeyDown = (e) => {
1333
+ if (!e.currentTarget.contains(document.activeElement)) return;
1334
+ switch (e.key) {
1335
+ case "ArrowLeft":
1336
+ if (direction === "ltr" && e.currentTarget.contains(e.target)) {
1337
+ e.preventDefault();
1338
+ e.stopPropagation();
1339
+ onSubmenuClose();
1340
+ if (!shouldUseVirtualFocus && ref.current) $7215afc6de606d6b$export$de79e2c695e052f3(ref.current);
1341
+ }
1342
+ break;
1343
+ case "ArrowRight":
1344
+ if (direction === "rtl" && e.currentTarget.contains(e.target)) {
1345
+ e.preventDefault();
1346
+ e.stopPropagation();
1347
+ onSubmenuClose();
1348
+ if (!shouldUseVirtualFocus && ref.current) $7215afc6de606d6b$export$de79e2c695e052f3(ref.current);
1349
+ }
1350
+ break;
1351
+ case "Escape":
1352
+ var _submenuRef_current;
1353
+ if ((_submenuRef_current = submenuRef.current) === null || _submenuRef_current === void 0 ? void 0 : _submenuRef_current.contains(e.target)) {
1354
+ e.stopPropagation();
1355
+ onSubmenuClose();
1356
+ if (!shouldUseVirtualFocus && ref.current) $7215afc6de606d6b$export$de79e2c695e052f3(ref.current);
1357
+ }
1358
+ break;
1359
+ }
1360
+ };
1361
+ var _state_focusStrategy;
1362
+ let submenuProps = {
1363
+ id: overlayId,
1364
+ "aria-labelledby": submenuTriggerId,
1365
+ submenuLevel: state.submenuLevel,
1366
+ ...type === "menu" && {
1367
+ onClose: state.closeAll,
1368
+ autoFocus: (_state_focusStrategy = state.focusStrategy) !== null && _state_focusStrategy !== void 0 ? _state_focusStrategy : void 0,
1369
+ onKeyDown: submenuKeyDown
1370
+ }
1371
+ };
1372
+ let submenuTriggerKeyDown = (e) => {
1373
+ switch (e.key) {
1374
+ case "ArrowRight":
1375
+ if (!isDisabled) {
1376
+ if (direction === "ltr") {
1377
+ e.preventDefault();
1378
+ if (!state.isOpen) onSubmenuOpen("first");
1379
+ if (type === "menu" && !!(submenuRef === null || submenuRef === void 0 ? void 0 : submenuRef.current) && document.activeElement === (ref === null || ref === void 0 ? void 0 : ref.current)) $7215afc6de606d6b$export$de79e2c695e052f3(submenuRef.current);
1380
+ } else if (state.isOpen) onSubmenuClose();
1381
+ else e.continuePropagation();
1382
+ }
1383
+ break;
1384
+ case "ArrowLeft":
1385
+ if (!isDisabled) {
1386
+ if (direction === "rtl") {
1387
+ e.preventDefault();
1388
+ if (!state.isOpen) onSubmenuOpen("first");
1389
+ if (type === "menu" && !!(submenuRef === null || submenuRef === void 0 ? void 0 : submenuRef.current) && document.activeElement === (ref === null || ref === void 0 ? void 0 : ref.current)) $7215afc6de606d6b$export$de79e2c695e052f3(submenuRef.current);
1390
+ } else if (state.isOpen) onSubmenuClose();
1391
+ else e.continuePropagation();
1392
+ }
1393
+ break;
1394
+ default:
1395
+ e.continuePropagation();
1396
+ break;
1397
+ }
1398
+ };
1399
+ let onPressStart = (e) => {
1400
+ if (!isDisabled && (e.pointerType === "virtual" || e.pointerType === "keyboard"))
1401
+ onSubmenuOpen("first");
1402
+ };
1403
+ let onPress = (e) => {
1404
+ if (!isDisabled && (e.pointerType === "touch" || e.pointerType === "mouse"))
1405
+ onSubmenuOpen();
1406
+ };
1407
+ let onHoverChange = (isHovered) => {
1408
+ if (!isDisabled) {
1409
+ if (isHovered && !state.isOpen) {
1410
+ if (!openTimeout.current) openTimeout.current = setTimeout(() => {
1411
+ onSubmenuOpen();
1412
+ }, delay);
1413
+ } else if (!isHovered) cancelOpenTimeout();
1414
+ }
1415
+ };
1416
+ let onBlur = (e) => {
1417
+ var _parentMenuRef_current;
1418
+ if (state.isOpen && ((_parentMenuRef_current = parentMenuRef.current) === null || _parentMenuRef_current === void 0 ? void 0 : _parentMenuRef_current.contains(e.relatedTarget))) onSubmenuClose();
1419
+ };
1420
+ let shouldCloseOnInteractOutside = (target) => {
1421
+ if (target !== ref.current) return true;
1422
+ return false;
1423
+ };
1424
+ $d275435c250248f8$export$85ec83e04c95f50a({
1425
+ menuRef: parentMenuRef,
1426
+ submenuRef,
1427
+ isOpen: state.isOpen,
1428
+ isDisabled
1429
+ });
1430
+ return {
1431
+ submenuTriggerProps: {
1432
+ id: submenuTriggerId,
1433
+ "aria-controls": state.isOpen ? overlayId : void 0,
1434
+ "aria-haspopup": !isDisabled ? type : void 0,
1435
+ "aria-expanded": state.isOpen ? "true" : "false",
1436
+ onPressStart,
1437
+ onPress,
1438
+ onHoverChange,
1439
+ onKeyDown: submenuTriggerKeyDown,
1440
+ onBlur,
1441
+ isOpen: state.isOpen
1442
+ },
1443
+ submenuProps,
1444
+ popoverProps: {
1445
+ isNonModal: true,
1446
+ shouldCloseOnInteractOutside
1447
+ }
1448
+ };
1449
+ }
1450
+ function $40df3f8667284809$export$d55e7ee900f34e93(props, ref) {
1451
+ let { role = "dialog" } = props;
1452
+ let titleId = $bdb11010cef70236$export$b4cc09c592e8fdb8();
1453
+ titleId = props["aria-label"] ? void 0 : titleId;
1454
+ let isRefocusing = useRef(false);
1455
+ useEffect(() => {
1456
+ if (ref.current && !ref.current.contains(document.activeElement)) {
1457
+ $3ad3f6e1647bc98d$export$80f3e147d781571c(ref.current);
1458
+ let timeout = setTimeout(() => {
1459
+ if (document.activeElement === ref.current) {
1460
+ isRefocusing.current = true;
1461
+ if (ref.current) {
1462
+ ref.current.blur();
1463
+ $3ad3f6e1647bc98d$export$80f3e147d781571c(ref.current);
1464
+ }
1465
+ isRefocusing.current = false;
1466
+ }
1467
+ }, 500);
1468
+ return () => {
1469
+ clearTimeout(timeout);
1470
+ };
1471
+ }
1472
+ }, [
1473
+ ref
1474
+ ]);
1475
+ $337b884510726a0d$export$14c98a7594375490();
1476
+ return {
1477
+ dialogProps: {
1478
+ ...$65484d02dcb7eb3e$export$457c3d6518dd4c6f(props, {
1479
+ labelable: true
1480
+ }),
1481
+ role,
1482
+ tabIndex: -1,
1483
+ "aria-labelledby": props["aria-labelledby"] || titleId,
1484
+ // Prevent blur events from reaching useOverlay, which may cause
1485
+ // popovers to close. Since focus is contained within the dialog,
1486
+ // we don't want this to occur due to the above useEffect.
1487
+ onBlur: (e) => {
1488
+ if (isRefocusing.current) e.stopPropagation();
1489
+ }
1490
+ },
1491
+ titleProps: {
1492
+ id: titleId
1493
+ }
1494
+ };
1495
+ }
1496
+ function $a28c903ee9ad8dc5$export$79fefeb1c2091ac3(props) {
1497
+ let overlayTriggerState = $fc909762b330b746$export$61c6a8c84e605fb6(props);
1498
+ let [focusStrategy, setFocusStrategy] = useState(null);
1499
+ let [expandedKeysStack, setExpandedKeysStack] = useState([]);
1500
+ let closeAll = () => {
1501
+ setExpandedKeysStack([]);
1502
+ overlayTriggerState.close();
1503
+ };
1504
+ let openSubmenu = (triggerKey, level) => {
1505
+ setExpandedKeysStack((oldStack) => {
1506
+ if (level > oldStack.length) return oldStack;
1507
+ return [
1508
+ ...oldStack.slice(0, level),
1509
+ triggerKey
1510
+ ];
1511
+ });
1512
+ };
1513
+ let closeSubmenu = (triggerKey, level) => {
1514
+ setExpandedKeysStack((oldStack) => {
1515
+ let key = oldStack[level];
1516
+ if (key === triggerKey) return oldStack.slice(0, level);
1517
+ else return oldStack;
1518
+ });
1519
+ };
1520
+ return {
1521
+ focusStrategy,
1522
+ ...overlayTriggerState,
1523
+ open(focusStrategy2 = null) {
1524
+ setFocusStrategy(focusStrategy2);
1525
+ overlayTriggerState.open();
1526
+ },
1527
+ toggle(focusStrategy2 = null) {
1528
+ setFocusStrategy(focusStrategy2);
1529
+ overlayTriggerState.toggle();
1530
+ },
1531
+ close() {
1532
+ closeAll();
1533
+ },
1534
+ expandedKeysStack,
1535
+ openSubmenu,
1536
+ closeSubmenu
1537
+ };
1538
+ }
1539
+ function $e5614764aa47eb35$export$cfc51cf86138bf98(props, state) {
1540
+ let { triggerKey } = props;
1541
+ let { expandedKeysStack, openSubmenu, closeSubmenu, close: closeAll } = state;
1542
+ let [submenuLevel] = useState(expandedKeysStack === null || expandedKeysStack === void 0 ? void 0 : expandedKeysStack.length);
1543
+ let isOpen = useMemo(() => expandedKeysStack[submenuLevel] === triggerKey, [
1544
+ expandedKeysStack,
1545
+ triggerKey,
1546
+ submenuLevel
1547
+ ]);
1548
+ let [focusStrategy, setFocusStrategy] = useState(null);
1549
+ let open = useCallback((focusStrategy2) => {
1550
+ setFocusStrategy(focusStrategy2 !== null && focusStrategy2 !== void 0 ? focusStrategy2 : null);
1551
+ openSubmenu(triggerKey, submenuLevel);
1552
+ }, [
1553
+ openSubmenu,
1554
+ submenuLevel,
1555
+ triggerKey
1556
+ ]);
1557
+ let close = useCallback(() => {
1558
+ setFocusStrategy(null);
1559
+ closeSubmenu(triggerKey, submenuLevel);
1560
+ }, [
1561
+ closeSubmenu,
1562
+ submenuLevel,
1563
+ triggerKey
1564
+ ]);
1565
+ let toggle = useCallback((focusStrategy2) => {
1566
+ setFocusStrategy(focusStrategy2 !== null && focusStrategy2 !== void 0 ? focusStrategy2 : null);
1567
+ if (isOpen) close();
1568
+ else open(focusStrategy2);
1569
+ }, [
1570
+ close,
1571
+ open,
1572
+ isOpen
1573
+ ]);
1574
+ return useMemo(() => ({
1575
+ focusStrategy,
1576
+ isOpen,
1577
+ open,
1578
+ close,
1579
+ closeAll,
1580
+ submenuLevel,
1581
+ // TODO: Placeholders that aren't used but give us parity with OverlayTriggerState so we can use this in Popover. Refactor if we update Popover via
1582
+ // https://github.com/adobe/react-spectrum/pull/4976#discussion_r1336472863
1583
+ setOpen: () => {
1584
+ },
1585
+ toggle
1586
+ }), [
1587
+ isOpen,
1588
+ open,
1589
+ close,
1590
+ closeAll,
1591
+ focusStrategy,
1592
+ toggle,
1593
+ submenuLevel
1594
+ ]);
1595
+ }
1596
+ class $05ca4cd7c4a5a999$export$863faf230ee2118a {
1597
+ *[Symbol.iterator]() {
1598
+ yield* this.iterable;
1599
+ }
1600
+ get size() {
1601
+ return this.keyMap.size;
1602
+ }
1603
+ getKeys() {
1604
+ return this.keyMap.keys();
1605
+ }
1606
+ getKeyBefore(key) {
1607
+ let node = this.keyMap.get(key);
1608
+ var _node_prevKey;
1609
+ return node ? (_node_prevKey = node.prevKey) !== null && _node_prevKey !== void 0 ? _node_prevKey : null : null;
1610
+ }
1611
+ getKeyAfter(key) {
1612
+ let node = this.keyMap.get(key);
1613
+ var _node_nextKey;
1614
+ return node ? (_node_nextKey = node.nextKey) !== null && _node_nextKey !== void 0 ? _node_nextKey : null : null;
1615
+ }
1616
+ getFirstKey() {
1617
+ return this.firstKey;
1618
+ }
1619
+ getLastKey() {
1620
+ return this.lastKey;
1621
+ }
1622
+ getItem(key) {
1623
+ var _this_keyMap_get;
1624
+ return (_this_keyMap_get = this.keyMap.get(key)) !== null && _this_keyMap_get !== void 0 ? _this_keyMap_get : null;
1625
+ }
1626
+ at(idx) {
1627
+ const keys = [
1628
+ ...this.getKeys()
1629
+ ];
1630
+ return this.getItem(keys[idx]);
1631
+ }
1632
+ constructor(nodes, { expandedKeys } = {}) {
1633
+ this.keyMap = /* @__PURE__ */ new Map();
1634
+ this.firstKey = null;
1635
+ this.lastKey = null;
1636
+ this.iterable = nodes;
1637
+ expandedKeys = expandedKeys || /* @__PURE__ */ new Set();
1638
+ let visit = (node) => {
1639
+ this.keyMap.set(node.key, node);
1640
+ if (node.childNodes && (node.type === "section" || expandedKeys.has(node.key))) for (let child of node.childNodes) visit(child);
1641
+ };
1642
+ for (let node of nodes) visit(node);
1643
+ let last = null;
1644
+ let index = 0;
1645
+ for (let [key, node] of this.keyMap) {
1646
+ if (last) {
1647
+ last.nextKey = key;
1648
+ node.prevKey = last.key;
1649
+ } else {
1650
+ this.firstKey = key;
1651
+ node.prevKey = void 0;
1652
+ }
1653
+ if (node.type === "item") node.index = index++;
1654
+ last = node;
1655
+ last.nextKey = void 0;
1656
+ }
1657
+ var _last_key;
1658
+ this.lastKey = (_last_key = last === null || last === void 0 ? void 0 : last.key) !== null && _last_key !== void 0 ? _last_key : null;
1659
+ }
1660
+ }
1661
+ function $875d6693e12af071$export$728d6ba534403756(props) {
1662
+ let { onExpandedChange } = props;
1663
+ let [expandedKeys, setExpandedKeys] = $458b0a5536c1a7cf$export$40bfa8c7b0832715(props.expandedKeys ? new Set(props.expandedKeys) : void 0, props.defaultExpandedKeys ? new Set(props.defaultExpandedKeys) : /* @__PURE__ */ new Set(), onExpandedChange);
1664
+ let selectionState = $7af3f5b51489e0b5$export$253fe78d46329472(props);
1665
+ let disabledKeys = useMemo(() => props.disabledKeys ? new Set(props.disabledKeys) : /* @__PURE__ */ new Set(), [
1666
+ props.disabledKeys
1667
+ ]);
1668
+ let tree = $7613b1592d41b092$export$6cd28814d92fa9c9(props, useCallback((nodes) => new $05ca4cd7c4a5a999$export$863faf230ee2118a(nodes, {
1669
+ expandedKeys
1670
+ }), [
1671
+ expandedKeys
1672
+ ]), null);
1673
+ useEffect(() => {
1674
+ if (selectionState.focusedKey != null && !tree.getItem(selectionState.focusedKey)) selectionState.setFocusedKey(null);
1675
+ }, [
1676
+ tree,
1677
+ selectionState.focusedKey
1678
+ ]);
1679
+ let onToggle = (key) => {
1680
+ setExpandedKeys($875d6693e12af071$var$toggleKey(expandedKeys, key));
1681
+ };
1682
+ return {
1683
+ collection: tree,
1684
+ expandedKeys,
1685
+ disabledKeys,
1686
+ toggleKey: onToggle,
1687
+ setExpandedKeys,
1688
+ selectionManager: new $d496c0a20b6e58ec$export$6c8a5aaad13c9852(tree, selectionState)
1689
+ };
1690
+ }
1691
+ function $875d6693e12af071$var$toggleKey(set, key) {
1692
+ let res = new Set(set);
1693
+ if (res.has(key)) res.delete(key);
1694
+ else res.add(key);
1695
+ return res;
1696
+ }
1697
+ const $07b14b47974efb58$export$9b9a0cd73afb7ca4 = /* @__PURE__ */ createContext(null);
1698
+ const $07b14b47974efb58$var$PopoverGroupContext = /* @__PURE__ */ createContext(null);
1699
+ const $07b14b47974efb58$export$5b6b19405a83ff9d = /* @__PURE__ */ forwardRef(function Popover(props, ref) {
1700
+ [props, ref] = $64fa3d84918910a7$export$29f1550f4b0d4415(props, ref, $07b14b47974efb58$export$9b9a0cd73afb7ca4);
1701
+ let contextState = useContext($de32f1b87079253c$export$d2f961adcb0afbe);
1702
+ let localState = $fc909762b330b746$export$61c6a8c84e605fb6(props);
1703
+ let state = props.isOpen != null || props.defaultOpen != null || !contextState ? localState : contextState;
1704
+ let isExiting = $d3f049242431219c$export$45fda7c47f93fd48(ref, state.isOpen) || props.isExiting || false;
1705
+ let isHidden = $f39a9eba43920ace$export$b5d7cc18bb8d2b59();
1706
+ let { direction } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7();
1707
+ if (isHidden) {
1708
+ let children = props.children;
1709
+ if (typeof children === "function") children = children({
1710
+ trigger: props.trigger || null,
1711
+ placement: "bottom",
1712
+ isEntering: false,
1713
+ isExiting: false,
1714
+ defaultChildren: null
1715
+ });
1716
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, children);
1717
+ }
1718
+ if (state && !state.isOpen && !isExiting) return null;
1719
+ return /* @__PURE__ */ React__default.createElement($07b14b47974efb58$var$PopoverInner, {
1720
+ ...props,
1721
+ triggerRef: props.triggerRef,
1722
+ state,
1723
+ popoverRef: ref,
1724
+ isExiting,
1725
+ dir: direction
1726
+ });
1727
+ });
1728
+ function $07b14b47974efb58$var$PopoverInner({ state, isExiting, UNSTABLE_portalContainer, ...props }) {
1729
+ let arrowRef = useRef(null);
1730
+ let [arrowWidth, setArrowWidth] = useState(0);
1731
+ let containerRef = useRef(null);
1732
+ let groupCtx = useContext($07b14b47974efb58$var$PopoverGroupContext);
1733
+ let isSubPopover = groupCtx && props.trigger === "SubmenuTrigger";
1734
+ $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c(() => {
1735
+ if (arrowRef.current && state.isOpen) setArrowWidth(arrowRef.current.getBoundingClientRect().width);
1736
+ }, [
1737
+ state.isOpen,
1738
+ arrowRef
1739
+ ]);
1740
+ var _props_offset;
1741
+ let { popoverProps, underlayProps, arrowProps, placement } = $f2f8a6077418541e$export$542a6fd13ac93354({
1742
+ ...props,
1743
+ offset: (_props_offset = props.offset) !== null && _props_offset !== void 0 ? _props_offset : 8,
1744
+ arrowSize: arrowWidth,
1745
+ // If this is a submenu/subdialog, use the root popover's container
1746
+ // to detect outside interaction and add aria-hidden.
1747
+ groupRef: isSubPopover ? groupCtx : containerRef
1748
+ }, state);
1749
+ let ref = props.popoverRef;
1750
+ let isEntering = $d3f049242431219c$export$6d3443f2c48bfc20(ref, !!placement) || props.isEntering || false;
1751
+ let renderProps = $64fa3d84918910a7$export$4d86445c2cf5e3({
1752
+ ...props,
1753
+ defaultClassName: "react-aria-Popover",
1754
+ values: {
1755
+ trigger: props.trigger || null,
1756
+ placement,
1757
+ isEntering,
1758
+ isExiting
1759
+ }
1760
+ });
1761
+ let shouldBeDialog = !props.isNonModal || props.trigger === "SubmenuTrigger";
1762
+ let [isDialog, setDialog] = useState(false);
1763
+ $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c(() => {
1764
+ if (ref.current) setDialog(shouldBeDialog && !ref.current.querySelector("[role=dialog]"));
1765
+ }, [
1766
+ ref,
1767
+ shouldBeDialog
1768
+ ]);
1769
+ useEffect(() => {
1770
+ if (isDialog && ref.current && !ref.current.contains(document.activeElement)) $3ad3f6e1647bc98d$export$80f3e147d781571c(ref.current);
1771
+ }, [
1772
+ isDialog,
1773
+ ref
1774
+ ]);
1775
+ let style = {
1776
+ ...popoverProps.style,
1777
+ ...renderProps.style
1778
+ };
1779
+ let overlay = /* @__PURE__ */ React__default.createElement("div", {
1780
+ ...$3ef42575df84b30b$export$9d1611c77c2fe928($65484d02dcb7eb3e$export$457c3d6518dd4c6f(props), popoverProps),
1781
+ ...renderProps,
1782
+ role: isDialog ? "dialog" : void 0,
1783
+ tabIndex: isDialog ? -1 : void 0,
1784
+ "aria-label": props["aria-label"],
1785
+ "aria-labelledby": props["aria-labelledby"],
1786
+ ref,
1787
+ slot: props.slot || void 0,
1788
+ style,
1789
+ dir: props.dir,
1790
+ "data-trigger": props.trigger,
1791
+ "data-placement": placement,
1792
+ "data-entering": isEntering || void 0,
1793
+ "data-exiting": isExiting || void 0
1794
+ }, !props.isNonModal && /* @__PURE__ */ React__default.createElement($86ea4cb521eb2e37$export$2317d149ed6f78c4, {
1795
+ onDismiss: state.close
1796
+ }), /* @__PURE__ */ React__default.createElement($44f671af83e7d9e0$export$2de4954e8ae13b9f.Provider, {
1797
+ value: {
1798
+ ...arrowProps,
1799
+ placement,
1800
+ ref: arrowRef
1801
+ }
1802
+ }, renderProps.children), /* @__PURE__ */ React__default.createElement($86ea4cb521eb2e37$export$2317d149ed6f78c4, {
1803
+ onDismiss: state.close
1804
+ }));
1805
+ if (!isSubPopover) return /* @__PURE__ */ React__default.createElement($337b884510726a0d$export$c6fdb837b070b4ff, {
1806
+ ...props,
1807
+ shouldContainFocus: isDialog,
1808
+ isExiting,
1809
+ portalContainer: UNSTABLE_portalContainer
1810
+ }, !props.isNonModal && state.isOpen && /* @__PURE__ */ React__default.createElement("div", {
1811
+ "data-testid": "underlay",
1812
+ ...underlayProps,
1813
+ style: {
1814
+ position: "fixed",
1815
+ inset: 0
1816
+ }
1817
+ }), /* @__PURE__ */ React__default.createElement("div", {
1818
+ ref: containerRef,
1819
+ style: {
1820
+ display: "contents"
1821
+ }
1822
+ }, /* @__PURE__ */ React__default.createElement($07b14b47974efb58$var$PopoverGroupContext.Provider, {
1823
+ value: containerRef
1824
+ }, overlay)));
1825
+ var _ref;
1826
+ return /* @__PURE__ */ React__default.createElement($337b884510726a0d$export$c6fdb837b070b4ff, {
1827
+ ...props,
1828
+ shouldContainFocus: isDialog,
1829
+ isExiting,
1830
+ portalContainer: (_ref = UNSTABLE_portalContainer !== null && UNSTABLE_portalContainer !== void 0 ? UNSTABLE_portalContainer : groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.current) !== null && _ref !== void 0 ? _ref : void 0
1831
+ }, overlay);
1832
+ }
1833
+ const $63df2425e2108aa8$export$744d98a3b8a94e1c = /* @__PURE__ */ createContext({});
1834
+ const $3674c52c6b3c5bce$export$c7e742effb1c51e2 = /* @__PURE__ */ createContext(null);
1835
+ const $3674c52c6b3c5bce$export$24aad8519b95b41b = /* @__PURE__ */ createContext(null);
1836
+ const $3674c52c6b3c5bce$export$795aec4671cbae19 = /* @__PURE__ */ createContext(null);
1837
+ const $3674c52c6b3c5bce$var$SelectionManagerContext = /* @__PURE__ */ createContext(null);
1838
+ function $3674c52c6b3c5bce$export$27d2ad3c5815583e(props) {
1839
+ let state = $a28c903ee9ad8dc5$export$79fefeb1c2091ac3(props);
1840
+ let ref = useRef(null);
1841
+ let { menuTriggerProps, menuProps } = $168583247155ddda$export$dc9c12ed27dd1b49({
1842
+ ...props,
1843
+ type: "menu"
1844
+ }, state, ref);
1845
+ let [buttonWidth, setButtonWidth] = useState(null);
1846
+ let onResize = useCallback(() => {
1847
+ if (ref.current) setButtonWidth(ref.current.offsetWidth + "px");
1848
+ }, [
1849
+ ref
1850
+ ]);
1851
+ $9daab02d461809db$export$683480f191c0e3ea({
1852
+ ref,
1853
+ onResize
1854
+ });
1855
+ let scrollRef = useRef(null);
1856
+ return /* @__PURE__ */ React__default.createElement($64fa3d84918910a7$export$2881499e37b75b9a, {
1857
+ values: [
1858
+ [
1859
+ $3674c52c6b3c5bce$export$c7e742effb1c51e2,
1860
+ {
1861
+ ...menuProps,
1862
+ ref: scrollRef
1863
+ }
1864
+ ],
1865
+ [
1866
+ $de32f1b87079253c$export$d2f961adcb0afbe,
1867
+ state
1868
+ ],
1869
+ [
1870
+ $3674c52c6b3c5bce$export$795aec4671cbae19,
1871
+ state
1872
+ ],
1873
+ [
1874
+ $07b14b47974efb58$export$9b9a0cd73afb7ca4,
1875
+ {
1876
+ trigger: "MenuTrigger",
1877
+ triggerRef: ref,
1878
+ scrollRef,
1879
+ placement: "bottom start",
1880
+ style: {
1881
+ "--trigger-width": buttonWidth
1882
+ },
1883
+ "aria-labelledby": menuProps["aria-labelledby"]
1884
+ }
1885
+ ]
1886
+ ]
1887
+ }, /* @__PURE__ */ React__default.createElement($f1ab8c75478c6f73$export$3351871ee4b288b8, {
1888
+ ...menuTriggerProps,
1889
+ ref,
1890
+ isPressed: state.isOpen
1891
+ }, props.children));
1892
+ }
1893
+ const $3674c52c6b3c5bce$var$SubmenuTriggerContext = /* @__PURE__ */ createContext(null);
1894
+ const $3674c52c6b3c5bce$export$ecabc99eeffab7ca = /* @__PURE__ */ $e1995378a142960e$export$e953bb1cd0f19726("submenutrigger", (props, ref, item) => {
1895
+ let { CollectionBranch } = useContext($7135fc7d473fd974$export$4feb769f8ddf26c5);
1896
+ let state = useContext($3674c52c6b3c5bce$export$24aad8519b95b41b);
1897
+ let rootMenuTriggerState = useContext($3674c52c6b3c5bce$export$795aec4671cbae19);
1898
+ let submenuTriggerState = $e5614764aa47eb35$export$cfc51cf86138bf98({
1899
+ triggerKey: item.key
1900
+ }, rootMenuTriggerState);
1901
+ let submenuRef = useRef(null);
1902
+ let itemRef = $df56164dff5785e2$export$4338b53315abf666(ref);
1903
+ let { parentMenuRef, shouldUseVirtualFocus } = useContext($3674c52c6b3c5bce$var$SubmenuTriggerContext);
1904
+ let { submenuTriggerProps, submenuProps, popoverProps } = $0065b146e7192841$export$7138b0d059a6e743({
1905
+ parentMenuRef,
1906
+ submenuRef,
1907
+ delay: props.delay,
1908
+ shouldUseVirtualFocus
1909
+ }, submenuTriggerState, itemRef);
1910
+ return /* @__PURE__ */ React__default.createElement($64fa3d84918910a7$export$2881499e37b75b9a, {
1911
+ values: [
1912
+ [
1913
+ $3674c52c6b3c5bce$var$MenuItemContext,
1914
+ {
1915
+ ...submenuTriggerProps,
1916
+ onAction: void 0,
1917
+ ref: itemRef
1918
+ }
1919
+ ],
1920
+ [
1921
+ $3674c52c6b3c5bce$export$c7e742effb1c51e2,
1922
+ submenuProps
1923
+ ],
1924
+ [
1925
+ $de32f1b87079253c$export$d2f961adcb0afbe,
1926
+ submenuTriggerState
1927
+ ],
1928
+ [
1929
+ $07b14b47974efb58$export$9b9a0cd73afb7ca4,
1930
+ {
1931
+ ref: submenuRef,
1932
+ trigger: "SubmenuTrigger",
1933
+ triggerRef: itemRef,
1934
+ placement: "end top",
1935
+ "aria-labelledby": submenuProps["aria-labelledby"],
1936
+ ...popoverProps
1937
+ }
1938
+ ]
1939
+ ]
1940
+ }, /* @__PURE__ */ React__default.createElement(CollectionBranch, {
1941
+ collection: state.collection,
1942
+ parent: item
1943
+ }), props.children[1]);
1944
+ }, (props) => props.children[0]);
1945
+ const $3674c52c6b3c5bce$export$d9b273488cd8ce6f = /* @__PURE__ */ forwardRef(function Menu(props, ref) {
1946
+ [props, ref] = $64fa3d84918910a7$export$29f1550f4b0d4415(props, ref, $3674c52c6b3c5bce$export$c7e742effb1c51e2);
1947
+ return /* @__PURE__ */ React__default.createElement($e1995378a142960e$export$bf788dd355e3a401, {
1948
+ content: /* @__PURE__ */ React__default.createElement($e1995378a142960e$export$fb8073518f34e6ec, props)
1949
+ }, (collection) => /* @__PURE__ */ React__default.createElement($3674c52c6b3c5bce$var$MenuInner, {
1950
+ props,
1951
+ collection,
1952
+ menuRef: ref
1953
+ }));
1954
+ });
1955
+ function $3674c52c6b3c5bce$var$MenuInner({ props, collection, menuRef: ref }) {
1956
+ let { filter, collectionProps: autocompleteMenuProps, collectionRef } = useContext($d2f53cda644affe3$export$65d2a03b8800d6e3) || {};
1957
+ ref = $df56164dff5785e2$export$4338b53315abf666(useMemo(() => $5dc95899b306f630$export$c9058316764c140e(ref, collectionRef !== void 0 ? collectionRef : null), [
1958
+ collectionRef,
1959
+ ref
1960
+ ]));
1961
+ let filteredCollection = useMemo(() => filter ? collection.UNSTABLE_filter(filter) : collection, [
1962
+ collection,
1963
+ filter
1964
+ ]);
1965
+ let state = $875d6693e12af071$export$728d6ba534403756({
1966
+ ...props,
1967
+ collection: filteredCollection,
1968
+ children: void 0
1969
+ });
1970
+ let triggerState = useContext($3674c52c6b3c5bce$export$795aec4671cbae19);
1971
+ let { isVirtualized, CollectionRoot } = useContext($7135fc7d473fd974$export$4feb769f8ddf26c5);
1972
+ let { menuProps } = $d5336fe17ce95402$export$38eaa17faae8f579({
1973
+ ...props,
1974
+ ...autocompleteMenuProps,
1975
+ isVirtualized,
1976
+ onClose: props.onClose || (triggerState === null || triggerState === void 0 ? void 0 : triggerState.close)
1977
+ }, state, ref);
1978
+ let renderProps = $64fa3d84918910a7$export$4d86445c2cf5e3({
1979
+ defaultClassName: "react-aria-Menu",
1980
+ className: props.className,
1981
+ style: props.style,
1982
+ values: {
1983
+ isEmpty: state.collection.size === 0
1984
+ }
1985
+ });
1986
+ let emptyState = null;
1987
+ if (state.collection.size === 0 && props.renderEmptyState) emptyState = /* @__PURE__ */ React__default.createElement("div", {
1988
+ role: "menuitem",
1989
+ style: {
1990
+ display: "contents"
1991
+ }
1992
+ }, props.renderEmptyState());
1993
+ return /* @__PURE__ */ React__default.createElement($9bf71ea28793e738$export$20e40289641fbbb6, null, /* @__PURE__ */ React__default.createElement("div", {
1994
+ ...$65484d02dcb7eb3e$export$457c3d6518dd4c6f(props),
1995
+ ...menuProps,
1996
+ ...renderProps,
1997
+ ref,
1998
+ slot: props.slot || void 0,
1999
+ "data-empty": state.collection.size === 0 || void 0,
2000
+ onScroll: props.onScroll
2001
+ }, /* @__PURE__ */ React__default.createElement($64fa3d84918910a7$export$2881499e37b75b9a, {
2002
+ values: [
2003
+ [
2004
+ $3674c52c6b3c5bce$export$24aad8519b95b41b,
2005
+ state
2006
+ ],
2007
+ [
2008
+ $431f98aba6844401$export$6615d83f6de245ce,
2009
+ {
2010
+ elementType: "div"
2011
+ }
2012
+ ],
2013
+ [
2014
+ $7135fc7d473fd974$export$d40e14dec8b060a8,
2015
+ {
2016
+ name: "MenuSection",
2017
+ render: $3674c52c6b3c5bce$var$MenuSectionInner
2018
+ }
2019
+ ],
2020
+ [
2021
+ $3674c52c6b3c5bce$var$SubmenuTriggerContext,
2022
+ {
2023
+ parentMenuRef: ref,
2024
+ shouldUseVirtualFocus: autocompleteMenuProps === null || autocompleteMenuProps === void 0 ? void 0 : autocompleteMenuProps.shouldUseVirtualFocus
2025
+ }
2026
+ ],
2027
+ [
2028
+ $3674c52c6b3c5bce$var$MenuItemContext,
2029
+ null
2030
+ ],
2031
+ [
2032
+ $d2f53cda644affe3$export$65d2a03b8800d6e3,
2033
+ null
2034
+ ],
2035
+ [
2036
+ $3674c52c6b3c5bce$var$SelectionManagerContext,
2037
+ state.selectionManager
2038
+ ],
2039
+ /* Ensure root MenuTriggerState is defined, in case Menu is rendered outside a MenuTrigger. */
2040
+ /* We assume the context can never change between defined and undefined. */
2041
+ /* eslint-disable-next-line react-hooks/rules-of-hooks */
2042
+ [
2043
+ $3674c52c6b3c5bce$export$795aec4671cbae19,
2044
+ triggerState !== null && triggerState !== void 0 ? triggerState : $a28c903ee9ad8dc5$export$79fefeb1c2091ac3({})
2045
+ ]
2046
+ ]
2047
+ }, /* @__PURE__ */ React__default.createElement(CollectionRoot, {
2048
+ collection: state.collection,
2049
+ persistedKeys: $7135fc7d473fd974$export$90e00781bc59d8f9(state.selectionManager.focusedKey),
2050
+ scrollRef: ref
2051
+ })), emptyState));
2052
+ }
2053
+ class $3674c52c6b3c5bce$var$GroupSelectionManager extends $d496c0a20b6e58ec$export$6c8a5aaad13c9852 {
2054
+ get focusedKey() {
2055
+ return this.parent.focusedKey;
2056
+ }
2057
+ get isFocused() {
2058
+ return this.parent.isFocused;
2059
+ }
2060
+ setFocusedKey(key, childFocusStrategy) {
2061
+ return this.parent.setFocusedKey(key, childFocusStrategy);
2062
+ }
2063
+ setFocused(isFocused) {
2064
+ this.parent.setFocused(isFocused);
2065
+ }
2066
+ get childFocusStrategy() {
2067
+ return this.parent.childFocusStrategy;
2068
+ }
2069
+ constructor(parent, state) {
2070
+ super(parent.collection, state);
2071
+ this.parent = parent;
2072
+ }
2073
+ }
2074
+ function $3674c52c6b3c5bce$var$MenuSectionInner(props, ref, section, className = "react-aria-MenuSection") {
2075
+ var _section_props, _section_props1;
2076
+ let state = useContext($3674c52c6b3c5bce$export$24aad8519b95b41b);
2077
+ let { CollectionBranch } = useContext($7135fc7d473fd974$export$4feb769f8ddf26c5);
2078
+ let [headingRef, heading] = $64fa3d84918910a7$export$9d4c57ee4c6ffdd8();
2079
+ var _section_props_arialabel;
2080
+ let { headingProps, groupProps } = $3e5eb2498db5b506$export$73f7a44322579622({
2081
+ heading,
2082
+ "aria-label": (_section_props_arialabel = section.props["aria-label"]) !== null && _section_props_arialabel !== void 0 ? _section_props_arialabel : void 0
2083
+ });
2084
+ let renderProps = $64fa3d84918910a7$export$4d86445c2cf5e3({
2085
+ defaultClassName: className,
2086
+ className: (_section_props = section.props) === null || _section_props === void 0 ? void 0 : _section_props.className,
2087
+ style: (_section_props1 = section.props) === null || _section_props1 === void 0 ? void 0 : _section_props1.style,
2088
+ values: {}
2089
+ });
2090
+ let parent = useContext($3674c52c6b3c5bce$var$SelectionManagerContext);
2091
+ let selectionState = $7af3f5b51489e0b5$export$253fe78d46329472(props);
2092
+ let manager = props.selectionMode != null ? new $3674c52c6b3c5bce$var$GroupSelectionManager(parent, selectionState) : parent;
2093
+ return /* @__PURE__ */ React__default.createElement("section", {
2094
+ ...$65484d02dcb7eb3e$export$457c3d6518dd4c6f(props),
2095
+ ...groupProps,
2096
+ ...renderProps,
2097
+ ref
2098
+ }, /* @__PURE__ */ React__default.createElement($64fa3d84918910a7$export$2881499e37b75b9a, {
2099
+ values: [
2100
+ [
2101
+ $72a5793c14baf454$export$e0e4026c12a8bdbb,
2102
+ {
2103
+ ...headingProps,
2104
+ ref: headingRef
2105
+ }
2106
+ ],
2107
+ [
2108
+ $3674c52c6b3c5bce$var$SelectionManagerContext,
2109
+ manager
2110
+ ]
2111
+ ]
2112
+ }, /* @__PURE__ */ React__default.createElement(CollectionBranch, {
2113
+ collection: state.collection,
2114
+ parent: section
2115
+ })));
2116
+ }
2117
+ const $3674c52c6b3c5bce$export$4b1545b4f2016d26 = /* @__PURE__ */ $e1995378a142960e$export$e953bb1cd0f19726("section", $3674c52c6b3c5bce$var$MenuSectionInner);
2118
+ const $3674c52c6b3c5bce$var$MenuItemContext = /* @__PURE__ */ createContext(null);
2119
+ const $3674c52c6b3c5bce$export$2ce376c2cc3355c8 = /* @__PURE__ */ $e1995378a142960e$export$18af5c7a9e9b3664("item", function MenuItem(props, forwardedRef, item) {
2120
+ var _useSlottedContext;
2121
+ [props, forwardedRef] = $64fa3d84918910a7$export$29f1550f4b0d4415(props, forwardedRef, $3674c52c6b3c5bce$var$MenuItemContext);
2122
+ let id = (_useSlottedContext = $64fa3d84918910a7$export$fabf2dc03a41866e($3674c52c6b3c5bce$var$MenuItemContext)) === null || _useSlottedContext === void 0 ? void 0 : _useSlottedContext.id;
2123
+ let state = useContext($3674c52c6b3c5bce$export$24aad8519b95b41b);
2124
+ let ref = $df56164dff5785e2$export$4338b53315abf666(forwardedRef);
2125
+ let selectionManager = useContext($3674c52c6b3c5bce$var$SelectionManagerContext);
2126
+ let { menuItemProps, labelProps, descriptionProps, keyboardShortcutProps, ...states } = $a2e5df62f93c7633$export$9d32628fc2aea7da({
2127
+ ...props,
2128
+ id,
2129
+ key: item.key,
2130
+ selectionManager
2131
+ }, state, ref);
2132
+ let { hoverProps, isHovered } = $6179b936705e76d3$export$ae780daf29e6d456({
2133
+ isDisabled: states.isDisabled
2134
+ });
2135
+ let renderProps = $64fa3d84918910a7$export$4d86445c2cf5e3({
2136
+ ...props,
2137
+ id: void 0,
2138
+ children: item.rendered,
2139
+ defaultClassName: "react-aria-MenuItem",
2140
+ values: {
2141
+ ...states,
2142
+ isHovered,
2143
+ isFocusVisible: states.isFocusVisible,
2144
+ selectionMode: selectionManager.selectionMode,
2145
+ selectionBehavior: selectionManager.selectionBehavior,
2146
+ hasSubmenu: !!props["aria-haspopup"],
2147
+ isOpen: props["aria-expanded"] === "true"
2148
+ }
2149
+ });
2150
+ let ElementType = props.href ? "a" : "div";
2151
+ return /* @__PURE__ */ React__default.createElement(ElementType, {
2152
+ ...$3ef42575df84b30b$export$9d1611c77c2fe928(menuItemProps, hoverProps),
2153
+ ...renderProps,
2154
+ ref,
2155
+ "data-disabled": states.isDisabled || void 0,
2156
+ "data-hovered": isHovered || void 0,
2157
+ "data-focused": states.isFocused || void 0,
2158
+ "data-focus-visible": states.isFocusVisible || void 0,
2159
+ "data-pressed": states.isPressed || void 0,
2160
+ "data-selected": states.isSelected || void 0,
2161
+ "data-selection-mode": selectionManager.selectionMode === "none" ? void 0 : selectionManager.selectionMode,
2162
+ "data-has-submenu": !!props["aria-haspopup"] || void 0,
2163
+ "data-open": props["aria-expanded"] === "true" || void 0
2164
+ }, /* @__PURE__ */ React__default.createElement($64fa3d84918910a7$export$2881499e37b75b9a, {
2165
+ values: [
2166
+ [
2167
+ $514c0188e459b4c0$export$9afb8bc826b033ea,
2168
+ {
2169
+ slots: {
2170
+ [$64fa3d84918910a7$export$c62b8e45d58ddad9]: labelProps,
2171
+ label: labelProps,
2172
+ description: descriptionProps
2173
+ }
2174
+ }
2175
+ ],
2176
+ [
2177
+ $63df2425e2108aa8$export$744d98a3b8a94e1c,
2178
+ keyboardShortcutProps
2179
+ ]
2180
+ ]
2181
+ }, renderProps.children));
2182
+ });
2183
+ const $de32f1b87079253c$export$8b93a07348a7730c = /* @__PURE__ */ createContext(null);
2184
+ const $de32f1b87079253c$export$d2f961adcb0afbe = /* @__PURE__ */ createContext(null);
2185
+ function $de32f1b87079253c$export$2e1e1122cf0cba88(props) {
2186
+ let state = $a28c903ee9ad8dc5$export$79fefeb1c2091ac3(props);
2187
+ let buttonRef = useRef(null);
2188
+ let { triggerProps, overlayProps } = $628037886ba31236$export$f9d5c8beee7d008d({
2189
+ type: "dialog"
2190
+ }, state, buttonRef);
2191
+ triggerProps.id = $bdb11010cef70236$export$f680877a34711e37();
2192
+ overlayProps["aria-labelledby"] = triggerProps.id;
2193
+ return /* @__PURE__ */ React__default.createElement($64fa3d84918910a7$export$2881499e37b75b9a, {
2194
+ values: [
2195
+ [
2196
+ $de32f1b87079253c$export$d2f961adcb0afbe,
2197
+ state
2198
+ ],
2199
+ [
2200
+ $3674c52c6b3c5bce$export$795aec4671cbae19,
2201
+ state
2202
+ ],
2203
+ [
2204
+ $de32f1b87079253c$export$8b93a07348a7730c,
2205
+ overlayProps
2206
+ ],
2207
+ [
2208
+ $07b14b47974efb58$export$9b9a0cd73afb7ca4,
2209
+ {
2210
+ trigger: "DialogTrigger",
2211
+ triggerRef: buttonRef,
2212
+ "aria-labelledby": overlayProps["aria-labelledby"]
2213
+ }
2214
+ ]
2215
+ ]
2216
+ }, /* @__PURE__ */ React__default.createElement($f1ab8c75478c6f73$export$3351871ee4b288b8, {
2217
+ ...triggerProps,
2218
+ ref: buttonRef,
2219
+ isPressed: state.isOpen
2220
+ }, props.children));
2221
+ }
2222
+ const $de32f1b87079253c$export$3ddf2d174ce01153 = /* @__PURE__ */ forwardRef(function Dialog(props, ref) {
2223
+ let originalAriaLabelledby = props["aria-labelledby"];
2224
+ [props, ref] = $64fa3d84918910a7$export$29f1550f4b0d4415(props, ref, $de32f1b87079253c$export$8b93a07348a7730c);
2225
+ let { dialogProps, titleProps } = $40df3f8667284809$export$d55e7ee900f34e93({
2226
+ ...props,
2227
+ // Only pass aria-labelledby from props, not context.
2228
+ // Context is used as a fallback below.
2229
+ "aria-labelledby": originalAriaLabelledby
2230
+ }, ref);
2231
+ let state = useContext($de32f1b87079253c$export$d2f961adcb0afbe);
2232
+ if (!dialogProps["aria-label"] && !dialogProps["aria-labelledby"]) {
2233
+ if (props["aria-labelledby"]) dialogProps["aria-labelledby"] = props["aria-labelledby"];
2234
+ else if (process.env.NODE_ENV !== "production") console.warn('If a Dialog does not contain a <Heading slot="title">, it must have an aria-label or aria-labelledby attribute for accessibility.');
2235
+ }
2236
+ let renderProps = $64fa3d84918910a7$export$4d86445c2cf5e3({
2237
+ defaultClassName: "react-aria-Dialog",
2238
+ className: props.className,
2239
+ style: props.style,
2240
+ children: props.children,
2241
+ values: {
2242
+ close: (state === null || state === void 0 ? void 0 : state.close) || (() => {
2243
+ })
2244
+ }
2245
+ });
2246
+ return /* @__PURE__ */ React__default.createElement("section", {
2247
+ ...$65484d02dcb7eb3e$export$457c3d6518dd4c6f(props),
2248
+ ...dialogProps,
2249
+ ...renderProps,
2250
+ ref,
2251
+ slot: props.slot || void 0
2252
+ }, /* @__PURE__ */ React__default.createElement($64fa3d84918910a7$export$2881499e37b75b9a, {
2253
+ values: [
2254
+ [
2255
+ $4e85f108e88277b8$export$d688439359537581,
2256
+ {
2257
+ slots: {
2258
+ [$64fa3d84918910a7$export$c62b8e45d58ddad9]: {},
2259
+ title: {
2260
+ ...titleProps,
2261
+ level: 2
2262
+ }
2263
+ }
2264
+ }
2265
+ ],
2266
+ [
2267
+ $d2b4bc8c273e7be6$export$24d547caef80ccd1,
2268
+ {
2269
+ slots: {
2270
+ [$64fa3d84918910a7$export$c62b8e45d58ddad9]: {},
2271
+ close: {
2272
+ onPress: () => state === null || state === void 0 ? void 0 : state.close()
2273
+ }
2274
+ }
2275
+ }
2276
+ ]
2277
+ ]
2278
+ }, renderProps.children));
2279
+ });
2280
+ export {
2281
+ $07b14b47974efb58$export$5b6b19405a83ff9d as $,
2282
+ $3674c52c6b3c5bce$export$27d2ad3c5815583e as a,
2283
+ $3674c52c6b3c5bce$export$d9b273488cd8ce6f as b,
2284
+ $3674c52c6b3c5bce$export$2ce376c2cc3355c8 as c,
2285
+ $3674c52c6b3c5bce$export$4b1545b4f2016d26 as d,
2286
+ $3674c52c6b3c5bce$export$ecabc99eeffab7ca as e,
2287
+ $de32f1b87079253c$export$3ddf2d174ce01153 as f,
2288
+ $de32f1b87079253c$export$2e1e1122cf0cba88 as g,
2289
+ $a11501f3d1d39e6c$export$ea8f71083e90600f as h,
2290
+ $49c51c25361d4cd2$export$ee0f7cc6afcd1c18 as i,
2291
+ $337b884510726a0d$export$14c98a7594375490 as j,
2292
+ $5e3802645cc19319$export$1c3ebcada18427bf as k,
2293
+ $de32f1b87079253c$export$d2f961adcb0afbe as l,
2294
+ $86ea4cb521eb2e37$export$2317d149ed6f78c4 as m,
2295
+ $337b884510726a0d$export$c6fdb837b070b4ff as n,
2296
+ $168583247155ddda$export$dc9c12ed27dd1b49 as o,
2297
+ $07b14b47974efb58$export$9b9a0cd73afb7ca4 as p
2298
+ };