@eightshift/ui-components 5.0.0 → 5.0.2

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