@iress-oss/ids-components 5.20.0 → 5.20.3

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 (253) hide show
  1. package/CHANGELOG.md +378 -0
  2. package/README.md +1 -1
  3. package/dist/{AutocompleteNoResults-CogA3XZs.js → AutocompleteNoResults-B7El1R2l.js} +1 -1
  4. package/dist/ComboboxHiddenInput-CWfIj-Zz.js +32 -0
  5. package/dist/{FieldAppendToLabel-CuSREliL.js → FieldAppendToLabel-BTdzhQ7Z.js} +5 -5
  6. package/dist/InputBase-Hc9D8St6.js +56 -0
  7. package/dist/Loading.module-BjceG0Wh.js +13 -0
  8. package/dist/LoadingSuspense-Bwd232Nt.js +5728 -0
  9. package/dist/LogoFromSrc-CAdoYYud.js +59 -0
  10. package/dist/MenuItem.module-BQw_K5D4.js +24 -0
  11. package/dist/Popover.module-ZU-08mVQ.js +11 -0
  12. package/dist/PopoverProvider-Cvg6ObBO.js +142 -0
  13. package/dist/{SelectControl-D1SJlplM.js → SelectControl-WoixPfwh.js} +2 -2
  14. package/dist/SliderTicks-D-B1uIdS.js +74 -0
  15. package/dist/TabSet.module-4ohNBuQS.js +13 -0
  16. package/dist/Table.module-BYwGboft.js +32 -0
  17. package/dist/components/Alert/Alert.js +2 -2
  18. package/dist/components/Alert/index.js +1 -1
  19. package/dist/components/Autocomplete/Autocomplete.js +4 -4
  20. package/dist/components/Autocomplete/components/AutocompleteInstructions.js +7 -7
  21. package/dist/components/Autocomplete/components/AutocompleteNoResults.js +1 -1
  22. package/dist/components/Autocomplete/hooks/useAutocompleteSearch.js +36 -35
  23. package/dist/components/Autocomplete/index.js +1 -1
  24. package/dist/components/Badge/Badge.js +5 -5
  25. package/dist/components/Button/Button.js +3 -3
  26. package/dist/components/Button/CloseButton/CloseButton.js +2 -2
  27. package/dist/components/Button/index.js +1 -1
  28. package/dist/components/ButtonGroup/ButtonGroup.js +3 -3
  29. package/dist/components/ButtonGroup/ButtonGroupProvider.js +22 -22
  30. package/dist/components/ButtonGroup/hooks/useIDSButtonGroupItem.js +2 -2
  31. package/dist/components/ButtonGroup/index.js +1 -1
  32. package/dist/components/Card/helpers/composeIDSCard.js +1 -1
  33. package/dist/components/Checkbox/Checkbox.js +2 -2
  34. package/dist/components/Checkbox/helpers/mapCheckboxGroupOptions.js +11 -11
  35. package/dist/components/Checkbox/index.js +1 -1
  36. package/dist/components/CheckboxGroup/CheckboxGroup.js +74 -75
  37. package/dist/components/CheckboxMark/CheckboxMark.js +1 -1
  38. package/dist/components/CheckboxMark/CheckboxMark.types.js +2 -2
  39. package/dist/components/Col/Col.js +1 -1
  40. package/dist/components/Combobox/Combobox.js +4 -4
  41. package/dist/components/Combobox/MultiCombobox/MultiCombobox.js +4 -4
  42. package/dist/components/Combobox/components/ComboboxHiddenInput.js +2 -2
  43. package/dist/components/Combobox/components/ComboboxResults.js +6 -6
  44. package/dist/components/Combobox/components/ComboboxResultsDescriptor.js +4 -4
  45. package/dist/components/Combobox/hooks/useComboboxInlineCompletion.js +34 -37
  46. package/dist/components/Combobox/index.js +1 -1
  47. package/dist/components/Container/Container.js +1 -1
  48. package/dist/components/Divider/Divider.js +1 -1
  49. package/dist/components/Expander/Expander.js +48 -48
  50. package/dist/components/Field/Field.js +47 -47
  51. package/dist/components/Field/FieldGroup/FieldGroup.js +59 -59
  52. package/dist/components/Field/components/FieldAppendToLabel.js +5 -5
  53. package/dist/components/Filter/Filter.js +4 -4
  54. package/dist/components/Filter/components/FilterResetButton.js +4 -4
  55. package/dist/components/Filter/components/FilterSearch.js +4 -4
  56. package/dist/components/Filter/index.js +1 -1
  57. package/dist/components/Form/Form.js +1 -1
  58. package/dist/components/Form/FormField/FormField.js +46 -49
  59. package/dist/components/Form/FormField/FormFieldset.js +42 -45
  60. package/dist/components/Form/FormField/helpers/getErrorTypeMessage.js +10 -10
  61. package/dist/components/Form/HookForm/HookForm.js +2 -2
  62. package/dist/components/Form/components/FormValidationSummary.js +15 -16
  63. package/dist/components/Form/index.js +1 -1
  64. package/dist/components/Hide/Hide.js +2 -2
  65. package/dist/components/Hide/helpers/composeHideClasses.js +4 -4
  66. package/dist/components/Hide/index.js +1 -1
  67. package/dist/components/Icon/Icon.js +4 -4
  68. package/dist/components/Icon/index.js +1 -1
  69. package/dist/components/Inline/Inline.js +4 -4
  70. package/dist/components/Inline/index.js +1 -1
  71. package/dist/components/Input/ClearButton/ClearButton.js +1 -1
  72. package/dist/components/Input/Input.js +3 -3
  73. package/dist/components/Input/InputBase/InputBase.js +2 -2
  74. package/dist/components/Input/index.js +1 -1
  75. package/dist/components/InputCurrency/InputCurrency.js +1 -1
  76. package/dist/components/InputCurrency/index.js +1 -1
  77. package/dist/components/Label/LabelBase/LabelBase.js +37 -37
  78. package/dist/components/Menu/Menu.js +1 -1
  79. package/dist/components/Menu/MenuDivider/MenuDivider.js +4 -4
  80. package/dist/components/Menu/MenuHeading/MenuHeading.js +3 -3
  81. package/dist/components/Menu/MenuItem/MenuItem.js +1 -1
  82. package/dist/components/Menu/MenuItem/hooks/useMenuItemAria.js +7 -7
  83. package/dist/components/Menu/MenuItem/hooks/useMenuItemButtonProps.js +30 -30
  84. package/dist/components/Menu/MenuItem/hooks/useMenuItemComposite.js +2 -2
  85. package/dist/components/Menu/MenuItem/hooks/useMenuItemInteractions.js +47 -49
  86. package/dist/components/Menu/MenuItem/hooks/useMenuItemRole.js +5 -5
  87. package/dist/components/Menu/MenuText/MenuText.js +5 -5
  88. package/dist/components/Menu/helpers/mapMenuItems.js +21 -21
  89. package/dist/components/Menu/hooks/useMenuAria.js +2 -2
  90. package/dist/components/Menu/hooks/useMenuComposite.js +6 -6
  91. package/dist/components/Menu/hooks/useMenuRole.js +10 -10
  92. package/dist/components/Menu/hooks/useMenuStyles.js +18 -18
  93. package/dist/components/Menu/index.js +1 -1
  94. package/dist/components/Modal/Modal.js +3 -3
  95. package/dist/components/Modal/hooks/useIDSProvidedModal.js +8 -8
  96. package/dist/components/Modal/index.js +1 -1
  97. package/dist/components/Navbar/Navbar.js +3 -3
  98. package/dist/components/Navbar/components/HomeLinkContent.js +2 -2
  99. package/dist/components/Navbar/components/LogoFromSrc.js +1 -1
  100. package/dist/components/Navbar/components/NavbarLogo.js +3 -3
  101. package/dist/components/Navbar/index.js +1 -1
  102. package/dist/components/Panel/Panel.js +1 -1
  103. package/dist/components/Placeholder/Placeholder.js +20 -20
  104. package/dist/components/Popover/InputPopover/InputPopover.js +2 -2
  105. package/dist/components/Popover/InputPopover/InputPopoverActivator.js +40 -43
  106. package/dist/components/Popover/InputPopover/InputPopoverProvider.js +61 -61
  107. package/dist/components/Popover/Popover.js +3 -3
  108. package/dist/components/Popover/PopoverProvider.js +2 -2
  109. package/dist/components/Popover/components/NestedPopoverActivator.js +1 -1
  110. package/dist/components/Popover/components/PopoverActivator.js +53 -58
  111. package/dist/components/Popover/components/PopoverContent.js +31 -31
  112. package/dist/components/Popover/helpers/composeFloatingProps.js +21 -24
  113. package/dist/components/Popover/helpers/handlePopoverTabKey.js +2 -2
  114. package/dist/components/Popover/hooks/usePopover.js +1 -1
  115. package/dist/components/Popover/hooks/usePopoverActivatorInteractions.js +23 -26
  116. package/dist/components/Popover/hooks/usePopoverImperativeHandle.js +17 -17
  117. package/dist/components/Popover/hooks/usePopoverItem.js +13 -14
  118. package/dist/components/Popover/hooks/usePopoverNavigation.js +22 -22
  119. package/dist/components/Progress/Progress.js +2 -2
  120. package/dist/components/Provider/Provider.js +1 -1
  121. package/dist/components/Radio/Radio.js +2 -2
  122. package/dist/components/Radio/helpers/mapRadioGroupOptions.js +8 -8
  123. package/dist/components/Radio/index.js +1 -1
  124. package/dist/components/RadioGroup/RadioGroup.js +68 -56
  125. package/dist/components/RadioGroup/index.js +6 -5
  126. package/dist/components/Readonly/Readonly.js +5 -5
  127. package/dist/components/Readonly/index.js +1 -1
  128. package/dist/components/RichSelect/RichSelect.js +3 -3
  129. package/dist/components/RichSelect/SelectBody/SelectBody.js +4 -4
  130. package/dist/components/RichSelect/SelectCreate/SelectCreate.js +4 -4
  131. package/dist/components/RichSelect/SelectHeading/SelectHeading.js +4 -4
  132. package/dist/components/RichSelect/SelectLabel/SelectLabel.js +2 -2
  133. package/dist/components/RichSelect/SelectMenu/SelectMenu.js +4 -4
  134. package/dist/components/RichSelect/SelectMenu/SelectMenuItem.js +4 -4
  135. package/dist/components/RichSelect/SelectSearch/SelectSearch.js +3 -3
  136. package/dist/components/RichSelect/SelectSearchInput/SelectSearchInput.js +2 -2
  137. package/dist/components/RichSelect/SelectTags/SelectTags.js +3 -3
  138. package/dist/components/RichSelect/components/SelectActivator.js +1 -1
  139. package/dist/components/RichSelect/components/SelectOptions.js +4 -4
  140. package/dist/components/RichSelect/index.js +1 -1
  141. package/dist/components/Row/Row.js +4 -4
  142. package/dist/components/Row/index.js +1 -1
  143. package/dist/components/Select/Select.js +3 -3
  144. package/dist/components/Select/components/SelectControl.js +2 -2
  145. package/dist/components/Select/components/SelectReadonly.js +4 -4
  146. package/dist/components/Select/helpers/mapSelectOptions.js +9 -9
  147. package/dist/components/Select/helpers/nodesToSelectOptions.js +1 -1
  148. package/dist/components/Select/index.js +1 -1
  149. package/dist/components/Skeleton/Skeleton.js +11 -11
  150. package/dist/components/SkipLink/SkipLink.js +2 -2
  151. package/dist/components/Slideout/Slideout.js +4 -4
  152. package/dist/components/Slideout/components/SlideoutInner.js +3 -3
  153. package/dist/components/Slideout/hooks/useIDSProvidedSlideout.js +7 -7
  154. package/dist/components/Slideout/index.js +1 -1
  155. package/dist/components/Slider/Slider.js +3 -3
  156. package/dist/components/Slider/components/SliderTicks.js +2 -2
  157. package/dist/components/Slider/index.js +1 -1
  158. package/dist/components/Spinner/Spinner.js +2 -2
  159. package/dist/components/Spinner/index.js +1 -1
  160. package/dist/components/Stack/Stack.js +1 -1
  161. package/dist/components/TabSet/Tab/Tab.js +52 -52
  162. package/dist/components/TabSet/TabSet.js +24 -24
  163. package/dist/components/TabSet/TabSetProvider.js +30 -30
  164. package/dist/components/TabSet/components/TabSetItem.js +31 -32
  165. package/dist/components/TabSet/helpers/mapTabs.js +19 -19
  166. package/dist/components/Table/Table.js +3 -3
  167. package/dist/components/Table/TableBody/TableBody.js +91 -91
  168. package/dist/components/Table/TableProvider.js +2 -2
  169. package/dist/components/Table/components/TableEmpty.js +8 -8
  170. package/dist/components/Table/components/TableHeader.js +2 -2
  171. package/dist/components/Table/components/TableHeaderCell.js +1 -1
  172. package/dist/components/Table/components/TableRows.js +34 -34
  173. package/dist/components/Table/components/TableSortButton.js +3 -3
  174. package/dist/components/Table/helpers/composeIDSTableColumnDefs.js +22 -22
  175. package/dist/components/Table/helpers/composeIDSTableInitialSorting.js +2 -2
  176. package/dist/components/Table/hooks/useIDSTableColumnSort.js +6 -6
  177. package/dist/components/Table/hooks/useIDSTableColumnStyles.js +14 -15
  178. package/dist/components/Table/index.js +1 -1
  179. package/dist/components/Tag/Tag.js +2 -2
  180. package/dist/components/Tag/TagInput/TagInput.js +1 -1
  181. package/dist/components/Tag/components/TagListInput/TagListInput.js +2 -2
  182. package/dist/components/Tag/index.js +1 -1
  183. package/dist/components/Text/Text.js +1 -1
  184. package/dist/components/Toaster/Toast/Toast.js +2 -2
  185. package/dist/components/Toaster/Toast/ToastAnimated.js +3 -3
  186. package/dist/components/Toaster/Toast/ToastIcon.js +1 -1
  187. package/dist/components/Toaster/Toaster.js +3 -3
  188. package/dist/components/Toaster/ToasterProvider.js +1 -1
  189. package/dist/components/Toaster/hooks/useToaster.js +1 -1
  190. package/dist/components/Toaster/index.js +1 -1
  191. package/dist/components/Toggle/Toggle.js +25 -25
  192. package/dist/components/Tooltip/Tooltip.js +3 -3
  193. package/dist/components/ValidationMessage/ValidationBase/ValidationBase.js +2 -2
  194. package/dist/components/ValidationMessage/ValidationSummary/ValidationSummary.js +2 -2
  195. package/dist/constants.js +1 -1
  196. package/dist/floating-ui.react-DYBeYtOf.js +3464 -0
  197. package/dist/fuzzysort-BNka47rs.js +395 -0
  198. package/dist/helpers/dom/closestCrossShadow.js +16 -17
  199. package/dist/helpers/dom/focusableElements.js +6 -6
  200. package/dist/helpers/dom/getActiveElement.js +5 -6
  201. package/dist/helpers/formatting/formatDateTime.js +8 -7
  202. package/dist/helpers/label-value/composeLabelValueDescriptor.js +8 -8
  203. package/dist/helpers/label-value/getQueryRangeExclusive.js +1 -1
  204. package/dist/helpers/label-value/getValueFromLabelValues.js +5 -6
  205. package/dist/helpers/label-value/highlightQueryInLabel.js +4 -7
  206. package/dist/helpers/label-value/searchLabelValues.js +1 -1
  207. package/dist/helpers/responsive/getResponsiveLayoutModifiers.js +4 -4
  208. package/dist/helpers/transition/getTransitionDuration.js +5 -8
  209. package/dist/hooks/useAriaRelationship.js +19 -21
  210. package/dist/hooks/useBreakpoint.js +8 -11
  211. package/dist/hooks/useControlledState.js +40 -40
  212. package/dist/{index-BQfnxwrU.js → index-BaVtNOfa.js} +41 -51
  213. package/dist/{index-Dms7F5NM.js → index-DLnR8XTt.js} +1 -11
  214. package/dist/{index-2QXL0WYc.js → index-cbHCAGLB.js} +2 -7
  215. package/dist/{index.esm-BnSuefUA.js → index.esm-CL8gh5wr.js} +1 -5
  216. package/dist/main.js +159 -158
  217. package/dist/patterns/Loading/Loading.js +1 -1
  218. package/dist/patterns/Loading/LoadingSuspense.js +1 -1
  219. package/dist/patterns/Loading/components/ComponentLoading.js +3 -3
  220. package/dist/patterns/Loading/components/DefaultLoading.js +3 -3
  221. package/dist/patterns/Loading/components/LongLoading.js +42 -42
  222. package/dist/patterns/Loading/components/PageLoading.js +3 -3
  223. package/dist/patterns/Loading/components/StartUpLoading.js +65 -65
  224. package/dist/patterns/Loading/components/ValidateLoading.js +3 -3
  225. package/dist/patterns/Loading/index.js +1 -1
  226. package/dist/src/components/InputCurrency/InputCurrency.d.ts +1 -2
  227. package/dist/src/components/RadioGroup/RadioGroup.d.ts +5 -0
  228. package/dist/src/components/TabSet/TabSet.types.d.ts +1 -1
  229. package/dist/src/components/Table/Table.types.d.ts +1 -1
  230. package/dist/src/components/Table/helpers/composeIDSTableColumnDefs.d.ts +1 -1
  231. package/dist/src/components/Table/helpers/findColumnByKey.d.ts +1 -1
  232. package/dist/src/components/Toaster/hooks/useToaster.d.ts +1 -1
  233. package/dist/style.css +1 -1
  234. package/dist/useIDSButtonGroupItem-BB7Moa3N.js +29 -0
  235. package/package.json +67 -38
  236. package/dist/ComboboxHiddenInput-gTOjjF3f.js +0 -32
  237. package/dist/InputBase-BFK9n82f.js +0 -56
  238. package/dist/Loading.module-g2pe-Gfx.js +0 -13
  239. package/dist/LoadingSuspense-D9nGJ3gx.js +0 -5773
  240. package/dist/LogoFromSrc-BnImWqt6.js +0 -59
  241. package/dist/MenuItem.module-BxcFZeSh.js +0 -24
  242. package/dist/Popover.module-BKrF_xRW.js +0 -11
  243. package/dist/PopoverProvider-d3hhpW2k.js +0 -142
  244. package/dist/SliderTicks-DQN0Ka4d.js +0 -78
  245. package/dist/TabSet.module-FRUnHgA1.js +0 -13
  246. package/dist/Table.module-r-RfIeLI.js +0 -32
  247. package/dist/floating-ui.react-nmA48tb2.js +0 -3463
  248. package/dist/fuzzysort-eoXOpoo6.js +0 -395
  249. package/dist/useIDSButtonGroupItem-VfKx4O-O.js +0 -30
  250. package/dist/vite.config.d.ts +0 -2
  251. package/dist/vitest.config.d.ts +0 -2
  252. package/dist/vitest.setup.d.ts +0 -0
  253. /package/{LICENSE.txt → LICENSE} +0 -0
