@vanstack/solid-ark 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/FormDatePicker-BWrGST8J.js +433 -0
  2. package/dist/FormSelect-Dex9R5TZ.js +92 -0
  3. package/dist/button/Button.d.ts +10 -0
  4. package/dist/button/index.d.ts +2 -0
  5. package/dist/button/index.mjs +2 -0
  6. package/dist/button-C9xYlZbo.js +44 -0
  7. package/dist/data-table/DataTable.d.ts +2 -0
  8. package/dist/data-table/Pagination.d.ts +9 -0
  9. package/dist/data-table/index.d.ts +4 -0
  10. package/dist/data-table/index.mjs +251 -0
  11. package/dist/data-table/type.d.ts +59 -0
  12. package/dist/drawer/index.d.ts +2 -0
  13. package/dist/drawer/index.mjs +236 -0
  14. package/dist/drawer/manager.d.ts +9 -0
  15. package/dist/drawer/type.d.ts +34 -0
  16. package/dist/form/Form.d.ts +7 -0
  17. package/dist/form/components/FieldRenderer.d.ts +8 -0
  18. package/dist/form/components/FieldSkeleton.d.ts +1 -0
  19. package/dist/form/components/FormCheckbox.d.ts +6 -0
  20. package/dist/form/components/FormCheckboxGroup.d.ts +7 -0
  21. package/dist/form/components/FormDatePicker.d.ts +8 -0
  22. package/dist/form/components/FormInput.d.ts +7 -0
  23. package/dist/form/components/FormRadio.d.ts +7 -0
  24. package/dist/form/components/FormSelect.d.ts +8 -0
  25. package/dist/form/components/FormSwitch.d.ts +6 -0
  26. package/dist/form/components/FormTextarea.d.ts +7 -0
  27. package/dist/form/components/useDebouncedValue.d.ts +16 -0
  28. package/dist/form/components/utils.d.ts +6 -0
  29. package/dist/form/index.d.ts +2 -0
  30. package/dist/form/index.mjs +2 -0
  31. package/dist/form/type.d.ts +127 -0
  32. package/dist/form-TmnHhNkx.js +559 -0
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.mjs +0 -0
  35. package/dist/modal/index.d.ts +2 -0
  36. package/dist/modal/index.mjs +239 -0
  37. package/dist/modal/manager.d.ts +10 -0
  38. package/dist/modal/type.d.ts +32 -0
  39. package/dist/solid-ark.css +2 -0
  40. package/dist/table/Table.d.ts +2 -0
  41. package/dist/table/index.d.ts +2 -0
  42. package/dist/table/index.mjs +2 -0
  43. package/dist/table/type.d.ts +23 -0
  44. package/dist/table-B88tYpbb.js +230 -0
  45. package/dist/toast/index.d.ts +9 -0
  46. package/dist/toast/index.mjs +81 -0
  47. package/package.json +91 -0
