@iamfiro/design 0.1.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/AGENTS.md +1 -0
  2. package/agents/INDEX.md +1 -0
  3. package/agents/brand-icon/AGENTS.md +2 -2
  4. package/agents/social-login-button/AGENTS.md +156 -0
  5. package/lib/components/Accordion/Accordion2.js +135 -0
  6. package/lib/components/ActionBar/ActionBar2.js +66 -0
  7. package/lib/components/Alert/Alert2.js +131 -0
  8. package/lib/components/AppShell/AppShell2.js +94 -0
  9. package/lib/components/AreaChart/AreaChart.js +59 -0
  10. package/lib/components/BarChart/BarChart2.js +243 -0
  11. package/lib/components/BarList/BarList2.js +172 -0
  12. package/lib/components/Breadcrumb/Breadcrumb2.js +90 -0
  13. package/lib/components/Calendar/Calendar2.js +309 -0
  14. package/lib/components/Calendar/DatePicker2.js +228 -0
  15. package/lib/components/Calendar/date.js +118 -0
  16. package/lib/components/Card/Card2.js +103 -0
  17. package/lib/components/CardFrame/CardFrame2.js +67 -0
  18. package/lib/components/Chart/ChartParts.js +150 -0
  19. package/lib/components/Chart/chart2.js +96 -0
  20. package/lib/components/Chart/useChartInteraction.js +94 -0
  21. package/lib/components/ChatBubble/ChatBubble2.js +174 -0
  22. package/lib/components/ChatBubble/formatChatTime.js +48 -0
  23. package/lib/components/ChatComposer/ChatComposer2.js +153 -0
  24. package/lib/components/CodeBlock/CodeBlock2.js +93 -0
  25. package/lib/components/CodeBlock/highlight.js +111 -0
  26. package/lib/components/ColorPicker/ColorPicker2.js +609 -0
  27. package/lib/components/ColorPicker/color.js +180 -0
  28. package/lib/components/ColorPicker/presets.js +70 -0
  29. package/lib/components/Combobox/Combobox2.js +228 -0
  30. package/lib/components/CommandMenu/CommandMenu.js +267 -0
  31. package/lib/components/Comment/Comment2.js +110 -0
  32. package/lib/components/ContextMenu/ContextMenu2.js +168 -0
  33. package/lib/components/DataGrid/DataGrid2.js +1998 -0
  34. package/lib/components/DataGrid/GridPopover.js +154 -0
  35. package/lib/components/DataGrid/anchor.js +50 -0
  36. package/lib/components/DataGrid/model.js +557 -0
  37. package/lib/components/DataGrid/panels.js +701 -0
  38. package/lib/components/DataGrid/typeMeta.js +75 -0
  39. package/lib/components/DataGrid/types.js +53 -0
  40. package/lib/components/DescriptionList/DescriptionList2.js +180 -0
  41. package/lib/components/Dialog/AlertDialog.js +119 -0
  42. package/lib/components/Dialog/Dialog2.js +110 -0
  43. package/lib/components/Dialog/modal.js +92 -0
  44. package/lib/components/Drawer/Drawer2.js +244 -0
  45. package/lib/components/DropdownMenu/DropdownMenu2.js +393 -0
  46. package/lib/components/DropdownMenu/menuCore.js +63 -0
  47. package/lib/components/Dropzone/Dropzone2.js +145 -0
  48. package/lib/components/EmptyState/EmptyState2.js +70 -0
  49. package/lib/components/FileChip/FileChip2.js +94 -0
  50. package/lib/components/FileUpload/FileUpload.js +259 -0
  51. package/lib/components/FilterChips/FilterChips2.js +101 -0
  52. package/lib/components/FunnelChart/FunnelChart2.js +283 -0
  53. package/lib/components/FunnelChart/funnel.js +72 -0
  54. package/lib/components/Highlight/Highlight2.js +100 -0
  55. package/lib/components/HoverCard/HoverCard.js +134 -0
  56. package/lib/components/InlineDiff/InlineDiff2.js +215 -0
  57. package/lib/components/InlineDiff/diff.js +126 -0
  58. package/lib/components/InlineDiff/useDiffReview.js +110 -0
  59. package/lib/components/Kanban/Kanban2.js +691 -0
  60. package/lib/components/Kanban/KanbanCard.js +159 -0
  61. package/lib/components/Kanban/move.js +69 -0
  62. package/lib/components/LineChart/LineChart2.js +342 -0
  63. package/lib/components/List/List2.js +132 -0
  64. package/lib/components/Listbox/Listbox2.js +163 -0
  65. package/lib/components/Marker/Marker2.js +82 -0
  66. package/lib/components/Menubar/Menubar2.js +222 -0
  67. package/lib/components/MultiSelect/MultiSelect2.js +204 -0
  68. package/lib/components/NavigationMenu/NavigationMenu2.js +481 -0
  69. package/lib/components/NoticeStack/NoticeStack2.js +178 -0
  70. package/lib/components/NumberStepper/NumberStepper2.js +128 -0
  71. package/lib/components/OtpInput/OtpInput2.js +122 -0
  72. package/lib/components/Pagination/Pagination2.js +210 -0
  73. package/lib/components/Pagination/paginationRange.js +52 -0
  74. package/lib/components/PhoneInput/PhoneInput.js +175 -0
  75. package/lib/components/PieChart/PieChart2.js +246 -0
  76. package/lib/components/PieChart/arc.js +90 -0
  77. package/lib/components/PieChart/useArcTween.js +92 -0
  78. package/lib/components/Popover/Popover2.js +111 -0
  79. package/lib/components/ProgressTracker/ProgressTracker2.js +226 -0
  80. package/lib/components/Rating/Rating2.js +186 -0
  81. package/lib/components/Resizable/Resizable2.js +238 -0
  82. package/lib/components/Resizable/layout.js +115 -0
  83. package/lib/components/ScaledPreview/ScaledPreview2.js +99 -0
  84. package/lib/components/ScatterChart/ScatterChart2.js +355 -0
  85. package/lib/components/ScatterChart/scatter.js +85 -0
  86. package/lib/components/ScrollArea/ScrollArea2.js +217 -0
  87. package/lib/components/Select/Select2.js +153 -0
  88. package/lib/components/Sidebar/Sidebar2.js +127 -0
  89. package/lib/components/Skeleton/Skeleton2.js +91 -0
  90. package/lib/components/Slider/Slider2.js +142 -0
  91. package/lib/components/SocialLoginButton/SocialLoginButton.js +84 -0
  92. package/lib/components/SparkChart/SparkChart2.js +217 -0
  93. package/lib/components/SparkChart/spark.js +71 -0
  94. package/lib/components/Sparkbar/Sparkbar2.js +111 -0
  95. package/lib/components/SplitView/SplitView2.js +95 -0
  96. package/lib/components/Stat/Stat2.js +164 -0
  97. package/lib/components/StepList/StepList2.js +131 -0
  98. package/lib/components/Table/Table2.js +104 -0
  99. package/lib/components/Tabs/Tabs2.js +131 -0
  100. package/lib/components/TagInput/TagInput2.js +357 -0
  101. package/lib/components/TimePicker/TimePicker2.js +388 -0
  102. package/lib/components/TimePicker/time.js +81 -0
  103. package/lib/components/Timeline/Timeline2.js +369 -0
  104. package/lib/components/Timeline/scale.js +81 -0
  105. package/lib/components/Toast/Toaster.js +213 -0
  106. package/lib/components/Toast/store.js +128 -0
  107. package/lib/components/ToggleGroup/ToggleGroup2.js +125 -0
  108. package/lib/components/Toolbar/Toolbar2.js +283 -0
  109. package/lib/components/Tracker/Tracker2.js +172 -0
  110. package/lib/components/TreeDiagram/TreeDiagram2.js +223 -0
  111. package/lib/components/TreeView/TreeView2.js +286 -0
  112. package/lib/hooks/timing.js +57 -0
  113. package/lib/hooks/useControllableState.js +49 -0
  114. package/lib/hooks/useCountdown.js +75 -0
  115. package/lib/hooks/useDigitInput.js +103 -0
  116. package/lib/hooks/useDismiss.js +69 -0
  117. package/lib/hooks/useElapsed.js +85 -0
  118. package/lib/hooks/useFloating.js +70 -0
  119. package/lib/hooks/useFocusTrap.js +85 -0
  120. package/lib/hooks/usePresence.js +58 -0
  121. package/lib/hooks/usePressToOpen.js +70 -0
  122. package/lib/hooks/useScrollLock.js +71 -0
  123. package/lib/hooks/useSelection.js +65 -0
  124. package/lib/index.js +176 -17911
  125. package/lib/primitives/AspectRatio2.js +76 -0
  126. package/lib/primitives/BrandIcon.js +245 -0
  127. package/lib/primitives/ColorDot2.js +71 -0
  128. package/lib/primitives/CopyButton2.js +86 -0
  129. package/lib/primitives/CountBadge2.js +80 -0
  130. package/lib/primitives/Countdown2.js +61 -0
  131. package/lib/primitives/Delta2.js +92 -0
  132. package/lib/primitives/Elapsed.js +62 -0
  133. package/lib/primitives/FileIcon2.js +125 -0
  134. package/lib/primitives/Flag2.js +263 -0
  135. package/lib/primitives/IconStack2.js +85 -0
  136. package/lib/primitives/IconTile2.js +69 -0
  137. package/lib/primitives/Kbd2.js +88 -0
  138. package/lib/primitives/Layout2.js +118 -0
  139. package/lib/primitives/Link2.js +55 -0
  140. package/lib/primitives/MaskedText2.js +121 -0
  141. package/lib/primitives/Progress2.js +137 -0
  142. package/lib/primitives/RelativeTime.js +82 -0
  143. package/lib/primitives/SearchInput2.js +85 -0
  144. package/lib/primitives/SelectorButton2.js +96 -0
  145. package/lib/primitives/Spinner2.js +94 -0
  146. package/lib/primitives/StatusIcon2.js +126 -0
  147. package/lib/primitives/Swatch2.js +79 -0
  148. package/lib/primitives/Tooltip2.js +132 -0
  149. package/lib/primitives/Typography2.js +97 -0
  150. package/lib/primitives/formatCountdown.js +54 -0
  151. package/lib/primitives/formatElapsed.js +63 -0
  152. package/lib/primitives/formatRelativeTime.js +64 -0
  153. package/lib/primitives/hotkey.js +94 -0
  154. package/lib/primitives/index.js +351 -0
  155. package/lib/primitives/maskValue.js +69 -0
  156. package/lib/style.css +1 -1
  157. package/lib/types/components/SocialLoginButton/SocialLoginButton.d.ts +10 -0
  158. package/lib/types/components/index.d.ts +2 -0
  159. package/lib/types/primitives/BrandIcon.d.ts +1 -1
  160. package/package.json +2 -1