@@ -0,0 +1,3464 @@
1
+ import * as d from "react";
2
+ import { useLayoutEffect as Gn } from "react";
3
+ import { t as At, i as jn, f as Pr } from "./index.esm-CL8gh5wr.js";
4
+ import { jsx as me, jsxs as qn, Fragment as Dr } from "react/jsx-runtime";
5
+ import * as nn from "react-dom";
6
+ function St() {
7
+ return typeof window < "u";
8
+ }
9
+ function We(e) {
10
+ return rn(e) ? (e.nodeName || "").toLowerCase() : "#document";
11
+ }
12
+ function pe(e) {
13
+ var t;
14
+ return (e == null || (t = e.ownerDocument) == null ? void 0 : t.defaultView) || window;
15
+ }
16
+ function Te(e) {
17
+ var t;
18
+ return (t = (rn(e) ? e.ownerDocument : e.document) || window.document) == null ? void 0 : t.documentElement;
19
+ }
20
+ function rn(e) {
21
+ return St() ? e instanceof Node || e instanceof pe(e).Node : !1;
22
+ }
23
+ function Y(e) {
24
+ return St() ? e instanceof Element || e instanceof pe(e).Element : !1;
25
+ }
26
+ function ne(e) {
27
+ return St() ? e instanceof HTMLElement || e instanceof pe(e).HTMLElement : !1;
28
+ }
29
+ function Jt(e) {
30
+ return !St() || typeof ShadowRoot > "u" ? !1 : e instanceof ShadowRoot || e instanceof pe(e).ShadowRoot;
31
+ }
32
+ const Lr = /* @__PURE__ */ new Set(["inline", "contents"]);
33
+ function ut(e) {
34
+ const {
35
+ overflow: t,
36
+ overflowX: n,
37
+ overflowY: r,
38
+ display: o
39
+ } = we(e);
40
+ return /auto|scroll|overlay|hidden|clip/.test(t + r + n) && !Lr.has(o);
41
+ }
42
+ const kr = /* @__PURE__ */ new Set(["table", "td", "th"]);
43
+ function Fr(e) {
44
+ return kr.has(We(e));
45
+ }
46
+ const Nr = [":popover-open", ":modal"];
47
+ function Mt(e) {
48
+ return Nr.some((t) => {
49
+ try {
50
+ return e.matches(t);
51
+ } catch {
52
+ return !1;
53
+ }
54
+ });
55
+ }
56
+ const _r = ["transform", "translate", "scale", "rotate", "perspective"], Wr = ["transform", "translate", "scale", "rotate", "perspective", "filter"], Vr = ["paint", "layout", "strict", "content"];
57
+ function on(e) {
58
+ const t = Pt(), n = Y(e) ? we(e) : e;
59
+ return _r.some((r) => n[r] ? n[r] !== "none" : !1) || (n.containerType ? n.containerType !== "normal" : !1) || !t && (n.backdropFilter ? n.backdropFilter !== "none" : !1) || !t && (n.filter ? n.filter !== "none" : !1) || Wr.some((r) => (n.willChange || "").includes(r)) || Vr.some((r) => (n.contain || "").includes(r));
60
+ }
61
+ function Kr(e) {
62
+ let t = Pe(e);
63
+ for (; ne(t) && !Me(t); ) {
64
+ if (on(t))
65
+ return t;
66
+ if (Mt(t))
67
+ return null;
68
+ t = Pe(t);
69
+ }
70
+ return null;
71
+ }
72
+ function Pt() {
73
+ return typeof CSS > "u" || !CSS.supports ? !1 : CSS.supports("-webkit-backdrop-filter", "none");
74
+ }
75
+ const $r = /* @__PURE__ */ new Set(["html", "body", "#document"]);
76
+ function Me(e) {
77
+ return $r.has(We(e));
78
+ }
79
+ function we(e) {
80
+ return pe(e).getComputedStyle(e);
81
+ }
82
+ function Dt(e) {
83
+ return Y(e) ? {
84
+ scrollLeft: e.scrollLeft,
85
+ scrollTop: e.scrollTop
86
+ } : {
87
+ scrollLeft: e.scrollX,
88
+ scrollTop: e.scrollY
89
+ };
90
+ }
91
+ function Pe(e) {
92
+ if (We(e) === "html")
93
+ return e;
94
+ const t = (
95
+ // Step into the shadow DOM of the parent of a slotted node.
96
+ e.assignedSlot || // DOM Element detected.
97
+ e.parentNode || // ShadowRoot detected.
98
+ Jt(e) && e.host || // Fallback.
99
+ Te(e)
100
+ );
101
+ return Jt(t) ? t.host : t;
102
+ }
103
+ function Xn(e) {
104
+ const t = Pe(e);
105
+ return Me(t) ? e.ownerDocument ? e.ownerDocument.body : e.body : ne(t) && ut(t) ? t : Xn(t);
106
+ }
107
+ function ke(e, t, n) {
108
+ var r;
109
+ t === void 0 && (t = []), n === void 0 && (n = !0);
110
+ const o = Xn(e), s = o === ((r = e.ownerDocument) == null ? void 0 : r.body), i = pe(o);
111
+ if (s) {
112
+ const c = Qt(i);
113
+ return t.concat(i, i.visualViewport || [], ut(o) ? o : [], c && n ? ke(c) : []);
114
+ }
115
+ return t.concat(o, ke(o, [], n));
116
+ }
117
+ function Qt(e) {
118
+ return e.parent && Object.getPrototypeOf(e.parent) ? e.frameElement : null;
119
+ }
120
+ const Br = ["top", "right", "bottom", "left"], pn = ["start", "end"], gn = /* @__PURE__ */ Br.reduce((e, t) => e.concat(t, t + "-" + pn[0], t + "-" + pn[1]), []), Je = Math.min, he = Math.max, xt = Math.round, je = Math.floor, Ee = (e) => ({
121
+ x: e,
122
+ y: e
123
+ }), Hr = {
124
+ left: "right",
125
+ right: "left",
126
+ bottom: "top",
127
+ top: "bottom"
128
+ }, zr = {
129
+ start: "end",
130
+ end: "start"
131
+ };
132
+ function hn(e, t, n) {
133
+ return he(e, Je(t, n));
134
+ }
135
+ function Qe(e, t) {
136
+ return typeof e == "function" ? e(t) : e;
137
+ }
138
+ function Ie(e) {
139
+ return e.split("-")[0];
140
+ }
141
+ function Ce(e) {
142
+ return e.split("-")[1];
143
+ }
144
+ function Yn(e) {
145
+ return e === "x" ? "y" : "x";
146
+ }
147
+ function Jn(e) {
148
+ return e === "y" ? "height" : "width";
149
+ }
150
+ const Ur = /* @__PURE__ */ new Set(["top", "bottom"]);
151
+ function Se(e) {
152
+ return Ur.has(Ie(e)) ? "y" : "x";
153
+ }
154
+ function Qn(e) {
155
+ return Yn(Se(e));
156
+ }
157
+ function Zn(e, t, n) {
158
+ n === void 0 && (n = !1);
159
+ const r = Ce(e), o = Qn(e), s = Jn(o);
160
+ let i = o === "x" ? r === (n ? "end" : "start") ? "right" : "left" : r === "start" ? "bottom" : "top";
161
+ return t.reference[s] > t.floating[s] && (i = Et(i)), [i, Et(i)];
162
+ }
163
+ function Gr(e) {
164
+ const t = Et(e);
165
+ return [Rt(e), t, Rt(t)];
166
+ }
167
+ function Rt(e) {
168
+ return e.replace(/start|end/g, (t) => zr[t]);
169
+ }
170
+ const vn = ["left", "right"], bn = ["right", "left"], jr = ["top", "bottom"], qr = ["bottom", "top"];
171
+ function Xr(e, t, n) {
172
+ switch (e) {
173
+ case "top":
174
+ case "bottom":
175
+ return n ? t ? bn : vn : t ? vn : bn;
176
+ case "left":
177
+ case "right":
178
+ return t ? jr : qr;
179
+ default:
180
+ return [];
181
+ }
182
+ }
183
+ function Yr(e, t, n, r) {
184
+ const o = Ce(e);
185
+ let s = Xr(Ie(e), n === "start", r);
186
+ return o && (s = s.map((i) => i + "-" + o), t && (s = s.concat(s.map(Rt)))), s;
187
+ }
188
+ function Et(e) {
189
+ return e.replace(/left|right|bottom|top/g, (t) => Hr[t]);
190
+ }
191
+ function Jr(e) {
192
+ return {
193
+ top: 0,
194
+ right: 0,
195
+ bottom: 0,
196
+ left: 0,
197
+ ...e
198
+ };
199
+ }
200
+ function Qr(e) {
201
+ return typeof e != "number" ? Jr(e) : {
202
+ top: e,
203
+ right: e,
204
+ bottom: e,
205
+ left: e
206
+ };
207
+ }
208
+ function Ct(e) {
209
+ const {
210
+ x: t,
211
+ y: n,
212
+ width: r,
213
+ height: o
214
+ } = e;
215
+ return {
216
+ width: r,
217
+ height: o,
218
+ top: n,
219
+ left: t,
220
+ right: t + r,
221
+ bottom: n + o,
222
+ x: t,
223
+ y: n
224
+ };
225
+ }
226
+ function sn() {
227
+ const e = navigator.userAgentData;
228
+ return e != null && e.platform ? e.platform : navigator.platform;
229
+ }
230
+ function er() {
231
+ const e = navigator.userAgentData;
232
+ return e && Array.isArray(e.brands) ? e.brands.map((t) => {
233
+ let {
234
+ brand: n,
235
+ version: r
236
+ } = t;
237
+ return n + "/" + r;
238
+ }).join(" ") : navigator.userAgent;
239
+ }
240
+ function tr() {
241
+ return /apple/i.test(navigator.vendor);
242
+ }
243
+ function Zt() {
244
+ const e = /android/i;
245
+ return e.test(sn()) || e.test(er());
246
+ }
247
+ function Zr() {
248
+ return sn().toLowerCase().startsWith("mac") && !navigator.maxTouchPoints;
249
+ }
250
+ function nr() {
251
+ return er().includes("jsdom/");
252
+ }
253
+ const yn = "data-floating-ui-focusable", eo = "input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])", Wt = "ArrowLeft", Vt = "ArrowRight", to = "ArrowUp", no = "ArrowDown";
254
+ function Re(e) {
255
+ let t = e.activeElement;
256
+ for (; ((n = t) == null || (n = n.shadowRoot) == null ? void 0 : n.activeElement) != null; ) {
257
+ var n;
258
+ t = t.shadowRoot.activeElement;
259
+ }
260
+ return t;
261
+ }
262
+ function ce(e, t) {
263
+ if (!e || !t)
264
+ return !1;
265
+ const n = t.getRootNode == null ? void 0 : t.getRootNode();
266
+ if (e.contains(t))
267
+ return !0;
268
+ if (n && Jt(n)) {
269
+ let r = t;
270
+ for (; r; ) {
271
+ if (e === r)
272
+ return !0;
273
+ r = r.parentNode || r.host;
274
+ }
275
+ }
276
+ return !1;
277
+ }
278
+ function Ae(e) {
279
+ return "composedPath" in e ? e.composedPath()[0] : e.target;
280
+ }
281
+ function Kt(e, t) {
282
+ if (t == null)
283
+ return !1;
284
+ if ("composedPath" in e)
285
+ return e.composedPath().includes(t);
286
+ const n = e;
287
+ return n.target != null && t.contains(n.target);
288
+ }
289
+ function ro(e) {
290
+ return e.matches("html,body");
291
+ }
292
+ function le(e) {
293
+ return e?.ownerDocument || document;
294
+ }
295
+ function cn(e) {
296
+ return ne(e) && e.matches(eo);
297
+ }
298
+ function en(e) {
299
+ return e ? e.getAttribute("role") === "combobox" && cn(e) : !1;
300
+ }
301
+ function oo(e) {
302
+ if (!e || nr()) return !0;
303
+ try {
304
+ return e.matches(":focus-visible");
305
+ } catch {
306
+ return !0;
307
+ }
308
+ }
309
+ function It(e) {
310
+ return e ? e.hasAttribute(yn) ? e : e.querySelector("[" + yn + "]") || e : null;
311
+ }
312
+ function $e(e, t, n) {
313
+ return n === void 0 && (n = !0), e.filter((o) => {
314
+ var s;
315
+ return o.parentId === t && (!n || ((s = o.context) == null ? void 0 : s.open));
316
+ }).flatMap((o) => [o, ...$e(e, o.id, n)]);
317
+ }
318
+ function io(e, t) {
319
+ let n, r = -1;
320
+ function o(s, i) {
321
+ i > r && (n = s, r = i), $e(e, s).forEach((a) => {
322
+ o(a.id, i + 1);
323
+ });
324
+ }
325
+ return o(t, 0), e.find((s) => s.id === n);
326
+ }
327
+ function wn(e, t) {
328
+ var n;
329
+ let r = [], o = (n = e.find((s) => s.id === t)) == null ? void 0 : n.parentId;
330
+ for (; o; ) {
331
+ const s = e.find((i) => i.id === o);
332
+ o = s?.parentId, s && (r = r.concat(s));
333
+ }
334
+ return r;
335
+ }
336
+ function de(e) {
337
+ e.preventDefault(), e.stopPropagation();
338
+ }
339
+ function so(e) {
340
+ return "nativeEvent" in e;
341
+ }
342
+ function rr(e) {
343
+ return e.mozInputSource === 0 && e.isTrusted ? !0 : Zt() && e.pointerType ? e.type === "click" && e.buttons === 1 : e.detail === 0 && !e.pointerType;
344
+ }
345
+ function or(e) {
346
+ return nr() ? !1 : !Zt() && e.width === 0 && e.height === 0 || Zt() && e.width === 1 && e.height === 1 && e.pressure === 0 && e.detail === 0 && e.pointerType === "mouse" || // iOS VoiceOver returns 0.333• for width/height.
347
+ e.width < 1 && e.height < 1 && e.pressure === 0 && e.detail === 0 && e.pointerType === "touch";
348
+ }
349
+ function it(e, t) {
350
+ const n = ["mouse", "pen"];
351
+ return t || n.push("", void 0), n.includes(e);
352
+ }
353
+ var co = typeof document < "u", uo = function() {
354
+ }, X = co ? Gn : uo;
355
+ const lo = {
356
+ ...d
357
+ };
358
+ function ye(e) {
359
+ const t = d.useRef(e);
360
+ return X(() => {
361
+ t.current = e;
362
+ }), t;
363
+ }
364
+ const ao = lo.useInsertionEffect, fo = ao || ((e) => e());
365
+ function ie(e) {
366
+ const t = d.useRef(() => {
367
+ if (process.env.NODE_ENV !== "production")
368
+ throw new Error("Cannot call an event handler while rendering.");
369
+ });
370
+ return fo(() => {
371
+ t.current = e;
372
+ }), d.useCallback(function() {
373
+ for (var n = arguments.length, r = new Array(n), o = 0; o < n; o++)
374
+ r[o] = arguments[o];
375
+ return t.current == null ? void 0 : t.current(...r);
376
+ }, []);
377
+ }
378
+ function pt(e, t, n) {
379
+ return Math.floor(e / t) !== n;
380
+ }
381
+ function qe(e, t) {
382
+ return t < 0 || t >= e.current.length;
383
+ }
384
+ function yt(e, t) {
385
+ return ue(e, {
386
+ disabledIndices: t
387
+ });
388
+ }
389
+ function tn(e, t) {
390
+ return ue(e, {
391
+ decrement: !0,
392
+ startingIndex: e.current.length,
393
+ disabledIndices: t
394
+ });
395
+ }
396
+ function ue(e, t) {
397
+ let {
398
+ startingIndex: n = -1,
399
+ decrement: r = !1,
400
+ disabledIndices: o,
401
+ amount: s = 1
402
+ } = t === void 0 ? {} : t, i = n;
403
+ do
404
+ i += r ? -s : s;
405
+ while (i >= 0 && i <= e.current.length - 1 && Be(e, i, o));
406
+ return i;
407
+ }
408
+ function ir(e, t) {
409
+ let {
410
+ event: n,
411
+ orientation: r,
412
+ loop: o,
413
+ rtl: s,
414
+ cols: i,
415
+ disabledIndices: c,
416
+ minIndex: a,
417
+ maxIndex: l,
418
+ prevIndex: u,
419
+ stopEvent: m = !1
420
+ } = t, p = u;
421
+ if (n.key === to) {
422
+ if (m && de(n), u === -1)
423
+ p = l;
424
+ else if (p = ue(e, {
425
+ startingIndex: p,
426
+ amount: i,
427
+ decrement: !0,
428
+ disabledIndices: c
429
+ }), o && (u - i < a || p < 0)) {
430
+ const f = u % i, v = l % i, g = l - (v - f);
431
+ v === f ? p = l : p = v > f ? g : g - i;
432
+ }
433
+ qe(e, p) && (p = u);
434
+ }
435
+ if (n.key === no && (m && de(n), u === -1 ? p = a : (p = ue(e, {
436
+ startingIndex: u,
437
+ amount: i,
438
+ disabledIndices: c
439
+ }), o && u + i > l && (p = ue(e, {
440
+ startingIndex: u % i - i,
441
+ amount: i,
442
+ disabledIndices: c
443
+ }))), qe(e, p) && (p = u)), r === "both") {
444
+ const f = je(u / i);
445
+ n.key === (s ? Wt : Vt) && (m && de(n), u % i !== i - 1 ? (p = ue(e, {
446
+ startingIndex: u,
447
+ disabledIndices: c
448
+ }), o && pt(p, i, f) && (p = ue(e, {
449
+ startingIndex: u - u % i - 1,
450
+ disabledIndices: c
451
+ }))) : o && (p = ue(e, {
452
+ startingIndex: u - u % i - 1,
453
+ disabledIndices: c
454
+ })), pt(p, i, f) && (p = u)), n.key === (s ? Vt : Wt) && (m && de(n), u % i !== 0 ? (p = ue(e, {
455
+ startingIndex: u,
456
+ decrement: !0,
457
+ disabledIndices: c
458
+ }), o && pt(p, i, f) && (p = ue(e, {
459
+ startingIndex: u + (i - u % i),
460
+ decrement: !0,
461
+ disabledIndices: c
462
+ }))) : o && (p = ue(e, {
463
+ startingIndex: u + (i - u % i),
464
+ decrement: !0,
465
+ disabledIndices: c
466
+ })), pt(p, i, f) && (p = u));
467
+ const v = je(l / i) === f;
468
+ qe(e, p) && (o && v ? p = n.key === (s ? Vt : Wt) ? l : ue(e, {
469
+ startingIndex: u - u % i - 1,
470
+ disabledIndices: c
471
+ }) : p = u);
472
+ }
473
+ return p;
474
+ }
475
+ function sr(e, t, n) {
476
+ const r = [];
477
+ let o = 0;
478
+ return e.forEach((s, i) => {
479
+ let {
480
+ width: c,
481
+ height: a
482
+ } = s;
483
+ if (c > t && process.env.NODE_ENV !== "production")
484
+ throw new Error("[Floating UI]: Invalid grid - item width at index " + i + " is greater than grid columns");
485
+ let l = !1;
486
+ for (n && (o = 0); !l; ) {
487
+ const u = [];
488
+ for (let m = 0; m < c; m++)
489
+ for (let p = 0; p < a; p++)
490
+ u.push(o + m + p * t);
491
+ o % t + c <= t && u.every((m) => r[m] == null) ? (u.forEach((m) => {
492
+ r[m] = i;
493
+ }), l = !0) : o++;
494
+ }
495
+ }), [...r];
496
+ }
497
+ function cr(e, t, n, r, o) {
498
+ if (e === -1) return -1;
499
+ const s = n.indexOf(e), i = t[e];
500
+ switch (o) {
501
+ case "tl":
502
+ return s;
503
+ case "tr":
504
+ return i ? s + i.width - 1 : s;
505
+ case "bl":
506
+ return i ? s + (i.height - 1) * r : s;
507
+ case "br":
508
+ return n.lastIndexOf(e);
509
+ }
510
+ }
511
+ function ur(e, t) {
512
+ return t.flatMap((n, r) => e.includes(n) ? [r] : []);
513
+ }
514
+ function Be(e, t, n) {
515
+ if (typeof n == "function")
516
+ return n(t);
517
+ if (n)
518
+ return n.includes(t);
519
+ const r = e.current[t];
520
+ return r == null || r.hasAttribute("disabled") || r.getAttribute("aria-disabled") === "true";
521
+ }
522
+ const lt = () => ({
523
+ getShadowRoot: !0,
524
+ displayCheck: (
525
+ // JSDOM does not support the `tabbable` library. To solve this we can
526
+ // check if `ResizeObserver` is a real function (not polyfilled), which
527
+ // determines if the current environment is JSDOM-like.
528
+ typeof ResizeObserver == "function" && ResizeObserver.toString().includes("[native code]") ? "full" : "none"
529
+ )
530
+ });
531
+ function lr(e, t) {
532
+ const n = At(e, lt()), r = n.length;
533
+ if (r === 0) return;
534
+ const o = Re(le(e)), s = n.indexOf(o), i = s === -1 ? t === 1 ? 0 : r - 1 : s + t;
535
+ return n[i];
536
+ }
537
+ function ar(e) {
538
+ return lr(le(e).body, 1) || e;
539
+ }
540
+ function fr(e) {
541
+ return lr(le(e).body, -1) || e;
542
+ }
543
+ function ot(e, t) {
544
+ const n = t || e.currentTarget, r = e.relatedTarget;
545
+ return !r || !ce(n, r);
546
+ }
547
+ function mo(e) {
548
+ At(e, lt()).forEach((n) => {
549
+ n.dataset.tabindex = n.getAttribute("tabindex") || "", n.setAttribute("tabindex", "-1");
550
+ });
551
+ }
552
+ function xn(e) {
553
+ e.querySelectorAll("[data-tabindex]").forEach((n) => {
554
+ const r = n.dataset.tabindex;
555
+ delete n.dataset.tabindex, r ? n.setAttribute("tabindex", r) : n.removeAttribute("tabindex");
556
+ });
557
+ }
558
+ function Rn(e, t, n) {
559
+ let {
560
+ reference: r,
561
+ floating: o
562
+ } = e;
563
+ const s = Se(t), i = Qn(t), c = Jn(i), a = Ie(t), l = s === "y", u = r.x + r.width / 2 - o.width / 2, m = r.y + r.height / 2 - o.height / 2, p = r[c] / 2 - o[c] / 2;
564
+ let f;
565
+ switch (a) {
566
+ case "top":
567
+ f = {
568
+ x: u,
569
+ y: r.y - o.height
570
+ };
571
+ break;
572
+ case "bottom":
573
+ f = {
574
+ x: u,
575
+ y: r.y + r.height
576
+ };
577
+ break;
578
+ case "right":
579
+ f = {
580
+ x: r.x + r.width,
581
+ y: m
582
+ };
583
+ break;
584
+ case "left":
585
+ f = {
586
+ x: r.x - o.width,
587
+ y: m
588
+ };
589
+ break;
590
+ default:
591
+ f = {
592
+ x: r.x,
593
+ y: r.y
594
+ };
595
+ }
596
+ switch (Ce(t)) {
597
+ case "start":
598
+ f[i] -= p * (n && l ? -1 : 1);
599
+ break;
600
+ case "end":
601
+ f[i] += p * (n && l ? -1 : 1);
602
+ break;
603
+ }
604
+ return f;
605
+ }
606
+ const po = async (e, t, n) => {
607
+ const {
608
+ placement: r = "bottom",
609
+ strategy: o = "absolute",
610
+ middleware: s = [],
611
+ platform: i
612
+ } = n, c = s.filter(Boolean), a = await (i.isRTL == null ? void 0 : i.isRTL(t));
613
+ let l = await i.getElementRects({
614
+ reference: e,
615
+ floating: t,
616
+ strategy: o
617
+ }), {
618
+ x: u,
619
+ y: m
620
+ } = Rn(l, r, a), p = r, f = {}, v = 0;
621
+ for (let g = 0; g < c.length; g++) {
622
+ const {
623
+ name: y,
624
+ fn: x
625
+ } = c[g], {
626
+ x: b,
627
+ y: w,
628
+ data: C,
629
+ reset: M
630
+ } = await x({
631
+ x: u,
632
+ y: m,
633
+ initialPlacement: r,
634
+ placement: p,
635
+ strategy: o,
636
+ middlewareData: f,
637
+ rects: l,
638
+ platform: i,
639
+ elements: {
640
+ reference: e,
641
+ floating: t
642
+ }
643
+ });
644
+ u = b ?? u, m = w ?? m, f = {
645
+ ...f,
646
+ [y]: {
647
+ ...f[y],
648
+ ...C
649
+ }
650
+ }, M && v <= 50 && (v++, typeof M == "object" && (M.placement && (p = M.placement), M.rects && (l = M.rects === !0 ? await i.getElementRects({
651
+ reference: e,
652
+ floating: t,
653
+ strategy: o
654
+ }) : M.rects), {
655
+ x: u,
656
+ y: m
657
+ } = Rn(l, p, a)), g = -1);
658
+ }
659
+ return {
660
+ x: u,
661
+ y: m,
662
+ placement: p,
663
+ strategy: o,
664
+ middlewareData: f
665
+ };
666
+ };
667
+ async function Lt(e, t) {
668
+ var n;
669
+ t === void 0 && (t = {});
670
+ const {
671
+ x: r,
672
+ y: o,
673
+ platform: s,
674
+ rects: i,
675
+ elements: c,
676
+ strategy: a
677
+ } = e, {
678
+ boundary: l = "clippingAncestors",
679
+ rootBoundary: u = "viewport",
680
+ elementContext: m = "floating",
681
+ altBoundary: p = !1,
682
+ padding: f = 0
683
+ } = Qe(t, e), v = Qr(f), y = c[p ? m === "floating" ? "reference" : "floating" : m], x = Ct(await s.getClippingRect({
684
+ element: (n = await (s.isElement == null ? void 0 : s.isElement(y))) == null || n ? y : y.contextElement || await (s.getDocumentElement == null ? void 0 : s.getDocumentElement(c.floating)),
685
+ boundary: l,
686
+ rootBoundary: u,
687
+ strategy: a
688
+ })), b = m === "floating" ? {
689
+ x: r,
690
+ y: o,
691
+ width: i.floating.width,
692
+ height: i.floating.height
693
+ } : i.reference, w = await (s.getOffsetParent == null ? void 0 : s.getOffsetParent(c.floating)), C = await (s.isElement == null ? void 0 : s.isElement(w)) ? await (s.getScale == null ? void 0 : s.getScale(w)) || {
694
+ x: 1,
695
+ y: 1
696
+ } : {
697
+ x: 1,
698
+ y: 1
699
+ }, M = Ct(s.convertOffsetParentRelativeRectToViewportRelativeRect ? await s.convertOffsetParentRelativeRectToViewportRelativeRect({
700
+ elements: c,
701
+ rect: b,
702
+ offsetParent: w,
703
+ strategy: a
704
+ }) : b);
705
+ return {
706
+ top: (x.top - M.top + v.top) / C.y,
707
+ bottom: (M.bottom - x.bottom + v.bottom) / C.y,
708
+ left: (x.left - M.left + v.left) / C.x,
709
+ right: (M.right - x.right + v.right) / C.x
710
+ };
711
+ }
712
+ function go(e, t, n) {
713
+ return (e ? [...n.filter((o) => Ce(o) === e), ...n.filter((o) => Ce(o) !== e)] : n.filter((o) => Ie(o) === o)).filter((o) => e ? Ce(o) === e || (t ? Rt(o) !== o : !1) : !0);
714
+ }
715
+ const ho = function(e) {
716
+ return e === void 0 && (e = {}), {
717
+ name: "autoPlacement",
718
+ options: e,
719
+ async fn(t) {
720
+ var n, r, o;
721
+ const {
722
+ rects: s,
723
+ middlewareData: i,
724
+ placement: c,
725
+ platform: a,
726
+ elements: l
727
+ } = t, {
728
+ crossAxis: u = !1,
729
+ alignment: m,
730
+ allowedPlacements: p = gn,
731
+ autoAlignment: f = !0,
732
+ ...v
733
+ } = Qe(e, t), g = m !== void 0 || p === gn ? go(m || null, f, p) : p, y = await Lt(t, v), x = ((n = i.autoPlacement) == null ? void 0 : n.index) || 0, b = g[x];
734
+ if (b == null)
735
+ return {};
736
+ const w = Zn(b, s, await (a.isRTL == null ? void 0 : a.isRTL(l.floating)));
737
+ if (c !== b)
738
+ return {
739
+ reset: {
740
+ placement: g[0]
741
+ }
742
+ };
743
+ const C = [y[Ie(b)], y[w[0]], y[w[1]]], M = [...((r = i.autoPlacement) == null ? void 0 : r.overflows) || [], {
744
+ placement: b,
745
+ overflows: C
746
+ }], k = g[x + 1];
747
+ if (k)
748
+ return {
749
+ data: {
750
+ index: x + 1,
751
+ overflows: M
752
+ },
753
+ reset: {
754
+ placement: k
755
+ }
756
+ };
757
+ const N = M.map((L) => {
758
+ const _ = Ce(L.placement);
759
+ return [L.placement, _ && u ? (
760
+ // Check along the mainAxis and main crossAxis side.
761
+ L.overflows.slice(0, 2).reduce((G, W) => G + W, 0)
762
+ ) : (
763
+ // Check only the mainAxis.
764
+ L.overflows[0]
765
+ ), L.overflows];
766
+ }).sort((L, _) => L[1] - _[1]), V = ((o = N.filter((L) => L[2].slice(
767
+ 0,
768
+ // Aligned placements should not check their opposite crossAxis
769
+ // side.
770
+ Ce(L[0]) ? 2 : 3
771
+ ).every((_) => _ <= 0))[0]) == null ? void 0 : o[0]) || N[0][0];
772
+ return V !== c ? {
773
+ data: {
774
+ index: x + 1,
775
+ overflows: M
776
+ },
777
+ reset: {
778
+ placement: V
779
+ }
780
+ } : {};
781
+ }
782
+ };
783
+ }, vo = function(e) {
784
+ return e === void 0 && (e = {}), {
785
+ name: "flip",
786
+ options: e,
787
+ async fn(t) {
788
+ var n, r;
789
+ const {
790
+ placement: o,
791
+ middlewareData: s,
792
+ rects: i,
793
+ initialPlacement: c,
794
+ platform: a,
795
+ elements: l
796
+ } = t, {
797
+ mainAxis: u = !0,
798
+ crossAxis: m = !0,
799
+ fallbackPlacements: p,
800
+ fallbackStrategy: f = "bestFit",
801
+ fallbackAxisSideDirection: v = "none",
802
+ flipAlignment: g = !0,
803
+ ...y
804
+ } = Qe(e, t);
805
+ if ((n = s.arrow) != null && n.alignmentOffset)
806
+ return {};
807
+ const x = Ie(o), b = Se(c), w = Ie(c) === c, C = await (a.isRTL == null ? void 0 : a.isRTL(l.floating)), M = p || (w || !g ? [Et(c)] : Gr(c)), k = v !== "none";
808
+ !p && k && M.push(...Yr(c, g, v, C));
809
+ const N = [c, ...M], P = await Lt(t, y), V = [];
810
+ let L = ((r = s.flip) == null ? void 0 : r.overflows) || [];
811
+ if (u && V.push(P[x]), m) {
812
+ const R = Zn(o, i, C);
813
+ V.push(P[R[0]], P[R[1]]);
814
+ }
815
+ if (L = [...L, {
816
+ placement: o,
817
+ overflows: V
818
+ }], !V.every((R) => R <= 0)) {
819
+ var _, G;
820
+ const R = (((_ = s.flip) == null ? void 0 : _.index) || 0) + 1, E = N[R];
821
+ if (E && (!(m === "alignment" ? b !== Se(E) : !1) || // We leave the current main axis only if every placement on that axis
822
+ // overflows the main axis.
823
+ L.every((h) => Se(h.placement) === b ? h.overflows[0] > 0 : !0)))
824
+ return {
825
+ data: {
826
+ index: R,
827
+ overflows: L
828
+ },
829
+ reset: {
830
+ placement: E
831
+ }
832
+ };
833
+ let $ = (G = L.filter((T) => T.overflows[0] <= 0).sort((T, h) => T.overflows[1] - h.overflows[1])[0]) == null ? void 0 : G.placement;
834
+ if (!$)
835
+ switch (f) {
836
+ case "bestFit": {
837
+ var W;
838
+ const T = (W = L.filter((h) => {
839
+ if (k) {
840
+ const I = Se(h.placement);
841
+ return I === b || // Create a bias to the `y` side axis due to horizontal
842
+ // reading directions favoring greater width.
843
+ I === "y";
844
+ }
845
+ return !0;
846
+ }).map((h) => [h.placement, h.overflows.filter((I) => I > 0).reduce((I, D) => I + D, 0)]).sort((h, I) => h[1] - I[1])[0]) == null ? void 0 : W[0];
847
+ T && ($ = T);
848
+ break;
849
+ }
850
+ case "initialPlacement":
851
+ $ = c;
852
+ break;
853
+ }
854
+ if (o !== $)
855
+ return {
856
+ reset: {
857
+ placement: $
858
+ }
859
+ };
860
+ }
861
+ return {};
862
+ }
863
+ };
864
+ }, bo = /* @__PURE__ */ new Set(["left", "top"]);
865
+ async function yo(e, t) {
866
+ const {
867
+ placement: n,
868
+ platform: r,
869
+ elements: o
870
+ } = e, s = await (r.isRTL == null ? void 0 : r.isRTL(o.floating)), i = Ie(n), c = Ce(n), a = Se(n) === "y", l = bo.has(i) ? -1 : 1, u = s && a ? -1 : 1, m = Qe(t, e);
871
+ let {
872
+ mainAxis: p,
873
+ crossAxis: f,
874
+ alignmentAxis: v
875
+ } = typeof m == "number" ? {
876
+ mainAxis: m,
877
+ crossAxis: 0,
878
+ alignmentAxis: null
879
+ } : {
880
+ mainAxis: m.mainAxis || 0,
881
+ crossAxis: m.crossAxis || 0,
882
+ alignmentAxis: m.alignmentAxis
883
+ };
884
+ return c && typeof v == "number" && (f = c === "end" ? v * -1 : v), a ? {
885
+ x: f * u,
886
+ y: p * l
887
+ } : {
888
+ x: p * l,
889
+ y: f * u
890
+ };
891
+ }
892
+ const wo = function(e) {
893
+ return e === void 0 && (e = 0), {
894
+ name: "offset",
895
+ options: e,
896
+ async fn(t) {
897
+ var n, r;
898
+ const {
899
+ x: o,
900
+ y: s,
901
+ placement: i,
902
+ middlewareData: c
903
+ } = t, a = await yo(t, e);
904
+ return i === ((n = c.offset) == null ? void 0 : n.placement) && (r = c.arrow) != null && r.alignmentOffset ? {} : {
905
+ x: o + a.x,
906
+ y: s + a.y,
907
+ data: {
908
+ ...a,
909
+ placement: i
910
+ }
911
+ };
912
+ }
913
+ };
914
+ }, xo = function(e) {
915
+ return e === void 0 && (e = {}), {
916
+ name: "shift",
917
+ options: e,
918
+ async fn(t) {
919
+ const {
920
+ x: n,
921
+ y: r,
922
+ placement: o
923
+ } = t, {
924
+ mainAxis: s = !0,
925
+ crossAxis: i = !1,
926
+ limiter: c = {
927
+ fn: (y) => {
928
+ let {
929
+ x,
930
+ y: b
931
+ } = y;
932
+ return {
933
+ x,
934
+ y: b
935
+ };
936
+ }
937
+ },
938
+ ...a
939
+ } = Qe(e, t), l = {
940
+ x: n,
941
+ y: r
942
+ }, u = await Lt(t, a), m = Se(Ie(o)), p = Yn(m);
943
+ let f = l[p], v = l[m];
944
+ if (s) {
945
+ const y = p === "y" ? "top" : "left", x = p === "y" ? "bottom" : "right", b = f + u[y], w = f - u[x];
946
+ f = hn(b, f, w);
947
+ }
948
+ if (i) {
949
+ const y = m === "y" ? "top" : "left", x = m === "y" ? "bottom" : "right", b = v + u[y], w = v - u[x];
950
+ v = hn(b, v, w);
951
+ }
952
+ const g = c.fn({
953
+ ...t,
954
+ [p]: f,
955
+ [m]: v
956
+ });
957
+ return {
958
+ ...g,
959
+ data: {
960
+ x: g.x - n,
961
+ y: g.y - r,
962
+ enabled: {
963
+ [p]: s,
964
+ [m]: i
965
+ }
966
+ }
967
+ };
968
+ }
969
+ };
970
+ }, Ro = function(e) {
971
+ return e === void 0 && (e = {}), {
972
+ name: "size",
973
+ options: e,
974
+ async fn(t) {
975
+ var n, r;
976
+ const {
977
+ placement: o,
978
+ rects: s,
979
+ platform: i,
980
+ elements: c
981
+ } = t, {
982
+ apply: a = () => {
983
+ },
984
+ ...l
985
+ } = Qe(e, t), u = await Lt(t, l), m = Ie(o), p = Ce(o), f = Se(o) === "y", {
986
+ width: v,
987
+ height: g
988
+ } = s.floating;
989
+ let y, x;
990
+ m === "top" || m === "bottom" ? (y = m, x = p === (await (i.isRTL == null ? void 0 : i.isRTL(c.floating)) ? "start" : "end") ? "left" : "right") : (x = m, y = p === "end" ? "top" : "bottom");
991
+ const b = g - u.top - u.bottom, w = v - u.left - u.right, C = Je(g - u[y], b), M = Je(v - u[x], w), k = !t.middlewareData.shift;
992
+ let N = C, P = M;
993
+ if ((n = t.middlewareData.shift) != null && n.enabled.x && (P = w), (r = t.middlewareData.shift) != null && r.enabled.y && (N = b), k && !p) {
994
+ const L = he(u.left, 0), _ = he(u.right, 0), G = he(u.top, 0), W = he(u.bottom, 0);
995
+ f ? P = v - 2 * (L !== 0 || _ !== 0 ? L + _ : he(u.left, u.right)) : N = g - 2 * (G !== 0 || W !== 0 ? G + W : he(u.top, u.bottom));
996
+ }
997
+ await a({
998
+ ...t,
999
+ availableWidth: P,
1000
+ availableHeight: N
1001
+ });
1002
+ const V = await i.getDimensions(c.floating);
1003
+ return v !== V.width || g !== V.height ? {
1004
+ reset: {
1005
+ rects: !0
1006
+ }
1007
+ } : {};
1008
+ }
1009
+ };
1010
+ };
1011
+ function dr(e) {
1012
+ const t = we(e);
1013
+ let n = parseFloat(t.width) || 0, r = parseFloat(t.height) || 0;
1014
+ const o = ne(e), s = o ? e.offsetWidth : n, i = o ? e.offsetHeight : r, c = xt(n) !== s || xt(r) !== i;
1015
+ return c && (n = s, r = i), {
1016
+ width: n,
1017
+ height: r,
1018
+ $: c
1019
+ };
1020
+ }
1021
+ function un(e) {
1022
+ return Y(e) ? e : e.contextElement;
1023
+ }
1024
+ function Xe(e) {
1025
+ const t = un(e);
1026
+ if (!ne(t))
1027
+ return Ee(1);
1028
+ const n = t.getBoundingClientRect(), {
1029
+ width: r,
1030
+ height: o,
1031
+ $: s
1032
+ } = dr(t);
1033
+ let i = (s ? xt(n.width) : n.width) / r, c = (s ? xt(n.height) : n.height) / o;
1034
+ return (!i || !Number.isFinite(i)) && (i = 1), (!c || !Number.isFinite(c)) && (c = 1), {
1035
+ x: i,
1036
+ y: c
1037
+ };
1038
+ }
1039
+ const Eo = /* @__PURE__ */ Ee(0);
1040
+ function mr(e) {
1041
+ const t = pe(e);
1042
+ return !Pt() || !t.visualViewport ? Eo : {
1043
+ x: t.visualViewport.offsetLeft,
1044
+ y: t.visualViewport.offsetTop
1045
+ };
1046
+ }
1047
+ function Co(e, t, n) {
1048
+ return t === void 0 && (t = !1), !n || t && n !== pe(e) ? !1 : t;
1049
+ }
1050
+ function He(e, t, n, r) {
1051
+ t === void 0 && (t = !1), n === void 0 && (n = !1);
1052
+ const o = e.getBoundingClientRect(), s = un(e);
1053
+ let i = Ee(1);
1054
+ t && (r ? Y(r) && (i = Xe(r)) : i = Xe(e));
1055
+ const c = Co(s, n, r) ? mr(s) : Ee(0);
1056
+ let a = (o.left + c.x) / i.x, l = (o.top + c.y) / i.y, u = o.width / i.x, m = o.height / i.y;
1057
+ if (s) {
1058
+ const p = pe(s), f = r && Y(r) ? pe(r) : r;
1059
+ let v = p, g = Qt(v);
1060
+ for (; g && r && f !== v; ) {
1061
+ const y = Xe(g), x = g.getBoundingClientRect(), b = we(g), w = x.left + (g.clientLeft + parseFloat(b.paddingLeft)) * y.x, C = x.top + (g.clientTop + parseFloat(b.paddingTop)) * y.y;
1062
+ a *= y.x, l *= y.y, u *= y.x, m *= y.y, a += w, l += C, v = pe(g), g = Qt(v);
1063
+ }
1064
+ }
1065
+ return Ct({
1066
+ width: u,
1067
+ height: m,
1068
+ x: a,
1069
+ y: l
1070
+ });
1071
+ }
1072
+ function kt(e, t) {
1073
+ const n = Dt(e).scrollLeft;
1074
+ return t ? t.left + n : He(Te(e)).left + n;
1075
+ }
1076
+ function pr(e, t) {
1077
+ const n = e.getBoundingClientRect(), r = n.left + t.scrollLeft - kt(e, n), o = n.top + t.scrollTop;
1078
+ return {
1079
+ x: r,
1080
+ y: o
1081
+ };
1082
+ }
1083
+ function Io(e) {
1084
+ let {
1085
+ elements: t,
1086
+ rect: n,
1087
+ offsetParent: r,
1088
+ strategy: o
1089
+ } = e;
1090
+ const s = o === "fixed", i = Te(r), c = t ? Mt(t.floating) : !1;
1091
+ if (r === i || c && s)
1092
+ return n;
1093
+ let a = {
1094
+ scrollLeft: 0,
1095
+ scrollTop: 0
1096
+ }, l = Ee(1);
1097
+ const u = Ee(0), m = ne(r);
1098
+ if ((m || !m && !s) && ((We(r) !== "body" || ut(i)) && (a = Dt(r)), ne(r))) {
1099
+ const f = He(r);
1100
+ l = Xe(r), u.x = f.x + r.clientLeft, u.y = f.y + r.clientTop;
1101
+ }
1102
+ const p = i && !m && !s ? pr(i, a) : Ee(0);
1103
+ return {
1104
+ width: n.width * l.x,
1105
+ height: n.height * l.y,
1106
+ x: n.x * l.x - a.scrollLeft * l.x + u.x + p.x,
1107
+ y: n.y * l.y - a.scrollTop * l.y + u.y + p.y
1108
+ };
1109
+ }
1110
+ function To(e) {
1111
+ return Array.from(e.getClientRects());
1112
+ }
1113
+ function Oo(e) {
1114
+ const t = Te(e), n = Dt(e), r = e.ownerDocument.body, o = he(t.scrollWidth, t.clientWidth, r.scrollWidth, r.clientWidth), s = he(t.scrollHeight, t.clientHeight, r.scrollHeight, r.clientHeight);
1115
+ let i = -n.scrollLeft + kt(e);
1116
+ const c = -n.scrollTop;
1117
+ return we(r).direction === "rtl" && (i += he(t.clientWidth, r.clientWidth) - o), {
1118
+ width: o,
1119
+ height: s,
1120
+ x: i,
1121
+ y: c
1122
+ };
1123
+ }
1124
+ const En = 25;
1125
+ function Ao(e, t) {
1126
+ const n = pe(e), r = Te(e), o = n.visualViewport;
1127
+ let s = r.clientWidth, i = r.clientHeight, c = 0, a = 0;
1128
+ if (o) {
1129
+ s = o.width, i = o.height;
1130
+ const u = Pt();
1131
+ (!u || u && t === "fixed") && (c = o.offsetLeft, a = o.offsetTop);
1132
+ }
1133
+ const l = kt(r);
1134
+ if (l <= 0) {
1135
+ const u = r.ownerDocument, m = u.body, p = getComputedStyle(m), f = u.compatMode === "CSS1Compat" && parseFloat(p.marginLeft) + parseFloat(p.marginRight) || 0, v = Math.abs(r.clientWidth - m.clientWidth - f);
1136
+ v <= En && (s -= v);
1137
+ } else l <= En && (s += l);
1138
+ return {
1139
+ width: s,
1140
+ height: i,
1141
+ x: c,
1142
+ y: a
1143
+ };
1144
+ }
1145
+ const So = /* @__PURE__ */ new Set(["absolute", "fixed"]);
1146
+ function Mo(e, t) {
1147
+ const n = He(e, !0, t === "fixed"), r = n.top + e.clientTop, o = n.left + e.clientLeft, s = ne(e) ? Xe(e) : Ee(1), i = e.clientWidth * s.x, c = e.clientHeight * s.y, a = o * s.x, l = r * s.y;
1148
+ return {
1149
+ width: i,
1150
+ height: c,
1151
+ x: a,
1152
+ y: l
1153
+ };
1154
+ }
1155
+ function Cn(e, t, n) {
1156
+ let r;
1157
+ if (t === "viewport")
1158
+ r = Ao(e, n);
1159
+ else if (t === "document")
1160
+ r = Oo(Te(e));
1161
+ else if (Y(t))
1162
+ r = Mo(t, n);
1163
+ else {
1164
+ const o = mr(e);
1165
+ r = {
1166
+ x: t.x - o.x,
1167
+ y: t.y - o.y,
1168
+ width: t.width,
1169
+ height: t.height
1170
+ };
1171
+ }
1172
+ return Ct(r);
1173
+ }
1174
+ function gr(e, t) {
1175
+ const n = Pe(e);
1176
+ return n === t || !Y(n) || Me(n) ? !1 : we(n).position === "fixed" || gr(n, t);
1177
+ }
1178
+ function Po(e, t) {
1179
+ const n = t.get(e);
1180
+ if (n)
1181
+ return n;
1182
+ let r = ke(e, [], !1).filter((c) => Y(c) && We(c) !== "body"), o = null;
1183
+ const s = we(e).position === "fixed";
1184
+ let i = s ? Pe(e) : e;
1185
+ for (; Y(i) && !Me(i); ) {
1186
+ const c = we(i), a = on(i);
1187
+ !a && c.position === "fixed" && (o = null), (s ? !a && !o : !a && c.position === "static" && !!o && So.has(o.position) || ut(i) && !a && gr(e, i)) ? r = r.filter((u) => u !== i) : o = c, i = Pe(i);
1188
+ }
1189
+ return t.set(e, r), r;
1190
+ }
1191
+ function Do(e) {
1192
+ let {
1193
+ element: t,
1194
+ boundary: n,
1195
+ rootBoundary: r,
1196
+ strategy: o
1197
+ } = e;
1198
+ const i = [...n === "clippingAncestors" ? Mt(t) ? [] : Po(t, this._c) : [].concat(n), r], c = i[0], a = i.reduce((l, u) => {
1199
+ const m = Cn(t, u, o);
1200
+ return l.top = he(m.top, l.top), l.right = Je(m.right, l.right), l.bottom = Je(m.bottom, l.bottom), l.left = he(m.left, l.left), l;
1201
+ }, Cn(t, c, o));
1202
+ return {
1203
+ width: a.right - a.left,
1204
+ height: a.bottom - a.top,
1205
+ x: a.left,
1206
+ y: a.top
1207
+ };
1208
+ }
1209
+ function Lo(e) {
1210
+ const {
1211
+ width: t,
1212
+ height: n
1213
+ } = dr(e);
1214
+ return {
1215
+ width: t,
1216
+ height: n
1217
+ };
1218
+ }
1219
+ function ko(e, t, n) {
1220
+ const r = ne(t), o = Te(t), s = n === "fixed", i = He(e, !0, s, t);
1221
+ let c = {
1222
+ scrollLeft: 0,
1223
+ scrollTop: 0
1224
+ };
1225
+ const a = Ee(0);
1226
+ function l() {
1227
+ a.x = kt(o);
1228
+ }
1229
+ if (r || !r && !s)
1230
+ if ((We(t) !== "body" || ut(o)) && (c = Dt(t)), r) {
1231
+ const f = He(t, !0, s, t);
1232
+ a.x = f.x + t.clientLeft, a.y = f.y + t.clientTop;
1233
+ } else o && l();
1234
+ s && !r && o && l();
1235
+ const u = o && !r && !s ? pr(o, c) : Ee(0), m = i.left + c.scrollLeft - a.x - u.x, p = i.top + c.scrollTop - a.y - u.y;
1236
+ return {
1237
+ x: m,
1238
+ y: p,
1239
+ width: i.width,
1240
+ height: i.height
1241
+ };
1242
+ }
1243
+ function $t(e) {
1244
+ return we(e).position === "static";
1245
+ }
1246
+ function In(e, t) {
1247
+ if (!ne(e) || we(e).position === "fixed")
1248
+ return null;
1249
+ if (t)
1250
+ return t(e);
1251
+ let n = e.offsetParent;
1252
+ return Te(e) === n && (n = n.ownerDocument.body), n;
1253
+ }
1254
+ function hr(e, t) {
1255
+ const n = pe(e);
1256
+ if (Mt(e))
1257
+ return n;
1258
+ if (!ne(e)) {
1259
+ let o = Pe(e);
1260
+ for (; o && !Me(o); ) {
1261
+ if (Y(o) && !$t(o))
1262
+ return o;
1263
+ o = Pe(o);
1264
+ }
1265
+ return n;
1266
+ }
1267
+ let r = In(e, t);
1268
+ for (; r && Fr(r) && $t(r); )
1269
+ r = In(r, t);
1270
+ return r && Me(r) && $t(r) && !on(r) ? n : r || Kr(e) || n;
1271
+ }
1272
+ const Fo = async function(e) {
1273
+ const t = this.getOffsetParent || hr, n = this.getDimensions, r = await n(e.floating);
1274
+ return {
1275
+ reference: ko(e.reference, await t(e.floating), e.strategy),
1276
+ floating: {
1277
+ x: 0,
1278
+ y: 0,
1279
+ width: r.width,
1280
+ height: r.height
1281
+ }
1282
+ };
1283
+ };
1284
+ function No(e) {
1285
+ return we(e).direction === "rtl";
1286
+ }
1287
+ const _o = {
1288
+ convertOffsetParentRelativeRectToViewportRelativeRect: Io,
1289
+ getDocumentElement: Te,
1290
+ getClippingRect: Do,
1291
+ getOffsetParent: hr,
1292
+ getElementRects: Fo,
1293
+ getClientRects: To,
1294
+ getDimensions: Lo,
1295
+ getScale: Xe,
1296
+ isElement: Y,
1297
+ isRTL: No
1298
+ };
1299
+ function vr(e, t) {
1300
+ return e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height;
1301
+ }
1302
+ function Wo(e, t) {
1303
+ let n = null, r;
1304
+ const o = Te(e);
1305
+ function s() {
1306
+ var c;
1307
+ clearTimeout(r), (c = n) == null || c.disconnect(), n = null;
1308
+ }
1309
+ function i(c, a) {
1310
+ c === void 0 && (c = !1), a === void 0 && (a = 1), s();
1311
+ const l = e.getBoundingClientRect(), {
1312
+ left: u,
1313
+ top: m,
1314
+ width: p,
1315
+ height: f
1316
+ } = l;
1317
+ if (c || t(), !p || !f)
1318
+ return;
1319
+ const v = je(m), g = je(o.clientWidth - (u + p)), y = je(o.clientHeight - (m + f)), x = je(u), w = {
1320
+ rootMargin: -v + "px " + -g + "px " + -y + "px " + -x + "px",
1321
+ threshold: he(0, Je(1, a)) || 1
1322
+ };
1323
+ let C = !0;
1324
+ function M(k) {
1325
+ const N = k[0].intersectionRatio;
1326
+ if (N !== a) {
1327
+ if (!C)
1328
+ return i();
1329
+ N ? i(!1, N) : r = setTimeout(() => {
1330
+ i(!1, 1e-7);
1331
+ }, 1e3);
1332
+ }
1333
+ N === 1 && !vr(l, e.getBoundingClientRect()) && i(), C = !1;
1334
+ }
1335
+ try {
1336
+ n = new IntersectionObserver(M, {
1337
+ ...w,
1338
+ // Handle <iframe>s
1339
+ root: o.ownerDocument
1340
+ });
1341
+ } catch {
1342
+ n = new IntersectionObserver(M, w);
1343
+ }
1344
+ n.observe(e);
1345
+ }
1346
+ return i(!0), s;
1347
+ }
1348
+ function Ci(e, t, n, r) {
1349
+ r === void 0 && (r = {});
1350
+ const {
1351
+ ancestorScroll: o = !0,
1352
+ ancestorResize: s = !0,
1353
+ elementResize: i = typeof ResizeObserver == "function",
1354
+ layoutShift: c = typeof IntersectionObserver == "function",
1355
+ animationFrame: a = !1
1356
+ } = r, l = un(e), u = o || s ? [...l ? ke(l) : [], ...ke(t)] : [];
1357
+ u.forEach((x) => {
1358
+ o && x.addEventListener("scroll", n, {
1359
+ passive: !0
1360
+ }), s && x.addEventListener("resize", n);
1361
+ });
1362
+ const m = l && c ? Wo(l, n) : null;
1363
+ let p = -1, f = null;
1364
+ i && (f = new ResizeObserver((x) => {
1365
+ let [b] = x;
1366
+ b && b.target === l && f && (f.unobserve(t), cancelAnimationFrame(p), p = requestAnimationFrame(() => {
1367
+ var w;
1368
+ (w = f) == null || w.observe(t);
1369
+ })), n();
1370
+ }), l && !a && f.observe(l), f.observe(t));
1371
+ let v, g = a ? He(e) : null;
1372
+ a && y();
1373
+ function y() {
1374
+ const x = He(e);
1375
+ g && !vr(g, x) && n(), g = x, v = requestAnimationFrame(y);
1376
+ }
1377
+ return n(), () => {
1378
+ var x;
1379
+ u.forEach((b) => {
1380
+ o && b.removeEventListener("scroll", n), s && b.removeEventListener("resize", n);
1381
+ }), m?.(), (x = f) == null || x.disconnect(), f = null, a && cancelAnimationFrame(v);
1382
+ };
1383
+ }
1384
+ const Vo = wo, Ko = ho, $o = xo, Bo = vo, Ho = Ro, zo = (e, t, n) => {
1385
+ const r = /* @__PURE__ */ new Map(), o = {
1386
+ platform: _o,
1387
+ ...n
1388
+ }, s = {
1389
+ ...o.platform,
1390
+ _c: r
1391
+ };
1392
+ return po(e, t, {
1393
+ ...o,
1394
+ platform: s
1395
+ });
1396
+ };
1397
+ var Uo = typeof document < "u", Go = function() {
1398
+ }, wt = Uo ? Gn : Go;
1399
+ function Tt(e, t) {
1400
+ if (e === t)
1401
+ return !0;
1402
+ if (typeof e != typeof t)
1403
+ return !1;
1404
+ if (typeof e == "function" && e.toString() === t.toString())
1405
+ return !0;
1406
+ let n, r, o;
1407
+ if (e && t && typeof e == "object") {
1408
+ if (Array.isArray(e)) {
1409
+ if (n = e.length, n !== t.length) return !1;
1410
+ for (r = n; r-- !== 0; )
1411
+ if (!Tt(e[r], t[r]))
1412
+ return !1;
1413
+ return !0;
1414
+ }
1415
+ if (o = Object.keys(e), n = o.length, n !== Object.keys(t).length)
1416
+ return !1;
1417
+ for (r = n; r-- !== 0; )
1418
+ if (!{}.hasOwnProperty.call(t, o[r]))
1419
+ return !1;
1420
+ for (r = n; r-- !== 0; ) {
1421
+ const s = o[r];
1422
+ if (!(s === "_owner" && e.$$typeof) && !Tt(e[s], t[s]))
1423
+ return !1;
1424
+ }
1425
+ return !0;
1426
+ }
1427
+ return e !== e && t !== t;
1428
+ }
1429
+ function br(e) {
1430
+ return typeof window > "u" ? 1 : (e.ownerDocument.defaultView || window).devicePixelRatio || 1;
1431
+ }
1432
+ function Tn(e, t) {
1433
+ const n = br(e);
1434
+ return Math.round(t * n) / n;
1435
+ }
1436
+ function Bt(e) {
1437
+ const t = d.useRef(e);
1438
+ return wt(() => {
1439
+ t.current = e;
1440
+ }), t;
1441
+ }
1442
+ function jo(e) {
1443
+ e === void 0 && (e = {});
1444
+ const {
1445
+ placement: t = "bottom",
1446
+ strategy: n = "absolute",
1447
+ middleware: r = [],
1448
+ platform: o,
1449
+ elements: {
1450
+ reference: s,
1451
+ floating: i
1452
+ } = {},
1453
+ transform: c = !0,
1454
+ whileElementsMounted: a,
1455
+ open: l
1456
+ } = e, [u, m] = d.useState({
1457
+ x: 0,
1458
+ y: 0,
1459
+ strategy: n,
1460
+ placement: t,
1461
+ middlewareData: {},
1462
+ isPositioned: !1
1463
+ }), [p, f] = d.useState(r);
1464
+ Tt(p, r) || f(r);
1465
+ const [v, g] = d.useState(null), [y, x] = d.useState(null), b = d.useCallback((h) => {
1466
+ h !== k.current && (k.current = h, g(h));
1467
+ }, []), w = d.useCallback((h) => {
1468
+ h !== N.current && (N.current = h, x(h));
1469
+ }, []), C = s || v, M = i || y, k = d.useRef(null), N = d.useRef(null), P = d.useRef(u), V = a != null, L = Bt(a), _ = Bt(o), G = Bt(l), W = d.useCallback(() => {
1470
+ if (!k.current || !N.current)
1471
+ return;
1472
+ const h = {
1473
+ placement: t,
1474
+ strategy: n,
1475
+ middleware: p
1476
+ };
1477
+ _.current && (h.platform = _.current), zo(k.current, N.current, h).then((I) => {
1478
+ const D = {
1479
+ ...I,
1480
+ // The floating element's position may be recomputed while it's closed
1481
+ // but still mounted (such as when transitioning out). To ensure
1482
+ // `isPositioned` will be `false` initially on the next open, avoid
1483
+ // setting it to `true` when `open === false` (must be specified).
1484
+ isPositioned: G.current !== !1
1485
+ };
1486
+ R.current && !Tt(P.current, D) && (P.current = D, nn.flushSync(() => {
1487
+ m(D);
1488
+ }));
1489
+ });
1490
+ }, [p, t, n, _, G]);
1491
+ wt(() => {
1492
+ l === !1 && P.current.isPositioned && (P.current.isPositioned = !1, m((h) => ({
1493
+ ...h,
1494
+ isPositioned: !1
1495
+ })));
1496
+ }, [l]);
1497
+ const R = d.useRef(!1);
1498
+ wt(() => (R.current = !0, () => {
1499
+ R.current = !1;
1500
+ }), []), wt(() => {
1501
+ if (C && (k.current = C), M && (N.current = M), C && M) {
1502
+ if (L.current)
1503
+ return L.current(C, M, W);
1504
+ W();
1505
+ }
1506
+ }, [C, M, W, L, V]);
1507
+ const E = d.useMemo(() => ({
1508
+ reference: k,
1509
+ floating: N,
1510
+ setReference: b,
1511
+ setFloating: w
1512
+ }), [b, w]), $ = d.useMemo(() => ({
1513
+ reference: C,
1514
+ floating: M
1515
+ }), [C, M]), T = d.useMemo(() => {
1516
+ const h = {
1517
+ position: n,
1518
+ left: 0,
1519
+ top: 0
1520
+ };
1521
+ if (!$.floating)
1522
+ return h;
1523
+ const I = Tn($.floating, u.x), D = Tn($.floating, u.y);
1524
+ return c ? {
1525
+ ...h,
1526
+ transform: "translate(" + I + "px, " + D + "px)",
1527
+ ...br($.floating) >= 1.5 && {
1528
+ willChange: "transform"
1529
+ }
1530
+ } : {
1531
+ position: n,
1532
+ left: I,
1533
+ top: D
1534
+ };
1535
+ }, [n, c, $.floating, u.x, u.y]);
1536
+ return d.useMemo(() => ({
1537
+ ...u,
1538
+ update: W,
1539
+ refs: E,
1540
+ elements: $,
1541
+ floatingStyles: T
1542
+ }), [u, W, E, $, T]);
1543
+ }
1544
+ const Ii = (e, t) => ({
1545
+ ...Vo(e),
1546
+ options: [e, t]
1547
+ }), Ti = (e, t) => ({
1548
+ ...$o(e),
1549
+ options: [e, t]
1550
+ }), Oi = (e, t) => ({
1551
+ ...Bo(e),
1552
+ options: [e, t]
1553
+ }), Ai = (e, t) => ({
1554
+ ...Ho(e),
1555
+ options: [e, t]
1556
+ }), Si = (e, t) => ({
1557
+ ...Ko(e),
1558
+ options: [e, t]
1559
+ });
1560
+ function qo(e) {
1561
+ const t = d.useRef(void 0), n = d.useCallback((r) => {
1562
+ const o = e.map((s) => {
1563
+ if (s != null) {
1564
+ if (typeof s == "function") {
1565
+ const i = s, c = i(r);
1566
+ return typeof c == "function" ? c : () => {
1567
+ i(null);
1568
+ };
1569
+ }
1570
+ return s.current = r, () => {
1571
+ s.current = null;
1572
+ };
1573
+ }
1574
+ });
1575
+ return () => {
1576
+ o.forEach((s) => s?.());
1577
+ };
1578
+ }, e);
1579
+ return d.useMemo(() => e.every((r) => r == null) ? null : (r) => {
1580
+ t.current && (t.current(), t.current = void 0), r != null && (t.current = n(r));
1581
+ }, e);
1582
+ }
1583
+ function Xo(e, t) {
1584
+ const n = e.compareDocumentPosition(t);
1585
+ return n & Node.DOCUMENT_POSITION_FOLLOWING || n & Node.DOCUMENT_POSITION_CONTAINED_BY ? -1 : n & Node.DOCUMENT_POSITION_PRECEDING || n & Node.DOCUMENT_POSITION_CONTAINS ? 1 : 0;
1586
+ }
1587
+ const yr = /* @__PURE__ */ d.createContext({
1588
+ register: () => {
1589
+ },
1590
+ unregister: () => {
1591
+ },
1592
+ map: /* @__PURE__ */ new Map(),
1593
+ elementsRef: {
1594
+ current: []
1595
+ }
1596
+ });
1597
+ function Yo(e) {
1598
+ const {
1599
+ children: t,
1600
+ elementsRef: n,
1601
+ labelsRef: r
1602
+ } = e, [o, s] = d.useState(() => /* @__PURE__ */ new Set()), i = d.useCallback((l) => {
1603
+ s((u) => new Set(u).add(l));
1604
+ }, []), c = d.useCallback((l) => {
1605
+ s((u) => {
1606
+ const m = new Set(u);
1607
+ return m.delete(l), m;
1608
+ });
1609
+ }, []), a = d.useMemo(() => {
1610
+ const l = /* @__PURE__ */ new Map();
1611
+ return Array.from(o.keys()).sort(Xo).forEach((m, p) => {
1612
+ l.set(m, p);
1613
+ }), l;
1614
+ }, [o]);
1615
+ return /* @__PURE__ */ me(yr.Provider, {
1616
+ value: d.useMemo(() => ({
1617
+ register: i,
1618
+ unregister: c,
1619
+ map: a,
1620
+ elementsRef: n,
1621
+ labelsRef: r
1622
+ }), [i, c, a, n, r]),
1623
+ children: t
1624
+ });
1625
+ }
1626
+ function Jo(e) {
1627
+ e === void 0 && (e = {});
1628
+ const {
1629
+ label: t
1630
+ } = e, {
1631
+ register: n,
1632
+ unregister: r,
1633
+ map: o,
1634
+ elementsRef: s,
1635
+ labelsRef: i
1636
+ } = d.useContext(yr), [c, a] = d.useState(null), l = d.useRef(null), u = d.useCallback((m) => {
1637
+ if (l.current = m, c !== null && (s.current[c] = m, i)) {
1638
+ var p;
1639
+ const f = t !== void 0;
1640
+ i.current[c] = f ? t : (p = m?.textContent) != null ? p : null;
1641
+ }
1642
+ }, [c, s, i, t]);
1643
+ return X(() => {
1644
+ const m = l.current;
1645
+ if (m)
1646
+ return n(m), () => {
1647
+ r(m);
1648
+ };
1649
+ }, [n, r]), X(() => {
1650
+ const m = l.current ? o.get(l.current) : null;
1651
+ m != null && a(m);
1652
+ }, [o]), d.useMemo(() => ({
1653
+ ref: u,
1654
+ index: c ?? -1
1655
+ }), [c, u]);
1656
+ }
1657
+ const Qo = "data-floating-ui-focusable", On = "active", An = "selected", Ne = "ArrowLeft", _e = "ArrowRight", st = "ArrowUp", Fe = "ArrowDown";
1658
+ function wr(e, t) {
1659
+ return typeof e == "function" ? e(t) : e ? /* @__PURE__ */ d.cloneElement(e, t) : /* @__PURE__ */ me("div", {
1660
+ ...t
1661
+ });
1662
+ }
1663
+ const xr = /* @__PURE__ */ d.createContext({
1664
+ activeIndex: 0,
1665
+ onNavigate: () => {
1666
+ }
1667
+ }), Rr = [Ne, _e], Er = [st, Fe], Ht = [...Rr, ...Er], Mi = /* @__PURE__ */ d.forwardRef(function(t, n) {
1668
+ const {
1669
+ render: r,
1670
+ orientation: o = "both",
1671
+ loop: s = !0,
1672
+ rtl: i = !1,
1673
+ cols: c = 1,
1674
+ disabledIndices: a,
1675
+ activeIndex: l,
1676
+ onNavigate: u,
1677
+ itemSizes: m,
1678
+ dense: p = !1,
1679
+ ...f
1680
+ } = t, [v, g] = d.useState(0), y = l ?? v, x = ie(u ?? g), b = d.useRef([]), w = r && typeof r != "function" ? r.props : {}, C = d.useMemo(() => ({
1681
+ activeIndex: y,
1682
+ onNavigate: x
1683
+ }), [y, x]), M = c > 1;
1684
+ function k(P) {
1685
+ if (!Ht.includes(P.key)) return;
1686
+ let V = y;
1687
+ const L = yt(b, a), _ = tn(b, a), G = i ? Ne : _e, W = i ? _e : Ne;
1688
+ if (M) {
1689
+ const h = m || Array.from({
1690
+ length: b.current.length
1691
+ }, () => ({
1692
+ width: 1,
1693
+ height: 1
1694
+ })), I = sr(h, c, p), D = I.findIndex((O) => O != null && !Be(b, O, a)), ee = I.reduce((O, J, j) => J != null && !Be(b, J, a) ? j : O, -1), F = I[ir({
1695
+ current: I.map((O) => O ? b.current[O] : null)
1696
+ }, {
1697
+ event: P,
1698
+ orientation: o,
1699
+ loop: s,
1700
+ rtl: i,
1701
+ cols: c,
1702
+ // treat undefined (empty grid spaces) as disabled indices so we
1703
+ // don't end up in them
1704
+ disabledIndices: ur([...(typeof a != "function" ? a : null) || b.current.map((O, J) => Be(b, J, a) ? J : void 0), void 0], I),
1705
+ minIndex: D,
1706
+ maxIndex: ee,
1707
+ prevIndex: cr(
1708
+ y > _ ? L : y,
1709
+ h,
1710
+ I,
1711
+ c,
1712
+ // use a corner matching the edge closest to the direction we're
1713
+ // moving in so we don't end up in the same item. Prefer
1714
+ // top/left over bottom/right.
1715
+ P.key === Fe ? "bl" : P.key === G ? "tr" : "tl"
1716
+ )
1717
+ })];
1718
+ F != null && (V = F);
1719
+ }
1720
+ const R = {
1721
+ horizontal: [G],
1722
+ vertical: [Fe],
1723
+ both: [G, Fe]
1724
+ }[o], E = {
1725
+ horizontal: [W],
1726
+ vertical: [st],
1727
+ both: [W, st]
1728
+ }[o], $ = M ? Ht : {
1729
+ horizontal: Rr,
1730
+ vertical: Er,
1731
+ both: Ht
1732
+ }[o];
1733
+ if (V === y && [...R, ...E].includes(P.key) && (s && V === _ && R.includes(P.key) ? V = L : s && V === L && E.includes(P.key) ? V = _ : V = ue(b, {
1734
+ startingIndex: V,
1735
+ decrement: E.includes(P.key),
1736
+ disabledIndices: a
1737
+ })), V !== y && !qe(b, V)) {
1738
+ var T;
1739
+ P.stopPropagation(), $.includes(P.key) && P.preventDefault(), x(V), (T = b.current[V]) == null || T.focus();
1740
+ }
1741
+ }
1742
+ const N = {
1743
+ ...f,
1744
+ ...w,
1745
+ ref: n,
1746
+ "aria-orientation": o === "both" ? void 0 : o,
1747
+ onKeyDown(P) {
1748
+ f.onKeyDown == null || f.onKeyDown(P), w.onKeyDown == null || w.onKeyDown(P), k(P);
1749
+ }
1750
+ };
1751
+ return /* @__PURE__ */ me(xr.Provider, {
1752
+ value: C,
1753
+ children: /* @__PURE__ */ me(Yo, {
1754
+ elementsRef: b,
1755
+ children: wr(r, N)
1756
+ })
1757
+ });
1758
+ }), Pi = /* @__PURE__ */ d.forwardRef(function(t, n) {
1759
+ const {
1760
+ render: r,
1761
+ ...o
1762
+ } = t, s = r && typeof r != "function" ? r.props : {}, {
1763
+ activeIndex: i,
1764
+ onNavigate: c
1765
+ } = d.useContext(xr), {
1766
+ ref: a,
1767
+ index: l
1768
+ } = Jo(), u = qo([a, n, s.ref]), m = i === l, p = {
1769
+ ...o,
1770
+ ...s,
1771
+ ref: u,
1772
+ tabIndex: m ? 0 : -1,
1773
+ "data-active": m ? "" : void 0,
1774
+ onFocus(f) {
1775
+ o.onFocus == null || o.onFocus(f), s.onFocus == null || s.onFocus(f), c(l);
1776
+ }
1777
+ };
1778
+ return wr(r, p);
1779
+ }), Zo = {
1780
+ ...d
1781
+ };
1782
+ let Sn = !1, ei = 0;
1783
+ const Mn = () => (
1784
+ // Ensure the id is unique with multiple independent versions of Floating UI
1785
+ // on <React 18
1786
+ "floating-ui-" + Math.random().toString(36).slice(2, 6) + ei++
1787
+ );
1788
+ function ti() {
1789
+ const [e, t] = d.useState(() => Sn ? Mn() : void 0);
1790
+ return X(() => {
1791
+ e == null && t(Mn());
1792
+ }, []), d.useEffect(() => {
1793
+ Sn = !0;
1794
+ }, []), e;
1795
+ }
1796
+ const ni = Zo.useId, Ft = ni || ti;
1797
+ let ct;
1798
+ process.env.NODE_ENV !== "production" && (ct = /* @__PURE__ */ new Set());
1799
+ function zt() {
1800
+ for (var e, t = arguments.length, n = new Array(t), r = 0; r < t; r++)
1801
+ n[r] = arguments[r];
1802
+ const o = "Floating UI: " + n.join(" ");
1803
+ if (!((e = ct) != null && e.has(o))) {
1804
+ var s;
1805
+ (s = ct) == null || s.add(o), console.warn(o);
1806
+ }
1807
+ }
1808
+ function ri() {
1809
+ for (var e, t = arguments.length, n = new Array(t), r = 0; r < t; r++)
1810
+ n[r] = arguments[r];
1811
+ const o = "Floating UI: " + n.join(" ");
1812
+ if (!((e = ct) != null && e.has(o))) {
1813
+ var s;
1814
+ (s = ct) == null || s.add(o), console.error(o);
1815
+ }
1816
+ }
1817
+ function Cr() {
1818
+ const e = /* @__PURE__ */ new Map();
1819
+ return {
1820
+ emit(t, n) {
1821
+ var r;
1822
+ (r = e.get(t)) == null || r.forEach((o) => o(n));
1823
+ },
1824
+ on(t, n) {
1825
+ e.has(t) || e.set(t, /* @__PURE__ */ new Set()), e.get(t).add(n);
1826
+ },
1827
+ off(t, n) {
1828
+ var r;
1829
+ (r = e.get(t)) == null || r.delete(n);
1830
+ }
1831
+ };
1832
+ }
1833
+ const Ir = /* @__PURE__ */ d.createContext(null), Tr = /* @__PURE__ */ d.createContext(null), Ze = () => {
1834
+ var e;
1835
+ return ((e = d.useContext(Ir)) == null ? void 0 : e.id) || null;
1836
+ }, et = () => d.useContext(Tr);
1837
+ function Di(e) {
1838
+ const t = Ft(), n = et(), o = Ze();
1839
+ return X(() => {
1840
+ if (!t) return;
1841
+ const s = {
1842
+ id: t,
1843
+ parentId: o
1844
+ };
1845
+ return n?.addNode(s), () => {
1846
+ n?.removeNode(s);
1847
+ };
1848
+ }, [n, t, o]), t;
1849
+ }
1850
+ function Li(e) {
1851
+ const {
1852
+ children: t,
1853
+ id: n
1854
+ } = e, r = Ze();
1855
+ return /* @__PURE__ */ me(Ir.Provider, {
1856
+ value: d.useMemo(() => ({
1857
+ id: n,
1858
+ parentId: r
1859
+ }), [n, r]),
1860
+ children: t
1861
+ });
1862
+ }
1863
+ function ki(e) {
1864
+ const {
1865
+ children: t
1866
+ } = e, n = d.useRef([]), r = d.useCallback((i) => {
1867
+ n.current = [...n.current, i];
1868
+ }, []), o = d.useCallback((i) => {
1869
+ n.current = n.current.filter((c) => c !== i);
1870
+ }, []), [s] = d.useState(() => Cr());
1871
+ return /* @__PURE__ */ me(Tr.Provider, {
1872
+ value: d.useMemo(() => ({
1873
+ nodesRef: n,
1874
+ addNode: r,
1875
+ removeNode: o,
1876
+ events: s
1877
+ }), [r, o, s]),
1878
+ children: t
1879
+ });
1880
+ }
1881
+ function ze(e) {
1882
+ return "data-floating-ui-" + e;
1883
+ }
1884
+ function ge(e) {
1885
+ e.current !== -1 && (clearTimeout(e.current), e.current = -1);
1886
+ }
1887
+ const Pn = /* @__PURE__ */ ze("safe-polygon");
1888
+ function Ut(e, t, n) {
1889
+ if (n && !it(n))
1890
+ return 0;
1891
+ if (typeof e == "number")
1892
+ return e;
1893
+ if (typeof e == "function") {
1894
+ const r = e();
1895
+ return typeof r == "number" ? r : r?.[t];
1896
+ }
1897
+ return e?.[t];
1898
+ }
1899
+ function Gt(e) {
1900
+ return typeof e == "function" ? e() : e;
1901
+ }
1902
+ function Fi(e, t) {
1903
+ t === void 0 && (t = {});
1904
+ const {
1905
+ open: n,
1906
+ onOpenChange: r,
1907
+ dataRef: o,
1908
+ events: s,
1909
+ elements: i
1910
+ } = e, {
1911
+ enabled: c = !0,
1912
+ delay: a = 0,
1913
+ handleClose: l = null,
1914
+ mouseOnly: u = !1,
1915
+ restMs: m = 0,
1916
+ move: p = !0
1917
+ } = t, f = et(), v = Ze(), g = ye(l), y = ye(a), x = ye(n), b = ye(m), w = d.useRef(), C = d.useRef(-1), M = d.useRef(), k = d.useRef(-1), N = d.useRef(!0), P = d.useRef(!1), V = d.useRef(() => {
1918
+ }), L = d.useRef(!1), _ = ie(() => {
1919
+ var T;
1920
+ const h = (T = o.current.openEvent) == null ? void 0 : T.type;
1921
+ return h?.includes("mouse") && h !== "mousedown";
1922
+ });
1923
+ d.useEffect(() => {
1924
+ if (!c) return;
1925
+ function T(h) {
1926
+ let {
1927
+ open: I
1928
+ } = h;
1929
+ I || (ge(C), ge(k), N.current = !0, L.current = !1);
1930
+ }
1931
+ return s.on("openchange", T), () => {
1932
+ s.off("openchange", T);
1933
+ };
1934
+ }, [c, s]), d.useEffect(() => {
1935
+ if (!c || !g.current || !n) return;
1936
+ function T(I) {
1937
+ _() && r(!1, I, "hover");
1938
+ }
1939
+ const h = le(i.floating).documentElement;
1940
+ return h.addEventListener("mouseleave", T), () => {
1941
+ h.removeEventListener("mouseleave", T);
1942
+ };
1943
+ }, [i.floating, n, r, c, g, _]);
1944
+ const G = d.useCallback(function(T, h, I) {
1945
+ h === void 0 && (h = !0), I === void 0 && (I = "hover");
1946
+ const D = Ut(y.current, "close", w.current);
1947
+ D && !M.current ? (ge(C), C.current = window.setTimeout(() => r(!1, T, I), D)) : h && (ge(C), r(!1, T, I));
1948
+ }, [y, r]), W = ie(() => {
1949
+ V.current(), M.current = void 0;
1950
+ }), R = ie(() => {
1951
+ if (P.current) {
1952
+ const T = le(i.floating).body;
1953
+ T.style.pointerEvents = "", T.removeAttribute(Pn), P.current = !1;
1954
+ }
1955
+ }), E = ie(() => o.current.openEvent ? ["click", "mousedown"].includes(o.current.openEvent.type) : !1);
1956
+ d.useEffect(() => {
1957
+ if (!c) return;
1958
+ function T(F) {
1959
+ if (ge(C), N.current = !1, u && !it(w.current) || Gt(b.current) > 0 && !Ut(y.current, "open"))
1960
+ return;
1961
+ const O = Ut(y.current, "open", w.current);
1962
+ O ? C.current = window.setTimeout(() => {
1963
+ x.current || r(!0, F, "hover");
1964
+ }, O) : n || r(!0, F, "hover");
1965
+ }
1966
+ function h(F) {
1967
+ if (E()) {
1968
+ R();
1969
+ return;
1970
+ }
1971
+ V.current();
1972
+ const O = le(i.floating);
1973
+ if (ge(k), L.current = !1, g.current && o.current.floatingContext) {
1974
+ n || ge(C), M.current = g.current({
1975
+ ...o.current.floatingContext,
1976
+ tree: f,
1977
+ x: F.clientX,
1978
+ y: F.clientY,
1979
+ onClose() {
1980
+ R(), W(), E() || G(F, !0, "safe-polygon");
1981
+ }
1982
+ });
1983
+ const j = M.current;
1984
+ O.addEventListener("mousemove", j), V.current = () => {
1985
+ O.removeEventListener("mousemove", j);
1986
+ };
1987
+ return;
1988
+ }
1989
+ (w.current === "touch" ? !ce(i.floating, F.relatedTarget) : !0) && G(F);
1990
+ }
1991
+ function I(F) {
1992
+ E() || o.current.floatingContext && (g.current == null || g.current({
1993
+ ...o.current.floatingContext,
1994
+ tree: f,
1995
+ x: F.clientX,
1996
+ y: F.clientY,
1997
+ onClose() {
1998
+ R(), W(), E() || G(F);
1999
+ }
2000
+ })(F));
2001
+ }
2002
+ function D() {
2003
+ ge(C);
2004
+ }
2005
+ function ee(F) {
2006
+ E() || G(F, !1);
2007
+ }
2008
+ if (Y(i.domReference)) {
2009
+ const F = i.domReference, O = i.floating;
2010
+ return n && F.addEventListener("mouseleave", I), p && F.addEventListener("mousemove", T, {
2011
+ once: !0
2012
+ }), F.addEventListener("mouseenter", T), F.addEventListener("mouseleave", h), O && (O.addEventListener("mouseleave", I), O.addEventListener("mouseenter", D), O.addEventListener("mouseleave", ee)), () => {
2013
+ n && F.removeEventListener("mouseleave", I), p && F.removeEventListener("mousemove", T), F.removeEventListener("mouseenter", T), F.removeEventListener("mouseleave", h), O && (O.removeEventListener("mouseleave", I), O.removeEventListener("mouseenter", D), O.removeEventListener("mouseleave", ee));
2014
+ };
2015
+ }
2016
+ }, [i, c, e, u, p, G, W, R, r, n, x, f, y, g, o, E, b]), X(() => {
2017
+ var T;
2018
+ if (c && n && (T = g.current) != null && (T = T.__options) != null && T.blockPointerEvents && _()) {
2019
+ P.current = !0;
2020
+ const I = i.floating;
2021
+ if (Y(i.domReference) && I) {
2022
+ var h;
2023
+ const D = le(i.floating).body;
2024
+ D.setAttribute(Pn, "");
2025
+ const ee = i.domReference, F = f == null || (h = f.nodesRef.current.find((O) => O.id === v)) == null || (h = h.context) == null ? void 0 : h.elements.floating;
2026
+ return F && (F.style.pointerEvents = ""), D.style.pointerEvents = "none", ee.style.pointerEvents = "auto", I.style.pointerEvents = "auto", () => {
2027
+ D.style.pointerEvents = "", ee.style.pointerEvents = "", I.style.pointerEvents = "";
2028
+ };
2029
+ }
2030
+ }
2031
+ }, [c, n, v, i, f, g, _]), X(() => {
2032
+ n || (w.current = void 0, L.current = !1, W(), R());
2033
+ }, [n, W, R]), d.useEffect(() => () => {
2034
+ W(), ge(C), ge(k), R();
2035
+ }, [c, i.domReference, W, R]);
2036
+ const $ = d.useMemo(() => {
2037
+ function T(h) {
2038
+ w.current = h.pointerType;
2039
+ }
2040
+ return {
2041
+ onPointerDown: T,
2042
+ onPointerEnter: T,
2043
+ onMouseMove(h) {
2044
+ const {
2045
+ nativeEvent: I
2046
+ } = h;
2047
+ function D() {
2048
+ !N.current && !x.current && r(!0, I, "hover");
2049
+ }
2050
+ u && !it(w.current) || n || Gt(b.current) === 0 || L.current && h.movementX ** 2 + h.movementY ** 2 < 2 || (ge(k), w.current === "touch" ? D() : (L.current = !0, k.current = window.setTimeout(D, Gt(b.current))));
2051
+ }
2052
+ };
2053
+ }, [u, r, n, x, b]);
2054
+ return d.useMemo(() => c ? {
2055
+ reference: $
2056
+ } : {}, [c, $]);
2057
+ }
2058
+ let Dn = 0;
2059
+ function Ke(e, t) {
2060
+ t === void 0 && (t = {});
2061
+ const {
2062
+ preventScroll: n = !1,
2063
+ cancelPrevious: r = !0,
2064
+ sync: o = !1
2065
+ } = t;
2066
+ r && cancelAnimationFrame(Dn);
2067
+ const s = () => e?.focus({
2068
+ preventScroll: n
2069
+ });
2070
+ o ? s() : Dn = requestAnimationFrame(s);
2071
+ }
2072
+ function oi(e) {
2073
+ return e?.ownerDocument || document;
2074
+ }
2075
+ const Ye = {
2076
+ inert: /* @__PURE__ */ new WeakMap(),
2077
+ "aria-hidden": /* @__PURE__ */ new WeakMap(),
2078
+ none: /* @__PURE__ */ new WeakMap()
2079
+ };
2080
+ function Ln(e) {
2081
+ return e === "inert" ? Ye.inert : e === "aria-hidden" ? Ye["aria-hidden"] : Ye.none;
2082
+ }
2083
+ let gt = /* @__PURE__ */ new WeakSet(), ht = {}, jt = 0;
2084
+ const ii = () => typeof HTMLElement < "u" && "inert" in HTMLElement.prototype, Or = (e) => e && (e.host || Or(e.parentNode)), si = (e, t) => t.map((n) => {
2085
+ if (e.contains(n))
2086
+ return n;
2087
+ const r = Or(n);
2088
+ return e.contains(r) ? r : null;
2089
+ }).filter((n) => n != null);
2090
+ function ci(e, t, n, r) {
2091
+ const o = "data-floating-ui-inert", s = r ? "inert" : n ? "aria-hidden" : null, i = si(t, e), c = /* @__PURE__ */ new Set(), a = new Set(i), l = [];
2092
+ ht[o] || (ht[o] = /* @__PURE__ */ new WeakMap());
2093
+ const u = ht[o];
2094
+ i.forEach(m), p(t), c.clear();
2095
+ function m(f) {
2096
+ !f || c.has(f) || (c.add(f), f.parentNode && m(f.parentNode));
2097
+ }
2098
+ function p(f) {
2099
+ !f || a.has(f) || [].forEach.call(f.children, (v) => {
2100
+ if (We(v) !== "script")
2101
+ if (c.has(v))
2102
+ p(v);
2103
+ else {
2104
+ const g = s ? v.getAttribute(s) : null, y = g !== null && g !== "false", x = Ln(s), b = (x.get(v) || 0) + 1, w = (u.get(v) || 0) + 1;
2105
+ x.set(v, b), u.set(v, w), l.push(v), b === 1 && y && gt.add(v), w === 1 && v.setAttribute(o, ""), !y && s && v.setAttribute(s, s === "inert" ? "" : "true");
2106
+ }
2107
+ });
2108
+ }
2109
+ return jt++, () => {
2110
+ l.forEach((f) => {
2111
+ const v = Ln(s), y = (v.get(f) || 0) - 1, x = (u.get(f) || 0) - 1;
2112
+ v.set(f, y), u.set(f, x), y || (!gt.has(f) && s && f.removeAttribute(s), gt.delete(f)), x || f.removeAttribute(o);
2113
+ }), jt--, jt || (Ye.inert = /* @__PURE__ */ new WeakMap(), Ye["aria-hidden"] = /* @__PURE__ */ new WeakMap(), Ye.none = /* @__PURE__ */ new WeakMap(), gt = /* @__PURE__ */ new WeakSet(), ht = {});
2114
+ };
2115
+ }
2116
+ function kn(e, t, n) {
2117
+ t === void 0 && (t = !1), n === void 0 && (n = !1);
2118
+ const r = oi(e[0]).body;
2119
+ return ci(e.concat(Array.from(r.querySelectorAll('[aria-live],[role="status"],output'))), r, t, n);
2120
+ }
2121
+ const Nt = {
2122
+ border: 0,
2123
+ clip: "rect(0 0 0 0)",
2124
+ height: "1px",
2125
+ margin: "-1px",
2126
+ overflow: "hidden",
2127
+ padding: 0,
2128
+ position: "fixed",
2129
+ whiteSpace: "nowrap",
2130
+ width: "1px",
2131
+ top: 0,
2132
+ left: 0
2133
+ }, Ot = /* @__PURE__ */ d.forwardRef(function(t, n) {
2134
+ const [r, o] = d.useState();
2135
+ X(() => {
2136
+ tr() && o("button");
2137
+ }, []);
2138
+ const s = {
2139
+ ref: n,
2140
+ tabIndex: 0,
2141
+ // Role is only for VoiceOver
2142
+ role: r,
2143
+ "aria-hidden": r ? void 0 : !0,
2144
+ [ze("focus-guard")]: "",
2145
+ style: Nt
2146
+ };
2147
+ return /* @__PURE__ */ me("span", {
2148
+ ...t,
2149
+ ...s
2150
+ });
2151
+ }), Ar = /* @__PURE__ */ d.createContext(null), Fn = /* @__PURE__ */ ze("portal");
2152
+ function ui(e) {
2153
+ e === void 0 && (e = {});
2154
+ const {
2155
+ id: t,
2156
+ root: n
2157
+ } = e, r = Ft(), o = Sr(), [s, i] = d.useState(null), c = d.useRef(null);
2158
+ return X(() => () => {
2159
+ s?.remove(), queueMicrotask(() => {
2160
+ c.current = null;
2161
+ });
2162
+ }, [s]), X(() => {
2163
+ if (!r || c.current) return;
2164
+ const a = t ? document.getElementById(t) : null;
2165
+ if (!a) return;
2166
+ const l = document.createElement("div");
2167
+ l.id = r, l.setAttribute(Fn, ""), a.appendChild(l), c.current = l, i(l);
2168
+ }, [t, r]), X(() => {
2169
+ if (n === null || !r || c.current) return;
2170
+ let a = n || o?.portalNode;
2171
+ a && !rn(a) && (a = a.current), a = a || document.body;
2172
+ let l = null;
2173
+ t && (l = document.createElement("div"), l.id = t, a.appendChild(l));
2174
+ const u = document.createElement("div");
2175
+ u.id = r, u.setAttribute(Fn, ""), a = l || a, a.appendChild(u), c.current = u, i(u);
2176
+ }, [t, n, r, o]), s;
2177
+ }
2178
+ function Ni(e) {
2179
+ const {
2180
+ children: t,
2181
+ id: n,
2182
+ root: r,
2183
+ preserveTabOrder: o = !0
2184
+ } = e, s = ui({
2185
+ id: n,
2186
+ root: r
2187
+ }), [i, c] = d.useState(null), a = d.useRef(null), l = d.useRef(null), u = d.useRef(null), m = d.useRef(null), p = i?.modal, f = i?.open, v = (
2188
+ // The FocusManager and therefore floating element are currently open/
2189
+ // rendered.
2190
+ !!i && // Guards are only for non-modal focus management.
2191
+ !i.modal && // Don't render if unmount is transitioning.
2192
+ i.open && o && !!(r || s)
2193
+ );
2194
+ return d.useEffect(() => {
2195
+ if (!s || !o || p)
2196
+ return;
2197
+ function g(y) {
2198
+ s && ot(y) && (y.type === "focusin" ? xn : mo)(s);
2199
+ }
2200
+ return s.addEventListener("focusin", g, !0), s.addEventListener("focusout", g, !0), () => {
2201
+ s.removeEventListener("focusin", g, !0), s.removeEventListener("focusout", g, !0);
2202
+ };
2203
+ }, [s, o, p]), d.useEffect(() => {
2204
+ s && (f || xn(s));
2205
+ }, [f, s]), /* @__PURE__ */ qn(Ar.Provider, {
2206
+ value: d.useMemo(() => ({
2207
+ preserveTabOrder: o,
2208
+ beforeOutsideRef: a,
2209
+ afterOutsideRef: l,
2210
+ beforeInsideRef: u,
2211
+ afterInsideRef: m,
2212
+ portalNode: s,
2213
+ setFocusManagerState: c
2214
+ }), [o, s]),
2215
+ children: [v && s && /* @__PURE__ */ me(Ot, {
2216
+ "data-type": "outside",
2217
+ ref: a,
2218
+ onFocus: (g) => {
2219
+ if (ot(g, s)) {
2220
+ var y;
2221
+ (y = u.current) == null || y.focus();
2222
+ } else {
2223
+ const x = i ? i.domReference : null, b = fr(x);
2224
+ b?.focus();
2225
+ }
2226
+ }
2227
+ }), v && s && /* @__PURE__ */ me("span", {
2228
+ "aria-owns": s.id,
2229
+ style: Nt
2230
+ }), s && /* @__PURE__ */ nn.createPortal(t, s), v && s && /* @__PURE__ */ me(Ot, {
2231
+ "data-type": "outside",
2232
+ ref: l,
2233
+ onFocus: (g) => {
2234
+ if (ot(g, s)) {
2235
+ var y;
2236
+ (y = m.current) == null || y.focus();
2237
+ } else {
2238
+ const x = i ? i.domReference : null, b = ar(x);
2239
+ b?.focus(), i?.closeOnFocusOut && i?.onOpenChange(!1, g.nativeEvent, "focus-out");
2240
+ }
2241
+ }
2242
+ })]
2243
+ });
2244
+ }
2245
+ const Sr = () => d.useContext(Ar);
2246
+ function Nn(e) {
2247
+ return d.useMemo(() => (t) => {
2248
+ e.forEach((n) => {
2249
+ n && (n.current = t);
2250
+ });
2251
+ }, e);
2252
+ }
2253
+ const li = 20;
2254
+ let Le = [];
2255
+ function ln() {
2256
+ Le = Le.filter((e) => e.isConnected);
2257
+ }
2258
+ function ai(e) {
2259
+ ln(), e && We(e) !== "body" && (Le.push(e), Le.length > li && (Le = Le.slice(-20)));
2260
+ }
2261
+ function _n() {
2262
+ return ln(), Le[Le.length - 1];
2263
+ }
2264
+ function fi(e) {
2265
+ const t = lt();
2266
+ return jn(e, t) ? e : At(e, t)[0] || e;
2267
+ }
2268
+ function Wn(e, t) {
2269
+ var n;
2270
+ if (!t.current.includes("floating") && !((n = e.getAttribute("role")) != null && n.includes("dialog")))
2271
+ return;
2272
+ const r = lt(), s = Pr(e, r).filter((c) => {
2273
+ const a = c.getAttribute("data-tabindex") || "";
2274
+ return jn(c, r) || c.hasAttribute("data-tabindex") && !a.startsWith("-");
2275
+ }), i = e.getAttribute("tabindex");
2276
+ t.current.includes("floating") || s.length === 0 ? i !== "0" && e.setAttribute("tabindex", "0") : (i !== "-1" || e.hasAttribute("data-tabindex") && e.getAttribute("data-tabindex") !== "-1") && (e.setAttribute("tabindex", "-1"), e.setAttribute("data-tabindex", "-1"));
2277
+ }
2278
+ const di = /* @__PURE__ */ d.forwardRef(function(t, n) {
2279
+ return /* @__PURE__ */ me("button", {
2280
+ ...t,
2281
+ type: "button",
2282
+ ref: n,
2283
+ tabIndex: -1,
2284
+ style: Nt
2285
+ });
2286
+ });
2287
+ function _i(e) {
2288
+ const {
2289
+ context: t,
2290
+ children: n,
2291
+ disabled: r = !1,
2292
+ order: o = ["content"],
2293
+ guards: s = !0,
2294
+ initialFocus: i = 0,
2295
+ returnFocus: c = !0,
2296
+ restoreFocus: a = !1,
2297
+ modal: l = !0,
2298
+ visuallyHiddenDismiss: u = !1,
2299
+ closeOnFocusOut: m = !0,
2300
+ outsideElementsInert: p = !1,
2301
+ getInsideElements: f = () => []
2302
+ } = e, {
2303
+ open: v,
2304
+ onOpenChange: g,
2305
+ events: y,
2306
+ dataRef: x,
2307
+ elements: {
2308
+ domReference: b,
2309
+ floating: w
2310
+ }
2311
+ } = t, C = ie(() => {
2312
+ var K;
2313
+ return (K = x.current.floatingContext) == null ? void 0 : K.nodeId;
2314
+ }), M = ie(f), k = typeof i == "number" && i < 0, N = en(b) && k, P = ii(), V = P ? s : !0, L = !V || P && p, _ = ye(o), G = ye(i), W = ye(c), R = et(), E = Sr(), $ = d.useRef(null), T = d.useRef(null), h = d.useRef(!1), I = d.useRef(!1), D = d.useRef(-1), ee = d.useRef(-1), F = E != null, O = It(w), J = ie(function(K) {
2315
+ return K === void 0 && (K = O), K ? At(K, lt()) : [];
2316
+ }), j = ie((K) => {
2317
+ const z = J(K);
2318
+ return _.current.map((B) => b && B === "reference" ? b : O && B === "floating" ? O : z).filter(Boolean).flat();
2319
+ });
2320
+ d.useEffect(() => {
2321
+ if (r || !l) return;
2322
+ function K(B) {
2323
+ if (B.key === "Tab") {
2324
+ ce(O, Re(le(O))) && J().length === 0 && !N && de(B);
2325
+ const Q = j(), te = Ae(B);
2326
+ _.current[0] === "reference" && te === b && (de(B), B.shiftKey ? Ke(Q[Q.length - 1]) : Ke(Q[1])), _.current[1] === "floating" && te === O && B.shiftKey && (de(B), Ke(Q[0]));
2327
+ }
2328
+ }
2329
+ const z = le(O);
2330
+ return z.addEventListener("keydown", K), () => {
2331
+ z.removeEventListener("keydown", K);
2332
+ };
2333
+ }, [r, b, O, l, _, N, J, j]), d.useEffect(() => {
2334
+ if (r || !w) return;
2335
+ function K(z) {
2336
+ const B = Ae(z), te = J().indexOf(B);
2337
+ te !== -1 && (D.current = te);
2338
+ }
2339
+ return w.addEventListener("focusin", K), () => {
2340
+ w.removeEventListener("focusin", K);
2341
+ };
2342
+ }, [r, w, J]), d.useEffect(() => {
2343
+ if (r || !m) return;
2344
+ function K() {
2345
+ I.current = !0, setTimeout(() => {
2346
+ I.current = !1;
2347
+ });
2348
+ }
2349
+ function z(te) {
2350
+ const U = te.relatedTarget, fe = te.currentTarget, se = Ae(te);
2351
+ queueMicrotask(() => {
2352
+ const ae = C(), xe = !(ce(b, U) || ce(w, U) || ce(U, w) || ce(E?.portalNode, U) || U != null && U.hasAttribute(ze("focus-guard")) || R && ($e(R.nodesRef.current, ae).find((S) => {
2353
+ var H, A;
2354
+ return ce((H = S.context) == null ? void 0 : H.elements.floating, U) || ce((A = S.context) == null ? void 0 : A.elements.domReference, U);
2355
+ }) || wn(R.nodesRef.current, ae).find((S) => {
2356
+ var H, A, q;
2357
+ return [(H = S.context) == null ? void 0 : H.elements.floating, It((A = S.context) == null ? void 0 : A.elements.floating)].includes(U) || ((q = S.context) == null ? void 0 : q.elements.domReference) === U;
2358
+ })));
2359
+ if (fe === b && O && Wn(O, _), a && fe !== b && !(se != null && se.isConnected) && Re(le(O)) === le(O).body) {
2360
+ ne(O) && O.focus();
2361
+ const S = D.current, H = J(), A = H[S] || H[H.length - 1] || O;
2362
+ ne(A) && A.focus();
2363
+ }
2364
+ if (x.current.insideReactTree) {
2365
+ x.current.insideReactTree = !1;
2366
+ return;
2367
+ }
2368
+ (N || !l) && U && xe && !I.current && // Fix React 18 Strict Mode returnFocus due to double rendering.
2369
+ U !== _n() && (h.current = !0, g(!1, te, "focus-out"));
2370
+ });
2371
+ }
2372
+ const B = !!(!R && E);
2373
+ function Q() {
2374
+ ge(ee), x.current.insideReactTree = !0, ee.current = window.setTimeout(() => {
2375
+ x.current.insideReactTree = !1;
2376
+ });
2377
+ }
2378
+ if (w && ne(b))
2379
+ return b.addEventListener("focusout", z), b.addEventListener("pointerdown", K), w.addEventListener("focusout", z), B && w.addEventListener("focusout", Q, !0), () => {
2380
+ b.removeEventListener("focusout", z), b.removeEventListener("pointerdown", K), w.removeEventListener("focusout", z), B && w.removeEventListener("focusout", Q, !0);
2381
+ };
2382
+ }, [r, b, w, O, l, R, E, g, m, a, J, N, C, _, x]);
2383
+ const oe = d.useRef(null), ve = d.useRef(null), tt = Nn([oe, E?.beforeInsideRef]), Ue = Nn([ve, E?.afterInsideRef]);
2384
+ d.useEffect(() => {
2385
+ var K, z;
2386
+ if (r || !w) return;
2387
+ const B = Array.from((E == null || (K = E.portalNode) == null ? void 0 : K.querySelectorAll("[" + ze("portal") + "]")) || []), te = (z = (R ? wn(R.nodesRef.current, C()) : []).find((se) => {
2388
+ var ae;
2389
+ return en(((ae = se.context) == null ? void 0 : ae.elements.domReference) || null);
2390
+ })) == null || (z = z.context) == null ? void 0 : z.elements.domReference, U = [w, te, ...B, ...M(), $.current, T.current, oe.current, ve.current, E?.beforeOutsideRef.current, E?.afterOutsideRef.current, _.current.includes("reference") || N ? b : null].filter((se) => se != null), fe = l || N ? kn(U, !L, L) : kn(U);
2391
+ return () => {
2392
+ fe();
2393
+ };
2394
+ }, [r, b, w, l, _, E, N, V, L, R, C, M]), X(() => {
2395
+ if (r || !ne(O)) return;
2396
+ const K = le(O), z = Re(K);
2397
+ queueMicrotask(() => {
2398
+ const B = j(O), Q = G.current, te = (typeof Q == "number" ? B[Q] : Q.current) || O, U = ce(O, z);
2399
+ !k && !U && v && Ke(te, {
2400
+ preventScroll: te === O
2401
+ });
2402
+ });
2403
+ }, [r, v, O, k, j, G]), X(() => {
2404
+ if (r || !O) return;
2405
+ const K = le(O), z = Re(K);
2406
+ ai(z);
2407
+ function B(U) {
2408
+ let {
2409
+ reason: fe,
2410
+ event: se,
2411
+ nested: ae
2412
+ } = U;
2413
+ if (["hover", "safe-polygon"].includes(fe) && se.type === "mouseleave" && (h.current = !0), fe === "outside-press")
2414
+ if (ae)
2415
+ h.current = !1;
2416
+ else if (rr(se) || or(se))
2417
+ h.current = !1;
2418
+ else {
2419
+ let xe = !1;
2420
+ document.createElement("div").focus({
2421
+ get preventScroll() {
2422
+ return xe = !0, !1;
2423
+ }
2424
+ }), xe ? h.current = !1 : h.current = !0;
2425
+ }
2426
+ }
2427
+ y.on("openchange", B);
2428
+ const Q = K.createElement("span");
2429
+ Q.setAttribute("tabindex", "-1"), Q.setAttribute("aria-hidden", "true"), Object.assign(Q.style, Nt), F && b && b.insertAdjacentElement("afterend", Q);
2430
+ function te() {
2431
+ if (typeof W.current == "boolean") {
2432
+ const U = b || _n();
2433
+ return U && U.isConnected ? U : Q;
2434
+ }
2435
+ return W.current.current || Q;
2436
+ }
2437
+ return () => {
2438
+ y.off("openchange", B);
2439
+ const U = Re(K), fe = ce(w, U) || R && $e(R.nodesRef.current, C(), !1).some((ae) => {
2440
+ var xe;
2441
+ return ce((xe = ae.context) == null ? void 0 : xe.elements.floating, U);
2442
+ }), se = te();
2443
+ queueMicrotask(() => {
2444
+ const ae = fi(se);
2445
+ // eslint-disable-next-line react-hooks/exhaustive-deps
2446
+ W.current && !h.current && ne(ae) && // If the focus moved somewhere else after mount, avoid returning focus
2447
+ // since it likely entered a different element which should be
2448
+ // respected: https://github.com/floating-ui/floating-ui/issues/2607
2449
+ (!(ae !== U && U !== K.body) || fe) && ae.focus({
2450
+ preventScroll: !0
2451
+ }), Q.remove();
2452
+ });
2453
+ };
2454
+ }, [r, w, O, W, x, y, R, F, b, C]), d.useEffect(() => (queueMicrotask(() => {
2455
+ h.current = !1;
2456
+ }), () => {
2457
+ queueMicrotask(ln);
2458
+ }), [r]), X(() => {
2459
+ if (!r && E)
2460
+ return E.setFocusManagerState({
2461
+ modal: l,
2462
+ closeOnFocusOut: m,
2463
+ open: v,
2464
+ onOpenChange: g,
2465
+ domReference: b
2466
+ }), () => {
2467
+ E.setFocusManagerState(null);
2468
+ };
2469
+ }, [r, E, l, v, g, m, b]), X(() => {
2470
+ r || O && Wn(O, _);
2471
+ }, [r, O, _]);
2472
+ function Oe(K) {
2473
+ return r || !u || !l ? null : /* @__PURE__ */ me(di, {
2474
+ ref: K === "start" ? $ : T,
2475
+ onClick: (z) => g(!1, z.nativeEvent),
2476
+ children: typeof u == "string" ? u : "Dismiss"
2477
+ });
2478
+ }
2479
+ const Ge = !r && V && (l ? !N : !0) && (F || l);
2480
+ return /* @__PURE__ */ qn(Dr, {
2481
+ children: [Ge && /* @__PURE__ */ me(Ot, {
2482
+ "data-type": "inside",
2483
+ ref: tt,
2484
+ onFocus: (K) => {
2485
+ if (l) {
2486
+ const B = j();
2487
+ Ke(o[0] === "reference" ? B[0] : B[B.length - 1]);
2488
+ } else if (E != null && E.preserveTabOrder && E.portalNode)
2489
+ if (h.current = !1, ot(K, E.portalNode)) {
2490
+ const B = ar(b);
2491
+ B?.focus();
2492
+ } else {
2493
+ var z;
2494
+ (z = E.beforeOutsideRef.current) == null || z.focus();
2495
+ }
2496
+ }
2497
+ }), !N && Oe("start"), n, Oe("end"), Ge && /* @__PURE__ */ me(Ot, {
2498
+ "data-type": "inside",
2499
+ ref: Ue,
2500
+ onFocus: (K) => {
2501
+ if (l)
2502
+ Ke(j()[0]);
2503
+ else if (E != null && E.preserveTabOrder && E.portalNode)
2504
+ if (m && (h.current = !0), ot(K, E.portalNode)) {
2505
+ const B = fr(b);
2506
+ B?.focus();
2507
+ } else {
2508
+ var z;
2509
+ (z = E.afterOutsideRef.current) == null || z.focus();
2510
+ }
2511
+ }
2512
+ })]
2513
+ });
2514
+ }
2515
+ let vt = 0;
2516
+ const Vn = "--floating-ui-scrollbar-width";
2517
+ function mi() {
2518
+ const e = sn(), t = /iP(hone|ad|od)|iOS/.test(e) || // iPads can claim to be MacIntel
2519
+ e === "MacIntel" && navigator.maxTouchPoints > 1, n = document.body.style, o = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft ? "paddingLeft" : "paddingRight", s = window.innerWidth - document.documentElement.clientWidth, i = n.left ? parseFloat(n.left) : window.scrollX, c = n.top ? parseFloat(n.top) : window.scrollY;
2520
+ if (n.overflow = "hidden", n.setProperty(Vn, s + "px"), s && (n[o] = s + "px"), t) {
2521
+ var a, l;
2522
+ const u = ((a = window.visualViewport) == null ? void 0 : a.offsetLeft) || 0, m = ((l = window.visualViewport) == null ? void 0 : l.offsetTop) || 0;
2523
+ Object.assign(n, {
2524
+ position: "fixed",
2525
+ top: -(c - Math.floor(m)) + "px",
2526
+ left: -(i - Math.floor(u)) + "px",
2527
+ right: "0"
2528
+ });
2529
+ }
2530
+ return () => {
2531
+ Object.assign(n, {
2532
+ overflow: "",
2533
+ [o]: ""
2534
+ }), n.removeProperty(Vn), t && (Object.assign(n, {
2535
+ position: "",
2536
+ top: "",
2537
+ left: "",
2538
+ right: ""
2539
+ }), window.scrollTo(i, c));
2540
+ };
2541
+ }
2542
+ let Kn = () => {
2543
+ };
2544
+ const Wi = /* @__PURE__ */ d.forwardRef(function(t, n) {
2545
+ const {
2546
+ lockScroll: r = !1,
2547
+ ...o
2548
+ } = t;
2549
+ return X(() => {
2550
+ if (r)
2551
+ return vt++, vt === 1 && (Kn = mi()), () => {
2552
+ vt--, vt === 0 && Kn();
2553
+ };
2554
+ }, [r]), /* @__PURE__ */ me("div", {
2555
+ ref: n,
2556
+ ...o,
2557
+ style: {
2558
+ position: "fixed",
2559
+ overflow: "auto",
2560
+ top: 0,
2561
+ right: 0,
2562
+ bottom: 0,
2563
+ left: 0,
2564
+ ...o.style
2565
+ }
2566
+ });
2567
+ });
2568
+ function $n(e) {
2569
+ return ne(e.target) && e.target.tagName === "BUTTON";
2570
+ }
2571
+ function pi(e) {
2572
+ return ne(e.target) && e.target.tagName === "A";
2573
+ }
2574
+ function Bn(e) {
2575
+ return cn(e);
2576
+ }
2577
+ function Vi(e, t) {
2578
+ t === void 0 && (t = {});
2579
+ const {
2580
+ open: n,
2581
+ onOpenChange: r,
2582
+ dataRef: o,
2583
+ elements: {
2584
+ domReference: s
2585
+ }
2586
+ } = e, {
2587
+ enabled: i = !0,
2588
+ event: c = "click",
2589
+ toggle: a = !0,
2590
+ ignoreMouse: l = !1,
2591
+ keyboardHandlers: u = !0,
2592
+ stickIfOpen: m = !0
2593
+ } = t, p = d.useRef(), f = d.useRef(!1), v = d.useMemo(() => ({
2594
+ onPointerDown(g) {
2595
+ p.current = g.pointerType;
2596
+ },
2597
+ onMouseDown(g) {
2598
+ const y = p.current;
2599
+ g.button === 0 && c !== "click" && (it(y, !0) && l || (n && a && (!(o.current.openEvent && m) || o.current.openEvent.type === "mousedown") ? r(!1, g.nativeEvent, "click") : (g.preventDefault(), r(!0, g.nativeEvent, "click"))));
2600
+ },
2601
+ onClick(g) {
2602
+ const y = p.current;
2603
+ if (c === "mousedown" && p.current) {
2604
+ p.current = void 0;
2605
+ return;
2606
+ }
2607
+ it(y, !0) && l || (n && a && (!(o.current.openEvent && m) || o.current.openEvent.type === "click") ? r(!1, g.nativeEvent, "click") : r(!0, g.nativeEvent, "click"));
2608
+ },
2609
+ onKeyDown(g) {
2610
+ p.current = void 0, !(g.defaultPrevented || !u || $n(g)) && (g.key === " " && !Bn(s) && (g.preventDefault(), f.current = !0), !pi(g) && g.key === "Enter" && r(!(n && a), g.nativeEvent, "click"));
2611
+ },
2612
+ onKeyUp(g) {
2613
+ g.defaultPrevented || !u || $n(g) || Bn(s) || g.key === " " && f.current && (f.current = !1, r(!(n && a), g.nativeEvent, "click"));
2614
+ }
2615
+ }), [o, s, c, l, u, r, n, m, a]);
2616
+ return d.useMemo(() => i ? {
2617
+ reference: v
2618
+ } : {}, [i, v]);
2619
+ }
2620
+ const gi = {
2621
+ pointerdown: "onPointerDown",
2622
+ mousedown: "onMouseDown",
2623
+ click: "onClick"
2624
+ }, hi = {
2625
+ pointerdown: "onPointerDownCapture",
2626
+ mousedown: "onMouseDownCapture",
2627
+ click: "onClickCapture"
2628
+ }, Hn = (e) => {
2629
+ var t, n;
2630
+ return {
2631
+ escapeKey: typeof e == "boolean" ? e : (t = e?.escapeKey) != null ? t : !1,
2632
+ outsidePress: typeof e == "boolean" ? e : (n = e?.outsidePress) != null ? n : !0
2633
+ };
2634
+ };
2635
+ function Ki(e, t) {
2636
+ t === void 0 && (t = {});
2637
+ const {
2638
+ open: n,
2639
+ onOpenChange: r,
2640
+ elements: o,
2641
+ dataRef: s
2642
+ } = e, {
2643
+ enabled: i = !0,
2644
+ escapeKey: c = !0,
2645
+ outsidePress: a = !0,
2646
+ outsidePressEvent: l = "pointerdown",
2647
+ referencePress: u = !1,
2648
+ referencePressEvent: m = "pointerdown",
2649
+ ancestorScroll: p = !1,
2650
+ bubbles: f,
2651
+ capture: v
2652
+ } = t, g = et(), y = ie(typeof a == "function" ? a : () => !1), x = typeof a == "function" ? y : a, b = d.useRef(!1), {
2653
+ escapeKey: w,
2654
+ outsidePress: C
2655
+ } = Hn(f), {
2656
+ escapeKey: M,
2657
+ outsidePress: k
2658
+ } = Hn(v), N = d.useRef(!1), P = ie((R) => {
2659
+ var E;
2660
+ if (!n || !i || !c || R.key !== "Escape" || N.current)
2661
+ return;
2662
+ const $ = (E = s.current.floatingContext) == null ? void 0 : E.nodeId, T = g ? $e(g.nodesRef.current, $) : [];
2663
+ if (!w && (R.stopPropagation(), T.length > 0)) {
2664
+ let h = !0;
2665
+ if (T.forEach((I) => {
2666
+ var D;
2667
+ if ((D = I.context) != null && D.open && !I.context.dataRef.current.__escapeKeyBubbles) {
2668
+ h = !1;
2669
+ return;
2670
+ }
2671
+ }), !h)
2672
+ return;
2673
+ }
2674
+ r(!1, so(R) ? R.nativeEvent : R, "escape-key");
2675
+ }), V = ie((R) => {
2676
+ var E;
2677
+ const $ = () => {
2678
+ var T;
2679
+ P(R), (T = Ae(R)) == null || T.removeEventListener("keydown", $);
2680
+ };
2681
+ (E = Ae(R)) == null || E.addEventListener("keydown", $);
2682
+ }), L = ie((R) => {
2683
+ var E;
2684
+ const $ = s.current.insideReactTree;
2685
+ s.current.insideReactTree = !1;
2686
+ const T = b.current;
2687
+ if (b.current = !1, l === "click" && T || $ || typeof x == "function" && !x(R))
2688
+ return;
2689
+ const h = Ae(R), I = "[" + ze("inert") + "]", D = le(o.floating).querySelectorAll(I);
2690
+ let ee = Y(h) ? h : null;
2691
+ for (; ee && !Me(ee); ) {
2692
+ const j = Pe(ee);
2693
+ if (Me(j) || !Y(j))
2694
+ break;
2695
+ ee = j;
2696
+ }
2697
+ if (D.length && Y(h) && !ro(h) && // Clicked on a direct ancestor (e.g. FloatingOverlay).
2698
+ !ce(h, o.floating) && // If the target root element contains none of the markers, then the
2699
+ // element was injected after the floating element rendered.
2700
+ Array.from(D).every((j) => !ce(ee, j)))
2701
+ return;
2702
+ if (ne(h) && W) {
2703
+ const j = Me(h), oe = we(h), ve = /auto|scroll/, tt = j || ve.test(oe.overflowX), Ue = j || ve.test(oe.overflowY), Oe = tt && h.clientWidth > 0 && h.scrollWidth > h.clientWidth, Ge = Ue && h.clientHeight > 0 && h.scrollHeight > h.clientHeight, K = oe.direction === "rtl", z = Ge && (K ? R.offsetX <= h.offsetWidth - h.clientWidth : R.offsetX > h.clientWidth), B = Oe && R.offsetY > h.clientHeight;
2704
+ if (z || B)
2705
+ return;
2706
+ }
2707
+ const F = (E = s.current.floatingContext) == null ? void 0 : E.nodeId, O = g && $e(g.nodesRef.current, F).some((j) => {
2708
+ var oe;
2709
+ return Kt(R, (oe = j.context) == null ? void 0 : oe.elements.floating);
2710
+ });
2711
+ if (Kt(R, o.floating) || Kt(R, o.domReference) || O)
2712
+ return;
2713
+ const J = g ? $e(g.nodesRef.current, F) : [];
2714
+ if (J.length > 0) {
2715
+ let j = !0;
2716
+ if (J.forEach((oe) => {
2717
+ var ve;
2718
+ if ((ve = oe.context) != null && ve.open && !oe.context.dataRef.current.__outsidePressBubbles) {
2719
+ j = !1;
2720
+ return;
2721
+ }
2722
+ }), !j)
2723
+ return;
2724
+ }
2725
+ r(!1, R, "outside-press");
2726
+ }), _ = ie((R) => {
2727
+ var E;
2728
+ const $ = () => {
2729
+ var T;
2730
+ L(R), (T = Ae(R)) == null || T.removeEventListener(l, $);
2731
+ };
2732
+ (E = Ae(R)) == null || E.addEventListener(l, $);
2733
+ });
2734
+ d.useEffect(() => {
2735
+ if (!n || !i)
2736
+ return;
2737
+ s.current.__escapeKeyBubbles = w, s.current.__outsidePressBubbles = C;
2738
+ let R = -1;
2739
+ function E(D) {
2740
+ r(!1, D, "ancestor-scroll");
2741
+ }
2742
+ function $() {
2743
+ window.clearTimeout(R), N.current = !0;
2744
+ }
2745
+ function T() {
2746
+ R = window.setTimeout(
2747
+ () => {
2748
+ N.current = !1;
2749
+ },
2750
+ // 0ms or 1ms don't work in Safari. 5ms appears to consistently work.
2751
+ // Only apply to WebKit for the test to remain 0ms.
2752
+ Pt() ? 5 : 0
2753
+ );
2754
+ }
2755
+ const h = le(o.floating);
2756
+ c && (h.addEventListener("keydown", M ? V : P, M), h.addEventListener("compositionstart", $), h.addEventListener("compositionend", T)), x && h.addEventListener(l, k ? _ : L, k);
2757
+ let I = [];
2758
+ return p && (Y(o.domReference) && (I = ke(o.domReference)), Y(o.floating) && (I = I.concat(ke(o.floating))), !Y(o.reference) && o.reference && o.reference.contextElement && (I = I.concat(ke(o.reference.contextElement)))), I = I.filter((D) => {
2759
+ var ee;
2760
+ return D !== ((ee = h.defaultView) == null ? void 0 : ee.visualViewport);
2761
+ }), I.forEach((D) => {
2762
+ D.addEventListener("scroll", E, {
2763
+ passive: !0
2764
+ });
2765
+ }), () => {
2766
+ c && (h.removeEventListener("keydown", M ? V : P, M), h.removeEventListener("compositionstart", $), h.removeEventListener("compositionend", T)), x && h.removeEventListener(l, k ? _ : L, k), I.forEach((D) => {
2767
+ D.removeEventListener("scroll", E);
2768
+ }), window.clearTimeout(R);
2769
+ };
2770
+ }, [s, o, c, x, l, n, r, p, i, w, C, P, M, V, L, k, _]), d.useEffect(() => {
2771
+ s.current.insideReactTree = !1;
2772
+ }, [s, x, l]);
2773
+ const G = d.useMemo(() => ({
2774
+ onKeyDown: P,
2775
+ ...u && {
2776
+ [gi[m]]: (R) => {
2777
+ r(!1, R.nativeEvent, "reference-press");
2778
+ },
2779
+ ...m !== "click" && {
2780
+ onClick(R) {
2781
+ r(!1, R.nativeEvent, "reference-press");
2782
+ }
2783
+ }
2784
+ }
2785
+ }), [P, r, u, m]), W = d.useMemo(() => ({
2786
+ onKeyDown: P,
2787
+ onMouseDown() {
2788
+ b.current = !0;
2789
+ },
2790
+ onMouseUp() {
2791
+ b.current = !0;
2792
+ },
2793
+ [hi[l]]: () => {
2794
+ s.current.insideReactTree = !0;
2795
+ }
2796
+ }), [P, l, s]);
2797
+ return d.useMemo(() => i ? {
2798
+ reference: G,
2799
+ floating: W
2800
+ } : {}, [i, G, W]);
2801
+ }
2802
+ function vi(e) {
2803
+ const {
2804
+ open: t = !1,
2805
+ onOpenChange: n,
2806
+ elements: r
2807
+ } = e, o = Ft(), s = d.useRef({}), [i] = d.useState(() => Cr()), c = Ze() != null;
2808
+ if (process.env.NODE_ENV !== "production") {
2809
+ const f = r.reference;
2810
+ f && !Y(f) && ri("Cannot pass a virtual element to the `elements.reference` option,", "as it must be a real DOM element. Use `refs.setPositionReference()`", "instead.");
2811
+ }
2812
+ const [a, l] = d.useState(r.reference), u = ie((f, v, g) => {
2813
+ s.current.openEvent = f ? v : void 0, i.emit("openchange", {
2814
+ open: f,
2815
+ event: v,
2816
+ reason: g,
2817
+ nested: c
2818
+ }), n?.(f, v, g);
2819
+ }), m = d.useMemo(() => ({
2820
+ setPositionReference: l
2821
+ }), []), p = d.useMemo(() => ({
2822
+ reference: a || r.reference || null,
2823
+ floating: r.floating || null,
2824
+ domReference: r.reference
2825
+ }), [a, r.reference, r.floating]);
2826
+ return d.useMemo(() => ({
2827
+ dataRef: s,
2828
+ open: t,
2829
+ onOpenChange: u,
2830
+ elements: p,
2831
+ events: i,
2832
+ floatingId: o,
2833
+ refs: m
2834
+ }), [t, u, p, i, o, m]);
2835
+ }
2836
+ function $i(e) {
2837
+ e === void 0 && (e = {});
2838
+ const {
2839
+ nodeId: t
2840
+ } = e, n = vi({
2841
+ ...e,
2842
+ elements: {
2843
+ reference: null,
2844
+ floating: null,
2845
+ ...e.elements
2846
+ }
2847
+ }), r = e.rootContext || n, o = r.elements, [s, i] = d.useState(null), [c, a] = d.useState(null), u = o?.domReference || s, m = d.useRef(null), p = et();
2848
+ X(() => {
2849
+ u && (m.current = u);
2850
+ }, [u]);
2851
+ const f = jo({
2852
+ ...e,
2853
+ elements: {
2854
+ ...o,
2855
+ ...c && {
2856
+ reference: c
2857
+ }
2858
+ }
2859
+ }), v = d.useCallback((w) => {
2860
+ const C = Y(w) ? {
2861
+ getBoundingClientRect: () => w.getBoundingClientRect(),
2862
+ getClientRects: () => w.getClientRects(),
2863
+ contextElement: w
2864
+ } : w;
2865
+ a(C), f.refs.setReference(C);
2866
+ }, [f.refs]), g = d.useCallback((w) => {
2867
+ (Y(w) || w === null) && (m.current = w, i(w)), (Y(f.refs.reference.current) || f.refs.reference.current === null || // Don't allow setting virtual elements using the old technique back to
2868
+ // `null` to support `positionReference` + an unstable `reference`
2869
+ // callback ref.
2870
+ w !== null && !Y(w)) && f.refs.setReference(w);
2871
+ }, [f.refs]), y = d.useMemo(() => ({
2872
+ ...f.refs,
2873
+ setReference: g,
2874
+ setPositionReference: v,
2875
+ domReference: m
2876
+ }), [f.refs, g, v]), x = d.useMemo(() => ({
2877
+ ...f.elements,
2878
+ domReference: u
2879
+ }), [f.elements, u]), b = d.useMemo(() => ({
2880
+ ...f,
2881
+ ...r,
2882
+ refs: y,
2883
+ elements: x,
2884
+ nodeId: t
2885
+ }), [f, y, x, t, r]);
2886
+ return X(() => {
2887
+ r.dataRef.current.floatingContext = b;
2888
+ const w = p?.nodesRef.current.find((C) => C.id === t);
2889
+ w && (w.context = b);
2890
+ }), d.useMemo(() => ({
2891
+ ...f,
2892
+ context: b,
2893
+ refs: y,
2894
+ elements: x
2895
+ }), [f, y, x, b]);
2896
+ }
2897
+ function qt() {
2898
+ return Zr() && tr();
2899
+ }
2900
+ function Bi(e, t) {
2901
+ t === void 0 && (t = {});
2902
+ const {
2903
+ open: n,
2904
+ onOpenChange: r,
2905
+ events: o,
2906
+ dataRef: s,
2907
+ elements: i
2908
+ } = e, {
2909
+ enabled: c = !0,
2910
+ visibleOnly: a = !0
2911
+ } = t, l = d.useRef(!1), u = d.useRef(-1), m = d.useRef(!0);
2912
+ d.useEffect(() => {
2913
+ if (!c) return;
2914
+ const f = pe(i.domReference);
2915
+ function v() {
2916
+ !n && ne(i.domReference) && i.domReference === Re(le(i.domReference)) && (l.current = !0);
2917
+ }
2918
+ function g() {
2919
+ m.current = !0;
2920
+ }
2921
+ function y() {
2922
+ m.current = !1;
2923
+ }
2924
+ return f.addEventListener("blur", v), qt() && (f.addEventListener("keydown", g, !0), f.addEventListener("pointerdown", y, !0)), () => {
2925
+ f.removeEventListener("blur", v), qt() && (f.removeEventListener("keydown", g, !0), f.removeEventListener("pointerdown", y, !0));
2926
+ };
2927
+ }, [i.domReference, n, c]), d.useEffect(() => {
2928
+ if (!c) return;
2929
+ function f(v) {
2930
+ let {
2931
+ reason: g
2932
+ } = v;
2933
+ (g === "reference-press" || g === "escape-key") && (l.current = !0);
2934
+ }
2935
+ return o.on("openchange", f), () => {
2936
+ o.off("openchange", f);
2937
+ };
2938
+ }, [o, c]), d.useEffect(() => () => {
2939
+ ge(u);
2940
+ }, []);
2941
+ const p = d.useMemo(() => ({
2942
+ onMouseLeave() {
2943
+ l.current = !1;
2944
+ },
2945
+ onFocus(f) {
2946
+ if (l.current) return;
2947
+ const v = Ae(f.nativeEvent);
2948
+ if (a && Y(v)) {
2949
+ if (qt() && !f.relatedTarget) {
2950
+ if (!m.current && !cn(v))
2951
+ return;
2952
+ } else if (!oo(v))
2953
+ return;
2954
+ }
2955
+ r(!0, f.nativeEvent, "focus");
2956
+ },
2957
+ onBlur(f) {
2958
+ l.current = !1;
2959
+ const v = f.relatedTarget, g = f.nativeEvent, y = Y(v) && v.hasAttribute(ze("focus-guard")) && v.getAttribute("data-type") === "outside";
2960
+ u.current = window.setTimeout(() => {
2961
+ var x;
2962
+ const b = Re(i.domReference ? i.domReference.ownerDocument : document);
2963
+ !v && b === i.domReference || ce((x = s.current.floatingContext) == null ? void 0 : x.refs.floating.current, b) || ce(i.domReference, b) || y || r(!1, g, "focus");
2964
+ });
2965
+ }
2966
+ }), [s, i.domReference, r, a]);
2967
+ return d.useMemo(() => c ? {
2968
+ reference: p
2969
+ } : {}, [c, p]);
2970
+ }
2971
+ function Xt(e, t, n) {
2972
+ const r = /* @__PURE__ */ new Map(), o = n === "item";
2973
+ let s = e;
2974
+ if (o && e) {
2975
+ const {
2976
+ [On]: i,
2977
+ [An]: c,
2978
+ ...a
2979
+ } = e;
2980
+ s = a;
2981
+ }
2982
+ return {
2983
+ ...n === "floating" && {
2984
+ tabIndex: -1,
2985
+ [Qo]: ""
2986
+ },
2987
+ ...s,
2988
+ ...t.map((i) => {
2989
+ const c = i ? i[n] : null;
2990
+ return typeof c == "function" ? e ? c(e) : null : c;
2991
+ }).concat(e).reduce((i, c) => (c && Object.entries(c).forEach((a) => {
2992
+ let [l, u] = a;
2993
+ if (!(o && [On, An].includes(l)))
2994
+ if (l.indexOf("on") === 0) {
2995
+ if (r.has(l) || r.set(l, []), typeof u == "function") {
2996
+ var m;
2997
+ (m = r.get(l)) == null || m.push(u), i[l] = function() {
2998
+ for (var p, f = arguments.length, v = new Array(f), g = 0; g < f; g++)
2999
+ v[g] = arguments[g];
3000
+ return (p = r.get(l)) == null ? void 0 : p.map((y) => y(...v)).find((y) => y !== void 0);
3001
+ };
3002
+ }
3003
+ } else
3004
+ i[l] = u;
3005
+ }), i), {})
3006
+ };
3007
+ }
3008
+ function Hi(e) {
3009
+ e === void 0 && (e = []);
3010
+ const t = e.map((c) => c?.reference), n = e.map((c) => c?.floating), r = e.map((c) => c?.item), o = d.useCallback(
3011
+ (c) => Xt(c, e, "reference"),
3012
+ // eslint-disable-next-line react-hooks/exhaustive-deps
3013
+ t
3014
+ ), s = d.useCallback(
3015
+ (c) => Xt(c, e, "floating"),
3016
+ // eslint-disable-next-line react-hooks/exhaustive-deps
3017
+ n
3018
+ ), i = d.useCallback(
3019
+ (c) => Xt(c, e, "item"),
3020
+ // eslint-disable-next-line react-hooks/exhaustive-deps
3021
+ r
3022
+ );
3023
+ return d.useMemo(() => ({
3024
+ getReferenceProps: o,
3025
+ getFloatingProps: s,
3026
+ getItemProps: i
3027
+ }), [o, s, i]);
3028
+ }
3029
+ const bi = "Escape";
3030
+ function _t(e, t, n) {
3031
+ switch (e) {
3032
+ case "vertical":
3033
+ return t;
3034
+ case "horizontal":
3035
+ return n;
3036
+ default:
3037
+ return t || n;
3038
+ }
3039
+ }
3040
+ function bt(e, t) {
3041
+ return _t(t, e === st || e === Fe, e === Ne || e === _e);
3042
+ }
3043
+ function Yt(e, t, n) {
3044
+ return _t(t, e === Fe, n ? e === Ne : e === _e) || e === "Enter" || e === " " || e === "";
3045
+ }
3046
+ function zn(e, t, n) {
3047
+ return _t(t, n ? e === Ne : e === _e, e === Fe);
3048
+ }
3049
+ function Un(e, t, n, r) {
3050
+ const o = n ? e === _e : e === Ne, s = e === st;
3051
+ return t === "both" || t === "horizontal" && r && r > 1 ? e === bi : _t(t, o, s);
3052
+ }
3053
+ function zi(e, t) {
3054
+ const {
3055
+ open: n,
3056
+ onOpenChange: r,
3057
+ elements: o,
3058
+ floatingId: s
3059
+ } = e, {
3060
+ listRef: i,
3061
+ activeIndex: c,
3062
+ onNavigate: a = () => {
3063
+ },
3064
+ enabled: l = !0,
3065
+ selectedIndex: u = null,
3066
+ allowEscape: m = !1,
3067
+ loop: p = !1,
3068
+ nested: f = !1,
3069
+ rtl: v = !1,
3070
+ virtual: g = !1,
3071
+ focusItemOnOpen: y = "auto",
3072
+ focusItemOnHover: x = !0,
3073
+ openOnArrowKeyDown: b = !0,
3074
+ disabledIndices: w = void 0,
3075
+ orientation: C = "vertical",
3076
+ parentOrientation: M,
3077
+ cols: k = 1,
3078
+ scrollItemIntoView: N = !0,
3079
+ virtualItemRef: P,
3080
+ itemSizes: V,
3081
+ dense: L = !1
3082
+ } = t;
3083
+ process.env.NODE_ENV !== "production" && (m && (p || zt("`useListNavigation` looping must be enabled to allow escaping."), g || zt("`useListNavigation` must be virtual to allow escaping.")), C === "vertical" && k > 1 && zt("In grid list navigation mode (`cols` > 1), the `orientation` should", 'be either "horizontal" or "both".'));
3084
+ const _ = It(o.floating), G = ye(_), W = Ze(), R = et();
3085
+ X(() => {
3086
+ e.dataRef.current.orientation = C;
3087
+ }, [e, C]);
3088
+ const E = ie(() => {
3089
+ a(h.current === -1 ? null : h.current);
3090
+ }), $ = en(o.domReference), T = d.useRef(y), h = d.useRef(u ?? -1), I = d.useRef(null), D = d.useRef(!0), ee = d.useRef(E), F = d.useRef(!!o.floating), O = d.useRef(n), J = d.useRef(!1), j = d.useRef(!1), oe = ye(w), ve = ye(n), tt = ye(N), Ue = ye(u), [Oe, Ge] = d.useState(), [K, z] = d.useState(), B = ie(() => {
3091
+ function S(Z) {
3092
+ if (g) {
3093
+ var re;
3094
+ (re = Z.id) != null && re.endsWith("-fui-option") && (Z.id = s + "-" + Math.random().toString(16).slice(2, 10)), Ge(Z.id), R?.events.emit("virtualfocus", Z), P && (P.current = Z);
3095
+ } else
3096
+ Ke(Z, {
3097
+ sync: J.current,
3098
+ preventScroll: !0
3099
+ });
3100
+ }
3101
+ const H = i.current[h.current], A = j.current;
3102
+ H && S(H), (J.current ? (Z) => Z() : requestAnimationFrame)(() => {
3103
+ const Z = i.current[h.current] || H;
3104
+ if (!Z) return;
3105
+ H || S(Z);
3106
+ const re = tt.current;
3107
+ re && te && (A || !D.current) && (Z.scrollIntoView == null || Z.scrollIntoView(typeof re == "boolean" ? {
3108
+ block: "nearest",
3109
+ inline: "nearest"
3110
+ } : re));
3111
+ });
3112
+ });
3113
+ X(() => {
3114
+ l && (n && o.floating ? T.current && u != null && (j.current = !0, h.current = u, E()) : F.current && (h.current = -1, ee.current()));
3115
+ }, [l, n, o.floating, u, E]), X(() => {
3116
+ if (l && n && o.floating)
3117
+ if (c == null) {
3118
+ if (J.current = !1, Ue.current != null)
3119
+ return;
3120
+ if (F.current && (h.current = -1, B()), (!O.current || !F.current) && T.current && (I.current != null || T.current === !0 && I.current == null)) {
3121
+ let S = 0;
3122
+ const H = () => {
3123
+ i.current[0] == null ? (S < 2 && (S ? requestAnimationFrame : queueMicrotask)(H), S++) : (h.current = I.current == null || Yt(I.current, C, v) || f ? yt(i, oe.current) : tn(i, oe.current), I.current = null, E());
3124
+ };
3125
+ H();
3126
+ }
3127
+ } else qe(i, c) || (h.current = c, B(), j.current = !1);
3128
+ }, [l, n, o.floating, c, Ue, f, i, C, v, E, B, oe]), X(() => {
3129
+ var S;
3130
+ if (!l || o.floating || !R || g || !F.current)
3131
+ return;
3132
+ const H = R.nodesRef.current, A = (S = H.find((re) => re.id === W)) == null || (S = S.context) == null ? void 0 : S.elements.floating, q = Re(le(o.floating)), Z = H.some((re) => re.context && ce(re.context.elements.floating, q));
3133
+ A && !Z && D.current && A.focus({
3134
+ preventScroll: !0
3135
+ });
3136
+ }, [l, o.floating, R, W, g]), X(() => {
3137
+ if (!l || !R || !g || W) return;
3138
+ function S(H) {
3139
+ z(H.id), P && (P.current = H);
3140
+ }
3141
+ return R.events.on("virtualfocus", S), () => {
3142
+ R.events.off("virtualfocus", S);
3143
+ };
3144
+ }, [l, R, g, W, P]), X(() => {
3145
+ ee.current = E, O.current = n, F.current = !!o.floating;
3146
+ }), X(() => {
3147
+ n || (I.current = null, T.current = y);
3148
+ }, [n, y]);
3149
+ const Q = c != null, te = d.useMemo(() => {
3150
+ function S(A) {
3151
+ if (!ve.current) return;
3152
+ const q = i.current.indexOf(A);
3153
+ q !== -1 && h.current !== q && (h.current = q, E());
3154
+ }
3155
+ return {
3156
+ onFocus(A) {
3157
+ let {
3158
+ currentTarget: q
3159
+ } = A;
3160
+ J.current = !0, S(q);
3161
+ },
3162
+ onClick: (A) => {
3163
+ let {
3164
+ currentTarget: q
3165
+ } = A;
3166
+ return q.focus({
3167
+ preventScroll: !0
3168
+ });
3169
+ },
3170
+ // Safari
3171
+ onMouseMove(A) {
3172
+ let {
3173
+ currentTarget: q
3174
+ } = A;
3175
+ J.current = !0, j.current = !1, x && S(q);
3176
+ },
3177
+ onPointerLeave(A) {
3178
+ let {
3179
+ pointerType: q
3180
+ } = A;
3181
+ if (!(!D.current || q === "touch") && (J.current = !0, !!x && (h.current = -1, E(), !g))) {
3182
+ var Z;
3183
+ (Z = G.current) == null || Z.focus({
3184
+ preventScroll: !0
3185
+ });
3186
+ }
3187
+ }
3188
+ };
3189
+ }, [ve, G, x, i, E, g]), U = d.useCallback(() => {
3190
+ var S;
3191
+ return M ?? (R == null || (S = R.nodesRef.current.find((H) => H.id === W)) == null || (S = S.context) == null || (S = S.dataRef) == null ? void 0 : S.current.orientation);
3192
+ }, [W, R, M]), fe = ie((S) => {
3193
+ if (D.current = !1, J.current = !0, S.which === 229 || !ve.current && S.currentTarget === G.current)
3194
+ return;
3195
+ if (f && Un(S.key, C, v, k)) {
3196
+ bt(S.key, U()) || de(S), r(!1, S.nativeEvent, "list-navigation"), ne(o.domReference) && (g ? R?.events.emit("virtualfocus", o.domReference) : o.domReference.focus());
3197
+ return;
3198
+ }
3199
+ const H = h.current, A = yt(i, w), q = tn(i, w);
3200
+ if ($ || (S.key === "Home" && (de(S), h.current = A, E()), S.key === "End" && (de(S), h.current = q, E())), k > 1) {
3201
+ const Z = V || Array.from({
3202
+ length: i.current.length
3203
+ }, () => ({
3204
+ width: 1,
3205
+ height: 1
3206
+ })), re = sr(Z, k, L), nt = re.findIndex((be) => be != null && !Be(i, be, w)), at = re.reduce((be, Ve, ft) => Ve != null && !Be(i, Ve, w) ? ft : be, -1), rt = re[ir({
3207
+ current: re.map((be) => be != null ? i.current[be] : null)
3208
+ }, {
3209
+ event: S,
3210
+ orientation: C,
3211
+ loop: p,
3212
+ rtl: v,
3213
+ cols: k,
3214
+ // treat undefined (empty grid spaces) as disabled indices so we
3215
+ // don't end up in them
3216
+ disabledIndices: ur([...(typeof w != "function" ? w : null) || i.current.map((be, Ve) => Be(i, Ve, w) ? Ve : void 0), void 0], re),
3217
+ minIndex: nt,
3218
+ maxIndex: at,
3219
+ prevIndex: cr(
3220
+ h.current > q ? A : h.current,
3221
+ Z,
3222
+ re,
3223
+ k,
3224
+ // use a corner matching the edge closest to the direction
3225
+ // we're moving in so we don't end up in the same item. Prefer
3226
+ // top/left over bottom/right.
3227
+ S.key === Fe ? "bl" : S.key === (v ? Ne : _e) ? "tr" : "tl"
3228
+ ),
3229
+ stopEvent: !0
3230
+ })];
3231
+ if (rt != null && (h.current = rt, E()), C === "both")
3232
+ return;
3233
+ }
3234
+ if (bt(S.key, C)) {
3235
+ if (de(S), n && !g && Re(S.currentTarget.ownerDocument) === S.currentTarget) {
3236
+ h.current = Yt(S.key, C, v) ? A : q, E();
3237
+ return;
3238
+ }
3239
+ Yt(S.key, C, v) ? p ? h.current = H >= q ? m && H !== i.current.length ? -1 : A : ue(i, {
3240
+ startingIndex: H,
3241
+ disabledIndices: w
3242
+ }) : h.current = Math.min(q, ue(i, {
3243
+ startingIndex: H,
3244
+ disabledIndices: w
3245
+ })) : p ? h.current = H <= A ? m && H !== -1 ? i.current.length : q : ue(i, {
3246
+ startingIndex: H,
3247
+ decrement: !0,
3248
+ disabledIndices: w
3249
+ }) : h.current = Math.max(A, ue(i, {
3250
+ startingIndex: H,
3251
+ decrement: !0,
3252
+ disabledIndices: w
3253
+ })), qe(i, h.current) && (h.current = -1), E();
3254
+ }
3255
+ }), se = d.useMemo(() => g && n && Q && {
3256
+ "aria-activedescendant": K || Oe
3257
+ }, [g, n, Q, K, Oe]), ae = d.useMemo(() => ({
3258
+ "aria-orientation": C === "both" ? void 0 : C,
3259
+ ...$ ? {} : se,
3260
+ onKeyDown: fe,
3261
+ onPointerMove() {
3262
+ D.current = !0;
3263
+ }
3264
+ }), [se, fe, C, $]), xe = d.useMemo(() => {
3265
+ function S(A) {
3266
+ y === "auto" && rr(A.nativeEvent) && (T.current = !0);
3267
+ }
3268
+ function H(A) {
3269
+ T.current = y, y === "auto" && or(A.nativeEvent) && (T.current = !0);
3270
+ }
3271
+ return {
3272
+ ...se,
3273
+ onKeyDown(A) {
3274
+ D.current = !1;
3275
+ const q = A.key.startsWith("Arrow"), Z = ["Home", "End"].includes(A.key), re = q || Z, nt = zn(A.key, C, v), at = Un(A.key, C, v, k), rt = zn(A.key, U(), v), be = bt(A.key, C), Ve = (f ? rt : be) || A.key === "Enter" || A.key.trim() === "";
3276
+ if (g && n) {
3277
+ const dt = R?.nodesRef.current.find((mt) => mt.parentId == null), De = R && dt ? io(R.nodesRef.current, dt.id) : null;
3278
+ if (re && De && P) {
3279
+ const mt = new KeyboardEvent("keydown", {
3280
+ key: A.key,
3281
+ bubbles: !0
3282
+ });
3283
+ if (nt || at) {
3284
+ var ft, an;
3285
+ const Mr = ((ft = De.context) == null ? void 0 : ft.elements.domReference) === A.currentTarget, dn = at && !Mr ? (an = De.context) == null ? void 0 : an.elements.domReference : nt ? i.current.find((mn) => mn?.id === Oe) : null;
3286
+ dn && (de(A), dn.dispatchEvent(mt), z(void 0));
3287
+ }
3288
+ if ((be || Z) && De.context && De.context.open && De.parentId && A.currentTarget !== De.context.elements.domReference) {
3289
+ var fn;
3290
+ de(A), (fn = De.context.elements.domReference) == null || fn.dispatchEvent(mt);
3291
+ return;
3292
+ }
3293
+ }
3294
+ return fe(A);
3295
+ }
3296
+ if (!(!n && !b && q)) {
3297
+ if (Ve) {
3298
+ const dt = bt(A.key, U());
3299
+ I.current = f && dt ? null : A.key;
3300
+ }
3301
+ if (f) {
3302
+ rt && (de(A), n ? (h.current = yt(i, oe.current), E()) : r(!0, A.nativeEvent, "list-navigation"));
3303
+ return;
3304
+ }
3305
+ be && (u != null && (h.current = u), de(A), !n && b ? r(!0, A.nativeEvent, "list-navigation") : fe(A), n && E());
3306
+ }
3307
+ },
3308
+ onFocus() {
3309
+ n && !g && (h.current = -1, E());
3310
+ },
3311
+ onPointerDown: H,
3312
+ onPointerEnter: H,
3313
+ onMouseDown: S,
3314
+ onClick: S
3315
+ };
3316
+ }, [Oe, se, k, fe, oe, y, i, f, E, r, n, b, C, U, v, u, R, g, P]);
3317
+ return d.useMemo(() => l ? {
3318
+ reference: xe,
3319
+ floating: ae,
3320
+ item: te
3321
+ } : {}, [l, xe, ae, te]);
3322
+ }
3323
+ const yi = /* @__PURE__ */ new Map([["select", "listbox"], ["combobox", "listbox"], ["label", !1]]);
3324
+ function Ui(e, t) {
3325
+ var n, r;
3326
+ t === void 0 && (t = {});
3327
+ const {
3328
+ open: o,
3329
+ elements: s,
3330
+ floatingId: i
3331
+ } = e, {
3332
+ enabled: c = !0,
3333
+ role: a = "dialog"
3334
+ } = t, l = Ft(), u = ((n = s.domReference) == null ? void 0 : n.id) || l, m = d.useMemo(() => {
3335
+ var b;
3336
+ return ((b = It(s.floating)) == null ? void 0 : b.id) || i;
3337
+ }, [s.floating, i]), p = (r = yi.get(a)) != null ? r : a, v = Ze() != null, g = d.useMemo(() => p === "tooltip" || a === "label" ? {
3338
+ ["aria-" + (a === "label" ? "labelledby" : "describedby")]: o ? m : void 0
3339
+ } : {
3340
+ "aria-expanded": o ? "true" : "false",
3341
+ "aria-haspopup": p === "alertdialog" ? "dialog" : p,
3342
+ "aria-controls": o ? m : void 0,
3343
+ ...p === "listbox" && {
3344
+ role: "combobox"
3345
+ },
3346
+ ...p === "menu" && {
3347
+ id: u
3348
+ },
3349
+ ...p === "menu" && v && {
3350
+ role: "menuitem"
3351
+ },
3352
+ ...a === "select" && {
3353
+ "aria-autocomplete": "none"
3354
+ },
3355
+ ...a === "combobox" && {
3356
+ "aria-autocomplete": "list"
3357
+ }
3358
+ }, [p, m, v, o, u, a]), y = d.useMemo(() => {
3359
+ const b = {
3360
+ id: m,
3361
+ ...p && {
3362
+ role: p
3363
+ }
3364
+ };
3365
+ return p === "tooltip" || a === "label" ? b : {
3366
+ ...b,
3367
+ ...p === "menu" && {
3368
+ "aria-labelledby": u
3369
+ }
3370
+ };
3371
+ }, [p, m, u, a]), x = d.useCallback((b) => {
3372
+ let {
3373
+ active: w,
3374
+ selected: C
3375
+ } = b;
3376
+ const M = {
3377
+ role: "option",
3378
+ ...w && {
3379
+ id: m + "-fui-option"
3380
+ }
3381
+ };
3382
+ switch (a) {
3383
+ case "select":
3384
+ case "combobox":
3385
+ return {
3386
+ ...M,
3387
+ "aria-selected": C
3388
+ };
3389
+ }
3390
+ return {};
3391
+ }, [m, a]);
3392
+ return d.useMemo(() => c ? {
3393
+ reference: g,
3394
+ floating: y,
3395
+ item: x
3396
+ } : {}, [c, g, y, x]);
3397
+ }
3398
+ function wi(e, t) {
3399
+ const [n, r] = d.useState(e);
3400
+ return e && !n && r(!0), d.useEffect(() => {
3401
+ if (!e && n) {
3402
+ const o = setTimeout(() => r(!1), t);
3403
+ return () => clearTimeout(o);
3404
+ }
3405
+ }, [e, n, t]), n;
3406
+ }
3407
+ function Gi(e, t) {
3408
+ t === void 0 && (t = {});
3409
+ const {
3410
+ open: n,
3411
+ elements: {
3412
+ floating: r
3413
+ }
3414
+ } = e, {
3415
+ duration: o = 250
3416
+ } = t, i = (typeof o == "number" ? o : o.close) || 0, [c, a] = d.useState("unmounted"), l = wi(n, i);
3417
+ return !l && c === "close" && a("unmounted"), X(() => {
3418
+ if (r) {
3419
+ if (n) {
3420
+ a("initial");
3421
+ const u = requestAnimationFrame(() => {
3422
+ nn.flushSync(() => {
3423
+ a("open");
3424
+ });
3425
+ });
3426
+ return () => {
3427
+ cancelAnimationFrame(u);
3428
+ };
3429
+ }
3430
+ a("close");
3431
+ }
3432
+ }, [n, r]), {
3433
+ isMounted: l,
3434
+ status: c
3435
+ };
3436
+ }
3437
+ export {
3438
+ Mi as C,
3439
+ ki as F,
3440
+ Pi as a,
3441
+ Ze as b,
3442
+ Di as c,
3443
+ Li as d,
3444
+ Ni as e,
3445
+ Yo as f,
3446
+ _i as g,
3447
+ Oi as h,
3448
+ $i as i,
3449
+ Ci as j,
3450
+ Ki as k,
3451
+ Ui as l,
3452
+ Hi as m,
3453
+ zi as n,
3454
+ Ii as o,
3455
+ Si as p,
3456
+ Ti as q,
3457
+ Fi as r,
3458
+ Ai as s,
3459
+ Bi as t,
3460
+ Jo as u,
3461
+ Vi as v,
3462
+ Gi as w,
3463
+ Wi as x
3464
+ };