glass-ui-solid 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayField.d.ts","sourceRoot":"","sources":["../../../../src/components/JsonSchemaForm/fields/ArrayField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAQ1C,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,UAAU,CAAC;AAmDhE;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,CAAC,eAAe,CAqJjD,CAAC"}
1
+ {"version":3,"file":"ArrayField.d.ts","sourceRoot":"","sources":["../../../../src/components/JsonSchemaForm/fields/ArrayField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAS1C,OAAO,KAAK,EAAE,eAAe,EAA0B,MAAM,UAAU,CAAC;AA8DxE;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,CAAC,eAAe,CAkMjD,CAAC"}
@@ -1,20 +1,24 @@
1
- import { template as x, insert as l, createComponent as t, effect as T, memo as f, delegateEvents as j } from "solid-js/web";
2
- import { For as D, Show as o, Switch as E, Match as w } from "solid-js";
3
- import { resolveSchemaType as b, getDefaultValue as V } from "../utils.js";
1
+ import { template as m, insert as c, createComponent as n, effect as T, memo as v, delegateEvents as V } from "solid-js/web";
2
+ import { Show as i, For as I, Switch as j, Match as $ } from "solid-js";
3
+ import { resolveSchemaType as b, getDefaultValue as D } from "../utils.js";
4
4
  import { BooleanField as B } from "./BooleanField.js";
5
- import { EnumField as J } from "./EnumField.js";
6
- import { NumberField as N } from "./NumberField.js";
7
- import { StringField as R } from "./StringField.js";
8
- import { JsonSchemaForm as U } from "../JsonSchemaForm.js";
9
- import { ChevronUpIcon as q, ChevronDownIcon as z } from "../../shared/icons/ChevronIcon.js";
10
- import { TrashIcon as G } from "../../shared/icons/TrashIcon.js";
5
+ import { EnumField as G } from "./EnumField.js";
6
+ import { NumberField as J } from "./NumberField.js";
7
+ import { StringField as N } from "./StringField.js";
8
+ import { JsonSchemaForm as R } from "../JsonSchemaForm.js";
9
+ import { ChevronUpIcon as U, ChevronDownIcon as q } from "../../shared/icons/ChevronIcon.js";
10
+ import { TrashIcon as z } from "../../shared/icons/TrashIcon.js";
11
11
  import { PlusIcon as H } from "../../shared/icons/PlusIcon.js";
12
- var K = /* @__PURE__ */ x('<div class="text-xs text-surface-400 dark:text-surface-500">'), L = /* @__PURE__ */ x('<div class=space-y-3><button type=button class="w-full py-2.5 px-4 rounded-xl border-2 border-dashed border-surface-200 dark:border-surface-700 text-sm font-medium text-surface-500 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-200 hover:border-surface-300 dark:hover:border-surface-600 hover:bg-surface-50 dark:hover:bg-surface-800/50 transition-colors flex items-center justify-center gap-2">Add item'), O = /* @__PURE__ */ x('<span class="text-xs text-surface-400 dark:text-surface-500">(<!>)'), Q = /* @__PURE__ */ x('<div class="glass-card rounded-xl p-3 sm:p-4"><div class="flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-3"><div class="flex items-center gap-2"><span class="text-xs font-medium text-surface-500 dark:text-surface-400">Item </span></div><div class="flex items-center gap-1 self-end sm:self-auto"><button type=button class=glass-icon-btn title="Move up"></button><button type=button class=glass-icon-btn title="Move down"></button><button type=button class="p-1.5 rounded-lg text-rose-400 hover:text-rose-600 dark:hover:text-rose-300 hover:bg-rose-50 dark:hover:bg-rose-900/20 transition-colors"title="Remove item">');
13
- const W = (e) => {
14
- const s = () => b(e.schema) || "string";
15
- return t(E, {
12
+ import { Checkbox as K } from "../../Input/Checkbox.js";
13
+ var L = /* @__PURE__ */ m('<button type=button class="w-full py-2.5 px-4 rounded-xl border-2 border-dashed border-surface-200 dark:border-surface-700 text-sm font-medium text-surface-500 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-200 hover:border-surface-300 dark:hover:border-surface-600 hover:bg-surface-50 dark:hover:bg-surface-800/50 transition-colors flex items-center justify-center gap-2">Add item'), Q = /* @__PURE__ */ m('<div class="text-xs text-surface-400 dark:text-surface-500">'), W = /* @__PURE__ */ m("<div class=space-y-3>"), X = /* @__PURE__ */ m("<div class=space-y-1.5>"), Y = /* @__PURE__ */ m('<span class="text-xs text-surface-400 dark:text-surface-500">(<!>)'), Z = /* @__PURE__ */ m('<div class="glass-card rounded-xl p-3 sm:p-4"><div class="flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-3"><div class="flex items-center gap-2"><span class="text-xs font-medium text-surface-500 dark:text-surface-400">Item </span></div><div class="flex items-center gap-1 self-end sm:self-auto"><button type=button class=glass-icon-btn title="Move up"></button><button type=button class=glass-icon-btn title="Move down"></button><button type=button class="p-1.5 rounded-lg text-rose-400 hover:text-rose-600 dark:hover:text-rose-300 hover:bg-rose-50 dark:hover:bg-rose-900/20 transition-colors"title="Remove item">');
14
+ function p(e) {
15
+ return !e.oneOf || e.oneOf.length === 0 ? !1 : e.oneOf.every((l) => l.const !== void 0);
16
+ }
17
+ const ee = (e) => {
18
+ const l = () => b(e.schema) || "string";
19
+ return n(j, {
16
20
  get fallback() {
17
- return t(R, {
21
+ return n(N, {
18
22
  get schema() {
19
23
  return e.schema;
20
24
  },
@@ -27,12 +31,12 @@ const W = (e) => {
27
31
  });
28
32
  },
29
33
  get children() {
30
- return [t(w, {
34
+ return [n($, {
31
35
  get when() {
32
- return f(() => !!e.schema.enum)() && e.schema.enum.length > 0;
36
+ return v(() => !!e.schema.enum)() && e.schema.enum.length > 0;
33
37
  },
34
38
  get children() {
35
- return t(J, {
39
+ return n(G, {
36
40
  get schema() {
37
41
  return e.schema;
38
42
  },
@@ -44,12 +48,12 @@ const W = (e) => {
44
48
  }
45
49
  });
46
50
  }
47
- }), t(w, {
51
+ }), n($, {
48
52
  get when() {
49
- return s() === "boolean";
53
+ return l() === "boolean";
50
54
  },
51
55
  get children() {
52
- return t(B, {
56
+ return n(B, {
53
57
  get schema() {
54
58
  return e.schema;
55
59
  },
@@ -61,12 +65,12 @@ const W = (e) => {
61
65
  }
62
66
  });
63
67
  }
64
- }), t(w, {
68
+ }), n($, {
65
69
  get when() {
66
- return s() === "number" || s() === "integer";
70
+ return l() === "number" || l() === "integer";
67
71
  },
68
72
  get children() {
69
- return t(N, {
73
+ return n(J, {
70
74
  get schema() {
71
75
  return e.schema;
72
76
  },
@@ -81,118 +85,163 @@ const W = (e) => {
81
85
  })];
82
86
  }
83
87
  });
84
- }, ce = (e) => {
85
- const s = () => e.value || [], u = () => e.schema.items || {
88
+ }, ge = (e) => {
89
+ const l = () => e.value || [], u = () => e.schema.items || {
86
90
  type: "string"
87
91
  }, S = () => {
88
- const r = V(u());
89
- e.onChange([...s(), r]);
90
- }, F = (r) => {
91
- const n = s().filter((m, c) => c !== r);
92
- e.onChange(n.length > 0 ? n : void 0);
93
- }, _ = (r, n) => {
94
- const m = [...s()];
95
- m[r] = n, e.onChange(m);
96
- }, k = (r, n) => {
97
- if (n < 0 || n >= s().length)
92
+ const a = D(u());
93
+ e.onChange([...l(), a]);
94
+ }, A = (a) => {
95
+ const t = l().filter((r, s) => s !== a);
96
+ e.onChange(t.length > 0 ? t : void 0);
97
+ }, w = (a, t) => {
98
+ const r = [...l()];
99
+ r[a] = t, e.onChange(r);
100
+ }, k = (a, t) => {
101
+ if (t < 0 || t >= l().length)
98
102
  return;
99
- const m = [...s()], [c] = m.splice(r, 1);
100
- m.splice(n, 0, c), e.onChange(m);
101
- }, A = () => {
102
- const r = b(u());
103
- return r === "string" || r === "number" || r === "integer" || r === "boolean";
103
+ const r = [...l()], [s] = r.splice(a, 1);
104
+ r.splice(t, 0, s), e.onChange(r);
105
+ }, F = () => {
106
+ const a = b(u());
107
+ return a === "string" || a === "number" || a === "integer" || a === "boolean";
108
+ }, O = () => p(u()), M = () => {
109
+ const a = u();
110
+ return a.oneOf ? a.oneOf.map((t) => ({
111
+ value: t.const,
112
+ label: t.title || String(t.const)
113
+ })) : [];
114
+ }, E = (a) => {
115
+ const t = l();
116
+ if (t.some((s) => s === a)) {
117
+ const s = t.filter((x) => x !== a);
118
+ e.onChange(s.length > 0 ? s : void 0);
119
+ } else
120
+ e.onChange([...t, a]);
104
121
  };
105
122
  return (() => {
106
- var r = L(), n = r.firstChild, m = n.firstChild;
107
- return l(r, t(D, {
108
- get each() {
109
- return s();
123
+ var a = W();
124
+ return c(a, n(i, {
125
+ get when() {
126
+ return !O();
110
127
  },
111
- children: (c, i) => (() => {
112
- var C = Q(), M = C.firstChild, $ = M.firstChild, y = $.firstChild;
113
- y.firstChild;
114
- var P = $.nextSibling, g = P.firstChild, d = g.nextSibling, I = d.nextSibling;
115
- return l(y, () => i() + 1, null), l($, t(o, {
116
- get when() {
117
- return b(u());
118
- },
119
- get children() {
120
- var a = O(), v = a.firstChild, h = v.nextSibling;
121
- return h.nextSibling, l(a, () => b(u()), h), a;
122
- }
123
- }), null), g.$$click = () => k(i(), i() - 1), l(g, t(q, {
124
- class: "w-4 h-4"
125
- })), d.$$click = () => k(i(), i() + 1), l(d, t(z, {
126
- class: "w-4 h-4"
127
- })), I.$$click = () => F(i()), l(I, t(G, {
128
- class: "w-4 h-4"
129
- })), l(C, t(o, {
130
- get when() {
131
- return A();
128
+ get fallback() {
129
+ return (
130
+ /* Checkbox group for oneOf const pattern */
131
+ (() => {
132
+ var t = X();
133
+ return c(t, n(I, {
134
+ get each() {
135
+ return M();
136
+ },
137
+ children: (r) => n(K, {
138
+ get checked() {
139
+ return l().some((s) => s === r.value);
140
+ },
141
+ onChange: () => E(r.value),
142
+ get label() {
143
+ return r.label;
144
+ }
145
+ })
146
+ })), t;
147
+ })()
148
+ );
149
+ },
150
+ get children() {
151
+ return [n(I, {
152
+ get each() {
153
+ return l();
132
154
  },
133
- get fallback() {
134
- return t(U, {
135
- get schema() {
136
- return u();
155
+ children: (t, r) => (() => {
156
+ var s = Z(), x = s.firstChild, C = x.firstChild, _ = C.firstChild;
157
+ _.firstChild;
158
+ var P = C.nextSibling, g = P.firstChild, d = g.nextSibling, y = d.nextSibling;
159
+ return c(_, () => r() + 1, null), c(C, n(i, {
160
+ get when() {
161
+ return b(u());
137
162
  },
138
- value: c,
139
- onChange: (a) => _(i(), a),
140
- get path() {
141
- return [...e.path, String(i())];
163
+ get children() {
164
+ var o = Y(), f = o.firstChild, h = f.nextSibling;
165
+ return h.nextSibling, c(o, () => b(u()), h), o;
142
166
  }
143
- });
144
- },
145
- get children() {
146
- return t(W, {
147
- get schema() {
148
- return u();
167
+ }), null), g.$$click = () => k(r(), r() - 1), c(g, n(U, {
168
+ class: "w-4 h-4"
169
+ })), d.$$click = () => k(r(), r() + 1), c(d, n(q, {
170
+ class: "w-4 h-4"
171
+ })), y.$$click = () => A(r()), c(y, n(z, {
172
+ class: "w-4 h-4"
173
+ })), c(s, n(i, {
174
+ get when() {
175
+ return F();
149
176
  },
150
- value: c,
151
- onChange: (a) => _(i(), a)
152
- });
153
- }
154
- }), null), T((a) => {
155
- var v = i() === 0, h = i() === s().length - 1;
156
- return v !== a.e && (g.disabled = a.e = v), h !== a.t && (d.disabled = a.t = h), a;
157
- }, {
158
- e: void 0,
159
- t: void 0
160
- }), C;
161
- })()
162
- }), n), n.$$click = S, l(n, t(H, {
163
- class: "w-4 h-4"
164
- }), m), l(r, t(o, {
177
+ get fallback() {
178
+ return n(R, {
179
+ get schema() {
180
+ return u();
181
+ },
182
+ value: t,
183
+ onChange: (o) => w(r(), o),
184
+ get path() {
185
+ return [...e.path, String(r())];
186
+ }
187
+ });
188
+ },
189
+ get children() {
190
+ return n(ee, {
191
+ get schema() {
192
+ return u();
193
+ },
194
+ value: t,
195
+ onChange: (o) => w(r(), o)
196
+ });
197
+ }
198
+ }), null), T((o) => {
199
+ var f = r() === 0, h = r() === l().length - 1;
200
+ return f !== o.e && (g.disabled = o.e = f), h !== o.t && (d.disabled = o.t = h), o;
201
+ }, {
202
+ e: void 0,
203
+ t: void 0
204
+ }), s;
205
+ })()
206
+ }), (() => {
207
+ var t = L(), r = t.firstChild;
208
+ return t.$$click = S, c(t, n(H, {
209
+ class: "w-4 h-4"
210
+ }), r), t;
211
+ })()];
212
+ }
213
+ }), null), c(a, n(i, {
165
214
  get when() {
166
215
  return e.schema.minItems !== void 0 || e.schema.maxItems !== void 0;
167
216
  },
168
217
  get children() {
169
- var c = K();
170
- return l(c, t(o, {
218
+ var t = Q();
219
+ return c(t, n(i, {
171
220
  get when() {
172
221
  return e.schema.minItems !== void 0;
173
222
  },
174
223
  get children() {
175
- return ["Min items: ", f(() => e.schema.minItems)];
224
+ return ["Min items: ", v(() => e.schema.minItems)];
176
225
  }
177
- }), null), l(c, t(o, {
226
+ }), null), c(t, n(i, {
178
227
  get when() {
179
- return f(() => e.schema.minItems !== void 0)() && e.schema.maxItems !== void 0;
228
+ return v(() => e.schema.minItems !== void 0)() && e.schema.maxItems !== void 0;
180
229
  },
181
230
  children: " | "
182
- }), null), l(c, t(o, {
231
+ }), null), c(t, n(i, {
183
232
  get when() {
184
233
  return e.schema.maxItems !== void 0;
185
234
  },
186
235
  get children() {
187
- return ["Max items: ", f(() => e.schema.maxItems)];
236
+ return ["Max items: ", v(() => e.schema.maxItems)];
188
237
  }
189
- }), null), c;
238
+ }), null), t;
190
239
  }
191
- }), null), r;
240
+ }), null), a;
192
241
  })();
193
242
  };
194
- j(["click"]);
243
+ V(["click"]);
195
244
  export {
196
- ce as ArrayField
245
+ ge as ArrayField
197
246
  };
198
247
  //# sourceMappingURL=ArrayField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayField.js","sources":["../../../../src/components/JsonSchemaForm/fields/ArrayField.tsx"],"sourcesContent":["import type { Component } from 'solid-js';\nimport { For, Match, Show, Switch } from 'solid-js';\nimport {\n ChevronDownIcon,\n ChevronUpIcon,\n PlusIcon,\n TrashIcon,\n} from '../../shared/icons';\nimport type { ArrayFieldProps, BaseFieldProps } from '../types';\nimport { getDefaultValue, resolveSchemaType } from '../utils';\nimport { BooleanField } from './BooleanField';\nimport { EnumField } from './EnumField';\nimport { NumberField } from './NumberField';\nimport { StringField } from './StringField';\n\n// Forward declaration - will import the main component\nimport { JsonSchemaForm } from '../JsonSchemaForm';\n\n/**\n * Primitive array item renderer (inline editing for simple types)\n */\nconst PrimitiveArrayItem: Component<BaseFieldProps> = (props) => {\n const schemaType = () => resolveSchemaType(props.schema) || 'string';\n\n return (\n <Switch\n fallback={\n <StringField\n schema={props.schema}\n value={props.value}\n onChange={props.onChange}\n />\n }\n >\n <Match when={props.schema.enum && props.schema.enum.length > 0}>\n <EnumField\n schema={props.schema}\n value={props.value}\n onChange={props.onChange}\n />\n </Match>\n <Match when={schemaType() === 'boolean'}>\n <BooleanField\n schema={props.schema}\n value={props.value}\n onChange={props.onChange}\n />\n </Match>\n <Match when={schemaType() === 'number' || schemaType() === 'integer'}>\n <NumberField\n schema={props.schema}\n value={props.value}\n onChange={props.onChange}\n />\n </Match>\n </Switch>\n );\n};\n\n/**\n * Array field renderer with add/remove/reorder functionality\n */\nexport const ArrayField: Component<ArrayFieldProps> = (props) => {\n const currentValue = () => props.value || [];\n const itemSchema = () => props.schema.items || { type: 'string' };\n\n const addItem = () => {\n const newItem = getDefaultValue(itemSchema());\n props.onChange([...currentValue(), newItem]);\n };\n\n const removeItem = (index: number) => {\n const newArray = currentValue().filter((_, i) => i !== index);\n props.onChange(newArray.length > 0 ? newArray : undefined);\n };\n\n const updateItem = (index: number, itemValue: unknown) => {\n const newArray = [...currentValue()];\n newArray[index] = itemValue;\n props.onChange(newArray);\n };\n\n const moveItem = (fromIndex: number, toIndex: number) => {\n if (toIndex < 0 || toIndex >= currentValue().length) {\n return;\n }\n const newArray = [...currentValue()];\n const [item] = newArray.splice(fromIndex, 1);\n newArray.splice(toIndex, 0, item);\n props.onChange(newArray);\n };\n\n const isPrimitive = () => {\n const type = resolveSchemaType(itemSchema());\n return (\n type === 'string' ||\n type === 'number' ||\n type === 'integer' ||\n type === 'boolean'\n );\n };\n\n return (\n <div class=\"space-y-3\">\n {/* Array items */}\n <For each={currentValue()}>\n {(item, index) => (\n <div class=\"glass-card rounded-xl p-3 sm:p-4\">\n {/* Item header with controls */}\n <div class=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-3\">\n <div class=\"flex items-center gap-2\">\n <span class=\"text-xs font-medium text-surface-500 dark:text-surface-400\">\n Item {index() + 1}\n </span>\n <Show when={resolveSchemaType(itemSchema())}>\n <span class=\"text-xs text-surface-400 dark:text-surface-500\">\n ({resolveSchemaType(itemSchema())})\n </span>\n </Show>\n </div>\n <div class=\"flex items-center gap-1 self-end sm:self-auto\">\n {/* Move up button */}\n <button\n type=\"button\"\n onClick={() => moveItem(index(), index() - 1)}\n disabled={index() === 0}\n class=\"glass-icon-btn\"\n title=\"Move up\"\n >\n <ChevronUpIcon class=\"w-4 h-4\" />\n </button>\n {/* Move down button */}\n <button\n type=\"button\"\n onClick={() => moveItem(index(), index() + 1)}\n disabled={index() === currentValue().length - 1}\n class=\"glass-icon-btn\"\n title=\"Move down\"\n >\n <ChevronDownIcon class=\"w-4 h-4\" />\n </button>\n {/* Remove button */}\n <button\n type=\"button\"\n onClick={() => removeItem(index())}\n class=\"p-1.5 rounded-lg text-rose-400 hover:text-rose-600 dark:hover:text-rose-300 hover:bg-rose-50 dark:hover:bg-rose-900/20 transition-colors\"\n title=\"Remove item\"\n >\n <TrashIcon class=\"w-4 h-4\" />\n </button>\n </div>\n </div>\n\n {/* Item content */}\n <Show\n when={isPrimitive()}\n fallback={\n <JsonSchemaForm\n schema={itemSchema()}\n value={item}\n onChange={(v) => updateItem(index(), v)}\n path={[...props.path, String(index())]}\n />\n }\n >\n <PrimitiveArrayItem\n schema={itemSchema()}\n value={item}\n onChange={(v) => updateItem(index(), v)}\n />\n </Show>\n </div>\n )}\n </For>\n\n {/* Add item button */}\n <button\n type=\"button\"\n onClick={addItem}\n class=\"w-full py-2.5 px-4 rounded-xl border-2 border-dashed border-surface-200 dark:border-surface-700 text-sm font-medium text-surface-500 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-200 hover:border-surface-300 dark:hover:border-surface-600 hover:bg-surface-50 dark:hover:bg-surface-800/50 transition-colors flex items-center justify-center gap-2\"\n >\n <PlusIcon class=\"w-4 h-4\" />\n Add item\n </button>\n\n {/* Constraints hint */}\n <Show\n when={\n props.schema.minItems !== undefined ||\n props.schema.maxItems !== undefined\n }\n >\n <div class=\"text-xs text-surface-400 dark:text-surface-500\">\n <Show when={props.schema.minItems !== undefined}>\n Min items: {props.schema.minItems}\n </Show>\n <Show\n when={\n props.schema.minItems !== undefined &&\n props.schema.maxItems !== undefined\n }\n >\n {' | '}\n </Show>\n <Show when={props.schema.maxItems !== undefined}>\n Max items: {props.schema.maxItems}\n </Show>\n </div>\n </Show>\n </div>\n );\n};\n"],"names":["PrimitiveArrayItem","props","schemaType","resolveSchemaType","schema","_$createComponent","Switch","fallback","StringField","value","onChange","children","Match","when","_$memo","enum","length","EnumField","BooleanField","NumberField","ArrayField","currentValue","itemSchema","items","type","addItem","newItem","getDefaultValue","removeItem","index","newArray","filter","_","i","undefined","updateItem","itemValue","moveItem","fromIndex","toIndex","item","splice","isPrimitive","_el$","_tmpl$2","_el$2","firstChild","_el$3","_$insert","For","each","_el$5","_tmpl$4","_el$6","_el$7","_el$8","_el$12","nextSibling","_el$13","_el$14","_el$15","Show","_el$0","_tmpl$3","_el$1","_el$11","$$click","ChevronUpIcon","ChevronDownIcon","TrashIcon","JsonSchemaForm","v","path","String","_$effect","_p$","_v$","_v$2","e","disabled","t","PlusIcon","minItems","maxItems","_el$4","_tmpl$","_$delegateEvents"],"mappings":"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"}
1
+ {"version":3,"file":"ArrayField.js","sources":["../../../../src/components/JsonSchemaForm/fields/ArrayField.tsx"],"sourcesContent":["import type { Component } from 'solid-js';\nimport { For, Match, Show, Switch } from 'solid-js';\nimport { Checkbox } from '../../Input';\nimport {\n ChevronDownIcon,\n ChevronUpIcon,\n PlusIcon,\n TrashIcon,\n} from '../../shared/icons';\nimport type { ArrayFieldProps, BaseFieldProps, Schema } from '../types';\nimport { getDefaultValue, resolveSchemaType } from '../utils';\nimport { BooleanField } from './BooleanField';\nimport { EnumField } from './EnumField';\nimport { NumberField } from './NumberField';\nimport { StringField } from './StringField';\n\n// Forward declaration - will import the main component\nimport { JsonSchemaForm } from '../JsonSchemaForm';\n\n/**\n * Check if items schema uses oneOf with const values (multi-select enum pattern).\n * e.g. items: { oneOf: [{ const: 1, title: \"Option A\" }, { const: 2, title: \"Option B\" }] }\n */\nfunction isConstEnumItems(items: Schema): boolean {\n if (!items.oneOf || items.oneOf.length === 0) {\n return false;\n }\n return items.oneOf.every((opt) => opt.const !== undefined);\n}\n\n/**\n * Primitive array item renderer (inline editing for simple types)\n */\nconst PrimitiveArrayItem: Component<BaseFieldProps> = (props) => {\n const schemaType = () => resolveSchemaType(props.schema) || 'string';\n\n return (\n <Switch\n fallback={\n <StringField\n schema={props.schema}\n value={props.value}\n onChange={props.onChange}\n />\n }\n >\n <Match when={props.schema.enum && props.schema.enum.length > 0}>\n <EnumField\n schema={props.schema}\n value={props.value}\n onChange={props.onChange}\n />\n </Match>\n <Match when={schemaType() === 'boolean'}>\n <BooleanField\n schema={props.schema}\n value={props.value}\n onChange={props.onChange}\n />\n </Match>\n <Match when={schemaType() === 'number' || schemaType() === 'integer'}>\n <NumberField\n schema={props.schema}\n value={props.value}\n onChange={props.onChange}\n />\n </Match>\n </Switch>\n );\n};\n\n/**\n * Array field renderer with add/remove/reorder functionality\n */\nexport const ArrayField: Component<ArrayFieldProps> = (props) => {\n const currentValue = () => props.value || [];\n const itemSchema = () => props.schema.items || { type: 'string' };\n\n const addItem = () => {\n const newItem = getDefaultValue(itemSchema());\n props.onChange([...currentValue(), newItem]);\n };\n\n const removeItem = (index: number) => {\n const newArray = currentValue().filter((_, i) => i !== index);\n props.onChange(newArray.length > 0 ? newArray : undefined);\n };\n\n const updateItem = (index: number, itemValue: unknown) => {\n const newArray = [...currentValue()];\n newArray[index] = itemValue;\n props.onChange(newArray);\n };\n\n const moveItem = (fromIndex: number, toIndex: number) => {\n if (toIndex < 0 || toIndex >= currentValue().length) {\n return;\n }\n const newArray = [...currentValue()];\n const [item] = newArray.splice(fromIndex, 1);\n newArray.splice(toIndex, 0, item);\n props.onChange(newArray);\n };\n\n const isPrimitive = () => {\n const type = resolveSchemaType(itemSchema());\n return (\n type === 'string' ||\n type === 'number' ||\n type === 'integer' ||\n type === 'boolean'\n );\n };\n\n /** Whether items use oneOf with const values (renders as checkbox group) */\n const isCheckboxGroup = () => isConstEnumItems(itemSchema());\n\n /** Get the const/title options for checkbox group rendering */\n const constOptions = () => {\n const items = itemSchema();\n if (!items.oneOf) {\n return [];\n }\n return items.oneOf.map((opt) => ({\n value: opt.const,\n label: opt.title || String(opt.const),\n }));\n };\n\n /** Toggle a const value in the array */\n const toggleValue = (value: unknown) => {\n const current = currentValue();\n const exists = current.some((v) => v === value);\n if (exists) {\n const newArray = current.filter((v) => v !== value);\n props.onChange(newArray.length > 0 ? newArray : undefined);\n } else {\n props.onChange([...current, value]);\n }\n };\n\n return (\n <div class=\"space-y-3\">\n <Show\n when={!isCheckboxGroup()}\n fallback={\n /* Checkbox group for oneOf const pattern */\n <div class=\"space-y-1.5\">\n <For each={constOptions()}>\n {(option) => (\n <Checkbox\n checked={currentValue().some((v) => v === option.value)}\n onChange={() => toggleValue(option.value)}\n label={option.label}\n />\n )}\n </For>\n </div>\n }\n >\n {/* Array items */}\n <For each={currentValue()}>\n {(item, index) => (\n <div class=\"glass-card rounded-xl p-3 sm:p-4\">\n {/* Item header with controls */}\n <div class=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-3\">\n <div class=\"flex items-center gap-2\">\n <span class=\"text-xs font-medium text-surface-500 dark:text-surface-400\">\n Item {index() + 1}\n </span>\n <Show when={resolveSchemaType(itemSchema())}>\n <span class=\"text-xs text-surface-400 dark:text-surface-500\">\n ({resolveSchemaType(itemSchema())})\n </span>\n </Show>\n </div>\n <div class=\"flex items-center gap-1 self-end sm:self-auto\">\n {/* Move up button */}\n <button\n type=\"button\"\n onClick={() => moveItem(index(), index() - 1)}\n disabled={index() === 0}\n class=\"glass-icon-btn\"\n title=\"Move up\"\n >\n <ChevronUpIcon class=\"w-4 h-4\" />\n </button>\n {/* Move down button */}\n <button\n type=\"button\"\n onClick={() => moveItem(index(), index() + 1)}\n disabled={index() === currentValue().length - 1}\n class=\"glass-icon-btn\"\n title=\"Move down\"\n >\n <ChevronDownIcon class=\"w-4 h-4\" />\n </button>\n {/* Remove button */}\n <button\n type=\"button\"\n onClick={() => removeItem(index())}\n class=\"p-1.5 rounded-lg text-rose-400 hover:text-rose-600 dark:hover:text-rose-300 hover:bg-rose-50 dark:hover:bg-rose-900/20 transition-colors\"\n title=\"Remove item\"\n >\n <TrashIcon class=\"w-4 h-4\" />\n </button>\n </div>\n </div>\n\n {/* Item content */}\n <Show\n when={isPrimitive()}\n fallback={\n <JsonSchemaForm\n schema={itemSchema()}\n value={item}\n onChange={(v) => updateItem(index(), v)}\n path={[...props.path, String(index())]}\n />\n }\n >\n <PrimitiveArrayItem\n schema={itemSchema()}\n value={item}\n onChange={(v) => updateItem(index(), v)}\n />\n </Show>\n </div>\n )}\n </For>\n\n {/* Add item button */}\n <button\n type=\"button\"\n onClick={addItem}\n class=\"w-full py-2.5 px-4 rounded-xl border-2 border-dashed border-surface-200 dark:border-surface-700 text-sm font-medium text-surface-500 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-200 hover:border-surface-300 dark:hover:border-surface-600 hover:bg-surface-50 dark:hover:bg-surface-800/50 transition-colors flex items-center justify-center gap-2\"\n >\n <PlusIcon class=\"w-4 h-4\" />\n Add item\n </button>\n </Show>\n\n {/* Constraints hint */}\n <Show\n when={\n props.schema.minItems !== undefined ||\n props.schema.maxItems !== undefined\n }\n >\n <div class=\"text-xs text-surface-400 dark:text-surface-500\">\n <Show when={props.schema.minItems !== undefined}>\n Min items: {props.schema.minItems}\n </Show>\n <Show\n when={\n props.schema.minItems !== undefined &&\n props.schema.maxItems !== undefined\n }\n >\n {' | '}\n </Show>\n <Show when={props.schema.maxItems !== undefined}>\n Max items: {props.schema.maxItems}\n </Show>\n </div>\n </Show>\n </div>\n );\n};\n"],"names":["isConstEnumItems","items","oneOf","length","every","opt","const","undefined","PrimitiveArrayItem","props","schemaType","resolveSchemaType","schema","_$createComponent","Switch","fallback","StringField","value","onChange","children","Match","when","_$memo","enum","EnumField","BooleanField","NumberField","ArrayField","currentValue","itemSchema","type","addItem","newItem","getDefaultValue","removeItem","index","newArray","filter","_","i","updateItem","itemValue","moveItem","fromIndex","toIndex","item","splice","isPrimitive","isCheckboxGroup","constOptions","map","label","title","String","toggleValue","current","some","v","_el$","_tmpl$3","_$insert","Show","_el$5","_tmpl$4","For","each","option","Checkbox","checked","_el$6","_tmpl$6","_el$7","firstChild","_el$8","_el$9","_el$13","nextSibling","_el$14","_el$15","_el$16","_el$1","_tmpl$5","_el$10","_el$12","$$click","ChevronUpIcon","ChevronDownIcon","TrashIcon","JsonSchemaForm","path","_$effect","_p$","_v$","_v$2","e","disabled","t","_el$2","_tmpl$","_el$3","PlusIcon","minItems","maxItems","_el$4","_tmpl$2","_$delegateEvents"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaField.d.ts","sourceRoot":"","sources":["../../../../src/components/JsonSchemaForm/fields/SchemaField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjD;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,gBAAgB,CAyDnD,CAAC"}
1
+ {"version":3,"file":"SchemaField.d.ts","sourceRoot":"","sources":["../../../../src/components/JsonSchemaForm/fields/SchemaField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjD;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,gBAAgB,CAqEnD,CAAC"}
@@ -1,43 +1,62 @@
1
- import { template as a, insert as t, createComponent as n } from "solid-js/web";
2
- import { Show as s } from "solid-js";
3
- import { JsonSchemaForm as g } from "../JsonSchemaForm.js";
4
- import { resolveSchemaType as o, isNullable as _ } from "../utils.js";
5
- var $ = /* @__PURE__ */ a('<span class="text-rose-500 text-xs font-semibold">required'), v = /* @__PURE__ */ a('<span class="text-xs text-surface-400 dark:text-surface-500">(<!>)'), C = /* @__PURE__ */ a('<p class="text-xs text-surface-400 dark:text-surface-500">'), b = /* @__PURE__ */ a('<div class=space-y-2><div class="flex items-center gap-2"><span class="font-mono text-sm font-medium text-surface-900 dark:text-surface-100"></span><span class="text-xs text-surface-400 dark:text-surface-500">'), S = /* @__PURE__ */ a("<div class=sm:max-w-xs>");
6
- const q = (e) => {
7
- const c = () => o(e.schema) || "string", x = () => _(e.schema), f = () => c() === "object" || c() === "array";
1
+ import { template as a, insert as r, createComponent as n } from "solid-js/web";
2
+ import { Show as l } from "solid-js";
3
+ import { JsonSchemaForm as h } from "../JsonSchemaForm.js";
4
+ import { resolveSchemaType as d, isNullable as o } from "../utils.js";
5
+ var _ = /* @__PURE__ */ a('<span class="text-sm font-medium text-surface-900 dark:text-surface-100">'), $ = /* @__PURE__ */ a('<span class="font-mono text-xs text-surface-400 dark:text-surface-500">'), v = /* @__PURE__ */ a('<span class="text-rose-500 text-xs font-semibold">required'), C = /* @__PURE__ */ a('<span class="text-xs text-surface-400 dark:text-surface-500">(<!>)'), b = /* @__PURE__ */ a('<p class="text-xs text-surface-400 dark:text-surface-500">'), k = /* @__PURE__ */ a('<div class=space-y-2><div class="flex items-center gap-2 flex-wrap"><span class="text-xs text-surface-400 dark:text-surface-500">'), w = /* @__PURE__ */ a('<span class="font-mono text-sm font-medium text-surface-900 dark:text-surface-100">'), S = /* @__PURE__ */ a("<div class=sm:max-w-xs>");
6
+ const j = (e) => {
7
+ const m = () => d(e.schema) || "string", x = () => o(e.schema), f = () => m() === "object" || m() === "array";
8
8
  return (() => {
9
- var l = b(), u = l.firstChild, i = u.firstChild, m = i.nextSibling;
10
- return t(i, () => e.name), t(u, n(s, {
9
+ var s = k(), c = s.firstChild, u = c.firstChild;
10
+ return r(c, n(l, {
11
+ get when() {
12
+ return e.schema.title;
13
+ },
14
+ get fallback() {
15
+ return (() => {
16
+ var t = w();
17
+ return r(t, () => e.name), t;
18
+ })();
19
+ },
20
+ get children() {
21
+ return [(() => {
22
+ var t = _();
23
+ return r(t, () => e.schema.title), t;
24
+ })(), (() => {
25
+ var t = $();
26
+ return r(t, () => e.name), t;
27
+ })()];
28
+ }
29
+ }), u), r(c, n(l, {
11
30
  get when() {
12
31
  return e.required;
13
32
  },
14
33
  get children() {
15
- return $();
34
+ return v();
16
35
  }
17
- }), m), t(m, c, null), t(m, () => x() ? " | null" : "", null), t(u, n(s, {
36
+ }), u), r(u, m, null), r(u, () => x() ? " | null" : "", null), r(c, n(l, {
18
37
  get when() {
19
38
  return e.schema.format;
20
39
  },
21
40
  get children() {
22
- var r = v(), d = r.firstChild, h = d.nextSibling;
23
- return h.nextSibling, t(r, () => e.schema.format, h), r;
41
+ var t = C(), g = t.firstChild, i = g.nextSibling;
42
+ return i.nextSibling, r(t, () => e.schema.format, i), t;
24
43
  }
25
- }), null), t(l, n(s, {
44
+ }), null), r(s, n(l, {
26
45
  get when() {
27
46
  return e.schema.description;
28
47
  },
29
48
  get children() {
30
- var r = C();
31
- return t(r, () => e.schema.description), r;
49
+ var t = b();
50
+ return r(t, () => e.schema.description), t;
32
51
  }
33
- }), null), t(l, n(s, {
52
+ }), null), r(s, n(l, {
34
53
  get when() {
35
54
  return f();
36
55
  },
37
56
  get fallback() {
38
57
  return (() => {
39
- var r = S();
40
- return t(r, n(g, {
58
+ var t = S();
59
+ return r(t, n(h, {
41
60
  get schema() {
42
61
  return e.schema;
43
62
  },
@@ -50,11 +69,11 @@ const q = (e) => {
50
69
  get path() {
51
70
  return e.path;
52
71
  }
53
- })), r;
72
+ })), t;
54
73
  })();
55
74
  },
56
75
  get children() {
57
- return n(g, {
76
+ return n(h, {
58
77
  get schema() {
59
78
  return e.schema;
60
79
  },
@@ -69,10 +88,10 @@ const q = (e) => {
69
88
  }
70
89
  });
71
90
  }
72
- }), null), l;
91
+ }), null), s;
73
92
  })();
74
93
  };
75
94
  export {
76
- q as SchemaField
95
+ j as SchemaField
77
96
  };
78
97
  //# sourceMappingURL=SchemaField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaField.js","sources":["../../../../src/components/JsonSchemaForm/fields/SchemaField.tsx"],"sourcesContent":["import type { Component } from 'solid-js';\nimport { Show } from 'solid-js';\nimport { JsonSchemaForm } from '../JsonSchemaForm';\nimport type { SchemaFieldProps } from '../types';\nimport { isNullable, resolveSchemaType } from '../utils';\n\n/**\n * SchemaField - Wraps JsonSchemaForm with field label and metadata\n * Used by ObjectField to render each property with its label\n */\nexport const SchemaField: Component<SchemaFieldProps> = (props) => {\n const schemaType = () => resolveSchemaType(props.schema) || 'string';\n const nullable = () => isNullable(props.schema);\n const isComplexType = () =>\n schemaType() === 'object' || schemaType() === 'array';\n\n return (\n <div class=\"space-y-2\">\n {/* Field label and metadata */}\n <div class=\"flex items-center gap-2\">\n <span class=\"font-mono text-sm font-medium text-surface-900 dark:text-surface-100\">\n {props.name}\n </span>\n <Show when={props.required}>\n <span class=\"text-rose-500 text-xs font-semibold\">required</span>\n </Show>\n <span class=\"text-xs text-surface-400 dark:text-surface-500\">\n {schemaType()}\n {nullable() ? ' | null' : ''}\n </span>\n <Show when={props.schema.format}>\n <span class=\"text-xs text-surface-400 dark:text-surface-500\">\n ({props.schema.format})\n </span>\n </Show>\n </div>\n\n {/* Description */}\n <Show when={props.schema.description}>\n <p class=\"text-xs text-surface-400 dark:text-surface-500\">\n {props.schema.description}\n </p>\n </Show>\n\n {/* Field input */}\n <Show\n when={isComplexType()}\n fallback={\n <div class=\"sm:max-w-xs\">\n <JsonSchemaForm\n schema={props.schema}\n value={props.value}\n onChange={props.onChange}\n path={props.path}\n />\n </div>\n }\n >\n <JsonSchemaForm\n schema={props.schema}\n value={props.value}\n onChange={props.onChange}\n path={props.path}\n />\n </Show>\n </div>\n );\n};\n"],"names":["SchemaField","props","schemaType","resolveSchemaType","schema","nullable","isNullable","isComplexType","_el$","_tmpl$4","_el$2","firstChild","_el$3","_el$5","nextSibling","_$insert","name","_$createComponent","Show","when","required","children","_tmpl$","format","_el$6","_tmpl$2","_el$7","_el$9","description","_el$0","_tmpl$3","fallback","_el$1","_tmpl$5","JsonSchemaForm","value","onChange","path"],"mappings":";;;;;AAUO,MAAMA,IAA4CC,CAAAA,MAAU;AACjE,QAAMC,IAAaA,MAAMC,EAAkBF,EAAMG,MAAM,KAAK,UACtDC,IAAWA,MAAMC,EAAWL,EAAMG,MAAM,GACxCG,IAAgBA,MACpBL,EAAAA,MAAiB,YAAYA,QAAiB;AAEhD,UAAA,MAAA;AAAA,QAAAM,IAAAC,KAAAC,IAAAF,EAAAG,YAAAC,IAAAF,EAAAC,YAAAE,IAAAD,EAAAE;AAAAC,WAAAA,EAAAH,GAAA,MAKSX,EAAMe,IAAI,GAAAD,EAAAL,GAAAO,EAEZC,GAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAElB,EAAMmB;AAAAA,MAAQ;AAAA,MAAA,IAAAC,WAAA;AAAA,eAAAC,EAAAA;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAAT,CAAA,GAAAE,EAAAF,GAIvBX,GAAU,IAAA,GAAAa,EAAAF,GAAA,MACVR,EAAAA,IAAa,YAAY,IAAE,IAAA,GAAAU,EAAAL,GAAAO,EAE7BC,GAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAElB,EAAMG,OAAOmB;AAAAA,MAAM;AAAA,MAAA,IAAAF,WAAA;AAAA,YAAAG,IAAAC,KAAAC,IAAAF,EAAAb,YAAAgB,IAAAD,EAAAZ;AAAAa,eAAAA,EAAAb,aAAAC,EAAAS,GAAA,MAEzBvB,EAAMG,OAAOmB,QAAMI,CAAA,GAAAH;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAA,IAAA,GAAAT,EAAAP,GAAAS,EAM1BC,GAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAElB,EAAMG,OAAOwB;AAAAA,MAAW;AAAA,MAAA,IAAAP,WAAA;AAAA,YAAAQ,IAAAC,EAAAA;AAAAf,eAAAA,EAAAc,GAAA,MAE/B5B,EAAMG,OAAOwB,WAAW,GAAAC;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAA,IAAA,GAAAd,EAAAP,GAAAS,EAK5BC,GAAI;AAAA,MAAA,IACHC,OAAI;AAAA,eAAEZ,EAAAA;AAAAA,MAAe;AAAA,MAAA,IACrBwB,WAAQ;AAAA,gBAAA,MAAA;AAAA,cAAAC,IAAAC,EAAAA;AAAAlB,iBAAAA,EAAAiB,GAAAf,EAEHiB,GAAc;AAAA,YAAA,IACb9B,SAAM;AAAA,qBAAEH,EAAMG;AAAAA,YAAM;AAAA,YAAA,IACpB+B,QAAK;AAAA,qBAAElC,EAAMkC;AAAAA,YAAK;AAAA,YAAA,IAClBC,WAAQ;AAAA,qBAAEnC,EAAMmC;AAAAA,YAAQ;AAAA,YAAA,IACxBC,OAAI;AAAA,qBAAEpC,EAAMoC;AAAAA,YAAI;AAAA,UAAA,CAAA,CAAA,GAAAL;AAAAA,QAAA,GAAA;AAAA,MAAA;AAAA,MAAA,IAAAX,WAAA;AAAA,eAAAJ,EAKrBiB,GAAc;AAAA,UAAA,IACb9B,SAAM;AAAA,mBAAEH,EAAMG;AAAAA,UAAM;AAAA,UAAA,IACpB+B,QAAK;AAAA,mBAAElC,EAAMkC;AAAAA,UAAK;AAAA,UAAA,IAClBC,WAAQ;AAAA,mBAAEnC,EAAMmC;AAAAA,UAAQ;AAAA,UAAA,IACxBC,OAAI;AAAA,mBAAEpC,EAAMoC;AAAAA,UAAI;AAAA,QAAA,CAAA;AAAA,MAAA;AAAA,IAAA,CAAA,GAAA,IAAA,GAAA7B;AAAAA,EAAA,GAAA;AAK1B;"}
1
+ {"version":3,"file":"SchemaField.js","sources":["../../../../src/components/JsonSchemaForm/fields/SchemaField.tsx"],"sourcesContent":["import type { Component } from 'solid-js';\nimport { Show } from 'solid-js';\nimport { JsonSchemaForm } from '../JsonSchemaForm';\nimport type { SchemaFieldProps } from '../types';\nimport { isNullable, resolveSchemaType } from '../utils';\n\n/**\n * SchemaField - Wraps JsonSchemaForm with field label and metadata\n * Used by ObjectField to render each property with its label\n */\nexport const SchemaField: Component<SchemaFieldProps> = (props) => {\n const schemaType = () => resolveSchemaType(props.schema) || 'string';\n const nullable = () => isNullable(props.schema);\n const isComplexType = () =>\n schemaType() === 'object' || schemaType() === 'array';\n\n return (\n <div class=\"space-y-2\">\n {/* Field label and metadata */}\n <div class=\"flex items-center gap-2 flex-wrap\">\n <Show\n when={props.schema.title}\n fallback={\n <span class=\"font-mono text-sm font-medium text-surface-900 dark:text-surface-100\">\n {props.name}\n </span>\n }\n >\n <span class=\"text-sm font-medium text-surface-900 dark:text-surface-100\">\n {props.schema.title}\n </span>\n <span class=\"font-mono text-xs text-surface-400 dark:text-surface-500\">\n {props.name}\n </span>\n </Show>\n <Show when={props.required}>\n <span class=\"text-rose-500 text-xs font-semibold\">required</span>\n </Show>\n <span class=\"text-xs text-surface-400 dark:text-surface-500\">\n {schemaType()}\n {nullable() ? ' | null' : ''}\n </span>\n <Show when={props.schema.format}>\n <span class=\"text-xs text-surface-400 dark:text-surface-500\">\n ({props.schema.format})\n </span>\n </Show>\n </div>\n\n {/* Description */}\n <Show when={props.schema.description}>\n <p class=\"text-xs text-surface-400 dark:text-surface-500\">\n {props.schema.description}\n </p>\n </Show>\n\n {/* Field input */}\n <Show\n when={isComplexType()}\n fallback={\n <div class=\"sm:max-w-xs\">\n <JsonSchemaForm\n schema={props.schema}\n value={props.value}\n onChange={props.onChange}\n path={props.path}\n />\n </div>\n }\n >\n <JsonSchemaForm\n schema={props.schema}\n value={props.value}\n onChange={props.onChange}\n path={props.path}\n />\n </Show>\n </div>\n );\n};\n"],"names":["SchemaField","props","schemaType","resolveSchemaType","schema","nullable","isNullable","isComplexType","_el$","_tmpl$6","_el$2","firstChild","_el$6","_$insert","_$createComponent","Show","when","title","fallback","_el$10","_tmpl$7","name","children","_el$3","_tmpl$","_el$4","_tmpl$2","required","_tmpl$3","format","_el$7","_tmpl$4","_el$8","_el$0","nextSibling","description","_el$1","_tmpl$5","_el$11","_tmpl$8","JsonSchemaForm","value","onChange","path"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "glass-ui-solid",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "description": "iOS 26-inspired glassmorphism UI components for SolidJS",
5
5
  "author": "plawn",
6
6
  "license": "Apache-2.0",