@vanstack/solid-ark 0.0.36 → 0.0.38

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,653 +0,0 @@
1
- import "./solid-ark.css";
2
- import { Index as e, className as t, createComponent as n, delegateEvents as r, effect as i, insert as a, memo as o, setAttribute as s, style as c, template as l } from "solid-js/web";
3
- import { For as u, Show as d, Suspense as f, createEffect as p, createMemo as m, createSignal as h, createUniqueId as g, lazy as _, mergeProps as ee, on as v, onCleanup as y } from "solid-js";
4
- import { Field as b } from "@ark-ui/solid/field";
5
- import { createForm as x } from "@tanstack/solid-form";
6
- import { Checkbox as S } from "@ark-ui/solid/checkbox";
7
- import { RadioGroup as C } from "@ark-ui/solid/radio-group";
8
- import { Switch as w } from "@ark-ui/solid/switch";
9
- import { deepEqual as T } from "fast-equals";
10
- //#region src/form/components/FieldSkeleton.tsx
11
- var E = /*#__PURE__*/ l("<div aria-hidden=true class=van-form-field-skeleton>");
12
- function D() {
13
- return E();
14
- }
15
- //#endregion
16
- //#region src/form/components/FormCheckbox.tsx
17
- var O = /*#__PURE__*/ l("<svg class=van-form-check-icon fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=3 viewBox=\"0 0 24 24\"><path d=\"M5 12l5 5l10 -10\">");
18
- function k(e) {
19
- return n(S.Root, {
20
- get checked() {
21
- return e.value ?? !1;
22
- },
23
- class: "van-form-checkbox-root",
24
- get id() {
25
- return e.controlId;
26
- },
27
- onCheckedChange: (t) => e.onChange(t.checked === !0),
28
- get children() {
29
- return [
30
- n(S.Control, {
31
- class: "van-form-checkbox-control",
32
- get children() {
33
- return n(S.Indicator, {
34
- class: "van-form-checkbox-indicator",
35
- get children() {
36
- return O();
37
- }
38
- });
39
- }
40
- }),
41
- o(() => o(() => !!e.label)() && n(S.Label, {
42
- class: "van-form-checkbox-label",
43
- get children() {
44
- return e.label;
45
- }
46
- })),
47
- n(S.HiddenInput, {})
48
- ];
49
- }
50
- });
51
- }
52
- //#endregion
53
- //#region src/form/components/FormCheckboxGroup.tsx
54
- var A = /*#__PURE__*/ l("<svg class=van-form-check-icon fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=3 viewBox=\"0 0 24 24\"><path d=\"M5 12l5 5l10 -10\">");
55
- function j(t) {
56
- return n(S.Group, {
57
- class: "van-form-checkbox-group",
58
- get id() {
59
- return t.controlId;
60
- },
61
- onValueChange: (e) => t.onChange(e),
62
- value: () => Array.isArray(t.value) ? t.value : [],
63
- get children() {
64
- return n(e, {
65
- get each() {
66
- return t.field.options;
67
- },
68
- children: (e) => n(S.Root, {
69
- class: "van-form-checkbox-root",
70
- get id() {
71
- return `${t.controlId}-item-${e().value}`;
72
- },
73
- get ids() {
74
- return {
75
- hiddenInput: `${t.controlId}-${e().value}`,
76
- label: `${t.controlId}-${e().value}-label`
77
- };
78
- },
79
- get value() {
80
- return e().value;
81
- },
82
- get children() {
83
- return [
84
- n(S.Control, {
85
- class: "van-form-checkbox-control",
86
- get children() {
87
- return n(S.Indicator, {
88
- class: "van-form-checkbox-indicator",
89
- get children() {
90
- return A();
91
- }
92
- });
93
- }
94
- }),
95
- n(S.Label, {
96
- class: "van-form-checkbox-label",
97
- get children() {
98
- return e().label;
99
- }
100
- }),
101
- n(S.HiddenInput, {})
102
- ];
103
- }
104
- })
105
- });
106
- }
107
- });
108
- }
109
- //#endregion
110
- //#region src/form/components/useDebouncedValue.ts
111
- function M(e) {
112
- let [t, n] = h(e.value() ?? ""), r, i = (t) => {
113
- if (n(t), (e.debounce ?? 0) > 0) {
114
- clearTimeout(r), r = setTimeout(() => {
115
- r = void 0, e.onChange(t);
116
- }, e.debounce);
117
- return;
118
- }
119
- e.onChange(t);
120
- }, a = () => {
121
- r !== void 0 && (clearTimeout(r), r = void 0, t() !== e.value() && e.onChange(t()));
122
- };
123
- return p(v(() => e.value(), (e) => n(e ?? ""))), y(() => clearTimeout(r)), {
124
- local: t,
125
- handleInput: i,
126
- handleBlur: () => {
127
- a(), e.onBlur();
128
- },
129
- handleClear: () => {
130
- clearTimeout(r), r = void 0, n(""), e.onChange("");
131
- }
132
- };
133
- }
134
- //#endregion
135
- //#region src/form/components/FormInput.tsx
136
- var te = /*#__PURE__*/ l("<svg fill=none height=14 stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 viewBox=\"0 0 24 24\"width=14 xmlns=http://www.w3.org/2000/svg><path d=\"M18 6 6 18\"></path><path d=\"m6 6 12 12\">"), ne = /*#__PURE__*/ l("<button aria-label=清空 type=button>"), re = /*#__PURE__*/ l("<div class=van-form-input-group>"), N = /*#__PURE__*/ l("<span class=\"van-form-input-addon van-form-input-addon-prefix\">"), P = /*#__PURE__*/ l("<span class=\"van-form-input-addon van-form-input-addon-suffix\">");
137
- function F() {
138
- return te();
139
- }
140
- function I(e) {
141
- let { local: r, handleInput: s, handleBlur: c, handleClear: l } = M({
142
- value: () => e.value,
143
- debounce: e.field.debounce,
144
- onChange: e.onChange,
145
- onBlur: e.onBlur
146
- }), u, f = n(b.Input, {
147
- get autocomplete() {
148
- return e.field.autocomplete;
149
- },
150
- class: "van-form-input",
151
- onBlur: c,
152
- onInput: (e) => s(e.currentTarget.value),
153
- get placeholder() {
154
- return e.field.placeholder;
155
- },
156
- ref: (e) => {
157
- u = e;
158
- },
159
- get type() {
160
- return e.field.type ?? "text";
161
- },
162
- get value() {
163
- return r();
164
- }
165
- }), p = e.field.prefix !== void 0 || e.field.suffix !== void 0, m = e.field.clearable === !0;
166
- return !p && !m ? f : (() => {
167
- var s = re();
168
- return a(s, (() => {
169
- var t = o(() => e.field.prefix !== void 0);
170
- return () => t() && (() => {
171
- var t = N();
172
- return a(t, () => e.field.prefix), t;
173
- })();
174
- })(), null), a(s, f, null), a(s, n(d, {
175
- get when() {
176
- return m && r() !== "";
177
- },
178
- get children() {
179
- var r = ne();
180
- return r.$$click = () => {
181
- l(), u?.focus();
182
- }, a(r, n(F, {})), i(() => t(r, `van-form-input-clear${e.field.suffix === void 0 ? "" : " van-form-input-clear-before-suffix"}`)), r;
183
- }
184
- }), null), a(s, (() => {
185
- var t = o(() => e.field.suffix !== void 0);
186
- return () => t() && (() => {
187
- var t = P();
188
- return a(t, () => e.field.suffix), t;
189
- })();
190
- })(), null), s;
191
- })();
192
- }
193
- r(["click"]);
194
- //#endregion
195
- //#region src/form/components/FormRadio.tsx
196
- function L(t) {
197
- let r = m(() => t.field.options.map((e) => e.value));
198
- return n(C.Root, {
199
- class: "van-form-radio-group",
200
- get id() {
201
- return t.controlId;
202
- },
203
- ids: { itemHiddenInput: (e) => e === t.field.options[0]?.value ? t.controlId : `radio-${t.controlId}-${e}` },
204
- onValueChange: (e) => t.onChange(e.value ?? ""),
205
- get value() {
206
- return t.value ?? "";
207
- },
208
- get children() {
209
- return n(e, {
210
- get each() {
211
- return r();
212
- },
213
- children: (e) => {
214
- let r = t.field.options.find((t) => t.value === e());
215
- return n(C.Item, {
216
- class: "van-form-radio-item",
217
- get value() {
218
- return e();
219
- },
220
- get children() {
221
- return [
222
- n(C.ItemControl, { class: "van-form-radio-control" }),
223
- n(C.ItemText, {
224
- class: "van-form-radio-text",
225
- get children() {
226
- return r?.label ?? e();
227
- }
228
- }),
229
- n(C.ItemHiddenInput, {})
230
- ];
231
- }
232
- });
233
- }
234
- });
235
- }
236
- });
237
- }
238
- //#endregion
239
- //#region src/form/components/FormSwitch.tsx
240
- function R(e) {
241
- return n(w.Root, {
242
- get checked() {
243
- return e.value ?? !1;
244
- },
245
- class: "van-form-switch-root",
246
- get id() {
247
- return e.controlId;
248
- },
249
- onCheckedChange: (t) => e.onChange(t.checked),
250
- get children() {
251
- return [
252
- n(w.Control, {
253
- class: "van-form-switch-control",
254
- get children() {
255
- return n(w.Thumb, { class: "van-form-switch-thumb" });
256
- }
257
- }),
258
- o(() => o(() => !!e.label)() && n(w.Label, {
259
- class: "van-form-switch-label",
260
- get children() {
261
- return e.label;
262
- }
263
- })),
264
- n(w.HiddenInput, {})
265
- ];
266
- }
267
- });
268
- }
269
- //#endregion
270
- //#region src/form/components/FormTextarea.tsx
271
- function z(e) {
272
- let { local: t, handleInput: r, handleBlur: i } = M({
273
- value: () => e.value,
274
- debounce: e.field.debounce,
275
- onChange: e.onChange,
276
- onBlur: e.onBlur
277
- });
278
- return n(b.Textarea, {
279
- class: "van-form-textarea",
280
- onBlur: i,
281
- onInput: (e) => r(e.currentTarget.value),
282
- get placeholder() {
283
- return e.field.placeholder;
284
- },
285
- get rows() {
286
- return e.field.rows ?? 4;
287
- },
288
- get value() {
289
- return t();
290
- }
291
- });
292
- }
293
- //#endregion
294
- //#region src/form/components/utils.ts
295
- function B(e, t) {
296
- return e.fieldType === t;
297
- }
298
- function V(e) {
299
- if (e != null) return typeof e == "number" ? `${e}px` : e;
300
- }
301
- //#endregion
302
- //#region src/form/components/FieldRenderer.tsx
303
- var H = _(() => import("./FormDatePicker-Cazd9kkD.js").then((e) => ({ default: e.FormDatePicker }))), U = _(() => import("./FormSelect-BDZATc3u.js").then((e) => ({ default: e.FormSelect })));
304
- function W(e) {
305
- return B(e.field, "input") ? n(I, {
306
- get field() {
307
- return e.field;
308
- },
309
- get onBlur() {
310
- return e.onBlur;
311
- },
312
- onChange: (t) => e.onChange(t),
313
- get value() {
314
- return e.value;
315
- }
316
- }) : B(e.field, "textarea") ? n(z, {
317
- get field() {
318
- return e.field;
319
- },
320
- get onBlur() {
321
- return e.onBlur;
322
- },
323
- onChange: (t) => e.onChange(t),
324
- get value() {
325
- return e.value;
326
- }
327
- }) : B(e.field, "select") ? n(f, {
328
- get fallback() {
329
- return n(D, {});
330
- },
331
- get children() {
332
- return n(U, {
333
- get controlId() {
334
- return e.controlId;
335
- },
336
- get field() {
337
- return e.field;
338
- },
339
- get onBlur() {
340
- return e.onBlur;
341
- },
342
- onChange: (t) => e.onChange(t),
343
- get value() {
344
- return e.value;
345
- }
346
- });
347
- }
348
- }) : B(e.field, "datePicker") ? n(f, {
349
- get fallback() {
350
- return n(D, {});
351
- },
352
- get children() {
353
- return n(H, {
354
- get controlId() {
355
- return e.controlId;
356
- },
357
- get field() {
358
- return e.field;
359
- },
360
- get onBlur() {
361
- return e.onBlur;
362
- },
363
- onChange: (t) => e.onChange(t),
364
- get value() {
365
- return e.value;
366
- }
367
- });
368
- }
369
- }) : B(e.field, "checkbox") ? n(k, {
370
- get controlId() {
371
- return e.controlId;
372
- },
373
- get label() {
374
- return e.field.label;
375
- },
376
- onChange: (t) => e.onChange(t),
377
- get value() {
378
- return e.value;
379
- }
380
- }) : B(e.field, "switch") ? n(R, {
381
- get controlId() {
382
- return e.controlId;
383
- },
384
- get label() {
385
- return e.field.label;
386
- },
387
- onChange: (t) => e.onChange(t),
388
- get value() {
389
- return e.value;
390
- }
391
- }) : B(e.field, "radio") ? n(L, {
392
- get controlId() {
393
- return e.controlId;
394
- },
395
- get field() {
396
- return e.field;
397
- },
398
- onChange: (t) => e.onChange(t),
399
- get value() {
400
- return e.value;
401
- }
402
- }) : B(e.field, "checkbox-group") ? n(j, {
403
- get controlId() {
404
- return e.controlId;
405
- },
406
- get field() {
407
- return e.field;
408
- },
409
- onChange: (t) => e.onChange(t),
410
- get value() {
411
- return e.value;
412
- }
413
- }) : null;
414
- }
415
- //#endregion
416
- //#region src/form/patch.ts
417
- function G(e) {
418
- return q(e) || e === "" ? void 0 : Number(e);
419
- }
420
- function K(e) {
421
- return q(e) || e === "" ? 0 : Number(e);
422
- }
423
- function q(e) {
424
- return e == null;
425
- }
426
- function J(e) {
427
- return Array.isArray(e) ? [...e].sort() : [];
428
- }
429
- function Y(e) {
430
- return e && typeof e == "object" && !Array.isArray(e) ? e : {};
431
- }
432
- function X(e) {
433
- return typeof e == "object" && !!e && !Array.isArray(e);
434
- }
435
- function ie(e, t, n) {
436
- let r = {};
437
- for (let i of n) {
438
- let { name: n, valueType: a } = i, o = e[n], s = t[n], c;
439
- c = a === "number" ? T(G(o), G(s)) : Array.isArray(o) || Array.isArray(s) ? T(J(o), J(s)) : X(o) || X(s) ? T(Y(o), Y(s)) : T(q(o) ? "" : o, q(s) ? "" : s), c || (r[n] = a === "number" ? K(s) : s);
440
- }
441
- return {
442
- patch: r,
443
- changed: Object.keys(r).length > 0
444
- };
445
- }
446
- //#endregion
447
- //#region src/form/Form.tsx
448
- var ae = /*#__PURE__*/ l("<form>"), oe = /*#__PURE__*/ l("<div class=van-form-field><div class=van-form-loading-wrap>"), se = /*#__PURE__*/ l("<div class=van-form-loading-wrap>");
449
- function Z(e) {
450
- return typeof e == "string" ? e : e && typeof e == "object" && "message" in e ? String(e.message) : String(e);
451
- }
452
- function Q(e) {
453
- let t = e.rule;
454
- if (t) return {
455
- onChange: typeof t == "function" ? (e) => t({
456
- value: e.value,
457
- getValue: (t) => e.fieldApi.form.getFieldValue(t)
458
- }) : t,
459
- ...e.validateListenTo?.length ? { onChangeListenTo: e.validateListenTo } : {}
460
- };
461
- }
462
- function $(e, t) {
463
- return typeof e.show == "function" ? e.show(t) : e.show !== !1;
464
- }
465
- function ce(e, t) {
466
- let n = new Set(t.filter((t) => !$(t, e)).map((e) => e.name));
467
- return Object.fromEntries(Object.entries(e).filter(([e]) => !n.has(e)));
468
- }
469
- function le(e, t) {
470
- return e.filter((e) => $(e, t));
471
- }
472
- function ue(e) {
473
- let r = ee({ values: {} }, e), l = r.values, f = g(), h = (e) => `${f}-${e}`, _ = (e) => {
474
- let t = ce(e, r.fields);
475
- if (r.patch) {
476
- let { patch: n, changed: i } = ie(l, t, le(r.fields, e));
477
- return {
478
- values: t,
479
- patch: n,
480
- changed: i
481
- };
482
- }
483
- return { values: t };
484
- }, y = x(() => ({
485
- defaultValues: l,
486
- onSubmit: async ({ value: e }) => {
487
- let { values: t, patch: n, changed: i } = _(e);
488
- await r.onSubmit?.(n === void 0 ? { value: t } : {
489
- value: t,
490
- patch: n,
491
- changed: i
492
- });
493
- },
494
- onSubmitInvalid: ({ value: e, formApi: t }) => {
495
- if (!r.onSubmitInvalid) return;
496
- let n = {}, i = t.state.fieldMeta;
497
- for (let [e, t] of Object.entries(i)) {
498
- let r = (t?.errors ?? []).map(Z).filter(Boolean);
499
- r.length > 0 && (n[e] = r);
500
- }
501
- r.onSubmitInvalid({
502
- value: e,
503
- errors: n
504
- });
505
- }
506
- }));
507
- r.ref?.({
508
- validate: async () => (await y.validateAllFields("change"), y.state.canSubmit),
509
- validateAndGetFieldValues: async () => (await y.validateAllFields("change"), y.state.canSubmit ? _(y.state.values) : !1),
510
- reset: () => y.reset(),
511
- getFieldValues: () => _(y.state.values),
512
- setFieldValues: (e) => {
513
- for (let [t, n] of Object.entries(e)) y.setFieldValue(t, n);
514
- },
515
- getFieldValue: (e) => y.getFieldValue(e),
516
- setFieldValue: (e, t) => y.setFieldValue(e, t)
517
- });
518
- let S = y.useStore((e) => e.values), C = m(() => r.fields.filter((e) => !e.hidden && $(e, S()))), w = y.useStore((e) => e.isSubmitting), T = y.useStore((e) => e.values), E = y.setFieldValue;
519
- return p(v(() => r.values, (e) => {
520
- for (let [t, n] of Object.entries(e ?? {})) y.state.values[t] !== n && E(t, n);
521
- }, { defer: !0 })), p(v(T, (e) => r.onValuesChange?.(e), { defer: !0 })), (() => {
522
- var e = ae();
523
- return e.addEventListener("submit", (e) => {
524
- e.preventDefault(), e.stopPropagation(), y.handleSubmit();
525
- }), a(e, n(u, {
526
- get each() {
527
- return C();
528
- },
529
- children: (e) => n(y.Field, {
530
- get name() {
531
- return e.name;
532
- },
533
- get validators() {
534
- return Q(e);
535
- },
536
- children: (t) => {
537
- let l = t(), f = m(() => (t().state.meta.errors ?? []).map(Z).filter(Boolean)), p = m(() => t().state.value), g = V(e.fieldWidth), _ = g ? { width: g } : void 0;
538
- return e.control ? (() => {
539
- var t = oe(), n = t.firstChild;
540
- return a(n, () => e.control({
541
- value: p,
542
- onChange: (e) => l.handleChange(e),
543
- onBlur: () => l.handleBlur(),
544
- error: f,
545
- id: h(e.name)
546
- })), i((e) => {
547
- var i = _, a = r.loading ? "" : void 0, o = r.loading || void 0;
548
- return e.e = c(t, i, e.e), a !== e.t && s(n, "data-loading", e.t = a), o !== e.a && (n.inert = e.a = o), e;
549
- }, {
550
- e: void 0,
551
- t: void 0,
552
- a: void 0
553
- }), t;
554
- })() : n(b.Root, {
555
- class: "van-form-field",
556
- get id() {
557
- return h(e.name);
558
- },
559
- get invalid() {
560
- return f().length > 0;
561
- },
562
- style: _,
563
- get children() {
564
- return [
565
- n(d, {
566
- get when() {
567
- return o(() => !!(e.label && e.fieldType !== "checkbox" && e.fieldType !== "checkbox-group"))() && e.fieldType !== "switch";
568
- },
569
- get children() {
570
- return o(() => !!e.renderLabel)() ? n(b.Label, {
571
- class: "van-form-label",
572
- get children() {
573
- return e.renderLabel(e.label);
574
- }
575
- }) : n(b.Label, {
576
- class: "van-form-label",
577
- get children() {
578
- return e.label;
579
- }
580
- });
581
- }
582
- }),
583
- (() => {
584
- var t = se();
585
- return a(t, n(W, {
586
- get controlId() {
587
- return h(e.name);
588
- },
589
- field: e,
590
- onBlur: () => l.handleBlur(),
591
- onChange: (e) => l.handleChange(e),
592
- get value() {
593
- return p();
594
- }
595
- })), i((e) => {
596
- var n = r.loading ? "" : void 0, i = r.loading || void 0;
597
- return n !== e.e && s(t, "data-loading", e.e = n), i !== e.t && (t.inert = e.t = i), e;
598
- }, {
599
- e: void 0,
600
- t: void 0
601
- }), t;
602
- })(),
603
- n(d, {
604
- get when() {
605
- return e.helperText;
606
- },
607
- get children() {
608
- return n(b.HelperText, {
609
- class: "van-form-helper",
610
- get children() {
611
- return e.helperText;
612
- }
613
- });
614
- }
615
- }),
616
- n(d, {
617
- get when() {
618
- return f().length > 0;
619
- },
620
- get children() {
621
- return o(() => !!e.renderError)() ? n(b.ErrorText, {
622
- class: "van-form-error",
623
- get children() {
624
- return e.renderError(f());
625
- }
626
- }) : n(u, {
627
- get each() {
628
- return f();
629
- },
630
- children: (e) => n(b.ErrorText, {
631
- class: "van-form-error",
632
- children: e
633
- })
634
- });
635
- }
636
- })
637
- ];
638
- }
639
- });
640
- }
641
- })
642
- }), null), a(e, () => r.children?.({ isSubmitting: w() }), null), i((n) => {
643
- var i = r.loading ?? !1, a = `van-form-form ${r.className ?? ""}`, o = r.size ?? "default";
644
- return i !== n.e && s(e, "aria-busy", n.e = i), a !== n.t && t(e, n.t = a), o !== n.a && s(e, "data-size", n.a = o), n;
645
- }, {
646
- e: void 0,
647
- t: void 0,
648
- a: void 0
649
- }), e;
650
- })();
651
- }
652
- //#endregion
653
- export { ue as t };