@arcadeai/design-system 0.0.0

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 (109) hide show
  1. package/README.md +128 -0
  2. package/dist/check-CxcShTlQ.js +11 -0
  3. package/dist/chevron-down-D_a-ccxi.js +11 -0
  4. package/dist/chevron-right-DriXIqe5.js +11 -0
  5. package/dist/components/index.d.ts +1 -0
  6. package/dist/components/index.js +195 -0
  7. package/dist/components/ui/atoms/accordion.d.ts +7 -0
  8. package/dist/components/ui/atoms/accordion.js +289 -0
  9. package/dist/components/ui/atoms/alert.d.ts +9 -0
  10. package/dist/components/ui/atoms/alert.js +66 -0
  11. package/dist/components/ui/atoms/avatar.d.ts +6 -0
  12. package/dist/components/ui/atoms/avatar.js +130 -0
  13. package/dist/components/ui/atoms/badge.d.ts +9 -0
  14. package/dist/components/ui/atoms/badge.js +41 -0
  15. package/dist/components/ui/atoms/breadcrumb.d.ts +11 -0
  16. package/dist/components/ui/atoms/breadcrumb.js +115 -0
  17. package/dist/components/ui/atoms/button.d.ts +10 -0
  18. package/dist/components/ui/atoms/button.js +51 -0
  19. package/dist/components/ui/atoms/card.d.ts +9 -0
  20. package/dist/components/ui/atoms/card.js +90 -0
  21. package/dist/components/ui/atoms/chart.d.ts +68 -0
  22. package/dist/components/ui/atoms/chart.js +10477 -0
  23. package/dist/components/ui/atoms/collapsible.d.ts +5 -0
  24. package/dist/components/ui/atoms/collapsible.js +34 -0
  25. package/dist/components/ui/atoms/command.d.ts +18 -0
  26. package/dist/components/ui/atoms/command.js +490 -0
  27. package/dist/components/ui/atoms/dialog.d.ts +15 -0
  28. package/dist/components/ui/atoms/dialog.js +135 -0
  29. package/dist/components/ui/atoms/dropdown-menu.d.ts +25 -0
  30. package/dist/components/ui/atoms/dropdown-menu.js +1035 -0
  31. package/dist/components/ui/atoms/form.d.ts +24 -0
  32. package/dist/components/ui/atoms/form.js +297 -0
  33. package/dist/components/ui/atoms/hover-card.d.ts +6 -0
  34. package/dist/components/ui/atoms/hover-card.js +211 -0
  35. package/dist/components/ui/atoms/index.d.ts +33 -0
  36. package/dist/components/ui/atoms/index.js +195 -0
  37. package/dist/components/ui/atoms/input.d.ts +3 -0
  38. package/dist/components/ui/atoms/input.js +21 -0
  39. package/dist/components/ui/atoms/label.d.ts +4 -0
  40. package/dist/components/ui/atoms/label.js +36 -0
  41. package/dist/components/ui/atoms/popover.d.ts +7 -0
  42. package/dist/components/ui/atoms/popover.js +266 -0
  43. package/dist/components/ui/atoms/progress.d.ts +4 -0
  44. package/dist/components/ui/atoms/progress.js +107 -0
  45. package/dist/components/ui/atoms/resizable.d.ts +8 -0
  46. package/dist/components/ui/atoms/resizable.js +1564 -0
  47. package/dist/components/ui/atoms/scroll-area.d.ts +5 -0
  48. package/dist/components/ui/atoms/scroll-area.js +580 -0
  49. package/dist/components/ui/atoms/select.d.ts +15 -0
  50. package/dist/components/ui/atoms/select.js +1000 -0
  51. package/dist/components/ui/atoms/separator.d.ts +4 -0
  52. package/dist/components/ui/atoms/separator.js +44 -0
  53. package/dist/components/ui/atoms/sheet.d.ts +14 -0
  54. package/dist/components/ui/atoms/sheet.js +127 -0
  55. package/dist/components/ui/atoms/sidebar.d.ts +69 -0
  56. package/dist/components/ui/atoms/sidebar.js +602 -0
  57. package/dist/components/ui/atoms/skeleton.d.ts +2 -0
  58. package/dist/components/ui/atoms/skeleton.js +15 -0
  59. package/dist/components/ui/atoms/slider.d.ts +4 -0
  60. package/dist/components/ui/atoms/slider.js +484 -0
  61. package/dist/components/ui/atoms/sonner.d.ts +3 -0
  62. package/dist/components/ui/atoms/sonner.js +788 -0
  63. package/dist/components/ui/atoms/switch.d.ts +4 -0
  64. package/dist/components/ui/atoms/switch.js +155 -0
  65. package/dist/components/ui/atoms/table.d.ts +10 -0
  66. package/dist/components/ui/atoms/table.js +114 -0
  67. package/dist/components/ui/atoms/tabs.d.ts +7 -0
  68. package/dist/components/ui/atoms/tabs.js +218 -0
  69. package/dist/components/ui/atoms/textarea.d.ts +3 -0
  70. package/dist/components/ui/atoms/textarea.js +18 -0
  71. package/dist/components/ui/atoms/toggle.d.ts +9 -0
  72. package/dist/components/ui/atoms/toggle.js +70 -0
  73. package/dist/components/ui/atoms/tooltip.d.ts +7 -0
  74. package/dist/components/ui/atoms/tooltip.js +376 -0
  75. package/dist/components/ui/index.d.ts +1 -0
  76. package/dist/components/ui/index.js +195 -0
  77. package/dist/createLucideIcon-B6fy1GTR.js +94 -0
  78. package/dist/hooks/use-mobile.d.ts +1 -0
  79. package/dist/hooks/use-mobile.js +14 -0
  80. package/dist/index-BAhNQL1u.js +675 -0
  81. package/dist/index-BZPx6jYI.js +8 -0
  82. package/dist/index-ByaXH_ih.js +10 -0
  83. package/dist/index-C9KW2H79.js +36 -0
  84. package/dist/index-CB1Wkg0G.js +83 -0
  85. package/dist/index-CHDs-SiB.js +27 -0
  86. package/dist/index-CJFGOBPb.js +122 -0
  87. package/dist/index-CL4N9wMT.js +259 -0
  88. package/dist/index-CuMpq4Un.js +47 -0
  89. package/dist/index-CxK6rt_N.js +119 -0
  90. package/dist/index-D2uXV4lz.js +181 -0
  91. package/dist/index-DLeNytVF.js +9 -0
  92. package/dist/index-DYfkNB0n.js +54 -0
  93. package/dist/index-DdnpnyX2.js +34 -0
  94. package/dist/index-DuekHEmj.js +6 -0
  95. package/dist/index-DwYXX2sM.js +13 -0
  96. package/dist/index-Dy7YuPrV.js +1532 -0
  97. package/dist/index-QMp1pYFl.js +145 -0
  98. package/dist/index-UFb2E87s.js +70 -0
  99. package/dist/index-nluJZSbA.js +31 -0
  100. package/dist/index-p7nYL7BU.js +71 -0
  101. package/dist/index-rKs9bXHr.js +6 -0
  102. package/dist/index-umR1UobZ.js +13 -0
  103. package/dist/index.css +2 -0
  104. package/dist/lib/utils.d.ts +2 -0
  105. package/dist/lib/utils.js +4 -0
  106. package/dist/main.d.ts +1 -0
  107. package/dist/main.js +195 -0
  108. package/dist/utils-Dy2WjYNJ.js +2744 -0
  109. package/package.json +100 -0