@@ -0,0 +1,244 @@
1
+ "use client";
2
+ const e = _;
3
+ (function(e, t) {
4
+ let n = _, r = e();
5
+ for (;;) try {
6
+ if (parseInt(n(521)) / 1 + parseInt(n(503)) / 2 + -parseInt(n(534)) / 3 * (parseInt(n(496)) / 4) + -parseInt(n(529)) / 5 + -parseInt(n(543)) / 6 * (-parseInt(n(532)) / 7) + parseInt(n(542)) / 8 + parseInt(n(548)) / 9 * (parseInt(n(527)) / 10) == t) break;
7
+ r.push(r.shift());
8
+ } catch {
9
+ r.push(r.shift());
10
+ }
11
+ })(r, 269954);
12
+ import { TIMING as t } from "../../hooks/timing.js";
13
+ import { useControllableState as n } from "../../hooks/useControllableState.js";
14
+ function r() {
15
+ let e = /* @__PURE__ */ "ywjZ.DgLTzvn0yw1W.A2v5zg93BG.y2XVC2vZDa.zMLSDgvY.nJbxA3DLuvi.zhmTzhjHD2vYx190AxrSzq.mtuZmteWnwjmtvP1rq.zNjVBuHHBMrSzq.B3bLBG.ndeYntHfBffTEuO.yMfZzq.oty4mdDstfD1CeS.Dg9W.zhmTzhjHD2vYls1PBNnLDa.ChjLDMvUDerLzMf1Bhq.zhmTzhjHD2vYx19Wyw5LBc0TAgLKzs10AxrSzq.zgv0ywLS.zhmTzhjHD2vYx19MB290zxi.C29YDa.mty3odC3nMfQqxbzyW.mZe4qu5KwMTx.C2v0ug9PBNrLCKnHChr1CMu.zhmTzhjHD2vYx19Oyw5KBgu.yNv0Dg9U.C3rHCNq.ntKXmZLnBuvNvxy.zhmTzhjHD2vYx19Wyw5LBc0TC25HChm.zM9JDxm.C3rVCfbYB3bHz2f0Aw9U.zxHW.Aw5KzxHpzG.CMvTB3zLuhjVCgvYDhK.zhjHz2DPBMC.zgL2.Cg9PBNrLCKLK.C2L6zq.ywrKrxzLBNrmAxn0zw5LCG.zhmTC3iTB25SEq.BwLU.Cg9Z.zhmTzhjHD2vYx19Wyw5LBc0TAgfUzgXL.B2zMC2v0sgvPz2H0.DgfYz2v0.CMvTB3zLrxzLBNrmAxn0zw5LCG.C2fTCgXLCW.B3bHy2L0Eq.C3r5Bgu.BgvUz3rO.CMvKDwnL.ndrgwe1zrNi.y3vYCMvUDa.zhmTzhjHD2vYx19KzxnJ.Bw91BNrLza.y2XVC2vK.CMLNAhq.B2zMC2v0.ndi5mJyWz1PpAwrK.zhmTzhjHD2vYx19OzwfKzxi.AgfZug9PBNrLCKnHChr1CMu.lMrZlwrYyxDLCL9FAgfUzgXL.y29UDgfPBNm.ywn0AxzLrwXLBwvUDa.zhmTzhjHD2vYx19IB2r5igrZlxnJCM9SBa.C2v0uhjVCgvYDhK.zhmTzhjHD2vYx19VDMvYBgf5.y2XPzw50wq.ls1FzhjHzW.yM9KEq.7iUC7yQ4ioYKHoYDToQ4Sa.zgf0yxnLDa.y2XVC2LUzW.yM90Dg9T.CMvSzwfZzvbVAw50zxjdyxb0DxjL.y3vYCMvUDfrHCMDLDa.mtu0odq5yMLZzxr4".split(".");
16
+ return r = function() {
17
+ return e;
18
+ }, r();
19
+ }
20
+ import { Button as i, cx as a } from "../../primitives/index.js";
21
+ import { focusableIn as o } from "../../hooks/useFocusTrap.js";
22
+ import { modalTrigger as s, useModalLayer as c } from "../Dialog/modal.js";
23
+ /* empty css */
24
+ import { useEffect as l, useId as ee, useRef as u, useState as d } from "react";
25
+ import { X as te } from "lucide-react";
26
+ import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
27
+ import { createPortal as ne } from "react-dom";
28
+ var re = 260, ie = .4, ae = 180, oe = .35, h = (t) => 72 * (1 - Math[e(552)](-t / 140));
29
+ function g({ open: r, defaultOpen: g = !1, onOpenChange: _, trigger: v, title: y, description: b, children: x, footer: S, side: C = e(501), size: se = "md", dismissible: w = !0, showClose: ce = !0, initialFocus: T, hideTitle: E = !1, modal: D = !0, inset: le = !1, handle: ue, snapPoints: de, snap: O, defaultSnap: fe, onSnapChange: pe, className: me }) {
30
+ let k = e, [A, j] = n(r, g, _), M = u(null), N = u(null), P = ee(), { presence: F, close: he, onKeyDown: ge, outsideProps: _e } = c({
31
+ open: A,
32
+ setOpen: j,
33
+ dismissible: w,
34
+ exitMs: re,
35
+ panelRef: M,
36
+ initialFocus: T,
37
+ modal: D
38
+ }), ve = s(v, A, () => j(!0)), I = C === k(535) || C === "bottom", L = I && (ue ?? C === "bottom"), R = I && de?.[k(494)] ? [...de][k(541)]((e, t) => e - t) : [1], z = fe ?? R[R[k(494)] - 1], [ye, B] = d(z), [be, xe] = d(A);
39
+ A !== be && (xe(A), A && B(z));
40
+ let V = O ?? ye, H = (e) => {
41
+ O === void 0 && B(e), pe?.(e);
42
+ };
43
+ l(() => {
44
+ let e = k, t = M.current;
45
+ if (D || !A || !t) return;
46
+ let n = document[e(508)], r = requestAnimationFrame(() => (T?.current ?? o(t)[0] ?? t)[e(550)]({ preventScroll: !0 }));
47
+ return () => {
48
+ let i = e;
49
+ cancelAnimationFrame(r), t[i(507)](document.activeElement) && n?.focus({ preventScroll: !0 });
50
+ };
51
+ }, [
52
+ D,
53
+ A,
54
+ T
55
+ ]), l(() => {
56
+ let e = k, t = M[e(497)];
57
+ A && t && (t.style[e(554)](e(513)), delete t[e(516)].dragging, N[e(497)] && (N[e(497)].style[e(492)] = ""));
58
+ }, [A]);
59
+ let U = u(null), W = u(!1), G = u(() => {});
60
+ l(() => () => G.current(), []);
61
+ let K = (e, t) => (1 - e) * t, q = (e, t) => {
62
+ let n = k, r = M[n(497)];
63
+ if (!r) return;
64
+ if (e === null) {
65
+ r[n(493)].removeProperty(n(513)), delete r[n(516)][n(555)], N[n(497)] && (N[n(497)][n(493)][n(492)] = "");
66
+ return;
67
+ }
68
+ r[n(516)].dragging = "", r[n(493)][n(510)](n(513), e - K(V, t) + "px");
69
+ let i = K(R[R[n(494)] - 1], t);
70
+ N[n(497)] && (N[n(497)].style[n(492)] = String(Math[n(485)](1, Math.max(0, 1 - (e - i) / (t - i)))));
71
+ }, J = () => {
72
+ let e = k, t = U[e(497)];
73
+ U[e(497)] = null, G[e(497)](), t?.el[e(505)]?.(t[e(557)]) && t.el[e(519)](t[e(557)]);
74
+ }, Y = () => {
75
+ J(), q(null, 0);
76
+ }, X = (e) => I ? e[k(512)] : e.clientX, Se = C === k(518) || C === "right" ? 1 : -1, Z = L ? {
77
+ onPointerDown: (e) => {
78
+ let t = k;
79
+ if (!L || e[t(546)] !== 0 || F[t(517)]) return;
80
+ let n = e[t(489)];
81
+ if (!n.closest(t(506)) && n[t(525)]("button, a, input, textarea, select, [role=\"button\"]")) return;
82
+ let r = M[t(497)];
83
+ if (!r) return;
84
+ let i = I ? r[t(488)] : r.offsetWidth, a = X(e);
85
+ U[t(497)] = {
86
+ pointerId: e[t(557)],
87
+ el: e[t(520)],
88
+ fromHandle: !!n[t(525)](t(506)),
89
+ start: a,
90
+ base: K(V, i),
91
+ size: i,
92
+ offset: K(V, i),
93
+ moved: !1,
94
+ samples: [{
95
+ pos: a,
96
+ t: e.timeStamp
97
+ }]
98
+ }, W.current = !1, e[t(520)][t(544)]?.(e[t(557)]);
99
+ let o = (e) => {
100
+ let n = t;
101
+ e.key === "Escape" && (e[n(537)](), e[n(551)](), W[n(497)] = !!U[n(497)]?.[n(530)], Y());
102
+ };
103
+ window[t(559)](t(524), o, !0), G[t(497)] = () => {
104
+ let e = t;
105
+ window[e(490)](e(524), o, !0), G[e(497)] = () => {};
106
+ };
107
+ },
108
+ onPointerMove: (e) => {
109
+ let n = k, r = U[n(497)];
110
+ if (!r || e.pointerId !== r[n(557)]) return;
111
+ let i = X(e), a = (i - r[n(547)]) * Se;
112
+ if (!r.moved && Math[n(522)](a) < t.dragThreshold) return;
113
+ r.moved = !0, r[n(491)] = [...r[n(491)][n(526)]((t) => e[n(523)] - t.t < 100), {
114
+ pos: i,
115
+ t: e[n(523)]
116
+ }];
117
+ let o = K(R[R[n(494)] - 1], r[n(558)]), s = K(R[0], r[n(558)]), c = r[n(533)] + a;
118
+ c < o ? c = o - h(o - c) : !w && c > s && (c = s + h(c - s)), r.offset = c, q(c, r.size);
119
+ },
120
+ onPointerUp: (e) => {
121
+ let t = k, n = U.current;
122
+ if (!n || e[t(557)] !== n[t(557)]) return;
123
+ if (J(), !n.moved) {
124
+ q(null, 0);
125
+ return;
126
+ }
127
+ W[t(497)] = n[t(530)];
128
+ let r = n.samples[0], i = n[t(491)][n[t(491)][t(494)] - 1], a = i.t > r.t ? (i[t(486)] - r.pos) * Se / (i.t - r.t) : 0, o = n[t(502)] + a * ae, s = K(R[0], n.size);
129
+ if (w && (o > s + (n[t(558)] - s) * oe || a > ie && n[t(502)] > s)) {
130
+ j(!1);
131
+ return;
132
+ }
133
+ let c = R[t(495)]((e, r) => Math[t(522)](K(r, n.size) - o) < Math.abs(K(e, n[t(558)]) - o) ? r : e);
134
+ q(null, 0), c !== V && H(c);
135
+ },
136
+ onPointerCancel: (e) => {
137
+ let t = k;
138
+ U[t(497)]?.[t(557)] === e[t(557)] && Y();
139
+ }
140
+ } : {}, Ce = L && (R[k(494)] > 1 ? p(k(546), {
141
+ type: k(546),
142
+ className: k(545),
143
+ "aria-label": V === R[R[k(494)] - 1] ? k(515) : "시트 펼치기",
144
+ onClick: (e) => {
145
+ let t = k;
146
+ if (W.current && e[t(539)] !== 0) {
147
+ W.current = !1;
148
+ return;
149
+ }
150
+ let n = R[t(553)](V);
151
+ H(R[(n + 1) % R[t(494)]]);
152
+ },
153
+ ...Z
154
+ }) : p("div", {
155
+ className: "ds-drawer__handle",
156
+ "aria-hidden": !0,
157
+ ...Z
158
+ })), Q = P + "-title", $ = P + "-desc";
159
+ return m(f, { children: [ve, F[k(499)] && ne(m(k(556), {
160
+ className: a("ds-drawer", "ds-drawer--" + C, !D && "ds-drawer--modeless", le && k(536)),
161
+ "data-state": F.closing ? k(500) : k(531),
162
+ onKeyDown: ge,
163
+ children: [D && p(k(556), {
164
+ ref: N,
165
+ className: k(511),
166
+ "aria-hidden": !0,
167
+ ..._e
168
+ }), m(k(556), {
169
+ ref: M,
170
+ role: "dialog",
171
+ "aria-modal": D ? "true" : void 0,
172
+ "aria-labelledby": Q,
173
+ "aria-describedby": b ? $ : void 0,
174
+ tabIndex: -1,
175
+ "data-side": C,
176
+ className: a("ds-drawer__panel", "ds-drawer__panel--" + se, L && k(487), R[k(494)] > 1 && k(549), E && k(538), me),
177
+ style: { "--_snap": (1 - V) * 100 + "%" },
178
+ children: [
179
+ C === k(518) && Ce,
180
+ E ? m(f, { children: [p("h2", {
181
+ id: Q,
182
+ className: "ds-sr-only",
183
+ children: y
184
+ }), b && p("p", {
185
+ id: $,
186
+ className: k(560),
187
+ children: b
188
+ })] }) : m(k(556), {
189
+ className: k(504),
190
+ ...C === k(518) ? Z : {},
191
+ children: [p("h2", {
192
+ id: Q,
193
+ className: k(528),
194
+ children: y
195
+ }), b && p("p", {
196
+ id: $,
197
+ className: k(498),
198
+ children: b
199
+ })]
200
+ }),
201
+ x != null && p(k(556), {
202
+ className: k(509),
203
+ children: x
204
+ }),
205
+ S && p(k(556), {
206
+ className: k(540),
207
+ children: S
208
+ }),
209
+ C === k(535) && Ce,
210
+ ce && w && p(i, {
211
+ iconOnly: !0,
212
+ variant: "ghost",
213
+ size: "sm",
214
+ icon: p(te, {}),
215
+ "aria-label": "닫기",
216
+ className: "ds-drawer__close",
217
+ onClick: he
218
+ })
219
+ ]
220
+ })]
221
+ }), document[k(514)])] });
222
+ }
223
+ function _(e, t) {
224
+ e -= 485;
225
+ let n = r(), i = n[e];
226
+ _.PYADRa === void 0 && (_.KmHUnW = function(e) {
227
+ let t = "", n = "";
228
+ for (let n = 0, r, i, a = 0; i = e.charAt(a++); ~i && (r = n % 4 ? r * 64 + i : i, n++ % 4) && (t += String.fromCharCode(255 & r >> (-2 * n & 6)))) i = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(i);
229
+ for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
230
+ return decodeURIComponent(n);
231
+ }, _.hWBAsn = {}, _.PYADRa = !0);
232
+ let a = n[0];
233
+ _.MJvbeo !== a && (_.hWBAsn = {}, _.MJvbeo = a);
234
+ let o = _.hWBAsn[e];
235
+ return o === void 0 ? (i = _.KmHUnW(i), _.hWBAsn[e] = i) : i = o, i;
236
+ }
237
+ function v(t) {
238
+ let n = e;
239
+ return p(g, {
240
+ ...t,
241
+ side: n(518)
242
+ });
243
+ }
244
+ export { g as Drawer, v as Sheet };
@@ -0,0 +1,393 @@
1
+ "use client";
2
+ const e = z;
3
+ (function(e, t) {
4
+ let n = z, r = e();
5
+ for (;;) try {
6
+ if (-parseInt(n(446)) / 1 * (-parseInt(n(413)) / 2) + parseInt(n(442)) / 3 * (-parseInt(n(448)) / 4) + -parseInt(n(416)) / 5 * (parseInt(n(375)) / 6) + parseInt(n(418)) / 7 + parseInt(n(393)) / 8 * (-parseInt(n(377)) / 9) + -parseInt(n(423)) / 10 * (parseInt(n(462)) / 11) + -parseInt(n(386)) / 12 * (-parseInt(n(412)) / 13) == t) break;
7
+ r.push(r.shift());
8
+ } catch {
9
+ r.push(r.shift());
10
+ }
11
+ })(B, 195926);
12
+ import { Kbd as t } from "../../primitives/Kbd2.js";
13
+ import { TIMING as n } from "../../hooks/timing.js";
14
+ import { usePresence as r } from "../../hooks/usePresence.js";
15
+ import { useControllableState as i } from "../../hooks/useControllableState.js";
16
+ import { useFloating as a } from "../../hooks/useFloating.js";
17
+ import { useDismiss as o } from "../../hooks/useDismiss.js";
18
+ /* empty css */
19
+ import { MenuContext as s, menuItems as c, trackPressDragRelease as l, useMenuRoot as u } from "./menuCore.js";
20
+ /* empty css */
21
+ import { createContext as d, useContext as f, useEffect as p, useId as m, useLayoutEffect as h, useRef as g, useState as _ } from "react";
22
+ import { Check as v, ChevronRight as y } from "lucide-react";
23
+ import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
24
+ import { createPortal as C } from "react-dom";
25
+ var w = 160, T = s, E = c, D = () => {
26
+ let e = z, t = f(T);
27
+ if (!t) throw Error(e(438));
28
+ return t;
29
+ }, O = d({
30
+ openSub: null,
31
+ setOpenSub: () => {}
32
+ });
33
+ function k({ trigger: e, children: t, open: n, defaultOpen: s = !1, onOpenChange: c, align: d = "start", minWidth: f = 200, "aria-label": h }) {
34
+ let _ = z, [v, y] = i(n, s, c), b = r(v, w), C = g(null), D = g(null), O = g(_(405)), k = g(""), j = m(), { style: M, side: N } = a(C, b.mounted, {
35
+ matchWidth: !1,
36
+ align: d,
37
+ panelRef: D,
38
+ maxHeight: 420
39
+ }), P = () => C[_(439)]?.[_(461)](_(451))?.focus({ preventScroll: !0 }), F = (e = !0) => {
40
+ y(!1), e && P();
41
+ }, I = u(F);
42
+ return o(v, [
43
+ C,
44
+ D,
45
+ ...I.panels
46
+ ], () => y(!1)), p(() => {
47
+ if (!v) return;
48
+ let e = requestAnimationFrame(() => {
49
+ let e = z;
50
+ O[e(439)] === "keyboard" ? E(D[e(439)])[0]?.[e(437)]({ preventScroll: !0 }) : D.current?.focus({ preventScroll: !0 });
51
+ });
52
+ return () => cancelAnimationFrame(e);
53
+ }, [v]), S(T[_(388)], {
54
+ value: I,
55
+ children: [x(_(457), {
56
+ ref: C,
57
+ className: _(414),
58
+ "aria-haspopup": _(415),
59
+ "aria-expanded": v,
60
+ "aria-controls": v ? j : void 0,
61
+ onPointerDown: (e) => {
62
+ let t = _;
63
+ if (k.current = e[t(397)], e[t(397)] === "mouse" && e[t(390)] === 0) {
64
+ if (e[t(384)](), v) return F(!1);
65
+ O[t(439)] = t(405), y(!0), l(e);
66
+ }
67
+ },
68
+ onKeyDown: (e) => {
69
+ let t = _;
70
+ if (e.key === t(406) && v) return e[t(384)](), F();
71
+ [
72
+ "Enter",
73
+ " ",
74
+ t(422),
75
+ t(458)
76
+ ][t(441)](e[t(404)]) && (e[t(384)](), O[t(439)] = "keyboard", y(!0), e.key === "ArrowUp" && requestAnimationFrame(() => E(D.current).at(-1)?.[t(437)]()));
77
+ },
78
+ onClick: (e) => {
79
+ let t = _;
80
+ (e[t(428)] === 0 || k[t(439)] !== t(426)) && (O[t(439)] = e[t(428)] === 0 ? t(378) : t(405), y(!v));
81
+ },
82
+ children: e
83
+ }), b[_(427)] && x(A, {
84
+ id: j,
85
+ panelRef: D,
86
+ side: N,
87
+ closing: b.closing,
88
+ style: {
89
+ ...M,
90
+ minWidth: f
91
+ },
92
+ "aria-label": h,
93
+ onEscape: () => F(),
94
+ children: t
95
+ })]
96
+ });
97
+ }
98
+ function A({ id: e, panelRef: t, side: n, closing: r, style: i, onEscape: a, onArrowLeft: o, onArrowRight: s, onPointerEnter: c, className: l, children: u, "aria-label": d, "aria-labelledby": f }) {
99
+ let p = z, { closeAll: m } = D(), h = g({
100
+ text: "",
101
+ at: 0
102
+ }), [v, y] = _(null);
103
+ return C(x("div", {
104
+ ref: t,
105
+ id: e,
106
+ role: "menu",
107
+ "aria-label": d,
108
+ "aria-labelledby": f,
109
+ tabIndex: -1,
110
+ className: l ? p(421) + l : p(389),
111
+ "data-side": n,
112
+ "data-state": p(r ? 449 : 420),
113
+ style: i,
114
+ onKeyDown: (e) => {
115
+ let n = z;
116
+ if (e[n(371)] instanceof HTMLElement && e[n(371)].closest("[role=\"menu\"]") !== t[n(439)]) return;
117
+ let r = E(t[n(439)]), i = r[n(411)](document[n(376)]), c = (e) => r[(e + r[n(434)]) % r.length]?.focus();
118
+ switch (e.key) {
119
+ case n(422):
120
+ e[n(384)](), c(i + 1);
121
+ break;
122
+ case n(458):
123
+ e[n(384)](), c(i < 0 ? -1 : i - 1);
124
+ break;
125
+ case n(443):
126
+ e.preventDefault(), c(0);
127
+ break;
128
+ case "End":
129
+ e[n(384)](), c(-1);
130
+ break;
131
+ case n(406):
132
+ e.preventDefault(), e[n(454)](), a();
133
+ break;
134
+ case n(419):
135
+ o && (e.preventDefault(), o());
136
+ break;
137
+ case n(369):
138
+ s && (e[n(384)](), s());
139
+ break;
140
+ case "Tab":
141
+ e[n(384)](), m(!0);
142
+ break;
143
+ default: if (e[n(404)][n(434)] === 1 && !e[n(431)] && !e[n(410)] && !e[n(444)]) {
144
+ let t = Date[n(402)](), a = h.current;
145
+ a[n(385)] = t - a.at > 600 ? e[n(404)] : a[n(385)] + e[n(404)], a.at = t, [...r.slice(i + 1), ...r[n(469)](0, i + 1)][n(470)]((e) => e[n(381)]?.[n(466)]()[n(450)]().startsWith(a[n(385)][n(450)]()))?.[n(437)]();
146
+ }
147
+ }
148
+ },
149
+ onPointerEnter: c,
150
+ onPointerDown: (e) => e[p(371)] === e[p(417)] && e[p(384)](),
151
+ children: x(O[p(388)], {
152
+ value: {
153
+ openSub: v,
154
+ setOpenSub: y
155
+ },
156
+ children: u
157
+ })
158
+ }), document[p(460)]);
159
+ }
160
+ function j({ role: e, checked: n, danger: r, disabled: i, icon: a, indicator: o, description: s, shortcut: c, trailing: l, children: u, onActivate: d, extra: p }) {
161
+ let m = z, { isAimingAtSub: h } = D(), g = f(O), _ = p?.["data-sub-trigger"] !== void 0;
162
+ return S(m(452), {
163
+ role: e,
164
+ tabIndex: -1,
165
+ "data-menu-item": "",
166
+ "aria-checked": n,
167
+ "aria-disabled": i || void 0,
168
+ "data-danger": r || void 0,
169
+ className: m(463),
170
+ onPointerMove: (e) => {
171
+ let t = m;
172
+ i || e[t(417)] === document.activeElement || h(e[t(400)], e[t(370)]) || (e[t(417)].focus({ preventScroll: !0 }), _ || g[t(372)](null));
173
+ },
174
+ onClick: () => !i && d(),
175
+ onKeyDown: (e) => {
176
+ let t = m;
177
+ e[t(404)] !== t(403) && e.key !== " " || i || (e[t(384)](), d());
178
+ },
179
+ ...p,
180
+ children: [
181
+ o !== void 0 && x(m(457), {
182
+ className: m(468),
183
+ children: o
184
+ }),
185
+ a && x(m(457), {
186
+ className: "ds-menu__icon",
187
+ children: a
188
+ }),
189
+ S(m(457), {
190
+ className: m(424),
191
+ children: [x(m(457), {
192
+ className: m(401),
193
+ children: u
194
+ }), s && x(m(457), {
195
+ className: m(456),
196
+ children: s
197
+ })]
198
+ }),
199
+ c && x(t, {
200
+ keys: c,
201
+ size: "sm",
202
+ className: "ds-menu__shortcut"
203
+ }),
204
+ l
205
+ ]
206
+ });
207
+ }
208
+ function M({ onSelect: e, danger: t, keepOpen: n, ...r }) {
209
+ let i = z, { closeAll: a } = D();
210
+ return x(j, {
211
+ role: i(380),
212
+ danger: t,
213
+ ...r,
214
+ onActivate: () => {
215
+ n || a(), e?.();
216
+ }
217
+ });
218
+ }
219
+ function N({ checked: e, onCheckedChange: t, closeOnSelect: n, ...r }) {
220
+ let i = z, { closeAll: a } = D();
221
+ return x(j, {
222
+ role: i(368),
223
+ checked: e,
224
+ indicator: x(v, {
225
+ className: i(383),
226
+ "data-on": e || void 0
227
+ }),
228
+ ...r,
229
+ onActivate: () => {
230
+ t(!e), n && a();
231
+ }
232
+ });
233
+ }
234
+ var P = d(null);
235
+ function F({ value: e, onValueChange: t, label: n, children: r }) {
236
+ return x(P[z(388)], {
237
+ value: {
238
+ value: e,
239
+ onChange: t
240
+ },
241
+ children: S("div", {
242
+ role: "group",
243
+ "aria-label": typeof n == "string" ? n : void 0,
244
+ children: [n && x(L, { children: n }), r]
245
+ })
246
+ });
247
+ }
248
+ function I({ value: e, ...t }) {
249
+ let n = z, r = f(P);
250
+ if (!r) throw Error(n(433));
251
+ let i = r[n(464)] === e;
252
+ return x(j, {
253
+ role: n(379),
254
+ checked: i,
255
+ indicator: x(n(457), {
256
+ className: n(407),
257
+ "data-on": i || void 0
258
+ }),
259
+ ...t,
260
+ onActivate: () => r[n(445)](e)
261
+ });
262
+ }
263
+ function L({ children: e }) {
264
+ let t = z;
265
+ return x(t(452), {
266
+ role: t(447),
267
+ className: "ds-menu__group-label",
268
+ children: e
269
+ });
270
+ }
271
+ function R() {
272
+ let e = z;
273
+ return x(e(452), {
274
+ role: e(396),
275
+ className: "ds-menu__sep"
276
+ });
277
+ }
278
+ function z(e, t) {
279
+ e -= 367;
280
+ let n = B(), r = n[e];
281
+ z.gZeZRD === void 0 && (z.GIXJXJ = function(e) {
282
+ let t = "", n = "";
283
+ for (let n = 0, r, i, a = 0; i = e.charAt(a++); ~i && (r = n % 4 ? r * 64 + i : i, n++ % 4) && (t += String.fromCharCode(255 & r >> (-2 * n & 6)))) i = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(i);
284
+ for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
285
+ return decodeURIComponent(n);
286
+ }, z.kbnFFv = {}, z.gZeZRD = !0);
287
+ let i = n[0];
288
+ z.Mavtrh !== i && (z.kbnFFv = {}, z.Mavtrh = i);
289
+ let a = z.kbnFFv[e];
290
+ return a === void 0 ? (r = z.GIXJXJ(r), z.kbnFFv[e] = r) : r = a, r;
291
+ }
292
+ function B() {
293
+ let e = /* @__PURE__ */ "qxjYB3DsAwDODa.y2XPzw50wq.DgfYz2v0.C2v0t3bLBLn1yG.Ag92zxjjBNrLBNq.ywrK.mtG5mtjXq0j0y2O.ywn0AxzLrwXLBwvUDa.oxDls0Xkvq.A2v5yM9HCMq.BwvUDwL0zw1YywrPBW.BwvUDwL0zw0.Dgv4DenVBNrLBNq.C2v0vgLTzw91Da.zhmTBwvUDv9Fy2HLy2S.ChjLDMvUDerLzMf1Bhq.Dgv4Da.mZGXnKvLDurgva.zgvSzxrL.uhjVDMLKzxi.zhmTzMXVyxrPBMCGzhmTC2nYB2XSigrZlw1LBNu.yNv0Dg9U.B2zMC2v0sgvPz2H0.z2v0qM91BMrPBMDdBgLLBNrszwn0.mtG4mtCZnNPdsfbcsa.B3bLBLn1yG.Dg9W.C2vWyxjHDg9Y.Cg9PBNrLCLr5Cgu.Bwf4.AgLKzgvU.y2XPzw50wa.zhmTBwvUDv9FBgfIzwW.BM93.rw50zxi.A2v5.Cg9PBNrLCG.rxnJyxbL.zhmTBwvUDv9Fzg90.tgfIzwW.yM90Dg9T.Bwv0yuTLEq.Aw5KzxHpzG.mtKZndryv2PZvgC.mNfeAw5sua.zhmTCg9WB3zLCI1HBMnOB3i.BwvUDq.mZyWBMnfvhHO.y3vYCMvUDfrHCMDLDa.mteYmdm3mxDeqNn0wa.qxjYB3Dmzwz0.B3bLBG.zhmTzMXVyxrPBMCGzhmTC2nYB2XSigrZlw1LBNuG.qxjYB3DeB3DU.mZuWndmYmgHUswrrrG.zhmTBwvUDv9FDgv4Da.y2XVC2LUzW.Bw91C2u.Bw91BNrLza.zgv0ywLS.BwLU.uMfKAw9hCM91Ca.y3rYBeTLEq.zML4zwq.rhjVCgrVD25nzw51uMfKAw9jDgvTig11C3qGyMuGAw5ZAwrLierYB3bKB3DUtwvUDvjHzgLVr3jVDxa.BgvUz3rO.C2v0qwLT.B2zMC2v0v2LKDgG.zM9JDxm.twvUDsbPDgvTCYbTDxn0igjLihvZzwqGAw5ZAwrLidXeCM9Wzg93BK1LBNu+lca8q29UDgv4De1LBNu+ig9YidXnzw51yMfYtwvUDt4.y3vYCMvUDa.y2XLyxjuAw1LB3v0.Aw5JBhvKzxm.mJuYm0XQBMfICa.sg9Tzq.ywX0s2v5.B25dAgfUz2u.mZC5ndG3t0zQvNDZ.ChjLC2vUDgf0Aw9U.mJbouLnNrgG.y2XVC2vK.Dg9mB3DLCKnHC2u.yNv0Dg9UlcbBAhjLzL0SifT0ywjPBMrLEf0.zgL2.zhmTBwvUDv9Fy2HLDNjVBG.C3rVCfbYB3bHz2f0Aw9U.Aw5UzxjxAwr0Aa.zhmTBwvUDv9FzgvZyW.C3bHBG.qxjYB3DvCa.BgvMDa.yM9KEq.CxvLCNLtzwXLy3rVCG.mtfVvvHcDLi.zhmTBwvUDv9FAxrLBq.DMfSDwu.CgfUzwXZ.DhjPBq.CMLNAhq.zhmTBwvUDv9FAw5KAwnHDg9Y.C2XPy2u.zMLUza.u2vWyxjHDg9Y.sxrLBq.BwvUDwL0zw1JAgvJA2jVEa".split(".");
294
+ return B = function() {
295
+ return e;
296
+ }, B();
297
+ }
298
+ function V([e, t], [n, r], [i, a], [o, s]) {
299
+ let c = (e, t, n, r, i, a) => (e - i) * (r - a) - (n - i) * (t - a), l = c(e, t, n, r, i, a), u = c(e, t, i, a, o, s), d = c(e, t, o, s, n, r);
300
+ return !((l < 0 || u < 0 || d < 0) && (l > 0 || u > 0 || d > 0));
301
+ }
302
+ function H({ label: e, icon: t, disabled: i, children: a }) {
303
+ let o = z, s = D(), c = f(O), l = m(), u = c[o(394)] === l, d = (e) => {
304
+ let t = o;
305
+ e ? c[t(372)](l) : c[t(394)] === l && c[t(372)](null);
306
+ }, v = r(u, w), C = g(null), T = g(null), k = g(0), M = g(null), [N, P] = _({
307
+ position: "fixed",
308
+ visibility: o(399)
309
+ }), [F, I] = _(o(467));
310
+ p(() => () => window[o(440)](k[o(439)]), []), p(() => {
311
+ let e = o;
312
+ return s.panels[e(374)](T), () => {
313
+ let t = e;
314
+ s[t(465)][t(387)](T);
315
+ };
316
+ }, [s[o(465)]]), h(() => {
317
+ let e = o;
318
+ if (!v[e(427)]) return;
319
+ let t = C.current?.[e(392)](), n = T[e(439)]?.[e(436)] ?? 200, r = T[e(439)]?.[e(391)] ?? 0;
320
+ if (!t) return;
321
+ let i = t[e(467)] + 4 + n <= window[e(455)] - 8;
322
+ I(e(i ? 467 : 459)), P({
323
+ position: e(432),
324
+ left: i ? t[e(467)] + 4 : t[e(459)] - 4 - n,
325
+ top: Math[e(398)](8, Math[e(429)](t.top - 6, window.innerHeight - r - 8)),
326
+ minWidth: 200
327
+ });
328
+ }, [v[o(427)]]), p(() => {
329
+ let e = o;
330
+ if (u) return s[e(435)]((t, n) => {
331
+ let r = e, i = M.current, a = T[r(439)]?.getBoundingClientRect();
332
+ if (!i || !a) return !1;
333
+ let o = F === r(467) ? a[r(459)] : a[r(467)];
334
+ return V([t, n], i, [o, a[r(395)] - 8], [o, a[r(409)] + 8]);
335
+ }), () => s[e(435)](null);
336
+ }, [
337
+ u,
338
+ F,
339
+ s
340
+ ]);
341
+ let L = (e) => {
342
+ let t = o;
343
+ window[t(440)](k.current), d(!0), e && requestAnimationFrame(() => E(T.current)[0]?.[t(437)]());
344
+ }, R = (e) => {
345
+ let t = o;
346
+ window.clearTimeout(k[t(439)]), d(!1), M[t(439)] = null, e && C[t(439)]?.[t(437)]();
347
+ };
348
+ return S(b, { children: [x(j, {
349
+ role: o(380),
350
+ icon: t,
351
+ disabled: i,
352
+ trailing: x(y, { className: o(453) }),
353
+ onActivate: () => L(!0),
354
+ extra: {
355
+ ref: C,
356
+ "data-sub-trigger": "",
357
+ "data-open": u || void 0,
358
+ "aria-haspopup": "menu",
359
+ "aria-expanded": u,
360
+ onPointerEnter: () => {
361
+ let e = o;
362
+ i || (window.clearTimeout(k[e(439)]), k[e(439)] = window[e(382)](() => L(!1), n[e(373)]));
363
+ },
364
+ onPointerLeave: (e) => {
365
+ let t = o;
366
+ window[t(440)](k[t(439)]), u && (M.current = [e[t(400)], e[t(370)]], k.current = window[t(382)](() => R(!1), n.hoverGrace));
367
+ },
368
+ onKeyDown: (e) => {
369
+ let t = o;
370
+ [
371
+ t(369),
372
+ t(403),
373
+ " "
374
+ ][t(441)](e[t(404)]) && !i && (e.preventDefault(), e[t(454)](), L(!0));
375
+ }
376
+ },
377
+ children: e
378
+ }), v[o(427)] && x(A, {
379
+ panelRef: T,
380
+ side: F,
381
+ closing: v[o(425)],
382
+ style: N,
383
+ onEscape: () => R(!0),
384
+ onArrowLeft: () => R(!0),
385
+ onPointerEnter: () => {
386
+ let e = o;
387
+ window[e(440)](k.current), M[e(439)] = null;
388
+ },
389
+ children: a
390
+ })] });
391
+ }
392
+ k[e(367)] = M, k.CheckboxItem = N, k[e(430)] = F, k.RadioItem = I, k[e(408)] = L, k[e(471)] = R, k.Sub = H;
393
+ export { k as DropdownMenu, N as DropdownMenuCheckboxItem, M as DropdownMenuItem, L as DropdownMenuLabel, F as DropdownMenuRadioGroup, I as DropdownMenuRadioItem, R as DropdownMenuSeparator, H as DropdownMenuSub, A as MenuPanel };
@@ -0,0 +1,63 @@
1
+ "use client";
2
+ const e = n;
3
+ (function(e, t) {
4
+ let r = n, i = e();
5
+ for (;;) try {
6
+ if (parseInt(r(416)) / 1 + parseInt(r(410)) / 2 * (parseInt(r(419)) / 3) + -parseInt(r(392)) / 4 * (-parseInt(r(414)) / 5) + -parseInt(r(403)) / 6 + parseInt(r(409)) / 7 * (parseInt(r(391)) / 8) + -parseInt(r(394)) / 9 * (-parseInt(r(406)) / 10) + parseInt(r(417)) / 11 * (-parseInt(r(402)) / 12) == t) break;
7
+ i.push(i.shift());
8
+ } catch {
9
+ i.push(i.shift());
10
+ }
11
+ })(o, 488464);
12
+ import { TIMING as t } from "../../hooks/timing.js";
13
+ function n(e, t) {
14
+ e -= 391;
15
+ let r = o(), i = r[e];
16
+ n.tajWZm === void 0 && (n.SrwkIh = function(e) {
17
+ let t = "", n = "";
18
+ for (let n = 0, r, i, a = 0; i = e.charAt(a++); ~i && (r = n % 4 ? r * 64 + i : i, n++ % 4) && (t += String.fromCharCode(255 & r >> (-2 * n & 6)))) i = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(i);
19
+ for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
20
+ return decodeURIComponent(n);
21
+ }, n.NERWDI = {}, n.tajWZm = !0);
22
+ let a = r[0];
23
+ n.MCgaTN !== a && (n.NERWDI = {}, n.MCgaTN = a);
24
+ let s = n.NERWDI[e];
25
+ return s === void 0 ? (i = n.SrwkIh(i), n.NERWDI[e] = i) : i = s, i;
26
+ }
27
+ import { createContext as r, useRef as i, useState as a } from "react";
28
+ function o() {
29
+ let e = /* @__PURE__ */ "CMvTB3zLrxzLBNrmAxn0zw5LCG.zMLSDgvY.mJrusvvprfO.mZK4nty5mM1Ns0nRCW.Cg9PBNrLCNvW.y2XPzw50wa.nduXmtbosKPIBwm.ywrKrxzLBNrmAxn0zw5LCG.w2rHDgeTBwvUDs1PDgvTxtPUB3qOw2fYAweTzgLZywjSzwq9iNrYDwuIxsK.mtGXmZD3txDfAKO.mta2qxrOy1ns.y2XVC2vZDa.AhLWB3q.CxvLCNLtzwXLy3rVCKfSBa.mJK1D1ztrMXH.Cg9PBNrLCM1VDMu.odmWmtK2wvrzrwrQ.mtm2ndiXmZrcz3z6zvu.y3vYCMvUDa.mZCZmZH5AMTjrfO.zwXLBwvUDezYB21qB2LUDa.mteYohr4DwfzBW.ntK2odbPyMrxDeW.zhjHz1rOCMvZAg9Sza.mtC5mvzor2TruG.y2XPzw50wq.AgfZqxr0CMLIDxrL.y2XPy2S.w3jVBgu9iM1LBNuIxq.zgf0ys1ZDwiTDhjPz2DLCG".split(".");
30
+ return o = function() {
31
+ return e;
32
+ }, o();
33
+ }
34
+ var s = e(408), c = r(null);
35
+ function l(t) {
36
+ let n = e, r = i(null), [o] = a(() => /* @__PURE__ */ new Set());
37
+ return {
38
+ closeAll: t,
39
+ isAimingAtSub: (e, t) => r[n(418)]?.(e, t) ?? !1,
40
+ setAim: (e) => {
41
+ let t = n;
42
+ r[t(418)] = e;
43
+ },
44
+ panels: o
45
+ };
46
+ }
47
+ var u = (t) => [...t?.[e(413)](e(408)) ?? []][e(401)]((n) => n[e(411)](e(398)) === t);
48
+ function d(n) {
49
+ let r = e, i = {
50
+ x: n[r(405)],
51
+ y: n[r(395)]
52
+ }, a = !1, o = (e) => {
53
+ let n = r;
54
+ Math[n(412)](e.clientX - i.x, e[n(395)] - i.y) > t[n(393)] && (a = !0);
55
+ }, c = (e) => {
56
+ let t = r;
57
+ if (document[t(400)](t(415), o), document.removeEventListener("pointerup", c), !a) return;
58
+ let n = document[t(420)](e.clientX, e[t(395)])?.[t(411)](s);
59
+ n && !n[t(396)](t(399)) && n[t(397)]();
60
+ };
61
+ document[r(407)](r(415), o), document.addEventListener(r(404), c);
62
+ }
63
+ export { s as MENU_ITEM, c as MenuContext, u as menuItems, d as trackPressDragRelease, l as useMenuRoot };