json-schema-builder-react 0.0.5 → 0.0.6

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.
package/dist-lib/index.js CHANGED
@@ -1,2317 +1,20 @@
1
- import { jsx as n, jsxs as c, Fragment as Ee } from "react/jsx-runtime";
2
- import * as S from "react";
3
- import { createContext as nt, useContext as at, useState as B, useEffect as be, useMemo as ot, useCallback as _ } from "react";
4
- import { Slot as it } from "@radix-ui/react-slot";
5
- import { ChevronDown as ye, Check as Oe, ChevronUp as st, X as lt, Type as dt, Hash as ze, CheckSquare as ct, Braces as mt, List as ut, FileText as pt, Plus as Q, Pencil as ht, Trash2 as De, CheckCircle2 as ft, Copy as gt, Download as bt, ChevronRight as yt, Moon as vt, Sun as xt, Upload as wt } from "lucide-react";
6
- import * as U from "@radix-ui/react-tooltip";
7
- import * as z from "@radix-ui/react-select";
8
- import * as D from "@radix-ui/react-dialog";
9
- import * as Me from "@radix-ui/react-label";
10
- import * as se from "@radix-ui/react-checkbox";
11
- function qe(e) {
12
- var r, t, o = "";
13
- if (typeof e == "string" || typeof e == "number") o += e;
14
- else if (typeof e == "object") if (Array.isArray(e)) {
15
- var a = e.length;
16
- for (r = 0; r < a; r++) e[r] && (t = qe(e[r])) && (o && (o += " "), o += t);
17
- } else for (t in e) e[t] && (o && (o += " "), o += t);
18
- return o;
1
+ import { jsx as e, jsxs as s, Fragment as le } from "react/jsx-runtime";
2
+ import * as y from "react";
3
+ import { createContext as ke, useContext as Ie, useState as O, useEffect as Z, useMemo as Te, useCallback as E } from "react";
4
+ import { Slot as Se } from "@radix-ui/react-slot";
5
+ import { cva as de } from "class-variance-authority";
6
+ import { clsx as De } from "clsx";
7
+ import { twMerge as je } from "tailwind-merge";
8
+ import { ChevronDown as ee, Check as oe, ChevronUp as qe, X as Le, Type as Pe, Hash as se, CheckSquare as Oe, Braces as Re, List as Ee, FileText as Fe, Plus as B, Pencil as ze, Trash2 as ce, CheckCircle2 as Be, Copy as Ae, Download as Me, ChevronRight as $e, Moon as Ke, Sun as Je, Upload as Ve } from "lucide-react";
9
+ import * as F from "@radix-ui/react-tooltip";
10
+ import * as w from "@radix-ui/react-select";
11
+ import * as P from "@radix-ui/react-dialog";
12
+ import * as me from "@radix-ui/react-label";
13
+ import * as V from "@radix-ui/react-checkbox";
14
+ function p(...t) {
15
+ return je(De(t));
19
16
  }
20
- function Fe() {
21
- for (var e, r, t = 0, o = "", a = arguments.length; t < a; t++) (e = arguments[t]) && (r = qe(e)) && (o && (o += " "), o += r);
22
- return o;
23
- }
24
- const je = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, Pe = Fe, Be = (e, r) => (t) => {
25
- var o;
26
- if ((r == null ? void 0 : r.variants) == null) return Pe(e, t == null ? void 0 : t.class, t == null ? void 0 : t.className);
27
- const { variants: a, defaultVariants: i } = r, s = Object.keys(a).map((m) => {
28
- const d = t == null ? void 0 : t[m], f = i == null ? void 0 : i[m];
29
- if (d === null) return null;
30
- const g = je(d) || je(f);
31
- return a[m][g];
32
- }), l = t && Object.entries(t).reduce((m, d) => {
33
- let [f, g] = d;
34
- return g === void 0 || (m[f] = g), m;
35
- }, {}), h = r == null || (o = r.compoundVariants) === null || o === void 0 ? void 0 : o.reduce((m, d) => {
36
- let { class: f, className: g, ...w } = d;
37
- return Object.entries(w).every((v) => {
38
- let [x, p] = v;
39
- return Array.isArray(p) ? p.includes({
40
- ...i,
41
- ...l
42
- }[x]) : {
43
- ...i,
44
- ...l
45
- }[x] === p;
46
- }) ? [
47
- ...m,
48
- f,
49
- g
50
- ] : m;
51
- }, []);
52
- return Pe(e, s, h, t == null ? void 0 : t.class, t == null ? void 0 : t.className);
53
- }, ve = "-", Nt = (e) => {
54
- const r = kt(e), {
55
- conflictingClassGroups: t,
56
- conflictingClassGroupModifiers: o
57
- } = e;
58
- return {
59
- getClassGroupId: (s) => {
60
- const l = s.split(ve);
61
- return l[0] === "" && l.length !== 1 && l.shift(), Ge(l, r) || Ct(s);
62
- },
63
- getConflictingClassGroupIds: (s, l) => {
64
- const h = t[s] || [];
65
- return l && o[s] ? [...h, ...o[s]] : h;
66
- }
67
- };
68
- }, Ge = (e, r) => {
69
- var s;
70
- if (e.length === 0)
71
- return r.classGroupId;
72
- const t = e[0], o = r.nextPart.get(t), a = o ? Ge(e.slice(1), o) : void 0;
73
- if (a)
74
- return a;
75
- if (r.validators.length === 0)
76
- return;
77
- const i = e.join(ve);
78
- return (s = r.validators.find(({
79
- validator: l
80
- }) => l(i))) == null ? void 0 : s.classGroupId;
81
- }, Re = /^\[(.+)\]$/, Ct = (e) => {
82
- if (Re.test(e)) {
83
- const r = Re.exec(e)[1], t = r == null ? void 0 : r.substring(0, r.indexOf(":"));
84
- if (t)
85
- return "arbitrary.." + t;
86
- }
87
- }, kt = (e) => {
88
- const {
89
- theme: r,
90
- prefix: t
91
- } = e, o = {
92
- nextPart: /* @__PURE__ */ new Map(),
93
- validators: []
94
- };
95
- return St(Object.entries(e.classGroups), t).forEach(([i, s]) => {
96
- le(s, o, i, r);
97
- }), o;
98
- }, le = (e, r, t, o) => {
99
- e.forEach((a) => {
100
- if (typeof a == "string") {
101
- const i = a === "" ? r : Ae(r, a);
102
- i.classGroupId = t;
103
- return;
104
- }
105
- if (typeof a == "function") {
106
- if (It(a)) {
107
- le(a(o), r, t, o);
108
- return;
109
- }
110
- r.validators.push({
111
- validator: a,
112
- classGroupId: t
113
- });
114
- return;
115
- }
116
- Object.entries(a).forEach(([i, s]) => {
117
- le(s, Ae(r, i), t, o);
118
- });
119
- });
120
- }, Ae = (e, r) => {
121
- let t = e;
122
- return r.split(ve).forEach((o) => {
123
- t.nextPart.has(o) || t.nextPart.set(o, {
124
- nextPart: /* @__PURE__ */ new Map(),
125
- validators: []
126
- }), t = t.nextPart.get(o);
127
- }), t;
128
- }, It = (e) => e.isThemeGetter, St = (e, r) => r ? e.map(([t, o]) => {
129
- const a = o.map((i) => typeof i == "string" ? r + i : typeof i == "object" ? Object.fromEntries(Object.entries(i).map(([s, l]) => [r + s, l])) : i);
130
- return [t, a];
131
- }) : e, Tt = (e) => {
132
- if (e < 1)
133
- return {
134
- get: () => {
135
- },
136
- set: () => {
137
- }
138
- };
139
- let r = 0, t = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
140
- const a = (i, s) => {
141
- t.set(i, s), r++, r > e && (r = 0, o = t, t = /* @__PURE__ */ new Map());
142
- };
143
- return {
144
- get(i) {
145
- let s = t.get(i);
146
- if (s !== void 0)
147
- return s;
148
- if ((s = o.get(i)) !== void 0)
149
- return a(i, s), s;
150
- },
151
- set(i, s) {
152
- t.has(i) ? t.set(i, s) : a(i, s);
153
- }
154
- };
155
- }, Ve = "!", zt = (e) => {
156
- const {
157
- separator: r,
158
- experimentalParseClassName: t
159
- } = e, o = r.length === 1, a = r[0], i = r.length, s = (l) => {
160
- const h = [];
161
- let m = 0, d = 0, f;
162
- for (let p = 0; p < l.length; p++) {
163
- let N = l[p];
164
- if (m === 0) {
165
- if (N === a && (o || l.slice(p, p + i) === r)) {
166
- h.push(l.slice(d, p)), d = p + i;
167
- continue;
168
- }
169
- if (N === "/") {
170
- f = p;
171
- continue;
172
- }
173
- }
174
- N === "[" ? m++ : N === "]" && m--;
175
- }
176
- const g = h.length === 0 ? l : l.substring(d), w = g.startsWith(Ve), v = w ? g.substring(1) : g, x = f && f > d ? f - d : void 0;
177
- return {
178
- modifiers: h,
179
- hasImportantModifier: w,
180
- baseClassName: v,
181
- maybePostfixModifierPosition: x
182
- };
183
- };
184
- return t ? (l) => t({
185
- className: l,
186
- parseClassName: s
187
- }) : s;
188
- }, jt = (e) => {
189
- if (e.length <= 1)
190
- return e;
191
- const r = [];
192
- let t = [];
193
- return e.forEach((o) => {
194
- o[0] === "[" ? (r.push(...t.sort(), o), t = []) : t.push(o);
195
- }), r.push(...t.sort()), r;
196
- }, Pt = (e) => ({
197
- cache: Tt(e.cacheSize),
198
- parseClassName: zt(e),
199
- ...Nt(e)
200
- }), Rt = /\s+/, At = (e, r) => {
201
- const {
202
- parseClassName: t,
203
- getClassGroupId: o,
204
- getConflictingClassGroupIds: a
205
- } = r, i = [], s = e.trim().split(Rt);
206
- let l = "";
207
- for (let h = s.length - 1; h >= 0; h -= 1) {
208
- const m = s[h], {
209
- modifiers: d,
210
- hasImportantModifier: f,
211
- baseClassName: g,
212
- maybePostfixModifierPosition: w
213
- } = t(m);
214
- let v = !!w, x = o(v ? g.substring(0, w) : g);
215
- if (!x) {
216
- if (!v) {
217
- l = m + (l.length > 0 ? " " + l : l);
218
- continue;
219
- }
220
- if (x = o(g), !x) {
221
- l = m + (l.length > 0 ? " " + l : l);
222
- continue;
223
- }
224
- v = !1;
225
- }
226
- const p = jt(d).join(":"), N = f ? p + Ve : p, b = N + x;
227
- if (i.includes(b))
228
- continue;
229
- i.push(b);
230
- const A = a(x, v);
231
- for (let u = 0; u < A.length; ++u) {
232
- const j = A[u];
233
- i.push(N + j);
234
- }
235
- l = m + (l.length > 0 ? " " + l : l);
236
- }
237
- return l;
238
- };
239
- function Lt() {
240
- let e = 0, r, t, o = "";
241
- for (; e < arguments.length; )
242
- (r = arguments[e++]) && (t = $e(r)) && (o && (o += " "), o += t);
243
- return o;
244
- }
245
- const $e = (e) => {
246
- if (typeof e == "string")
247
- return e;
248
- let r, t = "";
249
- for (let o = 0; o < e.length; o++)
250
- e[o] && (r = $e(e[o])) && (t && (t += " "), t += r);
251
- return t;
252
- };
253
- function Et(e, ...r) {
254
- let t, o, a, i = s;
255
- function s(h) {
256
- const m = r.reduce((d, f) => f(d), e());
257
- return t = Pt(m), o = t.cache.get, a = t.cache.set, i = l, l(h);
258
- }
259
- function l(h) {
260
- const m = o(h);
261
- if (m)
262
- return m;
263
- const d = At(h, t);
264
- return a(h, d), d;
265
- }
266
- return function() {
267
- return i(Lt.apply(null, arguments));
268
- };
269
- }
270
- const I = (e) => {
271
- const r = (t) => t[e] || [];
272
- return r.isThemeGetter = !0, r;
273
- }, _e = /^\[(?:([a-z-]+):)?(.+)\]$/i, Ot = /^\d+\/\d+$/, Dt = /* @__PURE__ */ new Set(["px", "full", "screen"]), Mt = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, qt = /\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$/, Ft = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, Bt = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, Gt = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, F = (e) => J(e) || Dt.has(e) || Ot.test(e), G = (e) => W(e, "length", Ht), J = (e) => !!e && !Number.isNaN(Number(e)), ie = (e) => W(e, "number", J), X = (e) => !!e && Number.isInteger(Number(e)), Vt = (e) => e.endsWith("%") && J(e.slice(0, -1)), y = (e) => _e.test(e), V = (e) => Mt.test(e), $t = /* @__PURE__ */ new Set(["length", "size", "percentage"]), _t = (e) => W(e, $t, Ke), Kt = (e) => W(e, "position", Ke), Jt = /* @__PURE__ */ new Set(["image", "url"]), Ut = (e) => W(e, Jt, Zt), Wt = (e) => W(e, "", Xt), Z = () => !0, W = (e, r, t) => {
274
- const o = _e.exec(e);
275
- return o ? o[1] ? typeof r == "string" ? o[1] === r : r.has(o[1]) : t(o[2]) : !1;
276
- }, Ht = (e) => (
277
- // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
278
- // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
279
- // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
280
- qt.test(e) && !Ft.test(e)
281
- ), Ke = () => !1, Xt = (e) => Bt.test(e), Zt = (e) => Gt.test(e), Qt = () => {
282
- const e = I("colors"), r = I("spacing"), t = I("blur"), o = I("brightness"), a = I("borderColor"), i = I("borderRadius"), s = I("borderSpacing"), l = I("borderWidth"), h = I("contrast"), m = I("grayscale"), d = I("hueRotate"), f = I("invert"), g = I("gap"), w = I("gradientColorStops"), v = I("gradientColorStopPositions"), x = I("inset"), p = I("margin"), N = I("opacity"), b = I("padding"), A = I("saturate"), u = I("scale"), j = I("sepia"), $ = I("skew"), K = I("space"), P = I("translate"), O = () => ["auto", "contain", "none"], M = () => ["auto", "hidden", "clip", "visible", "scroll"], Y = () => ["auto", y, r], k = () => [y, r], ke = () => ["", F, G], ee = () => ["auto", J, y], Ie = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"], te = () => ["solid", "dashed", "dotted", "double", "none"], Se = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], oe = () => ["start", "end", "center", "between", "around", "evenly", "stretch"], H = () => ["", "0", y], Te = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], q = () => [J, y];
283
- return {
284
- cacheSize: 500,
285
- separator: ":",
286
- theme: {
287
- colors: [Z],
288
- spacing: [F, G],
289
- blur: ["none", "", V, y],
290
- brightness: q(),
291
- borderColor: [e],
292
- borderRadius: ["none", "", "full", V, y],
293
- borderSpacing: k(),
294
- borderWidth: ke(),
295
- contrast: q(),
296
- grayscale: H(),
297
- hueRotate: q(),
298
- invert: H(),
299
- gap: k(),
300
- gradientColorStops: [e],
301
- gradientColorStopPositions: [Vt, G],
302
- inset: Y(),
303
- margin: Y(),
304
- opacity: q(),
305
- padding: k(),
306
- saturate: q(),
307
- scale: q(),
308
- sepia: H(),
309
- skew: q(),
310
- space: k(),
311
- translate: k()
312
- },
313
- classGroups: {
314
- // Layout
315
- /**
316
- * Aspect Ratio
317
- * @see https://tailwindcss.com/docs/aspect-ratio
318
- */
319
- aspect: [{
320
- aspect: ["auto", "square", "video", y]
321
- }],
322
- /**
323
- * Container
324
- * @see https://tailwindcss.com/docs/container
325
- */
326
- container: ["container"],
327
- /**
328
- * Columns
329
- * @see https://tailwindcss.com/docs/columns
330
- */
331
- columns: [{
332
- columns: [V]
333
- }],
334
- /**
335
- * Break After
336
- * @see https://tailwindcss.com/docs/break-after
337
- */
338
- "break-after": [{
339
- "break-after": Te()
340
- }],
341
- /**
342
- * Break Before
343
- * @see https://tailwindcss.com/docs/break-before
344
- */
345
- "break-before": [{
346
- "break-before": Te()
347
- }],
348
- /**
349
- * Break Inside
350
- * @see https://tailwindcss.com/docs/break-inside
351
- */
352
- "break-inside": [{
353
- "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
354
- }],
355
- /**
356
- * Box Decoration Break
357
- * @see https://tailwindcss.com/docs/box-decoration-break
358
- */
359
- "box-decoration": [{
360
- "box-decoration": ["slice", "clone"]
361
- }],
362
- /**
363
- * Box Sizing
364
- * @see https://tailwindcss.com/docs/box-sizing
365
- */
366
- box: [{
367
- box: ["border", "content"]
368
- }],
369
- /**
370
- * Display
371
- * @see https://tailwindcss.com/docs/display
372
- */
373
- 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"],
374
- /**
375
- * Floats
376
- * @see https://tailwindcss.com/docs/float
377
- */
378
- float: [{
379
- float: ["right", "left", "none", "start", "end"]
380
- }],
381
- /**
382
- * Clear
383
- * @see https://tailwindcss.com/docs/clear
384
- */
385
- clear: [{
386
- clear: ["left", "right", "both", "none", "start", "end"]
387
- }],
388
- /**
389
- * Isolation
390
- * @see https://tailwindcss.com/docs/isolation
391
- */
392
- isolation: ["isolate", "isolation-auto"],
393
- /**
394
- * Object Fit
395
- * @see https://tailwindcss.com/docs/object-fit
396
- */
397
- "object-fit": [{
398
- object: ["contain", "cover", "fill", "none", "scale-down"]
399
- }],
400
- /**
401
- * Object Position
402
- * @see https://tailwindcss.com/docs/object-position
403
- */
404
- "object-position": [{
405
- object: [...Ie(), y]
406
- }],
407
- /**
408
- * Overflow
409
- * @see https://tailwindcss.com/docs/overflow
410
- */
411
- overflow: [{
412
- overflow: M()
413
- }],
414
- /**
415
- * Overflow X
416
- * @see https://tailwindcss.com/docs/overflow
417
- */
418
- "overflow-x": [{
419
- "overflow-x": M()
420
- }],
421
- /**
422
- * Overflow Y
423
- * @see https://tailwindcss.com/docs/overflow
424
- */
425
- "overflow-y": [{
426
- "overflow-y": M()
427
- }],
428
- /**
429
- * Overscroll Behavior
430
- * @see https://tailwindcss.com/docs/overscroll-behavior
431
- */
432
- overscroll: [{
433
- overscroll: O()
434
- }],
435
- /**
436
- * Overscroll Behavior X
437
- * @see https://tailwindcss.com/docs/overscroll-behavior
438
- */
439
- "overscroll-x": [{
440
- "overscroll-x": O()
441
- }],
442
- /**
443
- * Overscroll Behavior Y
444
- * @see https://tailwindcss.com/docs/overscroll-behavior
445
- */
446
- "overscroll-y": [{
447
- "overscroll-y": O()
448
- }],
449
- /**
450
- * Position
451
- * @see https://tailwindcss.com/docs/position
452
- */
453
- position: ["static", "fixed", "absolute", "relative", "sticky"],
454
- /**
455
- * Top / Right / Bottom / Left
456
- * @see https://tailwindcss.com/docs/top-right-bottom-left
457
- */
458
- inset: [{
459
- inset: [x]
460
- }],
461
- /**
462
- * Right / Left
463
- * @see https://tailwindcss.com/docs/top-right-bottom-left
464
- */
465
- "inset-x": [{
466
- "inset-x": [x]
467
- }],
468
- /**
469
- * Top / Bottom
470
- * @see https://tailwindcss.com/docs/top-right-bottom-left
471
- */
472
- "inset-y": [{
473
- "inset-y": [x]
474
- }],
475
- /**
476
- * Start
477
- * @see https://tailwindcss.com/docs/top-right-bottom-left
478
- */
479
- start: [{
480
- start: [x]
481
- }],
482
- /**
483
- * End
484
- * @see https://tailwindcss.com/docs/top-right-bottom-left
485
- */
486
- end: [{
487
- end: [x]
488
- }],
489
- /**
490
- * Top
491
- * @see https://tailwindcss.com/docs/top-right-bottom-left
492
- */
493
- top: [{
494
- top: [x]
495
- }],
496
- /**
497
- * Right
498
- * @see https://tailwindcss.com/docs/top-right-bottom-left
499
- */
500
- right: [{
501
- right: [x]
502
- }],
503
- /**
504
- * Bottom
505
- * @see https://tailwindcss.com/docs/top-right-bottom-left
506
- */
507
- bottom: [{
508
- bottom: [x]
509
- }],
510
- /**
511
- * Left
512
- * @see https://tailwindcss.com/docs/top-right-bottom-left
513
- */
514
- left: [{
515
- left: [x]
516
- }],
517
- /**
518
- * Visibility
519
- * @see https://tailwindcss.com/docs/visibility
520
- */
521
- visibility: ["visible", "invisible", "collapse"],
522
- /**
523
- * Z-Index
524
- * @see https://tailwindcss.com/docs/z-index
525
- */
526
- z: [{
527
- z: ["auto", X, y]
528
- }],
529
- // Flexbox and Grid
530
- /**
531
- * Flex Basis
532
- * @see https://tailwindcss.com/docs/flex-basis
533
- */
534
- basis: [{
535
- basis: Y()
536
- }],
537
- /**
538
- * Flex Direction
539
- * @see https://tailwindcss.com/docs/flex-direction
540
- */
541
- "flex-direction": [{
542
- flex: ["row", "row-reverse", "col", "col-reverse"]
543
- }],
544
- /**
545
- * Flex Wrap
546
- * @see https://tailwindcss.com/docs/flex-wrap
547
- */
548
- "flex-wrap": [{
549
- flex: ["wrap", "wrap-reverse", "nowrap"]
550
- }],
551
- /**
552
- * Flex
553
- * @see https://tailwindcss.com/docs/flex
554
- */
555
- flex: [{
556
- flex: ["1", "auto", "initial", "none", y]
557
- }],
558
- /**
559
- * Flex Grow
560
- * @see https://tailwindcss.com/docs/flex-grow
561
- */
562
- grow: [{
563
- grow: H()
564
- }],
565
- /**
566
- * Flex Shrink
567
- * @see https://tailwindcss.com/docs/flex-shrink
568
- */
569
- shrink: [{
570
- shrink: H()
571
- }],
572
- /**
573
- * Order
574
- * @see https://tailwindcss.com/docs/order
575
- */
576
- order: [{
577
- order: ["first", "last", "none", X, y]
578
- }],
579
- /**
580
- * Grid Template Columns
581
- * @see https://tailwindcss.com/docs/grid-template-columns
582
- */
583
- "grid-cols": [{
584
- "grid-cols": [Z]
585
- }],
586
- /**
587
- * Grid Column Start / End
588
- * @see https://tailwindcss.com/docs/grid-column
589
- */
590
- "col-start-end": [{
591
- col: ["auto", {
592
- span: ["full", X, y]
593
- }, y]
594
- }],
595
- /**
596
- * Grid Column Start
597
- * @see https://tailwindcss.com/docs/grid-column
598
- */
599
- "col-start": [{
600
- "col-start": ee()
601
- }],
602
- /**
603
- * Grid Column End
604
- * @see https://tailwindcss.com/docs/grid-column
605
- */
606
- "col-end": [{
607
- "col-end": ee()
608
- }],
609
- /**
610
- * Grid Template Rows
611
- * @see https://tailwindcss.com/docs/grid-template-rows
612
- */
613
- "grid-rows": [{
614
- "grid-rows": [Z]
615
- }],
616
- /**
617
- * Grid Row Start / End
618
- * @see https://tailwindcss.com/docs/grid-row
619
- */
620
- "row-start-end": [{
621
- row: ["auto", {
622
- span: [X, y]
623
- }, y]
624
- }],
625
- /**
626
- * Grid Row Start
627
- * @see https://tailwindcss.com/docs/grid-row
628
- */
629
- "row-start": [{
630
- "row-start": ee()
631
- }],
632
- /**
633
- * Grid Row End
634
- * @see https://tailwindcss.com/docs/grid-row
635
- */
636
- "row-end": [{
637
- "row-end": ee()
638
- }],
639
- /**
640
- * Grid Auto Flow
641
- * @see https://tailwindcss.com/docs/grid-auto-flow
642
- */
643
- "grid-flow": [{
644
- "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
645
- }],
646
- /**
647
- * Grid Auto Columns
648
- * @see https://tailwindcss.com/docs/grid-auto-columns
649
- */
650
- "auto-cols": [{
651
- "auto-cols": ["auto", "min", "max", "fr", y]
652
- }],
653
- /**
654
- * Grid Auto Rows
655
- * @see https://tailwindcss.com/docs/grid-auto-rows
656
- */
657
- "auto-rows": [{
658
- "auto-rows": ["auto", "min", "max", "fr", y]
659
- }],
660
- /**
661
- * Gap
662
- * @see https://tailwindcss.com/docs/gap
663
- */
664
- gap: [{
665
- gap: [g]
666
- }],
667
- /**
668
- * Gap X
669
- * @see https://tailwindcss.com/docs/gap
670
- */
671
- "gap-x": [{
672
- "gap-x": [g]
673
- }],
674
- /**
675
- * Gap Y
676
- * @see https://tailwindcss.com/docs/gap
677
- */
678
- "gap-y": [{
679
- "gap-y": [g]
680
- }],
681
- /**
682
- * Justify Content
683
- * @see https://tailwindcss.com/docs/justify-content
684
- */
685
- "justify-content": [{
686
- justify: ["normal", ...oe()]
687
- }],
688
- /**
689
- * Justify Items
690
- * @see https://tailwindcss.com/docs/justify-items
691
- */
692
- "justify-items": [{
693
- "justify-items": ["start", "end", "center", "stretch"]
694
- }],
695
- /**
696
- * Justify Self
697
- * @see https://tailwindcss.com/docs/justify-self
698
- */
699
- "justify-self": [{
700
- "justify-self": ["auto", "start", "end", "center", "stretch"]
701
- }],
702
- /**
703
- * Align Content
704
- * @see https://tailwindcss.com/docs/align-content
705
- */
706
- "align-content": [{
707
- content: ["normal", ...oe(), "baseline"]
708
- }],
709
- /**
710
- * Align Items
711
- * @see https://tailwindcss.com/docs/align-items
712
- */
713
- "align-items": [{
714
- items: ["start", "end", "center", "baseline", "stretch"]
715
- }],
716
- /**
717
- * Align Self
718
- * @see https://tailwindcss.com/docs/align-self
719
- */
720
- "align-self": [{
721
- self: ["auto", "start", "end", "center", "stretch", "baseline"]
722
- }],
723
- /**
724
- * Place Content
725
- * @see https://tailwindcss.com/docs/place-content
726
- */
727
- "place-content": [{
728
- "place-content": [...oe(), "baseline"]
729
- }],
730
- /**
731
- * Place Items
732
- * @see https://tailwindcss.com/docs/place-items
733
- */
734
- "place-items": [{
735
- "place-items": ["start", "end", "center", "baseline", "stretch"]
736
- }],
737
- /**
738
- * Place Self
739
- * @see https://tailwindcss.com/docs/place-self
740
- */
741
- "place-self": [{
742
- "place-self": ["auto", "start", "end", "center", "stretch"]
743
- }],
744
- // Spacing
745
- /**
746
- * Padding
747
- * @see https://tailwindcss.com/docs/padding
748
- */
749
- p: [{
750
- p: [b]
751
- }],
752
- /**
753
- * Padding X
754
- * @see https://tailwindcss.com/docs/padding
755
- */
756
- px: [{
757
- px: [b]
758
- }],
759
- /**
760
- * Padding Y
761
- * @see https://tailwindcss.com/docs/padding
762
- */
763
- py: [{
764
- py: [b]
765
- }],
766
- /**
767
- * Padding Start
768
- * @see https://tailwindcss.com/docs/padding
769
- */
770
- ps: [{
771
- ps: [b]
772
- }],
773
- /**
774
- * Padding End
775
- * @see https://tailwindcss.com/docs/padding
776
- */
777
- pe: [{
778
- pe: [b]
779
- }],
780
- /**
781
- * Padding Top
782
- * @see https://tailwindcss.com/docs/padding
783
- */
784
- pt: [{
785
- pt: [b]
786
- }],
787
- /**
788
- * Padding Right
789
- * @see https://tailwindcss.com/docs/padding
790
- */
791
- pr: [{
792
- pr: [b]
793
- }],
794
- /**
795
- * Padding Bottom
796
- * @see https://tailwindcss.com/docs/padding
797
- */
798
- pb: [{
799
- pb: [b]
800
- }],
801
- /**
802
- * Padding Left
803
- * @see https://tailwindcss.com/docs/padding
804
- */
805
- pl: [{
806
- pl: [b]
807
- }],
808
- /**
809
- * Margin
810
- * @see https://tailwindcss.com/docs/margin
811
- */
812
- m: [{
813
- m: [p]
814
- }],
815
- /**
816
- * Margin X
817
- * @see https://tailwindcss.com/docs/margin
818
- */
819
- mx: [{
820
- mx: [p]
821
- }],
822
- /**
823
- * Margin Y
824
- * @see https://tailwindcss.com/docs/margin
825
- */
826
- my: [{
827
- my: [p]
828
- }],
829
- /**
830
- * Margin Start
831
- * @see https://tailwindcss.com/docs/margin
832
- */
833
- ms: [{
834
- ms: [p]
835
- }],
836
- /**
837
- * Margin End
838
- * @see https://tailwindcss.com/docs/margin
839
- */
840
- me: [{
841
- me: [p]
842
- }],
843
- /**
844
- * Margin Top
845
- * @see https://tailwindcss.com/docs/margin
846
- */
847
- mt: [{
848
- mt: [p]
849
- }],
850
- /**
851
- * Margin Right
852
- * @see https://tailwindcss.com/docs/margin
853
- */
854
- mr: [{
855
- mr: [p]
856
- }],
857
- /**
858
- * Margin Bottom
859
- * @see https://tailwindcss.com/docs/margin
860
- */
861
- mb: [{
862
- mb: [p]
863
- }],
864
- /**
865
- * Margin Left
866
- * @see https://tailwindcss.com/docs/margin
867
- */
868
- ml: [{
869
- ml: [p]
870
- }],
871
- /**
872
- * Space Between X
873
- * @see https://tailwindcss.com/docs/space
874
- */
875
- "space-x": [{
876
- "space-x": [K]
877
- }],
878
- /**
879
- * Space Between X Reverse
880
- * @see https://tailwindcss.com/docs/space
881
- */
882
- "space-x-reverse": ["space-x-reverse"],
883
- /**
884
- * Space Between Y
885
- * @see https://tailwindcss.com/docs/space
886
- */
887
- "space-y": [{
888
- "space-y": [K]
889
- }],
890
- /**
891
- * Space Between Y Reverse
892
- * @see https://tailwindcss.com/docs/space
893
- */
894
- "space-y-reverse": ["space-y-reverse"],
895
- // Sizing
896
- /**
897
- * Width
898
- * @see https://tailwindcss.com/docs/width
899
- */
900
- w: [{
901
- w: ["auto", "min", "max", "fit", "svw", "lvw", "dvw", y, r]
902
- }],
903
- /**
904
- * Min-Width
905
- * @see https://tailwindcss.com/docs/min-width
906
- */
907
- "min-w": [{
908
- "min-w": [y, r, "min", "max", "fit"]
909
- }],
910
- /**
911
- * Max-Width
912
- * @see https://tailwindcss.com/docs/max-width
913
- */
914
- "max-w": [{
915
- "max-w": [y, r, "none", "full", "min", "max", "fit", "prose", {
916
- screen: [V]
917
- }, V]
918
- }],
919
- /**
920
- * Height
921
- * @see https://tailwindcss.com/docs/height
922
- */
923
- h: [{
924
- h: [y, r, "auto", "min", "max", "fit", "svh", "lvh", "dvh"]
925
- }],
926
- /**
927
- * Min-Height
928
- * @see https://tailwindcss.com/docs/min-height
929
- */
930
- "min-h": [{
931
- "min-h": [y, r, "min", "max", "fit", "svh", "lvh", "dvh"]
932
- }],
933
- /**
934
- * Max-Height
935
- * @see https://tailwindcss.com/docs/max-height
936
- */
937
- "max-h": [{
938
- "max-h": [y, r, "min", "max", "fit", "svh", "lvh", "dvh"]
939
- }],
940
- /**
941
- * Size
942
- * @see https://tailwindcss.com/docs/size
943
- */
944
- size: [{
945
- size: [y, r, "auto", "min", "max", "fit"]
946
- }],
947
- // Typography
948
- /**
949
- * Font Size
950
- * @see https://tailwindcss.com/docs/font-size
951
- */
952
- "font-size": [{
953
- text: ["base", V, G]
954
- }],
955
- /**
956
- * Font Smoothing
957
- * @see https://tailwindcss.com/docs/font-smoothing
958
- */
959
- "font-smoothing": ["antialiased", "subpixel-antialiased"],
960
- /**
961
- * Font Style
962
- * @see https://tailwindcss.com/docs/font-style
963
- */
964
- "font-style": ["italic", "not-italic"],
965
- /**
966
- * Font Weight
967
- * @see https://tailwindcss.com/docs/font-weight
968
- */
969
- "font-weight": [{
970
- font: ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black", ie]
971
- }],
972
- /**
973
- * Font Family
974
- * @see https://tailwindcss.com/docs/font-family
975
- */
976
- "font-family": [{
977
- font: [Z]
978
- }],
979
- /**
980
- * Font Variant Numeric
981
- * @see https://tailwindcss.com/docs/font-variant-numeric
982
- */
983
- "fvn-normal": ["normal-nums"],
984
- /**
985
- * Font Variant Numeric
986
- * @see https://tailwindcss.com/docs/font-variant-numeric
987
- */
988
- "fvn-ordinal": ["ordinal"],
989
- /**
990
- * Font Variant Numeric
991
- * @see https://tailwindcss.com/docs/font-variant-numeric
992
- */
993
- "fvn-slashed-zero": ["slashed-zero"],
994
- /**
995
- * Font Variant Numeric
996
- * @see https://tailwindcss.com/docs/font-variant-numeric
997
- */
998
- "fvn-figure": ["lining-nums", "oldstyle-nums"],
999
- /**
1000
- * Font Variant Numeric
1001
- * @see https://tailwindcss.com/docs/font-variant-numeric
1002
- */
1003
- "fvn-spacing": ["proportional-nums", "tabular-nums"],
1004
- /**
1005
- * Font Variant Numeric
1006
- * @see https://tailwindcss.com/docs/font-variant-numeric
1007
- */
1008
- "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
1009
- /**
1010
- * Letter Spacing
1011
- * @see https://tailwindcss.com/docs/letter-spacing
1012
- */
1013
- tracking: [{
1014
- tracking: ["tighter", "tight", "normal", "wide", "wider", "widest", y]
1015
- }],
1016
- /**
1017
- * Line Clamp
1018
- * @see https://tailwindcss.com/docs/line-clamp
1019
- */
1020
- "line-clamp": [{
1021
- "line-clamp": ["none", J, ie]
1022
- }],
1023
- /**
1024
- * Line Height
1025
- * @see https://tailwindcss.com/docs/line-height
1026
- */
1027
- leading: [{
1028
- leading: ["none", "tight", "snug", "normal", "relaxed", "loose", F, y]
1029
- }],
1030
- /**
1031
- * List Style Image
1032
- * @see https://tailwindcss.com/docs/list-style-image
1033
- */
1034
- "list-image": [{
1035
- "list-image": ["none", y]
1036
- }],
1037
- /**
1038
- * List Style Type
1039
- * @see https://tailwindcss.com/docs/list-style-type
1040
- */
1041
- "list-style-type": [{
1042
- list: ["none", "disc", "decimal", y]
1043
- }],
1044
- /**
1045
- * List Style Position
1046
- * @see https://tailwindcss.com/docs/list-style-position
1047
- */
1048
- "list-style-position": [{
1049
- list: ["inside", "outside"]
1050
- }],
1051
- /**
1052
- * Placeholder Color
1053
- * @deprecated since Tailwind CSS v3.0.0
1054
- * @see https://tailwindcss.com/docs/placeholder-color
1055
- */
1056
- "placeholder-color": [{
1057
- placeholder: [e]
1058
- }],
1059
- /**
1060
- * Placeholder Opacity
1061
- * @see https://tailwindcss.com/docs/placeholder-opacity
1062
- */
1063
- "placeholder-opacity": [{
1064
- "placeholder-opacity": [N]
1065
- }],
1066
- /**
1067
- * Text Alignment
1068
- * @see https://tailwindcss.com/docs/text-align
1069
- */
1070
- "text-alignment": [{
1071
- text: ["left", "center", "right", "justify", "start", "end"]
1072
- }],
1073
- /**
1074
- * Text Color
1075
- * @see https://tailwindcss.com/docs/text-color
1076
- */
1077
- "text-color": [{
1078
- text: [e]
1079
- }],
1080
- /**
1081
- * Text Opacity
1082
- * @see https://tailwindcss.com/docs/text-opacity
1083
- */
1084
- "text-opacity": [{
1085
- "text-opacity": [N]
1086
- }],
1087
- /**
1088
- * Text Decoration
1089
- * @see https://tailwindcss.com/docs/text-decoration
1090
- */
1091
- "text-decoration": ["underline", "overline", "line-through", "no-underline"],
1092
- /**
1093
- * Text Decoration Style
1094
- * @see https://tailwindcss.com/docs/text-decoration-style
1095
- */
1096
- "text-decoration-style": [{
1097
- decoration: [...te(), "wavy"]
1098
- }],
1099
- /**
1100
- * Text Decoration Thickness
1101
- * @see https://tailwindcss.com/docs/text-decoration-thickness
1102
- */
1103
- "text-decoration-thickness": [{
1104
- decoration: ["auto", "from-font", F, G]
1105
- }],
1106
- /**
1107
- * Text Underline Offset
1108
- * @see https://tailwindcss.com/docs/text-underline-offset
1109
- */
1110
- "underline-offset": [{
1111
- "underline-offset": ["auto", F, y]
1112
- }],
1113
- /**
1114
- * Text Decoration Color
1115
- * @see https://tailwindcss.com/docs/text-decoration-color
1116
- */
1117
- "text-decoration-color": [{
1118
- decoration: [e]
1119
- }],
1120
- /**
1121
- * Text Transform
1122
- * @see https://tailwindcss.com/docs/text-transform
1123
- */
1124
- "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1125
- /**
1126
- * Text Overflow
1127
- * @see https://tailwindcss.com/docs/text-overflow
1128
- */
1129
- "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1130
- /**
1131
- * Text Wrap
1132
- * @see https://tailwindcss.com/docs/text-wrap
1133
- */
1134
- "text-wrap": [{
1135
- text: ["wrap", "nowrap", "balance", "pretty"]
1136
- }],
1137
- /**
1138
- * Text Indent
1139
- * @see https://tailwindcss.com/docs/text-indent
1140
- */
1141
- indent: [{
1142
- indent: k()
1143
- }],
1144
- /**
1145
- * Vertical Alignment
1146
- * @see https://tailwindcss.com/docs/vertical-align
1147
- */
1148
- "vertical-align": [{
1149
- align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", y]
1150
- }],
1151
- /**
1152
- * Whitespace
1153
- * @see https://tailwindcss.com/docs/whitespace
1154
- */
1155
- whitespace: [{
1156
- whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1157
- }],
1158
- /**
1159
- * Word Break
1160
- * @see https://tailwindcss.com/docs/word-break
1161
- */
1162
- break: [{
1163
- break: ["normal", "words", "all", "keep"]
1164
- }],
1165
- /**
1166
- * Hyphens
1167
- * @see https://tailwindcss.com/docs/hyphens
1168
- */
1169
- hyphens: [{
1170
- hyphens: ["none", "manual", "auto"]
1171
- }],
1172
- /**
1173
- * Content
1174
- * @see https://tailwindcss.com/docs/content
1175
- */
1176
- content: [{
1177
- content: ["none", y]
1178
- }],
1179
- // Backgrounds
1180
- /**
1181
- * Background Attachment
1182
- * @see https://tailwindcss.com/docs/background-attachment
1183
- */
1184
- "bg-attachment": [{
1185
- bg: ["fixed", "local", "scroll"]
1186
- }],
1187
- /**
1188
- * Background Clip
1189
- * @see https://tailwindcss.com/docs/background-clip
1190
- */
1191
- "bg-clip": [{
1192
- "bg-clip": ["border", "padding", "content", "text"]
1193
- }],
1194
- /**
1195
- * Background Opacity
1196
- * @deprecated since Tailwind CSS v3.0.0
1197
- * @see https://tailwindcss.com/docs/background-opacity
1198
- */
1199
- "bg-opacity": [{
1200
- "bg-opacity": [N]
1201
- }],
1202
- /**
1203
- * Background Origin
1204
- * @see https://tailwindcss.com/docs/background-origin
1205
- */
1206
- "bg-origin": [{
1207
- "bg-origin": ["border", "padding", "content"]
1208
- }],
1209
- /**
1210
- * Background Position
1211
- * @see https://tailwindcss.com/docs/background-position
1212
- */
1213
- "bg-position": [{
1214
- bg: [...Ie(), Kt]
1215
- }],
1216
- /**
1217
- * Background Repeat
1218
- * @see https://tailwindcss.com/docs/background-repeat
1219
- */
1220
- "bg-repeat": [{
1221
- bg: ["no-repeat", {
1222
- repeat: ["", "x", "y", "round", "space"]
1223
- }]
1224
- }],
1225
- /**
1226
- * Background Size
1227
- * @see https://tailwindcss.com/docs/background-size
1228
- */
1229
- "bg-size": [{
1230
- bg: ["auto", "cover", "contain", _t]
1231
- }],
1232
- /**
1233
- * Background Image
1234
- * @see https://tailwindcss.com/docs/background-image
1235
- */
1236
- "bg-image": [{
1237
- bg: ["none", {
1238
- "gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1239
- }, Ut]
1240
- }],
1241
- /**
1242
- * Background Color
1243
- * @see https://tailwindcss.com/docs/background-color
1244
- */
1245
- "bg-color": [{
1246
- bg: [e]
1247
- }],
1248
- /**
1249
- * Gradient Color Stops From Position
1250
- * @see https://tailwindcss.com/docs/gradient-color-stops
1251
- */
1252
- "gradient-from-pos": [{
1253
- from: [v]
1254
- }],
1255
- /**
1256
- * Gradient Color Stops Via Position
1257
- * @see https://tailwindcss.com/docs/gradient-color-stops
1258
- */
1259
- "gradient-via-pos": [{
1260
- via: [v]
1261
- }],
1262
- /**
1263
- * Gradient Color Stops To Position
1264
- * @see https://tailwindcss.com/docs/gradient-color-stops
1265
- */
1266
- "gradient-to-pos": [{
1267
- to: [v]
1268
- }],
1269
- /**
1270
- * Gradient Color Stops From
1271
- * @see https://tailwindcss.com/docs/gradient-color-stops
1272
- */
1273
- "gradient-from": [{
1274
- from: [w]
1275
- }],
1276
- /**
1277
- * Gradient Color Stops Via
1278
- * @see https://tailwindcss.com/docs/gradient-color-stops
1279
- */
1280
- "gradient-via": [{
1281
- via: [w]
1282
- }],
1283
- /**
1284
- * Gradient Color Stops To
1285
- * @see https://tailwindcss.com/docs/gradient-color-stops
1286
- */
1287
- "gradient-to": [{
1288
- to: [w]
1289
- }],
1290
- // Borders
1291
- /**
1292
- * Border Radius
1293
- * @see https://tailwindcss.com/docs/border-radius
1294
- */
1295
- rounded: [{
1296
- rounded: [i]
1297
- }],
1298
- /**
1299
- * Border Radius Start
1300
- * @see https://tailwindcss.com/docs/border-radius
1301
- */
1302
- "rounded-s": [{
1303
- "rounded-s": [i]
1304
- }],
1305
- /**
1306
- * Border Radius End
1307
- * @see https://tailwindcss.com/docs/border-radius
1308
- */
1309
- "rounded-e": [{
1310
- "rounded-e": [i]
1311
- }],
1312
- /**
1313
- * Border Radius Top
1314
- * @see https://tailwindcss.com/docs/border-radius
1315
- */
1316
- "rounded-t": [{
1317
- "rounded-t": [i]
1318
- }],
1319
- /**
1320
- * Border Radius Right
1321
- * @see https://tailwindcss.com/docs/border-radius
1322
- */
1323
- "rounded-r": [{
1324
- "rounded-r": [i]
1325
- }],
1326
- /**
1327
- * Border Radius Bottom
1328
- * @see https://tailwindcss.com/docs/border-radius
1329
- */
1330
- "rounded-b": [{
1331
- "rounded-b": [i]
1332
- }],
1333
- /**
1334
- * Border Radius Left
1335
- * @see https://tailwindcss.com/docs/border-radius
1336
- */
1337
- "rounded-l": [{
1338
- "rounded-l": [i]
1339
- }],
1340
- /**
1341
- * Border Radius Start Start
1342
- * @see https://tailwindcss.com/docs/border-radius
1343
- */
1344
- "rounded-ss": [{
1345
- "rounded-ss": [i]
1346
- }],
1347
- /**
1348
- * Border Radius Start End
1349
- * @see https://tailwindcss.com/docs/border-radius
1350
- */
1351
- "rounded-se": [{
1352
- "rounded-se": [i]
1353
- }],
1354
- /**
1355
- * Border Radius End End
1356
- * @see https://tailwindcss.com/docs/border-radius
1357
- */
1358
- "rounded-ee": [{
1359
- "rounded-ee": [i]
1360
- }],
1361
- /**
1362
- * Border Radius End Start
1363
- * @see https://tailwindcss.com/docs/border-radius
1364
- */
1365
- "rounded-es": [{
1366
- "rounded-es": [i]
1367
- }],
1368
- /**
1369
- * Border Radius Top Left
1370
- * @see https://tailwindcss.com/docs/border-radius
1371
- */
1372
- "rounded-tl": [{
1373
- "rounded-tl": [i]
1374
- }],
1375
- /**
1376
- * Border Radius Top Right
1377
- * @see https://tailwindcss.com/docs/border-radius
1378
- */
1379
- "rounded-tr": [{
1380
- "rounded-tr": [i]
1381
- }],
1382
- /**
1383
- * Border Radius Bottom Right
1384
- * @see https://tailwindcss.com/docs/border-radius
1385
- */
1386
- "rounded-br": [{
1387
- "rounded-br": [i]
1388
- }],
1389
- /**
1390
- * Border Radius Bottom Left
1391
- * @see https://tailwindcss.com/docs/border-radius
1392
- */
1393
- "rounded-bl": [{
1394
- "rounded-bl": [i]
1395
- }],
1396
- /**
1397
- * Border Width
1398
- * @see https://tailwindcss.com/docs/border-width
1399
- */
1400
- "border-w": [{
1401
- border: [l]
1402
- }],
1403
- /**
1404
- * Border Width X
1405
- * @see https://tailwindcss.com/docs/border-width
1406
- */
1407
- "border-w-x": [{
1408
- "border-x": [l]
1409
- }],
1410
- /**
1411
- * Border Width Y
1412
- * @see https://tailwindcss.com/docs/border-width
1413
- */
1414
- "border-w-y": [{
1415
- "border-y": [l]
1416
- }],
1417
- /**
1418
- * Border Width Start
1419
- * @see https://tailwindcss.com/docs/border-width
1420
- */
1421
- "border-w-s": [{
1422
- "border-s": [l]
1423
- }],
1424
- /**
1425
- * Border Width End
1426
- * @see https://tailwindcss.com/docs/border-width
1427
- */
1428
- "border-w-e": [{
1429
- "border-e": [l]
1430
- }],
1431
- /**
1432
- * Border Width Top
1433
- * @see https://tailwindcss.com/docs/border-width
1434
- */
1435
- "border-w-t": [{
1436
- "border-t": [l]
1437
- }],
1438
- /**
1439
- * Border Width Right
1440
- * @see https://tailwindcss.com/docs/border-width
1441
- */
1442
- "border-w-r": [{
1443
- "border-r": [l]
1444
- }],
1445
- /**
1446
- * Border Width Bottom
1447
- * @see https://tailwindcss.com/docs/border-width
1448
- */
1449
- "border-w-b": [{
1450
- "border-b": [l]
1451
- }],
1452
- /**
1453
- * Border Width Left
1454
- * @see https://tailwindcss.com/docs/border-width
1455
- */
1456
- "border-w-l": [{
1457
- "border-l": [l]
1458
- }],
1459
- /**
1460
- * Border Opacity
1461
- * @see https://tailwindcss.com/docs/border-opacity
1462
- */
1463
- "border-opacity": [{
1464
- "border-opacity": [N]
1465
- }],
1466
- /**
1467
- * Border Style
1468
- * @see https://tailwindcss.com/docs/border-style
1469
- */
1470
- "border-style": [{
1471
- border: [...te(), "hidden"]
1472
- }],
1473
- /**
1474
- * Divide Width X
1475
- * @see https://tailwindcss.com/docs/divide-width
1476
- */
1477
- "divide-x": [{
1478
- "divide-x": [l]
1479
- }],
1480
- /**
1481
- * Divide Width X Reverse
1482
- * @see https://tailwindcss.com/docs/divide-width
1483
- */
1484
- "divide-x-reverse": ["divide-x-reverse"],
1485
- /**
1486
- * Divide Width Y
1487
- * @see https://tailwindcss.com/docs/divide-width
1488
- */
1489
- "divide-y": [{
1490
- "divide-y": [l]
1491
- }],
1492
- /**
1493
- * Divide Width Y Reverse
1494
- * @see https://tailwindcss.com/docs/divide-width
1495
- */
1496
- "divide-y-reverse": ["divide-y-reverse"],
1497
- /**
1498
- * Divide Opacity
1499
- * @see https://tailwindcss.com/docs/divide-opacity
1500
- */
1501
- "divide-opacity": [{
1502
- "divide-opacity": [N]
1503
- }],
1504
- /**
1505
- * Divide Style
1506
- * @see https://tailwindcss.com/docs/divide-style
1507
- */
1508
- "divide-style": [{
1509
- divide: te()
1510
- }],
1511
- /**
1512
- * Border Color
1513
- * @see https://tailwindcss.com/docs/border-color
1514
- */
1515
- "border-color": [{
1516
- border: [a]
1517
- }],
1518
- /**
1519
- * Border Color X
1520
- * @see https://tailwindcss.com/docs/border-color
1521
- */
1522
- "border-color-x": [{
1523
- "border-x": [a]
1524
- }],
1525
- /**
1526
- * Border Color Y
1527
- * @see https://tailwindcss.com/docs/border-color
1528
- */
1529
- "border-color-y": [{
1530
- "border-y": [a]
1531
- }],
1532
- /**
1533
- * Border Color S
1534
- * @see https://tailwindcss.com/docs/border-color
1535
- */
1536
- "border-color-s": [{
1537
- "border-s": [a]
1538
- }],
1539
- /**
1540
- * Border Color E
1541
- * @see https://tailwindcss.com/docs/border-color
1542
- */
1543
- "border-color-e": [{
1544
- "border-e": [a]
1545
- }],
1546
- /**
1547
- * Border Color Top
1548
- * @see https://tailwindcss.com/docs/border-color
1549
- */
1550
- "border-color-t": [{
1551
- "border-t": [a]
1552
- }],
1553
- /**
1554
- * Border Color Right
1555
- * @see https://tailwindcss.com/docs/border-color
1556
- */
1557
- "border-color-r": [{
1558
- "border-r": [a]
1559
- }],
1560
- /**
1561
- * Border Color Bottom
1562
- * @see https://tailwindcss.com/docs/border-color
1563
- */
1564
- "border-color-b": [{
1565
- "border-b": [a]
1566
- }],
1567
- /**
1568
- * Border Color Left
1569
- * @see https://tailwindcss.com/docs/border-color
1570
- */
1571
- "border-color-l": [{
1572
- "border-l": [a]
1573
- }],
1574
- /**
1575
- * Divide Color
1576
- * @see https://tailwindcss.com/docs/divide-color
1577
- */
1578
- "divide-color": [{
1579
- divide: [a]
1580
- }],
1581
- /**
1582
- * Outline Style
1583
- * @see https://tailwindcss.com/docs/outline-style
1584
- */
1585
- "outline-style": [{
1586
- outline: ["", ...te()]
1587
- }],
1588
- /**
1589
- * Outline Offset
1590
- * @see https://tailwindcss.com/docs/outline-offset
1591
- */
1592
- "outline-offset": [{
1593
- "outline-offset": [F, y]
1594
- }],
1595
- /**
1596
- * Outline Width
1597
- * @see https://tailwindcss.com/docs/outline-width
1598
- */
1599
- "outline-w": [{
1600
- outline: [F, G]
1601
- }],
1602
- /**
1603
- * Outline Color
1604
- * @see https://tailwindcss.com/docs/outline-color
1605
- */
1606
- "outline-color": [{
1607
- outline: [e]
1608
- }],
1609
- /**
1610
- * Ring Width
1611
- * @see https://tailwindcss.com/docs/ring-width
1612
- */
1613
- "ring-w": [{
1614
- ring: ke()
1615
- }],
1616
- /**
1617
- * Ring Width Inset
1618
- * @see https://tailwindcss.com/docs/ring-width
1619
- */
1620
- "ring-w-inset": ["ring-inset"],
1621
- /**
1622
- * Ring Color
1623
- * @see https://tailwindcss.com/docs/ring-color
1624
- */
1625
- "ring-color": [{
1626
- ring: [e]
1627
- }],
1628
- /**
1629
- * Ring Opacity
1630
- * @see https://tailwindcss.com/docs/ring-opacity
1631
- */
1632
- "ring-opacity": [{
1633
- "ring-opacity": [N]
1634
- }],
1635
- /**
1636
- * Ring Offset Width
1637
- * @see https://tailwindcss.com/docs/ring-offset-width
1638
- */
1639
- "ring-offset-w": [{
1640
- "ring-offset": [F, G]
1641
- }],
1642
- /**
1643
- * Ring Offset Color
1644
- * @see https://tailwindcss.com/docs/ring-offset-color
1645
- */
1646
- "ring-offset-color": [{
1647
- "ring-offset": [e]
1648
- }],
1649
- // Effects
1650
- /**
1651
- * Box Shadow
1652
- * @see https://tailwindcss.com/docs/box-shadow
1653
- */
1654
- shadow: [{
1655
- shadow: ["", "inner", "none", V, Wt]
1656
- }],
1657
- /**
1658
- * Box Shadow Color
1659
- * @see https://tailwindcss.com/docs/box-shadow-color
1660
- */
1661
- "shadow-color": [{
1662
- shadow: [Z]
1663
- }],
1664
- /**
1665
- * Opacity
1666
- * @see https://tailwindcss.com/docs/opacity
1667
- */
1668
- opacity: [{
1669
- opacity: [N]
1670
- }],
1671
- /**
1672
- * Mix Blend Mode
1673
- * @see https://tailwindcss.com/docs/mix-blend-mode
1674
- */
1675
- "mix-blend": [{
1676
- "mix-blend": [...Se(), "plus-lighter", "plus-darker"]
1677
- }],
1678
- /**
1679
- * Background Blend Mode
1680
- * @see https://tailwindcss.com/docs/background-blend-mode
1681
- */
1682
- "bg-blend": [{
1683
- "bg-blend": Se()
1684
- }],
1685
- // Filters
1686
- /**
1687
- * Filter
1688
- * @deprecated since Tailwind CSS v3.0.0
1689
- * @see https://tailwindcss.com/docs/filter
1690
- */
1691
- filter: [{
1692
- filter: ["", "none"]
1693
- }],
1694
- /**
1695
- * Blur
1696
- * @see https://tailwindcss.com/docs/blur
1697
- */
1698
- blur: [{
1699
- blur: [t]
1700
- }],
1701
- /**
1702
- * Brightness
1703
- * @see https://tailwindcss.com/docs/brightness
1704
- */
1705
- brightness: [{
1706
- brightness: [o]
1707
- }],
1708
- /**
1709
- * Contrast
1710
- * @see https://tailwindcss.com/docs/contrast
1711
- */
1712
- contrast: [{
1713
- contrast: [h]
1714
- }],
1715
- /**
1716
- * Drop Shadow
1717
- * @see https://tailwindcss.com/docs/drop-shadow
1718
- */
1719
- "drop-shadow": [{
1720
- "drop-shadow": ["", "none", V, y]
1721
- }],
1722
- /**
1723
- * Grayscale
1724
- * @see https://tailwindcss.com/docs/grayscale
1725
- */
1726
- grayscale: [{
1727
- grayscale: [m]
1728
- }],
1729
- /**
1730
- * Hue Rotate
1731
- * @see https://tailwindcss.com/docs/hue-rotate
1732
- */
1733
- "hue-rotate": [{
1734
- "hue-rotate": [d]
1735
- }],
1736
- /**
1737
- * Invert
1738
- * @see https://tailwindcss.com/docs/invert
1739
- */
1740
- invert: [{
1741
- invert: [f]
1742
- }],
1743
- /**
1744
- * Saturate
1745
- * @see https://tailwindcss.com/docs/saturate
1746
- */
1747
- saturate: [{
1748
- saturate: [A]
1749
- }],
1750
- /**
1751
- * Sepia
1752
- * @see https://tailwindcss.com/docs/sepia
1753
- */
1754
- sepia: [{
1755
- sepia: [j]
1756
- }],
1757
- /**
1758
- * Backdrop Filter
1759
- * @deprecated since Tailwind CSS v3.0.0
1760
- * @see https://tailwindcss.com/docs/backdrop-filter
1761
- */
1762
- "backdrop-filter": [{
1763
- "backdrop-filter": ["", "none"]
1764
- }],
1765
- /**
1766
- * Backdrop Blur
1767
- * @see https://tailwindcss.com/docs/backdrop-blur
1768
- */
1769
- "backdrop-blur": [{
1770
- "backdrop-blur": [t]
1771
- }],
1772
- /**
1773
- * Backdrop Brightness
1774
- * @see https://tailwindcss.com/docs/backdrop-brightness
1775
- */
1776
- "backdrop-brightness": [{
1777
- "backdrop-brightness": [o]
1778
- }],
1779
- /**
1780
- * Backdrop Contrast
1781
- * @see https://tailwindcss.com/docs/backdrop-contrast
1782
- */
1783
- "backdrop-contrast": [{
1784
- "backdrop-contrast": [h]
1785
- }],
1786
- /**
1787
- * Backdrop Grayscale
1788
- * @see https://tailwindcss.com/docs/backdrop-grayscale
1789
- */
1790
- "backdrop-grayscale": [{
1791
- "backdrop-grayscale": [m]
1792
- }],
1793
- /**
1794
- * Backdrop Hue Rotate
1795
- * @see https://tailwindcss.com/docs/backdrop-hue-rotate
1796
- */
1797
- "backdrop-hue-rotate": [{
1798
- "backdrop-hue-rotate": [d]
1799
- }],
1800
- /**
1801
- * Backdrop Invert
1802
- * @see https://tailwindcss.com/docs/backdrop-invert
1803
- */
1804
- "backdrop-invert": [{
1805
- "backdrop-invert": [f]
1806
- }],
1807
- /**
1808
- * Backdrop Opacity
1809
- * @see https://tailwindcss.com/docs/backdrop-opacity
1810
- */
1811
- "backdrop-opacity": [{
1812
- "backdrop-opacity": [N]
1813
- }],
1814
- /**
1815
- * Backdrop Saturate
1816
- * @see https://tailwindcss.com/docs/backdrop-saturate
1817
- */
1818
- "backdrop-saturate": [{
1819
- "backdrop-saturate": [A]
1820
- }],
1821
- /**
1822
- * Backdrop Sepia
1823
- * @see https://tailwindcss.com/docs/backdrop-sepia
1824
- */
1825
- "backdrop-sepia": [{
1826
- "backdrop-sepia": [j]
1827
- }],
1828
- // Tables
1829
- /**
1830
- * Border Collapse
1831
- * @see https://tailwindcss.com/docs/border-collapse
1832
- */
1833
- "border-collapse": [{
1834
- border: ["collapse", "separate"]
1835
- }],
1836
- /**
1837
- * Border Spacing
1838
- * @see https://tailwindcss.com/docs/border-spacing
1839
- */
1840
- "border-spacing": [{
1841
- "border-spacing": [s]
1842
- }],
1843
- /**
1844
- * Border Spacing X
1845
- * @see https://tailwindcss.com/docs/border-spacing
1846
- */
1847
- "border-spacing-x": [{
1848
- "border-spacing-x": [s]
1849
- }],
1850
- /**
1851
- * Border Spacing Y
1852
- * @see https://tailwindcss.com/docs/border-spacing
1853
- */
1854
- "border-spacing-y": [{
1855
- "border-spacing-y": [s]
1856
- }],
1857
- /**
1858
- * Table Layout
1859
- * @see https://tailwindcss.com/docs/table-layout
1860
- */
1861
- "table-layout": [{
1862
- table: ["auto", "fixed"]
1863
- }],
1864
- /**
1865
- * Caption Side
1866
- * @see https://tailwindcss.com/docs/caption-side
1867
- */
1868
- caption: [{
1869
- caption: ["top", "bottom"]
1870
- }],
1871
- // Transitions and Animation
1872
- /**
1873
- * Tranisition Property
1874
- * @see https://tailwindcss.com/docs/transition-property
1875
- */
1876
- transition: [{
1877
- transition: ["none", "all", "", "colors", "opacity", "shadow", "transform", y]
1878
- }],
1879
- /**
1880
- * Transition Duration
1881
- * @see https://tailwindcss.com/docs/transition-duration
1882
- */
1883
- duration: [{
1884
- duration: q()
1885
- }],
1886
- /**
1887
- * Transition Timing Function
1888
- * @see https://tailwindcss.com/docs/transition-timing-function
1889
- */
1890
- ease: [{
1891
- ease: ["linear", "in", "out", "in-out", y]
1892
- }],
1893
- /**
1894
- * Transition Delay
1895
- * @see https://tailwindcss.com/docs/transition-delay
1896
- */
1897
- delay: [{
1898
- delay: q()
1899
- }],
1900
- /**
1901
- * Animation
1902
- * @see https://tailwindcss.com/docs/animation
1903
- */
1904
- animate: [{
1905
- animate: ["none", "spin", "ping", "pulse", "bounce", y]
1906
- }],
1907
- // Transforms
1908
- /**
1909
- * Transform
1910
- * @see https://tailwindcss.com/docs/transform
1911
- */
1912
- transform: [{
1913
- transform: ["", "gpu", "none"]
1914
- }],
1915
- /**
1916
- * Scale
1917
- * @see https://tailwindcss.com/docs/scale
1918
- */
1919
- scale: [{
1920
- scale: [u]
1921
- }],
1922
- /**
1923
- * Scale X
1924
- * @see https://tailwindcss.com/docs/scale
1925
- */
1926
- "scale-x": [{
1927
- "scale-x": [u]
1928
- }],
1929
- /**
1930
- * Scale Y
1931
- * @see https://tailwindcss.com/docs/scale
1932
- */
1933
- "scale-y": [{
1934
- "scale-y": [u]
1935
- }],
1936
- /**
1937
- * Rotate
1938
- * @see https://tailwindcss.com/docs/rotate
1939
- */
1940
- rotate: [{
1941
- rotate: [X, y]
1942
- }],
1943
- /**
1944
- * Translate X
1945
- * @see https://tailwindcss.com/docs/translate
1946
- */
1947
- "translate-x": [{
1948
- "translate-x": [P]
1949
- }],
1950
- /**
1951
- * Translate Y
1952
- * @see https://tailwindcss.com/docs/translate
1953
- */
1954
- "translate-y": [{
1955
- "translate-y": [P]
1956
- }],
1957
- /**
1958
- * Skew X
1959
- * @see https://tailwindcss.com/docs/skew
1960
- */
1961
- "skew-x": [{
1962
- "skew-x": [$]
1963
- }],
1964
- /**
1965
- * Skew Y
1966
- * @see https://tailwindcss.com/docs/skew
1967
- */
1968
- "skew-y": [{
1969
- "skew-y": [$]
1970
- }],
1971
- /**
1972
- * Transform Origin
1973
- * @see https://tailwindcss.com/docs/transform-origin
1974
- */
1975
- "transform-origin": [{
1976
- origin: ["center", "top", "top-right", "right", "bottom-right", "bottom", "bottom-left", "left", "top-left", y]
1977
- }],
1978
- // Interactivity
1979
- /**
1980
- * Accent Color
1981
- * @see https://tailwindcss.com/docs/accent-color
1982
- */
1983
- accent: [{
1984
- accent: ["auto", e]
1985
- }],
1986
- /**
1987
- * Appearance
1988
- * @see https://tailwindcss.com/docs/appearance
1989
- */
1990
- appearance: [{
1991
- appearance: ["none", "auto"]
1992
- }],
1993
- /**
1994
- * Cursor
1995
- * @see https://tailwindcss.com/docs/cursor
1996
- */
1997
- cursor: [{
1998
- 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", y]
1999
- }],
2000
- /**
2001
- * Caret Color
2002
- * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
2003
- */
2004
- "caret-color": [{
2005
- caret: [e]
2006
- }],
2007
- /**
2008
- * Pointer Events
2009
- * @see https://tailwindcss.com/docs/pointer-events
2010
- */
2011
- "pointer-events": [{
2012
- "pointer-events": ["none", "auto"]
2013
- }],
2014
- /**
2015
- * Resize
2016
- * @see https://tailwindcss.com/docs/resize
2017
- */
2018
- resize: [{
2019
- resize: ["none", "y", "x", ""]
2020
- }],
2021
- /**
2022
- * Scroll Behavior
2023
- * @see https://tailwindcss.com/docs/scroll-behavior
2024
- */
2025
- "scroll-behavior": [{
2026
- scroll: ["auto", "smooth"]
2027
- }],
2028
- /**
2029
- * Scroll Margin
2030
- * @see https://tailwindcss.com/docs/scroll-margin
2031
- */
2032
- "scroll-m": [{
2033
- "scroll-m": k()
2034
- }],
2035
- /**
2036
- * Scroll Margin X
2037
- * @see https://tailwindcss.com/docs/scroll-margin
2038
- */
2039
- "scroll-mx": [{
2040
- "scroll-mx": k()
2041
- }],
2042
- /**
2043
- * Scroll Margin Y
2044
- * @see https://tailwindcss.com/docs/scroll-margin
2045
- */
2046
- "scroll-my": [{
2047
- "scroll-my": k()
2048
- }],
2049
- /**
2050
- * Scroll Margin Start
2051
- * @see https://tailwindcss.com/docs/scroll-margin
2052
- */
2053
- "scroll-ms": [{
2054
- "scroll-ms": k()
2055
- }],
2056
- /**
2057
- * Scroll Margin End
2058
- * @see https://tailwindcss.com/docs/scroll-margin
2059
- */
2060
- "scroll-me": [{
2061
- "scroll-me": k()
2062
- }],
2063
- /**
2064
- * Scroll Margin Top
2065
- * @see https://tailwindcss.com/docs/scroll-margin
2066
- */
2067
- "scroll-mt": [{
2068
- "scroll-mt": k()
2069
- }],
2070
- /**
2071
- * Scroll Margin Right
2072
- * @see https://tailwindcss.com/docs/scroll-margin
2073
- */
2074
- "scroll-mr": [{
2075
- "scroll-mr": k()
2076
- }],
2077
- /**
2078
- * Scroll Margin Bottom
2079
- * @see https://tailwindcss.com/docs/scroll-margin
2080
- */
2081
- "scroll-mb": [{
2082
- "scroll-mb": k()
2083
- }],
2084
- /**
2085
- * Scroll Margin Left
2086
- * @see https://tailwindcss.com/docs/scroll-margin
2087
- */
2088
- "scroll-ml": [{
2089
- "scroll-ml": k()
2090
- }],
2091
- /**
2092
- * Scroll Padding
2093
- * @see https://tailwindcss.com/docs/scroll-padding
2094
- */
2095
- "scroll-p": [{
2096
- "scroll-p": k()
2097
- }],
2098
- /**
2099
- * Scroll Padding X
2100
- * @see https://tailwindcss.com/docs/scroll-padding
2101
- */
2102
- "scroll-px": [{
2103
- "scroll-px": k()
2104
- }],
2105
- /**
2106
- * Scroll Padding Y
2107
- * @see https://tailwindcss.com/docs/scroll-padding
2108
- */
2109
- "scroll-py": [{
2110
- "scroll-py": k()
2111
- }],
2112
- /**
2113
- * Scroll Padding Start
2114
- * @see https://tailwindcss.com/docs/scroll-padding
2115
- */
2116
- "scroll-ps": [{
2117
- "scroll-ps": k()
2118
- }],
2119
- /**
2120
- * Scroll Padding End
2121
- * @see https://tailwindcss.com/docs/scroll-padding
2122
- */
2123
- "scroll-pe": [{
2124
- "scroll-pe": k()
2125
- }],
2126
- /**
2127
- * Scroll Padding Top
2128
- * @see https://tailwindcss.com/docs/scroll-padding
2129
- */
2130
- "scroll-pt": [{
2131
- "scroll-pt": k()
2132
- }],
2133
- /**
2134
- * Scroll Padding Right
2135
- * @see https://tailwindcss.com/docs/scroll-padding
2136
- */
2137
- "scroll-pr": [{
2138
- "scroll-pr": k()
2139
- }],
2140
- /**
2141
- * Scroll Padding Bottom
2142
- * @see https://tailwindcss.com/docs/scroll-padding
2143
- */
2144
- "scroll-pb": [{
2145
- "scroll-pb": k()
2146
- }],
2147
- /**
2148
- * Scroll Padding Left
2149
- * @see https://tailwindcss.com/docs/scroll-padding
2150
- */
2151
- "scroll-pl": [{
2152
- "scroll-pl": k()
2153
- }],
2154
- /**
2155
- * Scroll Snap Align
2156
- * @see https://tailwindcss.com/docs/scroll-snap-align
2157
- */
2158
- "snap-align": [{
2159
- snap: ["start", "end", "center", "align-none"]
2160
- }],
2161
- /**
2162
- * Scroll Snap Stop
2163
- * @see https://tailwindcss.com/docs/scroll-snap-stop
2164
- */
2165
- "snap-stop": [{
2166
- snap: ["normal", "always"]
2167
- }],
2168
- /**
2169
- * Scroll Snap Type
2170
- * @see https://tailwindcss.com/docs/scroll-snap-type
2171
- */
2172
- "snap-type": [{
2173
- snap: ["none", "x", "y", "both"]
2174
- }],
2175
- /**
2176
- * Scroll Snap Type Strictness
2177
- * @see https://tailwindcss.com/docs/scroll-snap-type
2178
- */
2179
- "snap-strictness": [{
2180
- snap: ["mandatory", "proximity"]
2181
- }],
2182
- /**
2183
- * Touch Action
2184
- * @see https://tailwindcss.com/docs/touch-action
2185
- */
2186
- touch: [{
2187
- touch: ["auto", "none", "manipulation"]
2188
- }],
2189
- /**
2190
- * Touch Action X
2191
- * @see https://tailwindcss.com/docs/touch-action
2192
- */
2193
- "touch-x": [{
2194
- "touch-pan": ["x", "left", "right"]
2195
- }],
2196
- /**
2197
- * Touch Action Y
2198
- * @see https://tailwindcss.com/docs/touch-action
2199
- */
2200
- "touch-y": [{
2201
- "touch-pan": ["y", "up", "down"]
2202
- }],
2203
- /**
2204
- * Touch Action Pinch Zoom
2205
- * @see https://tailwindcss.com/docs/touch-action
2206
- */
2207
- "touch-pz": ["touch-pinch-zoom"],
2208
- /**
2209
- * User Select
2210
- * @see https://tailwindcss.com/docs/user-select
2211
- */
2212
- select: [{
2213
- select: ["none", "text", "all", "auto"]
2214
- }],
2215
- /**
2216
- * Will Change
2217
- * @see https://tailwindcss.com/docs/will-change
2218
- */
2219
- "will-change": [{
2220
- "will-change": ["auto", "scroll", "contents", "transform", y]
2221
- }],
2222
- // SVG
2223
- /**
2224
- * Fill
2225
- * @see https://tailwindcss.com/docs/fill
2226
- */
2227
- fill: [{
2228
- fill: [e, "none"]
2229
- }],
2230
- /**
2231
- * Stroke Width
2232
- * @see https://tailwindcss.com/docs/stroke-width
2233
- */
2234
- "stroke-w": [{
2235
- stroke: [F, G, ie]
2236
- }],
2237
- /**
2238
- * Stroke
2239
- * @see https://tailwindcss.com/docs/stroke
2240
- */
2241
- stroke: [{
2242
- stroke: [e, "none"]
2243
- }],
2244
- // Accessibility
2245
- /**
2246
- * Screen Readers
2247
- * @see https://tailwindcss.com/docs/screen-readers
2248
- */
2249
- sr: ["sr-only", "not-sr-only"],
2250
- /**
2251
- * Forced Color Adjust
2252
- * @see https://tailwindcss.com/docs/forced-color-adjust
2253
- */
2254
- "forced-color-adjust": [{
2255
- "forced-color-adjust": ["auto", "none"]
2256
- }]
2257
- },
2258
- conflictingClassGroups: {
2259
- overflow: ["overflow-x", "overflow-y"],
2260
- overscroll: ["overscroll-x", "overscroll-y"],
2261
- inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
2262
- "inset-x": ["right", "left"],
2263
- "inset-y": ["top", "bottom"],
2264
- flex: ["basis", "grow", "shrink"],
2265
- gap: ["gap-x", "gap-y"],
2266
- p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
2267
- px: ["pr", "pl"],
2268
- py: ["pt", "pb"],
2269
- m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
2270
- mx: ["mr", "ml"],
2271
- my: ["mt", "mb"],
2272
- size: ["w", "h"],
2273
- "font-size": ["leading"],
2274
- "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
2275
- "fvn-ordinal": ["fvn-normal"],
2276
- "fvn-slashed-zero": ["fvn-normal"],
2277
- "fvn-figure": ["fvn-normal"],
2278
- "fvn-spacing": ["fvn-normal"],
2279
- "fvn-fraction": ["fvn-normal"],
2280
- "line-clamp": ["display", "overflow"],
2281
- 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"],
2282
- "rounded-s": ["rounded-ss", "rounded-es"],
2283
- "rounded-e": ["rounded-se", "rounded-ee"],
2284
- "rounded-t": ["rounded-tl", "rounded-tr"],
2285
- "rounded-r": ["rounded-tr", "rounded-br"],
2286
- "rounded-b": ["rounded-br", "rounded-bl"],
2287
- "rounded-l": ["rounded-tl", "rounded-bl"],
2288
- "border-spacing": ["border-spacing-x", "border-spacing-y"],
2289
- "border-w": ["border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
2290
- "border-w-x": ["border-w-r", "border-w-l"],
2291
- "border-w-y": ["border-w-t", "border-w-b"],
2292
- "border-color": ["border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
2293
- "border-color-x": ["border-color-r", "border-color-l"],
2294
- "border-color-y": ["border-color-t", "border-color-b"],
2295
- "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
2296
- "scroll-mx": ["scroll-mr", "scroll-ml"],
2297
- "scroll-my": ["scroll-mt", "scroll-mb"],
2298
- "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
2299
- "scroll-px": ["scroll-pr", "scroll-pl"],
2300
- "scroll-py": ["scroll-pt", "scroll-pb"],
2301
- touch: ["touch-x", "touch-y", "touch-pz"],
2302
- "touch-x": ["touch"],
2303
- "touch-y": ["touch"],
2304
- "touch-pz": ["touch"]
2305
- },
2306
- conflictingClassGroupModifiers: {
2307
- "font-size": ["leading"]
2308
- }
2309
- };
2310
- }, Yt = /* @__PURE__ */ Et(Qt);
2311
- function C(...e) {
2312
- return Yt(Fe(e));
2313
- }
2314
- const er = Be(
17
+ const He = de(
2315
18
  "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-full text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
2316
19
  {
2317
20
  variants: {
@@ -2335,300 +38,300 @@ const er = Be(
2335
38
  size: "default"
2336
39
  }
2337
40
  }
2338
- ), L = S.forwardRef(
2339
- ({ className: e, variant: r, size: t, asChild: o = !1, ...a }, i) => /* @__PURE__ */ n(
2340
- o ? it : "button",
41
+ ), T = y.forwardRef(
42
+ ({ className: t, variant: i, size: a, asChild: d = !1, ...n }, l) => /* @__PURE__ */ e(
43
+ d ? Se : "button",
2341
44
  {
2342
- className: C(er({ variant: r, size: t, className: e })),
2343
- ref: i,
2344
- ...a
45
+ className: p(He({ variant: i, size: a, className: t })),
46
+ ref: l,
47
+ ...n
2345
48
  }
2346
49
  )
2347
50
  );
2348
- L.displayName = "Button";
2349
- const E = S.forwardRef(
2350
- ({ className: e, type: r, ...t }, o) => /* @__PURE__ */ n(
51
+ T.displayName = "Button";
52
+ const D = y.forwardRef(
53
+ ({ className: t, type: i, ...a }, d) => /* @__PURE__ */ e(
2351
54
  "input",
2352
55
  {
2353
- type: r,
2354
- className: C(
56
+ type: i,
57
+ className: p(
2355
58
  "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
2356
- e
59
+ t
2357
60
  ),
2358
- ref: o,
2359
- ...t
61
+ ref: d,
62
+ ...a
2360
63
  }
2361
64
  )
2362
65
  );
2363
- E.displayName = "Input";
2364
- const tr = U.Provider, rr = U.Root, nr = U.Trigger, Je = S.forwardRef(({ className: e, sideOffset: r = 4, ...t }, o) => /* @__PURE__ */ n(U.Portal, { children: /* @__PURE__ */ n(
2365
- U.Content,
66
+ D.displayName = "Input";
67
+ const _e = F.Provider, Ue = F.Root, Xe = F.Trigger, ue = y.forwardRef(({ className: t, sideOffset: i = 4, ...a }, d) => /* @__PURE__ */ e(F.Portal, { children: /* @__PURE__ */ e(
68
+ F.Content,
2366
69
  {
2367
- ref: o,
2368
- sideOffset: r,
2369
- className: C(
70
+ ref: d,
71
+ sideOffset: i,
72
+ className: p(
2370
73
  "z-50 overflow-hidden rounded-md bg-popover px-3 py-1.5 text-xs text-popover-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]",
2371
- e
74
+ t
2372
75
  ),
2373
- ...t
76
+ ...a
2374
77
  }
2375
78
  ) }));
2376
- Je.displayName = U.Content.displayName;
2377
- const de = z.Root, ce = z.Value, ne = S.forwardRef(({ className: e, children: r, ...t }, o) => /* @__PURE__ */ c(
2378
- z.Trigger,
79
+ ue.displayName = F.Content.displayName;
80
+ const H = w.Root, _ = w.Value, $ = y.forwardRef(({ className: t, children: i, ...a }, d) => /* @__PURE__ */ s(
81
+ w.Trigger,
2379
82
  {
2380
- ref: o,
2381
- className: C(
83
+ ref: d,
84
+ className: p(
2382
85
  "flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
2383
- e
86
+ t
2384
87
  ),
2385
- ...t,
88
+ ...a,
2386
89
  children: [
2387
- r,
2388
- /* @__PURE__ */ n(z.Icon, { asChild: !0, children: /* @__PURE__ */ n(ye, { className: "h-4 w-4 opacity-50" }) })
90
+ i,
91
+ /* @__PURE__ */ e(w.Icon, { asChild: !0, children: /* @__PURE__ */ e(ee, { className: "h-4 w-4 opacity-50" }) })
2389
92
  ]
2390
93
  }
2391
94
  ));
2392
- ne.displayName = z.Trigger.displayName;
2393
- const Ue = S.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ n(
2394
- z.ScrollUpButton,
95
+ $.displayName = w.Trigger.displayName;
96
+ const he = y.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ e(
97
+ w.ScrollUpButton,
2395
98
  {
2396
- ref: t,
2397
- className: C(
99
+ ref: a,
100
+ className: p(
2398
101
  "flex cursor-default items-center justify-center py-1",
2399
- e
102
+ t
2400
103
  ),
2401
- ...r,
2402
- children: /* @__PURE__ */ n(st, { className: "h-4 w-4" })
104
+ ...i,
105
+ children: /* @__PURE__ */ e(qe, { className: "h-4 w-4" })
2403
106
  }
2404
107
  ));
2405
- Ue.displayName = z.ScrollUpButton.displayName;
2406
- const We = S.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ n(
2407
- z.ScrollDownButton,
108
+ he.displayName = w.ScrollUpButton.displayName;
109
+ const fe = y.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ e(
110
+ w.ScrollDownButton,
2408
111
  {
2409
- ref: t,
2410
- className: C(
112
+ ref: a,
113
+ className: p(
2411
114
  "flex cursor-default items-center justify-center py-1",
2412
- e
115
+ t
2413
116
  ),
2414
- ...r,
2415
- children: /* @__PURE__ */ n(ye, { className: "h-4 w-4" })
117
+ ...i,
118
+ children: /* @__PURE__ */ e(ee, { className: "h-4 w-4" })
2416
119
  }
2417
120
  ));
2418
- We.displayName = z.ScrollDownButton.displayName;
2419
- const ae = S.forwardRef(({ className: e, children: r, position: t = "popper", ...o }, a) => /* @__PURE__ */ n(z.Portal, { children: /* @__PURE__ */ c(
2420
- z.Content,
121
+ fe.displayName = w.ScrollDownButton.displayName;
122
+ const K = y.forwardRef(({ className: t, children: i, position: a = "popper", ...d }, n) => /* @__PURE__ */ e(w.Portal, { children: /* @__PURE__ */ s(
123
+ w.Content,
2421
124
  {
2422
- ref: a,
2423
- className: C(
125
+ ref: n,
126
+ className: p(
2424
127
  "relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]",
2425
- t === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
2426
- e
128
+ a === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
129
+ t
2427
130
  ),
2428
- position: t,
2429
- ...o,
131
+ position: a,
132
+ ...d,
2430
133
  children: [
2431
- /* @__PURE__ */ n(Ue, {}),
2432
- /* @__PURE__ */ n(
2433
- z.Viewport,
134
+ /* @__PURE__ */ e(he, {}),
135
+ /* @__PURE__ */ e(
136
+ w.Viewport,
2434
137
  {
2435
- className: C(
138
+ className: p(
2436
139
  "p-1",
2437
- t === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
140
+ a === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
2438
141
  ),
2439
- children: r
142
+ children: i
2440
143
  }
2441
144
  ),
2442
- /* @__PURE__ */ n(We, {})
145
+ /* @__PURE__ */ e(fe, {})
2443
146
  ]
2444
147
  }
2445
148
  ) }));
2446
- ae.displayName = z.Content.displayName;
2447
- const ar = S.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ n(
2448
- z.Label,
149
+ K.displayName = w.Content.displayName;
150
+ const Ge = y.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ e(
151
+ w.Label,
2449
152
  {
2450
- ref: t,
2451
- className: C("px-2 py-1.5 text-sm font-semibold", e),
2452
- ...r
153
+ ref: a,
154
+ className: p("px-2 py-1.5 text-sm font-semibold", t),
155
+ ...i
2453
156
  }
2454
157
  ));
2455
- ar.displayName = z.Label.displayName;
2456
- const R = S.forwardRef(({ className: e, children: r, ...t }, o) => /* @__PURE__ */ c(
2457
- z.Item,
158
+ Ge.displayName = w.Label.displayName;
159
+ const k = y.forwardRef(({ className: t, children: i, ...a }, d) => /* @__PURE__ */ s(
160
+ w.Item,
2458
161
  {
2459
- ref: o,
2460
- className: C(
162
+ ref: d,
163
+ className: p(
2461
164
  "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
2462
- e
165
+ t
2463
166
  ),
2464
- ...t,
167
+ ...a,
2465
168
  children: [
2466
- /* @__PURE__ */ n("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ n(z.ItemIndicator, { children: /* @__PURE__ */ n(Oe, { className: "h-4 w-4" }) }) }),
2467
- /* @__PURE__ */ n(z.ItemText, { children: r })
169
+ /* @__PURE__ */ e("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ e(w.ItemIndicator, { children: /* @__PURE__ */ e(oe, { className: "h-4 w-4" }) }) }),
170
+ /* @__PURE__ */ e(w.ItemText, { children: i })
2468
171
  ]
2469
172
  }
2470
173
  ));
2471
- R.displayName = z.Item.displayName;
2472
- const or = S.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ n(
2473
- z.Separator,
174
+ k.displayName = w.Item.displayName;
175
+ const Qe = y.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ e(
176
+ w.Separator,
2474
177
  {
2475
- ref: t,
2476
- className: C("-mx-1 my-1 h-px bg-muted", e),
2477
- ...r
178
+ ref: a,
179
+ className: p("-mx-1 my-1 h-px bg-muted", t),
180
+ ...i
2478
181
  }
2479
182
  ));
2480
- or.displayName = z.Separator.displayName;
2481
- const ir = D.Root, sr = D.Portal, He = S.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ n(
2482
- D.Overlay,
183
+ Qe.displayName = w.Separator.displayName;
184
+ const We = P.Root, Ye = P.Portal, pe = y.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ e(
185
+ P.Overlay,
2483
186
  {
2484
- ref: t,
2485
- className: C(
187
+ ref: a,
188
+ className: p(
2486
189
  "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
2487
- e
190
+ t
2488
191
  ),
2489
- ...r
192
+ ...i
2490
193
  }
2491
194
  ));
2492
- He.displayName = D.Overlay.displayName;
2493
- const Xe = S.forwardRef(({ className: e, children: r, ...t }, o) => /* @__PURE__ */ c(sr, { children: [
2494
- /* @__PURE__ */ n(He, {}),
2495
- /* @__PURE__ */ c(
2496
- D.Content,
195
+ pe.displayName = P.Overlay.displayName;
196
+ const ge = y.forwardRef(({ className: t, children: i, ...a }, d) => /* @__PURE__ */ s(Ye, { children: [
197
+ /* @__PURE__ */ e(pe, {}),
198
+ /* @__PURE__ */ s(
199
+ P.Content,
2497
200
  {
2498
- ref: o,
2499
- className: C(
201
+ ref: d,
202
+ className: p(
2500
203
  "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
2501
- e
204
+ t
2502
205
  ),
2503
- ...t,
206
+ ...a,
2504
207
  children: [
2505
- r,
2506
- /* @__PURE__ */ c(D.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
2507
- /* @__PURE__ */ n(lt, { className: "h-4 w-4" }),
2508
- /* @__PURE__ */ n("span", { className: "sr-only", children: "Close" })
208
+ i,
209
+ /* @__PURE__ */ s(P.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
210
+ /* @__PURE__ */ e(Le, { className: "h-4 w-4" }),
211
+ /* @__PURE__ */ e("span", { className: "sr-only", children: "Close" })
2509
212
  ] })
2510
213
  ]
2511
214
  }
2512
215
  )
2513
216
  ] }));
2514
- Xe.displayName = D.Content.displayName;
2515
- const Ze = ({
2516
- className: e,
2517
- ...r
2518
- }) => /* @__PURE__ */ n(
217
+ ge.displayName = P.Content.displayName;
218
+ const ve = ({
219
+ className: t,
220
+ ...i
221
+ }) => /* @__PURE__ */ e(
2519
222
  "div",
2520
223
  {
2521
- className: C(
224
+ className: p(
2522
225
  "flex flex-col space-y-1.5 text-center sm:text-left",
2523
- e
226
+ t
2524
227
  ),
2525
- ...r
228
+ ...i
2526
229
  }
2527
230
  );
2528
- Ze.displayName = "DialogHeader";
2529
- const Qe = ({
2530
- className: e,
2531
- ...r
2532
- }) => /* @__PURE__ */ n(
231
+ ve.displayName = "DialogHeader";
232
+ const ye = ({
233
+ className: t,
234
+ ...i
235
+ }) => /* @__PURE__ */ e(
2533
236
  "div",
2534
237
  {
2535
- className: C(
238
+ className: p(
2536
239
  "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
2537
- e
240
+ t
2538
241
  ),
2539
- ...r
242
+ ...i
2540
243
  }
2541
244
  );
2542
- Qe.displayName = "DialogFooter";
2543
- const Ye = S.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ n(
2544
- D.Title,
245
+ ye.displayName = "DialogFooter";
246
+ const xe = y.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ e(
247
+ P.Title,
2545
248
  {
2546
- ref: t,
2547
- className: C(
249
+ ref: a,
250
+ className: p(
2548
251
  "text-lg font-semibold leading-none tracking-tight",
2549
- e
252
+ t
2550
253
  ),
2551
- ...r
254
+ ...i
2552
255
  }
2553
256
  ));
2554
- Ye.displayName = D.Title.displayName;
2555
- const lr = S.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ n(
2556
- D.Description,
257
+ xe.displayName = P.Title.displayName;
258
+ const Ze = y.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ e(
259
+ P.Description,
2557
260
  {
2558
- ref: t,
2559
- className: C("text-sm text-muted-foreground", e),
2560
- ...r
261
+ ref: a,
262
+ className: p("text-sm text-muted-foreground", t),
263
+ ...i
2561
264
  }
2562
265
  ));
2563
- lr.displayName = D.Description.displayName;
2564
- const dr = Be(
266
+ Ze.displayName = P.Description.displayName;
267
+ const et = de(
2565
268
  "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
2566
- ), T = S.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ n(
2567
- Me.Root,
269
+ ), N = y.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ e(
270
+ me.Root,
2568
271
  {
2569
- ref: t,
2570
- className: C(dr(), e),
2571
- ...r
272
+ ref: a,
273
+ className: p(et(), t),
274
+ ...i
2572
275
  }
2573
276
  ));
2574
- T.displayName = Me.Root.displayName;
2575
- const me = S.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ n(
2576
- se.Root,
277
+ N.displayName = me.Root.displayName;
278
+ const U = y.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ e(
279
+ V.Root,
2577
280
  {
2578
- ref: t,
2579
- className: C(
281
+ ref: a,
282
+ className: p(
2580
283
  "grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
2581
- e
284
+ t
2582
285
  ),
2583
- ...r,
2584
- children: /* @__PURE__ */ n(
2585
- se.Indicator,
286
+ ...i,
287
+ children: /* @__PURE__ */ e(
288
+ V.Indicator,
2586
289
  {
2587
- className: C("grid place-content-center text-current"),
2588
- children: /* @__PURE__ */ n(Oe, { className: "h-4 w-4" })
290
+ className: p("grid place-content-center text-current"),
291
+ children: /* @__PURE__ */ e(oe, { className: "h-4 w-4" })
2589
292
  }
2590
293
  )
2591
294
  }
2592
295
  ));
2593
- me.displayName = se.Root.displayName;
2594
- const xe = S.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ n(
296
+ U.displayName = V.Root.displayName;
297
+ const te = y.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ e(
2595
298
  "textarea",
2596
299
  {
2597
- className: C(
300
+ className: p(
2598
301
  "flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
2599
- e
302
+ t
2600
303
  ),
2601
- ref: t,
2602
- ...r
304
+ ref: a,
305
+ ...i
2603
306
  }
2604
307
  ));
2605
- xe.displayName = "Textarea";
2606
- const cr = (e) => e.trim().toLowerCase().replace(/[^\w\s]/g, "").replace(/\s+/g, "_"), mr = (e, r, t = !1, o = !1) => {
2607
- const a = (m, d) => {
2608
- r({ ...e, [m]: d });
308
+ te.displayName = "Textarea";
309
+ const tt = (t) => t.trim().toLowerCase().replace(/[^\w\s]/g, "").replace(/\s+/g, "_"), at = (t, i, a = !1, d = !1) => {
310
+ const n = (c, o) => {
311
+ i({ ...t, [c]: o });
2609
312
  };
2610
313
  return {
2611
- handleTitleChange: (m) => {
2612
- a("title", m);
314
+ handleTitleChange: (c) => {
315
+ n("title", c);
2613
316
  },
2614
317
  handleTitleBlur: () => {
2615
- if (t && e.title) {
2616
- const m = cr(e.title);
2617
- a("key", m);
318
+ if (a && t.title) {
319
+ const c = tt(t.title);
320
+ n("key", c);
2618
321
  }
2619
322
  },
2620
- handleKeyChange: (m) => {
2621
- (t || o) && a("key", m);
323
+ handleKeyChange: (c) => {
324
+ (a || d) && n("key", c);
2622
325
  },
2623
- handleFieldChange: a,
2624
- handleConstraintChange: (m, d) => {
2625
- r({
2626
- ...e,
2627
- [m]: d
326
+ handleFieldChange: n,
327
+ handleConstraintChange: (c, o) => {
328
+ i({
329
+ ...t,
330
+ [c]: o
2628
331
  });
2629
332
  }
2630
333
  };
2631
- }, ue = {
334
+ }, X = {
2632
335
  string: "String",
2633
336
  number: "Number",
2634
337
  integer: "Integer",
@@ -2637,204 +340,209 @@ const cr = (e) => e.trim().toLowerCase().replace(/[^\w\s]/g, "").replace(/\s+/g,
2637
340
  array: "Array",
2638
341
  null: "Null",
2639
342
  file: "File"
2640
- }, et = nt({
2641
- getTypeLabel: (e) => ue[e],
2642
- typeLabels: ue
343
+ }, be = ke({
344
+ getTypeLabel: (t) => X[t],
345
+ typeLabels: X
2643
346
  });
2644
- function ur({
2645
- children: e,
2646
- customLabels: r = {}
347
+ function it({
348
+ children: t,
349
+ customLabels: i = {}
2647
350
  }) {
2648
- const t = { ...ue, ...r }, o = (a) => t[a] || a;
2649
- return /* @__PURE__ */ n(et.Provider, { value: { getTypeLabel: o, typeLabels: t }, children: e });
351
+ const a = { ...X, ...i }, d = (n) => a[n] || n;
352
+ return /* @__PURE__ */ e(be.Provider, { value: { getTypeLabel: d, typeLabels: a }, children: t });
2650
353
  }
2651
- function tt() {
2652
- return at(et);
354
+ function Ne() {
355
+ return Ie(be);
2653
356
  }
2654
- function pe({
2655
- property: e,
2656
- open: r,
2657
- onOpenChange: t,
2658
- onUpdate: o,
2659
- isArrayItem: a = !1,
2660
- isNewProperty: i = !1,
2661
- propertyLabel: s = { singular: "Property", plural: "Properties" },
2662
- showRegex: l = !1,
2663
- keyEditable: h = !1
357
+ function G({
358
+ property: t,
359
+ open: i,
360
+ onOpenChange: a,
361
+ onUpdate: d,
362
+ isArrayItem: n = !1,
363
+ isNewProperty: l = !1,
364
+ propertyLabel: r = { singular: "Property", plural: "Properties" },
365
+ showRegex: u = !1,
366
+ keyEditable: C = !1
2664
367
  }) {
2665
- var A;
2666
- const { typeLabels: m } = tt(), [d, f] = B(e);
2667
- be(() => {
2668
- r && f(e);
2669
- }, [e, r]);
368
+ var L;
369
+ const { typeLabels: c } = Ne(), [o, v] = O(t);
370
+ Z(() => {
371
+ i && v(t);
372
+ }, [t, i]);
2670
373
  const {
2671
- handleTitleChange: g,
2672
- handleTitleBlur: w,
2673
- handleKeyChange: v,
2674
- handleFieldChange: x,
2675
- handleConstraintChange: p
2676
- } = mr(d, f, i, h), N = () => {
2677
- var u;
2678
- (u = d.title) != null && u.trim() && (o(d), t(!1));
2679
- }, b = () => {
2680
- f(e), t(!1);
374
+ handleTitleChange: x,
375
+ handleTitleBlur: g,
376
+ handleKeyChange: f,
377
+ handleFieldChange: I,
378
+ handleConstraintChange: b
379
+ } = at(
380
+ o,
381
+ v,
382
+ l,
383
+ C
384
+ ), q = () => {
385
+ var m;
386
+ (m = o.title) != null && m.trim() && (d(o), a(!1));
387
+ }, h = () => {
388
+ v(t), a(!1);
2681
389
  };
2682
- return /* @__PURE__ */ n(ir, { open: r, onOpenChange: t, children: /* @__PURE__ */ c(
2683
- Xe,
390
+ return /* @__PURE__ */ e(We, { open: i, onOpenChange: a, children: /* @__PURE__ */ s(
391
+ ge,
2684
392
  {
2685
393
  className: "max-w-2xl max-h-[80vh] flex flex-col gap-0 p-0",
2686
394
  "data-testid": "dialog-edit-property",
2687
395
  children: [
2688
- /* @__PURE__ */ n(Ze, { className: "px-6 pt-6 pb-4 shrink-0", children: /* @__PURE__ */ n(Ye, { children: i ? `Add ${s.singular}` : `Edit ${s.singular}` }) }),
2689
- /* @__PURE__ */ c("div", { className: "space-y-6 px-6 pb-4 overflow-y-auto flex-1 min-h-0", children: [
2690
- /* @__PURE__ */ c("div", { className: "space-y-2", children: [
2691
- /* @__PURE__ */ c(T, { className: "flex items-center gap-1.5", children: [
2692
- /* @__PURE__ */ n("span", { className: "w-1.5 h-1.5 rounded-full bg-red-500" }),
396
+ /* @__PURE__ */ e(ve, { className: "px-6 pt-6 pb-4 shrink-0", children: /* @__PURE__ */ e(xe, { children: l ? `Add ${r.singular}` : `Edit ${r.singular}` }) }),
397
+ /* @__PURE__ */ s("div", { className: "space-y-6 px-6 pb-4 overflow-y-auto flex-1 min-h-0", children: [
398
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: [
399
+ /* @__PURE__ */ s(N, { className: "flex items-center gap-1.5", children: [
400
+ /* @__PURE__ */ e("span", { className: "w-1.5 h-1.5 rounded-full bg-red-500" }),
2693
401
  "Type"
2694
402
  ] }),
2695
- /* @__PURE__ */ c(
2696
- de,
403
+ /* @__PURE__ */ s(
404
+ H,
2697
405
  {
2698
- value: d.type,
2699
- onValueChange: (u) => x("type", u),
406
+ value: o.type,
407
+ onValueChange: (m) => I("type", m),
2700
408
  "data-testid": "select-type-dialog",
2701
409
  children: [
2702
- /* @__PURE__ */ n(ne, { children: /* @__PURE__ */ n(ce, {}) }),
2703
- /* @__PURE__ */ c(ae, { children: [
2704
- /* @__PURE__ */ n(R, { value: "string", children: m.string }),
2705
- /* @__PURE__ */ n(R, { value: "number", children: m.number }),
2706
- /* @__PURE__ */ n(R, { value: "integer", children: m.integer }),
2707
- /* @__PURE__ */ n(R, { value: "boolean", children: m.boolean }),
2708
- /* @__PURE__ */ n(R, { value: "object", children: m.object }),
2709
- /* @__PURE__ */ n(R, { value: "array", children: m.array }),
2710
- /* @__PURE__ */ n(R, { value: "file", children: m.file }),
2711
- /* @__PURE__ */ n(R, { value: "null", children: m.null })
410
+ /* @__PURE__ */ e($, { children: /* @__PURE__ */ e(_, {}) }),
411
+ /* @__PURE__ */ s(K, { children: [
412
+ /* @__PURE__ */ e(k, { value: "string", children: c.string }),
413
+ /* @__PURE__ */ e(k, { value: "number", children: c.number }),
414
+ /* @__PURE__ */ e(k, { value: "integer", children: c.integer }),
415
+ /* @__PURE__ */ e(k, { value: "boolean", children: c.boolean }),
416
+ /* @__PURE__ */ e(k, { value: "object", children: c.object }),
417
+ /* @__PURE__ */ e(k, { value: "array", children: c.array }),
418
+ /* @__PURE__ */ e(k, { value: "file", children: c.file }),
419
+ /* @__PURE__ */ e(k, { value: "null", children: c.null })
2712
420
  ] })
2713
421
  ]
2714
422
  }
2715
423
  )
2716
424
  ] }),
2717
- /* @__PURE__ */ c("div", { className: "space-y-2", children: [
2718
- /* @__PURE__ */ c(T, { className: "flex items-center gap-1.5", children: [
2719
- /* @__PURE__ */ n("span", { className: "w-1.5 h-1.5 rounded-full bg-red-500" }),
425
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: [
426
+ /* @__PURE__ */ s(N, { className: "flex items-center gap-1.5", children: [
427
+ /* @__PURE__ */ e("span", { className: "w-1.5 h-1.5 rounded-full bg-red-500" }),
2720
428
  "Title"
2721
429
  ] }),
2722
- /* @__PURE__ */ n(
2723
- E,
430
+ /* @__PURE__ */ e(
431
+ D,
2724
432
  {
2725
- value: d.title || "",
2726
- onChange: (u) => g(u.target.value),
2727
- onBlur: w,
433
+ value: o.title || "",
434
+ onChange: (m) => x(m.target.value),
435
+ onBlur: g,
2728
436
  placeholder: "Property Title",
2729
437
  "data-testid": "input-title-dialog",
2730
438
  required: !0
2731
439
  }
2732
440
  ),
2733
- !i && d.key && /* @__PURE__ */ c("p", { className: "text-xs text-muted-foreground font-mono", children: [
441
+ !l && o.key && /* @__PURE__ */ s("p", { className: "text-xs text-muted-foreground font-mono", children: [
2734
442
  "Key: ",
2735
- d.key
443
+ o.key
2736
444
  ] })
2737
445
  ] }),
2738
- (i || h) && /* @__PURE__ */ c("div", { className: "space-y-2", children: [
2739
- /* @__PURE__ */ n(T, { children: "Key" }),
2740
- /* @__PURE__ */ n(
2741
- E,
446
+ (l || C) && /* @__PURE__ */ s("div", { className: "space-y-2", children: [
447
+ /* @__PURE__ */ e(N, { children: "Key" }),
448
+ /* @__PURE__ */ e(
449
+ D,
2742
450
  {
2743
- value: d.key,
2744
- onChange: (u) => v(u.target.value),
451
+ value: o.key,
452
+ onChange: (m) => f(m.target.value),
2745
453
  placeholder: "property_key",
2746
454
  "data-testid": "input-key-dialog"
2747
455
  }
2748
456
  ),
2749
- !i && /* @__PURE__ */ n("p", { className: "text-xs text-yellow-600 dark:text-yellow-500", children: "⚠️ Changing the key may break existing references to this property" })
457
+ !l && /* @__PURE__ */ e("p", { className: "text-xs text-yellow-600 dark:text-yellow-500", children: "⚠️ Changing the key may break existing references to this property" })
2750
458
  ] }),
2751
- /* @__PURE__ */ c("div", { className: "space-y-2", children: [
2752
- /* @__PURE__ */ n(T, { children: "Description" }),
2753
- /* @__PURE__ */ n(
2754
- xe,
459
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: [
460
+ /* @__PURE__ */ e(N, { children: "Description" }),
461
+ /* @__PURE__ */ e(
462
+ te,
2755
463
  {
2756
464
  placeholder: "Optional description",
2757
- value: d.description || "",
2758
- onChange: (u) => x("description", u.target.value),
465
+ value: o.description || "",
466
+ onChange: (m) => I("description", m.target.value),
2759
467
  rows: 2,
2760
468
  "data-testid": "input-edit-description"
2761
469
  }
2762
470
  )
2763
471
  ] }),
2764
- d.type === "array" && /* @__PURE__ */ c("div", { className: "space-y-2 border-l-2 border-border pl-4 mt-2", children: [
2765
- /* @__PURE__ */ c(T, { className: "font-semibold text-xs text-muted-foreground", children: [
2766
- m.array,
472
+ o.type === "array" && /* @__PURE__ */ s("div", { className: "space-y-2 border-l-2 border-border pl-4 mt-2", children: [
473
+ /* @__PURE__ */ s(N, { className: "font-semibold text-xs text-muted-foreground", children: [
474
+ c.array,
2767
475
  " Items"
2768
476
  ] }),
2769
- d.items ? /* @__PURE__ */ c("div", { className: "bg-muted/40 p-2 rounded", children: [
2770
- /* @__PURE__ */ c("div", { className: "space-y-2", children: [
2771
- /* @__PURE__ */ n(T, { children: "Item Type" }),
2772
- /* @__PURE__ */ c(
2773
- de,
477
+ o.items ? /* @__PURE__ */ s("div", { className: "bg-muted/40 p-2 rounded", children: [
478
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: [
479
+ /* @__PURE__ */ e(N, { children: "Item Type" }),
480
+ /* @__PURE__ */ s(
481
+ H,
2774
482
  {
2775
- value: d.items.type,
2776
- onValueChange: (u) => f({
2777
- ...d,
483
+ value: o.items.type,
484
+ onValueChange: (m) => v({
485
+ ...o,
2778
486
  items: {
2779
- ...d.items,
2780
- type: u
487
+ ...o.items,
488
+ type: m
2781
489
  }
2782
490
  }),
2783
491
  children: [
2784
- /* @__PURE__ */ n(ne, { children: /* @__PURE__ */ n(ce, {}) }),
2785
- /* @__PURE__ */ c(ae, { children: [
2786
- /* @__PURE__ */ n(R, { value: "string", children: m.string }),
2787
- /* @__PURE__ */ n(R, { value: "number", children: m.number }),
2788
- /* @__PURE__ */ n(R, { value: "integer", children: m.integer }),
2789
- /* @__PURE__ */ n(R, { value: "boolean", children: m.boolean }),
2790
- /* @__PURE__ */ n(R, { value: "object", children: m.object }),
2791
- /* @__PURE__ */ n(R, { value: "array", children: m.array }),
2792
- /* @__PURE__ */ n(R, { value: "file", children: m.file }),
2793
- /* @__PURE__ */ n(R, { value: "null", children: m.null })
492
+ /* @__PURE__ */ e($, { children: /* @__PURE__ */ e(_, {}) }),
493
+ /* @__PURE__ */ s(K, { children: [
494
+ /* @__PURE__ */ e(k, { value: "string", children: c.string }),
495
+ /* @__PURE__ */ e(k, { value: "number", children: c.number }),
496
+ /* @__PURE__ */ e(k, { value: "integer", children: c.integer }),
497
+ /* @__PURE__ */ e(k, { value: "boolean", children: c.boolean }),
498
+ /* @__PURE__ */ e(k, { value: "object", children: c.object }),
499
+ /* @__PURE__ */ e(k, { value: "array", children: c.array }),
500
+ /* @__PURE__ */ e(k, { value: "file", children: c.file }),
501
+ /* @__PURE__ */ e(k, { value: "null", children: c.null })
2794
502
  ] })
2795
503
  ]
2796
504
  }
2797
505
  )
2798
506
  ] }),
2799
- /* @__PURE__ */ c("div", { className: "space-y-2", children: [
2800
- /* @__PURE__ */ n(T, { children: "Item Title" }),
2801
- /* @__PURE__ */ n(
2802
- E,
507
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: [
508
+ /* @__PURE__ */ e(N, { children: "Item Title" }),
509
+ /* @__PURE__ */ e(
510
+ D,
2803
511
  {
2804
- value: d.items.title || "",
2805
- onChange: (u) => f({
2806
- ...d,
512
+ value: o.items.title || "",
513
+ onChange: (m) => v({
514
+ ...o,
2807
515
  items: {
2808
- ...d.items,
2809
- title: u.target.value
516
+ ...o.items,
517
+ title: m.target.value
2810
518
  }
2811
519
  }),
2812
520
  placeholder: "Item Title"
2813
521
  }
2814
522
  )
2815
523
  ] }),
2816
- /* @__PURE__ */ c(
2817
- L,
524
+ /* @__PURE__ */ s(
525
+ T,
2818
526
  {
2819
527
  variant: "ghost",
2820
528
  size: "sm",
2821
529
  className: "mt-2",
2822
- onClick: () => f({ ...d, items: void 0 }),
530
+ onClick: () => v({ ...o, items: void 0 }),
2823
531
  children: [
2824
532
  "Remove ",
2825
- m.array,
533
+ c.array,
2826
534
  " Item Schema"
2827
535
  ]
2828
536
  }
2829
537
  )
2830
- ] }) : /* @__PURE__ */ c(
2831
- L,
538
+ ] }) : /* @__PURE__ */ s(
539
+ T,
2832
540
  {
2833
541
  variant: "outline",
2834
542
  size: "sm",
2835
543
  onClick: () => {
2836
- f({
2837
- ...d,
544
+ v({
545
+ ...o,
2838
546
  items: {
2839
547
  id: Date.now().toString() + Math.random(),
2840
548
  key: "item",
@@ -2845,106 +553,106 @@ function pe({
2845
553
  },
2846
554
  children: [
2847
555
  "Add ",
2848
- m.array,
556
+ c.array,
2849
557
  " Item Schema"
2850
558
  ]
2851
559
  }
2852
560
  )
2853
561
  ] }),
2854
- !a && /* @__PURE__ */ c("div", { className: "flex items-center gap-2", children: [
2855
- /* @__PURE__ */ n(
2856
- me,
562
+ !n && /* @__PURE__ */ s("div", { className: "flex items-center gap-2", children: [
563
+ /* @__PURE__ */ e(
564
+ U,
2857
565
  {
2858
566
  id: "prop-required",
2859
- checked: d.required,
2860
- onCheckedChange: (u) => x("required", u),
567
+ checked: o.required,
568
+ onCheckedChange: (m) => I("required", m),
2861
569
  "data-testid": "checkbox-edit-required"
2862
570
  }
2863
571
  ),
2864
- /* @__PURE__ */ n(T, { htmlFor: "prop-required", className: "cursor-pointer", children: "Required field" })
572
+ /* @__PURE__ */ e(N, { htmlFor: "prop-required", className: "cursor-pointer", children: "Required field" })
2865
573
  ] }),
2866
- d.type === "string" && /* @__PURE__ */ c("details", { className: "border rounded-md", children: [
2867
- /* @__PURE__ */ n("summary", { className: "p-4 cursor-pointer hover:bg-accent/50 transition-colors", children: /* @__PURE__ */ c("h4", { className: "text-sm font-medium inline", children: [
2868
- m.string,
574
+ o.type === "string" && /* @__PURE__ */ s("details", { className: "border rounded-md", children: [
575
+ /* @__PURE__ */ e("summary", { className: "p-4 cursor-pointer hover:bg-accent/50 transition-colors", children: /* @__PURE__ */ s("h4", { className: "text-sm font-medium inline", children: [
576
+ c.string,
2869
577
  " Constraints"
2870
578
  ] }) }),
2871
- /* @__PURE__ */ c("div", { className: "space-y-4 p-4 pt-0", children: [
2872
- /* @__PURE__ */ c("div", { className: "grid grid-cols-2 gap-4", children: [
2873
- /* @__PURE__ */ c("div", { className: "space-y-2", children: [
2874
- /* @__PURE__ */ n(T, { htmlFor: "min-length", children: "Minimum Length" }),
2875
- /* @__PURE__ */ n(
2876
- E,
579
+ /* @__PURE__ */ s("div", { className: "space-y-4 p-4 pt-0", children: [
580
+ /* @__PURE__ */ s("div", { className: "grid grid-cols-2 gap-4", children: [
581
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: [
582
+ /* @__PURE__ */ e(N, { htmlFor: "min-length", children: "Minimum Length" }),
583
+ /* @__PURE__ */ e(
584
+ D,
2877
585
  {
2878
586
  id: "min-length",
2879
587
  type: "number",
2880
588
  placeholder: "0",
2881
- value: d.minLength || "",
2882
- onChange: (u) => p(
589
+ value: o.minLength || "",
590
+ onChange: (m) => b(
2883
591
  "minLength",
2884
- u.target.value ? parseInt(u.target.value) : void 0
592
+ m.target.value ? parseInt(m.target.value) : void 0
2885
593
  ),
2886
594
  "data-testid": "input-edit-minlength"
2887
595
  }
2888
596
  )
2889
597
  ] }),
2890
- /* @__PURE__ */ c("div", { className: "space-y-2", children: [
2891
- /* @__PURE__ */ n(T, { htmlFor: "max-length", children: "Maximum Length" }),
2892
- /* @__PURE__ */ n(
2893
- E,
598
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: [
599
+ /* @__PURE__ */ e(N, { htmlFor: "max-length", children: "Maximum Length" }),
600
+ /* @__PURE__ */ e(
601
+ D,
2894
602
  {
2895
603
  id: "max-length",
2896
604
  type: "number",
2897
605
  placeholder: "∞",
2898
- value: d.maxLength || "",
2899
- onChange: (u) => p(
606
+ value: o.maxLength || "",
607
+ onChange: (m) => b(
2900
608
  "maxLength",
2901
- u.target.value ? parseInt(u.target.value) : void 0
609
+ m.target.value ? parseInt(m.target.value) : void 0
2902
610
  ),
2903
611
  "data-testid": "input-edit-maxlength"
2904
612
  }
2905
613
  )
2906
614
  ] })
2907
615
  ] }),
2908
- l && /* @__PURE__ */ c("div", { className: "space-y-2", children: [
2909
- /* @__PURE__ */ n(T, { htmlFor: "pattern", children: "Pattern (regex)" }),
2910
- /* @__PURE__ */ n(
2911
- E,
616
+ u && /* @__PURE__ */ s("div", { className: "space-y-2", children: [
617
+ /* @__PURE__ */ e(N, { htmlFor: "pattern", children: "Pattern (regex)" }),
618
+ /* @__PURE__ */ e(
619
+ D,
2912
620
  {
2913
621
  id: "pattern",
2914
622
  placeholder: "^[a-z]+$",
2915
- value: d.pattern || "",
2916
- onChange: (u) => p("pattern", u.target.value),
623
+ value: o.pattern || "",
624
+ onChange: (m) => b("pattern", m.target.value),
2917
625
  className: "font-mono text-sm",
2918
626
  "data-testid": "input-edit-pattern"
2919
627
  }
2920
628
  )
2921
629
  ] }),
2922
- /* @__PURE__ */ c("div", { className: "space-y-2", children: [
2923
- /* @__PURE__ */ n(T, { children: "Enum Values" }),
2924
- /* @__PURE__ */ n("div", { className: "space-y-2", children: [...d.enum || [], ""].map((u, j) => {
2925
- var $;
2926
- return /* @__PURE__ */ n(
2927
- E,
630
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: [
631
+ /* @__PURE__ */ e(N, { children: "Enum Values" }),
632
+ /* @__PURE__ */ e("div", { className: "space-y-2", children: [...o.enum || [], ""].map((m, j) => {
633
+ var A;
634
+ return /* @__PURE__ */ e(
635
+ D,
2928
636
  {
2929
- placeholder: j === ((($ = d.enum) == null ? void 0 : $.length) || 0) ? "Add new value..." : "Enum value",
2930
- value: u,
2931
- onChange: (K) => {
2932
- const P = K.target.value, O = d.enum || [];
2933
- if (j === O.length)
2934
- P.trim() && p("enum", [
2935
- ...O,
2936
- P.trim()
637
+ placeholder: j === (((A = o.enum) == null ? void 0 : A.length) || 0) ? "Add new value..." : "Enum value",
638
+ value: m,
639
+ onChange: (J) => {
640
+ const S = J.target.value, R = o.enum || [];
641
+ if (j === R.length)
642
+ S.trim() && b("enum", [
643
+ ...R,
644
+ S.trim()
2937
645
  ]);
2938
- else if (P.trim()) {
2939
- const M = [...O];
2940
- M[j] = P.trim(), p("enum", M);
646
+ else if (S.trim()) {
647
+ const z = [...R];
648
+ z[j] = S.trim(), b("enum", z);
2941
649
  } else {
2942
- const M = O.filter(
2943
- (Y, k) => k !== j
650
+ const z = R.filter(
651
+ (vt, Ce) => Ce !== j
2944
652
  );
2945
- p(
653
+ b(
2946
654
  "enum",
2947
- M.length > 0 ? M : void 0
655
+ z.length > 0 ? z : void 0
2948
656
  );
2949
657
  }
2950
658
  },
@@ -2953,42 +661,42 @@ function pe({
2953
661
  j
2954
662
  );
2955
663
  }) }),
2956
- /* @__PURE__ */ n("p", { className: "text-xs text-muted-foreground", children: "Enter allowed values (empty fields will be removed)" })
664
+ /* @__PURE__ */ e("p", { className: "text-xs text-muted-foreground", children: "Enter allowed values (empty fields will be removed)" })
2957
665
  ] })
2958
666
  ] })
2959
667
  ] }),
2960
- (d.type === "number" || d.type === "integer") && /* @__PURE__ */ c("details", { className: "border rounded-md", children: [
2961
- /* @__PURE__ */ n("summary", { className: "p-4 cursor-pointer hover:bg-accent/50 transition-colors", children: /* @__PURE__ */ n("h4", { className: "text-sm font-medium inline", children: "Numeric Constraints" }) }),
2962
- /* @__PURE__ */ n("div", { className: "space-y-4 p-4 pt-0", children: /* @__PURE__ */ c("div", { className: "grid grid-cols-2 gap-4", children: [
2963
- /* @__PURE__ */ c("div", { className: "space-y-2", children: [
2964
- /* @__PURE__ */ n(T, { htmlFor: "minimum", children: "Minimum Value" }),
2965
- /* @__PURE__ */ n(
2966
- E,
668
+ (o.type === "number" || o.type === "integer") && /* @__PURE__ */ s("details", { className: "border rounded-md", children: [
669
+ /* @__PURE__ */ e("summary", { className: "p-4 cursor-pointer hover:bg-accent/50 transition-colors", children: /* @__PURE__ */ e("h4", { className: "text-sm font-medium inline", children: "Numeric Constraints" }) }),
670
+ /* @__PURE__ */ e("div", { className: "space-y-4 p-4 pt-0", children: /* @__PURE__ */ s("div", { className: "grid grid-cols-2 gap-4", children: [
671
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: [
672
+ /* @__PURE__ */ e(N, { htmlFor: "minimum", children: "Minimum Value" }),
673
+ /* @__PURE__ */ e(
674
+ D,
2967
675
  {
2968
676
  id: "minimum",
2969
677
  type: "number",
2970
678
  placeholder: "-∞",
2971
- value: d.minimum ?? "",
2972
- onChange: (u) => p(
679
+ value: o.minimum ?? "",
680
+ onChange: (m) => b(
2973
681
  "minimum",
2974
- u.target.value ? parseFloat(u.target.value) : void 0
682
+ m.target.value ? parseFloat(m.target.value) : void 0
2975
683
  ),
2976
684
  "data-testid": "input-edit-minimum"
2977
685
  }
2978
686
  )
2979
687
  ] }),
2980
- /* @__PURE__ */ c("div", { className: "space-y-2", children: [
2981
- /* @__PURE__ */ n(T, { htmlFor: "maximum", children: "Maximum Value" }),
2982
- /* @__PURE__ */ n(
2983
- E,
688
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: [
689
+ /* @__PURE__ */ e(N, { htmlFor: "maximum", children: "Maximum Value" }),
690
+ /* @__PURE__ */ e(
691
+ D,
2984
692
  {
2985
693
  id: "maximum",
2986
694
  type: "number",
2987
695
  placeholder: "∞",
2988
- value: d.maximum ?? "",
2989
- onChange: (u) => p(
696
+ value: o.maximum ?? "",
697
+ onChange: (m) => b(
2990
698
  "maximum",
2991
- u.target.value ? parseFloat(u.target.value) : void 0
699
+ m.target.value ? parseFloat(m.target.value) : void 0
2992
700
  ),
2993
701
  "data-testid": "input-edit-maximum"
2994
702
  }
@@ -2996,79 +704,79 @@ function pe({
2996
704
  ] })
2997
705
  ] }) })
2998
706
  ] }),
2999
- d.type === "array" && /* @__PURE__ */ c("details", { className: "border rounded-md", children: [
3000
- /* @__PURE__ */ n("summary", { className: "p-4 cursor-pointer hover:bg-accent/50 transition-colors", children: /* @__PURE__ */ c("h4", { className: "text-sm font-medium inline", children: [
3001
- m.array,
707
+ o.type === "array" && /* @__PURE__ */ s("details", { className: "border rounded-md", children: [
708
+ /* @__PURE__ */ e("summary", { className: "p-4 cursor-pointer hover:bg-accent/50 transition-colors", children: /* @__PURE__ */ s("h4", { className: "text-sm font-medium inline", children: [
709
+ c.array,
3002
710
  " Constraints"
3003
711
  ] }) }),
3004
- /* @__PURE__ */ c("div", { className: "space-y-4 p-4 pt-0", children: [
3005
- /* @__PURE__ */ c("div", { className: "grid grid-cols-2 gap-4", children: [
3006
- /* @__PURE__ */ c("div", { className: "space-y-2", children: [
3007
- /* @__PURE__ */ n(T, { htmlFor: "min-items", children: "Minimum Items" }),
3008
- /* @__PURE__ */ n(
3009
- E,
712
+ /* @__PURE__ */ s("div", { className: "space-y-4 p-4 pt-0", children: [
713
+ /* @__PURE__ */ s("div", { className: "grid grid-cols-2 gap-4", children: [
714
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: [
715
+ /* @__PURE__ */ e(N, { htmlFor: "min-items", children: "Minimum Items" }),
716
+ /* @__PURE__ */ e(
717
+ D,
3010
718
  {
3011
719
  id: "min-items",
3012
720
  type: "number",
3013
721
  placeholder: "0",
3014
- value: d.minItems || "",
3015
- onChange: (u) => p(
722
+ value: o.minItems || "",
723
+ onChange: (m) => b(
3016
724
  "minItems",
3017
- u.target.value ? parseInt(u.target.value) : void 0
725
+ m.target.value ? parseInt(m.target.value) : void 0
3018
726
  ),
3019
727
  "data-testid": "input-edit-minitems"
3020
728
  }
3021
729
  )
3022
730
  ] }),
3023
- /* @__PURE__ */ c("div", { className: "space-y-2", children: [
3024
- /* @__PURE__ */ n(T, { htmlFor: "max-items", children: "Maximum Items" }),
3025
- /* @__PURE__ */ n(
3026
- E,
731
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: [
732
+ /* @__PURE__ */ e(N, { htmlFor: "max-items", children: "Maximum Items" }),
733
+ /* @__PURE__ */ e(
734
+ D,
3027
735
  {
3028
736
  id: "max-items",
3029
737
  type: "number",
3030
738
  placeholder: "∞",
3031
- value: d.maxItems || "",
3032
- onChange: (u) => p(
739
+ value: o.maxItems || "",
740
+ onChange: (m) => b(
3033
741
  "maxItems",
3034
- u.target.value ? parseInt(u.target.value) : void 0
742
+ m.target.value ? parseInt(m.target.value) : void 0
3035
743
  ),
3036
744
  "data-testid": "input-edit-maxitems"
3037
745
  }
3038
746
  )
3039
747
  ] })
3040
748
  ] }),
3041
- /* @__PURE__ */ c("div", { className: "flex items-center gap-2", children: [
3042
- /* @__PURE__ */ n(
3043
- me,
749
+ /* @__PURE__ */ s("div", { className: "flex items-center gap-2", children: [
750
+ /* @__PURE__ */ e(
751
+ U,
3044
752
  {
3045
753
  id: "unique-items",
3046
- checked: d.uniqueItems || !1,
3047
- onCheckedChange: (u) => p("uniqueItems", u),
754
+ checked: o.uniqueItems || !1,
755
+ onCheckedChange: (m) => b("uniqueItems", m),
3048
756
  "data-testid": "checkbox-edit-unique"
3049
757
  }
3050
758
  ),
3051
- /* @__PURE__ */ n(T, { htmlFor: "unique-items", className: "cursor-pointer", children: "All items must be unique" })
759
+ /* @__PURE__ */ e(N, { htmlFor: "unique-items", className: "cursor-pointer", children: "All items must be unique" })
3052
760
  ] })
3053
761
  ] })
3054
762
  ] })
3055
763
  ] }),
3056
- /* @__PURE__ */ c(Qe, { className: "px-6 py-4 border-t bg-background shrink-0", children: [
3057
- /* @__PURE__ */ n(
3058
- L,
764
+ /* @__PURE__ */ s(ye, { className: "px-6 py-4 border-t bg-background shrink-0", children: [
765
+ /* @__PURE__ */ e(
766
+ T,
3059
767
  {
3060
768
  variant: "outline",
3061
- onClick: b,
769
+ onClick: h,
3062
770
  "data-testid": "button-cancel",
3063
771
  children: "Cancel"
3064
772
  }
3065
773
  ),
3066
- /* @__PURE__ */ n(
3067
- L,
774
+ /* @__PURE__ */ e(
775
+ T,
3068
776
  {
3069
- onClick: N,
777
+ onClick: q,
3070
778
  "data-testid": "button-save",
3071
- disabled: !((A = d.title) != null && A.trim()),
779
+ disabled: !((L = o.title) != null && L.trim()),
3072
780
  children: "Save Changes"
3073
781
  }
3074
782
  )
@@ -3077,42 +785,42 @@ function pe({
3077
785
  }
3078
786
  ) });
3079
787
  }
3080
- function Le(e, r, t = {}) {
3081
- const { allowEmpty: o = !1, onEditStart: a, onEditCancel: i } = t, [s, l] = B(!1), [h, m] = B(e);
3082
- be(() => {
3083
- s || m(e);
3084
- }, [e, s]);
3085
- const d = () => {
3086
- m(e), l(!0), a == null || a();
3087
- }, f = (v) => {
3088
- m(v);
3089
- }, g = () => {
3090
- const v = h.trim();
3091
- if (!o && !v) {
3092
- m(e), l(!1);
788
+ function re(t, i, a = {}) {
789
+ const { allowEmpty: d = !1, onEditStart: n, onEditCancel: l } = a, [r, u] = O(!1), [C, c] = O(t);
790
+ Z(() => {
791
+ r || c(t);
792
+ }, [t, r]);
793
+ const o = () => {
794
+ c(t), u(!0), n == null || n();
795
+ }, v = (f) => {
796
+ c(f);
797
+ }, x = () => {
798
+ const f = C.trim();
799
+ if (!d && !f) {
800
+ c(t), u(!1);
3093
801
  return;
3094
802
  }
3095
- v !== e && r(v), l(!1);
803
+ f !== t && i(f), u(!1);
3096
804
  };
3097
805
  return {
3098
- isEditing: s,
3099
- value: h,
3100
- startEdit: d,
3101
- handleChange: f,
3102
- handleBlur: g,
3103
- handleKeyDown: (v) => {
3104
- v.key === "Enter" ? g() : v.key === "Escape" && (m(e), l(!1), i == null || i());
806
+ isEditing: r,
807
+ value: C,
808
+ startEdit: o,
809
+ handleChange: v,
810
+ handleBlur: x,
811
+ handleKeyDown: (f) => {
812
+ f.key === "Enter" ? x() : f.key === "Escape" && (c(t), u(!1), l == null || l());
3105
813
  }
3106
814
  };
3107
815
  }
3108
- function pr(e, r) {
3109
- const [t, o] = B(!1);
816
+ function nt(t, i) {
817
+ const [a, d] = O(!1);
3110
818
  return {
3111
- isChangingType: t,
3112
- setIsChangingType: o,
3113
- handleTypeChange: (s) => {
3114
- const l = { ...e, type: s };
3115
- s !== "string" && (delete l.minLength, delete l.maxLength, delete l.pattern, delete l.enum), s !== "number" && s !== "integer" && (delete l.minimum, delete l.maximum), s !== "array" && (delete l.minItems, delete l.maxItems, delete l.uniqueItems, delete l.items), s !== "object" && delete l.children, r(l), o(!1);
819
+ isChangingType: a,
820
+ setIsChangingType: d,
821
+ handleTypeChange: (r) => {
822
+ const u = { ...t, type: r };
823
+ r !== "string" && (delete u.minLength, delete u.maxLength, delete u.pattern, delete u.enum), r !== "number" && r !== "integer" && (delete u.minimum, delete u.maximum), r !== "array" && (delete u.minItems, delete u.maxItems, delete u.uniqueItems, delete u.items), r !== "object" && delete u.children, i(u), d(!1);
3116
824
  },
3117
825
  availableTypes: [
3118
826
  "string",
@@ -3125,499 +833,499 @@ function pr(e, r) {
3125
833
  ]
3126
834
  };
3127
835
  }
3128
- const we = () => `${Date.now()}-${Math.random()}`;
3129
- function Ne(e = {}) {
3130
- const { onConfirm: r, onCancel: t, createInitialData: o } = e, [a, i] = B(!1), [s, l] = B(null), h = (g) => {
3131
- const w = g ?? (o ? o() : null);
3132
- l(w), i(!0);
3133
- }, m = () => {
3134
- i(!1), l(null), t == null || t();
836
+ const ae = () => `${Date.now()}-${Math.random()}`;
837
+ function ie(t = {}) {
838
+ const { onConfirm: i, onCancel: a, createInitialData: d } = t, [n, l] = O(!1), [r, u] = O(null), C = (x) => {
839
+ const g = x ?? (d ? d() : null);
840
+ u(g), l(!0);
841
+ }, c = () => {
842
+ l(!1), u(null), a == null || a();
3135
843
  };
3136
844
  return {
3137
- isOpen: a,
3138
- data: s,
3139
- open: h,
3140
- close: m,
3141
- confirm: (g) => {
3142
- r == null || r(g), i(!1), l(null);
845
+ isOpen: n,
846
+ data: r,
847
+ open: C,
848
+ close: c,
849
+ confirm: (x) => {
850
+ i == null || i(x), l(!1), u(null);
3143
851
  },
3144
- setIsOpen: (g) => {
3145
- g ? i(!0) : m();
852
+ setIsOpen: (x) => {
853
+ x ? l(!0) : c();
3146
854
  }
3147
855
  };
3148
856
  }
3149
- function hr(e, r) {
3150
- const t = Ne({
857
+ function st(t, i) {
858
+ const a = ie({
3151
859
  createInitialData: () => ({
3152
- id: we(),
860
+ id: ae(),
3153
861
  key: "",
3154
862
  type: "string",
3155
863
  required: !1
3156
864
  }),
3157
- onConfirm: (i) => {
3158
- r({
3159
- ...e,
3160
- children: [...e.children || [], i]
865
+ onConfirm: (l) => {
866
+ i({
867
+ ...t,
868
+ children: [...t.children || [], l]
3161
869
  });
3162
870
  }
3163
871
  });
3164
872
  return {
3165
- addChild: () => t.open(),
3166
- updateChild: (i, s) => {
3167
- const l = e.children.map(
3168
- (h) => h.id === i ? s : h
873
+ addChild: () => a.open(),
874
+ updateChild: (l, r) => {
875
+ const u = t.children.map(
876
+ (C) => C.id === l ? r : C
3169
877
  );
3170
- r({ ...e, children: l });
878
+ i({ ...t, children: u });
3171
879
  },
3172
- deleteChild: (i) => {
3173
- const s = e.children.filter((l) => l.id !== i);
3174
- r({ ...e, children: s });
880
+ deleteChild: (l) => {
881
+ const r = t.children.filter((u) => u.id !== l);
882
+ i({ ...t, children: r });
3175
883
  },
3176
884
  addChildDialog: {
3177
- isOpen: t.isOpen,
3178
- data: t.data,
3179
- setIsOpen: t.setIsOpen,
3180
- confirm: t.confirm
885
+ isOpen: a.isOpen,
886
+ data: a.data,
887
+ setIsOpen: a.setIsOpen,
888
+ confirm: a.confirm
3181
889
  }
3182
890
  };
3183
891
  }
3184
- function he({
3185
- property: e,
3186
- onUpdate: r,
3187
- onDelete: t,
3188
- level: o = 1,
3189
- isArrayItem: a = !1,
3190
- showRegex: i = !1,
3191
- keyEditable: s = !1
892
+ function Q({
893
+ property: t,
894
+ onUpdate: i,
895
+ onDelete: a,
896
+ level: d = 1,
897
+ isArrayItem: n = !1,
898
+ showRegex: l = !1,
899
+ keyEditable: r = !1
3192
900
  }) {
3193
- const { getTypeLabel: l, typeLabels: h } = tt(), m = Ne(), d = Le(
3194
- e.title || e.key || "",
3195
- (b) => r({ ...e, title: b }),
901
+ const { getTypeLabel: u, typeLabels: C } = Ne(), c = ie(), o = re(
902
+ t.title || t.key || "",
903
+ (h) => i({ ...t, title: h }),
3196
904
  { allowEmpty: !1 }
3197
- ), f = Le(
3198
- e.description || "",
3199
- (b) => r({ ...e, description: b || void 0 }),
905
+ ), v = re(
906
+ t.description || "",
907
+ (h) => i({ ...t, description: h || void 0 }),
3200
908
  { allowEmpty: !0 }
3201
- ), g = pr(e, r), w = hr(e, r), v = `h${Math.min(o, 6)}`, x = e.type === "object", p = x && e.children && e.children.length > 0, N = {
909
+ ), x = nt(t, i), g = st(t, i), f = `h${Math.min(d, 6)}`, I = t.type === "object", b = I && t.children && t.children.length > 0, q = {
3202
910
  1: "text-lg font-semibold",
3203
911
  2: "text-base",
3204
912
  3: "text-base",
3205
913
  4: "text-base",
3206
914
  5: "text-sm",
3207
915
  6: "text-sm"
3208
- }[o] || "text-sm";
3209
- return /* @__PURE__ */ c("div", { className: "group", children: [
3210
- /* @__PURE__ */ c("div", { className: "flex gap-4 items-center rounded-md -mx-2 px-2 py-1 transition-colors hover:bg-accent/50", children: [
3211
- /* @__PURE__ */ n("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ c("div", { className: "flex items-start gap-3", children: [
3212
- !a && /* @__PURE__ */ n(
916
+ }[d] || "text-sm";
917
+ return /* @__PURE__ */ s("div", { className: "group", children: [
918
+ /* @__PURE__ */ s("div", { className: "flex gap-4 items-center rounded-md -mx-2 px-2 py-1 transition-colors hover:bg-accent/50", children: [
919
+ /* @__PURE__ */ e("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ s("div", { className: "flex items-start gap-3", children: [
920
+ !n && /* @__PURE__ */ e(
3213
921
  "button",
3214
922
  {
3215
- onClick: () => r({ ...e, required: !e.required }),
923
+ onClick: () => i({ ...t, required: !t.required }),
3216
924
  className: "shrink-0 transition-all hover:scale-110 mt-0.5",
3217
- title: e.required ? "Required field - click to make optional" : "Optional field - click to make required",
3218
- children: e.required ? /* @__PURE__ */ n("span", { className: "block w-4 h-4 rounded-full bg-primary" }) : /* @__PURE__ */ n("span", { className: "block w-4 h-4 rounded-full border border-dashed border-gray-400" })
925
+ title: t.required ? "Required field - click to make optional" : "Optional field - click to make required",
926
+ children: t.required ? /* @__PURE__ */ e("span", { className: "block w-4 h-4 rounded-full bg-primary" }) : /* @__PURE__ */ e("span", { className: "block w-4 h-4 rounded-full border border-dashed border-gray-400" })
3219
927
  }
3220
928
  ),
3221
- d.isEditing ? /* @__PURE__ */ n(
3222
- E,
929
+ o.isEditing ? /* @__PURE__ */ e(
930
+ D,
3223
931
  {
3224
- value: d.value,
3225
- onChange: (b) => d.handleChange(b.target.value),
3226
- onBlur: d.handleBlur,
3227
- onKeyDown: d.handleKeyDown,
932
+ value: o.value,
933
+ onChange: (h) => o.handleChange(h.target.value),
934
+ onBlur: o.handleBlur,
935
+ onKeyDown: o.handleKeyDown,
3228
936
  autoFocus: !0,
3229
- className: N,
937
+ className: q,
3230
938
  placeholder: "Enter title"
3231
939
  }
3232
- ) : /* @__PURE__ */ c("div", { className: "flex gap-2 flex-wrap flex-1", children: [
3233
- /* @__PURE__ */ c("div", { className: "flex items-start gap-2", children: [
3234
- /* @__PURE__ */ n(
3235
- v,
940
+ ) : /* @__PURE__ */ s("div", { className: "flex gap-2 flex-wrap flex-1", children: [
941
+ /* @__PURE__ */ s("div", { className: "flex items-start gap-2", children: [
942
+ /* @__PURE__ */ e(
943
+ f,
3236
944
  {
3237
- className: `${N} cursor-pointer hover:text-primary transition-colors leading-none`,
3238
- onClick: d.startEdit,
3239
- children: e.title || e.key || /* @__PURE__ */ n("span", { className: "text-muted-foreground italic", children: "unnamed" })
945
+ className: `${q} cursor-pointer hover:text-primary transition-colors leading-none`,
946
+ onClick: o.startEdit,
947
+ children: t.title || t.key || /* @__PURE__ */ e("span", { className: "text-muted-foreground italic", children: "unnamed" })
3240
948
  }
3241
949
  ),
3242
- g.isChangingType ? /* @__PURE__ */ c(
3243
- de,
950
+ x.isChangingType ? /* @__PURE__ */ s(
951
+ H,
3244
952
  {
3245
- value: e.type,
3246
- onValueChange: (b) => g.handleTypeChange(b),
3247
- open: g.isChangingType,
3248
- onOpenChange: g.setIsChangingType,
953
+ value: t.type,
954
+ onValueChange: (h) => x.handleTypeChange(h),
955
+ open: x.isChangingType,
956
+ onOpenChange: x.setIsChangingType,
3249
957
  children: [
3250
- /* @__PURE__ */ n(ne, { className: "w-[140px] h-7", children: /* @__PURE__ */ n(ce, {}) }),
3251
- /* @__PURE__ */ n(ae, { children: g.availableTypes.map((b) => /* @__PURE__ */ n(R, { value: b, children: h[b] }, b)) })
958
+ /* @__PURE__ */ e($, { className: "w-[140px] h-7", children: /* @__PURE__ */ e(_, {}) }),
959
+ /* @__PURE__ */ e(K, { children: x.availableTypes.map((h) => /* @__PURE__ */ e(k, { value: h, children: C[h] }, h)) })
3252
960
  ]
3253
961
  }
3254
- ) : /* @__PURE__ */ n(tr, { children: /* @__PURE__ */ c(rr, { children: [
3255
- /* @__PURE__ */ n(nr, { asChild: !0, children: /* @__PURE__ */ c(
962
+ ) : /* @__PURE__ */ e(_e, { children: /* @__PURE__ */ s(Ue, { children: [
963
+ /* @__PURE__ */ e(Xe, { asChild: !0, children: /* @__PURE__ */ s(
3256
964
  "button",
3257
965
  {
3258
- onClick: () => g.setIsChangingType(!0),
966
+ onClick: () => x.setIsChangingType(!0),
3259
967
  className: "cursor-pointer hover:bg-accent rounded p-0.5 transition-colors",
3260
968
  children: [
3261
- e.type === "string" && /* @__PURE__ */ n(dt, { className: "w-5 h-5 text-muted-foreground" }),
3262
- e.type === "number" && /* @__PURE__ */ n(ze, { className: "w-5 h-5 text-muted-foreground" }),
3263
- e.type === "integer" && /* @__PURE__ */ n(ze, { className: "w-5 h-5 text-muted-foreground" }),
3264
- e.type === "boolean" && /* @__PURE__ */ n(ct, { className: "w-5 h-5 text-muted-foreground" }),
3265
- e.type === "object" && /* @__PURE__ */ n(mt, { className: "w-5 h-5 text-muted-foreground" }),
3266
- e.type === "array" && /* @__PURE__ */ n(ut, { className: "w-5 h-5 text-muted-foreground" }),
3267
- e.type === "file" && /* @__PURE__ */ n(pt, { className: "w-5 h-5 text-muted-foreground" })
969
+ t.type === "string" && /* @__PURE__ */ e(Pe, { className: "w-5 h-5 text-muted-foreground" }),
970
+ t.type === "number" && /* @__PURE__ */ e(se, { className: "w-5 h-5 text-muted-foreground" }),
971
+ t.type === "integer" && /* @__PURE__ */ e(se, { className: "w-5 h-5 text-muted-foreground" }),
972
+ t.type === "boolean" && /* @__PURE__ */ e(Oe, { className: "w-5 h-5 text-muted-foreground" }),
973
+ t.type === "object" && /* @__PURE__ */ e(Re, { className: "w-5 h-5 text-muted-foreground" }),
974
+ t.type === "array" && /* @__PURE__ */ e(Ee, { className: "w-5 h-5 text-muted-foreground" }),
975
+ t.type === "file" && /* @__PURE__ */ e(Fe, { className: "w-5 h-5 text-muted-foreground" })
3268
976
  ]
3269
977
  }
3270
978
  ) }),
3271
- /* @__PURE__ */ c(Je, { children: [
3272
- l(e.type),
3273
- e.type === "array" && e.items ? ` of ${l(e.items.type)}` : "",
3274
- /* @__PURE__ */ n("div", { className: "text-xs text-muted-foreground mt-1", children: "Click to change type" })
979
+ /* @__PURE__ */ s(ue, { children: [
980
+ u(t.type),
981
+ t.type === "array" && t.items ? ` of ${u(t.items.type)}` : "",
982
+ /* @__PURE__ */ e("div", { className: "text-xs text-muted-foreground mt-1", children: "Click to change type" })
3275
983
  ] })
3276
984
  ] }) }),
3277
- e.type === "object" && /* @__PURE__ */ n(
3278
- L,
985
+ t.type === "object" && /* @__PURE__ */ e(
986
+ T,
3279
987
  {
3280
988
  variant: "ghost",
3281
989
  size: "icon",
3282
990
  className: "opacity-0 group-hover:opacity-100 h-6 w-6",
3283
- onClick: w.addChild,
3284
- "data-testid": `button-add-child-${e.id}`,
3285
- children: /* @__PURE__ */ n(Q, { className: "!w-5 !h-5" })
991
+ onClick: g.addChild,
992
+ "data-testid": `button-add-child-${t.id}`,
993
+ children: /* @__PURE__ */ e(B, { className: "!w-5 !h-5" })
3286
994
  }
3287
995
  )
3288
996
  ] }),
3289
- /* @__PURE__ */ n("div", { className: "flex-1", children: f.isEditing ? /* @__PURE__ */ n(
3290
- E,
997
+ /* @__PURE__ */ e("div", { className: "flex-1", children: v.isEditing ? /* @__PURE__ */ e(
998
+ D,
3291
999
  {
3292
- value: f.value,
3293
- onChange: (b) => f.handleChange(b.target.value),
3294
- onBlur: f.handleBlur,
3295
- onKeyDown: f.handleKeyDown,
1000
+ value: v.value,
1001
+ onChange: (h) => v.handleChange(h.target.value),
1002
+ onBlur: v.handleBlur,
1003
+ onKeyDown: v.handleKeyDown,
3296
1004
  autoFocus: !0,
3297
1005
  className: "text-sm flex-1",
3298
1006
  placeholder: "Enter description"
3299
1007
  }
3300
- ) : /* @__PURE__ */ n(Ee, { children: e.description ? /* @__PURE__ */ n(
1008
+ ) : /* @__PURE__ */ e(le, { children: t.description ? /* @__PURE__ */ e(
3301
1009
  "p",
3302
1010
  {
3303
1011
  className: "text-sm text-muted-foreground flex-1 min-w-[200px] cursor-pointer hover:text-foreground transition-colors",
3304
- "data-testid": `text-description-${e.id}`,
3305
- onClick: f.startEdit,
3306
- children: e.description
1012
+ "data-testid": `text-description-${t.id}`,
1013
+ onClick: v.startEdit,
1014
+ children: t.description
3307
1015
  }
3308
- ) : /* @__PURE__ */ n(
1016
+ ) : /* @__PURE__ */ e(
3309
1017
  "p",
3310
1018
  {
3311
1019
  className: "text-sm text-muted-foreground/50 flex-1 min-w-[200px] cursor-pointer hover:text-muted-foreground italic transition-colors",
3312
- onClick: f.startEdit,
1020
+ onClick: v.startEdit,
3313
1021
  children: "Add description..."
3314
1022
  }
3315
1023
  ) }) })
3316
1024
  ] })
3317
1025
  ] }) }),
3318
- /* @__PURE__ */ c("div", { className: "flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity shrink-0", children: [
3319
- /* @__PURE__ */ n(
3320
- L,
1026
+ /* @__PURE__ */ s("div", { className: "flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity shrink-0", children: [
1027
+ /* @__PURE__ */ e(
1028
+ T,
3321
1029
  {
3322
1030
  variant: "ghost",
3323
1031
  size: "icon",
3324
1032
  className: "h-7 w-7",
3325
- onClick: () => m.open(e),
3326
- "data-testid": `button-edit-${e.id}`,
3327
- children: /* @__PURE__ */ n(ht, { className: "w-3 h-3" })
1033
+ onClick: () => c.open(t),
1034
+ "data-testid": `button-edit-${t.id}`,
1035
+ children: /* @__PURE__ */ e(ze, { className: "w-3 h-3" })
3328
1036
  }
3329
1037
  ),
3330
- x && e.type !== "object" && /* @__PURE__ */ n(
3331
- L,
1038
+ I && t.type !== "object" && /* @__PURE__ */ e(
1039
+ T,
3332
1040
  {
3333
1041
  variant: "ghost",
3334
1042
  size: "icon",
3335
1043
  className: "h-7 w-7",
3336
- onClick: w.addChild,
3337
- "data-testid": `button-add-child-${e.id}`,
3338
- children: /* @__PURE__ */ n(Q, { className: "w-3 h-3" })
1044
+ onClick: g.addChild,
1045
+ "data-testid": `button-add-child-${t.id}`,
1046
+ children: /* @__PURE__ */ e(B, { className: "w-3 h-3" })
3339
1047
  }
3340
1048
  ),
3341
- /* @__PURE__ */ n(
3342
- L,
1049
+ /* @__PURE__ */ e(
1050
+ T,
3343
1051
  {
3344
1052
  variant: "ghost",
3345
1053
  size: "icon",
3346
1054
  className: "h-7 w-7 text-muted-foreground hover:text-destructive",
3347
- onClick: t,
3348
- "data-testid": `button-delete-${e.id}`,
3349
- children: /* @__PURE__ */ n(De, { className: "w-3 h-3" })
1055
+ onClick: a,
1056
+ "data-testid": `button-delete-${t.id}`,
1057
+ children: /* @__PURE__ */ e(ce, { className: "w-3 h-3" })
3350
1058
  }
3351
1059
  )
3352
1060
  ] })
3353
1061
  ] }),
3354
- p && /* @__PURE__ */ n(
1062
+ b && /* @__PURE__ */ e(
3355
1063
  "div",
3356
1064
  {
3357
- className: o === 1 ? "ml-6 mt-1 border-l-2 border-border pl-6" : "ml-4 mt-1 border-l border-border pl-4",
3358
- children: e.children.map((b) => /* @__PURE__ */ n(
3359
- he,
1065
+ className: d === 1 ? "ml-6 mt-1 border-l-2 border-border pl-6" : "ml-4 mt-1 border-l border-border pl-4",
1066
+ children: t.children.map((h) => /* @__PURE__ */ e(
1067
+ Q,
3360
1068
  {
3361
- property: b,
3362
- onUpdate: (A) => w.updateChild(b.id, A),
3363
- onDelete: () => w.deleteChild(b.id),
3364
- level: o + 1,
3365
- showRegex: i,
3366
- keyEditable: s
1069
+ property: h,
1070
+ onUpdate: (L) => g.updateChild(h.id, L),
1071
+ onDelete: () => g.deleteChild(h.id),
1072
+ level: d + 1,
1073
+ showRegex: l,
1074
+ keyEditable: r
3367
1075
  },
3368
- b.id
1076
+ h.id
3369
1077
  ))
3370
1078
  }
3371
1079
  ),
3372
- e.type === "array" && e.items && /* @__PURE__ */ c(
1080
+ t.type === "array" && t.items && /* @__PURE__ */ s(
3373
1081
  "div",
3374
1082
  {
3375
- className: o === 1 ? "ml-6 mt-1 border-l-2 border-border pl-6" : "ml-4 mt-1 border-l border-border pl-4",
1083
+ className: d === 1 ? "ml-6 mt-1 border-l-2 border-border pl-6" : "ml-4 mt-1 border-l border-border pl-4",
3376
1084
  children: [
3377
- /* @__PURE__ */ c("div", { className: "mb-2 text-xs text-muted-foreground font-semibold uppercase", children: [
3378
- l("array"),
1085
+ /* @__PURE__ */ s("div", { className: "mb-2 text-xs text-muted-foreground font-semibold uppercase", children: [
1086
+ u("array"),
3379
1087
  " Items"
3380
1088
  ] }),
3381
- /* @__PURE__ */ n(
3382
- he,
1089
+ /* @__PURE__ */ e(
1090
+ Q,
3383
1091
  {
3384
- property: e.items,
3385
- onUpdate: (b) => r({ ...e, items: b }),
3386
- onDelete: () => r({ ...e, items: void 0 }),
3387
- level: o + 1,
1092
+ property: t.items,
1093
+ onUpdate: (h) => i({ ...t, items: h }),
1094
+ onDelete: () => i({ ...t, items: void 0 }),
1095
+ level: d + 1,
3388
1096
  isArrayItem: !0,
3389
- showRegex: i,
3390
- keyEditable: s
1097
+ showRegex: l,
1098
+ keyEditable: r
3391
1099
  }
3392
1100
  )
3393
1101
  ]
3394
1102
  }
3395
1103
  ),
3396
- /* @__PURE__ */ n(
3397
- pe,
1104
+ /* @__PURE__ */ e(
1105
+ G,
3398
1106
  {
3399
- property: m.data || e,
3400
- open: m.isOpen,
3401
- onOpenChange: m.setIsOpen,
3402
- onUpdate: (b) => {
3403
- r(b), m.close();
1107
+ property: c.data || t,
1108
+ open: c.isOpen,
1109
+ onOpenChange: c.setIsOpen,
1110
+ onUpdate: (h) => {
1111
+ i(h), c.close();
3404
1112
  },
3405
- isArrayItem: a,
1113
+ isArrayItem: n,
3406
1114
  isNewProperty: !1,
3407
- showRegex: i,
3408
- keyEditable: s
1115
+ showRegex: l,
1116
+ keyEditable: r
3409
1117
  }
3410
1118
  ),
3411
- w.addChildDialog.isOpen && w.addChildDialog.data && /* @__PURE__ */ n(
3412
- pe,
1119
+ g.addChildDialog.isOpen && g.addChildDialog.data && /* @__PURE__ */ e(
1120
+ G,
3413
1121
  {
3414
- property: w.addChildDialog.data,
3415
- open: w.addChildDialog.isOpen,
1122
+ property: g.addChildDialog.data,
1123
+ open: g.addChildDialog.isOpen,
3416
1124
  isNewProperty: !0,
3417
- onOpenChange: w.addChildDialog.setIsOpen,
3418
- onUpdate: w.addChildDialog.confirm,
3419
- showRegex: i,
3420
- keyEditable: s
1125
+ onOpenChange: g.addChildDialog.setIsOpen,
1126
+ onUpdate: g.addChildDialog.confirm,
1127
+ showRegex: l,
1128
+ keyEditable: r
3421
1129
  }
3422
1130
  )
3423
1131
  ] });
3424
1132
  }
3425
- const Ce = S.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ n(
1133
+ const ne = y.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ e(
3426
1134
  "div",
3427
1135
  {
3428
- ref: t,
3429
- className: C(
1136
+ ref: a,
1137
+ className: p(
3430
1138
  "rounded-xl border bg-card text-card-foreground shadow",
3431
- e
1139
+ t
3432
1140
  ),
3433
- ...r
1141
+ ...i
3434
1142
  }
3435
1143
  ));
3436
- Ce.displayName = "Card";
3437
- const fr = S.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ n(
1144
+ ne.displayName = "Card";
1145
+ const rt = y.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ e(
3438
1146
  "div",
3439
1147
  {
3440
- ref: t,
3441
- className: C("flex flex-col space-y-1.5 p-6", e),
3442
- ...r
1148
+ ref: a,
1149
+ className: p("flex flex-col space-y-1.5 p-6", t),
1150
+ ...i
3443
1151
  }
3444
1152
  ));
3445
- fr.displayName = "CardHeader";
3446
- const gr = S.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ n(
1153
+ rt.displayName = "CardHeader";
1154
+ const lt = y.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ e(
3447
1155
  "div",
3448
1156
  {
3449
- ref: t,
3450
- className: C("font-semibold leading-none tracking-tight", e),
3451
- ...r
1157
+ ref: a,
1158
+ className: p("font-semibold leading-none tracking-tight", t),
1159
+ ...i
3452
1160
  }
3453
1161
  ));
3454
- gr.displayName = "CardTitle";
3455
- const br = S.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ n(
1162
+ lt.displayName = "CardTitle";
1163
+ const dt = y.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ e(
3456
1164
  "div",
3457
1165
  {
3458
- ref: t,
3459
- className: C("text-sm text-muted-foreground", e),
3460
- ...r
1166
+ ref: a,
1167
+ className: p("text-sm text-muted-foreground", t),
1168
+ ...i
3461
1169
  }
3462
1170
  ));
3463
- br.displayName = "CardDescription";
3464
- const yr = S.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ n("div", { ref: t, className: C("p-6 pt-0", e), ...r }));
3465
- yr.displayName = "CardContent";
3466
- const vr = S.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ n(
1171
+ dt.displayName = "CardDescription";
1172
+ const ot = y.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ e("div", { ref: a, className: p("p-6 pt-0", t), ...i }));
1173
+ ot.displayName = "CardContent";
1174
+ const ct = y.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ e(
3467
1175
  "div",
3468
1176
  {
3469
- ref: t,
3470
- className: C("flex items-center p-6 pt-0", e),
3471
- ...r
1177
+ ref: a,
1178
+ className: p("flex items-center p-6 pt-0", t),
1179
+ ...i
3472
1180
  }
3473
1181
  ));
3474
- vr.displayName = "CardFooter";
3475
- const xr = () => new Promise((e, r) => {
3476
- const t = document.createElement("input");
3477
- t.type = "file", t.accept = ".json", t.onchange = (o) => {
3478
- var s;
3479
- const a = (s = o.target.files) == null ? void 0 : s[0];
3480
- if (!a) {
3481
- r(new Error("No file selected"));
1182
+ ct.displayName = "CardFooter";
1183
+ const mt = () => new Promise((t, i) => {
1184
+ const a = document.createElement("input");
1185
+ a.type = "file", a.accept = ".json", a.onchange = (d) => {
1186
+ var r;
1187
+ const n = (r = d.target.files) == null ? void 0 : r[0];
1188
+ if (!n) {
1189
+ i(new Error("No file selected"));
3482
1190
  return;
3483
1191
  }
3484
- const i = new FileReader();
3485
- i.onload = (l) => {
3486
- var h;
1192
+ const l = new FileReader();
1193
+ l.onload = (u) => {
1194
+ var C;
3487
1195
  try {
3488
- const m = JSON.parse((h = l.target) == null ? void 0 : h.result);
3489
- e(m);
1196
+ const c = JSON.parse((C = u.target) == null ? void 0 : C.result);
1197
+ t(c);
3490
1198
  } catch {
3491
- r(new Error("Invalid JSON file"));
1199
+ i(new Error("Invalid JSON file"));
3492
1200
  }
3493
- }, i.onerror = () => r(new Error("Failed to read file")), i.readAsText(a);
3494
- }, t.click();
3495
- }), rt = (e, r = "schema.json") => {
3496
- const t = JSON.stringify(e, null, 2), o = new Blob([t], { type: "application/json" }), a = URL.createObjectURL(o), i = document.createElement("a");
3497
- i.href = a, i.download = r, document.body.appendChild(i), i.click(), document.body.removeChild(i), URL.revokeObjectURL(a);
1201
+ }, l.onerror = () => i(new Error("Failed to read file")), l.readAsText(n);
1202
+ }, a.click();
1203
+ }), we = (t, i = "schema.json") => {
1204
+ const a = JSON.stringify(t, null, 2), d = new Blob([a], { type: "application/json" }), n = URL.createObjectURL(d), l = document.createElement("a");
1205
+ l.href = n, l.download = i, document.body.appendChild(l), l.click(), document.body.removeChild(l), URL.revokeObjectURL(n);
3498
1206
  };
3499
- function wr({ schema: e }) {
3500
- const [r, t] = B(!1), o = JSON.stringify(e, null, 2);
3501
- return /* @__PURE__ */ c("div", { className: "h-full flex flex-col", children: [
3502
- /* @__PURE__ */ c("div", { className: "flex items-center justify-between p-4 border-b", children: [
3503
- /* @__PURE__ */ n("h2", { className: "text-sm font-medium", children: "JSON Schema Output" }),
3504
- /* @__PURE__ */ c("div", { className: "flex gap-2", children: [
3505
- /* @__PURE__ */ n(
3506
- L,
1207
+ function ut({ schema: t }) {
1208
+ const [i, a] = O(!1), d = JSON.stringify(t, null, 2);
1209
+ return /* @__PURE__ */ s("div", { className: "h-full flex flex-col", children: [
1210
+ /* @__PURE__ */ s("div", { className: "flex items-center justify-between p-4 border-b", children: [
1211
+ /* @__PURE__ */ e("h2", { className: "text-sm font-medium", children: "JSON Schema Output" }),
1212
+ /* @__PURE__ */ s("div", { className: "flex gap-2", children: [
1213
+ /* @__PURE__ */ e(
1214
+ T,
3507
1215
  {
3508
1216
  variant: "outline",
3509
1217
  size: "sm",
3510
1218
  onClick: async () => {
3511
- await navigator.clipboard.writeText(o), t(!0), setTimeout(() => t(!1), 2e3);
1219
+ await navigator.clipboard.writeText(d), a(!0), setTimeout(() => a(!1), 2e3);
3512
1220
  },
3513
1221
  "data-testid": "button-copy",
3514
- children: r ? /* @__PURE__ */ n(ft, { className: "w-4 h-4" }) : /* @__PURE__ */ n(gt, { className: "w-4 h-4" })
1222
+ children: i ? /* @__PURE__ */ e(Be, { className: "w-4 h-4" }) : /* @__PURE__ */ e(Ae, { className: "w-4 h-4" })
3515
1223
  }
3516
1224
  ),
3517
- /* @__PURE__ */ n(
3518
- L,
1225
+ /* @__PURE__ */ e(
1226
+ T,
3519
1227
  {
3520
1228
  variant: "outline",
3521
1229
  size: "sm",
3522
1230
  onClick: () => {
3523
- rt(e, "schema.json");
1231
+ we(t, "schema.json");
3524
1232
  },
3525
1233
  "data-testid": "button-download",
3526
- children: /* @__PURE__ */ n(bt, { className: "w-4 h-4" })
1234
+ children: /* @__PURE__ */ e(Me, { className: "w-4 h-4" })
3527
1235
  }
3528
1236
  )
3529
1237
  ] })
3530
1238
  ] }),
3531
- /* @__PURE__ */ n("div", { className: "flex-1 overflow-auto", children: /* @__PURE__ */ n(Ce, { className: "m-4 bg-muted/30", children: /* @__PURE__ */ n(
1239
+ /* @__PURE__ */ e("div", { className: "flex-1 overflow-auto", children: /* @__PURE__ */ e(ne, { className: "m-4 bg-muted/30", children: /* @__PURE__ */ e(
3532
1240
  "pre",
3533
1241
  {
3534
1242
  className: "p-6 text-xs font-mono overflow-auto",
3535
1243
  "data-testid": "text-json-output",
3536
- children: /* @__PURE__ */ n("code", { children: o })
1244
+ children: /* @__PURE__ */ e("code", { children: d })
3537
1245
  }
3538
1246
  ) }) })
3539
1247
  ] });
3540
1248
  }
3541
- function Nr({
3542
- title: e,
3543
- description: r,
3544
- version: t,
3545
- onUpdate: o
1249
+ function ht({
1250
+ title: t,
1251
+ description: i,
1252
+ version: a,
1253
+ onUpdate: d
3546
1254
  }) {
3547
- const [a, i] = B(!1);
3548
- return /* @__PURE__ */ c(Ce, { className: "p-4", children: [
3549
- /* @__PURE__ */ c(
3550
- L,
1255
+ const [n, l] = O(!1);
1256
+ return /* @__PURE__ */ s(ne, { className: "p-4", children: [
1257
+ /* @__PURE__ */ s(
1258
+ T,
3551
1259
  {
3552
1260
  variant: "ghost",
3553
- onClick: () => i(!a),
1261
+ onClick: () => l(!n),
3554
1262
  className: "w-full justify-between px-2 h-auto hover:bg-transparent",
3555
1263
  "data-testid": "button-toggle-metadata",
3556
1264
  children: [
3557
- /* @__PURE__ */ n("h3", { className: "text-sm font-medium", children: "Schema Metadata" }),
3558
- a ? /* @__PURE__ */ n(ye, { className: "w-4 h-4" }) : /* @__PURE__ */ n(yt, { className: "w-4 h-4" })
1265
+ /* @__PURE__ */ e("h3", { className: "text-sm font-medium", children: "Schema Metadata" }),
1266
+ n ? /* @__PURE__ */ e(ee, { className: "w-4 h-4" }) : /* @__PURE__ */ e($e, { className: "w-4 h-4" })
3559
1267
  ]
3560
1268
  }
3561
1269
  ),
3562
- a && /* @__PURE__ */ c("div", { className: "mt-4 space-y-4", children: [
3563
- /* @__PURE__ */ c("div", { className: "space-y-2", children: [
3564
- /* @__PURE__ */ n(
3565
- T,
1270
+ n && /* @__PURE__ */ s("div", { className: "mt-4 space-y-4", children: [
1271
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: [
1272
+ /* @__PURE__ */ e(
1273
+ N,
3566
1274
  {
3567
1275
  htmlFor: "schema-title",
3568
1276
  className: "text-xs text-muted-foreground",
3569
1277
  children: "Title"
3570
1278
  }
3571
1279
  ),
3572
- /* @__PURE__ */ n(
3573
- E,
1280
+ /* @__PURE__ */ e(
1281
+ D,
3574
1282
  {
3575
1283
  id: "schema-title",
3576
1284
  placeholder: "My Schema",
3577
- value: e,
3578
- onChange: (s) => o("title", s.target.value),
1285
+ value: t,
1286
+ onChange: (r) => d("title", r.target.value),
3579
1287
  "data-testid": "input-title"
3580
1288
  }
3581
1289
  )
3582
1290
  ] }),
3583
- /* @__PURE__ */ c("div", { className: "space-y-2", children: [
3584
- /* @__PURE__ */ n(
3585
- T,
1291
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: [
1292
+ /* @__PURE__ */ e(
1293
+ N,
3586
1294
  {
3587
1295
  htmlFor: "schema-description",
3588
1296
  className: "text-xs text-muted-foreground",
3589
1297
  children: "Description"
3590
1298
  }
3591
1299
  ),
3592
- /* @__PURE__ */ n(
3593
- xe,
1300
+ /* @__PURE__ */ e(
1301
+ te,
3594
1302
  {
3595
1303
  id: "schema-description",
3596
1304
  placeholder: "Describe your schema...",
3597
- value: r,
3598
- onChange: (s) => o("description", s.target.value),
1305
+ value: i,
1306
+ onChange: (r) => d("description", r.target.value),
3599
1307
  className: "resize-none",
3600
1308
  rows: 3,
3601
1309
  "data-testid": "input-schema-description"
3602
1310
  }
3603
1311
  )
3604
1312
  ] }),
3605
- /* @__PURE__ */ c("div", { className: "space-y-2", children: [
3606
- /* @__PURE__ */ n(
3607
- T,
1313
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: [
1314
+ /* @__PURE__ */ e(
1315
+ N,
3608
1316
  {
3609
1317
  htmlFor: "schema-version",
3610
1318
  className: "text-xs text-muted-foreground",
3611
1319
  children: "Version"
3612
1320
  }
3613
1321
  ),
3614
- /* @__PURE__ */ n(
3615
- E,
1322
+ /* @__PURE__ */ e(
1323
+ D,
3616
1324
  {
3617
1325
  id: "schema-version",
3618
1326
  placeholder: "1.0.0",
3619
- value: t,
3620
- onChange: (s) => o("version", s.target.value),
1327
+ value: a,
1328
+ onChange: (r) => d("version", r.target.value),
3621
1329
  "data-testid": "input-version"
3622
1330
  }
3623
1331
  )
@@ -3625,308 +1333,308 @@ function Nr({
3625
1333
  ] })
3626
1334
  ] });
3627
1335
  }
3628
- const re = (e, r, t = !0) => {
3629
- const o = {
1336
+ const M = (t, i, a = !0) => {
1337
+ const d = {
3630
1338
  type: "object"
3631
1339
  };
3632
- t && r && (r.title && (o.title = r.title), r.description && (o.description = r.description));
3633
- const a = fe(e);
3634
- Object.keys(a).length > 0 && (o.properties = a);
3635
- const i = e.filter((s) => s.required && s.key).map((s) => s.key);
3636
- return i.length > 0 && (o.required = i), o;
3637
- }, fe = (e) => {
3638
- const r = {};
3639
- return e.forEach((t) => {
3640
- if (!t.key) return;
3641
- const a = { type: t.type === "file" ? "string" : t.type };
3642
- if (t.title && (a.title = t.title), t.description && (a.description = t.description), t.type === "file" && (a.format = "filename"), t.type === "string" && (t.minLength !== void 0 && (a.minLength = t.minLength), t.maxLength !== void 0 && (a.maxLength = t.maxLength), t.pattern && (a.pattern = t.pattern), t.enum && t.enum.length > 0 && (a.enum = t.enum)), (t.type === "number" || t.type === "integer") && (t.minimum !== void 0 && (a.minimum = t.minimum), t.maximum !== void 0 && (a.maximum = t.maximum)), t.type === "array" && (t.minItems !== void 0 && (a.minItems = t.minItems), t.maxItems !== void 0 && (a.maxItems = t.maxItems), t.uniqueItems && (a.uniqueItems = t.uniqueItems), t.items && (a.items = fe([t.items])[t.items.key] || {
3643
- type: t.items.type
3644
- })), t.type === "object" && t.children && t.children.length > 0) {
3645
- a.properties = fe(t.children);
3646
- const i = t.children.filter((s) => s.required && s.key).map((s) => s.key);
3647
- i.length > 0 && (a.required = i);
1340
+ a && i && (i.title && (d.title = i.title), i.description && (d.description = i.description));
1341
+ const n = W(t);
1342
+ Object.keys(n).length > 0 && (d.properties = n);
1343
+ const l = t.filter((r) => r.required && r.key).map((r) => r.key);
1344
+ return l.length > 0 && (d.required = l), d;
1345
+ }, W = (t) => {
1346
+ const i = {};
1347
+ return t.forEach((a) => {
1348
+ if (!a.key) return;
1349
+ const n = { type: a.type === "file" ? "string" : a.type };
1350
+ if (a.title && (n.title = a.title), a.description && (n.description = a.description), a.type === "file" && (n.format = "filename"), a.type === "string" && (a.minLength !== void 0 && (n.minLength = a.minLength), a.maxLength !== void 0 && (n.maxLength = a.maxLength), a.pattern && (n.pattern = a.pattern), a.enum && a.enum.length > 0 && (n.enum = a.enum)), (a.type === "number" || a.type === "integer") && (a.minimum !== void 0 && (n.minimum = a.minimum), a.maximum !== void 0 && (n.maximum = a.maximum)), a.type === "array" && (a.minItems !== void 0 && (n.minItems = a.minItems), a.maxItems !== void 0 && (n.maxItems = a.maxItems), a.uniqueItems && (n.uniqueItems = a.uniqueItems), a.items && (n.items = W([a.items])[a.items.key] || {
1351
+ type: a.items.type
1352
+ })), a.type === "object" && a.children && a.children.length > 0) {
1353
+ n.properties = W(a.children);
1354
+ const l = a.children.filter((r) => r.required && r.key).map((r) => r.key);
1355
+ l.length > 0 && (n.required = l);
3648
1356
  }
3649
- r[t.key] = a;
3650
- }), r;
3651
- }, Cr = (e) => {
3652
- const r = {
1357
+ i[a.key] = n;
1358
+ }), i;
1359
+ }, ft = (t) => {
1360
+ const i = {
3653
1361
  properties: []
3654
1362
  };
3655
- return (e.title || e.description) && (r.metadata = {
3656
- title: typeof e.title == "string" ? e.title : "",
3657
- description: typeof e.description == "string" ? e.description : "",
1363
+ return (t.title || t.description) && (i.metadata = {
1364
+ title: typeof t.title == "string" ? t.title : "",
1365
+ description: typeof t.description == "string" ? t.description : "",
3658
1366
  version: "1.0.0"
3659
1367
  // Default version
3660
- }), e.properties && typeof e.properties == "object" && (r.properties = ge(
3661
- e.properties,
3662
- Array.isArray(e.required) ? e.required : []
3663
- )), r;
3664
- }, ge = (e, r = []) => e ? Object.entries(e).filter(([, t]) => typeof t == "object").map(([t, o]) => {
3665
- const a = o;
3666
- let i = typeof a.type == "string" ? a.type : "string";
3667
- i === "string" && a.format === "filename" && (i = "file");
3668
- const s = {
3669
- id: we(),
3670
- key: t,
3671
- title: typeof a.title == "string" ? a.title : void 0,
3672
- type: i,
3673
- description: typeof a.description == "string" ? a.description : void 0,
3674
- required: r.includes(t)
1368
+ }), t.properties && typeof t.properties == "object" && (i.properties = Y(
1369
+ t.properties,
1370
+ Array.isArray(t.required) ? t.required : []
1371
+ )), i;
1372
+ }, Y = (t, i = []) => t ? Object.entries(t).filter(([, a]) => typeof a == "object").map(([a, d]) => {
1373
+ const n = d;
1374
+ let l = typeof n.type == "string" ? n.type : "string";
1375
+ l === "string" && n.format === "filename" && (l = "file");
1376
+ const r = {
1377
+ id: ae(),
1378
+ key: a,
1379
+ title: typeof n.title == "string" ? n.title : void 0,
1380
+ type: l,
1381
+ description: typeof n.description == "string" ? n.description : void 0,
1382
+ required: i.includes(a)
3675
1383
  };
3676
- return a.minLength !== void 0 && (s.minLength = a.minLength), a.maxLength !== void 0 && (s.maxLength = a.maxLength), a.pattern && (s.pattern = a.pattern), a.enum && Array.isArray(a.enum) && (s.enum = a.enum), a.minimum !== void 0 && (s.minimum = a.minimum), a.maximum !== void 0 && (s.maximum = a.maximum), a.minItems !== void 0 && (s.minItems = a.minItems), a.maxItems !== void 0 && (s.maxItems = a.maxItems), a.uniqueItems && (s.uniqueItems = a.uniqueItems), s.type === "array" && a.items && typeof a.items == "object" && !Array.isArray(a.items) && (s.items = ge(
3677
- { item: a.items },
1384
+ return n.minLength !== void 0 && (r.minLength = n.minLength), n.maxLength !== void 0 && (r.maxLength = n.maxLength), n.pattern && (r.pattern = n.pattern), n.enum && Array.isArray(n.enum) && (r.enum = n.enum), n.minimum !== void 0 && (r.minimum = n.minimum), n.maximum !== void 0 && (r.maximum = n.maximum), n.minItems !== void 0 && (r.minItems = n.minItems), n.maxItems !== void 0 && (r.maxItems = n.maxItems), n.uniqueItems && (r.uniqueItems = n.uniqueItems), r.type === "array" && n.items && typeof n.items == "object" && !Array.isArray(n.items) && (r.items = Y(
1385
+ { item: n.items },
3678
1386
  []
3679
- ).find((l) => l.key === "item")), a.properties && typeof a.properties == "object" && (s.children = ge(
3680
- a.properties,
3681
- Array.isArray(a.required) ? a.required : []
3682
- )), s;
3683
- }) : [], kr = ({
3684
- schema: e,
3685
- onChange: r,
3686
- includeMetadata: t = !0
1387
+ ).find((u) => u.key === "item")), n.properties && typeof n.properties == "object" && (r.children = Y(
1388
+ n.properties,
1389
+ Array.isArray(n.required) ? n.required : []
1390
+ )), r;
1391
+ }) : [], pt = ({
1392
+ schema: t,
1393
+ onChange: i,
1394
+ includeMetadata: a = !0
3687
1395
  }) => {
3688
- const { properties: o, metadata: a } = ot(
3689
- () => Cr(e),
3690
- [e]
3691
- ), i = o, s = a || {
1396
+ const { properties: d, metadata: n } = Te(
1397
+ () => ft(t),
1398
+ [t]
1399
+ ), l = d, r = n || {
3692
1400
  title: "",
3693
1401
  description: "",
3694
1402
  version: ""
3695
- }, l = _(() => ({
3696
- id: we(),
1403
+ }, u = E(() => ({
1404
+ id: ae(),
3697
1405
  key: "",
3698
1406
  type: "string",
3699
1407
  required: !1
3700
- }), []), h = _(
3701
- (v, x) => {
3702
- const p = i.some((A) => A.id === v);
3703
- let N;
3704
- p ? N = i.map((A) => A.id === v ? x : A) : N = [...i, x];
3705
- const b = re(
3706
- N,
3707
- s,
3708
- t
1408
+ }), []), C = E(
1409
+ (f, I) => {
1410
+ const b = l.some((L) => L.id === f);
1411
+ let q;
1412
+ b ? q = l.map((L) => L.id === f ? I : L) : q = [...l, I];
1413
+ const h = M(
1414
+ q,
1415
+ r,
1416
+ a
3709
1417
  );
3710
- r(b);
1418
+ i(h);
3711
1419
  },
3712
- [i, s, t, r]
3713
- ), m = _(
3714
- (v) => {
3715
- const x = i.filter((N) => N.id !== v), p = re(
3716
- x,
3717
- s,
3718
- t
1420
+ [l, r, a, i]
1421
+ ), c = E(
1422
+ (f) => {
1423
+ const I = l.filter((q) => q.id !== f), b = M(
1424
+ I,
1425
+ r,
1426
+ a
3719
1427
  );
3720
- r(p);
1428
+ i(b);
3721
1429
  },
3722
- [i, s, t, r]
3723
- ), d = _(() => {
3724
- const x = re([], { title: "", description: "" }, t);
3725
- r(x);
3726
- }, [t, r]), f = _(
3727
- (v, x) => {
3728
- const p = { ...s, [v]: x }, N = re(
3729
- i,
3730
- p,
3731
- t
1430
+ [l, r, a, i]
1431
+ ), o = E(() => {
1432
+ const I = M([], { title: "", description: "" }, a);
1433
+ i(I);
1434
+ }, [a, i]), v = E(
1435
+ (f, I) => {
1436
+ const b = { ...r, [f]: I }, q = M(
1437
+ l,
1438
+ b,
1439
+ a
3732
1440
  );
3733
- r(N);
1441
+ i(q);
3734
1442
  },
3735
- [i, s, t, r]
3736
- ), g = _(async () => {
3737
- const v = await xr();
3738
- r(v);
3739
- }, [r]), w = _(() => {
3740
- rt(e, "schema.json");
3741
- }, [e]);
1443
+ [l, r, a, i]
1444
+ ), x = E(async () => {
1445
+ const f = await mt();
1446
+ i(f);
1447
+ }, [i]), g = E(() => {
1448
+ we(t, "schema.json");
1449
+ }, [t]);
3742
1450
  return {
3743
- properties: i,
3744
- metadata: s,
3745
- addProperty: l,
3746
- updateProperty: h,
3747
- deleteProperty: m,
3748
- clearAll: d,
3749
- updateMetadata: f,
3750
- importSchema: g,
3751
- downloadSchema: w
1451
+ properties: l,
1452
+ metadata: r,
1453
+ addProperty: u,
1454
+ updateProperty: C,
1455
+ deleteProperty: c,
1456
+ clearAll: o,
1457
+ updateMetadata: v,
1458
+ importSchema: x,
1459
+ downloadSchema: g
3752
1460
  };
3753
1461
  };
3754
- function Ir() {
3755
- const [e, r] = B("light");
3756
- return be(() => {
3757
- const a = localStorage.getItem("theme") || (window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light");
3758
- r(a), document.documentElement.classList.toggle("dark", a === "dark");
3759
- }, []), /* @__PURE__ */ n(
3760
- L,
1462
+ function gt() {
1463
+ const [t, i] = O("light");
1464
+ return Z(() => {
1465
+ const n = localStorage.getItem("theme") || (window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light");
1466
+ i(n), document.documentElement.classList.toggle("dark", n === "dark");
1467
+ }, []), /* @__PURE__ */ e(
1468
+ T,
3761
1469
  {
3762
1470
  variant: "ghost",
3763
1471
  size: "icon",
3764
1472
  onClick: () => {
3765
- const o = e === "light" ? "dark" : "light";
3766
- r(o), localStorage.setItem("theme", o), document.documentElement.classList.toggle("dark", o === "dark");
1473
+ const d = t === "light" ? "dark" : "light";
1474
+ i(d), localStorage.setItem("theme", d), document.documentElement.classList.toggle("dark", d === "dark");
3767
1475
  },
3768
1476
  "data-testid": "button-theme-toggle",
3769
- children: e === "light" ? /* @__PURE__ */ n(vt, { className: "w-4 h-4" }) : /* @__PURE__ */ n(xt, { className: "w-4 h-4" })
1477
+ children: t === "light" ? /* @__PURE__ */ e(Ke, { className: "w-4 h-4" }) : /* @__PURE__ */ e(Je, { className: "w-4 h-4" })
3770
1478
  }
3771
1479
  );
3772
1480
  }
3773
- function Pr({
3774
- schema: e,
3775
- onChange: r,
3776
- showMetadata: t = !1,
3777
- showImport: o = !0,
3778
- showClear: a = !0,
3779
- showOutput: i = !0,
3780
- showHeader: s = !0,
3781
- className: l = "",
3782
- showSummary: h = !1,
3783
- typeLabels: m,
3784
- propertyLabel: d = { singular: "property", plural: "properties" },
3785
- showRegex: f = !1,
3786
- keyEditable: g = !1
1481
+ function It({
1482
+ schema: t,
1483
+ onChange: i,
1484
+ showMetadata: a = !1,
1485
+ showImport: d = !0,
1486
+ showClear: n = !0,
1487
+ showOutput: l = !0,
1488
+ showHeader: r = !0,
1489
+ className: u = "",
1490
+ showSummary: C = !1,
1491
+ typeLabels: c,
1492
+ propertyLabel: o = { singular: "property", plural: "properties" },
1493
+ showRegex: v = !1,
1494
+ keyEditable: x = !1
3787
1495
  }) {
3788
1496
  const {
3789
- properties: w,
3790
- metadata: v,
3791
- addProperty: x,
3792
- updateProperty: p,
3793
- deleteProperty: N,
3794
- clearAll: b,
3795
- updateMetadata: A,
3796
- importSchema: u
3797
- } = kr({
3798
- schema: e,
3799
- onChange: r,
3800
- includeMetadata: t
3801
- }), j = Ne({
3802
- createInitialData: () => x(),
3803
- onConfirm: (P) => {
3804
- p(P.id, P);
1497
+ properties: g,
1498
+ metadata: f,
1499
+ addProperty: I,
1500
+ updateProperty: b,
1501
+ deleteProperty: q,
1502
+ clearAll: h,
1503
+ updateMetadata: L,
1504
+ importSchema: m
1505
+ } = pt({
1506
+ schema: t,
1507
+ onChange: i,
1508
+ includeMetadata: a
1509
+ }), j = ie({
1510
+ createInitialData: () => I(),
1511
+ onConfirm: (S) => {
1512
+ b(S.id, S);
3805
1513
  }
3806
- }), $ = () => {
3807
- b();
3808
- }, K = async () => {
3809
- await u();
1514
+ }), A = () => {
1515
+ h();
1516
+ }, J = async () => {
1517
+ await m();
3810
1518
  };
3811
- return /* @__PURE__ */ n(ur, { customLabels: m, children: /* @__PURE__ */ c("div", { className: `${l} flex flex-col json-schema-builder-react`, children: [
3812
- s && /* @__PURE__ */ n("header", { className: "h-16 border-b flex items-center justify-between px-6", children: /* @__PURE__ */ c("div", { className: "flex items-center gap-3", children: [
3813
- o && /* @__PURE__ */ n(
3814
- L,
1519
+ return /* @__PURE__ */ e(it, { customLabels: c, children: /* @__PURE__ */ s("div", { className: `${u} flex flex-col json-schema-builder-react`, children: [
1520
+ r && /* @__PURE__ */ e("header", { className: "h-16 border-b flex items-center justify-between px-6", children: /* @__PURE__ */ s("div", { className: "flex items-center gap-3", children: [
1521
+ d && /* @__PURE__ */ e(
1522
+ T,
3815
1523
  {
3816
1524
  variant: "outline",
3817
1525
  size: "sm",
3818
- onClick: K,
1526
+ onClick: J,
3819
1527
  "data-testid": "button-import",
3820
- children: /* @__PURE__ */ n(wt, { className: "w-4 h-4" })
1528
+ children: /* @__PURE__ */ e(Ve, { className: "w-4 h-4" })
3821
1529
  }
3822
1530
  ),
3823
- a && /* @__PURE__ */ n(
3824
- L,
1531
+ n && /* @__PURE__ */ e(
1532
+ T,
3825
1533
  {
3826
1534
  variant: "outline",
3827
1535
  size: "sm",
3828
- onClick: $,
3829
- disabled: w.length === 0,
1536
+ onClick: A,
1537
+ disabled: g.length === 0,
3830
1538
  "data-testid": "button-clear",
3831
- children: /* @__PURE__ */ n(De, { className: "w-4 h-4" })
1539
+ children: /* @__PURE__ */ e(ce, { className: "w-4 h-4" })
3832
1540
  }
3833
1541
  ),
3834
- /* @__PURE__ */ n(Ir, {})
1542
+ /* @__PURE__ */ e(gt, {})
3835
1543
  ] }) }),
3836
- /* @__PURE__ */ c("div", { className: "flex-1 flex overflow-hidden", children: [
3837
- /* @__PURE__ */ n("div", { className: i ? "w-3/5 border-r" : "w-full", children: /* @__PURE__ */ c("div", { className: "h-full flex flex-col", children: [
3838
- /* @__PURE__ */ c("div", { className: "flex-1 overflow-auto p-2 space-y-4", children: [
3839
- t && /* @__PURE__ */ n(
3840
- Nr,
1544
+ /* @__PURE__ */ s("div", { className: "flex-1 flex overflow-hidden", children: [
1545
+ /* @__PURE__ */ e("div", { className: l ? "w-3/5 border-r" : "w-full", children: /* @__PURE__ */ s("div", { className: "h-full flex flex-col", children: [
1546
+ /* @__PURE__ */ s("div", { className: "flex-1 overflow-auto p-2 space-y-4", children: [
1547
+ a && /* @__PURE__ */ e(
1548
+ ht,
3841
1549
  {
3842
- title: v.title,
3843
- description: v.description,
3844
- version: v.version,
3845
- onUpdate: (P, O) => A(P, O)
1550
+ title: f.title,
1551
+ description: f.description,
1552
+ version: f.version,
1553
+ onUpdate: (S, R) => L(S, R)
3846
1554
  }
3847
1555
  ),
3848
- w.length === 0 ? /* @__PURE__ */ c("div", { className: "flex flex-col items-center justify-center py-16 text-center", children: [
3849
- /* @__PURE__ */ n("div", { className: "w-16 h-16 rounded-full bg-muted flex items-center justify-center mb-4", children: /* @__PURE__ */ n(Q, { className: "w-8 h-8 text-muted-foreground" }) }),
3850
- /* @__PURE__ */ c("h2", { className: "text-lg font-medium mb-2", children: [
1556
+ g.length === 0 ? /* @__PURE__ */ s("div", { className: "flex flex-col items-center justify-center py-16 text-center", children: [
1557
+ /* @__PURE__ */ e("div", { className: "w-16 h-16 rounded-full bg-muted flex items-center justify-center mb-4", children: /* @__PURE__ */ e(B, { className: "w-8 h-8 text-muted-foreground" }) }),
1558
+ /* @__PURE__ */ s("h2", { className: "text-lg font-medium mb-2", children: [
3851
1559
  "No ",
3852
- d.plural,
1560
+ o.plural,
3853
1561
  " yet"
3854
1562
  ] }),
3855
- /* @__PURE__ */ c("p", { className: "text-sm text-muted-foreground mb-6 max-w-sm", children: [
1563
+ /* @__PURE__ */ s("p", { className: "text-sm text-muted-foreground mb-6 max-w-sm", children: [
3856
1564
  "Start building your JSON schema by adding your first",
3857
1565
  " ",
3858
- d.singular
1566
+ o.singular
3859
1567
  ] }),
3860
- /* @__PURE__ */ c(
3861
- L,
1568
+ /* @__PURE__ */ s(
1569
+ T,
3862
1570
  {
3863
1571
  onClick: () => j.open(),
3864
1572
  "data-testid": "button-add-first",
3865
1573
  children: [
3866
- /* @__PURE__ */ n(Q, { className: "w-4 h-4 mr-2" }),
1574
+ /* @__PURE__ */ e(B, { className: "w-4 h-4 mr-2" }),
3867
1575
  "Add ",
3868
- d.singular
1576
+ o.singular
3869
1577
  ]
3870
1578
  }
3871
1579
  )
3872
- ] }) : /* @__PURE__ */ c(Ee, { children: [
3873
- /* @__PURE__ */ n("div", { className: "space-y-1", children: w.map((P) => /* @__PURE__ */ n(
3874
- he,
1580
+ ] }) : /* @__PURE__ */ s(le, { children: [
1581
+ /* @__PURE__ */ e("div", { className: "space-y-1", children: g.map((S) => /* @__PURE__ */ e(
1582
+ Q,
3875
1583
  {
3876
- property: P,
3877
- onUpdate: (O) => p(P.id, O),
3878
- onDelete: () => N(P.id),
3879
- showRegex: f,
3880
- keyEditable: g
1584
+ property: S,
1585
+ onUpdate: (R) => b(S.id, R),
1586
+ onDelete: () => q(S.id),
1587
+ showRegex: v,
1588
+ keyEditable: x
3881
1589
  },
3882
- P.id
1590
+ S.id
3883
1591
  )) }),
3884
- h && /* @__PURE__ */ c("div", { className: "pt-4 border-t flex items-center justify-between text-sm text-muted-foreground", children: [
3885
- /* @__PURE__ */ c("span", { children: [
3886
- w.length,
1592
+ C && /* @__PURE__ */ s("div", { className: "pt-4 border-t flex items-center justify-between text-sm text-muted-foreground", children: [
1593
+ /* @__PURE__ */ s("span", { children: [
1594
+ g.length,
3887
1595
  " ",
3888
- w.length === 1 ? d.singular : d.plural
1596
+ g.length === 1 ? o.singular : o.plural
3889
1597
  ] }),
3890
- /* @__PURE__ */ c("span", { children: [
3891
- w.filter((P) => P.required).length,
1598
+ /* @__PURE__ */ s("span", { children: [
1599
+ g.filter((S) => S.required).length,
3892
1600
  " required"
3893
1601
  ] })
3894
1602
  ] })
3895
1603
  ] })
3896
1604
  ] }),
3897
- w.length > 0 && /* @__PURE__ */ n("div", { className: "border-t p-2 pt-4 bg-background", children: /* @__PURE__ */ c(
3898
- L,
1605
+ g.length > 0 && /* @__PURE__ */ e("div", { className: "border-t p-2 pt-4 bg-background", children: /* @__PURE__ */ s(
1606
+ T,
3899
1607
  {
3900
1608
  onClick: () => j.open(),
3901
1609
  className: "w-full",
3902
1610
  variant: "outline",
3903
1611
  "data-testid": "button-add-property",
3904
1612
  children: [
3905
- /* @__PURE__ */ n(Q, { className: "w-4 h-4" }),
1613
+ /* @__PURE__ */ e(B, { className: "w-4 h-4" }),
3906
1614
  "Add ",
3907
- d.singular
1615
+ o.singular
3908
1616
  ]
3909
1617
  }
3910
1618
  ) })
3911
1619
  ] }) }),
3912
- i && /* @__PURE__ */ n("div", { className: "w-2/5", children: /* @__PURE__ */ n(wr, { schema: e }) })
1620
+ l && /* @__PURE__ */ e("div", { className: "w-2/5", children: /* @__PURE__ */ e(ut, { schema: t }) })
3913
1621
  ] }),
3914
- j.isOpen && j.data && /* @__PURE__ */ n(
3915
- pe,
1622
+ j.isOpen && j.data && /* @__PURE__ */ e(
1623
+ G,
3916
1624
  {
3917
1625
  property: j.data,
3918
1626
  open: j.isOpen,
3919
1627
  isNewProperty: !0,
3920
1628
  onOpenChange: j.setIsOpen,
3921
- propertyLabel: d,
1629
+ propertyLabel: o,
3922
1630
  onUpdate: j.confirm,
3923
- showRegex: f,
3924
- keyEditable: g
1631
+ showRegex: v,
1632
+ keyEditable: x
3925
1633
  }
3926
1634
  )
3927
1635
  ] }) });
3928
1636
  }
3929
1637
  export {
3930
- Pr as JsonSchemaBuilder
1638
+ It as JsonSchemaBuilder
3931
1639
  };
3932
1640
  //# sourceMappingURL=index.js.map