@@ -0,0 +1,1564 @@
1
+ import { jsx as ve } from "react/jsx-runtime";
2
+ import * as Rn from "react";
3
+ import { createContext as Ln, forwardRef as en, createElement as de, useContext as nn, useRef as F, useLayoutEffect as An, useImperativeHandle as tn, useState as ce, useEffect as te, useCallback as B, useMemo as kn } from "react";
4
+ import { c as rn } from "../../../utils-Dy2WjYNJ.js";
5
+ import { c as Mn } from "../../../createLucideIcon-B6fy1GTR.js";
6
+ /**
7
+ * @license lucide-react v0.522.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */
12
+ const Nn = [
13
+ ["circle", { cx: "9", cy: "12", r: "1", key: "1vctgf" }],
14
+ ["circle", { cx: "9", cy: "5", r: "1", key: "hp0tcf" }],
15
+ ["circle", { cx: "9", cy: "19", r: "1", key: "fkjjf6" }],
16
+ ["circle", { cx: "15", cy: "12", r: "1", key: "1tmaij" }],
17
+ ["circle", { cx: "15", cy: "5", r: "1", key: "19l28e" }],
18
+ ["circle", { cx: "15", cy: "19", r: "1", key: "f4zoj3" }]
19
+ ], Dn = Mn("grip-vertical", Nn), Re = Ln(null);
20
+ Re.displayName = "PanelGroupContext";
21
+ const A = {
22
+ group: "data-panel-group",
23
+ groupDirection: "data-panel-group-direction",
24
+ groupId: "data-panel-group-id",
25
+ panel: "data-panel",
26
+ panelCollapsible: "data-panel-collapsible",
27
+ panelId: "data-panel-id",
28
+ panelSize: "data-panel-size",
29
+ resizeHandle: "data-resize-handle",
30
+ resizeHandleActive: "data-resize-handle-active",
31
+ resizeHandleEnabled: "data-panel-resize-handle-enabled",
32
+ resizeHandleId: "data-panel-resize-handle-id",
33
+ resizeHandleState: "data-resize-handle-state"
34
+ }, Be = 10, re = An, je = Rn.useId, Hn = typeof je == "function" ? je : () => null;
35
+ let $n = 0;
36
+ function Fe(e = null) {
37
+ const n = Hn(), t = F(e || n || null);
38
+ return t.current === null && (t.current = "" + $n++), e ?? t.current;
39
+ }
40
+ function on({
41
+ children: e,
42
+ className: n = "",
43
+ collapsedSize: t,
44
+ collapsible: r,
45
+ defaultSize: i,
46
+ forwardedRef: o,
47
+ id: l,
48
+ maxSize: a,
49
+ minSize: s,
50
+ onCollapse: m,
51
+ onExpand: P,
52
+ onResize: f,
53
+ order: c,
54
+ style: x,
55
+ tagName: y = "div",
56
+ ...I
57
+ }) {
58
+ const w = nn(Re);
59
+ if (w === null)
60
+ throw Error("Panel components must be rendered within a PanelGroup container");
61
+ const {
62
+ collapsePanel: S,
63
+ expandPanel: R,
64
+ getPanelSize: M,
65
+ getPanelStyle: D,
66
+ groupId: O,
67
+ isPanelCollapsed: C,
68
+ reevaluatePanelConstraints: b,
69
+ registerPanel: K,
70
+ resizePanel: J,
71
+ unregisterPanel: V
72
+ } = w, _ = Fe(l), k = F({
73
+ callbacks: {
74
+ onCollapse: m,
75
+ onExpand: P,
76
+ onResize: f
77
+ },
78
+ constraints: {
79
+ collapsedSize: t,
80
+ collapsible: r,
81
+ defaultSize: i,
82
+ maxSize: a,
83
+ minSize: s
84
+ },
85
+ id: _,
86
+ idIsFromProps: l !== void 0,
87
+ order: c
88
+ });
89
+ F({
90
+ didLogMissingDefaultSizeWarning: !1
91
+ }), re(() => {
92
+ const {
93
+ callbacks: $,
94
+ constraints: H
95
+ } = k.current, G = {
96
+ ...H
97
+ };
98
+ k.current.id = _, k.current.idIsFromProps = l !== void 0, k.current.order = c, $.onCollapse = m, $.onExpand = P, $.onResize = f, H.collapsedSize = t, H.collapsible = r, H.defaultSize = i, H.maxSize = a, H.minSize = s, (G.collapsedSize !== H.collapsedSize || G.collapsible !== H.collapsible || G.maxSize !== H.maxSize || G.minSize !== H.minSize) && b(k.current, G);
99
+ }), re(() => {
100
+ const $ = k.current;
101
+ return K($), () => {
102
+ V($);
103
+ };
104
+ }, [c, _, K, V]), tn(o, () => ({
105
+ collapse: () => {
106
+ S(k.current);
107
+ },
108
+ expand: ($) => {
109
+ R(k.current, $);
110
+ },
111
+ getId() {
112
+ return _;
113
+ },
114
+ getSize() {
115
+ return M(k.current);
116
+ },
117
+ isCollapsed() {
118
+ return C(k.current);
119
+ },
120
+ isExpanded() {
121
+ return !C(k.current);
122
+ },
123
+ resize: ($) => {
124
+ J(k.current, $);
125
+ }
126
+ }), [S, R, M, C, _, J]);
127
+ const ee = D(k.current, i);
128
+ return de(y, {
129
+ ...I,
130
+ children: e,
131
+ className: n,
132
+ id: _,
133
+ style: {
134
+ ...ee,
135
+ ...x
136
+ },
137
+ // CSS selectors
138
+ [A.groupId]: O,
139
+ [A.panel]: "",
140
+ [A.panelCollapsible]: r || void 0,
141
+ [A.panelId]: _,
142
+ [A.panelSize]: parseFloat("" + ee.flexGrow).toFixed(1)
143
+ });
144
+ }
145
+ const ln = en((e, n) => de(on, {
146
+ ...e,
147
+ forwardedRef: n
148
+ }));
149
+ on.displayName = "Panel";
150
+ ln.displayName = "forwardRef(Panel)";
151
+ let Te = null, Ie = -1, Z = null;
152
+ function _n(e, n) {
153
+ if (n) {
154
+ const t = (n & dn) !== 0, r = (n & fn) !== 0, i = (n & pn) !== 0, o = (n & gn) !== 0;
155
+ if (t)
156
+ return i ? "se-resize" : o ? "ne-resize" : "e-resize";
157
+ if (r)
158
+ return i ? "sw-resize" : o ? "nw-resize" : "w-resize";
159
+ if (i)
160
+ return "s-resize";
161
+ if (o)
162
+ return "n-resize";
163
+ }
164
+ switch (e) {
165
+ case "horizontal":
166
+ return "ew-resize";
167
+ case "intersection":
168
+ return "move";
169
+ case "vertical":
170
+ return "ns-resize";
171
+ }
172
+ }
173
+ function Gn() {
174
+ Z !== null && (document.head.removeChild(Z), Te = null, Z = null, Ie = -1);
175
+ }
176
+ function De(e, n) {
177
+ var t, r;
178
+ const i = _n(e, n);
179
+ if (Te !== i) {
180
+ if (Te = i, Z === null && (Z = document.createElement("style"), document.head.appendChild(Z)), Ie >= 0) {
181
+ var o;
182
+ (o = Z.sheet) === null || o === void 0 || o.removeRule(Ie);
183
+ }
184
+ Ie = (t = (r = Z.sheet) === null || r === void 0 ? void 0 : r.insertRule(`*{cursor: ${i} !important;}`)) !== null && t !== void 0 ? t : -1;
185
+ }
186
+ }
187
+ function an(e) {
188
+ return e.type === "keydown";
189
+ }
190
+ function sn(e) {
191
+ return e.type.startsWith("pointer");
192
+ }
193
+ function cn(e) {
194
+ return e.type.startsWith("mouse");
195
+ }
196
+ function Le(e) {
197
+ if (sn(e)) {
198
+ if (e.isPrimary)
199
+ return {
200
+ x: e.clientX,
201
+ y: e.clientY
202
+ };
203
+ } else if (cn(e))
204
+ return {
205
+ x: e.clientX,
206
+ y: e.clientY
207
+ };
208
+ return {
209
+ x: 1 / 0,
210
+ y: 1 / 0
211
+ };
212
+ }
213
+ function Tn() {
214
+ if (typeof matchMedia == "function")
215
+ return matchMedia("(pointer:coarse)").matches ? "coarse" : "fine";
216
+ }
217
+ function Bn(e, n, t) {
218
+ return e.x < n.x + n.width && e.x + e.width > n.x && e.y < n.y + n.height && e.y + e.height > n.y;
219
+ }
220
+ function Fn(e, n) {
221
+ if (e === n) throw new Error("Cannot compare node with itself");
222
+ const t = {
223
+ a: Xe(e),
224
+ b: Xe(n)
225
+ };
226
+ let r;
227
+ for (; t.a.at(-1) === t.b.at(-1); )
228
+ e = t.a.pop(), n = t.b.pop(), r = e;
229
+ z(r, "Stacking order can only be calculated for elements with a common ancestor");
230
+ const i = {
231
+ a: qe(Oe(t.a)),
232
+ b: qe(Oe(t.b))
233
+ };
234
+ if (i.a === i.b) {
235
+ const o = r.childNodes, l = {
236
+ a: t.a.at(-1),
237
+ b: t.b.at(-1)
238
+ };
239
+ let a = o.length;
240
+ for (; a--; ) {
241
+ const s = o[a];
242
+ if (s === l.a) return 1;
243
+ if (s === l.b) return -1;
244
+ }
245
+ }
246
+ return Math.sign(i.a - i.b);
247
+ }
248
+ const Vn = /\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;
249
+ function Wn(e) {
250
+ var n;
251
+ const t = getComputedStyle((n = un(e)) !== null && n !== void 0 ? n : e).display;
252
+ return t === "flex" || t === "inline-flex";
253
+ }
254
+ function Kn(e) {
255
+ const n = getComputedStyle(e);
256
+ return !!(n.position === "fixed" || n.zIndex !== "auto" && (n.position !== "static" || Wn(e)) || +n.opacity < 1 || "transform" in n && n.transform !== "none" || "webkitTransform" in n && n.webkitTransform !== "none" || "mixBlendMode" in n && n.mixBlendMode !== "normal" || "filter" in n && n.filter !== "none" || "webkitFilter" in n && n.webkitFilter !== "none" || "isolation" in n && n.isolation === "isolate" || Vn.test(n.willChange) || n.webkitOverflowScrolling === "touch");
257
+ }
258
+ function Oe(e) {
259
+ let n = e.length;
260
+ for (; n--; ) {
261
+ const t = e[n];
262
+ if (z(t, "Missing node"), Kn(t)) return t;
263
+ }
264
+ return null;
265
+ }
266
+ function qe(e) {
267
+ return e && Number(getComputedStyle(e).zIndex) || 0;
268
+ }
269
+ function Xe(e) {
270
+ const n = [];
271
+ for (; e; )
272
+ n.push(e), e = un(e);
273
+ return n;
274
+ }
275
+ function un(e) {
276
+ const {
277
+ parentNode: n
278
+ } = e;
279
+ return n && n instanceof ShadowRoot ? n.host : n;
280
+ }
281
+ const dn = 1, fn = 2, pn = 4, gn = 8, Un = Tn() === "coarse";
282
+ let j = [], ue = !1, Q = /* @__PURE__ */ new Map(), Ae = /* @__PURE__ */ new Map();
283
+ const Se = /* @__PURE__ */ new Set();
284
+ function jn(e, n, t, r, i) {
285
+ var o;
286
+ const {
287
+ ownerDocument: l
288
+ } = n, a = {
289
+ direction: t,
290
+ element: n,
291
+ hitAreaMargins: r,
292
+ setResizeHandlerState: i
293
+ }, s = (o = Q.get(l)) !== null && o !== void 0 ? o : 0;
294
+ return Q.set(l, s + 1), Se.add(a), Ee(), function() {
295
+ var P;
296
+ Ae.delete(e), Se.delete(a);
297
+ const f = (P = Q.get(l)) !== null && P !== void 0 ? P : 1;
298
+ if (Q.set(l, f - 1), Ee(), f === 1 && Q.delete(l), j.includes(a)) {
299
+ const c = j.indexOf(a);
300
+ c >= 0 && j.splice(c, 1), We(), i("up", !0, null);
301
+ }
302
+ };
303
+ }
304
+ function On(e) {
305
+ const {
306
+ target: n
307
+ } = e, {
308
+ x: t,
309
+ y: r
310
+ } = Le(e);
311
+ ue = !0, Ve({
312
+ target: n,
313
+ x: t,
314
+ y: r
315
+ }), Ee(), j.length > 0 && (Ce("down", e), e.preventDefault(), mn(n) || e.stopImmediatePropagation());
316
+ }
317
+ function He(e) {
318
+ const {
319
+ x: n,
320
+ y: t
321
+ } = Le(e);
322
+ if (ue && e.buttons === 0 && (ue = !1, Ce("up", e)), !ue) {
323
+ const {
324
+ target: r
325
+ } = e;
326
+ Ve({
327
+ target: r,
328
+ x: n,
329
+ y: t
330
+ });
331
+ }
332
+ Ce("move", e), We(), j.length > 0 && e.preventDefault();
333
+ }
334
+ function $e(e) {
335
+ const {
336
+ target: n
337
+ } = e, {
338
+ x: t,
339
+ y: r
340
+ } = Le(e);
341
+ Ae.clear(), ue = !1, j.length > 0 && (e.preventDefault(), mn(n) || e.stopImmediatePropagation()), Ce("up", e), Ve({
342
+ target: n,
343
+ x: t,
344
+ y: r
345
+ }), We(), Ee();
346
+ }
347
+ function mn(e) {
348
+ let n = e;
349
+ for (; n; ) {
350
+ if (n.hasAttribute(A.resizeHandle))
351
+ return !0;
352
+ n = n.parentElement;
353
+ }
354
+ return !1;
355
+ }
356
+ function Ve({
357
+ target: e,
358
+ x: n,
359
+ y: t
360
+ }) {
361
+ j.splice(0);
362
+ let r = null;
363
+ (e instanceof HTMLElement || e instanceof SVGElement) && (r = e), Se.forEach((i) => {
364
+ const {
365
+ element: o,
366
+ hitAreaMargins: l
367
+ } = i, a = o.getBoundingClientRect(), {
368
+ bottom: s,
369
+ left: m,
370
+ right: P,
371
+ top: f
372
+ } = a, c = Un ? l.coarse : l.fine;
373
+ if (n >= m - c && n <= P + c && t >= f - c && t <= s + c) {
374
+ if (r !== null && document.contains(r) && o !== r && !o.contains(r) && !r.contains(o) && // Calculating stacking order has a cost, so we should avoid it if possible
375
+ // That is why we only check potentially intersecting handles,
376
+ // and why we skip if the event target is within the handle's DOM
377
+ Fn(r, o) > 0) {
378
+ let y = r, I = !1;
379
+ for (; y && !y.contains(o); ) {
380
+ if (Bn(y.getBoundingClientRect(), a)) {
381
+ I = !0;
382
+ break;
383
+ }
384
+ y = y.parentElement;
385
+ }
386
+ if (I)
387
+ return;
388
+ }
389
+ j.push(i);
390
+ }
391
+ });
392
+ }
393
+ function _e(e, n) {
394
+ Ae.set(e, n);
395
+ }
396
+ function We() {
397
+ let e = !1, n = !1;
398
+ j.forEach((r) => {
399
+ const {
400
+ direction: i
401
+ } = r;
402
+ i === "horizontal" ? e = !0 : n = !0;
403
+ });
404
+ let t = 0;
405
+ Ae.forEach((r) => {
406
+ t |= r;
407
+ }), e && n ? De("intersection", t) : e ? De("horizontal", t) : n ? De("vertical", t) : Gn();
408
+ }
409
+ let Ge;
410
+ function Ee() {
411
+ var e;
412
+ (e = Ge) === null || e === void 0 || e.abort(), Ge = new AbortController();
413
+ const n = {
414
+ capture: !0,
415
+ signal: Ge.signal
416
+ };
417
+ Se.size && (ue ? (j.length > 0 && Q.forEach((t, r) => {
418
+ const {
419
+ body: i
420
+ } = r;
421
+ t > 0 && (i.addEventListener("contextmenu", $e, n), i.addEventListener("pointerleave", He, n), i.addEventListener("pointermove", He, n));
422
+ }), Q.forEach((t, r) => {
423
+ const {
424
+ body: i
425
+ } = r;
426
+ i.addEventListener("pointerup", $e, n), i.addEventListener("pointercancel", $e, n);
427
+ })) : Q.forEach((t, r) => {
428
+ const {
429
+ body: i
430
+ } = r;
431
+ t > 0 && (i.addEventListener("pointerdown", On, n), i.addEventListener("pointermove", He, n));
432
+ }));
433
+ }
434
+ function Ce(e, n) {
435
+ Se.forEach((t) => {
436
+ const {
437
+ setResizeHandlerState: r
438
+ } = t, i = j.includes(t);
439
+ r(e, i, n);
440
+ });
441
+ }
442
+ function qn() {
443
+ const [e, n] = ce(0);
444
+ return B(() => n((t) => t + 1), []);
445
+ }
446
+ function z(e, n) {
447
+ if (!e)
448
+ throw console.error(n), Error(n);
449
+ }
450
+ function oe(e, n, t = Be) {
451
+ return e.toFixed(t) === n.toFixed(t) ? 0 : e > n ? 1 : -1;
452
+ }
453
+ function Y(e, n, t = Be) {
454
+ return oe(e, n, t) === 0;
455
+ }
456
+ function W(e, n, t) {
457
+ return oe(e, n, t) === 0;
458
+ }
459
+ function Xn(e, n, t) {
460
+ if (e.length !== n.length)
461
+ return !1;
462
+ for (let r = 0; r < e.length; r++) {
463
+ const i = e[r], o = n[r];
464
+ if (!W(i, o, t))
465
+ return !1;
466
+ }
467
+ return !0;
468
+ }
469
+ function se({
470
+ panelConstraints: e,
471
+ panelIndex: n,
472
+ size: t
473
+ }) {
474
+ const r = e[n];
475
+ z(r != null, `Panel constraints not found for index ${n}`);
476
+ let {
477
+ collapsedSize: i = 0,
478
+ collapsible: o,
479
+ maxSize: l = 100,
480
+ minSize: a = 0
481
+ } = r;
482
+ if (oe(t, a) < 0)
483
+ if (o) {
484
+ const s = (i + a) / 2;
485
+ oe(t, s) < 0 ? t = i : t = a;
486
+ } else
487
+ t = a;
488
+ return t = Math.min(l, t), t = parseFloat(t.toFixed(Be)), t;
489
+ }
490
+ function ze({
491
+ delta: e,
492
+ initialLayout: n,
493
+ panelConstraints: t,
494
+ pivotIndices: r,
495
+ prevLayout: i,
496
+ trigger: o
497
+ }) {
498
+ if (W(e, 0))
499
+ return n;
500
+ const l = [...n], [a, s] = r;
501
+ z(a != null, "Invalid first pivot index"), z(s != null, "Invalid second pivot index");
502
+ let m = 0;
503
+ if (o === "keyboard") {
504
+ {
505
+ const f = e < 0 ? s : a, c = t[f];
506
+ z(c, `Panel constraints not found for index ${f}`);
507
+ const {
508
+ collapsedSize: x = 0,
509
+ collapsible: y,
510
+ minSize: I = 0
511
+ } = c;
512
+ if (y) {
513
+ const w = n[f];
514
+ if (z(w != null, `Previous layout not found for panel index ${f}`), W(w, x)) {
515
+ const S = I - w;
516
+ oe(S, Math.abs(e)) > 0 && (e = e < 0 ? 0 - S : S);
517
+ }
518
+ }
519
+ }
520
+ {
521
+ const f = e < 0 ? a : s, c = t[f];
522
+ z(c, `No panel constraints found for index ${f}`);
523
+ const {
524
+ collapsedSize: x = 0,
525
+ collapsible: y,
526
+ minSize: I = 0
527
+ } = c;
528
+ if (y) {
529
+ const w = n[f];
530
+ if (z(w != null, `Previous layout not found for panel index ${f}`), W(w, I)) {
531
+ const S = w - x;
532
+ oe(S, Math.abs(e)) > 0 && (e = e < 0 ? 0 - S : S);
533
+ }
534
+ }
535
+ }
536
+ }
537
+ {
538
+ const f = e < 0 ? 1 : -1;
539
+ let c = e < 0 ? s : a, x = 0;
540
+ for (; ; ) {
541
+ const I = n[c];
542
+ z(I != null, `Previous layout not found for panel index ${c}`);
543
+ const S = se({
544
+ panelConstraints: t,
545
+ panelIndex: c,
546
+ size: 100
547
+ }) - I;
548
+ if (x += S, c += f, c < 0 || c >= t.length)
549
+ break;
550
+ }
551
+ const y = Math.min(Math.abs(e), Math.abs(x));
552
+ e = e < 0 ? 0 - y : y;
553
+ }
554
+ {
555
+ let c = e < 0 ? a : s;
556
+ for (; c >= 0 && c < t.length; ) {
557
+ const x = Math.abs(e) - Math.abs(m), y = n[c];
558
+ z(y != null, `Previous layout not found for panel index ${c}`);
559
+ const I = y - x, w = se({
560
+ panelConstraints: t,
561
+ panelIndex: c,
562
+ size: I
563
+ });
564
+ if (!W(y, w) && (m += y - w, l[c] = w, m.toPrecision(3).localeCompare(Math.abs(e).toPrecision(3), void 0, {
565
+ numeric: !0
566
+ }) >= 0))
567
+ break;
568
+ e < 0 ? c-- : c++;
569
+ }
570
+ }
571
+ if (Xn(i, l))
572
+ return i;
573
+ {
574
+ const f = e < 0 ? s : a, c = n[f];
575
+ z(c != null, `Previous layout not found for panel index ${f}`);
576
+ const x = c + m, y = se({
577
+ panelConstraints: t,
578
+ panelIndex: f,
579
+ size: x
580
+ });
581
+ if (l[f] = y, !W(y, x)) {
582
+ let I = x - y, S = e < 0 ? s : a;
583
+ for (; S >= 0 && S < t.length; ) {
584
+ const R = l[S];
585
+ z(R != null, `Previous layout not found for panel index ${S}`);
586
+ const M = R + I, D = se({
587
+ panelConstraints: t,
588
+ panelIndex: S,
589
+ size: M
590
+ });
591
+ if (W(R, D) || (I -= D - R, l[S] = D), W(I, 0))
592
+ break;
593
+ e > 0 ? S-- : S++;
594
+ }
595
+ }
596
+ }
597
+ const P = l.reduce((f, c) => c + f, 0);
598
+ return W(P, 100) ? l : i;
599
+ }
600
+ function Jn({
601
+ layout: e,
602
+ panelsArray: n,
603
+ pivotIndices: t
604
+ }) {
605
+ let r = 0, i = 100, o = 0, l = 0;
606
+ const a = t[0];
607
+ z(a != null, "No pivot index found"), n.forEach((f, c) => {
608
+ const {
609
+ constraints: x
610
+ } = f, {
611
+ maxSize: y = 100,
612
+ minSize: I = 0
613
+ } = x;
614
+ c === a ? (r = I, i = y) : (o += I, l += y);
615
+ });
616
+ const s = Math.min(i, 100 - o), m = Math.max(r, 100 - l), P = e[a];
617
+ return {
618
+ valueMax: s,
619
+ valueMin: m,
620
+ valueNow: P
621
+ };
622
+ }
623
+ function be(e, n = document) {
624
+ return Array.from(n.querySelectorAll(`[${A.resizeHandleId}][data-panel-group-id="${e}"]`));
625
+ }
626
+ function yn(e, n, t = document) {
627
+ const i = be(e, t).findIndex((o) => o.getAttribute(A.resizeHandleId) === n);
628
+ return i ?? null;
629
+ }
630
+ function hn(e, n, t) {
631
+ const r = yn(e, n, t);
632
+ return r != null ? [r, r + 1] : [-1, -1];
633
+ }
634
+ function Yn(e) {
635
+ return e instanceof HTMLElement ? !0 : typeof e == "object" && e !== null && "tagName" in e && "getAttribute" in e;
636
+ }
637
+ function zn(e, n = document) {
638
+ if (Yn(n) && n.dataset.panelGroupId == e)
639
+ return n;
640
+ const t = n.querySelector(`[data-panel-group][data-panel-group-id="${e}"]`);
641
+ return t || null;
642
+ }
643
+ function ke(e, n = document) {
644
+ const t = n.querySelector(`[${A.resizeHandleId}="${e}"]`);
645
+ return t || null;
646
+ }
647
+ function Zn(e, n, t, r = document) {
648
+ var i, o, l, a;
649
+ const s = ke(n, r), m = be(e, r), P = s ? m.indexOf(s) : -1, f = (i = (o = t[P]) === null || o === void 0 ? void 0 : o.id) !== null && i !== void 0 ? i : null, c = (l = (a = t[P + 1]) === null || a === void 0 ? void 0 : a.id) !== null && l !== void 0 ? l : null;
650
+ return [f, c];
651
+ }
652
+ function Qn({
653
+ committedValuesRef: e,
654
+ eagerValuesRef: n,
655
+ groupId: t,
656
+ layout: r,
657
+ panelDataArray: i,
658
+ panelGroupElement: o,
659
+ setLayout: l
660
+ }) {
661
+ F({
662
+ didWarnAboutMissingResizeHandle: !1
663
+ }), re(() => {
664
+ if (!o)
665
+ return;
666
+ const a = be(t, o);
667
+ for (let s = 0; s < i.length - 1; s++) {
668
+ const {
669
+ valueMax: m,
670
+ valueMin: P,
671
+ valueNow: f
672
+ } = Jn({
673
+ layout: r,
674
+ panelsArray: i,
675
+ pivotIndices: [s, s + 1]
676
+ }), c = a[s];
677
+ if (c != null) {
678
+ const x = i[s];
679
+ z(x, `No panel data found for index "${s}"`), c.setAttribute("aria-controls", x.id), c.setAttribute("aria-valuemax", "" + Math.round(m)), c.setAttribute("aria-valuemin", "" + Math.round(P)), c.setAttribute("aria-valuenow", f != null ? "" + Math.round(f) : "");
680
+ }
681
+ }
682
+ return () => {
683
+ a.forEach((s, m) => {
684
+ s.removeAttribute("aria-controls"), s.removeAttribute("aria-valuemax"), s.removeAttribute("aria-valuemin"), s.removeAttribute("aria-valuenow");
685
+ });
686
+ };
687
+ }, [t, r, i, o]), te(() => {
688
+ if (!o)
689
+ return;
690
+ const a = n.current;
691
+ z(a, "Eager values not found");
692
+ const {
693
+ panelDataArray: s
694
+ } = a, m = zn(t, o);
695
+ z(m != null, `No group found for id "${t}"`);
696
+ const P = be(t, o);
697
+ z(P, `No resize handles found for group id "${t}"`);
698
+ const f = P.map((c) => {
699
+ const x = c.getAttribute(A.resizeHandleId);
700
+ z(x, "Resize handle element has no handle id attribute");
701
+ const [y, I] = Zn(t, x, s, o);
702
+ if (y == null || I == null)
703
+ return () => {
704
+ };
705
+ const w = (S) => {
706
+ if (!S.defaultPrevented)
707
+ switch (S.key) {
708
+ case "Enter": {
709
+ S.preventDefault();
710
+ const R = s.findIndex((M) => M.id === y);
711
+ if (R >= 0) {
712
+ const M = s[R];
713
+ z(M, `No panel data found for index ${R}`);
714
+ const D = r[R], {
715
+ collapsedSize: O = 0,
716
+ collapsible: C,
717
+ minSize: b = 0
718
+ } = M.constraints;
719
+ if (D != null && C) {
720
+ const K = ze({
721
+ delta: W(D, O) ? b - O : O - D,
722
+ initialLayout: r,
723
+ panelConstraints: s.map((J) => J.constraints),
724
+ pivotIndices: hn(t, x, o),
725
+ prevLayout: r,
726
+ trigger: "keyboard"
727
+ });
728
+ r !== K && l(K);
729
+ }
730
+ }
731
+ break;
732
+ }
733
+ }
734
+ };
735
+ return c.addEventListener("keydown", w), () => {
736
+ c.removeEventListener("keydown", w);
737
+ };
738
+ });
739
+ return () => {
740
+ f.forEach((c) => c());
741
+ };
742
+ }, [o, e, n, t, r, i, l]);
743
+ }
744
+ function Je(e, n) {
745
+ if (e.length !== n.length)
746
+ return !1;
747
+ for (let t = 0; t < e.length; t++)
748
+ if (e[t] !== n[t])
749
+ return !1;
750
+ return !0;
751
+ }
752
+ function xn(e, n) {
753
+ const t = e === "horizontal", {
754
+ x: r,
755
+ y: i
756
+ } = Le(n);
757
+ return t ? r : i;
758
+ }
759
+ function et(e, n, t, r, i) {
760
+ const o = t === "horizontal", l = ke(n, i);
761
+ z(l, `No resize handle element found for id "${n}"`);
762
+ const a = l.getAttribute(A.groupId);
763
+ z(a, "Resize handle element has no group id attribute");
764
+ let {
765
+ initialCursorPosition: s
766
+ } = r;
767
+ const m = xn(t, e), P = zn(a, i);
768
+ z(P, `No group element found for id "${a}"`);
769
+ const f = P.getBoundingClientRect(), c = o ? f.width : f.height;
770
+ return (m - s) / c * 100;
771
+ }
772
+ function nt(e, n, t, r, i, o) {
773
+ if (an(e)) {
774
+ const l = t === "horizontal";
775
+ let a = 0;
776
+ e.shiftKey ? a = 100 : i != null ? a = i : a = 10;
777
+ let s = 0;
778
+ switch (e.key) {
779
+ case "ArrowDown":
780
+ s = l ? 0 : a;
781
+ break;
782
+ case "ArrowLeft":
783
+ s = l ? -a : 0;
784
+ break;
785
+ case "ArrowRight":
786
+ s = l ? a : 0;
787
+ break;
788
+ case "ArrowUp":
789
+ s = l ? 0 : -a;
790
+ break;
791
+ case "End":
792
+ s = 100;
793
+ break;
794
+ case "Home":
795
+ s = -100;
796
+ break;
797
+ }
798
+ return s;
799
+ } else
800
+ return r == null ? 0 : et(e, n, t, r, o);
801
+ }
802
+ function tt({
803
+ panelDataArray: e
804
+ }) {
805
+ const n = Array(e.length), t = e.map((o) => o.constraints);
806
+ let r = 0, i = 100;
807
+ for (let o = 0; o < e.length; o++) {
808
+ const l = t[o];
809
+ z(l, `Panel constraints not found for index ${o}`);
810
+ const {
811
+ defaultSize: a
812
+ } = l;
813
+ a != null && (r++, n[o] = a, i -= a);
814
+ }
815
+ for (let o = 0; o < e.length; o++) {
816
+ const l = t[o];
817
+ z(l, `Panel constraints not found for index ${o}`);
818
+ const {
819
+ defaultSize: a
820
+ } = l;
821
+ if (a != null)
822
+ continue;
823
+ const s = e.length - r, m = i / s;
824
+ r++, n[o] = m, i -= m;
825
+ }
826
+ return n;
827
+ }
828
+ function le(e, n, t) {
829
+ n.forEach((r, i) => {
830
+ const o = e[i];
831
+ z(o, `Panel data not found for index ${i}`);
832
+ const {
833
+ callbacks: l,
834
+ constraints: a,
835
+ id: s
836
+ } = o, {
837
+ collapsedSize: m = 0,
838
+ collapsible: P
839
+ } = a, f = t[s];
840
+ if (f == null || r !== f) {
841
+ t[s] = r;
842
+ const {
843
+ onCollapse: c,
844
+ onExpand: x,
845
+ onResize: y
846
+ } = l;
847
+ y && y(r, f), P && (c || x) && (x && (f == null || Y(f, m)) && !Y(r, m) && x(), c && (f == null || !Y(f, m)) && Y(r, m) && c());
848
+ }
849
+ });
850
+ }
851
+ function we(e, n) {
852
+ if (e.length !== n.length)
853
+ return !1;
854
+ for (let t = 0; t < e.length; t++)
855
+ if (e[t] != n[t])
856
+ return !1;
857
+ return !0;
858
+ }
859
+ function rt({
860
+ defaultSize: e,
861
+ dragState: n,
862
+ layout: t,
863
+ panelData: r,
864
+ panelIndex: i,
865
+ precision: o = 3
866
+ }) {
867
+ const l = t[i];
868
+ let a;
869
+ return l == null ? a = e != null ? e.toPrecision(o) : "1" : r.length === 1 ? a = "1" : a = l.toPrecision(o), {
870
+ flexBasis: 0,
871
+ flexGrow: a,
872
+ flexShrink: 1,
873
+ // Without this, Panel sizes may be unintentionally overridden by their content
874
+ overflow: "hidden",
875
+ // Disable pointer events inside of a panel during resize
876
+ // This avoid edge cases like nested iframes
877
+ pointerEvents: n !== null ? "none" : void 0
878
+ };
879
+ }
880
+ function ot(e, n = 10) {
881
+ let t = null;
882
+ return (...i) => {
883
+ t !== null && clearTimeout(t), t = setTimeout(() => {
884
+ e(...i);
885
+ }, n);
886
+ };
887
+ }
888
+ function Ye(e) {
889
+ try {
890
+ if (typeof localStorage < "u")
891
+ e.getItem = (n) => localStorage.getItem(n), e.setItem = (n, t) => {
892
+ localStorage.setItem(n, t);
893
+ };
894
+ else
895
+ throw new Error("localStorage not supported in this environment");
896
+ } catch (n) {
897
+ console.error(n), e.getItem = () => null, e.setItem = () => {
898
+ };
899
+ }
900
+ }
901
+ function vn(e) {
902
+ return `react-resizable-panels:${e}`;
903
+ }
904
+ function Sn(e) {
905
+ return e.map((n) => {
906
+ const {
907
+ constraints: t,
908
+ id: r,
909
+ idIsFromProps: i,
910
+ order: o
911
+ } = n;
912
+ return i ? r : o ? `${o}:${JSON.stringify(t)}` : JSON.stringify(t);
913
+ }).sort((n, t) => n.localeCompare(t)).join(",");
914
+ }
915
+ function bn(e, n) {
916
+ try {
917
+ const t = vn(e), r = n.getItem(t);
918
+ if (r) {
919
+ const i = JSON.parse(r);
920
+ if (typeof i == "object" && i != null)
921
+ return i;
922
+ }
923
+ } catch {
924
+ }
925
+ return null;
926
+ }
927
+ function it(e, n, t) {
928
+ var r, i;
929
+ const o = (r = bn(e, t)) !== null && r !== void 0 ? r : {}, l = Sn(n);
930
+ return (i = o[l]) !== null && i !== void 0 ? i : null;
931
+ }
932
+ function lt(e, n, t, r, i) {
933
+ var o;
934
+ const l = vn(e), a = Sn(n), s = (o = bn(e, i)) !== null && o !== void 0 ? o : {};
935
+ s[a] = {
936
+ expandToSizes: Object.fromEntries(t.entries()),
937
+ layout: r
938
+ };
939
+ try {
940
+ i.setItem(l, JSON.stringify(s));
941
+ } catch (m) {
942
+ console.error(m);
943
+ }
944
+ }
945
+ function Ze({
946
+ layout: e,
947
+ panelConstraints: n
948
+ }) {
949
+ const t = [...e], r = t.reduce((o, l) => o + l, 0);
950
+ if (t.length !== n.length)
951
+ throw Error(`Invalid ${n.length} panel layout: ${t.map((o) => `${o}%`).join(", ")}`);
952
+ if (!W(r, 100) && t.length > 0)
953
+ for (let o = 0; o < n.length; o++) {
954
+ const l = t[o];
955
+ z(l != null, `No layout data found for index ${o}`);
956
+ const a = 100 / r * l;
957
+ t[o] = a;
958
+ }
959
+ let i = 0;
960
+ for (let o = 0; o < n.length; o++) {
961
+ const l = t[o];
962
+ z(l != null, `No layout data found for index ${o}`);
963
+ const a = se({
964
+ panelConstraints: n,
965
+ panelIndex: o,
966
+ size: l
967
+ });
968
+ l != a && (i += l - a, t[o] = a);
969
+ }
970
+ if (!W(i, 0))
971
+ for (let o = 0; o < n.length; o++) {
972
+ const l = t[o];
973
+ z(l != null, `No layout data found for index ${o}`);
974
+ const a = l + i, s = se({
975
+ panelConstraints: n,
976
+ panelIndex: o,
977
+ size: a
978
+ });
979
+ if (l !== s && (i -= s - l, t[o] = s, W(i, 0)))
980
+ break;
981
+ }
982
+ return t;
983
+ }
984
+ const at = 100, xe = {
985
+ getItem: (e) => (Ye(xe), xe.getItem(e)),
986
+ setItem: (e, n) => {
987
+ Ye(xe), xe.setItem(e, n);
988
+ }
989
+ }, Qe = {};
990
+ function Pn({
991
+ autoSaveId: e = null,
992
+ children: n,
993
+ className: t = "",
994
+ direction: r,
995
+ forwardedRef: i,
996
+ id: o = null,
997
+ onLayout: l = null,
998
+ keyboardResizeBy: a = null,
999
+ storage: s = xe,
1000
+ style: m,
1001
+ tagName: P = "div",
1002
+ ...f
1003
+ }) {
1004
+ const c = Fe(o), x = F(null), [y, I] = ce(null), [w, S] = ce([]), R = qn(), M = F({}), D = F(/* @__PURE__ */ new Map()), O = F(0), C = F({
1005
+ autoSaveId: e,
1006
+ direction: r,
1007
+ dragState: y,
1008
+ id: c,
1009
+ keyboardResizeBy: a,
1010
+ onLayout: l,
1011
+ storage: s
1012
+ }), b = F({
1013
+ layout: w,
1014
+ panelDataArray: [],
1015
+ panelDataArrayChanged: !1
1016
+ });
1017
+ F({
1018
+ didLogIdAndOrderWarning: !1,
1019
+ didLogPanelConstraintsWarning: !1,
1020
+ prevPanelIds: []
1021
+ }), tn(i, () => ({
1022
+ getId: () => C.current.id,
1023
+ getLayout: () => {
1024
+ const {
1025
+ layout: u
1026
+ } = b.current;
1027
+ return u;
1028
+ },
1029
+ setLayout: (u) => {
1030
+ const {
1031
+ onLayout: g
1032
+ } = C.current, {
1033
+ layout: v,
1034
+ panelDataArray: p
1035
+ } = b.current, d = Ze({
1036
+ layout: u,
1037
+ panelConstraints: p.map((h) => h.constraints)
1038
+ });
1039
+ Je(v, d) || (S(d), b.current.layout = d, g && g(d), le(p, d, M.current));
1040
+ }
1041
+ }), []), re(() => {
1042
+ C.current.autoSaveId = e, C.current.direction = r, C.current.dragState = y, C.current.id = c, C.current.onLayout = l, C.current.storage = s;
1043
+ }), Qn({
1044
+ committedValuesRef: C,
1045
+ eagerValuesRef: b,
1046
+ groupId: c,
1047
+ layout: w,
1048
+ panelDataArray: b.current.panelDataArray,
1049
+ setLayout: S,
1050
+ panelGroupElement: x.current
1051
+ }), te(() => {
1052
+ const {
1053
+ panelDataArray: u
1054
+ } = b.current;
1055
+ if (e) {
1056
+ if (w.length === 0 || w.length !== u.length)
1057
+ return;
1058
+ let g = Qe[e];
1059
+ g == null && (g = ot(lt, at), Qe[e] = g);
1060
+ const v = [...u], p = new Map(D.current);
1061
+ g(e, v, p, w, s);
1062
+ }
1063
+ }, [e, w, s]), te(() => {
1064
+ });
1065
+ const K = B((u) => {
1066
+ const {
1067
+ onLayout: g
1068
+ } = C.current, {
1069
+ layout: v,
1070
+ panelDataArray: p
1071
+ } = b.current;
1072
+ if (u.constraints.collapsible) {
1073
+ const d = p.map((q) => q.constraints), {
1074
+ collapsedSize: h = 0,
1075
+ panelSize: E,
1076
+ pivotIndices: N
1077
+ } = ne(p, u, v);
1078
+ if (z(E != null, `Panel size not found for panel "${u.id}"`), !Y(E, h)) {
1079
+ D.current.set(u.id, E);
1080
+ const X = ae(p, u) === p.length - 1 ? E - h : h - E, L = ze({
1081
+ delta: X,
1082
+ initialLayout: v,
1083
+ panelConstraints: d,
1084
+ pivotIndices: N,
1085
+ prevLayout: v,
1086
+ trigger: "imperative-api"
1087
+ });
1088
+ we(v, L) || (S(L), b.current.layout = L, g && g(L), le(p, L, M.current));
1089
+ }
1090
+ }
1091
+ }, []), J = B((u, g) => {
1092
+ const {
1093
+ onLayout: v
1094
+ } = C.current, {
1095
+ layout: p,
1096
+ panelDataArray: d
1097
+ } = b.current;
1098
+ if (u.constraints.collapsible) {
1099
+ const h = d.map((U) => U.constraints), {
1100
+ collapsedSize: E = 0,
1101
+ panelSize: N = 0,
1102
+ minSize: q = 0,
1103
+ pivotIndices: X
1104
+ } = ne(d, u, p), L = g ?? q;
1105
+ if (Y(N, E)) {
1106
+ const U = D.current.get(u.id), ye = U != null && U >= L ? U : L, Ne = ae(d, u) === d.length - 1 ? N - ye : ye - N, T = ze({
1107
+ delta: Ne,
1108
+ initialLayout: p,
1109
+ panelConstraints: h,
1110
+ pivotIndices: X,
1111
+ prevLayout: p,
1112
+ trigger: "imperative-api"
1113
+ });
1114
+ we(p, T) || (S(T), b.current.layout = T, v && v(T), le(d, T, M.current));
1115
+ }
1116
+ }
1117
+ }, []), V = B((u) => {
1118
+ const {
1119
+ layout: g,
1120
+ panelDataArray: v
1121
+ } = b.current, {
1122
+ panelSize: p
1123
+ } = ne(v, u, g);
1124
+ return z(p != null, `Panel size not found for panel "${u.id}"`), p;
1125
+ }, []), _ = B((u, g) => {
1126
+ const {
1127
+ panelDataArray: v
1128
+ } = b.current, p = ae(v, u);
1129
+ return rt({
1130
+ defaultSize: g,
1131
+ dragState: y,
1132
+ layout: w,
1133
+ panelData: v,
1134
+ panelIndex: p
1135
+ });
1136
+ }, [y, w]), k = B((u) => {
1137
+ const {
1138
+ layout: g,
1139
+ panelDataArray: v
1140
+ } = b.current, {
1141
+ collapsedSize: p = 0,
1142
+ collapsible: d,
1143
+ panelSize: h
1144
+ } = ne(v, u, g);
1145
+ return z(h != null, `Panel size not found for panel "${u.id}"`), d === !0 && Y(h, p);
1146
+ }, []), ee = B((u) => {
1147
+ const {
1148
+ layout: g,
1149
+ panelDataArray: v
1150
+ } = b.current, {
1151
+ collapsedSize: p = 0,
1152
+ collapsible: d,
1153
+ panelSize: h
1154
+ } = ne(v, u, g);
1155
+ return z(h != null, `Panel size not found for panel "${u.id}"`), !d || oe(h, p) > 0;
1156
+ }, []), $ = B((u) => {
1157
+ const {
1158
+ panelDataArray: g
1159
+ } = b.current;
1160
+ g.push(u), g.sort((v, p) => {
1161
+ const d = v.order, h = p.order;
1162
+ return d == null && h == null ? 0 : d == null ? -1 : h == null ? 1 : d - h;
1163
+ }), b.current.panelDataArrayChanged = !0, R();
1164
+ }, [R]);
1165
+ re(() => {
1166
+ if (b.current.panelDataArrayChanged) {
1167
+ b.current.panelDataArrayChanged = !1;
1168
+ const {
1169
+ autoSaveId: u,
1170
+ onLayout: g,
1171
+ storage: v
1172
+ } = C.current, {
1173
+ layout: p,
1174
+ panelDataArray: d
1175
+ } = b.current;
1176
+ let h = null;
1177
+ if (u) {
1178
+ const N = it(u, d, v);
1179
+ N && (D.current = new Map(Object.entries(N.expandToSizes)), h = N.layout);
1180
+ }
1181
+ h == null && (h = tt({
1182
+ panelDataArray: d
1183
+ }));
1184
+ const E = Ze({
1185
+ layout: h,
1186
+ panelConstraints: d.map((N) => N.constraints)
1187
+ });
1188
+ Je(p, E) || (S(E), b.current.layout = E, g && g(E), le(d, E, M.current));
1189
+ }
1190
+ }), re(() => {
1191
+ const u = b.current;
1192
+ return () => {
1193
+ u.layout = [];
1194
+ };
1195
+ }, []);
1196
+ const H = B((u) => {
1197
+ let g = !1;
1198
+ const v = x.current;
1199
+ return v && window.getComputedStyle(v, null).getPropertyValue("direction") === "rtl" && (g = !0), function(d) {
1200
+ d.preventDefault();
1201
+ const h = x.current;
1202
+ if (!h)
1203
+ return () => null;
1204
+ const {
1205
+ direction: E,
1206
+ dragState: N,
1207
+ id: q,
1208
+ keyboardResizeBy: X,
1209
+ onLayout: L
1210
+ } = C.current, {
1211
+ layout: U,
1212
+ panelDataArray: ye
1213
+ } = b.current, {
1214
+ initialLayout: Pe
1215
+ } = N ?? {}, Ne = hn(q, u, h);
1216
+ let T = nt(d, u, E, N, X, h);
1217
+ const Ke = E === "horizontal";
1218
+ Ke && g && (T = -T);
1219
+ const En = ye.map((Cn) => Cn.constraints), he = ze({
1220
+ delta: T,
1221
+ initialLayout: Pe ?? U,
1222
+ panelConstraints: En,
1223
+ pivotIndices: Ne,
1224
+ prevLayout: U,
1225
+ trigger: an(d) ? "keyboard" : "mouse-or-touch"
1226
+ }), Ue = !we(U, he);
1227
+ (sn(d) || cn(d)) && O.current != T && (O.current = T, !Ue && T !== 0 ? Ke ? _e(u, T < 0 ? dn : fn) : _e(u, T < 0 ? pn : gn) : _e(u, 0)), Ue && (S(he), b.current.layout = he, L && L(he), le(ye, he, M.current));
1228
+ };
1229
+ }, []), G = B((u, g) => {
1230
+ const {
1231
+ onLayout: v
1232
+ } = C.current, {
1233
+ layout: p,
1234
+ panelDataArray: d
1235
+ } = b.current, h = d.map((U) => U.constraints), {
1236
+ panelSize: E,
1237
+ pivotIndices: N
1238
+ } = ne(d, u, p);
1239
+ z(E != null, `Panel size not found for panel "${u.id}"`);
1240
+ const X = ae(d, u) === d.length - 1 ? E - g : g - E, L = ze({
1241
+ delta: X,
1242
+ initialLayout: p,
1243
+ panelConstraints: h,
1244
+ pivotIndices: N,
1245
+ prevLayout: p,
1246
+ trigger: "imperative-api"
1247
+ });
1248
+ we(p, L) || (S(L), b.current.layout = L, v && v(L), le(d, L, M.current));
1249
+ }, []), fe = B((u, g) => {
1250
+ const {
1251
+ layout: v,
1252
+ panelDataArray: p
1253
+ } = b.current, {
1254
+ collapsedSize: d = 0,
1255
+ collapsible: h
1256
+ } = g, {
1257
+ collapsedSize: E = 0,
1258
+ collapsible: N,
1259
+ maxSize: q = 100,
1260
+ minSize: X = 0
1261
+ } = u.constraints, {
1262
+ panelSize: L
1263
+ } = ne(p, u, v);
1264
+ L != null && (h && N && Y(L, d) ? Y(d, E) || G(u, E) : L < X ? G(u, X) : L > q && G(u, q));
1265
+ }, [G]), pe = B((u, g) => {
1266
+ const {
1267
+ direction: v
1268
+ } = C.current, {
1269
+ layout: p
1270
+ } = b.current;
1271
+ if (!x.current)
1272
+ return;
1273
+ const d = ke(u, x.current);
1274
+ z(d, `Drag handle element not found for id "${u}"`);
1275
+ const h = xn(v, g);
1276
+ I({
1277
+ dragHandleId: u,
1278
+ dragHandleRect: d.getBoundingClientRect(),
1279
+ initialCursorPosition: h,
1280
+ initialLayout: p
1281
+ });
1282
+ }, []), ge = B(() => {
1283
+ I(null);
1284
+ }, []), Me = B((u) => {
1285
+ const {
1286
+ panelDataArray: g
1287
+ } = b.current, v = ae(g, u);
1288
+ v >= 0 && (g.splice(v, 1), delete M.current[u.id], b.current.panelDataArrayChanged = !0, R());
1289
+ }, [R]), ie = kn(() => ({
1290
+ collapsePanel: K,
1291
+ direction: r,
1292
+ dragState: y,
1293
+ expandPanel: J,
1294
+ getPanelSize: V,
1295
+ getPanelStyle: _,
1296
+ groupId: c,
1297
+ isPanelCollapsed: k,
1298
+ isPanelExpanded: ee,
1299
+ reevaluatePanelConstraints: fe,
1300
+ registerPanel: $,
1301
+ registerResizeHandle: H,
1302
+ resizePanel: G,
1303
+ startDragging: pe,
1304
+ stopDragging: ge,
1305
+ unregisterPanel: Me,
1306
+ panelGroupElement: x.current
1307
+ }), [K, y, r, J, V, _, c, k, ee, fe, $, H, G, pe, ge, Me]), me = {
1308
+ display: "flex",
1309
+ flexDirection: r === "horizontal" ? "row" : "column",
1310
+ height: "100%",
1311
+ overflow: "hidden",
1312
+ width: "100%"
1313
+ };
1314
+ return de(Re.Provider, {
1315
+ value: ie
1316
+ }, de(P, {
1317
+ ...f,
1318
+ children: n,
1319
+ className: t,
1320
+ id: o,
1321
+ ref: x,
1322
+ style: {
1323
+ ...me,
1324
+ ...m
1325
+ },
1326
+ // CSS selectors
1327
+ [A.group]: "",
1328
+ [A.groupDirection]: r,
1329
+ [A.groupId]: c
1330
+ }));
1331
+ }
1332
+ const wn = en((e, n) => de(Pn, {
1333
+ ...e,
1334
+ forwardedRef: n
1335
+ }));
1336
+ Pn.displayName = "PanelGroup";
1337
+ wn.displayName = "forwardRef(PanelGroup)";
1338
+ function ae(e, n) {
1339
+ return e.findIndex((t) => t === n || t.id === n.id);
1340
+ }
1341
+ function ne(e, n, t) {
1342
+ const r = ae(e, n), o = r === e.length - 1 ? [r - 1, r] : [r, r + 1], l = t[r];
1343
+ return {
1344
+ ...n.constraints,
1345
+ panelSize: l,
1346
+ pivotIndices: o
1347
+ };
1348
+ }
1349
+ function st({
1350
+ disabled: e,
1351
+ handleId: n,
1352
+ resizeHandler: t,
1353
+ panelGroupElement: r
1354
+ }) {
1355
+ te(() => {
1356
+ if (e || t == null || r == null)
1357
+ return;
1358
+ const i = ke(n, r);
1359
+ if (i == null)
1360
+ return;
1361
+ const o = (l) => {
1362
+ if (!l.defaultPrevented)
1363
+ switch (l.key) {
1364
+ case "ArrowDown":
1365
+ case "ArrowLeft":
1366
+ case "ArrowRight":
1367
+ case "ArrowUp":
1368
+ case "End":
1369
+ case "Home": {
1370
+ l.preventDefault(), t(l);
1371
+ break;
1372
+ }
1373
+ case "F6": {
1374
+ l.preventDefault();
1375
+ const a = i.getAttribute(A.groupId);
1376
+ z(a, `No group element found for id "${a}"`);
1377
+ const s = be(a, r), m = yn(a, n, r);
1378
+ z(m !== null, `No resize element found for id "${n}"`);
1379
+ const P = l.shiftKey ? m > 0 ? m - 1 : s.length - 1 : m + 1 < s.length ? m + 1 : 0;
1380
+ s[P].focus();
1381
+ break;
1382
+ }
1383
+ }
1384
+ };
1385
+ return i.addEventListener("keydown", o), () => {
1386
+ i.removeEventListener("keydown", o);
1387
+ };
1388
+ }, [r, e, n, t]);
1389
+ }
1390
+ function In({
1391
+ children: e = null,
1392
+ className: n = "",
1393
+ disabled: t = !1,
1394
+ hitAreaMargins: r,
1395
+ id: i,
1396
+ onBlur: o,
1397
+ onClick: l,
1398
+ onDragging: a,
1399
+ onFocus: s,
1400
+ onPointerDown: m,
1401
+ onPointerUp: P,
1402
+ style: f = {},
1403
+ tabIndex: c = 0,
1404
+ tagName: x = "div",
1405
+ ...y
1406
+ }) {
1407
+ var I, w;
1408
+ const S = F(null), R = F({
1409
+ onClick: l,
1410
+ onDragging: a,
1411
+ onPointerDown: m,
1412
+ onPointerUp: P
1413
+ });
1414
+ te(() => {
1415
+ R.current.onClick = l, R.current.onDragging = a, R.current.onPointerDown = m, R.current.onPointerUp = P;
1416
+ });
1417
+ const M = nn(Re);
1418
+ if (M === null)
1419
+ throw Error("PanelResizeHandle components must be rendered within a PanelGroup container");
1420
+ const {
1421
+ direction: D,
1422
+ groupId: O,
1423
+ registerResizeHandle: C,
1424
+ startDragging: b,
1425
+ stopDragging: K,
1426
+ panelGroupElement: J
1427
+ } = M, V = Fe(i), [_, k] = ce("inactive"), [ee, $] = ce(!1), [H, G] = ce(null), fe = F({
1428
+ state: _
1429
+ });
1430
+ re(() => {
1431
+ fe.current.state = _;
1432
+ }), te(() => {
1433
+ if (t)
1434
+ G(null);
1435
+ else {
1436
+ const ie = C(V);
1437
+ G(() => ie);
1438
+ }
1439
+ }, [t, V, C]);
1440
+ const pe = (I = r == null ? void 0 : r.coarse) !== null && I !== void 0 ? I : 15, ge = (w = r == null ? void 0 : r.fine) !== null && w !== void 0 ? w : 5;
1441
+ return te(() => {
1442
+ if (t || H == null)
1443
+ return;
1444
+ const ie = S.current;
1445
+ z(ie, "Element ref not attached");
1446
+ let me = !1;
1447
+ return jn(V, ie, D, {
1448
+ coarse: pe,
1449
+ fine: ge
1450
+ }, (g, v, p) => {
1451
+ if (!v) {
1452
+ k("inactive");
1453
+ return;
1454
+ }
1455
+ switch (g) {
1456
+ case "down": {
1457
+ k("drag"), me = !1, z(p, 'Expected event to be defined for "down" action'), b(V, p);
1458
+ const {
1459
+ onDragging: d,
1460
+ onPointerDown: h
1461
+ } = R.current;
1462
+ d == null || d(!0), h == null || h();
1463
+ break;
1464
+ }
1465
+ case "move": {
1466
+ const {
1467
+ state: d
1468
+ } = fe.current;
1469
+ me = !0, d !== "drag" && k("hover"), z(p, 'Expected event to be defined for "move" action'), H(p);
1470
+ break;
1471
+ }
1472
+ case "up": {
1473
+ k("hover"), K();
1474
+ const {
1475
+ onClick: d,
1476
+ onDragging: h,
1477
+ onPointerUp: E
1478
+ } = R.current;
1479
+ h == null || h(!1), E == null || E(), me || d == null || d();
1480
+ break;
1481
+ }
1482
+ }
1483
+ });
1484
+ }, [pe, D, t, ge, C, V, H, b, K]), st({
1485
+ disabled: t,
1486
+ handleId: V,
1487
+ resizeHandler: H,
1488
+ panelGroupElement: J
1489
+ }), de(x, {
1490
+ ...y,
1491
+ children: e,
1492
+ className: n,
1493
+ id: i,
1494
+ onBlur: () => {
1495
+ $(!1), o == null || o();
1496
+ },
1497
+ onFocus: () => {
1498
+ $(!0), s == null || s();
1499
+ },
1500
+ ref: S,
1501
+ role: "separator",
1502
+ style: {
1503
+ ...{
1504
+ touchAction: "none",
1505
+ userSelect: "none"
1506
+ },
1507
+ ...f
1508
+ },
1509
+ tabIndex: c,
1510
+ // CSS selectors
1511
+ [A.groupDirection]: D,
1512
+ [A.groupId]: O,
1513
+ [A.resizeHandle]: "",
1514
+ [A.resizeHandleActive]: _ === "drag" ? "pointer" : ee ? "keyboard" : void 0,
1515
+ [A.resizeHandleEnabled]: !t,
1516
+ [A.resizeHandleId]: V,
1517
+ [A.resizeHandleState]: _
1518
+ });
1519
+ }
1520
+ In.displayName = "PanelResizeHandle";
1521
+ function pt({
1522
+ className: e,
1523
+ ...n
1524
+ }) {
1525
+ return /* @__PURE__ */ ve(
1526
+ wn,
1527
+ {
1528
+ className: rn(
1529
+ "flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
1530
+ e
1531
+ ),
1532
+ "data-slot": "resizable-panel-group",
1533
+ ...n
1534
+ }
1535
+ );
1536
+ }
1537
+ function gt({
1538
+ ...e
1539
+ }) {
1540
+ return /* @__PURE__ */ ve(ln, { "data-slot": "resizable-panel", ...e });
1541
+ }
1542
+ function mt({
1543
+ withHandle: e,
1544
+ className: n,
1545
+ ...t
1546
+ }) {
1547
+ return /* @__PURE__ */ ve(
1548
+ In,
1549
+ {
1550
+ className: rn(
1551
+ "after:-translate-x-1/2 data-[panel-group-direction=vertical]:after:-translate-y-1/2 relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
1552
+ n
1553
+ ),
1554
+ "data-slot": "resizable-handle",
1555
+ ...t,
1556
+ children: e && /* @__PURE__ */ ve("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-xs border bg-border", children: /* @__PURE__ */ ve(Dn, { className: "size-2.5" }) })
1557
+ }
1558
+ );
1559
+ }
1560
+ export {
1561
+ mt as ResizableHandle,
1562
+ gt as ResizablePanel,
1563
+ pt as ResizablePanelGroup
1564
+ };