@aiquants/resize-panels 0.2.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.
@@ -0,0 +1,4824 @@
1
+ import Vt, { createContext as Yt, useContext as qt, useCallback as fe, useMemo as de, useReducer as Xt, useState as ze, useRef as pe, useLayoutEffect as Ye, useEffect as ue, memo as nt, useSyncExternalStore as Et } from "react";
2
+ import { createPortal as Jt } from "react-dom";
3
+ const Mt = Yt(null), it = () => {
4
+ const e = qt(Mt);
5
+ if (!e)
6
+ throw new Error("usePanelGroup must be used within a PanelGroup");
7
+ return e;
8
+ }, Rt = (e, t = 0) => {
9
+ if (!Number.isFinite(e))
10
+ return e;
11
+ const r = 10 ** t, o = e * r, i = Math.floor(o), s = o - i, a = Number.EPSILON * Math.max(1, Math.abs(o));
12
+ return s < 0.5 - a ? i / r : s > 0.5 + a ? (i + 1) / r : (i % 2 === 0 ? i : i + 1) / r;
13
+ }, _t = 12, dt = 8, Zt = 8, Qt = 8, It = 0.05, At = 10, Kt = 0.05, er = 20, tr = 0.05, Xe = 0, ut = 0, Nt = 6, me = (e, t) => t <= 0 ? 0 : Rt(e / t * 100, Nt), Be = (e, t) => !e || t <= 0 ? 0 : e / 100 * t, Le = (e, t = "percentage") => {
14
+ if (e !== void 0)
15
+ return typeof e == "number" ? { value: e, unit: t } : e;
16
+ }, ft = (e, t) => e ? e.unit === "percentage" ? e.value / 100 * t : e.value : 0, oe = (e, t, r) => e ? typeof e == "number" ? e / 100 * r : e.unit === "pixels" ? e.value : e.value / 100 * r : t, he = (e, t, r) => Math.min(Math.max(e, t), r), Ke = (e) => {
17
+ if (!Number.isFinite(e) || e <= 0)
18
+ return ut;
19
+ const t = e * It, r = Math.min(_t, At, t);
20
+ return Math.max(ut, r);
21
+ }, ot = (e, t, r) => {
22
+ if (Math.abs(t) <= 0)
23
+ return t;
24
+ const o = e.map((l, c) => ({ panel: l, index: c })).filter(({ panel: l }) => !l.collapsed && (l.sizeUnit === "pixels" || l.originalPixelSize !== void 0));
25
+ if (o.length === 0)
26
+ return t;
27
+ const i = [...o].sort((l, c) => {
28
+ const S = l.panel.pixelAdjustPriority ?? l.index + 1, b = c.panel.pixelAdjustPriority ?? c.index + 1;
29
+ return S === b ? l.index - c.index : S - b;
30
+ });
31
+ let s = t;
32
+ return (() => {
33
+ for (const { index: l } of i) {
34
+ if (Math.abs(s) <= 0)
35
+ break;
36
+ const c = e[l];
37
+ if (!c || c.collapsed)
38
+ continue;
39
+ const S = Le(c.minSize, "pixels"), b = Le(c.maxSize, "pixels"), d = S ? ft(S, r) : 0, u = b ? ft(b, r) : r;
40
+ if (s > 0) {
41
+ if (Math.abs(c.size) <= 0 && (c.percentageSize ?? 0) <= 0)
42
+ continue;
43
+ const w = Math.max(0, u - c.size);
44
+ if (w <= 0)
45
+ continue;
46
+ const C = Math.min(w, s);
47
+ if (C <= 0)
48
+ continue;
49
+ const v = c.size + C, p = me(v, r), m = c.collapsible ? v : c.sizeBeforeCollapse, R = c.collapsible ? c.measuredPixelSizeBeforeCollapse ?? c.measuredPixelSize ?? v : c.measuredPixelSizeBeforeCollapse;
50
+ e[l] = {
51
+ ...c,
52
+ size: v,
53
+ percentageSize: p,
54
+ originalPixelSize: c.originalPixelSize !== void 0 ? c.originalPixelSize : v,
55
+ sizeBeforeCollapse: m,
56
+ measuredPixelSizeBeforeCollapse: R
57
+ }, s -= C;
58
+ } else {
59
+ const h = Math.max(0, c.size - d);
60
+ if (h <= 0)
61
+ continue;
62
+ const w = Math.min(h, Math.abs(s));
63
+ if (w <= 0)
64
+ continue;
65
+ const C = c.size - w, v = me(C, r), p = c.collapsible ? C : c.sizeBeforeCollapse, m = c.collapsible ? c.measuredPixelSizeBeforeCollapse ?? c.measuredPixelSize ?? C : c.measuredPixelSizeBeforeCollapse;
66
+ e[l] = {
67
+ ...c,
68
+ size: C,
69
+ percentageSize: v,
70
+ originalPixelSize: c.originalPixelSize !== void 0 ? c.originalPixelSize : C,
71
+ sizeBeforeCollapse: p,
72
+ measuredPixelSizeBeforeCollapse: m
73
+ }, s += w;
74
+ }
75
+ }
76
+ })(), s;
77
+ }, Fe = (e) => {
78
+ if (!e)
79
+ return 0;
80
+ const t = parseFloat(e);
81
+ return Number.isFinite(t) ? t : 0;
82
+ }, we = (e, t) => {
83
+ const r = e.getBoundingClientRect(), o = typeof window < "u" ? window.getComputedStyle(e) : null, i = o ? Fe(o.borderLeftWidth) + Fe(o.borderRightWidth) : 0, s = o ? Fe(o.borderTopWidth) + Fe(o.borderBottomWidth) : 0;
84
+ if (t === "horizontal") {
85
+ const S = r.width > 0 ? r.width : e.offsetWidth, b = r.width > 0 ? Math.max(0, r.width - i) : e.clientWidth, d = e.offsetWidth > 0 ? e.offsetWidth : e.clientWidth + i;
86
+ return {
87
+ inner: b > 0 ? b : Math.max(0, e.clientWidth),
88
+ outer: S > 0 ? S : Math.max(0, d)
89
+ };
90
+ }
91
+ const a = r.height > 0 ? r.height : e.offsetHeight, l = r.height > 0 ? Math.max(0, r.height - s) : e.clientHeight, c = e.offsetHeight > 0 ? e.offsetHeight : e.clientHeight + s;
92
+ return {
93
+ inner: l > 0 ? l : Math.max(0, e.clientHeight),
94
+ outer: a > 0 ? a : Math.max(0, c)
95
+ };
96
+ };
97
+ let pt = 0, mt = 0;
98
+ const rr = () => typeof window > "u" ? (pt += 1, `panel-server-${pt}`) : `panel-${Date.now()}-${Math.random().toString(36).substr(2, 5)}`, nr = () => typeof window > "u" ? (mt += 1, `resize-handle-server-${mt}`) : `resize-handle-${Date.now()}-${Math.random().toString(36).substr(2, 5)}`, ir = (e, t) => {
99
+ try {
100
+ localStorage.setItem(`panel-layout-${e}`, JSON.stringify(t));
101
+ } catch (r) {
102
+ console.warn("Failed to save panel layout:", r);
103
+ }
104
+ }, or = (e) => {
105
+ try {
106
+ const t = localStorage.getItem(`panel-layout-${e}`);
107
+ return t ? JSON.parse(t) : null;
108
+ } catch (t) {
109
+ return console.warn("Failed to load panel layout:", t), null;
110
+ }
111
+ }, Je = (e, t) => {
112
+ const r = e.map((u) => {
113
+ if (u.collapsed)
114
+ return {
115
+ ...u,
116
+ size: 0,
117
+ percentageSize: 0
118
+ };
119
+ if (u.sizeUnit === "pixels" || u.originalPixelSize !== void 0) {
120
+ const h = oe(u.minSize, 0, t), w = oe(u.maxSize, t, t), C = he(u.size, h, w);
121
+ let v = C, p = Math.abs(C - u.size) > Xe, m = u.size;
122
+ if (u.originalPixelSize !== void 0 && Math.abs(u.size - u.originalPixelSize) <= Xe && (m = u.originalPixelSize), m !== void 0) {
123
+ const R = he(m, h, w);
124
+ R > v + Xe && (v = R, p = !0);
125
+ }
126
+ if (p) {
127
+ const R = me(v, t), F = u.collapsible ? v : u.sizeBeforeCollapse, V = u.collapsible ? u.measuredPixelSizeBeforeCollapse ?? u.measuredPixelSize ?? v : u.measuredPixelSizeBeforeCollapse;
128
+ return {
129
+ ...u,
130
+ size: v,
131
+ percentageSize: R,
132
+ sizeBeforeCollapse: F,
133
+ measuredPixelSizeBeforeCollapse: V
134
+ };
135
+ }
136
+ }
137
+ if (u.sizeUnit === "percentage" && (!u.percentageSize || u.percentageSize <= 0) && u.size > 0) {
138
+ const h = me(u.size, t);
139
+ return {
140
+ ...u,
141
+ percentageSize: h
142
+ };
143
+ }
144
+ return u;
145
+ }), o = r.reduce((u, h) => h.collapsed ? u : h.sizeUnit === "pixels" || h.originalPixelSize !== void 0 ? u + h.size : u, 0), i = () => {
146
+ const u = r.map((p, m) => ({ panel: p, index: m })).filter(({ panel: p }) => !p.collapsed && (p.sizeUnit === "pixels" || p.originalPixelSize !== void 0));
147
+ if (u.length === 0)
148
+ return r;
149
+ const h = u.reduce((p, { panel: m }) => p + m.size, 0), w = t - h;
150
+ if (Math.abs(w) <= 0.1)
151
+ return r;
152
+ const C = [...u].sort((p, m) => {
153
+ const R = p.panel.pixelAdjustPriority ?? p.index + 1, F = m.panel.pixelAdjustPriority ?? m.index + 1;
154
+ return R === F ? p.index - m.index : R - F;
155
+ });
156
+ let v = w;
157
+ for (const { panel: p, index: m } of C) {
158
+ if (Math.abs(v) <= 0.1)
159
+ break;
160
+ const R = oe(p.minSize, 0, t), F = oe(p.maxSize, t, t), V = p.size;
161
+ if (v > 0) {
162
+ const I = Math.max(0, F - V);
163
+ if (I <= 0)
164
+ continue;
165
+ const ee = Math.min(I, v), M = V + ee, $ = me(M, t), W = p.collapsible ? M : p.sizeBeforeCollapse, X = p.collapsible ? p.measuredPixelSizeBeforeCollapse ?? p.measuredPixelSize ?? M : p.measuredPixelSizeBeforeCollapse;
166
+ r[m] = {
167
+ ...p,
168
+ size: M,
169
+ percentageSize: $,
170
+ sizeBeforeCollapse: W,
171
+ measuredPixelSizeBeforeCollapse: X
172
+ }, v -= ee;
173
+ } else {
174
+ const I = Math.max(0, V - R);
175
+ if (I <= 0)
176
+ continue;
177
+ const ee = Math.min(I, Math.abs(v)), M = V - ee, $ = me(M, t), W = p.collapsible ? M : p.sizeBeforeCollapse, X = p.collapsible ? p.measuredPixelSizeBeforeCollapse ?? p.measuredPixelSize ?? M : p.measuredPixelSizeBeforeCollapse;
178
+ r[m] = {
179
+ ...p,
180
+ size: M,
181
+ percentageSize: $,
182
+ sizeBeforeCollapse: W,
183
+ measuredPixelSizeBeforeCollapse: X
184
+ }, v += ee;
185
+ }
186
+ }
187
+ return r;
188
+ }, s = r.reduce((u, h, w) => (!h.collapsed && h.sizeUnit === "percentage" && h.originalPixelSize === void 0 && u.push(w), u), []);
189
+ if (s.length === 0)
190
+ return i();
191
+ const a = Math.max(0, t - o), l = s.map((u) => {
192
+ const h = r[u];
193
+ return h.percentageSize !== void 0 && h.percentageSize > 0 ? Be(h.percentageSize, t) : h.size > 0 ? h.size : 0;
194
+ }), c = l.reduce((u, h) => h > 0 ? u + h : u, 0);
195
+ if (c <= 0)
196
+ return i();
197
+ const S = [...r];
198
+ let b = 0;
199
+ s.forEach((u, h) => {
200
+ const w = S[u], C = l[h];
201
+ let v;
202
+ if (C > 0) {
203
+ const I = C / c;
204
+ v = a * I;
205
+ } else
206
+ v = w.size;
207
+ const p = oe(w.minSize, 0, t), m = oe(w.maxSize, t, t);
208
+ v = he(v, p, m), b += v;
209
+ const R = me(v, t), F = w.collapsible ? v : w.sizeBeforeCollapse, V = w.collapsible ? w.measuredPixelSizeBeforeCollapse ?? w.measuredPixelSize ?? v : w.measuredPixelSizeBeforeCollapse;
210
+ S[u] = {
211
+ ...w,
212
+ size: v,
213
+ percentageSize: R,
214
+ sizeBeforeCollapse: F,
215
+ measuredPixelSizeBeforeCollapse: V
216
+ };
217
+ });
218
+ const d = a - b;
219
+ return Math.abs(d) > 0.1 && ot(S, d, t), Re(S);
220
+ }, Re = (e) => {
221
+ let t = 0;
222
+ for (const i of e)
223
+ i.collapsed || (t += Math.max(i.size, 0));
224
+ if (t <= 0) {
225
+ let i = !1;
226
+ const s = e.map((a) => (a.percentageSize ?? 0) !== 0 ? (i = !0, {
227
+ ...a,
228
+ percentageSize: 0,
229
+ measuredPercentageSize: a.measuredPercentageSize !== void 0 ? 0 : a.measuredPercentageSize
230
+ }) : !a.collapsed && a.sizeBeforeCollapse !== a.size ? (i = !0, {
231
+ ...a,
232
+ sizeBeforeCollapse: a.size
233
+ }) : a);
234
+ return i ? s : e;
235
+ }
236
+ let r = !1;
237
+ const o = e.map((i) => {
238
+ if (i.collapsed)
239
+ return (i.percentageSize ?? 0) !== 0 ? (r = !0, {
240
+ ...i,
241
+ percentageSize: 0,
242
+ measuredPercentageSize: i.measuredPercentageSize !== void 0 ? 0 : i.measuredPercentageSize
243
+ }) : i;
244
+ const s = me(i.size, t), a = i.measuredPercentageSize, S = (a !== void 0 ? Math.abs(a - s) : 1 / 0) < 1e-4 && a !== void 0 ? a : s, b = Rt(S, Nt), u = Math.abs((i.percentageSize ?? 0) - b) > 0 || i.percentageSize === void 0, h = i.sizeBeforeCollapse === void 0 || i.sizeBeforeCollapse !== i.size, w = i.collapsible && h, C = i.measuredPixelSize ?? i.size, v = i.collapsible && (i.measuredPixelSizeBeforeCollapse === void 0 || i.measuredPixelSizeBeforeCollapse !== C);
245
+ if (!(u || w || v))
246
+ return i;
247
+ r = !0;
248
+ const p = w ? i.size : i.sizeBeforeCollapse, m = v ? C : i.measuredPixelSizeBeforeCollapse;
249
+ return {
250
+ ...i,
251
+ percentageSize: b,
252
+ sizeBeforeCollapse: p,
253
+ measuredPixelSizeBeforeCollapse: m
254
+ };
255
+ });
256
+ return r ? o : e;
257
+ }, He = (e, t) => {
258
+ if (t <= 0)
259
+ return !1;
260
+ const r = [];
261
+ let o = 0;
262
+ for (let b = 0; b < e.length; b += 1) {
263
+ const d = e[b];
264
+ !d || d.collapsed || (r.push(b), o += d.size);
265
+ }
266
+ if (r.length === 0)
267
+ return !1;
268
+ let i = t - o;
269
+ if (Math.abs(i) <= 0)
270
+ return !1;
271
+ let s = !1;
272
+ const a = (b) => {
273
+ const d = e[b], u = oe(d.minSize, 0, t), h = oe(d.maxSize, t, t), w = d.sizeUnit === "percentage" && d.originalPixelSize === void 0;
274
+ return {
275
+ index: b,
276
+ minSize: u,
277
+ maxSize: h,
278
+ isFlexible: w
279
+ };
280
+ }, l = (b, d) => {
281
+ if (!Number.isFinite(d) || Math.abs(d) <= 0)
282
+ return;
283
+ const u = e[b];
284
+ if (!u)
285
+ return;
286
+ const h = Math.max(0, u.size + d);
287
+ if (Math.abs(h - u.size) <= 0)
288
+ return;
289
+ const w = me(h, t), C = u.collapsible ? h : u.sizeBeforeCollapse, v = u.collapsible ? u.measuredPixelSizeBeforeCollapse ?? u.measuredPixelSize ?? h : u.measuredPixelSizeBeforeCollapse;
290
+ e[b] = {
291
+ ...u,
292
+ size: h,
293
+ percentageSize: w,
294
+ sizeBeforeCollapse: C,
295
+ measuredPixelSizeBeforeCollapse: v,
296
+ measuredPixelSize: void 0,
297
+ measuredPercentageSize: void 0
298
+ }, i -= d, s = !0;
299
+ }, c = (b) => {
300
+ for (const d of b) {
301
+ if (Math.abs(i) <= 0)
302
+ break;
303
+ const u = e[d.index];
304
+ if (!u || u.collapsed)
305
+ continue;
306
+ const h = u.size;
307
+ if (i > 0) {
308
+ const w = Math.max(0, d.maxSize - h);
309
+ if (w <= 0)
310
+ continue;
311
+ const C = Math.min(w, i);
312
+ if (C <= 0)
313
+ continue;
314
+ l(d.index, C);
315
+ } else {
316
+ const w = Math.max(0, h - d.minSize);
317
+ if (w <= 0)
318
+ continue;
319
+ const C = Math.min(w, Math.abs(i));
320
+ if (C <= 0)
321
+ continue;
322
+ l(d.index, -C);
323
+ }
324
+ }
325
+ }, S = r.map((b) => a(b)).filter((b) => b.isFlexible);
326
+ if (S.length > 0 && c(S), Math.abs(i) > 0) {
327
+ const b = i;
328
+ i = ot(e, i, t), Math.abs(i - b) > 0 && (s = !0);
329
+ }
330
+ return s;
331
+ }, gt = (e, t, r) => {
332
+ if (!(e.sizeUnit === "pixels" || e.originalPixelSize !== void 0) || e.pixelAdjustPriority !== void 0)
333
+ return e;
334
+ const i = t.filter((a, l) => l !== r && (a.sizeUnit === "pixels" || a.originalPixelSize !== void 0)).map((a) => a.pixelAdjustPriority).filter((a) => a !== void 0), s = i.length > 0 ? Math.max(...i) + 1 : 1;
335
+ return {
336
+ ...e,
337
+ pixelAdjustPriority: s
338
+ };
339
+ }, sr = (e, t) => {
340
+ switch (t.type) {
341
+ case "REGISTER_PANEL": {
342
+ console.log("REGISTER_PANEL", t.panel);
343
+ const r = e.findIndex((s) => s.id === t.panel.id);
344
+ if (r >= 0) {
345
+ const s = [...e], a = e[r], l = {
346
+ ...a,
347
+ minSize: t.panel.minSize,
348
+ maxSize: t.panel.maxSize,
349
+ collapsible: t.panel.collapsible,
350
+ sizeUnit: t.panel.sizeUnit,
351
+ originalPixelSize: t.panel.originalPixelSize,
352
+ pixelAdjustPriority: t.panel.pixelAdjustPriority !== void 0 ? t.panel.pixelAdjustPriority : a.pixelAdjustPriority
353
+ }, c = gt(l, e, r);
354
+ return s[r] = c, s;
355
+ }
356
+ const o = { ...t.panel }, i = gt(o, e);
357
+ return [...e, i];
358
+ }
359
+ case "UNREGISTER_PANEL": {
360
+ console.log("UNREGISTER_PANEL", t.id);
361
+ const r = e.filter((o) => o.id !== t.id);
362
+ return Re(r);
363
+ }
364
+ case "RESIZE_PANELS": {
365
+ console.log("RESIZE_PANELS", t.leftId, t.rightId, t.leftSize, t.rightSize);
366
+ const r = e.findIndex((A) => A.id === t.leftId), o = e.findIndex((A) => A.id === t.rightId);
367
+ if (r === -1 || o === -1) return e;
368
+ const i = [...e], s = i[r], a = i[o];
369
+ if (s.collapsed || a.collapsed || t.leftSize === s.size && t.rightSize === a.size)
370
+ return e;
371
+ const l = t.containerSize ?? e.reduce((A, D) => A + D.size, 0), c = oe(s.minSize, 0, l), S = oe(s.maxSize, l, l), b = oe(a.minSize, 0, l), d = oe(a.maxSize, l, l), u = s.size + a.size, h = e.reduce((A, D) => D.collapsed ? A : A + D.size, 0), w = h - u, C = c + b, v = S + d, p = he(t.leftSize + t.rightSize, C, v);
372
+ let m = l > 0 ? l - w : p;
373
+ Number.isFinite(m) || (m = p);
374
+ const R = he(Math.max(p, m), C, v), F = (A) => ({
375
+ min: Math.max(c, A - d),
376
+ max: Math.min(S, A - b)
377
+ }), V = (A) => ({
378
+ min: Math.max(b, A - S),
379
+ max: Math.min(d, A - c)
380
+ }), I = Math.abs(t.leftSize - s.size), ee = Math.abs(t.rightSize - a.size), M = I >= ee;
381
+ let $ = s.size, W = a.size;
382
+ if (M) {
383
+ const A = F(R);
384
+ if (A.min > A.max)
385
+ return e;
386
+ const D = he(t.leftSize, A.min, A.max), k = R - D;
387
+ if (k < b || k > d)
388
+ return e;
389
+ $ = D, W = k;
390
+ } else {
391
+ const A = V(R);
392
+ if (A.min > A.max)
393
+ return e;
394
+ const D = he(t.rightSize, A.min, A.max), k = R - D;
395
+ if (k < c || k > S)
396
+ return e;
397
+ W = D, $ = k;
398
+ }
399
+ const X = $ + W;
400
+ if (R !== X)
401
+ return e;
402
+ const te = h - s.size - a.size + X, Y = l > 0 ? l : te, Z = Y > 0 ? me($, Y) : 0, H = Y > 0 ? me(W, Y) : 0;
403
+ return i[r] = {
404
+ ...s,
405
+ size: $,
406
+ percentageSize: Z,
407
+ sizeBeforeCollapse: s.collapsible ? $ : s.sizeBeforeCollapse,
408
+ measuredPixelSize: void 0,
409
+ measuredPercentageSize: void 0
410
+ }, i[o] = {
411
+ ...a,
412
+ size: W,
413
+ percentageSize: H,
414
+ sizeBeforeCollapse: a.collapsible ? W : a.sizeBeforeCollapse,
415
+ measuredPixelSize: void 0,
416
+ measuredPercentageSize: void 0
417
+ }, l > 0 && He(i, l) ? Re(i) : i;
418
+ }
419
+ case "SET_PANELS":
420
+ return console.log("SET_PANELS", t.panels), Re(t.panels);
421
+ case "CONTAINER_RESIZED": {
422
+ console.log("CONTAINER_RESIZED", t.containerSize);
423
+ const r = Je(e, t.containerSize);
424
+ return t.containerSize > 0 && He(r, t.containerSize) ? Re(r) : r;
425
+ }
426
+ case "COLLAPSE_PANEL": {
427
+ console.log("COLLAPSE_PANEL", t.id);
428
+ const r = e.findIndex((S) => S.id === t.id);
429
+ if (r === -1)
430
+ return e;
431
+ const o = e[r];
432
+ if (!o.collapsible || o.collapsed)
433
+ return e;
434
+ const i = o.size, s = o.measuredPixelSize ?? i, a = {
435
+ ...o,
436
+ collapsed: !0,
437
+ sizeBeforeCollapse: i,
438
+ measuredPixelSizeBeforeCollapse: s,
439
+ size: 0,
440
+ percentageSize: 0,
441
+ measuredPixelSize: o.measuredPixelSize !== void 0 ? 0 : o.measuredPixelSize,
442
+ measuredPercentageSize: o.measuredPercentageSize !== void 0 ? 0 : o.measuredPercentageSize
443
+ }, l = [...e];
444
+ l[r] = a;
445
+ const c = Je(l, t.containerSize);
446
+ return t.containerSize > 0 && He(c, t.containerSize) ? Re(c) : c;
447
+ }
448
+ case "EXPAND_PANEL": {
449
+ console.log("EXPAND_PANEL", t.id, t.targetSize);
450
+ const r = e.findIndex((v) => v.id === t.id);
451
+ if (r === -1)
452
+ return e;
453
+ const o = t.containerSize, i = e[r];
454
+ if (!(i.collapsible && i.collapsed))
455
+ return e;
456
+ const a = [t.targetSize, i.sizeBeforeCollapse, i.measuredPixelSizeBeforeCollapse, i.originalPixelSize].find((v) => v !== void 0) ?? 0, l = oe(i.minSize, 0, o), c = oe(i.maxSize, o, o), S = he(a, l, c), b = me(S, o), d = i.measuredPixelSizeBeforeCollapse ?? S, u = me(d, o), h = {
457
+ ...i,
458
+ collapsed: !1,
459
+ size: S,
460
+ percentageSize: b,
461
+ sizeBeforeCollapse: S,
462
+ measuredPixelSize: S,
463
+ measuredPixelSizeBeforeCollapse: d,
464
+ measuredPercentageSize: u
465
+ }, w = [...e];
466
+ w[r] = h;
467
+ const C = Je(w, o);
468
+ return o > 0 && He(C, o) ? Re(C) : C;
469
+ }
470
+ default:
471
+ return e;
472
+ }
473
+ }, ar = ({ direction: e, style: t, onLayout: r, autoSaveId: o, showDebugInfo: i = !1 }) => {
474
+ const [s, a] = Xt(sr, []), [l, c] = ze({ width: 0, height: 0 }), [S, b] = ze(!1), [d, u] = ze(!1), [h, w] = ze(null), [C, v] = ze({}), [p, m] = ze({}), R = pe(null), F = pe(r), V = pe(!1), I = pe(0), ee = pe(l);
475
+ Ye(() => {
476
+ if (!R.current) return;
477
+ const _ = new ResizeObserver((n) => {
478
+ for (const z of n) {
479
+ const E = z.target, N = E ? we(E, "horizontal") : null, U = E ? we(E, "vertical") : null, P = N ? N.inner : 0, x = U ? U.inner : 0, g = z.contentRect.width, y = z.contentRect.height, B = P > 0 ? P : g, j = x > 0 ? x : y;
480
+ c((G) => (!S && B > 0 && j > 0 && b(!0), G.width === B && G.height === j ? G : { width: B, height: j }));
481
+ }
482
+ });
483
+ return _.observe(R.current), () => _.disconnect();
484
+ }, [S]), Ye(() => {
485
+ const _ = ee.current, n = l, z = e === "horizontal" ? Math.abs(_.width - n.width) > 0 : Math.abs(_.height - n.height) > 0;
486
+ if (d && z) {
487
+ const E = e === "horizontal" ? n.width : n.height;
488
+ a({ type: "CONTAINER_RESIZED", containerSize: E, direction: e });
489
+ }
490
+ ee.current = n;
491
+ }, [l, d, e]);
492
+ const M = fe(() => {
493
+ console.log("panels[0]?.id", s[0]?.id);
494
+ const _ = s.some((f) => {
495
+ if (f.collapsed || f.sizeUnit !== "percentage")
496
+ return !1;
497
+ const q = f.collapsible ? f.sizeBeforeCollapse ?? f.measuredPixelSizeBeforeCollapse ?? f.originalPixelSize ?? f.measuredPixelSize ?? 0 : f.measuredPixelSize ?? f.originalPixelSize ?? f.size, ae = f.percentageSize !== void 0 && f.percentageSize > 0;
498
+ return f.size <= 0 && (q > 0 || ae);
499
+ }), n = e === "horizontal" ? l.width : l.height, z = n > 0;
500
+ if (h || !z || !(s.length > 0 && (s.length !== I.current || !d || _)))
501
+ return;
502
+ const U = s.filter((f) => !f.collapsed && (f.originalPixelSize !== void 0 || f.sizeUnit === "pixels")).reduce((f, q) => q.originalPixelSize !== void 0 ? f + q.originalPixelSize : f + q.size, 0), P = s.filter((f) => f.sizeUnit === "percentage" && !f.collapsed), x = P.map((f) => f.id), g = P.map((f) => f.percentageSize !== void 0 && f.percentageSize > 0 ? Be(f.percentageSize, n) : f.size > 0 ? f.size : 0), y = g.reduce((f, q) => f + q, 0), B = n - U, j = Math.max(0, B), G = j > 0, re = s.map((f) => {
503
+ if (f.collapsed) {
504
+ const q = f.sizeBeforeCollapse ?? f.measuredPixelSizeBeforeCollapse ?? f.originalPixelSize ?? (f.sizeUnit === "pixels" ? f.size : void 0), ae = f.sizeUnit === "percentage" && f.percentageSize !== void 0 ? Be(f.percentageSize, n) : void 0, ie = q ?? ae ?? 0, ce = f.measuredPixelSizeBeforeCollapse ?? f.measuredPixelSize ?? ie;
505
+ return {
506
+ ...f,
507
+ size: 0,
508
+ percentageSize: 0,
509
+ sizeBeforeCollapse: ie,
510
+ measuredPixelSizeBeforeCollapse: ce
511
+ };
512
+ }
513
+ if (f.sizeUnit === "pixels" || f.originalPixelSize !== void 0) {
514
+ const q = f.size, ae = n > 0 ? me(q, n) : 0, ie = {
515
+ ...f,
516
+ size: q,
517
+ percentageSize: ae
518
+ };
519
+ if (f.collapsible) {
520
+ const ce = f.sizeBeforeCollapse ?? q, be = f.measuredPixelSizeBeforeCollapse ?? f.measuredPixelSize ?? ce;
521
+ ie.sizeBeforeCollapse = ce, ie.measuredPixelSizeBeforeCollapse = be;
522
+ }
523
+ return ie;
524
+ }
525
+ if (f.sizeUnit === "percentage") {
526
+ const q = x.indexOf(f.id), ae = q !== -1 ? g[q] : 0, ie = oe(f.minSize, 0, n), ce = oe(f.maxSize, n, n), be = Math.max(
527
+ ie,
528
+ f.sizeBeforeCollapse ?? 0,
529
+ f.measuredPixelSizeBeforeCollapse ?? 0,
530
+ f.measuredPixelSize ?? 0,
531
+ f.originalPixelSize ?? 0,
532
+ f.size > 0 ? f.size : 0,
533
+ f.percentageSize !== void 0 ? Be(f.percentageSize, n) : 0,
534
+ 1
535
+ ), xe = ae > 0 ? ae : be;
536
+ let ge;
537
+ if (!G)
538
+ ge = ie;
539
+ else if (q !== -1 && y > 0) {
540
+ const Pe = xe / y, Ce = j * Pe;
541
+ ge = he(Ce, ie, ce);
542
+ } else {
543
+ const Pe = f.percentageSize !== void 0 ? Be(f.percentageSize, n) : f.size, Ce = Pe > 0 ? Pe : xe;
544
+ ge = he(Ce, ie, ce);
545
+ }
546
+ const Se = n > 0 ? me(ge, n) : 0, Ee = {
547
+ ...f,
548
+ size: ge,
549
+ percentageSize: Se
550
+ };
551
+ if (f.collapsible) {
552
+ const Pe = f.sizeBeforeCollapse ?? ge, Ce = f.measuredPixelSizeBeforeCollapse ?? f.measuredPixelSize ?? Pe;
553
+ Ee.sizeBeforeCollapse = Pe, Ee.measuredPixelSizeBeforeCollapse = Ce;
554
+ }
555
+ return Ee;
556
+ }
557
+ return f;
558
+ }), K = [];
559
+ for (let f = 0; f < re.length; f += 1) {
560
+ const q = re[f];
561
+ q.sizeUnit === "percentage" && !q.collapsed && K.push(f);
562
+ }
563
+ const Q = K.reduce((f, q) => f + re[q].size, 0), se = B - Q;
564
+ Math.abs(se) > 0 && ot(re, se, n), a({ type: "SET_PANELS", panels: re }), I.current = s.length, u(!0);
565
+ }, [s, e, l.width, l.height, d, h]);
566
+ ue(() => {
567
+ const _ = e === "horizontal" ? l.width : l.height, n = _ > 0, z = n && s.length > 0, E = z ? s.reduce((y, B) => {
568
+ if (B.collapsed)
569
+ return y;
570
+ const j = oe(B.minSize, 0, _);
571
+ return y + Math.max(0, j);
572
+ }, 0) : null, N = z ? s.reduce((y, B) => {
573
+ if (B.collapsed)
574
+ return y;
575
+ const j = oe(B.maxSize, _, _);
576
+ return y + Math.max(0, j);
577
+ }, 0) : null, U = E ?? h?.totalMinimumSize ?? null, P = N ?? h?.totalMaximumSize ?? null;
578
+ if (!n) {
579
+ h && w((y) => !y || y.availableContainerSize === _ ? y : {
580
+ reason: y.reason,
581
+ // totalMinimumSize: previous.totalMinimumSize,
582
+ // totalMaximumSize: previous.totalMaximumSize,
583
+ totalMinimumSize: null,
584
+ totalMaximumSize: null,
585
+ availableContainerSize: _
586
+ });
587
+ return;
588
+ }
589
+ const x = U !== null && U - _ > Number.EPSILON, g = P !== null && _ - P > Number.EPSILON;
590
+ if (x || g) {
591
+ const B = {
592
+ reason: x ? "minimum-exceeded" : "maximum-insufficient",
593
+ totalMinimumSize: U,
594
+ totalMaximumSize: P,
595
+ availableContainerSize: _
596
+ };
597
+ w((j) => j && j.reason === B.reason && Math.abs((j.totalMinimumSize ?? 0) - (B.totalMinimumSize ?? 0)) <= Number.EPSILON && Math.abs((j.totalMaximumSize ?? 0) - (B.totalMaximumSize ?? 0)) <= Number.EPSILON && Math.abs(j.availableContainerSize - B.availableContainerSize) <= Number.EPSILON ? j : B);
598
+ return;
599
+ }
600
+ if (h) {
601
+ const y = h.reason === "minimum-exceeded", B = h.reason === "maximum-insufficient";
602
+ (!y || U !== null) && (!B || P !== null) && !x && !g && w((Q) => Q && null);
603
+ }
604
+ }, [s, e, l.width, l.height, h]), ue(() => {
605
+ M();
606
+ }, [M]), ue(() => {
607
+ F.current = r;
608
+ }, [r]);
609
+ const $ = de(() => s.map((_) => _.size), [s]);
610
+ Ye(() => {
611
+ $.length > 0 && F.current && F.current($);
612
+ }, [$]), ue(() => {
613
+ if (o && $.length > 0) {
614
+ const _ = setTimeout(() => {
615
+ ir(o, $);
616
+ }, 200);
617
+ return () => clearTimeout(_);
618
+ }
619
+ }, [o, $]), ue(() => {
620
+ if (!o || s.length === 0 || V.current)
621
+ return;
622
+ const _ = e === "horizontal" ? l.width : l.height;
623
+ if (_ <= 0)
624
+ return;
625
+ const n = or(o);
626
+ if (n && n.length === s.length) {
627
+ const z = s.map((E, N) => {
628
+ const U = oe(E.minSize, 0, _), P = oe(E.maxSize, _, _), x = he(n[N], U, P), g = me(x, _);
629
+ return {
630
+ ...E,
631
+ size: x,
632
+ percentageSize: g
633
+ };
634
+ });
635
+ a({ type: "SET_PANELS", panels: z }), V.current = !0;
636
+ }
637
+ }, [o, s, l.width, l.height, e]);
638
+ const W = fe((_) => {
639
+ a({ type: "REGISTER_PANEL", panel: _ });
640
+ }, []), X = fe((_) => {
641
+ a({ type: "UNREGISTER_PANEL", id: _ }), v((n) => {
642
+ if (!(_ in n))
643
+ return n;
644
+ const z = { ...n };
645
+ return delete z[_], z;
646
+ });
647
+ }, []), te = fe(
648
+ (_, n, z, E) => {
649
+ const N = e === "horizontal" ? l.width : l.height, U = s.find((Q) => Q.id === _), P = s.find((Q) => Q.id === n);
650
+ if (!(U && P)) {
651
+ a({ type: "RESIZE_PANELS", leftId: _, rightId: n, leftSize: z, rightSize: E, containerSize: N });
652
+ return;
653
+ }
654
+ if (U.collapsed || P.collapsed)
655
+ return;
656
+ const x = oe(U.minSize, 0, N), g = oe(U.maxSize, N, N), y = oe(P.minSize, 0, N), B = oe(P.maxSize, N, N);
657
+ let j = he(z, x, g), G = he(E, y, B);
658
+ const re = j + G, K = z + E;
659
+ if (re !== K) {
660
+ const Q = K - re;
661
+ if (Q > 0) {
662
+ const se = g - j, f = B - G, q = se + f;
663
+ if (q > 0) {
664
+ const ae = Math.min(Q * (se / q), se), ie = Math.min(Q - ae, f);
665
+ j += ae, G += ie;
666
+ }
667
+ } else if (Q < 0) {
668
+ const se = Math.abs(Q), f = j - x, q = G - y, ae = f + q;
669
+ if (ae > 0) {
670
+ const ie = Math.min(se * (f / ae), f), ce = Math.min(se - ie, q);
671
+ j -= ie, G -= ce;
672
+ }
673
+ }
674
+ }
675
+ j = he(j, x, g), G = he(G, y, B), console.assert(j + G === K, "Total size after constraints should be close to the original total size.", { constrainedLeftSize: j, constrainedRightSize: G, originalTotalSize: K }), a({ type: "RESIZE_PANELS", leftId: _, rightId: n, leftSize: j, rightSize: G, containerSize: N });
676
+ },
677
+ [e, l.width, l.height, s]
678
+ ), Y = fe(
679
+ (_) => {
680
+ const n = e === "horizontal" ? l.width : l.height;
681
+ a({ type: "COLLAPSE_PANEL", id: _, containerSize: n });
682
+ },
683
+ [e, l.width, l.height]
684
+ ), Z = fe(
685
+ (_, n) => {
686
+ const z = e === "horizontal" ? l.width : l.height;
687
+ a({ type: "EXPAND_PANEL", id: _, containerSize: z, targetSize: n });
688
+ },
689
+ [e, l.width, l.height]
690
+ ), H = fe(
691
+ (_) => s.find((n) => n.id === _),
692
+ [s]
693
+ ), A = fe((_, n) => {
694
+ v((z) => {
695
+ if (n === null) {
696
+ if (!(_ in z))
697
+ return z;
698
+ const N = { ...z };
699
+ return delete N[_], N;
700
+ }
701
+ const E = z[_];
702
+ return E && E.pixelSize === n.pixelSize && E.percentageSize === n.percentageSize ? z : {
703
+ ...z,
704
+ [_]: n
705
+ };
706
+ });
707
+ }, []), D = fe((_, n) => {
708
+ m((z) => {
709
+ if (n === null) {
710
+ if (!(_ in z))
711
+ return z;
712
+ const N = { ...z };
713
+ return delete N[_], N;
714
+ }
715
+ const E = z[_];
716
+ return E && Math.abs(E.thickness - n.thickness) <= 0.25 && E.visible === n.visible && E.direction === n.direction && E.startPanelId === n.startPanelId && E.endPanelId === n.endPanelId ? z : {
717
+ ...z,
718
+ [_]: n
719
+ };
720
+ });
721
+ }, []), k = de(
722
+ () => ({
723
+ direction: e,
724
+ panels: s,
725
+ containerSize: l,
726
+ isContainerReady: S,
727
+ showDebugInfo: i,
728
+ registerPanel: W,
729
+ unregisterPanel: X,
730
+ resizePanels: te,
731
+ collapsePanel: Y,
732
+ expandPanel: Z,
733
+ getPanel: H,
734
+ reportPanelMeasurement: A,
735
+ panelMeasurements: C,
736
+ reportHandleMeasurement: D,
737
+ handleMeasurements: p,
738
+ layoutConstraintViolation: h
739
+ }),
740
+ [
741
+ e,
742
+ s,
743
+ l,
744
+ S,
745
+ i,
746
+ W,
747
+ X,
748
+ te,
749
+ Y,
750
+ Z,
751
+ H,
752
+ A,
753
+ C,
754
+ D,
755
+ p,
756
+ h
757
+ ]
758
+ ), ne = de(
759
+ () => ({
760
+ display: "flex",
761
+ flexDirection: e === "horizontal" ? "row" : "column",
762
+ alignItems: "stretch",
763
+ width: "100%",
764
+ height: "100%",
765
+ minWidth: "0px",
766
+ minHeight: "0px",
767
+ position: "relative",
768
+ overflow: "hidden",
769
+ // リサイズハンドルのはみ出しでスクロールバーを表示させない
770
+ ...t
771
+ }),
772
+ [e, t]
773
+ );
774
+ return {
775
+ groupRef: R,
776
+ contextValue: k,
777
+ groupStyle: ne
778
+ };
779
+ }, nn = (e) => {
780
+ const { getPanel: t, collapsePanel: r, expandPanel: o } = it(), i = t(e), s = fe(() => {
781
+ r(e);
782
+ }, [r, e]), a = fe(
783
+ (c) => {
784
+ o(e, c);
785
+ },
786
+ [o, e]
787
+ ), l = fe(() => {
788
+ i?.collapsed ? a() : s();
789
+ }, [i?.collapsed, s, a]);
790
+ return de(
791
+ () => ({
792
+ panel: i,
793
+ isCollapsed: i?.collapsed ?? !1,
794
+ collapse: s,
795
+ expand: a,
796
+ toggle: l
797
+ }),
798
+ [i, s, a, l]
799
+ );
800
+ };
801
+ var $e = { exports: {} }, Te = {};
802
+ /**
803
+ * @license React
804
+ * react-jsx-runtime.production.js
805
+ *
806
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
807
+ *
808
+ * This source code is licensed under the MIT license found in the
809
+ * LICENSE file in the root directory of this source tree.
810
+ */
811
+ var ht;
812
+ function lr() {
813
+ if (ht) return Te;
814
+ ht = 1;
815
+ var e = Symbol.for("react.transitional.element"), t = Symbol.for("react.fragment");
816
+ function r(o, i, s) {
817
+ var a = null;
818
+ if (s !== void 0 && (a = "" + s), i.key !== void 0 && (a = "" + i.key), "key" in i) {
819
+ s = {};
820
+ for (var l in i)
821
+ l !== "key" && (s[l] = i[l]);
822
+ } else s = i;
823
+ return i = s.ref, {
824
+ $$typeof: e,
825
+ type: o,
826
+ key: a,
827
+ ref: i !== void 0 ? i : null,
828
+ props: s
829
+ };
830
+ }
831
+ return Te.Fragment = t, Te.jsx = r, Te.jsxs = r, Te;
832
+ }
833
+ var Oe = {};
834
+ /**
835
+ * @license React
836
+ * react-jsx-runtime.development.js
837
+ *
838
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
839
+ *
840
+ * This source code is licensed under the MIT license found in the
841
+ * LICENSE file in the root directory of this source tree.
842
+ */
843
+ var xt;
844
+ function cr() {
845
+ return xt || (xt = 1, process.env.NODE_ENV !== "production" && (function() {
846
+ function e(n) {
847
+ if (n == null) return null;
848
+ if (typeof n == "function")
849
+ return n.$$typeof === X ? null : n.displayName || n.name || null;
850
+ if (typeof n == "string") return n;
851
+ switch (n) {
852
+ case v:
853
+ return "Fragment";
854
+ case m:
855
+ return "Profiler";
856
+ case p:
857
+ return "StrictMode";
858
+ case I:
859
+ return "Suspense";
860
+ case ee:
861
+ return "SuspenseList";
862
+ case W:
863
+ return "Activity";
864
+ }
865
+ if (typeof n == "object")
866
+ switch (typeof n.tag == "number" && console.error(
867
+ "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
868
+ ), n.$$typeof) {
869
+ case C:
870
+ return "Portal";
871
+ case F:
872
+ return n.displayName || "Context";
873
+ case R:
874
+ return (n._context.displayName || "Context") + ".Consumer";
875
+ case V:
876
+ var z = n.render;
877
+ return n = n.displayName, n || (n = z.displayName || z.name || "", n = n !== "" ? "ForwardRef(" + n + ")" : "ForwardRef"), n;
878
+ case M:
879
+ return z = n.displayName || null, z !== null ? z : e(n.type) || "Memo";
880
+ case $:
881
+ z = n._payload, n = n._init;
882
+ try {
883
+ return e(n(z));
884
+ } catch {
885
+ }
886
+ }
887
+ return null;
888
+ }
889
+ function t(n) {
890
+ return "" + n;
891
+ }
892
+ function r(n) {
893
+ try {
894
+ t(n);
895
+ var z = !1;
896
+ } catch {
897
+ z = !0;
898
+ }
899
+ if (z) {
900
+ z = console;
901
+ var E = z.error, N = typeof Symbol == "function" && Symbol.toStringTag && n[Symbol.toStringTag] || n.constructor.name || "Object";
902
+ return E.call(
903
+ z,
904
+ "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
905
+ N
906
+ ), t(n);
907
+ }
908
+ }
909
+ function o(n) {
910
+ if (n === v) return "<>";
911
+ if (typeof n == "object" && n !== null && n.$$typeof === $)
912
+ return "<...>";
913
+ try {
914
+ var z = e(n);
915
+ return z ? "<" + z + ">" : "<...>";
916
+ } catch {
917
+ return "<...>";
918
+ }
919
+ }
920
+ function i() {
921
+ var n = te.A;
922
+ return n === null ? null : n.getOwner();
923
+ }
924
+ function s() {
925
+ return Error("react-stack-top-frame");
926
+ }
927
+ function a(n) {
928
+ if (Y.call(n, "key")) {
929
+ var z = Object.getOwnPropertyDescriptor(n, "key").get;
930
+ if (z && z.isReactWarning) return !1;
931
+ }
932
+ return n.key !== void 0;
933
+ }
934
+ function l(n, z) {
935
+ function E() {
936
+ A || (A = !0, console.error(
937
+ "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
938
+ z
939
+ ));
940
+ }
941
+ E.isReactWarning = !0, Object.defineProperty(n, "key", {
942
+ get: E,
943
+ configurable: !0
944
+ });
945
+ }
946
+ function c() {
947
+ var n = e(this.type);
948
+ return D[n] || (D[n] = !0, console.error(
949
+ "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
950
+ )), n = this.props.ref, n !== void 0 ? n : null;
951
+ }
952
+ function S(n, z, E, N, U, P) {
953
+ var x = E.ref;
954
+ return n = {
955
+ $$typeof: w,
956
+ type: n,
957
+ key: z,
958
+ props: E,
959
+ _owner: N
960
+ }, (x !== void 0 ? x : null) !== null ? Object.defineProperty(n, "ref", {
961
+ enumerable: !1,
962
+ get: c
963
+ }) : Object.defineProperty(n, "ref", { enumerable: !1, value: null }), n._store = {}, Object.defineProperty(n._store, "validated", {
964
+ configurable: !1,
965
+ enumerable: !1,
966
+ writable: !0,
967
+ value: 0
968
+ }), Object.defineProperty(n, "_debugInfo", {
969
+ configurable: !1,
970
+ enumerable: !1,
971
+ writable: !0,
972
+ value: null
973
+ }), Object.defineProperty(n, "_debugStack", {
974
+ configurable: !1,
975
+ enumerable: !1,
976
+ writable: !0,
977
+ value: U
978
+ }), Object.defineProperty(n, "_debugTask", {
979
+ configurable: !1,
980
+ enumerable: !1,
981
+ writable: !0,
982
+ value: P
983
+ }), Object.freeze && (Object.freeze(n.props), Object.freeze(n)), n;
984
+ }
985
+ function b(n, z, E, N, U, P) {
986
+ var x = z.children;
987
+ if (x !== void 0)
988
+ if (N)
989
+ if (Z(x)) {
990
+ for (N = 0; N < x.length; N++)
991
+ d(x[N]);
992
+ Object.freeze && Object.freeze(x);
993
+ } else
994
+ console.error(
995
+ "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
996
+ );
997
+ else d(x);
998
+ if (Y.call(z, "key")) {
999
+ x = e(n);
1000
+ var g = Object.keys(z).filter(function(B) {
1001
+ return B !== "key";
1002
+ });
1003
+ N = 0 < g.length ? "{key: someKey, " + g.join(": ..., ") + ": ...}" : "{key: someKey}", _[x + N] || (g = 0 < g.length ? "{" + g.join(": ..., ") + ": ...}" : "{}", console.error(
1004
+ `A props object containing a "key" prop is being spread into JSX:
1005
+ let props = %s;
1006
+ <%s {...props} />
1007
+ React keys must be passed directly to JSX without using spread:
1008
+ let props = %s;
1009
+ <%s key={someKey} {...props} />`,
1010
+ N,
1011
+ x,
1012
+ g,
1013
+ x
1014
+ ), _[x + N] = !0);
1015
+ }
1016
+ if (x = null, E !== void 0 && (r(E), x = "" + E), a(z) && (r(z.key), x = "" + z.key), "key" in z) {
1017
+ E = {};
1018
+ for (var y in z)
1019
+ y !== "key" && (E[y] = z[y]);
1020
+ } else E = z;
1021
+ return x && l(
1022
+ E,
1023
+ typeof n == "function" ? n.displayName || n.name || "Unknown" : n
1024
+ ), S(
1025
+ n,
1026
+ x,
1027
+ E,
1028
+ i(),
1029
+ U,
1030
+ P
1031
+ );
1032
+ }
1033
+ function d(n) {
1034
+ u(n) ? n._store && (n._store.validated = 1) : typeof n == "object" && n !== null && n.$$typeof === $ && (n._payload.status === "fulfilled" ? u(n._payload.value) && n._payload.value._store && (n._payload.value._store.validated = 1) : n._store && (n._store.validated = 1));
1035
+ }
1036
+ function u(n) {
1037
+ return typeof n == "object" && n !== null && n.$$typeof === w;
1038
+ }
1039
+ var h = Vt, w = Symbol.for("react.transitional.element"), C = Symbol.for("react.portal"), v = Symbol.for("react.fragment"), p = Symbol.for("react.strict_mode"), m = Symbol.for("react.profiler"), R = Symbol.for("react.consumer"), F = Symbol.for("react.context"), V = Symbol.for("react.forward_ref"), I = Symbol.for("react.suspense"), ee = Symbol.for("react.suspense_list"), M = Symbol.for("react.memo"), $ = Symbol.for("react.lazy"), W = Symbol.for("react.activity"), X = Symbol.for("react.client.reference"), te = h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, Y = Object.prototype.hasOwnProperty, Z = Array.isArray, H = console.createTask ? console.createTask : function() {
1040
+ return null;
1041
+ };
1042
+ h = {
1043
+ react_stack_bottom_frame: function(n) {
1044
+ return n();
1045
+ }
1046
+ };
1047
+ var A, D = {}, k = h.react_stack_bottom_frame.bind(
1048
+ h,
1049
+ s
1050
+ )(), ne = H(o(s)), _ = {};
1051
+ Oe.Fragment = v, Oe.jsx = function(n, z, E) {
1052
+ var N = 1e4 > te.recentlyCreatedOwnerStacks++;
1053
+ return b(
1054
+ n,
1055
+ z,
1056
+ E,
1057
+ !1,
1058
+ N ? Error("react-stack-top-frame") : k,
1059
+ N ? H(o(n)) : ne
1060
+ );
1061
+ }, Oe.jsxs = function(n, z, E) {
1062
+ var N = 1e4 > te.recentlyCreatedOwnerStacks++;
1063
+ return b(
1064
+ n,
1065
+ z,
1066
+ E,
1067
+ !0,
1068
+ N ? Error("react-stack-top-frame") : k,
1069
+ N ? H(o(n)) : ne
1070
+ );
1071
+ };
1072
+ })()), Oe;
1073
+ }
1074
+ var bt;
1075
+ function dr() {
1076
+ return bt || (bt = 1, process.env.NODE_ENV === "production" ? $e.exports = lr() : $e.exports = cr()), $e.exports;
1077
+ }
1078
+ var L = dr();
1079
+ const st = "-", ur = (e) => {
1080
+ const t = pr(e), {
1081
+ conflictingClassGroups: r,
1082
+ conflictingClassGroupModifiers: o
1083
+ } = e;
1084
+ return {
1085
+ getClassGroupId: (a) => {
1086
+ const l = a.split(st);
1087
+ return l[0] === "" && l.length !== 1 && l.shift(), Tt(l, t) || fr(a);
1088
+ },
1089
+ getConflictingClassGroupIds: (a, l) => {
1090
+ const c = r[a] || [];
1091
+ return l && o[a] ? [...c, ...o[a]] : c;
1092
+ }
1093
+ };
1094
+ }, Tt = (e, t) => {
1095
+ if (e.length === 0)
1096
+ return t.classGroupId;
1097
+ const r = e[0], o = t.nextPart.get(r), i = o ? Tt(e.slice(1), o) : void 0;
1098
+ if (i)
1099
+ return i;
1100
+ if (t.validators.length === 0)
1101
+ return;
1102
+ const s = e.join(st);
1103
+ return t.validators.find(({
1104
+ validator: a
1105
+ }) => a(s))?.classGroupId;
1106
+ }, zt = /^\[(.+)\]$/, fr = (e) => {
1107
+ if (zt.test(e)) {
1108
+ const t = zt.exec(e)[1], r = t?.substring(0, t.indexOf(":"));
1109
+ if (r)
1110
+ return "arbitrary.." + r;
1111
+ }
1112
+ }, pr = (e) => {
1113
+ const {
1114
+ theme: t,
1115
+ classGroups: r
1116
+ } = e, o = {
1117
+ nextPart: /* @__PURE__ */ new Map(),
1118
+ validators: []
1119
+ };
1120
+ for (const i in r)
1121
+ et(r[i], o, i, t);
1122
+ return o;
1123
+ }, et = (e, t, r, o) => {
1124
+ e.forEach((i) => {
1125
+ if (typeof i == "string") {
1126
+ const s = i === "" ? t : St(t, i);
1127
+ s.classGroupId = r;
1128
+ return;
1129
+ }
1130
+ if (typeof i == "function") {
1131
+ if (mr(i)) {
1132
+ et(i(o), t, r, o);
1133
+ return;
1134
+ }
1135
+ t.validators.push({
1136
+ validator: i,
1137
+ classGroupId: r
1138
+ });
1139
+ return;
1140
+ }
1141
+ Object.entries(i).forEach(([s, a]) => {
1142
+ et(a, St(t, s), r, o);
1143
+ });
1144
+ });
1145
+ }, St = (e, t) => {
1146
+ let r = e;
1147
+ return t.split(st).forEach((o) => {
1148
+ r.nextPart.has(o) || r.nextPart.set(o, {
1149
+ nextPart: /* @__PURE__ */ new Map(),
1150
+ validators: []
1151
+ }), r = r.nextPart.get(o);
1152
+ }), r;
1153
+ }, mr = (e) => e.isThemeGetter, gr = (e) => {
1154
+ if (e < 1)
1155
+ return {
1156
+ get: () => {
1157
+ },
1158
+ set: () => {
1159
+ }
1160
+ };
1161
+ let t = 0, r = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
1162
+ const i = (s, a) => {
1163
+ r.set(s, a), t++, t > e && (t = 0, o = r, r = /* @__PURE__ */ new Map());
1164
+ };
1165
+ return {
1166
+ get(s) {
1167
+ let a = r.get(s);
1168
+ if (a !== void 0)
1169
+ return a;
1170
+ if ((a = o.get(s)) !== void 0)
1171
+ return i(s, a), a;
1172
+ },
1173
+ set(s, a) {
1174
+ r.has(s) ? r.set(s, a) : i(s, a);
1175
+ }
1176
+ };
1177
+ }, tt = "!", rt = ":", hr = rt.length, xr = (e) => {
1178
+ const {
1179
+ prefix: t,
1180
+ experimentalParseClassName: r
1181
+ } = e;
1182
+ let o = (i) => {
1183
+ const s = [];
1184
+ let a = 0, l = 0, c = 0, S;
1185
+ for (let w = 0; w < i.length; w++) {
1186
+ let C = i[w];
1187
+ if (a === 0 && l === 0) {
1188
+ if (C === rt) {
1189
+ s.push(i.slice(c, w)), c = w + hr;
1190
+ continue;
1191
+ }
1192
+ if (C === "/") {
1193
+ S = w;
1194
+ continue;
1195
+ }
1196
+ }
1197
+ C === "[" ? a++ : C === "]" ? a-- : C === "(" ? l++ : C === ")" && l--;
1198
+ }
1199
+ const b = s.length === 0 ? i : i.substring(c), d = br(b), u = d !== b, h = S && S > c ? S - c : void 0;
1200
+ return {
1201
+ modifiers: s,
1202
+ hasImportantModifier: u,
1203
+ baseClassName: d,
1204
+ maybePostfixModifierPosition: h
1205
+ };
1206
+ };
1207
+ if (t) {
1208
+ const i = t + rt, s = o;
1209
+ o = (a) => a.startsWith(i) ? s(a.substring(i.length)) : {
1210
+ isExternal: !0,
1211
+ modifiers: [],
1212
+ hasImportantModifier: !1,
1213
+ baseClassName: a,
1214
+ maybePostfixModifierPosition: void 0
1215
+ };
1216
+ }
1217
+ if (r) {
1218
+ const i = o;
1219
+ o = (s) => r({
1220
+ className: s,
1221
+ parseClassName: i
1222
+ });
1223
+ }
1224
+ return o;
1225
+ }, br = (e) => e.endsWith(tt) ? e.substring(0, e.length - 1) : e.startsWith(tt) ? e.substring(1) : e, zr = (e) => {
1226
+ const t = Object.fromEntries(e.orderSensitiveModifiers.map((o) => [o, !0]));
1227
+ return (o) => {
1228
+ if (o.length <= 1)
1229
+ return o;
1230
+ const i = [];
1231
+ let s = [];
1232
+ return o.forEach((a) => {
1233
+ a[0] === "[" || t[a] ? (i.push(...s.sort(), a), s = []) : s.push(a);
1234
+ }), i.push(...s.sort()), i;
1235
+ };
1236
+ }, Sr = (e) => ({
1237
+ cache: gr(e.cacheSize),
1238
+ parseClassName: xr(e),
1239
+ sortModifiers: zr(e),
1240
+ ...ur(e)
1241
+ }), Pr = /\s+/, yr = (e, t) => {
1242
+ const {
1243
+ parseClassName: r,
1244
+ getClassGroupId: o,
1245
+ getConflictingClassGroupIds: i,
1246
+ sortModifiers: s
1247
+ } = t, a = [], l = e.trim().split(Pr);
1248
+ let c = "";
1249
+ for (let S = l.length - 1; S >= 0; S -= 1) {
1250
+ const b = l[S], {
1251
+ isExternal: d,
1252
+ modifiers: u,
1253
+ hasImportantModifier: h,
1254
+ baseClassName: w,
1255
+ maybePostfixModifierPosition: C
1256
+ } = r(b);
1257
+ if (d) {
1258
+ c = b + (c.length > 0 ? " " + c : c);
1259
+ continue;
1260
+ }
1261
+ let v = !!C, p = o(v ? w.substring(0, C) : w);
1262
+ if (!p) {
1263
+ if (!v) {
1264
+ c = b + (c.length > 0 ? " " + c : c);
1265
+ continue;
1266
+ }
1267
+ if (p = o(w), !p) {
1268
+ c = b + (c.length > 0 ? " " + c : c);
1269
+ continue;
1270
+ }
1271
+ v = !1;
1272
+ }
1273
+ const m = s(u).join(":"), R = h ? m + tt : m, F = R + p;
1274
+ if (a.includes(F))
1275
+ continue;
1276
+ a.push(F);
1277
+ const V = i(p, v);
1278
+ for (let I = 0; I < V.length; ++I) {
1279
+ const ee = V[I];
1280
+ a.push(R + ee);
1281
+ }
1282
+ c = b + (c.length > 0 ? " " + c : c);
1283
+ }
1284
+ return c;
1285
+ };
1286
+ function vr() {
1287
+ let e = 0, t, r, o = "";
1288
+ for (; e < arguments.length; )
1289
+ (t = arguments[e++]) && (r = Ot(t)) && (o && (o += " "), o += r);
1290
+ return o;
1291
+ }
1292
+ const Ot = (e) => {
1293
+ if (typeof e == "string")
1294
+ return e;
1295
+ let t, r = "";
1296
+ for (let o = 0; o < e.length; o++)
1297
+ e[o] && (t = Ot(e[o])) && (r && (r += " "), r += t);
1298
+ return r;
1299
+ };
1300
+ function wr(e, ...t) {
1301
+ let r, o, i, s = a;
1302
+ function a(c) {
1303
+ const S = t.reduce((b, d) => d(b), e());
1304
+ return r = Sr(S), o = r.cache.get, i = r.cache.set, s = l, l(c);
1305
+ }
1306
+ function l(c) {
1307
+ const S = o(c);
1308
+ if (S)
1309
+ return S;
1310
+ const b = yr(c, r);
1311
+ return i(c, b), b;
1312
+ }
1313
+ return function() {
1314
+ return s(vr.apply(null, arguments));
1315
+ };
1316
+ }
1317
+ const le = (e) => {
1318
+ const t = (r) => r[e] || [];
1319
+ return t.isThemeGetter = !0, t;
1320
+ }, jt = /^\[(?:(\w[\w-]*):)?(.+)\]$/i, Bt = /^\((?:(\w[\w-]*):)?(.+)\)$/i, Cr = /^\d+\/\d+$/, kr = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, Er = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, Mr = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/, Rr = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, _r = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, _e = (e) => Cr.test(e), J = (e) => !!e && !Number.isNaN(Number(e)), ke = (e) => !!e && Number.isInteger(Number(e)), Ze = (e) => e.endsWith("%") && J(e.slice(0, -1)), ve = (e) => kr.test(e), Ir = () => !0, Ar = (e) => (
1321
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
1322
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
1323
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
1324
+ Er.test(e) && !Mr.test(e)
1325
+ ), Lt = () => !1, Nr = (e) => Rr.test(e), Tr = (e) => _r.test(e), Or = (e) => !T(e) && !O(e), jr = (e) => Ie(e, Ft, Lt), T = (e) => jt.test(e), Me = (e) => Ie(e, Ht, Ar), Qe = (e) => Ie(e, Fr, J), Pt = (e) => Ie(e, Dt, Lt), Br = (e) => Ie(e, Gt, Tr), We = (e) => Ie(e, $t, Nr), O = (e) => Bt.test(e), je = (e) => Ae(e, Ht), Lr = (e) => Ae(e, Hr), yt = (e) => Ae(e, Dt), Dr = (e) => Ae(e, Ft), Gr = (e) => Ae(e, Gt), Ue = (e) => Ae(e, $t, !0), Ie = (e, t, r) => {
1326
+ const o = jt.exec(e);
1327
+ return o ? o[1] ? t(o[1]) : r(o[2]) : !1;
1328
+ }, Ae = (e, t, r = !1) => {
1329
+ const o = Bt.exec(e);
1330
+ return o ? o[1] ? t(o[1]) : r : !1;
1331
+ }, Dt = (e) => e === "position" || e === "percentage", Gt = (e) => e === "image" || e === "url", Ft = (e) => e === "length" || e === "size" || e === "bg-size", Ht = (e) => e === "length", Fr = (e) => e === "number", Hr = (e) => e === "family-name", $t = (e) => e === "shadow", $r = () => {
1332
+ const e = le("color"), t = le("font"), r = le("text"), o = le("font-weight"), i = le("tracking"), s = le("leading"), a = le("breakpoint"), l = le("container"), c = le("spacing"), S = le("radius"), b = le("shadow"), d = le("inset-shadow"), u = le("text-shadow"), h = le("drop-shadow"), w = le("blur"), C = le("perspective"), v = le("aspect"), p = le("ease"), m = le("animate"), R = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], F = () => [
1333
+ "center",
1334
+ "top",
1335
+ "bottom",
1336
+ "left",
1337
+ "right",
1338
+ "top-left",
1339
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
1340
+ "left-top",
1341
+ "top-right",
1342
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
1343
+ "right-top",
1344
+ "bottom-right",
1345
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
1346
+ "right-bottom",
1347
+ "bottom-left",
1348
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
1349
+ "left-bottom"
1350
+ ], V = () => [...F(), O, T], I = () => ["auto", "hidden", "clip", "visible", "scroll"], ee = () => ["auto", "contain", "none"], M = () => [O, T, c], $ = () => [_e, "full", "auto", ...M()], W = () => [ke, "none", "subgrid", O, T], X = () => ["auto", {
1351
+ span: ["full", ke, O, T]
1352
+ }, ke, O, T], te = () => [ke, "auto", O, T], Y = () => ["auto", "min", "max", "fr", O, T], Z = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"], H = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"], A = () => ["auto", ...M()], D = () => [_e, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...M()], k = () => [e, O, T], ne = () => [...F(), yt, Pt, {
1353
+ position: [O, T]
1354
+ }], _ = () => ["no-repeat", {
1355
+ repeat: ["", "x", "y", "space", "round"]
1356
+ }], n = () => ["auto", "cover", "contain", Dr, jr, {
1357
+ size: [O, T]
1358
+ }], z = () => [Ze, je, Me], E = () => [
1359
+ // Deprecated since Tailwind CSS v4.0.0
1360
+ "",
1361
+ "none",
1362
+ "full",
1363
+ S,
1364
+ O,
1365
+ T
1366
+ ], N = () => ["", J, je, Me], U = () => ["solid", "dashed", "dotted", "double"], P = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], x = () => [J, Ze, yt, Pt], g = () => [
1367
+ // Deprecated since Tailwind CSS v4.0.0
1368
+ "",
1369
+ "none",
1370
+ w,
1371
+ O,
1372
+ T
1373
+ ], y = () => ["none", J, O, T], B = () => ["none", J, O, T], j = () => [J, O, T], G = () => [_e, "full", ...M()];
1374
+ return {
1375
+ cacheSize: 500,
1376
+ theme: {
1377
+ animate: ["spin", "ping", "pulse", "bounce"],
1378
+ aspect: ["video"],
1379
+ blur: [ve],
1380
+ breakpoint: [ve],
1381
+ color: [Ir],
1382
+ container: [ve],
1383
+ "drop-shadow": [ve],
1384
+ ease: ["in", "out", "in-out"],
1385
+ font: [Or],
1386
+ "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
1387
+ "inset-shadow": [ve],
1388
+ leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
1389
+ perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
1390
+ radius: [ve],
1391
+ shadow: [ve],
1392
+ spacing: ["px", J],
1393
+ text: [ve],
1394
+ "text-shadow": [ve],
1395
+ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
1396
+ },
1397
+ classGroups: {
1398
+ // --------------
1399
+ // --- Layout ---
1400
+ // --------------
1401
+ /**
1402
+ * Aspect Ratio
1403
+ * @see https://tailwindcss.com/docs/aspect-ratio
1404
+ */
1405
+ aspect: [{
1406
+ aspect: ["auto", "square", _e, T, O, v]
1407
+ }],
1408
+ /**
1409
+ * Container
1410
+ * @see https://tailwindcss.com/docs/container
1411
+ * @deprecated since Tailwind CSS v4.0.0
1412
+ */
1413
+ container: ["container"],
1414
+ /**
1415
+ * Columns
1416
+ * @see https://tailwindcss.com/docs/columns
1417
+ */
1418
+ columns: [{
1419
+ columns: [J, T, O, l]
1420
+ }],
1421
+ /**
1422
+ * Break After
1423
+ * @see https://tailwindcss.com/docs/break-after
1424
+ */
1425
+ "break-after": [{
1426
+ "break-after": R()
1427
+ }],
1428
+ /**
1429
+ * Break Before
1430
+ * @see https://tailwindcss.com/docs/break-before
1431
+ */
1432
+ "break-before": [{
1433
+ "break-before": R()
1434
+ }],
1435
+ /**
1436
+ * Break Inside
1437
+ * @see https://tailwindcss.com/docs/break-inside
1438
+ */
1439
+ "break-inside": [{
1440
+ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
1441
+ }],
1442
+ /**
1443
+ * Box Decoration Break
1444
+ * @see https://tailwindcss.com/docs/box-decoration-break
1445
+ */
1446
+ "box-decoration": [{
1447
+ "box-decoration": ["slice", "clone"]
1448
+ }],
1449
+ /**
1450
+ * Box Sizing
1451
+ * @see https://tailwindcss.com/docs/box-sizing
1452
+ */
1453
+ box: [{
1454
+ box: ["border", "content"]
1455
+ }],
1456
+ /**
1457
+ * Display
1458
+ * @see https://tailwindcss.com/docs/display
1459
+ */
1460
+ display: ["block", "inline-block", "inline", "flex", "inline-flex", "table", "inline-table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row-group", "table-row", "flow-root", "grid", "inline-grid", "contents", "list-item", "hidden"],
1461
+ /**
1462
+ * Screen Reader Only
1463
+ * @see https://tailwindcss.com/docs/display#screen-reader-only
1464
+ */
1465
+ sr: ["sr-only", "not-sr-only"],
1466
+ /**
1467
+ * Floats
1468
+ * @see https://tailwindcss.com/docs/float
1469
+ */
1470
+ float: [{
1471
+ float: ["right", "left", "none", "start", "end"]
1472
+ }],
1473
+ /**
1474
+ * Clear
1475
+ * @see https://tailwindcss.com/docs/clear
1476
+ */
1477
+ clear: [{
1478
+ clear: ["left", "right", "both", "none", "start", "end"]
1479
+ }],
1480
+ /**
1481
+ * Isolation
1482
+ * @see https://tailwindcss.com/docs/isolation
1483
+ */
1484
+ isolation: ["isolate", "isolation-auto"],
1485
+ /**
1486
+ * Object Fit
1487
+ * @see https://tailwindcss.com/docs/object-fit
1488
+ */
1489
+ "object-fit": [{
1490
+ object: ["contain", "cover", "fill", "none", "scale-down"]
1491
+ }],
1492
+ /**
1493
+ * Object Position
1494
+ * @see https://tailwindcss.com/docs/object-position
1495
+ */
1496
+ "object-position": [{
1497
+ object: V()
1498
+ }],
1499
+ /**
1500
+ * Overflow
1501
+ * @see https://tailwindcss.com/docs/overflow
1502
+ */
1503
+ overflow: [{
1504
+ overflow: I()
1505
+ }],
1506
+ /**
1507
+ * Overflow X
1508
+ * @see https://tailwindcss.com/docs/overflow
1509
+ */
1510
+ "overflow-x": [{
1511
+ "overflow-x": I()
1512
+ }],
1513
+ /**
1514
+ * Overflow Y
1515
+ * @see https://tailwindcss.com/docs/overflow
1516
+ */
1517
+ "overflow-y": [{
1518
+ "overflow-y": I()
1519
+ }],
1520
+ /**
1521
+ * Overscroll Behavior
1522
+ * @see https://tailwindcss.com/docs/overscroll-behavior
1523
+ */
1524
+ overscroll: [{
1525
+ overscroll: ee()
1526
+ }],
1527
+ /**
1528
+ * Overscroll Behavior X
1529
+ * @see https://tailwindcss.com/docs/overscroll-behavior
1530
+ */
1531
+ "overscroll-x": [{
1532
+ "overscroll-x": ee()
1533
+ }],
1534
+ /**
1535
+ * Overscroll Behavior Y
1536
+ * @see https://tailwindcss.com/docs/overscroll-behavior
1537
+ */
1538
+ "overscroll-y": [{
1539
+ "overscroll-y": ee()
1540
+ }],
1541
+ /**
1542
+ * Position
1543
+ * @see https://tailwindcss.com/docs/position
1544
+ */
1545
+ position: ["static", "fixed", "absolute", "relative", "sticky"],
1546
+ /**
1547
+ * Top / Right / Bottom / Left
1548
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1549
+ */
1550
+ inset: [{
1551
+ inset: $()
1552
+ }],
1553
+ /**
1554
+ * Right / Left
1555
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1556
+ */
1557
+ "inset-x": [{
1558
+ "inset-x": $()
1559
+ }],
1560
+ /**
1561
+ * Top / Bottom
1562
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1563
+ */
1564
+ "inset-y": [{
1565
+ "inset-y": $()
1566
+ }],
1567
+ /**
1568
+ * Start
1569
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1570
+ */
1571
+ start: [{
1572
+ start: $()
1573
+ }],
1574
+ /**
1575
+ * End
1576
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1577
+ */
1578
+ end: [{
1579
+ end: $()
1580
+ }],
1581
+ /**
1582
+ * Top
1583
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1584
+ */
1585
+ top: [{
1586
+ top: $()
1587
+ }],
1588
+ /**
1589
+ * Right
1590
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1591
+ */
1592
+ right: [{
1593
+ right: $()
1594
+ }],
1595
+ /**
1596
+ * Bottom
1597
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1598
+ */
1599
+ bottom: [{
1600
+ bottom: $()
1601
+ }],
1602
+ /**
1603
+ * Left
1604
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1605
+ */
1606
+ left: [{
1607
+ left: $()
1608
+ }],
1609
+ /**
1610
+ * Visibility
1611
+ * @see https://tailwindcss.com/docs/visibility
1612
+ */
1613
+ visibility: ["visible", "invisible", "collapse"],
1614
+ /**
1615
+ * Z-Index
1616
+ * @see https://tailwindcss.com/docs/z-index
1617
+ */
1618
+ z: [{
1619
+ z: [ke, "auto", O, T]
1620
+ }],
1621
+ // ------------------------
1622
+ // --- Flexbox and Grid ---
1623
+ // ------------------------
1624
+ /**
1625
+ * Flex Basis
1626
+ * @see https://tailwindcss.com/docs/flex-basis
1627
+ */
1628
+ basis: [{
1629
+ basis: [_e, "full", "auto", l, ...M()]
1630
+ }],
1631
+ /**
1632
+ * Flex Direction
1633
+ * @see https://tailwindcss.com/docs/flex-direction
1634
+ */
1635
+ "flex-direction": [{
1636
+ flex: ["row", "row-reverse", "col", "col-reverse"]
1637
+ }],
1638
+ /**
1639
+ * Flex Wrap
1640
+ * @see https://tailwindcss.com/docs/flex-wrap
1641
+ */
1642
+ "flex-wrap": [{
1643
+ flex: ["nowrap", "wrap", "wrap-reverse"]
1644
+ }],
1645
+ /**
1646
+ * Flex
1647
+ * @see https://tailwindcss.com/docs/flex
1648
+ */
1649
+ flex: [{
1650
+ flex: [J, _e, "auto", "initial", "none", T]
1651
+ }],
1652
+ /**
1653
+ * Flex Grow
1654
+ * @see https://tailwindcss.com/docs/flex-grow
1655
+ */
1656
+ grow: [{
1657
+ grow: ["", J, O, T]
1658
+ }],
1659
+ /**
1660
+ * Flex Shrink
1661
+ * @see https://tailwindcss.com/docs/flex-shrink
1662
+ */
1663
+ shrink: [{
1664
+ shrink: ["", J, O, T]
1665
+ }],
1666
+ /**
1667
+ * Order
1668
+ * @see https://tailwindcss.com/docs/order
1669
+ */
1670
+ order: [{
1671
+ order: [ke, "first", "last", "none", O, T]
1672
+ }],
1673
+ /**
1674
+ * Grid Template Columns
1675
+ * @see https://tailwindcss.com/docs/grid-template-columns
1676
+ */
1677
+ "grid-cols": [{
1678
+ "grid-cols": W()
1679
+ }],
1680
+ /**
1681
+ * Grid Column Start / End
1682
+ * @see https://tailwindcss.com/docs/grid-column
1683
+ */
1684
+ "col-start-end": [{
1685
+ col: X()
1686
+ }],
1687
+ /**
1688
+ * Grid Column Start
1689
+ * @see https://tailwindcss.com/docs/grid-column
1690
+ */
1691
+ "col-start": [{
1692
+ "col-start": te()
1693
+ }],
1694
+ /**
1695
+ * Grid Column End
1696
+ * @see https://tailwindcss.com/docs/grid-column
1697
+ */
1698
+ "col-end": [{
1699
+ "col-end": te()
1700
+ }],
1701
+ /**
1702
+ * Grid Template Rows
1703
+ * @see https://tailwindcss.com/docs/grid-template-rows
1704
+ */
1705
+ "grid-rows": [{
1706
+ "grid-rows": W()
1707
+ }],
1708
+ /**
1709
+ * Grid Row Start / End
1710
+ * @see https://tailwindcss.com/docs/grid-row
1711
+ */
1712
+ "row-start-end": [{
1713
+ row: X()
1714
+ }],
1715
+ /**
1716
+ * Grid Row Start
1717
+ * @see https://tailwindcss.com/docs/grid-row
1718
+ */
1719
+ "row-start": [{
1720
+ "row-start": te()
1721
+ }],
1722
+ /**
1723
+ * Grid Row End
1724
+ * @see https://tailwindcss.com/docs/grid-row
1725
+ */
1726
+ "row-end": [{
1727
+ "row-end": te()
1728
+ }],
1729
+ /**
1730
+ * Grid Auto Flow
1731
+ * @see https://tailwindcss.com/docs/grid-auto-flow
1732
+ */
1733
+ "grid-flow": [{
1734
+ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
1735
+ }],
1736
+ /**
1737
+ * Grid Auto Columns
1738
+ * @see https://tailwindcss.com/docs/grid-auto-columns
1739
+ */
1740
+ "auto-cols": [{
1741
+ "auto-cols": Y()
1742
+ }],
1743
+ /**
1744
+ * Grid Auto Rows
1745
+ * @see https://tailwindcss.com/docs/grid-auto-rows
1746
+ */
1747
+ "auto-rows": [{
1748
+ "auto-rows": Y()
1749
+ }],
1750
+ /**
1751
+ * Gap
1752
+ * @see https://tailwindcss.com/docs/gap
1753
+ */
1754
+ gap: [{
1755
+ gap: M()
1756
+ }],
1757
+ /**
1758
+ * Gap X
1759
+ * @see https://tailwindcss.com/docs/gap
1760
+ */
1761
+ "gap-x": [{
1762
+ "gap-x": M()
1763
+ }],
1764
+ /**
1765
+ * Gap Y
1766
+ * @see https://tailwindcss.com/docs/gap
1767
+ */
1768
+ "gap-y": [{
1769
+ "gap-y": M()
1770
+ }],
1771
+ /**
1772
+ * Justify Content
1773
+ * @see https://tailwindcss.com/docs/justify-content
1774
+ */
1775
+ "justify-content": [{
1776
+ justify: [...Z(), "normal"]
1777
+ }],
1778
+ /**
1779
+ * Justify Items
1780
+ * @see https://tailwindcss.com/docs/justify-items
1781
+ */
1782
+ "justify-items": [{
1783
+ "justify-items": [...H(), "normal"]
1784
+ }],
1785
+ /**
1786
+ * Justify Self
1787
+ * @see https://tailwindcss.com/docs/justify-self
1788
+ */
1789
+ "justify-self": [{
1790
+ "justify-self": ["auto", ...H()]
1791
+ }],
1792
+ /**
1793
+ * Align Content
1794
+ * @see https://tailwindcss.com/docs/align-content
1795
+ */
1796
+ "align-content": [{
1797
+ content: ["normal", ...Z()]
1798
+ }],
1799
+ /**
1800
+ * Align Items
1801
+ * @see https://tailwindcss.com/docs/align-items
1802
+ */
1803
+ "align-items": [{
1804
+ items: [...H(), {
1805
+ baseline: ["", "last"]
1806
+ }]
1807
+ }],
1808
+ /**
1809
+ * Align Self
1810
+ * @see https://tailwindcss.com/docs/align-self
1811
+ */
1812
+ "align-self": [{
1813
+ self: ["auto", ...H(), {
1814
+ baseline: ["", "last"]
1815
+ }]
1816
+ }],
1817
+ /**
1818
+ * Place Content
1819
+ * @see https://tailwindcss.com/docs/place-content
1820
+ */
1821
+ "place-content": [{
1822
+ "place-content": Z()
1823
+ }],
1824
+ /**
1825
+ * Place Items
1826
+ * @see https://tailwindcss.com/docs/place-items
1827
+ */
1828
+ "place-items": [{
1829
+ "place-items": [...H(), "baseline"]
1830
+ }],
1831
+ /**
1832
+ * Place Self
1833
+ * @see https://tailwindcss.com/docs/place-self
1834
+ */
1835
+ "place-self": [{
1836
+ "place-self": ["auto", ...H()]
1837
+ }],
1838
+ // Spacing
1839
+ /**
1840
+ * Padding
1841
+ * @see https://tailwindcss.com/docs/padding
1842
+ */
1843
+ p: [{
1844
+ p: M()
1845
+ }],
1846
+ /**
1847
+ * Padding X
1848
+ * @see https://tailwindcss.com/docs/padding
1849
+ */
1850
+ px: [{
1851
+ px: M()
1852
+ }],
1853
+ /**
1854
+ * Padding Y
1855
+ * @see https://tailwindcss.com/docs/padding
1856
+ */
1857
+ py: [{
1858
+ py: M()
1859
+ }],
1860
+ /**
1861
+ * Padding Start
1862
+ * @see https://tailwindcss.com/docs/padding
1863
+ */
1864
+ ps: [{
1865
+ ps: M()
1866
+ }],
1867
+ /**
1868
+ * Padding End
1869
+ * @see https://tailwindcss.com/docs/padding
1870
+ */
1871
+ pe: [{
1872
+ pe: M()
1873
+ }],
1874
+ /**
1875
+ * Padding Top
1876
+ * @see https://tailwindcss.com/docs/padding
1877
+ */
1878
+ pt: [{
1879
+ pt: M()
1880
+ }],
1881
+ /**
1882
+ * Padding Right
1883
+ * @see https://tailwindcss.com/docs/padding
1884
+ */
1885
+ pr: [{
1886
+ pr: M()
1887
+ }],
1888
+ /**
1889
+ * Padding Bottom
1890
+ * @see https://tailwindcss.com/docs/padding
1891
+ */
1892
+ pb: [{
1893
+ pb: M()
1894
+ }],
1895
+ /**
1896
+ * Padding Left
1897
+ * @see https://tailwindcss.com/docs/padding
1898
+ */
1899
+ pl: [{
1900
+ pl: M()
1901
+ }],
1902
+ /**
1903
+ * Margin
1904
+ * @see https://tailwindcss.com/docs/margin
1905
+ */
1906
+ m: [{
1907
+ m: A()
1908
+ }],
1909
+ /**
1910
+ * Margin X
1911
+ * @see https://tailwindcss.com/docs/margin
1912
+ */
1913
+ mx: [{
1914
+ mx: A()
1915
+ }],
1916
+ /**
1917
+ * Margin Y
1918
+ * @see https://tailwindcss.com/docs/margin
1919
+ */
1920
+ my: [{
1921
+ my: A()
1922
+ }],
1923
+ /**
1924
+ * Margin Start
1925
+ * @see https://tailwindcss.com/docs/margin
1926
+ */
1927
+ ms: [{
1928
+ ms: A()
1929
+ }],
1930
+ /**
1931
+ * Margin End
1932
+ * @see https://tailwindcss.com/docs/margin
1933
+ */
1934
+ me: [{
1935
+ me: A()
1936
+ }],
1937
+ /**
1938
+ * Margin Top
1939
+ * @see https://tailwindcss.com/docs/margin
1940
+ */
1941
+ mt: [{
1942
+ mt: A()
1943
+ }],
1944
+ /**
1945
+ * Margin Right
1946
+ * @see https://tailwindcss.com/docs/margin
1947
+ */
1948
+ mr: [{
1949
+ mr: A()
1950
+ }],
1951
+ /**
1952
+ * Margin Bottom
1953
+ * @see https://tailwindcss.com/docs/margin
1954
+ */
1955
+ mb: [{
1956
+ mb: A()
1957
+ }],
1958
+ /**
1959
+ * Margin Left
1960
+ * @see https://tailwindcss.com/docs/margin
1961
+ */
1962
+ ml: [{
1963
+ ml: A()
1964
+ }],
1965
+ /**
1966
+ * Space Between X
1967
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1968
+ */
1969
+ "space-x": [{
1970
+ "space-x": M()
1971
+ }],
1972
+ /**
1973
+ * Space Between X Reverse
1974
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1975
+ */
1976
+ "space-x-reverse": ["space-x-reverse"],
1977
+ /**
1978
+ * Space Between Y
1979
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1980
+ */
1981
+ "space-y": [{
1982
+ "space-y": M()
1983
+ }],
1984
+ /**
1985
+ * Space Between Y Reverse
1986
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1987
+ */
1988
+ "space-y-reverse": ["space-y-reverse"],
1989
+ // --------------
1990
+ // --- Sizing ---
1991
+ // --------------
1992
+ /**
1993
+ * Size
1994
+ * @see https://tailwindcss.com/docs/width#setting-both-width-and-height
1995
+ */
1996
+ size: [{
1997
+ size: D()
1998
+ }],
1999
+ /**
2000
+ * Width
2001
+ * @see https://tailwindcss.com/docs/width
2002
+ */
2003
+ w: [{
2004
+ w: [l, "screen", ...D()]
2005
+ }],
2006
+ /**
2007
+ * Min-Width
2008
+ * @see https://tailwindcss.com/docs/min-width
2009
+ */
2010
+ "min-w": [{
2011
+ "min-w": [
2012
+ l,
2013
+ "screen",
2014
+ /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
2015
+ "none",
2016
+ ...D()
2017
+ ]
2018
+ }],
2019
+ /**
2020
+ * Max-Width
2021
+ * @see https://tailwindcss.com/docs/max-width
2022
+ */
2023
+ "max-w": [{
2024
+ "max-w": [
2025
+ l,
2026
+ "screen",
2027
+ "none",
2028
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
2029
+ "prose",
2030
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
2031
+ {
2032
+ screen: [a]
2033
+ },
2034
+ ...D()
2035
+ ]
2036
+ }],
2037
+ /**
2038
+ * Height
2039
+ * @see https://tailwindcss.com/docs/height
2040
+ */
2041
+ h: [{
2042
+ h: ["screen", "lh", ...D()]
2043
+ }],
2044
+ /**
2045
+ * Min-Height
2046
+ * @see https://tailwindcss.com/docs/min-height
2047
+ */
2048
+ "min-h": [{
2049
+ "min-h": ["screen", "lh", "none", ...D()]
2050
+ }],
2051
+ /**
2052
+ * Max-Height
2053
+ * @see https://tailwindcss.com/docs/max-height
2054
+ */
2055
+ "max-h": [{
2056
+ "max-h": ["screen", "lh", ...D()]
2057
+ }],
2058
+ // ------------------
2059
+ // --- Typography ---
2060
+ // ------------------
2061
+ /**
2062
+ * Font Size
2063
+ * @see https://tailwindcss.com/docs/font-size
2064
+ */
2065
+ "font-size": [{
2066
+ text: ["base", r, je, Me]
2067
+ }],
2068
+ /**
2069
+ * Font Smoothing
2070
+ * @see https://tailwindcss.com/docs/font-smoothing
2071
+ */
2072
+ "font-smoothing": ["antialiased", "subpixel-antialiased"],
2073
+ /**
2074
+ * Font Style
2075
+ * @see https://tailwindcss.com/docs/font-style
2076
+ */
2077
+ "font-style": ["italic", "not-italic"],
2078
+ /**
2079
+ * Font Weight
2080
+ * @see https://tailwindcss.com/docs/font-weight
2081
+ */
2082
+ "font-weight": [{
2083
+ font: [o, O, Qe]
2084
+ }],
2085
+ /**
2086
+ * Font Stretch
2087
+ * @see https://tailwindcss.com/docs/font-stretch
2088
+ */
2089
+ "font-stretch": [{
2090
+ "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", Ze, T]
2091
+ }],
2092
+ /**
2093
+ * Font Family
2094
+ * @see https://tailwindcss.com/docs/font-family
2095
+ */
2096
+ "font-family": [{
2097
+ font: [Lr, T, t]
2098
+ }],
2099
+ /**
2100
+ * Font Variant Numeric
2101
+ * @see https://tailwindcss.com/docs/font-variant-numeric
2102
+ */
2103
+ "fvn-normal": ["normal-nums"],
2104
+ /**
2105
+ * Font Variant Numeric
2106
+ * @see https://tailwindcss.com/docs/font-variant-numeric
2107
+ */
2108
+ "fvn-ordinal": ["ordinal"],
2109
+ /**
2110
+ * Font Variant Numeric
2111
+ * @see https://tailwindcss.com/docs/font-variant-numeric
2112
+ */
2113
+ "fvn-slashed-zero": ["slashed-zero"],
2114
+ /**
2115
+ * Font Variant Numeric
2116
+ * @see https://tailwindcss.com/docs/font-variant-numeric
2117
+ */
2118
+ "fvn-figure": ["lining-nums", "oldstyle-nums"],
2119
+ /**
2120
+ * Font Variant Numeric
2121
+ * @see https://tailwindcss.com/docs/font-variant-numeric
2122
+ */
2123
+ "fvn-spacing": ["proportional-nums", "tabular-nums"],
2124
+ /**
2125
+ * Font Variant Numeric
2126
+ * @see https://tailwindcss.com/docs/font-variant-numeric
2127
+ */
2128
+ "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
2129
+ /**
2130
+ * Letter Spacing
2131
+ * @see https://tailwindcss.com/docs/letter-spacing
2132
+ */
2133
+ tracking: [{
2134
+ tracking: [i, O, T]
2135
+ }],
2136
+ /**
2137
+ * Line Clamp
2138
+ * @see https://tailwindcss.com/docs/line-clamp
2139
+ */
2140
+ "line-clamp": [{
2141
+ "line-clamp": [J, "none", O, Qe]
2142
+ }],
2143
+ /**
2144
+ * Line Height
2145
+ * @see https://tailwindcss.com/docs/line-height
2146
+ */
2147
+ leading: [{
2148
+ leading: [
2149
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
2150
+ s,
2151
+ ...M()
2152
+ ]
2153
+ }],
2154
+ /**
2155
+ * List Style Image
2156
+ * @see https://tailwindcss.com/docs/list-style-image
2157
+ */
2158
+ "list-image": [{
2159
+ "list-image": ["none", O, T]
2160
+ }],
2161
+ /**
2162
+ * List Style Position
2163
+ * @see https://tailwindcss.com/docs/list-style-position
2164
+ */
2165
+ "list-style-position": [{
2166
+ list: ["inside", "outside"]
2167
+ }],
2168
+ /**
2169
+ * List Style Type
2170
+ * @see https://tailwindcss.com/docs/list-style-type
2171
+ */
2172
+ "list-style-type": [{
2173
+ list: ["disc", "decimal", "none", O, T]
2174
+ }],
2175
+ /**
2176
+ * Text Alignment
2177
+ * @see https://tailwindcss.com/docs/text-align
2178
+ */
2179
+ "text-alignment": [{
2180
+ text: ["left", "center", "right", "justify", "start", "end"]
2181
+ }],
2182
+ /**
2183
+ * Placeholder Color
2184
+ * @deprecated since Tailwind CSS v3.0.0
2185
+ * @see https://v3.tailwindcss.com/docs/placeholder-color
2186
+ */
2187
+ "placeholder-color": [{
2188
+ placeholder: k()
2189
+ }],
2190
+ /**
2191
+ * Text Color
2192
+ * @see https://tailwindcss.com/docs/text-color
2193
+ */
2194
+ "text-color": [{
2195
+ text: k()
2196
+ }],
2197
+ /**
2198
+ * Text Decoration
2199
+ * @see https://tailwindcss.com/docs/text-decoration
2200
+ */
2201
+ "text-decoration": ["underline", "overline", "line-through", "no-underline"],
2202
+ /**
2203
+ * Text Decoration Style
2204
+ * @see https://tailwindcss.com/docs/text-decoration-style
2205
+ */
2206
+ "text-decoration-style": [{
2207
+ decoration: [...U(), "wavy"]
2208
+ }],
2209
+ /**
2210
+ * Text Decoration Thickness
2211
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
2212
+ */
2213
+ "text-decoration-thickness": [{
2214
+ decoration: [J, "from-font", "auto", O, Me]
2215
+ }],
2216
+ /**
2217
+ * Text Decoration Color
2218
+ * @see https://tailwindcss.com/docs/text-decoration-color
2219
+ */
2220
+ "text-decoration-color": [{
2221
+ decoration: k()
2222
+ }],
2223
+ /**
2224
+ * Text Underline Offset
2225
+ * @see https://tailwindcss.com/docs/text-underline-offset
2226
+ */
2227
+ "underline-offset": [{
2228
+ "underline-offset": [J, "auto", O, T]
2229
+ }],
2230
+ /**
2231
+ * Text Transform
2232
+ * @see https://tailwindcss.com/docs/text-transform
2233
+ */
2234
+ "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
2235
+ /**
2236
+ * Text Overflow
2237
+ * @see https://tailwindcss.com/docs/text-overflow
2238
+ */
2239
+ "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
2240
+ /**
2241
+ * Text Wrap
2242
+ * @see https://tailwindcss.com/docs/text-wrap
2243
+ */
2244
+ "text-wrap": [{
2245
+ text: ["wrap", "nowrap", "balance", "pretty"]
2246
+ }],
2247
+ /**
2248
+ * Text Indent
2249
+ * @see https://tailwindcss.com/docs/text-indent
2250
+ */
2251
+ indent: [{
2252
+ indent: M()
2253
+ }],
2254
+ /**
2255
+ * Vertical Alignment
2256
+ * @see https://tailwindcss.com/docs/vertical-align
2257
+ */
2258
+ "vertical-align": [{
2259
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", O, T]
2260
+ }],
2261
+ /**
2262
+ * Whitespace
2263
+ * @see https://tailwindcss.com/docs/whitespace
2264
+ */
2265
+ whitespace: [{
2266
+ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
2267
+ }],
2268
+ /**
2269
+ * Word Break
2270
+ * @see https://tailwindcss.com/docs/word-break
2271
+ */
2272
+ break: [{
2273
+ break: ["normal", "words", "all", "keep"]
2274
+ }],
2275
+ /**
2276
+ * Overflow Wrap
2277
+ * @see https://tailwindcss.com/docs/overflow-wrap
2278
+ */
2279
+ wrap: [{
2280
+ wrap: ["break-word", "anywhere", "normal"]
2281
+ }],
2282
+ /**
2283
+ * Hyphens
2284
+ * @see https://tailwindcss.com/docs/hyphens
2285
+ */
2286
+ hyphens: [{
2287
+ hyphens: ["none", "manual", "auto"]
2288
+ }],
2289
+ /**
2290
+ * Content
2291
+ * @see https://tailwindcss.com/docs/content
2292
+ */
2293
+ content: [{
2294
+ content: ["none", O, T]
2295
+ }],
2296
+ // -------------------
2297
+ // --- Backgrounds ---
2298
+ // -------------------
2299
+ /**
2300
+ * Background Attachment
2301
+ * @see https://tailwindcss.com/docs/background-attachment
2302
+ */
2303
+ "bg-attachment": [{
2304
+ bg: ["fixed", "local", "scroll"]
2305
+ }],
2306
+ /**
2307
+ * Background Clip
2308
+ * @see https://tailwindcss.com/docs/background-clip
2309
+ */
2310
+ "bg-clip": [{
2311
+ "bg-clip": ["border", "padding", "content", "text"]
2312
+ }],
2313
+ /**
2314
+ * Background Origin
2315
+ * @see https://tailwindcss.com/docs/background-origin
2316
+ */
2317
+ "bg-origin": [{
2318
+ "bg-origin": ["border", "padding", "content"]
2319
+ }],
2320
+ /**
2321
+ * Background Position
2322
+ * @see https://tailwindcss.com/docs/background-position
2323
+ */
2324
+ "bg-position": [{
2325
+ bg: ne()
2326
+ }],
2327
+ /**
2328
+ * Background Repeat
2329
+ * @see https://tailwindcss.com/docs/background-repeat
2330
+ */
2331
+ "bg-repeat": [{
2332
+ bg: _()
2333
+ }],
2334
+ /**
2335
+ * Background Size
2336
+ * @see https://tailwindcss.com/docs/background-size
2337
+ */
2338
+ "bg-size": [{
2339
+ bg: n()
2340
+ }],
2341
+ /**
2342
+ * Background Image
2343
+ * @see https://tailwindcss.com/docs/background-image
2344
+ */
2345
+ "bg-image": [{
2346
+ bg: ["none", {
2347
+ linear: [{
2348
+ to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
2349
+ }, ke, O, T],
2350
+ radial: ["", O, T],
2351
+ conic: [ke, O, T]
2352
+ }, Gr, Br]
2353
+ }],
2354
+ /**
2355
+ * Background Color
2356
+ * @see https://tailwindcss.com/docs/background-color
2357
+ */
2358
+ "bg-color": [{
2359
+ bg: k()
2360
+ }],
2361
+ /**
2362
+ * Gradient Color Stops From Position
2363
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2364
+ */
2365
+ "gradient-from-pos": [{
2366
+ from: z()
2367
+ }],
2368
+ /**
2369
+ * Gradient Color Stops Via Position
2370
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2371
+ */
2372
+ "gradient-via-pos": [{
2373
+ via: z()
2374
+ }],
2375
+ /**
2376
+ * Gradient Color Stops To Position
2377
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2378
+ */
2379
+ "gradient-to-pos": [{
2380
+ to: z()
2381
+ }],
2382
+ /**
2383
+ * Gradient Color Stops From
2384
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2385
+ */
2386
+ "gradient-from": [{
2387
+ from: k()
2388
+ }],
2389
+ /**
2390
+ * Gradient Color Stops Via
2391
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2392
+ */
2393
+ "gradient-via": [{
2394
+ via: k()
2395
+ }],
2396
+ /**
2397
+ * Gradient Color Stops To
2398
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2399
+ */
2400
+ "gradient-to": [{
2401
+ to: k()
2402
+ }],
2403
+ // ---------------
2404
+ // --- Borders ---
2405
+ // ---------------
2406
+ /**
2407
+ * Border Radius
2408
+ * @see https://tailwindcss.com/docs/border-radius
2409
+ */
2410
+ rounded: [{
2411
+ rounded: E()
2412
+ }],
2413
+ /**
2414
+ * Border Radius Start
2415
+ * @see https://tailwindcss.com/docs/border-radius
2416
+ */
2417
+ "rounded-s": [{
2418
+ "rounded-s": E()
2419
+ }],
2420
+ /**
2421
+ * Border Radius End
2422
+ * @see https://tailwindcss.com/docs/border-radius
2423
+ */
2424
+ "rounded-e": [{
2425
+ "rounded-e": E()
2426
+ }],
2427
+ /**
2428
+ * Border Radius Top
2429
+ * @see https://tailwindcss.com/docs/border-radius
2430
+ */
2431
+ "rounded-t": [{
2432
+ "rounded-t": E()
2433
+ }],
2434
+ /**
2435
+ * Border Radius Right
2436
+ * @see https://tailwindcss.com/docs/border-radius
2437
+ */
2438
+ "rounded-r": [{
2439
+ "rounded-r": E()
2440
+ }],
2441
+ /**
2442
+ * Border Radius Bottom
2443
+ * @see https://tailwindcss.com/docs/border-radius
2444
+ */
2445
+ "rounded-b": [{
2446
+ "rounded-b": E()
2447
+ }],
2448
+ /**
2449
+ * Border Radius Left
2450
+ * @see https://tailwindcss.com/docs/border-radius
2451
+ */
2452
+ "rounded-l": [{
2453
+ "rounded-l": E()
2454
+ }],
2455
+ /**
2456
+ * Border Radius Start Start
2457
+ * @see https://tailwindcss.com/docs/border-radius
2458
+ */
2459
+ "rounded-ss": [{
2460
+ "rounded-ss": E()
2461
+ }],
2462
+ /**
2463
+ * Border Radius Start End
2464
+ * @see https://tailwindcss.com/docs/border-radius
2465
+ */
2466
+ "rounded-se": [{
2467
+ "rounded-se": E()
2468
+ }],
2469
+ /**
2470
+ * Border Radius End End
2471
+ * @see https://tailwindcss.com/docs/border-radius
2472
+ */
2473
+ "rounded-ee": [{
2474
+ "rounded-ee": E()
2475
+ }],
2476
+ /**
2477
+ * Border Radius End Start
2478
+ * @see https://tailwindcss.com/docs/border-radius
2479
+ */
2480
+ "rounded-es": [{
2481
+ "rounded-es": E()
2482
+ }],
2483
+ /**
2484
+ * Border Radius Top Left
2485
+ * @see https://tailwindcss.com/docs/border-radius
2486
+ */
2487
+ "rounded-tl": [{
2488
+ "rounded-tl": E()
2489
+ }],
2490
+ /**
2491
+ * Border Radius Top Right
2492
+ * @see https://tailwindcss.com/docs/border-radius
2493
+ */
2494
+ "rounded-tr": [{
2495
+ "rounded-tr": E()
2496
+ }],
2497
+ /**
2498
+ * Border Radius Bottom Right
2499
+ * @see https://tailwindcss.com/docs/border-radius
2500
+ */
2501
+ "rounded-br": [{
2502
+ "rounded-br": E()
2503
+ }],
2504
+ /**
2505
+ * Border Radius Bottom Left
2506
+ * @see https://tailwindcss.com/docs/border-radius
2507
+ */
2508
+ "rounded-bl": [{
2509
+ "rounded-bl": E()
2510
+ }],
2511
+ /**
2512
+ * Border Width
2513
+ * @see https://tailwindcss.com/docs/border-width
2514
+ */
2515
+ "border-w": [{
2516
+ border: N()
2517
+ }],
2518
+ /**
2519
+ * Border Width X
2520
+ * @see https://tailwindcss.com/docs/border-width
2521
+ */
2522
+ "border-w-x": [{
2523
+ "border-x": N()
2524
+ }],
2525
+ /**
2526
+ * Border Width Y
2527
+ * @see https://tailwindcss.com/docs/border-width
2528
+ */
2529
+ "border-w-y": [{
2530
+ "border-y": N()
2531
+ }],
2532
+ /**
2533
+ * Border Width Start
2534
+ * @see https://tailwindcss.com/docs/border-width
2535
+ */
2536
+ "border-w-s": [{
2537
+ "border-s": N()
2538
+ }],
2539
+ /**
2540
+ * Border Width End
2541
+ * @see https://tailwindcss.com/docs/border-width
2542
+ */
2543
+ "border-w-e": [{
2544
+ "border-e": N()
2545
+ }],
2546
+ /**
2547
+ * Border Width Top
2548
+ * @see https://tailwindcss.com/docs/border-width
2549
+ */
2550
+ "border-w-t": [{
2551
+ "border-t": N()
2552
+ }],
2553
+ /**
2554
+ * Border Width Right
2555
+ * @see https://tailwindcss.com/docs/border-width
2556
+ */
2557
+ "border-w-r": [{
2558
+ "border-r": N()
2559
+ }],
2560
+ /**
2561
+ * Border Width Bottom
2562
+ * @see https://tailwindcss.com/docs/border-width
2563
+ */
2564
+ "border-w-b": [{
2565
+ "border-b": N()
2566
+ }],
2567
+ /**
2568
+ * Border Width Left
2569
+ * @see https://tailwindcss.com/docs/border-width
2570
+ */
2571
+ "border-w-l": [{
2572
+ "border-l": N()
2573
+ }],
2574
+ /**
2575
+ * Divide Width X
2576
+ * @see https://tailwindcss.com/docs/border-width#between-children
2577
+ */
2578
+ "divide-x": [{
2579
+ "divide-x": N()
2580
+ }],
2581
+ /**
2582
+ * Divide Width X Reverse
2583
+ * @see https://tailwindcss.com/docs/border-width#between-children
2584
+ */
2585
+ "divide-x-reverse": ["divide-x-reverse"],
2586
+ /**
2587
+ * Divide Width Y
2588
+ * @see https://tailwindcss.com/docs/border-width#between-children
2589
+ */
2590
+ "divide-y": [{
2591
+ "divide-y": N()
2592
+ }],
2593
+ /**
2594
+ * Divide Width Y Reverse
2595
+ * @see https://tailwindcss.com/docs/border-width#between-children
2596
+ */
2597
+ "divide-y-reverse": ["divide-y-reverse"],
2598
+ /**
2599
+ * Border Style
2600
+ * @see https://tailwindcss.com/docs/border-style
2601
+ */
2602
+ "border-style": [{
2603
+ border: [...U(), "hidden", "none"]
2604
+ }],
2605
+ /**
2606
+ * Divide Style
2607
+ * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style
2608
+ */
2609
+ "divide-style": [{
2610
+ divide: [...U(), "hidden", "none"]
2611
+ }],
2612
+ /**
2613
+ * Border Color
2614
+ * @see https://tailwindcss.com/docs/border-color
2615
+ */
2616
+ "border-color": [{
2617
+ border: k()
2618
+ }],
2619
+ /**
2620
+ * Border Color X
2621
+ * @see https://tailwindcss.com/docs/border-color
2622
+ */
2623
+ "border-color-x": [{
2624
+ "border-x": k()
2625
+ }],
2626
+ /**
2627
+ * Border Color Y
2628
+ * @see https://tailwindcss.com/docs/border-color
2629
+ */
2630
+ "border-color-y": [{
2631
+ "border-y": k()
2632
+ }],
2633
+ /**
2634
+ * Border Color S
2635
+ * @see https://tailwindcss.com/docs/border-color
2636
+ */
2637
+ "border-color-s": [{
2638
+ "border-s": k()
2639
+ }],
2640
+ /**
2641
+ * Border Color E
2642
+ * @see https://tailwindcss.com/docs/border-color
2643
+ */
2644
+ "border-color-e": [{
2645
+ "border-e": k()
2646
+ }],
2647
+ /**
2648
+ * Border Color Top
2649
+ * @see https://tailwindcss.com/docs/border-color
2650
+ */
2651
+ "border-color-t": [{
2652
+ "border-t": k()
2653
+ }],
2654
+ /**
2655
+ * Border Color Right
2656
+ * @see https://tailwindcss.com/docs/border-color
2657
+ */
2658
+ "border-color-r": [{
2659
+ "border-r": k()
2660
+ }],
2661
+ /**
2662
+ * Border Color Bottom
2663
+ * @see https://tailwindcss.com/docs/border-color
2664
+ */
2665
+ "border-color-b": [{
2666
+ "border-b": k()
2667
+ }],
2668
+ /**
2669
+ * Border Color Left
2670
+ * @see https://tailwindcss.com/docs/border-color
2671
+ */
2672
+ "border-color-l": [{
2673
+ "border-l": k()
2674
+ }],
2675
+ /**
2676
+ * Divide Color
2677
+ * @see https://tailwindcss.com/docs/divide-color
2678
+ */
2679
+ "divide-color": [{
2680
+ divide: k()
2681
+ }],
2682
+ /**
2683
+ * Outline Style
2684
+ * @see https://tailwindcss.com/docs/outline-style
2685
+ */
2686
+ "outline-style": [{
2687
+ outline: [...U(), "none", "hidden"]
2688
+ }],
2689
+ /**
2690
+ * Outline Offset
2691
+ * @see https://tailwindcss.com/docs/outline-offset
2692
+ */
2693
+ "outline-offset": [{
2694
+ "outline-offset": [J, O, T]
2695
+ }],
2696
+ /**
2697
+ * Outline Width
2698
+ * @see https://tailwindcss.com/docs/outline-width
2699
+ */
2700
+ "outline-w": [{
2701
+ outline: ["", J, je, Me]
2702
+ }],
2703
+ /**
2704
+ * Outline Color
2705
+ * @see https://tailwindcss.com/docs/outline-color
2706
+ */
2707
+ "outline-color": [{
2708
+ outline: k()
2709
+ }],
2710
+ // ---------------
2711
+ // --- Effects ---
2712
+ // ---------------
2713
+ /**
2714
+ * Box Shadow
2715
+ * @see https://tailwindcss.com/docs/box-shadow
2716
+ */
2717
+ shadow: [{
2718
+ shadow: [
2719
+ // Deprecated since Tailwind CSS v4.0.0
2720
+ "",
2721
+ "none",
2722
+ b,
2723
+ Ue,
2724
+ We
2725
+ ]
2726
+ }],
2727
+ /**
2728
+ * Box Shadow Color
2729
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color
2730
+ */
2731
+ "shadow-color": [{
2732
+ shadow: k()
2733
+ }],
2734
+ /**
2735
+ * Inset Box Shadow
2736
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
2737
+ */
2738
+ "inset-shadow": [{
2739
+ "inset-shadow": ["none", d, Ue, We]
2740
+ }],
2741
+ /**
2742
+ * Inset Box Shadow Color
2743
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color
2744
+ */
2745
+ "inset-shadow-color": [{
2746
+ "inset-shadow": k()
2747
+ }],
2748
+ /**
2749
+ * Ring Width
2750
+ * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring
2751
+ */
2752
+ "ring-w": [{
2753
+ ring: N()
2754
+ }],
2755
+ /**
2756
+ * Ring Width Inset
2757
+ * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings
2758
+ * @deprecated since Tailwind CSS v4.0.0
2759
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2760
+ */
2761
+ "ring-w-inset": ["ring-inset"],
2762
+ /**
2763
+ * Ring Color
2764
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color
2765
+ */
2766
+ "ring-color": [{
2767
+ ring: k()
2768
+ }],
2769
+ /**
2770
+ * Ring Offset Width
2771
+ * @see https://v3.tailwindcss.com/docs/ring-offset-width
2772
+ * @deprecated since Tailwind CSS v4.0.0
2773
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2774
+ */
2775
+ "ring-offset-w": [{
2776
+ "ring-offset": [J, Me]
2777
+ }],
2778
+ /**
2779
+ * Ring Offset Color
2780
+ * @see https://v3.tailwindcss.com/docs/ring-offset-color
2781
+ * @deprecated since Tailwind CSS v4.0.0
2782
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2783
+ */
2784
+ "ring-offset-color": [{
2785
+ "ring-offset": k()
2786
+ }],
2787
+ /**
2788
+ * Inset Ring Width
2789
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring
2790
+ */
2791
+ "inset-ring-w": [{
2792
+ "inset-ring": N()
2793
+ }],
2794
+ /**
2795
+ * Inset Ring Color
2796
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color
2797
+ */
2798
+ "inset-ring-color": [{
2799
+ "inset-ring": k()
2800
+ }],
2801
+ /**
2802
+ * Text Shadow
2803
+ * @see https://tailwindcss.com/docs/text-shadow
2804
+ */
2805
+ "text-shadow": [{
2806
+ "text-shadow": ["none", u, Ue, We]
2807
+ }],
2808
+ /**
2809
+ * Text Shadow Color
2810
+ * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color
2811
+ */
2812
+ "text-shadow-color": [{
2813
+ "text-shadow": k()
2814
+ }],
2815
+ /**
2816
+ * Opacity
2817
+ * @see https://tailwindcss.com/docs/opacity
2818
+ */
2819
+ opacity: [{
2820
+ opacity: [J, O, T]
2821
+ }],
2822
+ /**
2823
+ * Mix Blend Mode
2824
+ * @see https://tailwindcss.com/docs/mix-blend-mode
2825
+ */
2826
+ "mix-blend": [{
2827
+ "mix-blend": [...P(), "plus-darker", "plus-lighter"]
2828
+ }],
2829
+ /**
2830
+ * Background Blend Mode
2831
+ * @see https://tailwindcss.com/docs/background-blend-mode
2832
+ */
2833
+ "bg-blend": [{
2834
+ "bg-blend": P()
2835
+ }],
2836
+ /**
2837
+ * Mask Clip
2838
+ * @see https://tailwindcss.com/docs/mask-clip
2839
+ */
2840
+ "mask-clip": [{
2841
+ "mask-clip": ["border", "padding", "content", "fill", "stroke", "view"]
2842
+ }, "mask-no-clip"],
2843
+ /**
2844
+ * Mask Composite
2845
+ * @see https://tailwindcss.com/docs/mask-composite
2846
+ */
2847
+ "mask-composite": [{
2848
+ mask: ["add", "subtract", "intersect", "exclude"]
2849
+ }],
2850
+ /**
2851
+ * Mask Image
2852
+ * @see https://tailwindcss.com/docs/mask-image
2853
+ */
2854
+ "mask-image-linear-pos": [{
2855
+ "mask-linear": [J]
2856
+ }],
2857
+ "mask-image-linear-from-pos": [{
2858
+ "mask-linear-from": x()
2859
+ }],
2860
+ "mask-image-linear-to-pos": [{
2861
+ "mask-linear-to": x()
2862
+ }],
2863
+ "mask-image-linear-from-color": [{
2864
+ "mask-linear-from": k()
2865
+ }],
2866
+ "mask-image-linear-to-color": [{
2867
+ "mask-linear-to": k()
2868
+ }],
2869
+ "mask-image-t-from-pos": [{
2870
+ "mask-t-from": x()
2871
+ }],
2872
+ "mask-image-t-to-pos": [{
2873
+ "mask-t-to": x()
2874
+ }],
2875
+ "mask-image-t-from-color": [{
2876
+ "mask-t-from": k()
2877
+ }],
2878
+ "mask-image-t-to-color": [{
2879
+ "mask-t-to": k()
2880
+ }],
2881
+ "mask-image-r-from-pos": [{
2882
+ "mask-r-from": x()
2883
+ }],
2884
+ "mask-image-r-to-pos": [{
2885
+ "mask-r-to": x()
2886
+ }],
2887
+ "mask-image-r-from-color": [{
2888
+ "mask-r-from": k()
2889
+ }],
2890
+ "mask-image-r-to-color": [{
2891
+ "mask-r-to": k()
2892
+ }],
2893
+ "mask-image-b-from-pos": [{
2894
+ "mask-b-from": x()
2895
+ }],
2896
+ "mask-image-b-to-pos": [{
2897
+ "mask-b-to": x()
2898
+ }],
2899
+ "mask-image-b-from-color": [{
2900
+ "mask-b-from": k()
2901
+ }],
2902
+ "mask-image-b-to-color": [{
2903
+ "mask-b-to": k()
2904
+ }],
2905
+ "mask-image-l-from-pos": [{
2906
+ "mask-l-from": x()
2907
+ }],
2908
+ "mask-image-l-to-pos": [{
2909
+ "mask-l-to": x()
2910
+ }],
2911
+ "mask-image-l-from-color": [{
2912
+ "mask-l-from": k()
2913
+ }],
2914
+ "mask-image-l-to-color": [{
2915
+ "mask-l-to": k()
2916
+ }],
2917
+ "mask-image-x-from-pos": [{
2918
+ "mask-x-from": x()
2919
+ }],
2920
+ "mask-image-x-to-pos": [{
2921
+ "mask-x-to": x()
2922
+ }],
2923
+ "mask-image-x-from-color": [{
2924
+ "mask-x-from": k()
2925
+ }],
2926
+ "mask-image-x-to-color": [{
2927
+ "mask-x-to": k()
2928
+ }],
2929
+ "mask-image-y-from-pos": [{
2930
+ "mask-y-from": x()
2931
+ }],
2932
+ "mask-image-y-to-pos": [{
2933
+ "mask-y-to": x()
2934
+ }],
2935
+ "mask-image-y-from-color": [{
2936
+ "mask-y-from": k()
2937
+ }],
2938
+ "mask-image-y-to-color": [{
2939
+ "mask-y-to": k()
2940
+ }],
2941
+ "mask-image-radial": [{
2942
+ "mask-radial": [O, T]
2943
+ }],
2944
+ "mask-image-radial-from-pos": [{
2945
+ "mask-radial-from": x()
2946
+ }],
2947
+ "mask-image-radial-to-pos": [{
2948
+ "mask-radial-to": x()
2949
+ }],
2950
+ "mask-image-radial-from-color": [{
2951
+ "mask-radial-from": k()
2952
+ }],
2953
+ "mask-image-radial-to-color": [{
2954
+ "mask-radial-to": k()
2955
+ }],
2956
+ "mask-image-radial-shape": [{
2957
+ "mask-radial": ["circle", "ellipse"]
2958
+ }],
2959
+ "mask-image-radial-size": [{
2960
+ "mask-radial": [{
2961
+ closest: ["side", "corner"],
2962
+ farthest: ["side", "corner"]
2963
+ }]
2964
+ }],
2965
+ "mask-image-radial-pos": [{
2966
+ "mask-radial-at": F()
2967
+ }],
2968
+ "mask-image-conic-pos": [{
2969
+ "mask-conic": [J]
2970
+ }],
2971
+ "mask-image-conic-from-pos": [{
2972
+ "mask-conic-from": x()
2973
+ }],
2974
+ "mask-image-conic-to-pos": [{
2975
+ "mask-conic-to": x()
2976
+ }],
2977
+ "mask-image-conic-from-color": [{
2978
+ "mask-conic-from": k()
2979
+ }],
2980
+ "mask-image-conic-to-color": [{
2981
+ "mask-conic-to": k()
2982
+ }],
2983
+ /**
2984
+ * Mask Mode
2985
+ * @see https://tailwindcss.com/docs/mask-mode
2986
+ */
2987
+ "mask-mode": [{
2988
+ mask: ["alpha", "luminance", "match"]
2989
+ }],
2990
+ /**
2991
+ * Mask Origin
2992
+ * @see https://tailwindcss.com/docs/mask-origin
2993
+ */
2994
+ "mask-origin": [{
2995
+ "mask-origin": ["border", "padding", "content", "fill", "stroke", "view"]
2996
+ }],
2997
+ /**
2998
+ * Mask Position
2999
+ * @see https://tailwindcss.com/docs/mask-position
3000
+ */
3001
+ "mask-position": [{
3002
+ mask: ne()
3003
+ }],
3004
+ /**
3005
+ * Mask Repeat
3006
+ * @see https://tailwindcss.com/docs/mask-repeat
3007
+ */
3008
+ "mask-repeat": [{
3009
+ mask: _()
3010
+ }],
3011
+ /**
3012
+ * Mask Size
3013
+ * @see https://tailwindcss.com/docs/mask-size
3014
+ */
3015
+ "mask-size": [{
3016
+ mask: n()
3017
+ }],
3018
+ /**
3019
+ * Mask Type
3020
+ * @see https://tailwindcss.com/docs/mask-type
3021
+ */
3022
+ "mask-type": [{
3023
+ "mask-type": ["alpha", "luminance"]
3024
+ }],
3025
+ /**
3026
+ * Mask Image
3027
+ * @see https://tailwindcss.com/docs/mask-image
3028
+ */
3029
+ "mask-image": [{
3030
+ mask: ["none", O, T]
3031
+ }],
3032
+ // ---------------
3033
+ // --- Filters ---
3034
+ // ---------------
3035
+ /**
3036
+ * Filter
3037
+ * @see https://tailwindcss.com/docs/filter
3038
+ */
3039
+ filter: [{
3040
+ filter: [
3041
+ // Deprecated since Tailwind CSS v3.0.0
3042
+ "",
3043
+ "none",
3044
+ O,
3045
+ T
3046
+ ]
3047
+ }],
3048
+ /**
3049
+ * Blur
3050
+ * @see https://tailwindcss.com/docs/blur
3051
+ */
3052
+ blur: [{
3053
+ blur: g()
3054
+ }],
3055
+ /**
3056
+ * Brightness
3057
+ * @see https://tailwindcss.com/docs/brightness
3058
+ */
3059
+ brightness: [{
3060
+ brightness: [J, O, T]
3061
+ }],
3062
+ /**
3063
+ * Contrast
3064
+ * @see https://tailwindcss.com/docs/contrast
3065
+ */
3066
+ contrast: [{
3067
+ contrast: [J, O, T]
3068
+ }],
3069
+ /**
3070
+ * Drop Shadow
3071
+ * @see https://tailwindcss.com/docs/drop-shadow
3072
+ */
3073
+ "drop-shadow": [{
3074
+ "drop-shadow": [
3075
+ // Deprecated since Tailwind CSS v4.0.0
3076
+ "",
3077
+ "none",
3078
+ h,
3079
+ Ue,
3080
+ We
3081
+ ]
3082
+ }],
3083
+ /**
3084
+ * Drop Shadow Color
3085
+ * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color
3086
+ */
3087
+ "drop-shadow-color": [{
3088
+ "drop-shadow": k()
3089
+ }],
3090
+ /**
3091
+ * Grayscale
3092
+ * @see https://tailwindcss.com/docs/grayscale
3093
+ */
3094
+ grayscale: [{
3095
+ grayscale: ["", J, O, T]
3096
+ }],
3097
+ /**
3098
+ * Hue Rotate
3099
+ * @see https://tailwindcss.com/docs/hue-rotate
3100
+ */
3101
+ "hue-rotate": [{
3102
+ "hue-rotate": [J, O, T]
3103
+ }],
3104
+ /**
3105
+ * Invert
3106
+ * @see https://tailwindcss.com/docs/invert
3107
+ */
3108
+ invert: [{
3109
+ invert: ["", J, O, T]
3110
+ }],
3111
+ /**
3112
+ * Saturate
3113
+ * @see https://tailwindcss.com/docs/saturate
3114
+ */
3115
+ saturate: [{
3116
+ saturate: [J, O, T]
3117
+ }],
3118
+ /**
3119
+ * Sepia
3120
+ * @see https://tailwindcss.com/docs/sepia
3121
+ */
3122
+ sepia: [{
3123
+ sepia: ["", J, O, T]
3124
+ }],
3125
+ /**
3126
+ * Backdrop Filter
3127
+ * @see https://tailwindcss.com/docs/backdrop-filter
3128
+ */
3129
+ "backdrop-filter": [{
3130
+ "backdrop-filter": [
3131
+ // Deprecated since Tailwind CSS v3.0.0
3132
+ "",
3133
+ "none",
3134
+ O,
3135
+ T
3136
+ ]
3137
+ }],
3138
+ /**
3139
+ * Backdrop Blur
3140
+ * @see https://tailwindcss.com/docs/backdrop-blur
3141
+ */
3142
+ "backdrop-blur": [{
3143
+ "backdrop-blur": g()
3144
+ }],
3145
+ /**
3146
+ * Backdrop Brightness
3147
+ * @see https://tailwindcss.com/docs/backdrop-brightness
3148
+ */
3149
+ "backdrop-brightness": [{
3150
+ "backdrop-brightness": [J, O, T]
3151
+ }],
3152
+ /**
3153
+ * Backdrop Contrast
3154
+ * @see https://tailwindcss.com/docs/backdrop-contrast
3155
+ */
3156
+ "backdrop-contrast": [{
3157
+ "backdrop-contrast": [J, O, T]
3158
+ }],
3159
+ /**
3160
+ * Backdrop Grayscale
3161
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
3162
+ */
3163
+ "backdrop-grayscale": [{
3164
+ "backdrop-grayscale": ["", J, O, T]
3165
+ }],
3166
+ /**
3167
+ * Backdrop Hue Rotate
3168
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
3169
+ */
3170
+ "backdrop-hue-rotate": [{
3171
+ "backdrop-hue-rotate": [J, O, T]
3172
+ }],
3173
+ /**
3174
+ * Backdrop Invert
3175
+ * @see https://tailwindcss.com/docs/backdrop-invert
3176
+ */
3177
+ "backdrop-invert": [{
3178
+ "backdrop-invert": ["", J, O, T]
3179
+ }],
3180
+ /**
3181
+ * Backdrop Opacity
3182
+ * @see https://tailwindcss.com/docs/backdrop-opacity
3183
+ */
3184
+ "backdrop-opacity": [{
3185
+ "backdrop-opacity": [J, O, T]
3186
+ }],
3187
+ /**
3188
+ * Backdrop Saturate
3189
+ * @see https://tailwindcss.com/docs/backdrop-saturate
3190
+ */
3191
+ "backdrop-saturate": [{
3192
+ "backdrop-saturate": [J, O, T]
3193
+ }],
3194
+ /**
3195
+ * Backdrop Sepia
3196
+ * @see https://tailwindcss.com/docs/backdrop-sepia
3197
+ */
3198
+ "backdrop-sepia": [{
3199
+ "backdrop-sepia": ["", J, O, T]
3200
+ }],
3201
+ // --------------
3202
+ // --- Tables ---
3203
+ // --------------
3204
+ /**
3205
+ * Border Collapse
3206
+ * @see https://tailwindcss.com/docs/border-collapse
3207
+ */
3208
+ "border-collapse": [{
3209
+ border: ["collapse", "separate"]
3210
+ }],
3211
+ /**
3212
+ * Border Spacing
3213
+ * @see https://tailwindcss.com/docs/border-spacing
3214
+ */
3215
+ "border-spacing": [{
3216
+ "border-spacing": M()
3217
+ }],
3218
+ /**
3219
+ * Border Spacing X
3220
+ * @see https://tailwindcss.com/docs/border-spacing
3221
+ */
3222
+ "border-spacing-x": [{
3223
+ "border-spacing-x": M()
3224
+ }],
3225
+ /**
3226
+ * Border Spacing Y
3227
+ * @see https://tailwindcss.com/docs/border-spacing
3228
+ */
3229
+ "border-spacing-y": [{
3230
+ "border-spacing-y": M()
3231
+ }],
3232
+ /**
3233
+ * Table Layout
3234
+ * @see https://tailwindcss.com/docs/table-layout
3235
+ */
3236
+ "table-layout": [{
3237
+ table: ["auto", "fixed"]
3238
+ }],
3239
+ /**
3240
+ * Caption Side
3241
+ * @see https://tailwindcss.com/docs/caption-side
3242
+ */
3243
+ caption: [{
3244
+ caption: ["top", "bottom"]
3245
+ }],
3246
+ // ---------------------------------
3247
+ // --- Transitions and Animation ---
3248
+ // ---------------------------------
3249
+ /**
3250
+ * Transition Property
3251
+ * @see https://tailwindcss.com/docs/transition-property
3252
+ */
3253
+ transition: [{
3254
+ transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", O, T]
3255
+ }],
3256
+ /**
3257
+ * Transition Behavior
3258
+ * @see https://tailwindcss.com/docs/transition-behavior
3259
+ */
3260
+ "transition-behavior": [{
3261
+ transition: ["normal", "discrete"]
3262
+ }],
3263
+ /**
3264
+ * Transition Duration
3265
+ * @see https://tailwindcss.com/docs/transition-duration
3266
+ */
3267
+ duration: [{
3268
+ duration: [J, "initial", O, T]
3269
+ }],
3270
+ /**
3271
+ * Transition Timing Function
3272
+ * @see https://tailwindcss.com/docs/transition-timing-function
3273
+ */
3274
+ ease: [{
3275
+ ease: ["linear", "initial", p, O, T]
3276
+ }],
3277
+ /**
3278
+ * Transition Delay
3279
+ * @see https://tailwindcss.com/docs/transition-delay
3280
+ */
3281
+ delay: [{
3282
+ delay: [J, O, T]
3283
+ }],
3284
+ /**
3285
+ * Animation
3286
+ * @see https://tailwindcss.com/docs/animation
3287
+ */
3288
+ animate: [{
3289
+ animate: ["none", m, O, T]
3290
+ }],
3291
+ // ------------------
3292
+ // --- Transforms ---
3293
+ // ------------------
3294
+ /**
3295
+ * Backface Visibility
3296
+ * @see https://tailwindcss.com/docs/backface-visibility
3297
+ */
3298
+ backface: [{
3299
+ backface: ["hidden", "visible"]
3300
+ }],
3301
+ /**
3302
+ * Perspective
3303
+ * @see https://tailwindcss.com/docs/perspective
3304
+ */
3305
+ perspective: [{
3306
+ perspective: [C, O, T]
3307
+ }],
3308
+ /**
3309
+ * Perspective Origin
3310
+ * @see https://tailwindcss.com/docs/perspective-origin
3311
+ */
3312
+ "perspective-origin": [{
3313
+ "perspective-origin": V()
3314
+ }],
3315
+ /**
3316
+ * Rotate
3317
+ * @see https://tailwindcss.com/docs/rotate
3318
+ */
3319
+ rotate: [{
3320
+ rotate: y()
3321
+ }],
3322
+ /**
3323
+ * Rotate X
3324
+ * @see https://tailwindcss.com/docs/rotate
3325
+ */
3326
+ "rotate-x": [{
3327
+ "rotate-x": y()
3328
+ }],
3329
+ /**
3330
+ * Rotate Y
3331
+ * @see https://tailwindcss.com/docs/rotate
3332
+ */
3333
+ "rotate-y": [{
3334
+ "rotate-y": y()
3335
+ }],
3336
+ /**
3337
+ * Rotate Z
3338
+ * @see https://tailwindcss.com/docs/rotate
3339
+ */
3340
+ "rotate-z": [{
3341
+ "rotate-z": y()
3342
+ }],
3343
+ /**
3344
+ * Scale
3345
+ * @see https://tailwindcss.com/docs/scale
3346
+ */
3347
+ scale: [{
3348
+ scale: B()
3349
+ }],
3350
+ /**
3351
+ * Scale X
3352
+ * @see https://tailwindcss.com/docs/scale
3353
+ */
3354
+ "scale-x": [{
3355
+ "scale-x": B()
3356
+ }],
3357
+ /**
3358
+ * Scale Y
3359
+ * @see https://tailwindcss.com/docs/scale
3360
+ */
3361
+ "scale-y": [{
3362
+ "scale-y": B()
3363
+ }],
3364
+ /**
3365
+ * Scale Z
3366
+ * @see https://tailwindcss.com/docs/scale
3367
+ */
3368
+ "scale-z": [{
3369
+ "scale-z": B()
3370
+ }],
3371
+ /**
3372
+ * Scale 3D
3373
+ * @see https://tailwindcss.com/docs/scale
3374
+ */
3375
+ "scale-3d": ["scale-3d"],
3376
+ /**
3377
+ * Skew
3378
+ * @see https://tailwindcss.com/docs/skew
3379
+ */
3380
+ skew: [{
3381
+ skew: j()
3382
+ }],
3383
+ /**
3384
+ * Skew X
3385
+ * @see https://tailwindcss.com/docs/skew
3386
+ */
3387
+ "skew-x": [{
3388
+ "skew-x": j()
3389
+ }],
3390
+ /**
3391
+ * Skew Y
3392
+ * @see https://tailwindcss.com/docs/skew
3393
+ */
3394
+ "skew-y": [{
3395
+ "skew-y": j()
3396
+ }],
3397
+ /**
3398
+ * Transform
3399
+ * @see https://tailwindcss.com/docs/transform
3400
+ */
3401
+ transform: [{
3402
+ transform: [O, T, "", "none", "gpu", "cpu"]
3403
+ }],
3404
+ /**
3405
+ * Transform Origin
3406
+ * @see https://tailwindcss.com/docs/transform-origin
3407
+ */
3408
+ "transform-origin": [{
3409
+ origin: V()
3410
+ }],
3411
+ /**
3412
+ * Transform Style
3413
+ * @see https://tailwindcss.com/docs/transform-style
3414
+ */
3415
+ "transform-style": [{
3416
+ transform: ["3d", "flat"]
3417
+ }],
3418
+ /**
3419
+ * Translate
3420
+ * @see https://tailwindcss.com/docs/translate
3421
+ */
3422
+ translate: [{
3423
+ translate: G()
3424
+ }],
3425
+ /**
3426
+ * Translate X
3427
+ * @see https://tailwindcss.com/docs/translate
3428
+ */
3429
+ "translate-x": [{
3430
+ "translate-x": G()
3431
+ }],
3432
+ /**
3433
+ * Translate Y
3434
+ * @see https://tailwindcss.com/docs/translate
3435
+ */
3436
+ "translate-y": [{
3437
+ "translate-y": G()
3438
+ }],
3439
+ /**
3440
+ * Translate Z
3441
+ * @see https://tailwindcss.com/docs/translate
3442
+ */
3443
+ "translate-z": [{
3444
+ "translate-z": G()
3445
+ }],
3446
+ /**
3447
+ * Translate None
3448
+ * @see https://tailwindcss.com/docs/translate
3449
+ */
3450
+ "translate-none": ["translate-none"],
3451
+ // ---------------------
3452
+ // --- Interactivity ---
3453
+ // ---------------------
3454
+ /**
3455
+ * Accent Color
3456
+ * @see https://tailwindcss.com/docs/accent-color
3457
+ */
3458
+ accent: [{
3459
+ accent: k()
3460
+ }],
3461
+ /**
3462
+ * Appearance
3463
+ * @see https://tailwindcss.com/docs/appearance
3464
+ */
3465
+ appearance: [{
3466
+ appearance: ["none", "auto"]
3467
+ }],
3468
+ /**
3469
+ * Caret Color
3470
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
3471
+ */
3472
+ "caret-color": [{
3473
+ caret: k()
3474
+ }],
3475
+ /**
3476
+ * Color Scheme
3477
+ * @see https://tailwindcss.com/docs/color-scheme
3478
+ */
3479
+ "color-scheme": [{
3480
+ scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"]
3481
+ }],
3482
+ /**
3483
+ * Cursor
3484
+ * @see https://tailwindcss.com/docs/cursor
3485
+ */
3486
+ cursor: [{
3487
+ cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", O, T]
3488
+ }],
3489
+ /**
3490
+ * Field Sizing
3491
+ * @see https://tailwindcss.com/docs/field-sizing
3492
+ */
3493
+ "field-sizing": [{
3494
+ "field-sizing": ["fixed", "content"]
3495
+ }],
3496
+ /**
3497
+ * Pointer Events
3498
+ * @see https://tailwindcss.com/docs/pointer-events
3499
+ */
3500
+ "pointer-events": [{
3501
+ "pointer-events": ["auto", "none"]
3502
+ }],
3503
+ /**
3504
+ * Resize
3505
+ * @see https://tailwindcss.com/docs/resize
3506
+ */
3507
+ resize: [{
3508
+ resize: ["none", "", "y", "x"]
3509
+ }],
3510
+ /**
3511
+ * Scroll Behavior
3512
+ * @see https://tailwindcss.com/docs/scroll-behavior
3513
+ */
3514
+ "scroll-behavior": [{
3515
+ scroll: ["auto", "smooth"]
3516
+ }],
3517
+ /**
3518
+ * Scroll Margin
3519
+ * @see https://tailwindcss.com/docs/scroll-margin
3520
+ */
3521
+ "scroll-m": [{
3522
+ "scroll-m": M()
3523
+ }],
3524
+ /**
3525
+ * Scroll Margin X
3526
+ * @see https://tailwindcss.com/docs/scroll-margin
3527
+ */
3528
+ "scroll-mx": [{
3529
+ "scroll-mx": M()
3530
+ }],
3531
+ /**
3532
+ * Scroll Margin Y
3533
+ * @see https://tailwindcss.com/docs/scroll-margin
3534
+ */
3535
+ "scroll-my": [{
3536
+ "scroll-my": M()
3537
+ }],
3538
+ /**
3539
+ * Scroll Margin Start
3540
+ * @see https://tailwindcss.com/docs/scroll-margin
3541
+ */
3542
+ "scroll-ms": [{
3543
+ "scroll-ms": M()
3544
+ }],
3545
+ /**
3546
+ * Scroll Margin End
3547
+ * @see https://tailwindcss.com/docs/scroll-margin
3548
+ */
3549
+ "scroll-me": [{
3550
+ "scroll-me": M()
3551
+ }],
3552
+ /**
3553
+ * Scroll Margin Top
3554
+ * @see https://tailwindcss.com/docs/scroll-margin
3555
+ */
3556
+ "scroll-mt": [{
3557
+ "scroll-mt": M()
3558
+ }],
3559
+ /**
3560
+ * Scroll Margin Right
3561
+ * @see https://tailwindcss.com/docs/scroll-margin
3562
+ */
3563
+ "scroll-mr": [{
3564
+ "scroll-mr": M()
3565
+ }],
3566
+ /**
3567
+ * Scroll Margin Bottom
3568
+ * @see https://tailwindcss.com/docs/scroll-margin
3569
+ */
3570
+ "scroll-mb": [{
3571
+ "scroll-mb": M()
3572
+ }],
3573
+ /**
3574
+ * Scroll Margin Left
3575
+ * @see https://tailwindcss.com/docs/scroll-margin
3576
+ */
3577
+ "scroll-ml": [{
3578
+ "scroll-ml": M()
3579
+ }],
3580
+ /**
3581
+ * Scroll Padding
3582
+ * @see https://tailwindcss.com/docs/scroll-padding
3583
+ */
3584
+ "scroll-p": [{
3585
+ "scroll-p": M()
3586
+ }],
3587
+ /**
3588
+ * Scroll Padding X
3589
+ * @see https://tailwindcss.com/docs/scroll-padding
3590
+ */
3591
+ "scroll-px": [{
3592
+ "scroll-px": M()
3593
+ }],
3594
+ /**
3595
+ * Scroll Padding Y
3596
+ * @see https://tailwindcss.com/docs/scroll-padding
3597
+ */
3598
+ "scroll-py": [{
3599
+ "scroll-py": M()
3600
+ }],
3601
+ /**
3602
+ * Scroll Padding Start
3603
+ * @see https://tailwindcss.com/docs/scroll-padding
3604
+ */
3605
+ "scroll-ps": [{
3606
+ "scroll-ps": M()
3607
+ }],
3608
+ /**
3609
+ * Scroll Padding End
3610
+ * @see https://tailwindcss.com/docs/scroll-padding
3611
+ */
3612
+ "scroll-pe": [{
3613
+ "scroll-pe": M()
3614
+ }],
3615
+ /**
3616
+ * Scroll Padding Top
3617
+ * @see https://tailwindcss.com/docs/scroll-padding
3618
+ */
3619
+ "scroll-pt": [{
3620
+ "scroll-pt": M()
3621
+ }],
3622
+ /**
3623
+ * Scroll Padding Right
3624
+ * @see https://tailwindcss.com/docs/scroll-padding
3625
+ */
3626
+ "scroll-pr": [{
3627
+ "scroll-pr": M()
3628
+ }],
3629
+ /**
3630
+ * Scroll Padding Bottom
3631
+ * @see https://tailwindcss.com/docs/scroll-padding
3632
+ */
3633
+ "scroll-pb": [{
3634
+ "scroll-pb": M()
3635
+ }],
3636
+ /**
3637
+ * Scroll Padding Left
3638
+ * @see https://tailwindcss.com/docs/scroll-padding
3639
+ */
3640
+ "scroll-pl": [{
3641
+ "scroll-pl": M()
3642
+ }],
3643
+ /**
3644
+ * Scroll Snap Align
3645
+ * @see https://tailwindcss.com/docs/scroll-snap-align
3646
+ */
3647
+ "snap-align": [{
3648
+ snap: ["start", "end", "center", "align-none"]
3649
+ }],
3650
+ /**
3651
+ * Scroll Snap Stop
3652
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
3653
+ */
3654
+ "snap-stop": [{
3655
+ snap: ["normal", "always"]
3656
+ }],
3657
+ /**
3658
+ * Scroll Snap Type
3659
+ * @see https://tailwindcss.com/docs/scroll-snap-type
3660
+ */
3661
+ "snap-type": [{
3662
+ snap: ["none", "x", "y", "both"]
3663
+ }],
3664
+ /**
3665
+ * Scroll Snap Type Strictness
3666
+ * @see https://tailwindcss.com/docs/scroll-snap-type
3667
+ */
3668
+ "snap-strictness": [{
3669
+ snap: ["mandatory", "proximity"]
3670
+ }],
3671
+ /**
3672
+ * Touch Action
3673
+ * @see https://tailwindcss.com/docs/touch-action
3674
+ */
3675
+ touch: [{
3676
+ touch: ["auto", "none", "manipulation"]
3677
+ }],
3678
+ /**
3679
+ * Touch Action X
3680
+ * @see https://tailwindcss.com/docs/touch-action
3681
+ */
3682
+ "touch-x": [{
3683
+ "touch-pan": ["x", "left", "right"]
3684
+ }],
3685
+ /**
3686
+ * Touch Action Y
3687
+ * @see https://tailwindcss.com/docs/touch-action
3688
+ */
3689
+ "touch-y": [{
3690
+ "touch-pan": ["y", "up", "down"]
3691
+ }],
3692
+ /**
3693
+ * Touch Action Pinch Zoom
3694
+ * @see https://tailwindcss.com/docs/touch-action
3695
+ */
3696
+ "touch-pz": ["touch-pinch-zoom"],
3697
+ /**
3698
+ * User Select
3699
+ * @see https://tailwindcss.com/docs/user-select
3700
+ */
3701
+ select: [{
3702
+ select: ["none", "text", "all", "auto"]
3703
+ }],
3704
+ /**
3705
+ * Will Change
3706
+ * @see https://tailwindcss.com/docs/will-change
3707
+ */
3708
+ "will-change": [{
3709
+ "will-change": ["auto", "scroll", "contents", "transform", O, T]
3710
+ }],
3711
+ // -----------
3712
+ // --- SVG ---
3713
+ // -----------
3714
+ /**
3715
+ * Fill
3716
+ * @see https://tailwindcss.com/docs/fill
3717
+ */
3718
+ fill: [{
3719
+ fill: ["none", ...k()]
3720
+ }],
3721
+ /**
3722
+ * Stroke Width
3723
+ * @see https://tailwindcss.com/docs/stroke-width
3724
+ */
3725
+ "stroke-w": [{
3726
+ stroke: [J, je, Me, Qe]
3727
+ }],
3728
+ /**
3729
+ * Stroke
3730
+ * @see https://tailwindcss.com/docs/stroke
3731
+ */
3732
+ stroke: [{
3733
+ stroke: ["none", ...k()]
3734
+ }],
3735
+ // ---------------------
3736
+ // --- Accessibility ---
3737
+ // ---------------------
3738
+ /**
3739
+ * Forced Color Adjust
3740
+ * @see https://tailwindcss.com/docs/forced-color-adjust
3741
+ */
3742
+ "forced-color-adjust": [{
3743
+ "forced-color-adjust": ["auto", "none"]
3744
+ }]
3745
+ },
3746
+ conflictingClassGroups: {
3747
+ overflow: ["overflow-x", "overflow-y"],
3748
+ overscroll: ["overscroll-x", "overscroll-y"],
3749
+ inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
3750
+ "inset-x": ["right", "left"],
3751
+ "inset-y": ["top", "bottom"],
3752
+ flex: ["basis", "grow", "shrink"],
3753
+ gap: ["gap-x", "gap-y"],
3754
+ p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
3755
+ px: ["pr", "pl"],
3756
+ py: ["pt", "pb"],
3757
+ m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
3758
+ mx: ["mr", "ml"],
3759
+ my: ["mt", "mb"],
3760
+ size: ["w", "h"],
3761
+ "font-size": ["leading"],
3762
+ "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
3763
+ "fvn-ordinal": ["fvn-normal"],
3764
+ "fvn-slashed-zero": ["fvn-normal"],
3765
+ "fvn-figure": ["fvn-normal"],
3766
+ "fvn-spacing": ["fvn-normal"],
3767
+ "fvn-fraction": ["fvn-normal"],
3768
+ "line-clamp": ["display", "overflow"],
3769
+ rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"],
3770
+ "rounded-s": ["rounded-ss", "rounded-es"],
3771
+ "rounded-e": ["rounded-se", "rounded-ee"],
3772
+ "rounded-t": ["rounded-tl", "rounded-tr"],
3773
+ "rounded-r": ["rounded-tr", "rounded-br"],
3774
+ "rounded-b": ["rounded-br", "rounded-bl"],
3775
+ "rounded-l": ["rounded-tl", "rounded-bl"],
3776
+ "border-spacing": ["border-spacing-x", "border-spacing-y"],
3777
+ "border-w": ["border-w-x", "border-w-y", "border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
3778
+ "border-w-x": ["border-w-r", "border-w-l"],
3779
+ "border-w-y": ["border-w-t", "border-w-b"],
3780
+ "border-color": ["border-color-x", "border-color-y", "border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
3781
+ "border-color-x": ["border-color-r", "border-color-l"],
3782
+ "border-color-y": ["border-color-t", "border-color-b"],
3783
+ translate: ["translate-x", "translate-y", "translate-none"],
3784
+ "translate-none": ["translate", "translate-x", "translate-y", "translate-z"],
3785
+ "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
3786
+ "scroll-mx": ["scroll-mr", "scroll-ml"],
3787
+ "scroll-my": ["scroll-mt", "scroll-mb"],
3788
+ "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
3789
+ "scroll-px": ["scroll-pr", "scroll-pl"],
3790
+ "scroll-py": ["scroll-pt", "scroll-pb"],
3791
+ touch: ["touch-x", "touch-y", "touch-pz"],
3792
+ "touch-x": ["touch"],
3793
+ "touch-y": ["touch"],
3794
+ "touch-pz": ["touch"]
3795
+ },
3796
+ conflictingClassGroupModifiers: {
3797
+ "font-size": ["leading"]
3798
+ },
3799
+ orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]
3800
+ };
3801
+ }, De = /* @__PURE__ */ wr($r), Wr = ({ panel: e, isLastFlexiblePanel: t, measuredPixelSize: r, measuredPercentageSize: o, containerAxisSize: i, containerLabel: s }) => {
3802
+ const a = e?.size, l = typeof a == "number" && Number.isFinite(a) ? `${a.toFixed(3)}px` : "-", c = e?.percentageSize !== void 0 ? `${e.percentageSize.toFixed(3)}%` : "-", S = Number.isFinite(r) ? `${r.toFixed(3)}px` : "-", b = Number.isFinite(o) ? `${o.toFixed(3)}%` : "-", d = Number.isFinite(i) ? `${i.toFixed(3)}px` : "-", u = `${l} / ${c}`, h = `${S} / ${b}`, w = `${e?.sizeUnit === "pixels" ? "Fixed" : "Flexible"}${t ? " (Grow)" : ""}`, C = [w, `${s}: ${d}`, `size (state): ${u}`, `size (measured): ${h}`];
3803
+ return {
3804
+ stateValueDisplay: u,
3805
+ measuredValueDisplay: h,
3806
+ containerDisplay: d,
3807
+ headlineLabel: w,
3808
+ titleText: C.join(`
3809
+ `)
3810
+ };
3811
+ }, Ur = nt(({ panel: e, isLastFlexiblePanel: t, measuredPixelSize: r, measuredPercentageSize: o, containerAxisSize: i, direction: s }) => {
3812
+ const a = s === "horizontal" ? "container width" : "container height", { stateValueDisplay: l, measuredValueDisplay: c, containerDisplay: S, headlineLabel: b, titleText: d } = de(
3813
+ () => Wr({
3814
+ panel: e,
3815
+ isLastFlexiblePanel: t,
3816
+ measuredPixelSize: r,
3817
+ measuredPercentageSize: o,
3818
+ containerAxisSize: i,
3819
+ containerLabel: a
3820
+ }),
3821
+ [e, t, r, o, i, a]
3822
+ ), u = {
3823
+ position: "absolute",
3824
+ top: "2px",
3825
+ right: "4px",
3826
+ backgroundColor: "rgba(30, 41, 59, 0.6)",
3827
+ color: "#fff",
3828
+ padding: "4px 8px",
3829
+ borderRadius: "6px",
3830
+ fontSize: "11px",
3831
+ fontFamily: "monospace",
3832
+ pointerEvents: "auto",
3833
+ zIndex: 10,
3834
+ boxShadow: "0 2px 4px rgba(0,0,0,0.3)",
3835
+ border: "1px solid rgba(255,255,255,0.1)",
3836
+ maxWidth: "calc(100% - 12px)",
3837
+ minWidth: "60px",
3838
+ width: "fit-content",
3839
+ overflow: "hidden"
3840
+ }, h = {
3841
+ display: "flex",
3842
+ flexDirection: "column",
3843
+ gap: "1px",
3844
+ minWidth: "0",
3845
+ width: "100%"
3846
+ }, w = {
3847
+ display: "flex",
3848
+ justifyContent: "flex-start",
3849
+ alignItems: "center",
3850
+ gap: "6px",
3851
+ fontSize: "10px",
3852
+ color: "#ccc",
3853
+ whiteSpace: "nowrap",
3854
+ overflow: "hidden",
3855
+ textOverflow: "ellipsis",
3856
+ minWidth: "0",
3857
+ width: "100%"
3858
+ }, C = {
3859
+ display: "flex",
3860
+ justifyContent: "space-between",
3861
+ alignItems: "center",
3862
+ gap: "6px",
3863
+ whiteSpace: "nowrap",
3864
+ overflow: "hidden",
3865
+ textOverflow: "ellipsis",
3866
+ minWidth: "0",
3867
+ width: "100%"
3868
+ }, v = {
3869
+ marginLeft: "auto",
3870
+ fontVariantNumeric: "tabular-nums",
3871
+ whiteSpace: "nowrap"
3872
+ };
3873
+ return /* @__PURE__ */ L.jsx("div", { style: u, title: d, children: /* @__PURE__ */ L.jsxs("div", { style: h, children: [
3874
+ /* @__PURE__ */ L.jsx("div", { style: w, children: /* @__PURE__ */ L.jsx("span", { children: b }) }),
3875
+ /* @__PURE__ */ L.jsxs("div", { style: C, children: [
3876
+ /* @__PURE__ */ L.jsx("span", { children: a }),
3877
+ /* @__PURE__ */ L.jsx("span", { style: v, children: S })
3878
+ ] }),
3879
+ /* @__PURE__ */ L.jsxs("div", { style: C, children: [
3880
+ /* @__PURE__ */ L.jsx("span", { children: "size (state)" }),
3881
+ /* @__PURE__ */ L.jsx("span", { style: v, children: l })
3882
+ ] }),
3883
+ /* @__PURE__ */ L.jsxs("div", { style: C, children: [
3884
+ /* @__PURE__ */ L.jsx("span", { children: "size (measured)" }),
3885
+ /* @__PURE__ */ L.jsx("span", { style: v, children: c })
3886
+ ] })
3887
+ ] }) });
3888
+ }), on = nt(({ id: e, defaultSize: t = { value: 50, unit: "percentage" }, minSize: r, maxSize: o, className: i, style: s, children: a, order: l = 0, collapsible: c = !1, defaultCollapsed: S = !1, pixelAdjustPriority: b }) => {
3889
+ const { direction: d, registerPanel: u, unregisterPanel: h, getPanel: w, showDebugInfo: C, panels: v, isContainerReady: p, reportPanelMeasurement: m, containerSize: R } = it(), F = pe(null), V = pe(e || rr()), I = w(V.current), ee = !!I?.collapsed, M = (I?.size ?? 0) <= 0, $ = ee || M, [W, X] = ze(() => {
3890
+ const g = Le(t);
3891
+ return g?.unit === "pixels" ? g.value : I?.size !== void 0 ? I.size : 0;
3892
+ }), [te, Y] = ze(() => {
3893
+ const g = Le(t);
3894
+ return g?.unit === "percentage" ? g.value : I?.percentageSize !== void 0 ? I.percentageSize : 0;
3895
+ }), Z = pe(te);
3896
+ Z.current = te;
3897
+ const H = pe(W);
3898
+ H.current = W;
3899
+ const A = fe((g) => {
3900
+ if (!Number.isFinite(g))
3901
+ return;
3902
+ const y = g < 0 ? 0 : g;
3903
+ H.current !== y && (H.current = y, console.debug("[resize-panels] commit pixel", { panelId: V.current, pixel: y }), X(y));
3904
+ }, []), D = fe((g) => {
3905
+ if (!Number.isFinite(g))
3906
+ return;
3907
+ const y = g < 0 ? 0 : g;
3908
+ Z.current !== y && (Z.current = y, console.debug("[resize-panels] commit percentage", { panelId: V.current, percentage: y }), Y(y));
3909
+ }, []);
3910
+ ue(() => {
3911
+ e || console.warn("Panel component should have an explicit 'id' prop to avoid hydration issues. Auto-generated ID may cause SSR/client mismatch.");
3912
+ }, [e]), ue(() => {
3913
+ if (!p)
3914
+ return;
3915
+ const g = Le(t), y = g?.unit === "pixels";
3916
+ let B = 0;
3917
+ if (y) {
3918
+ let f = g.value;
3919
+ r && typeof r == "object" && r.unit === "pixels" && (f = Math.max(f, r.value)), o && typeof o == "object" && o.unit === "pixels" && (f = Math.min(f, o.value)), B = f;
3920
+ }
3921
+ const j = y ? void 0 : g?.value, G = S, re = c && G && y ? B : void 0, K = c ? j : void 0, Q = {
3922
+ id: V.current,
3923
+ size: G ? 0 : B,
3924
+ percentageSize: G ? 0 : j,
3925
+ sizeUnit: g?.unit || "percentage",
3926
+ originalPixelSize: y ? B : void 0,
3927
+ minSize: r,
3928
+ maxSize: o,
3929
+ collapsible: c,
3930
+ collapsed: G,
3931
+ sizeBeforeCollapse: re,
3932
+ percentageSizeBeforeCollapse: K,
3933
+ pixelAdjustPriority: b
3934
+ };
3935
+ return u(Q), () => {
3936
+ h(V.current), m(V.current, null);
3937
+ };
3938
+ }, [t, r, o, u, h, c, S, b, m, p]);
3939
+ const k = I?.size ?? 0;
3940
+ ue(() => {
3941
+ const g = F.current;
3942
+ if (!g) return;
3943
+ const y = () => {
3944
+ if (!I)
3945
+ return;
3946
+ const K = g.parentElement;
3947
+ if (!K) return;
3948
+ const { width: Q, height: se } = g.getBoundingClientRect(), { inner: f } = we(K, "horizontal"), { inner: q } = we(K, "vertical"), ae = d === "horizontal" ? Q : se, ie = d === "horizontal" ? f : q, ce = Ke(ie);
3949
+ if ($) {
3950
+ H.current !== 0 && (H.current = 0, X(0)), Z.current !== 0 && (Z.current = 0, Y(0));
3951
+ return;
3952
+ }
3953
+ const be = I?.size ?? 0, xe = Math.max(2, ce * 0.5);
3954
+ if (!$ && be > ce && ae < xe) {
3955
+ console.debug("[resize-panels] skip noisy measurement", {
3956
+ panelId: V.current,
3957
+ expectedPanelSize: be,
3958
+ measured: ae,
3959
+ noiseThreshold: xe
3960
+ });
3961
+ return;
3962
+ }
3963
+ if (ae > 0) {
3964
+ if (A(ae), ie > 0) {
3965
+ const Se = ae / ie * 100;
3966
+ D(Se);
3967
+ }
3968
+ } else if (I?.size !== void 0 && A(I.size), I?.percentageSize !== void 0) {
3969
+ const Se = I.percentageSize;
3970
+ D(Se);
3971
+ } else if (I?.sizeUnit === "pixels" && I?.size !== void 0 && ie > 0) {
3972
+ const Se = I.size / ie * 100;
3973
+ D(Se);
3974
+ }
3975
+ }, B = new ResizeObserver(() => {
3976
+ y();
3977
+ });
3978
+ B.observe(g), y();
3979
+ const j = [], G = new MutationObserver(() => {
3980
+ (() => {
3981
+ if (!F.current) return !1;
3982
+ const Q = F.current.getBoundingClientRect();
3983
+ return (d === "horizontal" ? Q.width : Q.height) !== H.current;
3984
+ })() && setTimeout(y, 0);
3985
+ }), re = g.parentElement;
3986
+ return re && G.observe(re, {
3987
+ childList: !0,
3988
+ subtree: !0,
3989
+ attributes: !0,
3990
+ attributeFilter: ["style", "class"]
3991
+ }), () => {
3992
+ B.disconnect(), G.disconnect();
3993
+ for (const K of j)
3994
+ clearTimeout(K);
3995
+ };
3996
+ }, [d, I, $, A, D]);
3997
+ const ne = I?.size, _ = I?.percentageSize, n = I?.sizeUnit;
3998
+ ue(() => {
3999
+ if (I) {
4000
+ if ($) {
4001
+ H.current !== 0 && (H.current = 0, X(0)), Z.current !== 0 && (Z.current = 0, Y(0));
4002
+ return;
4003
+ }
4004
+ if (ne !== void 0 && A(ne), _ !== void 0)
4005
+ D(_);
4006
+ else if (n === "pixels" && ne !== void 0) {
4007
+ const g = F.current, y = g?.parentElement;
4008
+ if (g && y) {
4009
+ const { width: B, height: j } = g.getBoundingClientRect(), G = y.clientWidth, re = y.clientHeight, K = d === "horizontal" ? B : j, Q = d === "horizontal" ? G : re;
4010
+ if (K > 0 && Q > 0) {
4011
+ const se = K / Q * 100;
4012
+ D(se);
4013
+ }
4014
+ }
4015
+ }
4016
+ }
4017
+ }, [ne, _, n, d, $, A, D, I]), ue(() => {
4018
+ m(V.current, {
4019
+ pixelSize: W,
4020
+ percentageSize: te
4021
+ });
4022
+ }, [m, W, te]);
4023
+ const z = () => $ ? "0px" : I?.originalPixelSize !== void 0 ? `${k}px` : I?.percentageSize !== void 0 ? `${I.percentageSize}%` : `${k}px`, E = (() => {
4024
+ if (!v || v.length === 0) return !1;
4025
+ const g = v.filter((j) => j.sizeUnit === "percentage");
4026
+ if (g.length === 0 || g[g.length - 1]?.id !== V.current) return !1;
4027
+ const B = I?.percentageSize;
4028
+ return !(B !== void 0 && g.filter((G) => Math.abs((G.percentageSize || 0) - B) < 0.01).length > 1);
4029
+ })(), N = I?.sizeUnit === "percentage" && !I?.collapsed ? 1 : 0, U = {
4030
+ flexBasis: z(),
4031
+ flexGrow: E ? 1 : 0,
4032
+ flexShrink: N,
4033
+ overflow: "hidden",
4034
+ position: "relative",
4035
+ boxSizing: "border-box",
4036
+ minHeight: "0px",
4037
+ minWidth: "0px",
4038
+ ...s
4039
+ };
4040
+ d === "horizontal" ? (U.height = "100%", U.minWidth = 0) : (U.width = "100%", U.minHeight = 0), $ && (d === "horizontal" ? (U.width = "0px", U.minWidth = "0px") : (U.height = "0px", U.minHeight = "0px"), U.flexGrow = 0, U.flexShrink = 0, U.pointerEvents = "none", U.visibility = "hidden", ee && (U.display = "none"));
4041
+ const P = d === "horizontal" ? R.width : R.height, x = de(
4042
+ () => ({
4043
+ position: "absolute",
4044
+ inset: "0px",
4045
+ overflow: "auto",
4046
+ display: "flex",
4047
+ flexDirection: "column",
4048
+ width: "100%",
4049
+ height: "100%",
4050
+ minWidth: "0px",
4051
+ minHeight: "0px"
4052
+ }),
4053
+ []
4054
+ );
4055
+ return /* @__PURE__ */ L.jsxs(
4056
+ "div",
4057
+ {
4058
+ ref: F,
4059
+ className: De("panel", i),
4060
+ style: U,
4061
+ "data-panel-id": V.current,
4062
+ "data-panel-size": k,
4063
+ "data-panel-size-unit": I?.sizeUnit || "percentage",
4064
+ "data-panel-pixel-size": I?.sizeUnit === "pixels" ? I?.originalPixelSize : null,
4065
+ "data-panel-order": l,
4066
+ "data-panel-collapsible": c,
4067
+ "data-panel-collapsed": I?.collapsed,
4068
+ "aria-hidden": $,
4069
+ children: [
4070
+ /* @__PURE__ */ L.jsx("div", { style: x, children: a }),
4071
+ C && /* @__PURE__ */ L.jsx(Ur, { panel: I, isLastFlexiblePanel: E, measuredPixelSize: W, measuredPercentageSize: te, containerAxisSize: P, direction: d })
4072
+ ]
4073
+ }
4074
+ );
4075
+ }), Vr = (e) => JSON.stringify(
4076
+ e.map((t) => ({
4077
+ id: t.id,
4078
+ size: t.size,
4079
+ percentageSize: t.percentageSize ?? null,
4080
+ sizeUnit: t.sizeUnit,
4081
+ originalPixelSize: t.originalPixelSize ?? null,
4082
+ minSize: t.minSize ?? null,
4083
+ maxSize: t.maxSize ?? null,
4084
+ collapsible: t.collapsible ?? !1,
4085
+ collapsed: t.collapsed ?? !1,
4086
+ sizeBeforeCollapse: t.sizeBeforeCollapse ?? null,
4087
+ measuredPixelSizeBeforeCollapse: t.measuredPixelSizeBeforeCollapse ?? null,
4088
+ pixelAdjustPriority: t.pixelAdjustPriority ?? null,
4089
+ measuredPixelSize: t.measuredPixelSize ?? null,
4090
+ measuredPercentageSize: t.measuredPercentageSize ?? null
4091
+ }))
4092
+ ), Yr = (e) => JSON.stringify(
4093
+ e.map((t) => ({
4094
+ id: t.id,
4095
+ thickness: t.thickness,
4096
+ visible: t.visible,
4097
+ direction: t.direction,
4098
+ startPanelId: t.startPanelId ?? null,
4099
+ endPanelId: t.endPanelId ?? null
4100
+ }))
4101
+ ), qr = () => {
4102
+ const e = /* @__PURE__ */ new Set(), t = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Set();
4103
+ let o = null, i = 0, s = !0, a = [], l = {
4104
+ ownerId: null,
4105
+ groups: a
4106
+ };
4107
+ const c = () => {
4108
+ for (const p of e)
4109
+ p();
4110
+ }, S = () => {
4111
+ s = !0, c();
4112
+ }, b = () => {
4113
+ const p = o;
4114
+ if (p && r.has(p))
4115
+ return !1;
4116
+ o = null;
4117
+ const m = r.values().next();
4118
+ return m.done || (o = m.value), p !== o;
4119
+ };
4120
+ return {
4121
+ subscribe: (p) => (e.add(p), () => {
4122
+ e.delete(p);
4123
+ }),
4124
+ getSnapshot: () => (b() && (s = !0), s && (a = Array.from(t.values()).sort((m, R) => m.index - R.index).map(({ serializedPanels: m, serializedHandles: R, ...F }) => F), l = {
4125
+ ownerId: o,
4126
+ groups: a
4127
+ }, s = !1), l),
4128
+ getOwnerId: () => (b() && (s = !0), o),
4129
+ enableGroup: (p) => {
4130
+ const m = r.size;
4131
+ r.add(p), r.size !== m && b() && S();
4132
+ },
4133
+ disableGroup: (p) => {
4134
+ r.delete(p) && b() && S();
4135
+ },
4136
+ updateGroup: (p, m) => {
4137
+ const R = t.get(p), F = R?.index ?? i++, V = Vr(m.panels), I = Yr(m.handles), ee = R?.displayName !== m.displayName, M = R?.direction !== m.direction, $ = R ? R.containerSize.width !== m.containerSize.width || R.containerSize.height !== m.containerSize.height : !0;
4138
+ let W = R?.serializedPanels !== V;
4139
+ if (!W && R)
4140
+ if (R.panels.length !== m.panels.length)
4141
+ W = !0;
4142
+ else
4143
+ for (let H = 0; H < m.panels.length; H += 1) {
4144
+ const A = R.panels[H], D = m.panels[H];
4145
+ if (!(A && D)) {
4146
+ W = !0;
4147
+ break;
4148
+ }
4149
+ if (A.id !== D.id || A.size !== D.size || A.percentageSize !== D.percentageSize || A.collapsed !== D.collapsed || A.measuredPixelSize !== D.measuredPixelSize || A.measuredPercentageSize !== D.measuredPercentageSize) {
4150
+ W = !0;
4151
+ break;
4152
+ }
4153
+ }
4154
+ let X = R?.serializedHandles !== I;
4155
+ if (!X && R)
4156
+ if (R.handles.length !== m.handles.length)
4157
+ X = !0;
4158
+ else
4159
+ for (let H = 0; H < m.handles.length; H += 1) {
4160
+ const A = R.handles[H], D = m.handles[H];
4161
+ if (!(A && D)) {
4162
+ X = !0;
4163
+ break;
4164
+ }
4165
+ if (A.id !== D.id || A.thickness !== D.thickness || A.visible !== D.visible || A.direction !== D.direction || A.startPanelId !== D.startPanelId || A.endPanelId !== D.endPanelId) {
4166
+ X = !0;
4167
+ break;
4168
+ }
4169
+ }
4170
+ if (!R && m.panels.length === 0 && m.handles.length === 0 || R && !ee && !M && !$ && !W && !X)
4171
+ return;
4172
+ const te = m.panels.map((H) => ({ ...H })), Y = m.handles.map((H) => ({ ...H })), Z = { ...m.containerSize };
4173
+ t.set(p, {
4174
+ groupId: p,
4175
+ displayName: m.displayName,
4176
+ direction: m.direction,
4177
+ containerSize: Z,
4178
+ panels: te,
4179
+ handles: Y,
4180
+ index: F,
4181
+ serializedPanels: V,
4182
+ serializedHandles: I
4183
+ }), S();
4184
+ },
4185
+ removeGroup: (p) => {
4186
+ const m = t.delete(p), R = r.delete(p), F = b();
4187
+ (m || R || F) && S();
4188
+ }
4189
+ };
4190
+ }, ye = qr(), Xr = () => Et(ye.subscribe, ye.getOwnerId, ye.getOwnerId), Jr = () => Et(ye.subscribe, ye.getSnapshot, ye.getSnapshot), Zr = (e) => {
4191
+ ye.enableGroup(e);
4192
+ }, vt = (e) => {
4193
+ ye.disableGroup(e);
4194
+ }, Qr = (e, t) => {
4195
+ ye.updateGroup(e, t);
4196
+ }, wt = (e) => {
4197
+ ye.removeGroup(e);
4198
+ };
4199
+ let Ct = 0;
4200
+ const Kr = () => (Ct += 1, `panel-group-${Ct}`), Wt = (e, t) => typeof e != "number" || !Number.isFinite(e) ? "—" : `${(e < 0 ? 0 : e).toFixed(8)}${t}`, Ve = (e) => Wt(e, "px"), kt = (e) => Wt(e, "%"), sn = (e) => {
4201
+ const { id: t, className: r, style: o, children: i, direction: s } = e, { groupRef: a, contextValue: l, groupStyle: c } = ar(e), [S, b] = ze({ width: 0, height: 0 }), d = l.layoutConstraintViolation, u = !!d, h = u && d ? /* @__PURE__ */ L.jsxs(
4202
+ "div",
4203
+ {
4204
+ className: "flex w-full flex-1 flex-col items-center justify-center gap-2 rounded-lg border border-slate-300 border-dashed bg-slate-100/70 px-6 py-8 text-center text-slate-600 text-sm dark:border-slate-600 dark:bg-slate-800/50 dark:text-slate-200",
4205
+ "data-panel-group-placeholder": "constraint-violation",
4206
+ children: [
4207
+ /* @__PURE__ */ L.jsx("span", { children: d.reason === "minimum-exceeded" ? "Layout unavailable: minimum panel sizes exceed the container." : "Layout unavailable: panels cannot fill the container with their maximum sizes." }),
4208
+ /* @__PURE__ */ L.jsx("span", { className: "text-slate-500 text-xs dark:text-slate-400", children: d.reason === "minimum-exceeded" ? `Min required: ${Math.ceil(d.totalMinimumSize ?? 0)}px | Available: ${Math.floor(d.availableContainerSize)}px` : `Max total: ${Math.floor(d.totalMaximumSize ?? 0)}px | Needed: ${Math.floor(d.availableContainerSize)}px` })
4209
+ ]
4210
+ }
4211
+ ) : null, C = pe(t ?? Kr()).current, v = t ?? C, p = l.showDebugInfo && l.panels.length > 0, m = p ? l.panels : [], R = p ? l.panelMeasurements : {}, F = de(() => {
4212
+ if (!p)
4213
+ return [];
4214
+ const X = Object.values(l.handleMeasurements);
4215
+ return X.length <= 1 ? X : X.slice().sort((te, Y) => te.id.localeCompare(Y.id));
4216
+ }, [l.handleMeasurements, p]), V = l.containerSize, I = S.width > 0 ? S.width : V.width, ee = S.height > 0 ? S.height : V.height, M = Xr(), $ = p && M === C;
4217
+ Ye(() => {
4218
+ if (!p) {
4219
+ b({ width: 0, height: 0 });
4220
+ return;
4221
+ }
4222
+ if (typeof window > "u" || typeof ResizeObserver > "u")
4223
+ return;
4224
+ const X = a.current;
4225
+ if (!X)
4226
+ return;
4227
+ const te = new ResizeObserver((k) => {
4228
+ for (const ne of k) {
4229
+ if (ne.target !== X)
4230
+ continue;
4231
+ const _ = ne.target, n = _ ? we(_, "horizontal") : null, z = _ ? we(_, "vertical") : null, E = n ? n.inner : 0, N = z ? z.inner : 0, U = ne.contentRect.width, P = ne.contentRect.height, x = E > 0 ? E : U, g = N > 0 ? N : P;
4232
+ b((y) => y.width === x && y.height === g ? y : { width: x, height: g });
4233
+ }
4234
+ });
4235
+ te.observe(X);
4236
+ const { inner: Y } = we(X, "horizontal"), { inner: Z } = we(X, "vertical"), H = X.getBoundingClientRect(), A = Y > 0 ? Y : H.width, D = Z > 0 ? Z : H.height;
4237
+ return b({ width: A, height: D }), () => {
4238
+ te.disconnect();
4239
+ };
4240
+ }, [a, p]);
4241
+ const W = de(() => {
4242
+ if (m.length === 0)
4243
+ return m;
4244
+ let X = !1;
4245
+ const te = m.map((Y) => {
4246
+ const Z = R[Y.id];
4247
+ return !Z || Y.measuredPixelSize === Z.pixelSize && Y.measuredPercentageSize === Z.percentageSize ? Y : (X = !0, {
4248
+ ...Y,
4249
+ measuredPixelSize: Z.pixelSize,
4250
+ measuredPercentageSize: Z.percentageSize
4251
+ });
4252
+ });
4253
+ return X ? te : m;
4254
+ }, [m, R]);
4255
+ return ue(() => {
4256
+ if (!p) {
4257
+ vt(C), wt(C);
4258
+ return;
4259
+ }
4260
+ return Zr(C), () => {
4261
+ vt(C), wt(C);
4262
+ };
4263
+ }, [p, C]), ue(() => {
4264
+ p && Qr(C, {
4265
+ displayName: v,
4266
+ direction: s,
4267
+ containerSize: {
4268
+ width: I,
4269
+ height: ee
4270
+ },
4271
+ panels: W,
4272
+ handles: F
4273
+ });
4274
+ }, [p, C, v, s, I, ee, W, F]), /* @__PURE__ */ L.jsxs(Mt.Provider, { value: l, children: [
4275
+ /* @__PURE__ */ L.jsx("div", { ref: a, className: De("panel-group", s === "horizontal" ? "flex-row" : "flex-col", r), style: { ...c, ...o }, "data-panel-group-id": t, "data-panel-group-direction": s, children: u ? h : i }),
4276
+ $ && /* @__PURE__ */ L.jsx(en, {})
4277
+ ] });
4278
+ }, en = () => {
4279
+ const t = Jr().groups, [r, o] = ze(!0);
4280
+ if (t.length === 0 || typeof document > "u")
4281
+ return null;
4282
+ const i = t.reduce((c, S) => c + S.panels.length, 0), s = t.reduce((c, S) => c + (S.handles?.length ?? 0), 0), a = () => {
4283
+ o((c) => !c);
4284
+ }, l = /* @__PURE__ */ L.jsxs(
4285
+ "div",
4286
+ {
4287
+ style: {
4288
+ position: "fixed",
4289
+ left: "50%",
4290
+ bottom: "20px",
4291
+ transform: "translate(-50%, 0)",
4292
+ zIndex: 100,
4293
+ maxWidth: "min(90vw, 1120px)",
4294
+ width: "100%",
4295
+ padding: r ? "10px 18px" : "14px 18px",
4296
+ borderRadius: "14px",
4297
+ backgroundColor: "rgba(15, 23, 42, 0.72)",
4298
+ color: "#e2e8f0",
4299
+ fontFamily: "monospace",
4300
+ fontSize: "11px",
4301
+ lineHeight: 1.6,
4302
+ boxShadow: "0 22px 45px rgba(15,23,42,0.45)",
4303
+ border: "1px solid rgba(148, 163, 184, 0.22)",
4304
+ backdropFilter: "blur(10px)",
4305
+ WebkitBackdropFilter: "blur(10px)",
4306
+ pointerEvents: "auto",
4307
+ overflow: "auto",
4308
+ maxHeight: r ? "52px" : "min(65vh, 520px)",
4309
+ transition: "max-height 0.24s ease, padding 0.24s ease"
4310
+ },
4311
+ children: [
4312
+ /* @__PURE__ */ L.jsxs(
4313
+ "div",
4314
+ {
4315
+ style: {
4316
+ display: "flex",
4317
+ justifyContent: "space-between",
4318
+ alignItems: "center",
4319
+ flexWrap: "wrap",
4320
+ gap: "12px",
4321
+ marginBottom: r ? 0 : "12px"
4322
+ },
4323
+ children: [
4324
+ /* @__PURE__ */ L.jsxs(
4325
+ "div",
4326
+ {
4327
+ style: {
4328
+ display: "flex",
4329
+ flexDirection: "column",
4330
+ gap: "4px"
4331
+ },
4332
+ children: [
4333
+ /* @__PURE__ */ L.jsx(
4334
+ "span",
4335
+ {
4336
+ style: {
4337
+ fontWeight: 700,
4338
+ fontSize: "12px",
4339
+ letterSpacing: "0.03em"
4340
+ },
4341
+ children: "Panel Overview"
4342
+ }
4343
+ ),
4344
+ /* @__PURE__ */ L.jsxs("span", { style: { color: "#cbd5f5" }, children: [
4345
+ "groups: ",
4346
+ t.length,
4347
+ " / panels: ",
4348
+ i,
4349
+ " / resizers: ",
4350
+ s
4351
+ ] })
4352
+ ]
4353
+ }
4354
+ ),
4355
+ /* @__PURE__ */ L.jsx(
4356
+ "button",
4357
+ {
4358
+ type: "button",
4359
+ onClick: () => a(),
4360
+ style: {
4361
+ padding: "6px 10px",
4362
+ borderRadius: "9999px",
4363
+ border: "1px solid rgba(148, 163, 184, 0.35)",
4364
+ backgroundColor: r ? "rgba(59, 130, 246, 0.2)" : "rgba(71, 85, 105, 0.45)",
4365
+ color: "#e2e8f0",
4366
+ fontWeight: 600,
4367
+ fontSize: "10px",
4368
+ letterSpacing: "0.03em",
4369
+ textTransform: "uppercase",
4370
+ cursor: "pointer",
4371
+ transition: "background-color 0.18s ease, 0.18s ease border-color"
4372
+ },
4373
+ title: r ? "Panel Overview を開く" : "Panel Overview を閉じる",
4374
+ children: r ? "開く" : "閉じる"
4375
+ }
4376
+ )
4377
+ ]
4378
+ }
4379
+ ),
4380
+ !r && /* @__PURE__ */ L.jsx(
4381
+ "div",
4382
+ {
4383
+ style: {
4384
+ display: "flex",
4385
+ flexDirection: "column",
4386
+ gap: "12px",
4387
+ maxHeight: "45vh",
4388
+ overflowY: "auto",
4389
+ paddingRight: "6px"
4390
+ },
4391
+ children: t.map((c, S) => {
4392
+ const b = c.direction === "horizontal" ? c.containerSize.width : c.containerSize.height;
4393
+ return /* @__PURE__ */ L.jsxs(
4394
+ "div",
4395
+ {
4396
+ style: {
4397
+ padding: "10px 12px",
4398
+ borderRadius: "10px",
4399
+ backgroundColor: "rgba(30, 41, 59, 0.55)",
4400
+ border: "1px solid rgba(148, 163, 184, 0.18)",
4401
+ display: "flex",
4402
+ flexDirection: "column",
4403
+ gap: "10px"
4404
+ },
4405
+ children: [
4406
+ /* @__PURE__ */ L.jsxs(
4407
+ "div",
4408
+ {
4409
+ style: {
4410
+ display: "flex",
4411
+ justifyContent: "space-between",
4412
+ alignItems: "center",
4413
+ flexWrap: "wrap",
4414
+ gap: "10px",
4415
+ color: "#dbeafe"
4416
+ },
4417
+ children: [
4418
+ /* @__PURE__ */ L.jsxs(
4419
+ "span",
4420
+ {
4421
+ style: {
4422
+ fontWeight: 600,
4423
+ fontSize: "11px",
4424
+ letterSpacing: "0.02em",
4425
+ textTransform: "uppercase"
4426
+ },
4427
+ children: [
4428
+ "group ",
4429
+ S + 1,
4430
+ ": ",
4431
+ c.displayName
4432
+ ]
4433
+ }
4434
+ ),
4435
+ /* @__PURE__ */ L.jsxs("span", { children: [
4436
+ "direction: ",
4437
+ c.direction,
4438
+ " / container: ",
4439
+ Ve(c.containerSize.width),
4440
+ " × ",
4441
+ Ve(c.containerSize.height)
4442
+ ] })
4443
+ ]
4444
+ }
4445
+ ),
4446
+ /* @__PURE__ */ L.jsx(
4447
+ "div",
4448
+ {
4449
+ style: {
4450
+ display: "grid",
4451
+ gridTemplateColumns: "repeat(auto-fill, minmax(220px, 1fr))",
4452
+ gap: "10px"
4453
+ },
4454
+ children: c.panels.map((d, u) => {
4455
+ const h = d.measuredPixelSize ?? d.size, w = d.size, C = Ve(w), v = d.percentageSize ?? (b > 0 ? d.size / b * 100 : void 0), p = d.measuredPercentageSize !== void 0 ? d.measuredPercentageSize : b > 0 ? h / b * 100 : void 0, m = d.collapsed || h <= _t, R = d.collapsed ? "collapsed" : m ? "hidden" : "visible", F = kt(v), V = kt(p), I = Ve(h);
4456
+ return /* @__PURE__ */ L.jsxs(
4457
+ "div",
4458
+ {
4459
+ style: {
4460
+ padding: "8px 10px",
4461
+ borderRadius: "8px",
4462
+ backgroundColor: "rgba(15, 23, 42, 0.55)",
4463
+ border: "1px solid rgba(148, 163, 184, 0.16)",
4464
+ display: "flex",
4465
+ flexDirection: "column",
4466
+ gap: "4px"
4467
+ },
4468
+ children: [
4469
+ /* @__PURE__ */ L.jsxs(
4470
+ "div",
4471
+ {
4472
+ style: {
4473
+ display: "flex",
4474
+ justifyContent: "space-between",
4475
+ alignItems: "center",
4476
+ gap: "6px"
4477
+ },
4478
+ children: [
4479
+ /* @__PURE__ */ L.jsx("span", { style: { flex: 1, minWidth: 0, overflow: "hidden", textOverflow: "ellipsis" }, children: d.id }),
4480
+ /* @__PURE__ */ L.jsx(
4481
+ "span",
4482
+ {
4483
+ style: {
4484
+ padding: "2px 6px",
4485
+ borderRadius: "9999px",
4486
+ fontSize: "10px",
4487
+ textTransform: "uppercase",
4488
+ backgroundColor: d.collapsed ? "rgba(251, 113, 133, 0.25)" : m ? "rgba(250, 204, 21, 0.25)" : "rgba(74, 222, 128, 0.25)",
4489
+ color: d.collapsed ? "#fecdd3" : m ? "#fef08a" : "#bbf7d0"
4490
+ },
4491
+ children: R
4492
+ }
4493
+ )
4494
+ ]
4495
+ }
4496
+ ),
4497
+ /* @__PURE__ */ L.jsxs(
4498
+ "div",
4499
+ {
4500
+ style: {
4501
+ display: "grid",
4502
+ gridTemplateColumns: "auto 1fr",
4503
+ gap: "2px 10px",
4504
+ color: "#e2e8f0"
4505
+ },
4506
+ children: [
4507
+ /* @__PURE__ */ L.jsx("span", { children: "size (state):" }),
4508
+ /* @__PURE__ */ L.jsx("span", { children: C }),
4509
+ /* @__PURE__ */ L.jsx("span", { children: "size (measured):" }),
4510
+ /* @__PURE__ */ L.jsx("span", { children: I }),
4511
+ /* @__PURE__ */ L.jsx("span", { children: "percentage (state):" }),
4512
+ /* @__PURE__ */ L.jsx("span", { children: F }),
4513
+ /* @__PURE__ */ L.jsx("span", { children: "percentage (measured):" }),
4514
+ /* @__PURE__ */ L.jsx("span", { children: V }),
4515
+ /* @__PURE__ */ L.jsx("span", { children: "unit:" }),
4516
+ /* @__PURE__ */ L.jsx("span", { children: d.sizeUnit }),
4517
+ /* @__PURE__ */ L.jsx("span", { children: "min:" }),
4518
+ /* @__PURE__ */ L.jsx("span", { children: d.minSize !== void 0 ? JSON.stringify(d.minSize) : "—" }),
4519
+ /* @__PURE__ */ L.jsx("span", { children: "max:" }),
4520
+ /* @__PURE__ */ L.jsx("span", { children: d.maxSize !== void 0 ? JSON.stringify(d.maxSize) : "—" }),
4521
+ /* @__PURE__ */ L.jsx("span", { children: "priority:" }),
4522
+ /* @__PURE__ */ L.jsx("span", { children: d.pixelAdjustPriority ?? "—" })
4523
+ ]
4524
+ }
4525
+ )
4526
+ ]
4527
+ },
4528
+ d.id || u
4529
+ );
4530
+ })
4531
+ }
4532
+ )
4533
+ ]
4534
+ },
4535
+ c.groupId
4536
+ );
4537
+ })
4538
+ }
4539
+ )
4540
+ ]
4541
+ }
4542
+ );
4543
+ return Jt(l, document.body);
4544
+ }, an = nt(({ id: e, disabled: t = !1, className: r, style: o, children: i, onDragging: s }) => {
4545
+ const { direction: a, resizePanels: l, getPanel: c, collapsePanel: S, expandPanel: b, panels: d, reportHandleMeasurement: u, containerSize: h } = it(), [w, C] = ze(!1), v = pe(null), p = pe(null), m = pe(""), R = pe(""), [F, V] = ze({ left: null, right: null }), I = pe(e ?? nr()), ee = pe(null), M = e ?? I.current;
4546
+ ue(() => {
4547
+ if (v.current) {
4548
+ const P = v.current.parentElement;
4549
+ if (P) {
4550
+ p.current = P;
4551
+ const x = Array.from(P.children), g = v.current, y = x.indexOf(g);
4552
+ if (y > 0 && y < x.length - 1) {
4553
+ let B = null, j = null;
4554
+ for (let G = y - 1; G >= 0; G -= 1) {
4555
+ const re = x[G];
4556
+ if (re.dataset.panelId) {
4557
+ B = re;
4558
+ break;
4559
+ }
4560
+ }
4561
+ for (let G = y + 1; G < x.length; G += 1) {
4562
+ const re = x[G];
4563
+ if (re.dataset.panelId) {
4564
+ j = re;
4565
+ break;
4566
+ }
4567
+ }
4568
+ m.current = B?.dataset.panelId || "", R.current = j?.dataset.panelId || "", V({
4569
+ left: m.current || null,
4570
+ right: R.current || null
4571
+ });
4572
+ }
4573
+ }
4574
+ }
4575
+ }, []), ue(() => {
4576
+ if (M === I.current)
4577
+ return;
4578
+ const P = I.current;
4579
+ I.current = M, ee.current = null, P !== M && u(P, null);
4580
+ }, [u, M]), ue(() => {
4581
+ const P = I.current;
4582
+ return () => {
4583
+ u(P, null);
4584
+ };
4585
+ }, [u]);
4586
+ const $ = fe(
4587
+ (P) => {
4588
+ if (t || !p.current) return;
4589
+ P.preventDefault(), P.stopPropagation();
4590
+ const x = p.current, { inner: g } = we(x, a), y = { x: P.clientX, y: P.clientY }, B = c(m.current), j = c(R.current);
4591
+ if (!(B && j)) return;
4592
+ const G = B.size, re = j.size;
4593
+ let K = 0;
4594
+ const Q = Qt;
4595
+ C(!0), s?.(!0), P.currentTarget.setPointerCapture(P.pointerId);
4596
+ const se = (q) => {
4597
+ if (!v.current) return;
4598
+ q.preventDefault(), q.stopPropagation();
4599
+ const ae = performance.now();
4600
+ if (ae - K < Q) return;
4601
+ K = ae;
4602
+ const ie = a === "horizontal" ? q.clientX - y.x : q.clientY - y.y;
4603
+ if (ie === 0)
4604
+ return;
4605
+ const ce = G + ie, be = re - ie, xe = c(m.current), ge = c(R.current);
4606
+ if (xe && ge && m.current && R.current) {
4607
+ const Se = oe(xe.minSize, 0, g), Ee = oe(ge.minSize, 0, g), Pe = Se, Ce = Ee, at = Math.min(g * It, At), lt = Math.min(g * Kt, er);
4608
+ if (ge.collapsible && !ge.collapsed && be <= Math.max(Ee * 0.3, at)) {
4609
+ S(R.current);
4610
+ return;
4611
+ }
4612
+ if (xe.collapsible && !xe.collapsed && ce <= Math.max(Se * 0.3, at)) {
4613
+ S(m.current);
4614
+ return;
4615
+ }
4616
+ if (ge.collapsed && be > Math.max(Ee * 0.3, lt)) {
4617
+ b(R.current, be);
4618
+ return;
4619
+ }
4620
+ if (xe.collapsed && ce > Math.max(Se * 0.3, lt)) {
4621
+ b(m.current, ce);
4622
+ return;
4623
+ }
4624
+ if (g > 0) {
4625
+ const ct = xe.size + ge.size, Ge = Ke(g);
4626
+ let qe = !1;
4627
+ if (Pe <= Ge && ce <= Ge && G !== 0) {
4628
+ const Ne = Math.max(0, ct - 0);
4629
+ Ne >= Ce && (l(m.current, R.current, 0, Ne), qe = !0);
4630
+ } else if (Ce <= Ge && be <= Ge && re !== 0) {
4631
+ const Ne = Math.max(0, ct - 0);
4632
+ Ne >= Pe && (l(m.current, R.current, Ne, 0), qe = !0);
4633
+ }
4634
+ if (qe)
4635
+ return;
4636
+ }
4637
+ if (xe.collapsed || ge.collapsed)
4638
+ return;
4639
+ l(m.current, R.current, ce, be);
4640
+ }
4641
+ }, f = () => {
4642
+ C(!1), s?.(!1), document.removeEventListener("pointermove", se), document.removeEventListener("pointerup", f);
4643
+ };
4644
+ document.addEventListener("pointermove", se), document.addEventListener("pointerup", f);
4645
+ },
4646
+ [t, a, l, c, S, b, s]
4647
+ ), W = a === "horizontal", te = De(
4648
+ "group absolute z-20 flex select-none items-center justify-center border-none bg-transparent transition-colors duration-150 overflow-visible",
4649
+ W ? "cursor-col-resize" : "cursor-row-resize",
4650
+ W ? "h-full" : "w-full",
4651
+ !t && "hover:bg-gray-200/70 dark:hover:bg-gray-700/70",
4652
+ !t && "active:bg-blue-300/60 dark:active:bg-blue-700/60",
4653
+ w && "bg-blue-200/80 dark:bg-blue-800/60",
4654
+ t && "cursor-not-allowed opacity-50",
4655
+ "focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50",
4656
+ r
4657
+ ), Y = de(() => {
4658
+ const P = (x) => {
4659
+ if (!x)
4660
+ return -1;
4661
+ for (let g = 0; g < d.length; g += 1)
4662
+ if (d[g].id === x)
4663
+ return g;
4664
+ return -1;
4665
+ };
4666
+ return {
4667
+ left: P(F.left),
4668
+ right: P(F.right)
4669
+ };
4670
+ }, [F.left, F.right, d]), Z = W ? h.width : h.height, H = de(() => {
4671
+ const P = (x, g) => {
4672
+ if (x > g)
4673
+ return 0;
4674
+ let y = 0;
4675
+ for (let B = x; B <= g; B += 1) {
4676
+ const j = d[B];
4677
+ if (!j)
4678
+ continue;
4679
+ const G = j.size ?? 0, re = Math.max(0, G);
4680
+ y += j.collapsed ? 0 : re;
4681
+ }
4682
+ return y;
4683
+ };
4684
+ return Y.left >= 0 ? P(0, Y.left) : Y.right > 0 ? P(0, Y.right - 1) : 0;
4685
+ }, [Y.left, Y.right, d]), A = de(() => !Number.isFinite(H) || H < 0 ? 0 : Z > 0 && H > Z ? Z : H, [H, Z]), D = de(() => {
4686
+ const P = {
4687
+ position: "absolute",
4688
+ zIndex: 20,
4689
+ touchAction: "none"
4690
+ };
4691
+ return W ? (P.top = 0, P.left = `${A}px`, P.transform = "translateX(-50%)", P.width = `${dt}px`, P.height = "100%") : (P.left = 0, P.top = `${A}px`, P.transform = "translateY(-50%)", P.height = `${dt}px`, P.width = "100%"), P;
4692
+ }, [A, W]), k = de(() => {
4693
+ const P = Ke(Z), x = (Q) => {
4694
+ if (Q < 0 || Q >= d.length)
4695
+ return !1;
4696
+ const se = d[Q];
4697
+ return se ? se.collapsed ? !0 : se.size <= P : !1;
4698
+ }, g = (Q, se) => {
4699
+ if (!x(Q))
4700
+ return 0;
4701
+ let f = 0;
4702
+ for (let q = Q; q >= 0 && q < d.length && x(q); q += se)
4703
+ f += 1;
4704
+ return f;
4705
+ }, y = Y.left, B = Y.right, j = y >= 0 ? g(y, -1) : 0, G = B >= 0 ? g(B, 1) : 0;
4706
+ return {
4707
+ groupSize: j + G + 1,
4708
+ overlapIndex: j
4709
+ };
4710
+ }, [Y.left, Y.right, d, Z]), ne = de(() => {
4711
+ if (k.groupSize <= 1)
4712
+ return !1;
4713
+ const P = k.groupSize - 1;
4714
+ return k.overlapIndex > 0 && k.overlapIndex < P;
4715
+ }, [k]), _ = de(() => {
4716
+ if (k.groupSize <= 1 || ne)
4717
+ return 0;
4718
+ const P = k.groupSize > 1 ? 2 : 1;
4719
+ if (P === 1)
4720
+ return 0;
4721
+ const x = k.overlapIndex === 0 ? 0 : P - 1, g = (P - 1) / 2;
4722
+ return (x - g) * Zt;
4723
+ }, [k, ne]), n = de(() => {
4724
+ if (ne)
4725
+ return { display: "none" };
4726
+ if (_ !== 0)
4727
+ return W ? { transform: `translateX(${_}px)` } : { transform: `translateY(${_}px)` };
4728
+ }, [_, W, ne]), z = De(
4729
+ "flex items-center justify-center rounded-full bg-white text-slate-700 ring-1 ring-inset ring-white/80 backdrop-blur-sm transition-colors duration-150 shadow-[0_0_0_1px_rgba(255,255,255,0.85),0_1px_3px_rgba(15,23,42,0.18)]",
4730
+ "dark:bg-slate-800/95 dark:text-slate-200 dark:ring-slate-500/60 dark:shadow-[0_0_0_1px_rgba(148,163,184,0.45),0_1px_3px_rgba(2,6,23,0.55)]",
4731
+ W ? "h-12 w-[6px] px-[2px]" : "h-[6px] w-20 py-[2px]",
4732
+ w && "bg-blue-200/80 ring-blue-300 shadow-[0_0_0_1px_rgba(191,219,254,0.65),0_1px_4px_rgba(59,130,246,0.45)] dark:bg-blue-900/70 dark:ring-blue-400 dark:shadow-[0_0_0_1px_rgba(147,197,253,0.5),0_1px_4px_rgba(59,130,246,0.55)]"
4733
+ ), E = De(
4734
+ "rounded-full bg-slate-600 transition-colors duration-150 shadow-[0_0_0_1px_rgba(255,255,255,0.9)] dark:bg-slate-200 dark:shadow-[0_0_0_1px_rgba(15,23,42,0.55)]",
4735
+ W ? "h-8 w-[2px]" : "h-[2px] w-16",
4736
+ w && "bg-blue-500 dark:bg-blue-300",
4737
+ !t && "group-hover:bg-slate-700 dark:group-hover:bg-slate-100"
4738
+ ), N = fe(() => {
4739
+ const P = v.current;
4740
+ if (!P)
4741
+ return;
4742
+ let x = 0;
4743
+ if (!ne) {
4744
+ const B = a === "horizontal" ? P.offsetWidth : P.offsetHeight;
4745
+ let j = 0, G = 0;
4746
+ if (typeof window < "u") {
4747
+ const K = window.getComputedStyle(P);
4748
+ a === "horizontal" ? (j = Number.parseFloat(K.marginLeft || "0"), G = Number.parseFloat(K.marginRight || "0")) : (j = Number.parseFloat(K.marginTop || "0"), G = Number.parseFloat(K.marginBottom || "0"));
4749
+ }
4750
+ x = [B, j, G].reduce((K, Q) => Number.isFinite(Q) ? K + Q : K, 0);
4751
+ }
4752
+ (!Number.isFinite(x) || x < 0) && (x = 0);
4753
+ const g = {
4754
+ id: M,
4755
+ thickness: x,
4756
+ direction: a,
4757
+ visible: !ne && x > tr,
4758
+ startPanelId: F.left,
4759
+ endPanelId: F.right
4760
+ }, y = ee.current;
4761
+ y && Math.abs(y.thickness - g.thickness) <= 0.25 && y.visible === g.visible && y.direction === g.direction && y.startPanelId === g.startPanelId && y.endPanelId === g.endPanelId || (ee.current = g, u(M, g));
4762
+ }, [a, F.left, F.right, u, M, ne]);
4763
+ ue(() => {
4764
+ N();
4765
+ }, [N]), ue(() => {
4766
+ const P = v.current;
4767
+ if (!P)
4768
+ return;
4769
+ if (typeof ResizeObserver > "u") {
4770
+ N();
4771
+ return;
4772
+ }
4773
+ const x = new ResizeObserver(() => {
4774
+ N();
4775
+ });
4776
+ return x.observe(P), () => {
4777
+ x.disconnect();
4778
+ };
4779
+ }, [N]);
4780
+ const U = de(() => {
4781
+ const P = o ? { ...D, ...o } : D;
4782
+ return ne ? {
4783
+ ...P,
4784
+ display: "none",
4785
+ pointerEvents: "none",
4786
+ visibility: "hidden"
4787
+ } : P;
4788
+ }, [D, ne, o]);
4789
+ return /* @__PURE__ */ L.jsx(
4790
+ "button",
4791
+ {
4792
+ type: "button",
4793
+ ref: v,
4794
+ className: te,
4795
+ style: U,
4796
+ onPointerDown: $,
4797
+ disabled: t,
4798
+ "aria-hidden": ne || void 0,
4799
+ "aria-label": `Resize ${W ? "columns" : "rows"} - Drag to collapse/expand panels`,
4800
+ "data-resize-handle-id": M,
4801
+ title: `ドラッグして${W ? "列" : "行"}をリサイズ、端まで移動して折りたたみ/展開`,
4802
+ children: i || /* @__PURE__ */ L.jsx("div", { className: z, style: n, children: /* @__PURE__ */ L.jsx("span", { className: E }) })
4803
+ }
4804
+ );
4805
+ }), ln = (e) => document.querySelector(`[data-panel-id="${e}"]`), cn = (e) => document.querySelector(`[data-panel-group-id="${e}"]`), dn = (e) => document.querySelector(`[data-resize-handle-id="${e}"]`);
4806
+ export {
4807
+ on as Panel,
4808
+ sn as PanelGroup,
4809
+ Mt as PanelGroupContext,
4810
+ an as PanelResizeHandle,
4811
+ he as clamp,
4812
+ rr as generatePanelId,
4813
+ oe as getConstraintInPixels,
4814
+ we as getContainerSize,
4815
+ ln as getPanelElement,
4816
+ cn as getPanelGroupElement,
4817
+ dn as getResizeHandleElement,
4818
+ or as loadLayout,
4819
+ Le as normalizeSizeConfig,
4820
+ ir as saveLayout,
4821
+ nn as usePanelControls,
4822
+ it as usePanelGroup,
4823
+ ar as useResizablePanels
4824
+ };