@@ -0,0 +1,559 @@
1
+ import { Index as e, className as t, createComponent as n, delegateEvents as r, effect as i, insert as a, memo as o, style as s, template as c } from "solid-js/web";
2
+ import { For as l, Show as u, Suspense as d, createEffect as f, createMemo as p, createSignal as m, createUniqueId as h, lazy as g, mergeProps as _, on as v, onCleanup as y } from "solid-js";
3
+ import { Field as b } from "@ark-ui/solid/field";
4
+ import { createForm as x } from "@tanstack/solid-form";
5
+ import { Checkbox as S } from "@ark-ui/solid/checkbox";
6
+ import { RadioGroup as C } from "@ark-ui/solid/radio-group";
7
+ import { Switch as w } from "@ark-ui/solid/switch";
8
+ //#region src/form/components/FieldSkeleton.tsx
9
+ var T = /*#__PURE__*/ c("<div aria-hidden=true class=van-form-field-skeleton>");
10
+ function E() {
11
+ return T();
12
+ }
13
+ //#endregion
14
+ //#region src/form/components/FormCheckbox.tsx
15
+ var D = /*#__PURE__*/ c("<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\">");
16
+ function O(e) {
17
+ return n(S.Root, {
18
+ get checked() {
19
+ return e.value ?? !1;
20
+ },
21
+ class: "van-form-checkbox-root",
22
+ get id() {
23
+ return e.controlId;
24
+ },
25
+ onCheckedChange: (t) => e.onChange(t.checked === !0),
26
+ get children() {
27
+ return [
28
+ n(S.Control, {
29
+ class: "van-form-checkbox-control",
30
+ get children() {
31
+ return n(S.Indicator, {
32
+ class: "van-form-checkbox-indicator",
33
+ get children() {
34
+ return D();
35
+ }
36
+ });
37
+ }
38
+ }),
39
+ o(() => o(() => !!e.label)() && n(S.Label, {
40
+ class: "van-form-checkbox-label",
41
+ get children() {
42
+ return e.label;
43
+ }
44
+ })),
45
+ n(S.HiddenInput, {})
46
+ ];
47
+ }
48
+ });
49
+ }
50
+ //#endregion
51
+ //#region src/form/components/FormCheckboxGroup.tsx
52
+ var k = /*#__PURE__*/ c("<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\">");
53
+ function A(t) {
54
+ return n(S.Group, {
55
+ class: "van-form-checkbox-group",
56
+ get id() {
57
+ return t.controlId;
58
+ },
59
+ onValueChange: (e) => t.onChange(e),
60
+ value: () => Array.isArray(t.value) ? t.value : [],
61
+ get children() {
62
+ return n(e, {
63
+ get each() {
64
+ return t.field.options;
65
+ },
66
+ children: (e) => n(S.Root, {
67
+ class: "van-form-checkbox-root",
68
+ get id() {
69
+ return `${t.controlId}-item-${e().value}`;
70
+ },
71
+ get ids() {
72
+ return {
73
+ hiddenInput: `${t.controlId}-${e().value}`,
74
+ label: `${t.controlId}-${e().value}-label`
75
+ };
76
+ },
77
+ get value() {
78
+ return e().value;
79
+ },
80
+ get children() {
81
+ return [
82
+ n(S.Control, {
83
+ class: "van-form-checkbox-control",
84
+ get children() {
85
+ return n(S.Indicator, {
86
+ class: "van-form-checkbox-indicator",
87
+ get children() {
88
+ return k();
89
+ }
90
+ });
91
+ }
92
+ }),
93
+ n(S.Label, {
94
+ class: "van-form-checkbox-label",
95
+ get children() {
96
+ return e().label;
97
+ }
98
+ }),
99
+ n(S.HiddenInput, {})
100
+ ];
101
+ }
102
+ })
103
+ });
104
+ }
105
+ });
106
+ }
107
+ //#endregion
108
+ //#region src/form/components/useDebouncedValue.ts
109
+ function j(e) {
110
+ let [t, n] = m(e.value() ?? ""), r, i = (t) => {
111
+ if (n(t), (e.debounce ?? 0) > 0) {
112
+ clearTimeout(r), r = setTimeout(() => {
113
+ r = void 0, e.onChange(t);
114
+ }, e.debounce);
115
+ return;
116
+ }
117
+ e.onChange(t);
118
+ }, a = () => {
119
+ r !== void 0 && (clearTimeout(r), r = void 0, t() !== e.value() && e.onChange(t()));
120
+ };
121
+ return f(v(() => e.value(), (e) => n(e ?? ""))), y(() => clearTimeout(r)), {
122
+ local: t,
123
+ handleInput: i,
124
+ handleBlur: () => {
125
+ a(), e.onBlur();
126
+ },
127
+ handleClear: () => {
128
+ clearTimeout(r), r = void 0, n(""), e.onChange("");
129
+ }
130
+ };
131
+ }
132
+ //#endregion
133
+ //#region src/form/components/FormInput.tsx
134
+ var M = /*#__PURE__*/ c("<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\">"), N = /*#__PURE__*/ c("<button aria-label=清空 type=button>"), P = /*#__PURE__*/ c("<div class=van-form-input-group>"), F = /*#__PURE__*/ c("<span class=\"van-form-input-addon van-form-input-addon-prefix\">"), I = /*#__PURE__*/ c("<span class=\"van-form-input-addon van-form-input-addon-suffix\">");
135
+ function L() {
136
+ return M();
137
+ }
138
+ function R(e) {
139
+ let { local: r, handleInput: s, handleBlur: c, handleClear: l } = j({
140
+ value: () => e.value,
141
+ debounce: e.field.debounce,
142
+ onChange: e.onChange,
143
+ onBlur: e.onBlur
144
+ }), d, f = n(b.Input, {
145
+ get autocomplete() {
146
+ return e.field.autocomplete;
147
+ },
148
+ class: "van-form-input",
149
+ onBlur: c,
150
+ onInput: (e) => s(e.currentTarget.value),
151
+ get placeholder() {
152
+ return e.field.placeholder;
153
+ },
154
+ ref: (e) => {
155
+ d = e;
156
+ },
157
+ get type() {
158
+ return e.field.type ?? "text";
159
+ },
160
+ get value() {
161
+ return r();
162
+ }
163
+ }), p = e.field.prefix !== void 0 || e.field.suffix !== void 0, m = e.field.clearable === !0;
164
+ return !p && !m ? f : (() => {
165
+ var s = P();
166
+ return a(s, (() => {
167
+ var t = o(() => e.field.prefix !== void 0);
168
+ return () => t() && (() => {
169
+ var t = F();
170
+ return a(t, () => e.field.prefix), t;
171
+ })();
172
+ })(), null), a(s, f, null), a(s, n(u, {
173
+ get when() {
174
+ return m && r() !== "";
175
+ },
176
+ get children() {
177
+ var r = N();
178
+ return r.$$click = () => {
179
+ l(), d?.focus();
180
+ }, a(r, n(L, {})), i(() => t(r, `van-form-input-clear${e.field.suffix === void 0 ? "" : " van-form-input-clear-before-suffix"}`)), r;
181
+ }
182
+ }), null), a(s, (() => {
183
+ var t = o(() => e.field.suffix !== void 0);
184
+ return () => t() && (() => {
185
+ var t = I();
186
+ return a(t, () => e.field.suffix), t;
187
+ })();
188
+ })(), null), s;
189
+ })();
190
+ }
191
+ r(["click"]);
192
+ //#endregion
193
+ //#region src/form/components/FormRadio.tsx
194
+ function z(t) {
195
+ let r = p(() => t.field.options.map((e) => e.value));
196
+ return n(C.Root, {
197
+ class: "van-form-radio-group",
198
+ get id() {
199
+ return t.controlId;
200
+ },
201
+ ids: { itemHiddenInput: (e) => e === t.field.options[0]?.value ? t.controlId : `radio-${t.controlId}-${e}` },
202
+ onValueChange: (e) => t.onChange(e.value ?? ""),
203
+ get value() {
204
+ return t.value ?? "";
205
+ },
206
+ get children() {
207
+ return n(e, {
208
+ get each() {
209
+ return r();
210
+ },
211
+ children: (e) => {
212
+ let r = t.field.options.find((t) => t.value === e());
213
+ return n(C.Item, {
214
+ class: "van-form-radio-item",
215
+ get value() {
216
+ return e();
217
+ },
218
+ get children() {
219
+ return [
220
+ n(C.ItemControl, { class: "van-form-radio-control" }),
221
+ n(C.ItemText, {
222
+ class: "van-form-radio-text",
223
+ get children() {
224
+ return r?.label ?? e();
225
+ }
226
+ }),
227
+ n(C.ItemHiddenInput, {})
228
+ ];
229
+ }
230
+ });
231
+ }
232
+ });
233
+ }
234
+ });
235
+ }
236
+ //#endregion
237
+ //#region src/form/components/FormSwitch.tsx
238
+ function B(e) {
239
+ return n(w.Root, {
240
+ get checked() {
241
+ return e.value ?? !1;
242
+ },
243
+ class: "van-form-switch-root",
244
+ get id() {
245
+ return e.controlId;
246
+ },
247
+ onCheckedChange: (t) => e.onChange(t.checked),
248
+ get children() {
249
+ return [
250
+ n(w.Control, {
251
+ class: "van-form-switch-control",
252
+ get children() {
253
+ return n(w.Thumb, { class: "van-form-switch-thumb" });
254
+ }
255
+ }),
256
+ o(() => o(() => !!e.label)() && n(w.Label, {
257
+ class: "van-form-switch-label",
258
+ get children() {
259
+ return e.label;
260
+ }
261
+ })),
262
+ n(w.HiddenInput, {})
263
+ ];
264
+ }
265
+ });
266
+ }
267
+ //#endregion
268
+ //#region src/form/components/FormTextarea.tsx
269
+ function V(e) {
270
+ let { local: t, handleInput: r, handleBlur: i } = j({
271
+ value: () => e.value,
272
+ debounce: e.field.debounce,
273
+ onChange: e.onChange,
274
+ onBlur: e.onBlur
275
+ });
276
+ return n(b.Textarea, {
277
+ class: "van-form-textarea",
278
+ onBlur: i,
279
+ onInput: (e) => r(e.currentTarget.value),
280
+ get placeholder() {
281
+ return e.field.placeholder;
282
+ },
283
+ get rows() {
284
+ return e.field.rows ?? 4;
285
+ },
286
+ get value() {
287
+ return t();
288
+ }
289
+ });
290
+ }
291
+ //#endregion
292
+ //#region src/form/components/utils.ts
293
+ function H(e, t) {
294
+ return e.fieldType === t;
295
+ }
296
+ function U(e) {
297
+ if (e != null) return typeof e == "number" ? `${e}px` : e;
298
+ }
299
+ //#endregion
300
+ //#region src/form/components/FieldRenderer.tsx
301
+ var W = g(() => import("./FormDatePicker-BWrGST8J.js").then((e) => ({ default: e.FormDatePicker }))), G = g(() => import("./FormSelect-Dex9R5TZ.js").then((e) => ({ default: e.FormSelect })));
302
+ function K(e) {
303
+ return H(e.field, "input") ? n(R, {
304
+ get field() {
305
+ return e.field;
306
+ },
307
+ get onBlur() {
308
+ return e.onBlur;
309
+ },
310
+ onChange: (t) => e.onChange(t),
311
+ get value() {
312
+ return e.value;
313
+ }
314
+ }) : H(e.field, "textarea") ? n(V, {
315
+ get field() {
316
+ return e.field;
317
+ },
318
+ get onBlur() {
319
+ return e.onBlur;
320
+ },
321
+ onChange: (t) => e.onChange(t),
322
+ get value() {
323
+ return e.value;
324
+ }
325
+ }) : H(e.field, "select") ? n(d, {
326
+ get fallback() {
327
+ return n(E, {});
328
+ },
329
+ get children() {
330
+ return n(G, {
331
+ get controlId() {
332
+ return e.controlId;
333
+ },
334
+ get field() {
335
+ return e.field;
336
+ },
337
+ get onBlur() {
338
+ return e.onBlur;
339
+ },
340
+ onChange: (t) => e.onChange(t),
341
+ get value() {
342
+ return e.value;
343
+ }
344
+ });
345
+ }
346
+ }) : H(e.field, "datePicker") ? n(d, {
347
+ get fallback() {
348
+ return n(E, {});
349
+ },
350
+ get children() {
351
+ return n(W, {
352
+ get controlId() {
353
+ return e.controlId;
354
+ },
355
+ get field() {
356
+ return e.field;
357
+ },
358
+ get onBlur() {
359
+ return e.onBlur;
360
+ },
361
+ onChange: (t) => e.onChange(t),
362
+ get value() {
363
+ return e.value;
364
+ }
365
+ });
366
+ }
367
+ }) : H(e.field, "checkbox") ? n(O, {
368
+ get controlId() {
369
+ return e.controlId;
370
+ },
371
+ get label() {
372
+ return e.field.label;
373
+ },
374
+ onChange: (t) => e.onChange(t),
375
+ get value() {
376
+ return e.value;
377
+ }
378
+ }) : H(e.field, "switch") ? n(B, {
379
+ get controlId() {
380
+ return e.controlId;
381
+ },
382
+ get label() {
383
+ return e.field.label;
384
+ },
385
+ onChange: (t) => e.onChange(t),
386
+ get value() {
387
+ return e.value;
388
+ }
389
+ }) : H(e.field, "radio") ? n(z, {
390
+ get controlId() {
391
+ return e.controlId;
392
+ },
393
+ get field() {
394
+ return e.field;
395
+ },
396
+ onChange: (t) => e.onChange(t),
397
+ get value() {
398
+ return e.value;
399
+ }
400
+ }) : H(e.field, "checkbox-group") ? n(A, {
401
+ get controlId() {
402
+ return e.controlId;
403
+ },
404
+ get field() {
405
+ return e.field;
406
+ },
407
+ onChange: (t) => e.onChange(t),
408
+ get value() {
409
+ return e.value;
410
+ }
411
+ }) : null;
412
+ }
413
+ //#endregion
414
+ //#region src/form/Form.tsx
415
+ var q = /*#__PURE__*/ c("<form>"), J = /*#__PURE__*/ c("<div class=van-form-field>");
416
+ function Y(e) {
417
+ return typeof e == "string" ? e : e && typeof e == "object" && "message" in e ? String(e.message) : String(e);
418
+ }
419
+ function X(e) {
420
+ let t = e.rule;
421
+ if (t) return {
422
+ onChange: typeof t == "function" ? (e) => t({
423
+ value: e.value,
424
+ getValue: (t) => e.fieldApi.form.getFieldValue(t)
425
+ }) : t,
426
+ ...e.validateListenTo?.length ? { onChangeListenTo: e.validateListenTo } : {}
427
+ };
428
+ }
429
+ function Z(e) {
430
+ let r = _({ values: {} }, e), c = r.values, d = h(), m = (e) => `${d}-${e}`, g = x(() => ({
431
+ defaultValues: c,
432
+ onSubmit: async ({ value: e }) => {
433
+ await r.onSubmit({ value: e });
434
+ },
435
+ onSubmitInvalid: ({ value: e, formApi: t }) => {
436
+ if (!r.onSubmitInvalid) return;
437
+ let n = {}, i = t.state.fieldMeta;
438
+ for (let [e, t] of Object.entries(i)) {
439
+ let r = (t?.errors ?? []).map(Y).filter(Boolean);
440
+ r.length > 0 && (n[e] = r);
441
+ }
442
+ r.onSubmitInvalid({
443
+ value: e,
444
+ errors: n
445
+ });
446
+ }
447
+ })), y = g.useStore((e) => e.isSubmitting), S = g.useStore((e) => e.values), C = g.setFieldValue;
448
+ return f(v(() => r.values, (e) => {
449
+ for (let [t, n] of Object.entries(e ?? {})) g.state.values[t] !== n && C(t, n);
450
+ }, { defer: !0 })), f(v(S, (e) => r.onValuesChange?.(e), { defer: !0 })), (() => {
451
+ var e = q();
452
+ return e.addEventListener("submit", (e) => {
453
+ e.preventDefault(), e.stopPropagation(), g.handleSubmit();
454
+ }), a(e, n(l, {
455
+ get each() {
456
+ return r.fields;
457
+ },
458
+ children: (e) => n(g.Field, {
459
+ get name() {
460
+ return e.name;
461
+ },
462
+ get validators() {
463
+ return X(e);
464
+ },
465
+ children: (t) => {
466
+ let r = t(), c = p(() => (t().state.meta.errors ?? []).map(Y).filter(Boolean)), d = p(() => t().state.value), f = U(e.fieldWidth), h = f ? { width: f } : void 0;
467
+ return e.control ? (() => {
468
+ var t = J();
469
+ return a(t, () => e.control({
470
+ value: d(),
471
+ onChange: (e) => r.handleChange(e),
472
+ onBlur: () => r.handleBlur(),
473
+ error: c(),
474
+ id: m(e.name)
475
+ })), i((e) => s(t, h, e)), t;
476
+ })() : n(b.Root, {
477
+ class: "van-form-field",
478
+ get id() {
479
+ return m(e.name);
480
+ },
481
+ get invalid() {
482
+ return c().length > 0;
483
+ },
484
+ style: h,
485
+ get children() {
486
+ return [
487
+ n(u, {
488
+ get when() {
489
+ return o(() => !!(e.label && e.fieldType !== "checkbox" && e.fieldType !== "checkbox-group"))() && e.fieldType !== "switch";
490
+ },
491
+ get children() {
492
+ return o(() => !!e.renderLabel)() ? n(b.Label, {
493
+ class: "van-form-label",
494
+ get children() {
495
+ return e.renderLabel(e.label);
496
+ }
497
+ }) : n(b.Label, {
498
+ class: "van-form-label",
499
+ get children() {
500
+ return e.label;
501
+ }
502
+ });
503
+ }
504
+ }),
505
+ n(K, {
506
+ get controlId() {
507
+ return m(e.name);
508
+ },
509
+ field: e,
510
+ onBlur: () => r.handleBlur(),
511
+ onChange: (e) => r.handleChange(e),
512
+ get value() {
513
+ return d();
514
+ }
515
+ }),
516
+ n(u, {
517
+ get when() {
518
+ return e.helperText;
519
+ },
520
+ get children() {
521
+ return n(b.HelperText, {
522
+ class: "van-form-helper",
523
+ get children() {
524
+ return e.helperText;
525
+ }
526
+ });
527
+ }
528
+ }),
529
+ n(u, {
530
+ get when() {
531
+ return c().length > 0;
532
+ },
533
+ get children() {
534
+ return o(() => !!e.renderError)() ? n(b.ErrorText, {
535
+ class: "van-form-error",
536
+ get children() {
537
+ return e.renderError(c());
538
+ }
539
+ }) : n(l, {
540
+ get each() {
541
+ return c();
542
+ },
543
+ children: (e) => n(b.ErrorText, {
544
+ class: "van-form-error",
545
+ children: e
546
+ })
547
+ });
548
+ }
549
+ })
550
+ ];
551
+ }
552
+ });
553
+ }
554
+ })
555
+ }), null), a(e, () => r.children?.({ isSubmitting: y() }), null), i(() => t(e, `van-form-form ${r.className ?? ""}`)), e;
556
+ })();
557
+ }
558
+ //#endregion
559
+ export { Z as t };
@@ -0,0 +1 @@
1
+ export {};
package/dist/index.mjs ADDED
File without changes
@@ -0,0 +1,2 @@
1
+ export { modal, Modal } from './manager';
2
+ export type { ConfirmOptions, Handler, ModalContentProps, OpenOptions } from './type';