@vanstack/solid-ark 0.0.43 → 0.0.45

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,7 +1,7 @@
1
1
  import "../solid-ark.css";
2
2
  import { t as e } from "../button-Br_upy12.js";
3
3
  import { t } from "../badge-Dt0uZnmA.js";
4
- import { t as n } from "../form-jqVwcqEp.js";
4
+ import { t as n } from "../form-CnlzjZZ1.js";
5
5
  import { t as r } from "../table-ByBUErrC.js";
6
6
  import { className as i, createComponent as a, effect as o, insert as s, memo as c, setAttribute as l, setStyleProperty as u, template as d, use as f } from "solid-js/web";
7
7
  import { For as p, Show as m, createEffect as ee, createMemo as h, createSignal as g, mergeProps as _, on as v, onCleanup as te, onMount as y } from "solid-js";
@@ -1,6 +1,7 @@
1
1
  import { FieldConfig } from '../type';
2
2
  export declare function FieldRenderer(p: {
3
3
  controlId: string;
4
+ disabled: boolean;
4
5
  field: FieldConfig;
5
6
  onBlur: () => void;
6
7
  onChange: (v: unknown) => void;
@@ -1,5 +1,6 @@
1
1
  export declare function FormCheckbox(p: {
2
2
  controlId: string;
3
+ disabled: boolean;
3
4
  label?: string;
4
5
  onChange: (v: boolean) => void;
5
6
  value: unknown;
@@ -1,6 +1,7 @@
1
1
  import { CheckboxGroupFieldConfig } from '../type';
2
2
  export declare function FormCheckboxGroup(p: {
3
3
  controlId: string;
4
+ disabled: boolean;
4
5
  field: CheckboxGroupFieldConfig;
5
6
  onChange: (v: string[]) => void;
6
7
  value: unknown;
@@ -1,6 +1,7 @@
1
1
  import { DatePickerFieldConfig, DatePickerStoredValue } from '../type';
2
2
  export declare function FormDatePicker(p: {
3
3
  controlId: string;
4
+ disabled: boolean;
4
5
  field: DatePickerFieldConfig;
5
6
  onBlur: () => void;
6
7
  onChange: (v: DatePickerStoredValue) => void;
@@ -1,5 +1,6 @@
1
1
  import { InputFieldConfig } from '../type';
2
2
  export declare function FormInput(p: {
3
+ disabled: boolean;
3
4
  field: InputFieldConfig;
4
5
  onBlur: () => void;
5
6
  onChange: (v: string) => void;
@@ -1,6 +1,7 @@
1
1
  import { RadioFieldConfig } from '../type';
2
2
  export declare function FormRadio(p: {
3
3
  controlId: string;
4
+ disabled: boolean;
4
5
  field: RadioFieldConfig;
5
6
  onChange: (v: string) => void;
6
7
  value: unknown;
@@ -1,6 +1,7 @@
1
1
  import { SelectFieldConfig } from '../type';
2
2
  export declare function FormSelect(p: {
3
3
  controlId: string;
4
+ disabled: boolean;
4
5
  field: SelectFieldConfig;
5
6
  onBlur: () => void;
6
7
  onChange: (v: string) => void;
@@ -1,5 +1,6 @@
1
1
  export declare function FormSwitch(p: {
2
2
  controlId: string;
3
+ disabled: boolean;
3
4
  label?: string;
4
5
  onChange: (v: boolean) => void;
5
6
  value: unknown;
@@ -1,5 +1,6 @@
1
1
  import { TextareaFieldConfig } from '../type';
2
2
  export declare function FormTextarea(p: {
3
+ disabled: boolean;
3
4
  field: TextareaFieldConfig;
4
5
  onBlur: () => void;
5
6
  onChange: (v: string) => void;
@@ -0,0 +1,10 @@
1
+ import { SelectFieldConfig } from '../type';
2
+ type SelectOption = SelectFieldConfig["options"][number];
3
+ export declare function createSelectCollection(options: SelectOption[]): import('@ark-ui/solid/select').ListCollection<{
4
+ disabled?: boolean;
5
+ label: string;
6
+ value: string;
7
+ visitedLabel?: string;
8
+ }>;
9
+ export declare function getSelectTriggerLabel(options: SelectOption[], value: unknown): string | undefined;
10
+ export {};
@@ -2,6 +2,7 @@ import { FieldConfig, FieldRuleContext } from '../type';
2
2
  export declare function isFieldType<T extends FieldConfig["fieldType"]>(field: FieldConfig, type: T): field is Extract<FieldConfig, {
3
3
  fieldType: T;
4
4
  }>;
5
+ export declare function isFieldDisabled(field: FieldConfig, formDisabled?: boolean): boolean;
5
6
  /** 宽度配置 → CSS 值:数字转 px,字符串原样 */
6
7
  export declare function toCssWidth(width: number | string | undefined): string | undefined;
7
8
  /**
@@ -1,3 +1,3 @@
1
1
  import "../solid-ark.css";
2
- import { t as e } from "../form-jqVwcqEp.js";
2
+ import { t as e } from "../form-CnlzjZZ1.js";
3
3
  export { e as Form };
@@ -11,6 +11,8 @@ export type FieldRule = ((props: FieldRuleContext) => string | undefined) | z.Zo
11
11
  interface BaseFieldConfig {
12
12
  name: string;
13
13
  label?: string;
14
+ /** 是否禁用当前字段;禁用后不可交互,但字段值仍保留并提交 */
15
+ disabled?: boolean;
14
16
  helperText?: string;
15
17
  placeholder?: string;
16
18
  /** 字段宽度:数字为 px(如 240),也支持字符串如 "240px" / "100%";不传时按容器默认 */
@@ -57,8 +59,14 @@ export interface TextareaFieldConfig extends BaseFieldConfig {
57
59
  export interface SelectFieldConfig extends BaseFieldConfig {
58
60
  fieldType: "select";
59
61
  options: {
62
+ /** 是否禁用该选项;禁用项仍展示,但不可选择 */
63
+ disabled?: boolean;
64
+ /** 下拉面板中展示的文本 */
60
65
  label: string;
66
+ /** 表单实际存储和提交的值 */
61
67
  value: string;
68
+ /** 选中后 Trigger 中展示的文本,默认使用 label */
69
+ visitedLabel?: string;
62
70
  }[];
63
71
  /** 有值时显示清除按钮,点击清空已选值 */
64
72
  clearable?: boolean;
@@ -108,6 +116,8 @@ export interface FieldControlProps {
108
116
  value: () => unknown;
109
117
  onChange: (value: unknown) => void;
110
118
  onBlur: () => void;
119
+ /** 当前字段是否禁用(accessor,包含表单级与字段级禁用状态) */
120
+ disabled: () => boolean;
111
121
  /** 字段错误消息列表(accessor,调用 error() 读取) */
112
122
  error?: () => string[];
113
123
  id: string;
@@ -158,6 +168,8 @@ export interface FormExposed<TData extends Record<string, unknown>> {
158
168
  export interface FormProps<TData extends Record<string, unknown>> {
159
169
  /** 字段配置 */
160
170
  fields: FieldConfig[];
171
+ /** 是否禁用整个表单;禁用后所有字段及 children 中的原生表单控件不可交互 */
172
+ disabled?: boolean;
161
173
  /** 表单值:挂载时作为初始值;之后引用变化会同步进表单 */
162
174
  values?: Partial<TData>;
163
175
  /** 表单值变化通知:内部值变化(用户输入、外部 values 同步)时触发,配合 values 使用可实现双向绑定 */
@@ -5,19 +5,22 @@ import { Field as x } from "@ark-ui/solid/field";
5
5
  import { createForm as ee } from "@tanstack/solid-form";
6
6
  import { Checkbox as S } from "@ark-ui/solid/checkbox";
7
7
  import { DatePicker as C, useDatePicker as w } from "@ark-ui/solid/date-picker";
8
- import { CalendarDate as T, CalendarDateTime as E, endOfWeek as te, parseDate as ne, startOfWeek as D } from "@internationalized/date";
9
- import { RadioGroup as O } from "@ark-ui/solid/radio-group";
10
- import { Select as k, createListCollection as A } from "@ark-ui/solid/select";
11
- import { Switch as j } from "@ark-ui/solid/switch";
12
- import { deepEqual as M } from "fast-equals";
8
+ import { CalendarDate as T, CalendarDateTime as E, endOfWeek as te, parseDate as D, startOfWeek as O } from "@internationalized/date";
9
+ import { RadioGroup as k } from "@ark-ui/solid/radio-group";
10
+ import { Select as A, createListCollection as j } from "@ark-ui/solid/select";
11
+ import { Switch as M } from "@ark-ui/solid/switch";
12
+ import { deepEqual as N } from "fast-equals";
13
13
  //#region src/form/components/FormCheckbox.tsx
14
- var N = /*#__PURE__*/ u("<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\">");
14
+ var ne = /*#__PURE__*/ u("<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\">");
15
15
  function re(e) {
16
16
  return r(S.Root, {
17
17
  get checked() {
18
18
  return e.value ?? !1;
19
19
  },
20
20
  class: "van-form-checkbox-root",
21
+ get disabled() {
22
+ return e.disabled;
23
+ },
21
24
  get id() {
22
25
  return e.controlId;
23
26
  },
@@ -30,7 +33,7 @@ function re(e) {
30
33
  return r(S.Indicator, {
31
34
  class: "van-form-checkbox-indicator",
32
35
  get children() {
33
- return N();
36
+ return ne();
34
37
  }
35
38
  });
36
39
  }
@@ -52,6 +55,9 @@ var ie = /*#__PURE__*/ u("<svg class=van-form-check-icon fill=none stroke=curren
52
55
  function ae(t) {
53
56
  return r(S.Group, {
54
57
  class: "van-form-checkbox-group",
58
+ get disabled() {
59
+ return t.disabled;
60
+ },
55
61
  get id() {
56
62
  return t.controlId;
57
63
  },
@@ -64,6 +70,9 @@ function ae(t) {
64
70
  },
65
71
  children: (e) => r(S.Root, {
66
72
  class: "van-form-checkbox-root",
73
+ get disabled() {
74
+ return t.disabled;
75
+ },
67
76
  get id() {
68
77
  return `${t.controlId}-item-${e().value}`;
69
78
  },
@@ -176,7 +185,7 @@ function me(e, t, n) {
176
185
  let t = Number(e);
177
186
  return Number.isInteger(t) ? new T(t, 1, 1) : void 0;
178
187
  }
179
- default: return ne(e);
188
+ default: return D(e);
180
189
  }
181
190
  } catch {
182
191
  return;
@@ -425,7 +434,7 @@ function xe(e) {
425
434
  e.onChange([]);
426
435
  return;
427
436
  }
428
- let r = pe[e.field.startOfWeek ?? 1] ?? "mon", i = e.field.locale ?? "zh-CN", a = D(n, i, r), o = te(n, i, r);
437
+ let r = pe[e.field.startOfWeek ?? 1] ?? "mon", i = e.field.locale ?? "zh-CN", a = O(n, i, r), o = te(n, i, r);
429
438
  e.onChange(c() === "timestamp" ? [R(a, "week"), R(o, "week")] : [L(a, "week"), L(o, "week")]), f?.().setOpen(!1);
430
439
  return;
431
440
  }
@@ -445,6 +454,7 @@ function xe(e) {
445
454
  }, m = w(() => ({
446
455
  closeOnSelect: n() !== "datetime" && void 0,
447
456
  defaultView: n() === "year" ? "year" : n() === "month" ? "month" : void 0,
457
+ disabled: e.disabled,
448
458
  format: (e) => L(e, n()),
449
459
  id: e.controlId,
450
460
  ids: { trigger: e.controlId },
@@ -482,7 +492,7 @@ function xe(e) {
482
492
  return o(e, r(_e, {})), e;
483
493
  })()];
484
494
  }
485
- }), s(() => s(() => e.field.clearable === !0)() && r(C.ClearTrigger, {
495
+ }), s(() => s(() => e.field.clearable === !0 && !e.disabled)() && r(C.ClearTrigger, {
486
496
  class: "van-form-date-clear",
487
497
  get children() {
488
498
  return r(ge, {});
@@ -512,15 +522,15 @@ function xe(e) {
512
522
  }),
513
523
  r(H, {}),
514
524
  r(U, {})
515
- ]), s(() => s(() => n() === "datetime")() && r(C.Context, { children: (e) => (() => {
516
- var t = fe();
517
- return t.$$input = (t) => {
518
- let [n, r] = t.currentTarget.value.split(":").map(Number);
519
- e().setTime({
525
+ ]), s(() => s(() => n() === "datetime")() && r(C.Context, { children: (t) => (() => {
526
+ var n = fe();
527
+ return n.$$input = (e) => {
528
+ let [n, r] = e.currentTarget.value.split(":").map(Number);
529
+ t().setTime({
520
530
  hour: n,
521
531
  minute: r
522
532
  });
523
- }, a(() => t.value = I(e().value[0])), t;
533
+ }, a(() => n.disabled = e.disabled), a(() => n.value = I(t().value[0])), n;
524
534
  })() }))];
525
535
  }
526
536
  });
@@ -558,11 +568,11 @@ function W(e) {
558
568
  }
559
569
  //#endregion
560
570
  //#region src/form/components/FormInput.tsx
561
- var Se = /*#__PURE__*/ u("<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\">"), Ce = /*#__PURE__*/ u("<button aria-label=清空 type=button>"), we = /*#__PURE__*/ u("<div class=van-form-input-group>"), Te = /*#__PURE__*/ u("<span class=\"van-form-input-addon van-form-input-addon-prefix\">"), G = /*#__PURE__*/ u("<span class=\"van-form-input-addon van-form-input-addon-suffix\">");
562
- function Ee() {
571
+ var Se = /*#__PURE__*/ u("<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\">"), Ce = /*#__PURE__*/ u("<button aria-label=清空 type=button>"), we = /*#__PURE__*/ u("<div class=van-form-input-group>"), Te = /*#__PURE__*/ u("<span class=\"van-form-input-addon van-form-input-addon-prefix\">"), Ee = /*#__PURE__*/ u("<span class=\"van-form-input-addon van-form-input-addon-suffix\">");
572
+ function De() {
563
573
  return Se();
564
574
  }
565
- function De(e) {
575
+ function Oe(e) {
566
576
  let { local: t, handleInput: i, handleBlur: c, handleClear: l } = W({
567
577
  value: () => e.value,
568
578
  debounce: e.field.debounce,
@@ -573,6 +583,9 @@ function De(e) {
573
583
  return e.field.autocomplete;
574
584
  },
575
585
  class: "van-form-input",
586
+ get disabled() {
587
+ return e.disabled;
588
+ },
576
589
  onBlur: c,
577
590
  onInput: (e) => i(e.currentTarget.value),
578
591
  get placeholder() {
@@ -598,18 +611,24 @@ function De(e) {
598
611
  })();
599
612
  })(), null), o(i, d, null), o(i, r(p, {
600
613
  get when() {
601
- return m && t() !== "";
614
+ return s(() => !!(m && !e.disabled))() && t() !== "";
602
615
  },
603
616
  get children() {
604
617
  var t = Ce();
605
618
  return t.$$click = () => {
606
619
  l(), u?.focus();
607
- }, o(t, r(Ee, {})), a(() => n(t, `van-form-input-clear${e.field.suffix === void 0 ? "" : " van-form-input-clear-before-suffix"}`)), t;
620
+ }, o(t, r(De, {})), a((r) => {
621
+ var i = `van-form-input-clear${e.field.suffix === void 0 ? "" : " van-form-input-clear-before-suffix"}`, a = e.disabled;
622
+ return i !== r.e && n(t, r.e = i), a !== r.t && (t.disabled = r.t = a), r;
623
+ }, {
624
+ e: void 0,
625
+ t: void 0
626
+ }), t;
608
627
  }
609
628
  }), null), o(i, (() => {
610
629
  var t = s(() => e.field.suffix !== void 0);
611
630
  return () => t() && (() => {
612
- var t = G();
631
+ var t = Ee();
613
632
  return o(t, () => e.field.suffix), t;
614
633
  })();
615
634
  })(), null), i;
@@ -618,10 +637,13 @@ function De(e) {
618
637
  i(["click"]);
619
638
  //#endregion
620
639
  //#region src/form/components/FormRadio.tsx
621
- function Oe(t) {
640
+ function ke(t) {
622
641
  let n = h(() => t.field.options.map((e) => e.value));
623
- return r(O.Root, {
642
+ return r(k.Root, {
624
643
  class: "van-form-radio-group",
644
+ get disabled() {
645
+ return t.disabled;
646
+ },
625
647
  get id() {
626
648
  return t.controlId;
627
649
  },
@@ -637,21 +659,21 @@ function Oe(t) {
637
659
  },
638
660
  children: (e) => {
639
661
  let n = t.field.options.find((t) => t.value === e());
640
- return r(O.Item, {
662
+ return r(k.Item, {
641
663
  class: "van-form-radio-item",
642
664
  get value() {
643
665
  return e();
644
666
  },
645
667
  get children() {
646
668
  return [
647
- r(O.ItemControl, { class: "van-form-radio-control" }),
648
- r(O.ItemText, {
669
+ r(k.ItemControl, { class: "van-form-radio-control" }),
670
+ r(k.ItemText, {
649
671
  class: "van-form-radio-text",
650
672
  get children() {
651
673
  return n?.label ?? e();
652
674
  }
653
675
  }),
654
- r(O.ItemHiddenInput, {})
676
+ r(k.ItemHiddenInput, {})
655
677
  ];
656
678
  }
657
679
  });
@@ -661,20 +683,29 @@ function Oe(t) {
661
683
  });
662
684
  }
663
685
  //#endregion
686
+ //#region src/form/components/select-options.ts
687
+ function Ae(e) {
688
+ return j({ items: e });
689
+ }
690
+ function je(e, t) {
691
+ let n = e.find((e) => e.value === t);
692
+ return n ? n.visitedLabel ?? n.label : void 0;
693
+ }
694
+ //#endregion
664
695
  //#region src/form/components/FormSelect.tsx
665
- var ke = /*#__PURE__*/ u("<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\">"), Ae = /*#__PURE__*/ u("<svg fill=none height=16 stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 viewBox=\"0 0 24 24\"width=16 xmlns=http://www.w3.org/2000/svg><path d=\"m7 15 5 5 5-5\"></path><path d=\"m7 9 5-5 5 5\">"), je = /*#__PURE__*/ u("<div class=van-form-select-empty>暂无数据");
666
- function Me() {
667
- return ke();
696
+ var Me = /*#__PURE__*/ u("<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__*/ u("<span class=van-form-select-value>"), Pe = /*#__PURE__*/ u("<svg fill=none height=16 stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 viewBox=\"0 0 24 24\"width=16 xmlns=http://www.w3.org/2000/svg><path d=\"m7 15 5 5 5-5\"></path><path d=\"m7 9 5-5 5 5\">"), Fe = /*#__PURE__*/ u("<div class=van-form-select-empty>暂无数据");
697
+ function Ie() {
698
+ return Me();
668
699
  }
669
- function Ne(n) {
670
- let i = h(() => A({ items: n.field.options.map((e) => ({
671
- label: e.label,
672
- value: e.value
673
- })) }));
674
- return r(k.Root, {
700
+ function Le(n) {
701
+ let i = h(() => Ae(n.field.options)), a = h(() => je(n.field.options, n.value));
702
+ return r(A.Root, {
675
703
  get collection() {
676
704
  return i();
677
705
  },
706
+ get disabled() {
707
+ return n.disabled;
708
+ },
678
709
  get id() {
679
710
  return n.controlId;
680
711
  },
@@ -685,41 +716,37 @@ function Ne(n) {
685
716
  },
686
717
  get children() {
687
718
  return [
688
- r(k.Control, {
719
+ r(A.Control, {
689
720
  class: "van-form-select-control",
690
721
  get children() {
691
722
  return [
692
- r(k.Trigger, {
723
+ r(A.Trigger, {
693
724
  class: "van-form-select-trigger",
694
725
  get children() {
695
- return r(k.ValueText, {
696
- class: "van-form-select-value",
697
- get placeholder() {
698
- return n.field.placeholder ?? "请选择";
699
- }
700
- });
726
+ var e = Ne();
727
+ return o(e, () => a() ?? n.field.placeholder ?? "请选择"), e;
701
728
  }
702
729
  }),
703
- s(() => s(() => n.field.clearable === !0)() && r(k.ClearTrigger, {
730
+ s(() => s(() => n.field.clearable === !0 && !n.disabled)() && r(A.ClearTrigger, {
704
731
  class: "van-form-select-clear",
705
732
  get children() {
706
- return r(Me, {});
733
+ return r(Ie, {});
707
734
  }
708
735
  })),
709
- r(k.Indicator, {
736
+ r(A.Indicator, {
710
737
  class: "van-form-select-indicator",
711
738
  get children() {
712
- return Ae();
739
+ return Pe();
713
740
  }
714
741
  })
715
742
  ];
716
743
  }
717
744
  }),
718
745
  r(t, { get children() {
719
- return r(k.Positioner, {
746
+ return r(A.Positioner, {
720
747
  class: "van-form-select-positioner",
721
748
  get children() {
722
- return r(k.Content, {
749
+ return r(A.Content, {
723
750
  class: "van-form-select-content",
724
751
  get children() {
725
752
  return r(p, {
@@ -728,13 +755,13 @@ function Ne(n) {
728
755
  get each() {
729
756
  return n.field.options;
730
757
  },
731
- children: (e) => r(k.Item, {
758
+ children: (e) => r(A.Item, {
732
759
  class: "van-form-select-item",
733
760
  get item() {
734
761
  return e();
735
762
  },
736
763
  get children() {
737
- return r(k.ItemText, { get children() {
764
+ return r(A.ItemText, { get children() {
738
765
  return e().label;
739
766
  } });
740
767
  }
@@ -745,7 +772,7 @@ function Ne(n) {
745
772
  return n.field.options.length === 0;
746
773
  },
747
774
  get children() {
748
- return je();
775
+ return Fe();
749
776
  }
750
777
  });
751
778
  }
@@ -753,45 +780,48 @@ function Ne(n) {
753
780
  }
754
781
  });
755
782
  } }),
756
- r(k.HiddenSelect, {})
783
+ r(A.HiddenSelect, {})
757
784
  ];
758
785
  }
759
786
  });
760
787
  }
761
788
  //#endregion
762
789
  //#region src/form/components/FormSwitch.tsx
763
- function Pe(e) {
764
- return r(j.Root, {
790
+ function Re(e) {
791
+ return r(M.Root, {
765
792
  get checked() {
766
793
  return e.value ?? !1;
767
794
  },
768
795
  class: "van-form-switch-root",
796
+ get disabled() {
797
+ return e.disabled;
798
+ },
769
799
  get id() {
770
800
  return e.controlId;
771
801
  },
772
802
  onCheckedChange: (t) => e.onChange(t.checked),
773
803
  get children() {
774
804
  return [
775
- r(j.Control, {
805
+ r(M.Control, {
776
806
  class: "van-form-switch-control",
777
807
  get children() {
778
- return r(j.Thumb, { class: "van-form-switch-thumb" });
808
+ return r(M.Thumb, { class: "van-form-switch-thumb" });
779
809
  }
780
810
  }),
781
- s(() => s(() => !!e.label)() && r(j.Label, {
811
+ s(() => s(() => !!e.label)() && r(M.Label, {
782
812
  class: "van-form-switch-label",
783
813
  get children() {
784
814
  return e.label;
785
815
  }
786
816
  })),
787
- r(j.HiddenInput, {})
817
+ r(M.HiddenInput, {})
788
818
  ];
789
819
  }
790
820
  });
791
821
  }
792
822
  //#endregion
793
823
  //#region src/form/components/FormTextarea.tsx
794
- function Fe(e) {
824
+ function ze(e) {
795
825
  let { local: t, handleInput: n, handleBlur: i } = W({
796
826
  value: () => e.value,
797
827
  debounce: e.field.debounce,
@@ -800,6 +830,9 @@ function Fe(e) {
800
830
  });
801
831
  return r(x.Textarea, {
802
832
  class: "van-form-textarea",
833
+ get disabled() {
834
+ return e.disabled;
835
+ },
803
836
  onBlur: i,
804
837
  onInput: (e) => n(e.currentTarget.value),
805
838
  get placeholder() {
@@ -815,19 +848,25 @@ function Fe(e) {
815
848
  }
816
849
  //#endregion
817
850
  //#region src/form/components/utils.ts
818
- function K(e, t) {
851
+ function G(e, t) {
819
852
  return e.fieldType === t;
820
853
  }
821
- function Ie(e) {
854
+ function Be(e, t) {
855
+ return t === !0 || e.disabled === !0;
856
+ }
857
+ function Ve(e) {
822
858
  if (e != null) return typeof e == "number" ? `${e}px` : e;
823
859
  }
824
- function Le(e) {
860
+ function He(e) {
825
861
  return ({ value: t }) => t == null || t === "" || Array.isArray(t) && t.length === 0 ? `${e ?? ""}必填` : void 0;
826
862
  }
827
863
  //#endregion
828
864
  //#region src/form/components/FieldRenderer.tsx
829
- function Re(e) {
830
- return K(e.field, "input") ? r(De, {
865
+ function Ue(e) {
866
+ return G(e.field, "input") ? r(Oe, {
867
+ get disabled() {
868
+ return e.disabled;
869
+ },
831
870
  get field() {
832
871
  return e.field;
833
872
  },
@@ -838,7 +877,10 @@ function Re(e) {
838
877
  get value() {
839
878
  return e.value;
840
879
  }
841
- }) : K(e.field, "textarea") ? r(Fe, {
880
+ }) : G(e.field, "textarea") ? r(ze, {
881
+ get disabled() {
882
+ return e.disabled;
883
+ },
842
884
  get field() {
843
885
  return e.field;
844
886
  },
@@ -849,10 +891,13 @@ function Re(e) {
849
891
  get value() {
850
892
  return e.value;
851
893
  }
852
- }) : K(e.field, "select") ? r(Ne, {
894
+ }) : G(e.field, "select") ? r(Le, {
853
895
  get controlId() {
854
896
  return e.controlId;
855
897
  },
898
+ get disabled() {
899
+ return e.disabled;
900
+ },
856
901
  get field() {
857
902
  return e.field;
858
903
  },
@@ -863,10 +908,13 @@ function Re(e) {
863
908
  get value() {
864
909
  return e.value;
865
910
  }
866
- }) : K(e.field, "datePicker") ? r(xe, {
911
+ }) : G(e.field, "datePicker") ? r(xe, {
867
912
  get controlId() {
868
913
  return e.controlId;
869
914
  },
915
+ get disabled() {
916
+ return e.disabled;
917
+ },
870
918
  get field() {
871
919
  return e.field;
872
920
  },
@@ -877,10 +925,13 @@ function Re(e) {
877
925
  get value() {
878
926
  return e.value;
879
927
  }
880
- }) : K(e.field, "checkbox") ? r(re, {
928
+ }) : G(e.field, "checkbox") ? r(re, {
881
929
  get controlId() {
882
930
  return e.controlId;
883
931
  },
932
+ get disabled() {
933
+ return e.disabled;
934
+ },
884
935
  get label() {
885
936
  return e.field.label;
886
937
  },
@@ -888,10 +939,13 @@ function Re(e) {
888
939
  get value() {
889
940
  return e.value;
890
941
  }
891
- }) : K(e.field, "switch") ? r(Pe, {
942
+ }) : G(e.field, "switch") ? r(Re, {
892
943
  get controlId() {
893
944
  return e.controlId;
894
945
  },
946
+ get disabled() {
947
+ return e.disabled;
948
+ },
895
949
  get label() {
896
950
  return e.field.label;
897
951
  },
@@ -899,10 +953,13 @@ function Re(e) {
899
953
  get value() {
900
954
  return e.value;
901
955
  }
902
- }) : K(e.field, "radio") ? r(Oe, {
956
+ }) : G(e.field, "radio") ? r(ke, {
903
957
  get controlId() {
904
958
  return e.controlId;
905
959
  },
960
+ get disabled() {
961
+ return e.disabled;
962
+ },
906
963
  get field() {
907
964
  return e.field;
908
965
  },
@@ -910,10 +967,13 @@ function Re(e) {
910
967
  get value() {
911
968
  return e.value;
912
969
  }
913
- }) : K(e.field, "checkbox-group") ? r(ae, {
970
+ }) : G(e.field, "checkbox-group") ? r(ae, {
914
971
  get controlId() {
915
972
  return e.controlId;
916
973
  },
974
+ get disabled() {
975
+ return e.disabled;
976
+ },
917
977
  get field() {
918
978
  return e.field;
919
979
  },
@@ -925,29 +985,29 @@ function Re(e) {
925
985
  }
926
986
  //#endregion
927
987
  //#region src/form/patch.ts
928
- function q(e) {
929
- return J(e) || e === "" ? void 0 : Number(e);
988
+ function K(e) {
989
+ return q(e) || e === "" ? void 0 : Number(e);
930
990
  }
931
- function ze(e) {
932
- return J(e) || e === "" ? 0 : Number(e);
991
+ function We(e) {
992
+ return q(e) || e === "" ? 0 : Number(e);
933
993
  }
934
- function J(e) {
994
+ function q(e) {
935
995
  return e == null;
936
996
  }
937
- function Y(e) {
997
+ function J(e) {
938
998
  return Array.isArray(e) ? [...e].sort() : [];
939
999
  }
940
- function X(e) {
1000
+ function Y(e) {
941
1001
  return e && typeof e == "object" && !Array.isArray(e) ? e : {};
942
1002
  }
943
- function Z(e) {
1003
+ function X(e) {
944
1004
  return typeof e == "object" && !!e && !Array.isArray(e);
945
1005
  }
946
- function Be(e, t, n) {
1006
+ function Ge(e, t, n) {
947
1007
  let r = {};
948
1008
  for (let i of n) {
949
1009
  let { name: n, valueType: a } = i, o = e[n], s = t[n], c;
950
- c = a === "number" ? M(q(o), q(s)) : Array.isArray(o) || Array.isArray(s) ? M(Y(o), Y(s)) : Z(o) || Z(s) ? M(X(o), X(s)) : M(J(o) ? "" : o, J(s) ? "" : s), c || (r[n] = a === "number" ? ze(s) : s);
1010
+ c = a === "number" ? N(K(o), K(s)) : Array.isArray(o) || Array.isArray(s) ? N(J(o), J(s)) : X(o) || X(s) ? N(Y(o), Y(s)) : N(q(o) ? "" : o, q(s) ? "" : s), c || (r[n] = a === "number" ? We(s) : s);
951
1011
  }
952
1012
  return {
953
1013
  patch: r,
@@ -956,12 +1016,12 @@ function Be(e, t, n) {
956
1016
  }
957
1017
  //#endregion
958
1018
  //#region src/form/Form.tsx
959
- var Ve = /*#__PURE__*/ u("<form>"), He = /*#__PURE__*/ u("<div class=van-form-field><div class=van-form-loading-wrap>"), Ue = /*#__PURE__*/ u("<span aria-hidden=true class=van-form-required>*"), We = /*#__PURE__*/ u("<div class=van-form-loading-wrap>");
1019
+ var Ke = /*#__PURE__*/ u("<form><fieldset class=van-form-fieldset>"), Z = /*#__PURE__*/ u("<div class=van-form-field><div class=van-form-loading-wrap>"), qe = /*#__PURE__*/ u("<span aria-hidden=true class=van-form-required>*"), Je = /*#__PURE__*/ u("<div class=van-form-loading-wrap>");
960
1020
  function Q(e) {
961
1021
  return typeof e == "string" ? e : e && typeof e == "object" && "message" in e ? String(e.message) : String(e);
962
1022
  }
963
- function Ge(e) {
964
- let t = e.required === !0 && !e.rule ? Le(e.label) : e.rule;
1023
+ function Ye(e) {
1024
+ let t = e.required === !0 && !e.rule ? He(e.label) : e.rule;
965
1025
  if (t) return {
966
1026
  onChange: typeof t == "function" ? (e) => t({
967
1027
  value: e.value,
@@ -973,18 +1033,18 @@ function Ge(e) {
973
1033
  function $(e, t) {
974
1034
  return typeof e.show == "function" ? e.show(t) : e.show !== !1;
975
1035
  }
976
- function Ke(e, t) {
1036
+ function Xe(e, t) {
977
1037
  let n = new Set(t.filter((t) => !$(t, e)).map((e) => e.name));
978
1038
  return Object.fromEntries(Object.entries(e).filter(([e]) => !n.has(e)));
979
1039
  }
980
- function qe(e, t) {
1040
+ function Ze(e, t) {
981
1041
  return e.filter((e) => $(e, t));
982
1042
  }
983
- function Je(e) {
1043
+ function Qe(e) {
984
1044
  let t = v({ values: {} }, e), i = t.values, u = _(), f = (e) => `${u}-${e}`, g = (e) => {
985
- let n = Ke(e, t.fields);
1045
+ let n = Xe(e, t.fields);
986
1046
  if (t.patch) {
987
- let { patch: r, changed: a } = Be(i, n, qe(t.fields, e));
1047
+ let { patch: r, changed: a } = Ge(i, n, Ze(t.fields, e));
988
1048
  return {
989
1049
  values: n,
990
1050
  patch: r,
@@ -1030,10 +1090,10 @@ function Je(e) {
1030
1090
  return m(y(() => t.values, (e) => {
1031
1091
  for (let [t, n] of Object.entries(e ?? {})) b.state.values[t] !== n && E(t, n);
1032
1092
  }, { defer: !0 })), m(y(T, (e) => t.onValuesChange?.(e), { defer: !0 })), (() => {
1033
- var e = Ve();
1093
+ var e = Ke(), i = e.firstChild;
1034
1094
  return e.addEventListener("submit", (e) => {
1035
- e.preventDefault(), e.stopPropagation(), b.handleSubmit();
1036
- }), o(e, r(d, {
1095
+ e.preventDefault(), e.stopPropagation(), !t.disabled && b.handleSubmit();
1096
+ }), o(i, r(d, {
1037
1097
  get each() {
1038
1098
  return C();
1039
1099
  },
@@ -1042,35 +1102,43 @@ function Je(e) {
1042
1102
  return e.name;
1043
1103
  },
1044
1104
  get validators() {
1045
- return Ge(e);
1105
+ return Ye(e);
1046
1106
  },
1047
1107
  children: (n) => {
1048
- let i = n(), u = h(() => (n().state.meta.errors ?? []).map(Q).filter(Boolean)), m = h(() => n().state.value), g = Ie(e.fieldWidth), _ = g ? { width: g } : void 0;
1108
+ let i = n(), u = h(() => (n().state.meta.errors ?? []).map(Q).filter(Boolean)), m = h(() => n().state.value), g = () => Be(e, t.disabled), _ = Ve(e.fieldWidth), v = _ ? { width: _ } : void 0;
1049
1109
  return e.control ? (() => {
1050
- var n = He(), r = n.firstChild;
1110
+ var n = Z(), r = n.firstChild;
1051
1111
  return o(r, () => e.control({
1052
1112
  value: m,
1053
- onChange: (e) => i.handleChange(e),
1113
+ onChange: (e) => {
1114
+ g() || i.handleChange(e);
1115
+ },
1054
1116
  onBlur: () => i.handleBlur(),
1117
+ disabled: g,
1055
1118
  error: u,
1056
1119
  id: f(e.name)
1057
1120
  })), a((e) => {
1058
- var i = _, a = t.loading ? "" : void 0, o = t.loading || void 0;
1059
- return e.e = l(n, i, e.e), a !== e.t && c(r, "data-loading", e.t = a), o !== e.a && (r.inert = e.a = o), e;
1121
+ var i = g() ? "" : void 0, a = v, o = g() ? "" : void 0, s = t.loading ? "" : void 0, u = t.loading || g() || void 0;
1122
+ return i !== e.e && c(n, "data-disabled", e.e = i), e.t = l(n, a, e.t), o !== e.a && c(r, "data-disabled", e.a = o), s !== e.o && c(r, "data-loading", e.o = s), u !== e.i && (r.inert = e.i = u), e;
1060
1123
  }, {
1061
1124
  e: void 0,
1062
1125
  t: void 0,
1063
- a: void 0
1126
+ a: void 0,
1127
+ o: void 0,
1128
+ i: void 0
1064
1129
  }), n;
1065
1130
  })() : r(x.Root, {
1066
1131
  class: "van-form-field",
1132
+ get disabled() {
1133
+ return g();
1134
+ },
1067
1135
  get id() {
1068
1136
  return f(e.name);
1069
1137
  },
1070
1138
  get invalid() {
1071
1139
  return u().length > 0;
1072
1140
  },
1073
- style: _,
1141
+ style: v,
1074
1142
  get children() {
1075
1143
  return [
1076
1144
  r(p, {
@@ -1086,7 +1154,7 @@ function Je(e) {
1086
1154
  return e.required === !0;
1087
1155
  },
1088
1156
  get children() {
1089
- return Ue();
1157
+ return qe();
1090
1158
  }
1091
1159
  }), s(() => s(() => !!e.renderLabel)() ? e.renderLabel(e.label) : e.label)];
1092
1160
  }
@@ -1094,23 +1162,29 @@ function Je(e) {
1094
1162
  }
1095
1163
  }),
1096
1164
  (() => {
1097
- var n = We();
1098
- return o(n, r(Re, {
1165
+ var n = Je();
1166
+ return o(n, r(Ue, {
1099
1167
  get controlId() {
1100
1168
  return f(e.name);
1101
1169
  },
1170
+ get disabled() {
1171
+ return g();
1172
+ },
1102
1173
  field: e,
1103
1174
  onBlur: () => i.handleBlur(),
1104
- onChange: (e) => i.handleChange(e),
1175
+ onChange: (e) => {
1176
+ g() || i.handleChange(e);
1177
+ },
1105
1178
  get value() {
1106
1179
  return m();
1107
1180
  }
1108
1181
  })), a((e) => {
1109
- var r = t.loading ? "" : void 0, i = t.loading || void 0;
1110
- return r !== e.e && c(n, "data-loading", e.e = r), i !== e.t && (n.inert = e.t = i), e;
1182
+ var r = g() ? "" : void 0, i = t.loading ? "" : void 0, a = t.loading || g() || void 0;
1183
+ return r !== e.e && c(n, "data-disabled", e.e = r), i !== e.t && c(n, "data-loading", e.t = i), a !== e.a && (n.inert = e.a = a), e;
1111
1184
  }, {
1112
1185
  e: void 0,
1113
- t: void 0
1186
+ t: void 0,
1187
+ a: void 0
1114
1188
  }), n;
1115
1189
  })(),
1116
1190
  r(p, {
@@ -1152,15 +1226,16 @@ function Je(e) {
1152
1226
  });
1153
1227
  }
1154
1228
  })
1155
- }), null), o(e, () => t.children?.({ isSubmitting: w() }), null), a((r) => {
1156
- var i = t.loading ?? !1, a = `van-form-form ${t.className ?? ""}`, o = t.size ?? "default";
1157
- return i !== r.e && c(e, "aria-busy", r.e = i), a !== r.t && n(e, r.t = a), o !== r.a && c(e, "data-size", r.a = o), r;
1229
+ }), null), o(i, () => t.children?.({ isSubmitting: w() }), null), a((r) => {
1230
+ var a = t.loading ?? !1, o = `van-form-form ${t.className ?? ""}`, s = t.size ?? "default", l = t.disabled;
1231
+ return a !== r.e && c(e, "aria-busy", r.e = a), o !== r.t && n(e, r.t = o), s !== r.a && c(e, "data-size", r.a = s), l !== r.o && (i.disabled = r.o = l), r;
1158
1232
  }, {
1159
1233
  e: void 0,
1160
1234
  t: void 0,
1161
- a: void 0
1235
+ a: void 0,
1236
+ o: void 0
1162
1237
  }), e;
1163
1238
  })();
1164
1239
  }
1165
1240
  //#endregion
1166
- export { Je as t };
1241
+ export { Qe as t };
@@ -1,2 +1,2 @@
1
- .van-badge{height:var(--van-badge-height,20px);padding:0 var(--van-badge-padding-x,6px);border-radius:var(--radius-lg,2px);font-size:var(--van-badge-font-size,10px);white-space:nowrap;justify-content:center;align-items:center;gap:4px;font-weight:500;line-height:1;display:inline-flex}.van-badge-small{--van-badge-height:24px;--van-badge-padding-x:8px;--van-badge-font-size:11px}.van-badge-large{--van-badge-height:28px;--van-badge-padding-x:10px;--van-badge-font-size:12px}.van-badge-default{background:color-mix(in srgb, var(--muted-foreground,#737373) 12%, transparent);color:var(--muted-foreground,#737373)}.van-badge-primary{background:color-mix(in srgb, var(--primary,#3b82f6) 12%, transparent);color:var(--primary,#3b82f6)}.van-badge-outline{color:var(--card-foreground,#171717);border:1px solid var(--border,#e5e5e5);background:0 0}.van-badge-danger{background:color-mix(in srgb, var(--destructive,#ef4444) 12%, transparent);color:var(--destructive,#ef4444)}.van-badge-success{background:color-mix(in srgb, var(--success,#16a34a) 12%, transparent);color:var(--success,#16a34a)}.van-badge-warning{background:color-mix(in srgb, var(--warning,#d97706) 12%, transparent);color:var(--warning,#d97706)}.van-btn{height:var(--van-btn-height,36px);padding:0 var(--van-btn-padding-x,16px);border-radius:var(--radius-lg,2px);font-size:var(--van-btn-font-size,14px);white-space:nowrap;cursor:pointer;--van-btn-focus-ring:var(--ring,#3b82f666);outline:none;justify-content:center;align-items:center;gap:6px;font-weight:500;transition:background .15s,border-color .15s,opacity .15s,box-shadow .15s;display:inline-flex}.van-btn:focus-visible{box-shadow:0 0 0 2px var(--van-btn-focus-ring)}.van-btn:disabled{opacity:.5;cursor:not-allowed}.van-btn[data-size=small],.van-form-form[data-size=small] .van-btn:not([data-size]){--van-btn-height:32px;--van-btn-padding-x:12px;--van-btn-font-size:13px}.van-btn[data-size=large],.van-form-form[data-size=large] .van-btn:not([data-size]){--van-btn-height:40px;--van-btn-padding-x:20px;--van-btn-font-size:15px}.van-btn-icon-only{width:var(--van-btn-height,36px);min-width:0;padding:0}.van-btn-primary{background:var(--primary,#3b82f6);color:var(--primary-foreground,#fff);--van-btn-focus-ring:color-mix(in srgb, var(--primary,#3b82f6) 40%, transparent);border:none}.van-btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--primary,#3b82f6) 85%, black)}.van-btn-outline{color:var(--card-foreground,#171717);border:1px solid var(--border,#e5e5e5);--van-btn-focus-ring:color-mix(in srgb, var(--primary,#3b82f6) 40%, transparent);background:0 0}.van-btn-outline:hover:not(:disabled){background:var(--muted,#f5f5f5)}.van-btn-ghost{color:var(--muted-foreground,#737373);background:0 0;border:none}.van-btn-ghost:hover:not(:disabled){color:var(--card-foreground,#171717)}.van-btn-ghost:focus-visible{box-shadow:none;color:var(--card-foreground,#171717);text-underline-offset:4px;text-decoration:underline}.van-btn-plain{color:inherit;background:0 0;border:none}.van-btn-danger{background:var(--destructive,#ef4444);color:var(--destructive-foreground,#fff);--van-btn-focus-ring:color-mix(in srgb, var(--destructive,#ef4444) 40%, transparent);border:none}.van-btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--destructive,#ef4444) 85%, black)}.van-btn-success{background:var(--success,#16a34a);color:var(--success-foreground,#fff);--van-btn-focus-ring:color-mix(in srgb, var(--success,#16a34a) 40%, transparent);border:none}.van-btn-success:hover:not(:disabled){background:color-mix(in srgb, var(--success,#16a34a) 85%, black)}.van-btn-warning{background:var(--warning,#d97706);color:var(--warning-foreground,#fff);--van-btn-focus-ring:color-mix(in srgb, var(--warning,#d97706) 40%, transparent);border:none}.van-btn-warning:hover:not(:disabled){background:color-mix(in srgb, var(--warning,#d97706) 85%, black)}@keyframes van-btn-spin{to{transform:rotate(360deg)}}.van-btn-spinner-wrapper{flex-shrink:0;justify-content:flex-end;align-items:center;width:16px;height:16px;display:inline-flex}.van-btn-spinner{border:1.5px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;animation:.6s linear infinite van-btn-spin;display:inline-block}.van-form-form{--van-form-control-padding-y:8px;--van-form-control-padding-x:12px;--van-form-control-font-size:14px;--van-form-control-height:36px;flex-direction:column;gap:16px;width:100%;display:flex}.van-form-form[data-size=small]{--van-form-control-padding-y:6px;--van-form-control-padding-x:10px;--van-form-control-font-size:13px;--van-form-control-height:32px}.van-form-form[data-size=large]{--van-form-control-padding-y:10px;--van-form-control-padding-x:12px;--van-form-control-font-size:15px;--van-form-control-height:40px}.van-form-field{flex-direction:column;gap:6px;display:flex}.van-form-label{color:var(--card-foreground,#171717);font-size:14px;font-weight:500}.van-form-required{color:var(--destructive,#ef4444);margin-inline-end:4px}.van-form-input,.van-form-textarea{width:100%;padding:var(--van-form-control-padding-y,8px) var(--van-form-control-padding-x,12px);font-size:var(--van-form-control-font-size,14px);color:var(--card-foreground,#171717);background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);box-sizing:border-box;height:var(--van-form-control-height,36px);outline:none;transition:border-color .15s}.van-form-input:focus,.van-form-textarea:focus{border-color:var(--primary,#3b82f6)}.van-form-input[data-invalid],.van-form-textarea[data-invalid]{border-color:var(--destructive,#ef4444)}.van-form-textarea{resize:vertical;min-height:80px}.van-form-input-group{box-sizing:border-box;width:100%;height:var(--van-form-control-height,36px);background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);align-items:center;transition:border-color .15s;display:flex;overflow:hidden}.van-form-input-group:focus-within{border-color:var(--primary,#3b82f6)}.van-form-input-group:has(.van-form-input[data-invalid]){border-color:var(--destructive,#ef4444)}.van-form-input-group .van-form-input{min-width:0;height:var(--van-form-control-height,36px);background:0 0;border:none;flex:1}.van-form-input-group:has(.van-form-input-addon-prefix) .van-form-input{padding-left:0}.van-form-input-addon{color:var(--muted-foreground,#9ca3af);flex-shrink:0;align-self:stretch;align-items:center;padding:0 10px;font-size:14px;display:flex}.van-form-input-clear{color:var(--muted-foreground,#9ca3af);cursor:pointer;opacity:0;visibility:hidden;background:0 0;border:none;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;padding:2px 10px 2px 2px;transition:opacity .15s,color .15s;display:flex}.van-form-input-clear-before-suffix{padding-right:2px}.van-form-input-group:hover .van-form-input-clear,.van-form-input-group:focus-within .van-form-input-clear{opacity:1;visibility:visible}.van-form-input-clear:hover{color:var(--primary,#3b82f6)}.van-form-select-control{align-items:center;display:flex;position:relative}.van-form-select-trigger{padding:var(--van-form-control-padding-y,8px) var(--van-form-control-padding-x,12px);font-size:var(--van-form-control-font-size,14px);color:var(--card-foreground,#171717);background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);box-sizing:border-box;height:var(--van-form-control-height,36px);cursor:pointer;flex:1;align-items:center;transition:border-color .15s;display:flex}.van-form-select-trigger:focus{border-color:var(--primary,#3b82f6)}.van-form-select-value{text-align:left;flex:1}.van-form-select-indicator{color:var(--muted-foreground,#9ca3af);pointer-events:none;align-items:center;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.van-form-select-clear{color:var(--muted-foreground,#9ca3af);cursor:pointer;opacity:0;visibility:hidden;background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;padding:2px;transition:opacity .15s,color .15s;display:flex;position:absolute;top:50%;right:36px;transform:translateY(-50%)}.van-form-select-control:hover .van-form-select-clear,.van-form-select-control:focus-within .van-form-select-clear{opacity:1;visibility:visible}.van-form-select-clear:hover{color:var(--primary,#3b82f6)}.van-form-select-clear[hidden]{display:none}.van-form-select-control:has(.van-form-select-clear) .van-form-select-trigger{padding-right:56px}.van-form-select-positioner{--z-index:50!important}.van-form-select-content{background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);min-width:var(--reference-width);padding:4px;box-shadow:0 4px 12px #0000001a}.van-form-select-item{color:var(--card-foreground,#171717);cursor:pointer;border-radius:2px;padding:8px 12px;font-size:14px;transition:background .1s}.van-form-select-item:hover,.van-form-select-item[data-highlighted]{background:var(--muted,#f5f5f5)}.van-form-select-item[data-selected]{color:var(--primary,#3b82f6);font-weight:500}.van-form-select-empty{color:var(--muted-foreground,#9ca3af);text-align:center;-webkit-user-select:none;user-select:none;cursor:default;padding:8px 12px;font-size:14px}.van-form-date-control{align-items:center;display:flex;position:relative}.van-form-date-trigger{padding:var(--van-form-control-padding-y,8px) var(--van-form-control-padding-x,12px);font-size:var(--van-form-control-font-size,14px);color:var(--card-foreground,#171717);background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);box-sizing:border-box;height:var(--van-form-control-height,36px);cursor:pointer;flex:1;align-items:center;gap:8px;padding-right:36px;transition:border-color .15s;display:flex;position:relative}.van-form-date-trigger:focus{border-color:var(--primary,#3b82f6)}.van-form-date-value{text-align:left;flex:1}.van-form-date-icon{color:var(--muted-foreground,#9ca3af);pointer-events:none;align-items:center;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.van-form-date-clear{color:var(--muted-foreground,#9ca3af);cursor:pointer;opacity:0;visibility:hidden;background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;padding:2px;transition:opacity .15s,color .15s;display:flex;position:absolute;top:50%;right:36px;transform:translateY(-50%)}.van-form-date-control:hover .van-form-date-clear,.van-form-date-control:focus-within .van-form-date-clear{opacity:1;visibility:visible}.van-form-date-clear:hover{color:var(--primary,#3b82f6)}.van-form-date-clear[hidden]{display:none}.van-form-date-control:has(.van-form-date-clear) .van-form-date-trigger{padding-right:56px}.van-form-date-positioner{--z-index:50!important}.van-form-date-content{background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);padding:10px;box-shadow:0 4px 12px #0000001a}.van-form-date-view{width:252px}.van-form-date-view-dual{width:auto}.van-form-date-days{gap:10px;display:flex}.van-form-date-days .van-form-date-table{width:224px}.van-form-date-view-control{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.van-form-date-nav-trigger{width:28px;height:28px;color:var(--muted-foreground,#9ca3af);cursor:pointer;background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;transition:background .1s,color .1s;display:flex}.van-form-date-nav-trigger:hover{background:var(--muted,#f5f5f5);color:var(--card-foreground,#171717)}.van-form-date-view-trigger{color:var(--card-foreground,#171717);cursor:pointer;background:0 0;border:none;border-radius:2px;padding:4px 8px;font-size:14px;font-weight:500;transition:background .1s}.van-form-date-view-trigger:hover{background:var(--muted,#f5f5f5)}.van-form-date-table{border-collapse:collapse;table-layout:fixed;width:100%}.van-form-date-table-header{color:var(--muted-foreground,#737373);text-align:center;padding:6px 0;font-size:12px;font-weight:400}.van-form-date-week-header,.van-form-date-week-cell{width:24px;color:var(--muted-foreground,#9ca3af);text-align:center;padding:1px 2px;font-size:11px;font-weight:400}.van-form-date-cell{text-align:center;padding:1px}.van-form-date-cell-trigger{width:100%;height:32px;color:var(--card-foreground,#171717);cursor:pointer;background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;font-size:13px;transition:background .1s,color .1s;display:flex}.van-form-date-cell-trigger:hover{background:var(--muted,#f5f5f5)}.van-form-date-cell-trigger[data-selected]{background:var(--primary,#3b82f6);color:var(--primary-foreground,#fff);font-weight:500}.van-form-date-cell-trigger[data-in-range],.van-form-date-cell-trigger[data-range-start],.van-form-date-cell-trigger[data-range-end]{background:color-mix(in srgb, var(--primary,#3b82f6) 12%, transparent)}.van-form-date-cell-trigger[data-range-start],.van-form-date-cell-trigger[data-range-end]{background:var(--primary,#3b82f6);color:var(--primary-foreground,#fff);font-weight:500}.van-form-date-cell-trigger[data-outside-range]{color:var(--muted-foreground,#9ca3af)}.van-form-date-cell-trigger[data-today]:not([data-selected]){box-shadow:inset 0 0 0 1px var(--primary,#3b82f6)}.van-form-date-cell-trigger[data-unavailable]{opacity:.4}.van-form-date-cell-trigger[data-disabled]{opacity:.4;cursor:not-allowed}.van-form-date-week-mode .van-form-date-table-body .van-form-date-table-row:hover .van-form-date-cell-trigger:not([data-selected]):not([data-in-range]):not([data-range-start]):not([data-range-end]):not([data-disabled]){background:var(--muted,#f5f5f5)}.van-form-date-week-mode .van-form-date-table-body .van-form-date-table-row:hover .van-form-date-week-cell{color:var(--primary,#3b82f6)}.van-form-date-time{width:100%;padding:var(--van-form-control-padding-y,8px) var(--van-form-control-padding-x,12px);font-size:var(--van-form-control-font-size,14px);color:var(--card-foreground,#171717);background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);outline:none;margin-top:8px;font-family:inherit;transition:border-color .15s}.van-form-date-time:focus{border-color:var(--primary,#3b82f6)}.van-form-helper{color:var(--muted-foreground,#737373);font-size:12px}.van-form-error{color:var(--destructive,#ef4444);font-size:12px}.van-form-field-skeleton,.van-form-loading-wrap[data-loading]:after{border-radius:var(--radius-lg,2px);background-color:color-mix(in srgb, var(--muted,#f5f5f5) 90%, var(--muted-foreground,#9ca3af));background-image:linear-gradient(90deg,#0000 0%,#ffffff80 50%,#0000 100%);background-repeat:no-repeat;background-size:200% 100%;animation:1.4s ease-in-out infinite van-form-skeleton-shimmer}.van-form-field-skeleton{width:100%;height:var(--van-form-control-height,36px)}.van-form-loading-wrap{display:grid;position:relative}.van-form-loading-wrap[data-loading]:after{content:"";z-index:1;position:absolute;inset:0}@keyframes van-form-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.van-form-checkbox-control{border:1px solid var(--border,#d1d5db);background:var(--card,#fff);cursor:pointer;border-radius:1px;justify-content:center;align-items:center;width:18px;height:18px;transition:all .15s;display:flex}.van-form-checkbox-control:hover{border-color:var(--primary,#6366f1)}.van-form-checkbox-control[data-state=checked]{background:var(--primary,#6366f1);border-color:var(--primary,#6366f1)}.van-form-checkbox-indicator{color:var(--primary-foreground,#fff);justify-content:center;align-items:center;display:flex}.van-form-checkbox-root{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.van-form-checkbox-label{color:var(--card-foreground,#171717);font-size:14px}.van-form-checkbox-group{flex-direction:column;gap:8px;display:flex}.van-form-check-icon{width:14px;height:14px}.van-form-switch-control{background:var(--border,#d1d5db);cursor:pointer;border-radius:11px;align-items:center;width:40px;height:22px;padding:2px;transition:background .15s;display:flex}.van-form-switch-control[data-state=checked]{background:var(--primary,#6366f1)}.van-form-switch-thumb{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s}.van-form-switch-control[data-state=checked] .van-form-switch-thumb{transform:translate(18px)}.van-form-switch-root{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.van-form-switch-label{color:var(--card-foreground,#171717);font-size:14px}.van-form-radio-group{flex-flow:wrap;gap:8px 16px;display:flex}.van-form-radio-item{color:var(--card-foreground,#171717);cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.van-form-radio-control{border:1px solid var(--border,#d1d5db);background:var(--card,#fff);border-radius:0;justify-content:center;align-items:center;width:18px;height:18px;transition:all .15s;display:flex}.van-form-radio-control[data-state=checked]{border-color:var(--primary,#6366f1)}.van-form-radio-control[data-state=checked]:after{content:"";background:var(--primary,#6366f1);border-radius:0;width:12px;height:12px}.van-form-radio-control:hover{border-color:var(--primary,#6366f1)}.van-form-radio-text{flex:1}@media (prefers-color-scheme:dark){.van-form-input,.van-form-textarea,.van-form-select-trigger,.van-form-date-trigger,.van-form-date-time{background:var(--card,#1e1e2e);color:var(--card-foreground,#cdd6f4);border-color:var(--border,#313244)}.van-form-input-group{background:var(--card,#1e1e2e);border-color:var(--border,#313244)}.van-form-input-addon{color:var(--muted-foreground,#a0a0b0)}.van-form-select-content{background:var(--card,#1e1e2e);border-color:var(--border,#313244)}.van-form-select-item:hover,.van-form-select-item[data-highlighted]{background:var(--muted,#27273e)}.van-form-date-content{background:var(--card,#1e1e2e);border-color:var(--border,#313244)}.van-form-date-nav-trigger:hover,.van-form-date-view-trigger:hover,.van-form-date-cell-trigger:hover,.van-form-date-week-mode .van-form-date-table-body .van-form-date-table-row:hover .van-form-date-cell-trigger:not([data-selected]):not([data-in-range]):not([data-range-start]):not([data-range-end]):not([data-disabled]){background:var(--muted,#27273e)}.van-form-field-skeleton,.van-form-loading-wrap[data-loading]:after{background-color:var(--muted,#27273e);background-image:linear-gradient(90deg,#0000 0%,#ffffff1f 50%,#0000 100%)}}.van-table-wrapper{width:100%;color:var(--card-foreground,#1f2937);flex-direction:column;gap:12px;font-size:14px;display:flex}.van-table-container{border:1px solid var(--border,#e5e7eb);border-radius:var(--radius-xl,2px);background:var(--card,#fff);position:relative;overflow:auto}.van-table-loading-mask{z-index:10;background:color-mix(in srgb, var(--card,#fff) 72%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.van-table-spinner{border:3px solid var(--border,#e5e7eb);border-top-color:var(--primary,#6366f1);border-radius:50%;width:28px;height:28px;animation:.6s linear infinite van-table-spin}@keyframes van-table-spin{to{transform:rotate(360deg)}}.van-table{table-layout:fixed;border-collapse:collapse;width:100%}.van-table-th{z-index:1;text-align:left;color:var(--muted-foreground,#9ca3af);border-bottom:1px solid var(--border,#e5e7eb);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:10px 14px;font-size:14px;font-weight:400;position:sticky;top:0}.van-table-th-sortable{cursor:pointer}.van-table-th-sortable:hover{background:var(--secondary,#f3f4f6)}.van-table-th-content{align-items:center;gap:4px;display:inline-flex}.van-table-sort-icon{flex-shrink:0;width:8px;height:14px}.van-table-sort-arrow{color:var(--muted-foreground,#9ca3af);opacity:.35}.van-table-sort-arrow.van-table-sort-active{opacity:1;color:var(--primary,#6366f1)}.van-table-tr{border-bottom:1px solid var(--border,#f3f4f6);transition:background .12s}.van-table-tr:last-child{border-bottom:none}.van-table-tr:hover{background:var(--muted,#f9fafb)}.van-table-tr-selected{background:color-mix(in srgb, var(--primary,#6366f1) 3%, transparent)!important}.van-table-td{vertical-align:middle;padding:10px 14px}.van-table-empty{text-align:center;color:var(--muted-foreground,#9ca3af);padding:56px 16px;font-size:14px}.van-table-checkbox-control{border:1px solid var(--input,#d1d5db);background:var(--card,#fff);cursor:pointer;border-radius:1px;justify-content:center;align-items:center;width:18px;height:18px;transition:all .15s;display:flex}.van-table-checkbox-control:hover{border-color:var(--primary,#6366f1)}.van-table-checkbox-control[data-state=checked],.van-table-checkbox-control[data-state=indeterminate]{background:var(--primary,#6366f1);border-color:var(--primary,#6366f1)}.van-table-checkbox-indicator{color:var(--primary-foreground,#fff);justify-content:center;align-items:center;display:flex}.van-table-check-icon{width:14px;height:14px}@media (prefers-color-scheme:dark){.van-table-wrapper{--card:#1e1e2e;--card-foreground:#cdd6f4;--foreground:#cdd6f4;--muted:#181825;--muted-foreground:#9399b2;--border:#313244;--input:#45475a;--secondary:#27273e;--primary:#89b4fa;--primary-foreground:#1e1e2e}}.van-table-wrapper[data-density=compact] .van-table-th,.van-table-wrapper[data-density=compact] .van-table-td{padding:6px 12px}.van-table-th-select,.van-table-td-select{width:36px;padding-left:14px;padding-right:8px}.van-data-table{width:100%;color:var(--card-foreground,#1f2937);border:1px solid var(--border,#e5e7eb);background-color:#fff;border-radius:4px;flex-direction:column;font-size:14px;display:flex}.van-data-table-search{width:100%;padding:14px}.van-data-table-search .van-form-form{flex-flow:wrap;align-items:flex-end;gap:8px}.van-data-table-search .van-form-field{width:192px}.van-data-table-search .van-form-input,.van-data-table-search .van-form-select-trigger,.van-data-table-search .van-form-date-trigger{box-sizing:border-box;height:36px}.van-data-table-search-actions{gap:6px;display:flex}.van-data-table-toolbar{justify-content:flex-start;align-items:center;gap:8px;padding:8px 14px;display:flex}.van-data-table-actions{align-items:center;gap:6px;display:flex}.van-data-table-actions .van-btn{height:22px;padding:0 6px;font-size:12px}.van-data-table-badges{flex-wrap:wrap;gap:6px;display:flex}.van-data-table-ellipsis{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:100%;display:inline-block;overflow:hidden}.van-data-table-tooltip{z-index:1000;border-radius:var(--radius-lg,2px);max-width:320px;color:var(--card-foreground,#171717);background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);pointer-events:none;white-space:normal;word-break:break-all;padding:6px 10px;font-size:12px;line-height:1.5;position:fixed;box-shadow:0 4px 12px #0000001a}.van-data-table-search+.van-data-table-toolbar{border-top:1px solid var(--border,#e5e7eb)}.van-data-table .van-table-container{border-left:none;border-right:none}.van-data-table-pagination{color:var(--muted-foreground,#9ca3af);justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.van-data-table-pagination-buttons{align-items:center;gap:6px;display:flex}.van-data-table-pagination-btn{min-width:32px;height:32px;color:var(--card-foreground,#1f2937);background:var(--card,#fff);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0 6px;font-size:14px;transition:all .15s;display:inline-flex}.van-data-table-pagination-btn:hover:not(:disabled):not([data-selected]){background:var(--muted,#6366f1)}.van-data-table-pagination-btn[data-selected]{background:var(--primary,#6366f1);border-color:var(--primary,#6366f1);color:var(--primary-foreground,#fff)}.van-data-table-pagination-btn:disabled{opacity:.45;cursor:not-allowed}.van-data-table-pagination-ellipsis{min-width:24px;height:32px;color:var(--muted-foreground,#9ca3af);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:inline-flex}.van-data-table-pagination-icon{width:14px;height:14px}@media (prefers-color-scheme:dark){.van-data-table{--card:#1e1e2e;--card-foreground:#cdd6f4;--foreground:#cdd6f4;--muted:#181825;--muted-foreground:#9399b2;--border:#313244;--input:#45475a;--secondary:#27273e;--primary:#89b4fa;--primary-foreground:#1e1e2e}}@keyframes van-drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes van-drawer-fade-out{0%{opacity:1}to{opacity:0}}@keyframes van-drawer-slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes van-drawer-slide-out-right{to{transform:translate(100%)}}@keyframes van-drawer-slide-in-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes van-drawer-slide-out-left{to{transform:translate(-100%)}}@keyframes van-drawer-slide-in-top{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes van-drawer-slide-out-top{to{transform:translateY(-100%)}}@keyframes van-drawer-slide-in-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes van-drawer-slide-out-bottom{to{transform:translateY(100%)}}.van-drawer-backdrop{z-index:var(--z,1000);background:#0006;position:fixed;inset:0}.van-drawer-backdrop[data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-drawer-fade-in}.van-drawer-backdrop[data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) van-drawer-fade-out}.van-drawer-positioner{z-index:calc(var(--z-index-base,1000) + var(--layer-index,0));position:fixed;inset:0}.van-drawer-content{position:fixed}.van-drawer-content[data-placement=right],.van-drawer-content:not([data-placement]){width:var(--van-drawer-size,400px);max-width:100vw;top:0;bottom:0;right:0}.van-drawer-content[data-placement=right][data-state=open],.van-drawer-content:not([data-placement])[data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-drawer-slide-in-right}.van-drawer-content[data-placement=right][data-state=closed],.van-drawer-content:not([data-placement])[data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) forwards van-drawer-slide-out-right}.van-drawer-content[data-placement=left]{width:var(--van-drawer-size,400px);max-width:100vw;top:0;bottom:0;left:0}.van-drawer-content[data-placement=left][data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-drawer-slide-in-left}.van-drawer-content[data-placement=left][data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) forwards van-drawer-slide-out-left}.van-drawer-content[data-placement=top]{height:var(--van-drawer-size,400px);max-height:100vh;top:0;left:0;right:0}.van-drawer-content[data-placement=top][data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-drawer-slide-in-top}.van-drawer-content[data-placement=top][data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) forwards van-drawer-slide-out-top}.van-drawer-content[data-placement=bottom]{height:var(--van-drawer-size,400px);max-height:100vh;bottom:0;left:0;right:0}.van-drawer-content[data-placement=bottom][data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-drawer-slide-in-bottom}.van-drawer-content[data-placement=bottom][data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) forwards van-drawer-slide-out-bottom}.van-drawer-content-inner{background:var(--card,#fff);border-radius:2px;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden;box-shadow:0 0 0 1px #0000000f,0 4px 16px #0000001a}.van-drawer-header{flex-shrink:0;justify-content:space-between;align-items:flex-start;padding:20px 20px 12px;display:flex}.van-drawer-title{color:var(--card-foreground,#171717);margin:0;font-size:16px;font-weight:600;line-height:1.4}.van-drawer-close{border-radius:var(--radius-lg,2px);cursor:pointer;width:24px;height:24px;color:var(--muted-foreground,#737373);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin:-2px -2px 0 8px;font-size:14px;transition:background .15s,color .15s;display:inline-flex}.van-drawer-close:hover{background:var(--muted,#f5f5f5);color:var(--card-foreground,#171717)}.van-drawer-desc{color:var(--muted-foreground,#737373);padding:0 20px 14px;font-size:14px;line-height:1.5}.van-drawer-body{flex:1;min-height:0;padding:2px 20px 16px;overflow-y:auto}.van-drawer-footer{border-top:1px solid var(--border,#e5e5e5);flex-shrink:0;justify-content:flex-end;gap:10px;padding:12px 20px;display:flex}.van-drawer-footer .van-btn{min-width:84px}.van-drawer-grabber{cursor:grab;flex-shrink:0;justify-content:center;padding:8px 0 0;display:flex}.van-drawer-grabber:active{cursor:grabbing}.van-drawer-grabber-indicator{background:#d4d4d4;border-radius:2px;width:36px;height:4px}@keyframes van-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes van-modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes van-modal-scale-in{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:none}}@keyframes van-modal-scale-out{0%{opacity:1;transform:none}to{opacity:0;transform:scale(.95)translateY(-4px)}}.van-modal-backdrop{background:#0006;position:fixed;inset:0}.van-modal-backdrop[data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-modal-fade-in}.van-modal-backdrop[data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) van-modal-fade-out}.van-modal-positioner{justify-content:center;align-items:start;padding:15vh 1rem 1rem;display:flex;position:fixed;inset:0}.van-modal-positioner[data-center]{align-items:center;padding-top:1rem}.van-modal-content{background:var(--card,#fff);border-radius:var(--radius-lg,2px);width:var(--van-modal-width,min(480px, 92vw));min-width:min(420px,92vw);max-height:var(--van-modal-max-height,90vh);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 0 0 1px #0000000f,0 4px 16px #0000001a}.van-modal-content[data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-modal-scale-in}.van-modal-content[data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) van-modal-scale-out}.van-modal-header{background:var(--muted,#f5f5f5);border-bottom:1px solid var(--border,#e5e5e5);justify-content:space-between;align-items:center;gap:12px;height:56px;padding-left:16px;display:flex}.van-modal-title{color:var(--card-foreground,#171717);margin:0;font-size:16px;line-height:1.4}.van-modal-header-actions{flex-shrink:0;align-items:center;gap:6px;padding-right:12px;display:flex}.van-modal-header .van-modal-header-btn{border-radius:var(--radius-lg,2px);flex-shrink:0;width:36px;height:36px;padding:0}.van-modal-header .van-modal-header-btn-cancel{background:var(--border,#e5e5e5);color:var(--muted-foreground,#737373)}.van-modal-header .van-modal-header-btn-cancel:hover:not(:disabled){background:color-mix(in srgb, var(--border,#e5e5e5) 78%, black);color:var(--card-foreground,#171717)}.van-modal-header .van-modal-header-btn-confirm{background:var(--primary,#3b82f6);color:var(--primary-foreground,#fff)}.van-modal-header .van-modal-header-btn-confirm:hover:not(:disabled){background:color-mix(in srgb, var(--primary,#3b82f6) 85%, black);color:var(--primary-foreground,#fff)}.van-modal-header .van-modal-header-btn .van-btn-spinner-wrapper{width:18px;height:18px}.van-modal-header .van-modal-header-btn .van-btn-spinner{border-width:2px;width:18px;height:18px}.van-modal-desc{color:var(--muted-foreground,#737373);padding:20px;font-size:16px;line-height:1.5}.van-modal-body{flex:1;padding:0;overflow-y:auto}[data-scope=dialog][data-part=content][data-has-nested]{transform:scale(calc(1 - var(--nested-layer-count,0) * .03))}[data-scope=toast][data-part=root]{transform:translate3d(var(--x,0), var(--y,100%), 0);z-index:var(--z-index,0);opacity:var(--opacity,1);background:var(--card,#fff);border-radius:var(--radius-lg,2px);min-width:320px;max-width:420px;transition:transform .25s,opacity .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 12px #0000001f}.van-toast-bar{flex-shrink:0;width:4px}[data-type=success] .van-toast-bar{background:var(--success,#22c55e)}[data-type=error] .van-toast-bar{background:var(--destructive,#ef4444)}[data-type=info] .van-toast-bar{background:var(--primary,#3b82f6)}[data-type=warning] .van-toast-bar{background:var(--warning,#f59e0b)}[data-type=loading] .van-toast-bar{background:var(--muted-foreground,#f5f5f5)}.van-toast-body{flex:1;min-width:0;padding:12px 40px 12px 16px}.van-toast-title{color:var(--card-foreground,#171717);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;line-height:1.4;overflow:hidden}.van-toast-desc{color:var(--muted-foreground,#737373);margin-top:2px;font-size:14px;line-height:1.5}.van-toast-close{cursor:pointer;width:20px;height:20px;color:var(--muted-foreground,#9ca3af);background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;padding:0;transition:color .15s,background .15s;display:inline-flex;position:absolute;top:12px;right:12px}.van-toast-close:hover{color:var(--card-foreground,#4b5563);background:var(--muted,#f3f4f6)}.van-toast-close-x{width:12px;height:12px;display:block;position:relative}.van-toast-close-x:before,.van-toast-close-x:after{content:"";background:currentColor;border-radius:1px;width:12px;height:1.5px;position:absolute;top:50%;left:50%}.van-toast-close-x:before{transform:translate(-50%,-50%)rotate(45deg)}.van-toast-close-x:after{transform:translate(-50%,-50%)rotate(-45deg)}
1
+ .van-badge{height:var(--van-badge-height,20px);padding:0 var(--van-badge-padding-x,6px);border-radius:var(--radius-lg,2px);font-size:var(--van-badge-font-size,10px);white-space:nowrap;justify-content:center;align-items:center;gap:4px;font-weight:500;line-height:1;display:inline-flex}.van-badge-small{--van-badge-height:24px;--van-badge-padding-x:8px;--van-badge-font-size:11px}.van-badge-large{--van-badge-height:28px;--van-badge-padding-x:10px;--van-badge-font-size:12px}.van-badge-default{background:color-mix(in srgb, var(--muted-foreground,#737373) 12%, transparent);color:var(--muted-foreground,#737373)}.van-badge-primary{background:color-mix(in srgb, var(--primary,#3b82f6) 12%, transparent);color:var(--primary,#3b82f6)}.van-badge-outline{color:var(--card-foreground,#171717);border:1px solid var(--border,#e5e5e5);background:0 0}.van-badge-danger{background:color-mix(in srgb, var(--destructive,#ef4444) 12%, transparent);color:var(--destructive,#ef4444)}.van-badge-success{background:color-mix(in srgb, var(--success,#16a34a) 12%, transparent);color:var(--success,#16a34a)}.van-badge-warning{background:color-mix(in srgb, var(--warning,#d97706) 12%, transparent);color:var(--warning,#d97706)}.van-btn{height:var(--van-btn-height,36px);padding:0 var(--van-btn-padding-x,16px);border-radius:var(--radius-lg,2px);font-size:var(--van-btn-font-size,14px);white-space:nowrap;cursor:pointer;--van-btn-focus-ring:var(--ring,#3b82f666);outline:none;justify-content:center;align-items:center;gap:6px;font-weight:500;transition:background .15s,border-color .15s,opacity .15s,box-shadow .15s;display:inline-flex}.van-btn:focus-visible{box-shadow:0 0 0 2px var(--van-btn-focus-ring)}.van-btn:disabled{opacity:.5;cursor:not-allowed}.van-btn[data-size=small],.van-form-form[data-size=small] .van-btn:not([data-size]){--van-btn-height:32px;--van-btn-padding-x:12px;--van-btn-font-size:13px}.van-btn[data-size=large],.van-form-form[data-size=large] .van-btn:not([data-size]){--van-btn-height:40px;--van-btn-padding-x:20px;--van-btn-font-size:15px}.van-btn-icon-only{width:var(--van-btn-height,36px);min-width:0;padding:0}.van-btn-primary{background:var(--primary,#3b82f6);color:var(--primary-foreground,#fff);--van-btn-focus-ring:color-mix(in srgb, var(--primary,#3b82f6) 40%, transparent);border:none}.van-btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--primary,#3b82f6) 85%, black)}.van-btn-outline{color:var(--card-foreground,#171717);border:1px solid var(--border,#e5e5e5);--van-btn-focus-ring:color-mix(in srgb, var(--primary,#3b82f6) 40%, transparent);background:0 0}.van-btn-outline:hover:not(:disabled){background:var(--muted,#f5f5f5)}.van-btn-ghost{color:var(--muted-foreground,#737373);background:0 0;border:none}.van-btn-ghost:hover:not(:disabled){color:var(--card-foreground,#171717)}.van-btn-ghost:focus-visible{box-shadow:none;color:var(--card-foreground,#171717);text-underline-offset:4px;text-decoration:underline}.van-btn-plain{color:inherit;background:0 0;border:none}.van-btn-danger{background:var(--destructive,#ef4444);color:var(--destructive-foreground,#fff);--van-btn-focus-ring:color-mix(in srgb, var(--destructive,#ef4444) 40%, transparent);border:none}.van-btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--destructive,#ef4444) 85%, black)}.van-btn-success{background:var(--success,#16a34a);color:var(--success-foreground,#fff);--van-btn-focus-ring:color-mix(in srgb, var(--success,#16a34a) 40%, transparent);border:none}.van-btn-success:hover:not(:disabled){background:color-mix(in srgb, var(--success,#16a34a) 85%, black)}.van-btn-warning{background:var(--warning,#d97706);color:var(--warning-foreground,#fff);--van-btn-focus-ring:color-mix(in srgb, var(--warning,#d97706) 40%, transparent);border:none}.van-btn-warning:hover:not(:disabled){background:color-mix(in srgb, var(--warning,#d97706) 85%, black)}@keyframes van-btn-spin{to{transform:rotate(360deg)}}.van-btn-spinner-wrapper{flex-shrink:0;justify-content:flex-end;align-items:center;width:16px;height:16px;display:inline-flex}.van-btn-spinner{border:1.5px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;animation:.6s linear infinite van-btn-spin;display:inline-block}.van-form-form{--van-form-control-padding-y:8px;--van-form-control-padding-x:12px;--van-form-control-font-size:14px;--van-form-control-height:36px;flex-direction:column;gap:16px;width:100%;display:flex}.van-form-fieldset{gap:inherit;border:0;flex-direction:column;width:100%;min-width:0;margin:0;padding:0;display:flex}.van-form-form[data-size=small]{--van-form-control-padding-y:6px;--van-form-control-padding-x:10px;--van-form-control-font-size:13px;--van-form-control-height:32px}.van-form-form[data-size=large]{--van-form-control-padding-y:10px;--van-form-control-padding-x:12px;--van-form-control-font-size:15px;--van-form-control-height:40px}.van-form-field{flex-direction:column;gap:6px;display:flex}.van-form-label{color:var(--card-foreground,#171717);font-size:14px;font-weight:500}.van-form-required{color:var(--destructive,#ef4444);margin-inline-end:4px}.van-form-input,.van-form-textarea{width:100%;padding:var(--van-form-control-padding-y,8px) var(--van-form-control-padding-x,12px);font-size:var(--van-form-control-font-size,14px);color:var(--card-foreground,#171717);background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);box-sizing:border-box;height:var(--van-form-control-height,36px);outline:none;transition:border-color .15s}.van-form-input:focus,.van-form-textarea:focus{border-color:var(--primary,#3b82f6)}.van-form-input[data-invalid],.van-form-textarea[data-invalid]{border-color:var(--destructive,#ef4444)}.van-form-textarea{resize:vertical;min-height:80px}.van-form-input-group{box-sizing:border-box;width:100%;height:var(--van-form-control-height,36px);background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);align-items:center;transition:border-color .15s;display:flex;overflow:hidden}.van-form-input-group:focus-within{border-color:var(--primary,#3b82f6)}.van-form-input-group:has(.van-form-input[data-invalid]){border-color:var(--destructive,#ef4444)}.van-form-input-group .van-form-input{min-width:0;height:var(--van-form-control-height,36px);background:0 0;border:none;flex:1}.van-form-input-group:has(.van-form-input-addon-prefix) .van-form-input{padding-left:0}.van-form-input-addon{color:var(--muted-foreground,#9ca3af);flex-shrink:0;align-self:stretch;align-items:center;padding:0 10px;font-size:14px;display:flex}.van-form-input-clear{color:var(--muted-foreground,#9ca3af);cursor:pointer;opacity:0;visibility:hidden;background:0 0;border:none;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;padding:2px 10px 2px 2px;transition:opacity .15s,color .15s;display:flex}.van-form-input-clear-before-suffix{padding-right:2px}.van-form-input-group:hover .van-form-input-clear,.van-form-input-group:focus-within .van-form-input-clear{opacity:1;visibility:visible}.van-form-input-clear:hover{color:var(--primary,#3b82f6)}.van-form-select-control{align-items:center;display:flex;position:relative}.van-form-select-trigger{padding:var(--van-form-control-padding-y,8px) var(--van-form-control-padding-x,12px);font-size:var(--van-form-control-font-size,14px);color:var(--card-foreground,#171717);background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);box-sizing:border-box;height:var(--van-form-control-height,36px);cursor:pointer;flex:1;align-items:center;transition:border-color .15s;display:flex}.van-form-select-trigger:focus{border-color:var(--primary,#3b82f6)}.van-form-select-value{text-align:left;flex:1}.van-form-select-indicator{color:var(--muted-foreground,#9ca3af);pointer-events:none;align-items:center;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.van-form-select-clear{color:var(--muted-foreground,#9ca3af);cursor:pointer;opacity:0;visibility:hidden;background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;padding:2px;transition:opacity .15s,color .15s;display:flex;position:absolute;top:50%;right:36px;transform:translateY(-50%)}.van-form-select-control:hover .van-form-select-clear,.van-form-select-control:focus-within .van-form-select-clear{opacity:1;visibility:visible}.van-form-select-clear:hover{color:var(--primary,#3b82f6)}.van-form-select-clear[hidden]{display:none}.van-form-select-control:has(.van-form-select-clear) .van-form-select-trigger{padding-right:56px}.van-form-select-positioner{--z-index:50!important}.van-form-select-content{background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);min-width:var(--reference-width);padding:4px;box-shadow:0 4px 12px #0000001a}.van-form-select-item{color:var(--card-foreground,#171717);cursor:pointer;border-radius:2px;padding:8px 12px;font-size:14px;transition:background .1s}.van-form-select-item:hover,.van-form-select-item[data-highlighted]{background:var(--muted,#f5f5f5)}.van-form-select-item[data-selected]{color:var(--primary,#3b82f6);font-weight:500}.van-form-select-item[data-disabled]{color:var(--muted-foreground,#9ca3af);cursor:not-allowed;opacity:.55}.van-form-select-item[data-disabled]:hover,.van-form-select-item[data-disabled][data-highlighted]{background:0 0}.van-form-select-empty{color:var(--muted-foreground,#9ca3af);text-align:center;-webkit-user-select:none;user-select:none;cursor:default;padding:8px 12px;font-size:14px}.van-form-date-control{align-items:center;display:flex;position:relative}.van-form-date-trigger{padding:var(--van-form-control-padding-y,8px) var(--van-form-control-padding-x,12px);font-size:var(--van-form-control-font-size,14px);color:var(--card-foreground,#171717);background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);box-sizing:border-box;height:var(--van-form-control-height,36px);cursor:pointer;flex:1;align-items:center;gap:8px;padding-right:36px;transition:border-color .15s;display:flex;position:relative}.van-form-date-trigger:focus{border-color:var(--primary,#3b82f6)}.van-form-date-value{text-align:left;flex:1}.van-form-date-icon{color:var(--muted-foreground,#9ca3af);pointer-events:none;align-items:center;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.van-form-date-clear{color:var(--muted-foreground,#9ca3af);cursor:pointer;opacity:0;visibility:hidden;background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;padding:2px;transition:opacity .15s,color .15s;display:flex;position:absolute;top:50%;right:36px;transform:translateY(-50%)}.van-form-date-control:hover .van-form-date-clear,.van-form-date-control:focus-within .van-form-date-clear{opacity:1;visibility:visible}.van-form-date-clear:hover{color:var(--primary,#3b82f6)}.van-form-date-clear[hidden]{display:none}.van-form-date-control:has(.van-form-date-clear) .van-form-date-trigger{padding-right:56px}.van-form-date-positioner{--z-index:50!important}.van-form-date-content{background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);padding:10px;box-shadow:0 4px 12px #0000001a}.van-form-date-view{width:252px}.van-form-date-view-dual{width:auto}.van-form-date-days{gap:10px;display:flex}.van-form-date-days .van-form-date-table{width:224px}.van-form-date-view-control{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.van-form-date-nav-trigger{width:28px;height:28px;color:var(--muted-foreground,#9ca3af);cursor:pointer;background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;transition:background .1s,color .1s;display:flex}.van-form-date-nav-trigger:hover{background:var(--muted,#f5f5f5);color:var(--card-foreground,#171717)}.van-form-date-view-trigger{color:var(--card-foreground,#171717);cursor:pointer;background:0 0;border:none;border-radius:2px;padding:4px 8px;font-size:14px;font-weight:500;transition:background .1s}.van-form-date-view-trigger:hover{background:var(--muted,#f5f5f5)}.van-form-date-table{border-collapse:collapse;table-layout:fixed;width:100%}.van-form-date-table-header{color:var(--muted-foreground,#737373);text-align:center;padding:6px 0;font-size:12px;font-weight:400}.van-form-date-week-header,.van-form-date-week-cell{width:24px;color:var(--muted-foreground,#9ca3af);text-align:center;padding:1px 2px;font-size:11px;font-weight:400}.van-form-date-cell{text-align:center;padding:1px}.van-form-date-cell-trigger{width:100%;height:32px;color:var(--card-foreground,#171717);cursor:pointer;background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;font-size:13px;transition:background .1s,color .1s;display:flex}.van-form-date-cell-trigger:hover{background:var(--muted,#f5f5f5)}.van-form-date-cell-trigger[data-selected]{background:var(--primary,#3b82f6);color:var(--primary-foreground,#fff);font-weight:500}.van-form-date-cell-trigger[data-in-range],.van-form-date-cell-trigger[data-range-start],.van-form-date-cell-trigger[data-range-end]{background:color-mix(in srgb, var(--primary,#3b82f6) 12%, transparent)}.van-form-date-cell-trigger[data-range-start],.van-form-date-cell-trigger[data-range-end]{background:var(--primary,#3b82f6);color:var(--primary-foreground,#fff);font-weight:500}.van-form-date-cell-trigger[data-outside-range]{color:var(--muted-foreground,#9ca3af)}.van-form-date-cell-trigger[data-today]:not([data-selected]){box-shadow:inset 0 0 0 1px var(--primary,#3b82f6)}.van-form-date-cell-trigger[data-unavailable]{opacity:.4}.van-form-date-cell-trigger[data-disabled]{opacity:.4;cursor:not-allowed}.van-form-date-week-mode .van-form-date-table-body .van-form-date-table-row:hover .van-form-date-cell-trigger:not([data-selected]):not([data-in-range]):not([data-range-start]):not([data-range-end]):not([data-disabled]){background:var(--muted,#f5f5f5)}.van-form-date-week-mode .van-form-date-table-body .van-form-date-table-row:hover .van-form-date-week-cell{color:var(--primary,#3b82f6)}.van-form-date-time{width:100%;padding:var(--van-form-control-padding-y,8px) var(--van-form-control-padding-x,12px);font-size:var(--van-form-control-font-size,14px);color:var(--card-foreground,#171717);background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--radius-lg,2px);outline:none;margin-top:8px;font-family:inherit;transition:border-color .15s}.van-form-date-time:focus{border-color:var(--primary,#3b82f6)}.van-form-helper{color:var(--muted-foreground,#737373);font-size:12px}.van-form-error{color:var(--destructive,#ef4444);font-size:12px}.van-form-field-skeleton,.van-form-loading-wrap[data-loading]:after{border-radius:var(--radius-lg,2px);background-color:color-mix(in srgb, var(--muted,#f5f5f5) 90%, var(--muted-foreground,#9ca3af));background-image:linear-gradient(90deg,#0000 0%,#ffffff80 50%,#0000 100%);background-repeat:no-repeat;background-size:200% 100%;animation:1.4s ease-in-out infinite van-form-skeleton-shimmer}.van-form-field-skeleton{width:100%;height:var(--van-form-control-height,36px)}.van-form-loading-wrap{display:grid;position:relative}.van-form-loading-wrap[data-disabled]{opacity:.6}.van-form-field[data-disabled]>.van-form-label,.van-form-field[data-disabled]>.van-form-helper{color:var(--muted-foreground,#9ca3af)}.van-form-loading-wrap[data-disabled],.van-form-loading-wrap[data-disabled] :is(button,input,textarea,.van-form-checkbox-root,.van-form-switch-root,.van-form-radio-item){cursor:not-allowed}.van-form-loading-wrap[data-loading]:after{content:"";z-index:1;position:absolute;inset:0}@keyframes van-form-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.van-form-checkbox-control{border:1px solid var(--border,#d1d5db);background:var(--card,#fff);cursor:pointer;border-radius:1px;justify-content:center;align-items:center;width:18px;height:18px;transition:all .15s;display:flex}.van-form-checkbox-control:hover{border-color:var(--primary,#6366f1)}.van-form-checkbox-control[data-state=checked]{background:var(--primary,#6366f1);border-color:var(--primary,#6366f1)}.van-form-checkbox-indicator{color:var(--primary-foreground,#fff);justify-content:center;align-items:center;display:flex}.van-form-checkbox-root{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.van-form-checkbox-label{color:var(--card-foreground,#171717);font-size:14px}.van-form-checkbox-group{flex-direction:column;gap:8px;display:flex}.van-form-check-icon{width:14px;height:14px}.van-form-switch-control{background:var(--border,#d1d5db);cursor:pointer;border-radius:11px;align-items:center;width:40px;height:22px;padding:2px;transition:background .15s;display:flex}.van-form-switch-control[data-state=checked]{background:var(--primary,#6366f1)}.van-form-switch-thumb{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s}.van-form-switch-control[data-state=checked] .van-form-switch-thumb{transform:translate(18px)}.van-form-switch-root{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.van-form-switch-label{color:var(--card-foreground,#171717);font-size:14px}.van-form-radio-group{flex-flow:wrap;gap:8px 16px;display:flex}.van-form-radio-item{color:var(--card-foreground,#171717);cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.van-form-radio-control{border:1px solid var(--border,#d1d5db);background:var(--card,#fff);border-radius:0;justify-content:center;align-items:center;width:18px;height:18px;transition:all .15s;display:flex}.van-form-radio-control[data-state=checked]{border-color:var(--primary,#6366f1)}.van-form-radio-control[data-state=checked]:after{content:"";background:var(--primary,#6366f1);border-radius:0;width:12px;height:12px}.van-form-radio-control:hover{border-color:var(--primary,#6366f1)}.van-form-radio-text{flex:1}@media (prefers-color-scheme:dark){.van-form-input,.van-form-textarea,.van-form-select-trigger,.van-form-date-trigger,.van-form-date-time{background:var(--card,#1e1e2e);color:var(--card-foreground,#cdd6f4);border-color:var(--border,#313244)}.van-form-input-group{background:var(--card,#1e1e2e);border-color:var(--border,#313244)}.van-form-input-addon{color:var(--muted-foreground,#a0a0b0)}.van-form-select-content{background:var(--card,#1e1e2e);border-color:var(--border,#313244)}.van-form-select-item:hover,.van-form-select-item[data-highlighted]{background:var(--muted,#27273e)}.van-form-date-content{background:var(--card,#1e1e2e);border-color:var(--border,#313244)}.van-form-date-nav-trigger:hover,.van-form-date-view-trigger:hover,.van-form-date-cell-trigger:hover,.van-form-date-week-mode .van-form-date-table-body .van-form-date-table-row:hover .van-form-date-cell-trigger:not([data-selected]):not([data-in-range]):not([data-range-start]):not([data-range-end]):not([data-disabled]){background:var(--muted,#27273e)}.van-form-field-skeleton,.van-form-loading-wrap[data-loading]:after{background-color:var(--muted,#27273e);background-image:linear-gradient(90deg,#0000 0%,#ffffff1f 50%,#0000 100%)}}.van-table-wrapper{width:100%;color:var(--card-foreground,#1f2937);flex-direction:column;gap:12px;font-size:14px;display:flex}.van-table-container{border:1px solid var(--border,#e5e7eb);border-radius:var(--radius-xl,2px);background:var(--card,#fff);position:relative;overflow:auto}.van-table-loading-mask{z-index:10;background:color-mix(in srgb, var(--card,#fff) 72%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.van-table-spinner{border:3px solid var(--border,#e5e7eb);border-top-color:var(--primary,#6366f1);border-radius:50%;width:28px;height:28px;animation:.6s linear infinite van-table-spin}@keyframes van-table-spin{to{transform:rotate(360deg)}}.van-table{table-layout:fixed;border-collapse:collapse;width:100%}.van-table-th{z-index:1;text-align:left;color:var(--muted-foreground,#9ca3af);border-bottom:1px solid var(--border,#e5e7eb);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:10px 14px;font-size:14px;font-weight:400;position:sticky;top:0}.van-table-th-sortable{cursor:pointer}.van-table-th-sortable:hover{background:var(--secondary,#f3f4f6)}.van-table-th-content{align-items:center;gap:4px;display:inline-flex}.van-table-sort-icon{flex-shrink:0;width:8px;height:14px}.van-table-sort-arrow{color:var(--muted-foreground,#9ca3af);opacity:.35}.van-table-sort-arrow.van-table-sort-active{opacity:1;color:var(--primary,#6366f1)}.van-table-tr{border-bottom:1px solid var(--border,#f3f4f6);transition:background .12s}.van-table-tr:last-child{border-bottom:none}.van-table-tr:hover{background:var(--muted,#f9fafb)}.van-table-tr-selected{background:color-mix(in srgb, var(--primary,#6366f1) 3%, transparent)!important}.van-table-td{vertical-align:middle;padding:10px 14px}.van-table-empty{text-align:center;color:var(--muted-foreground,#9ca3af);padding:56px 16px;font-size:14px}.van-table-checkbox-control{border:1px solid var(--input,#d1d5db);background:var(--card,#fff);cursor:pointer;border-radius:1px;justify-content:center;align-items:center;width:18px;height:18px;transition:all .15s;display:flex}.van-table-checkbox-control:hover{border-color:var(--primary,#6366f1)}.van-table-checkbox-control[data-state=checked],.van-table-checkbox-control[data-state=indeterminate]{background:var(--primary,#6366f1);border-color:var(--primary,#6366f1)}.van-table-checkbox-indicator{color:var(--primary-foreground,#fff);justify-content:center;align-items:center;display:flex}.van-table-check-icon{width:14px;height:14px}@media (prefers-color-scheme:dark){.van-table-wrapper{--card:#1e1e2e;--card-foreground:#cdd6f4;--foreground:#cdd6f4;--muted:#181825;--muted-foreground:#9399b2;--border:#313244;--input:#45475a;--secondary:#27273e;--primary:#89b4fa;--primary-foreground:#1e1e2e}}.van-table-wrapper[data-density=compact] .van-table-th,.van-table-wrapper[data-density=compact] .van-table-td{padding:6px 12px}.van-table-th-select,.van-table-td-select{width:36px;padding-left:14px;padding-right:8px}.van-data-table{width:100%;color:var(--card-foreground,#1f2937);border:1px solid var(--border,#e5e7eb);background-color:#fff;border-radius:4px;flex-direction:column;font-size:14px;display:flex}.van-data-table-search{width:100%;padding:14px}.van-data-table-search .van-form-form{flex-flow:wrap;align-items:flex-end;gap:8px}.van-data-table-search .van-form-field{width:192px}.van-data-table-search .van-form-input,.van-data-table-search .van-form-select-trigger,.van-data-table-search .van-form-date-trigger{box-sizing:border-box;height:36px}.van-data-table-search-actions{gap:6px;display:flex}.van-data-table-toolbar{justify-content:flex-start;align-items:center;gap:8px;padding:8px 14px;display:flex}.van-data-table-actions{align-items:center;gap:6px;display:flex}.van-data-table-actions .van-btn{height:22px;padding:0 6px;font-size:12px}.van-data-table-badges{flex-wrap:wrap;gap:6px;display:flex}.van-data-table-ellipsis{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:100%;display:inline-block;overflow:hidden}.van-data-table-tooltip{z-index:1000;border-radius:var(--radius-lg,2px);max-width:320px;color:var(--card-foreground,#171717);background:var(--card,#fff);border:1px solid var(--border,#e5e5e5);pointer-events:none;white-space:normal;word-break:break-all;padding:6px 10px;font-size:12px;line-height:1.5;position:fixed;box-shadow:0 4px 12px #0000001a}.van-data-table-search+.van-data-table-toolbar{border-top:1px solid var(--border,#e5e7eb)}.van-data-table .van-table-container{border-left:none;border-right:none}.van-data-table-pagination{color:var(--muted-foreground,#9ca3af);justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.van-data-table-pagination-buttons{align-items:center;gap:6px;display:flex}.van-data-table-pagination-btn{min-width:32px;height:32px;color:var(--card-foreground,#1f2937);background:var(--card,#fff);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0 6px;font-size:14px;transition:all .15s;display:inline-flex}.van-data-table-pagination-btn:hover:not(:disabled):not([data-selected]){background:var(--muted,#6366f1)}.van-data-table-pagination-btn[data-selected]{background:var(--primary,#6366f1);border-color:var(--primary,#6366f1);color:var(--primary-foreground,#fff)}.van-data-table-pagination-btn:disabled{opacity:.45;cursor:not-allowed}.van-data-table-pagination-ellipsis{min-width:24px;height:32px;color:var(--muted-foreground,#9ca3af);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:inline-flex}.van-data-table-pagination-icon{width:14px;height:14px}@media (prefers-color-scheme:dark){.van-data-table{--card:#1e1e2e;--card-foreground:#cdd6f4;--foreground:#cdd6f4;--muted:#181825;--muted-foreground:#9399b2;--border:#313244;--input:#45475a;--secondary:#27273e;--primary:#89b4fa;--primary-foreground:#1e1e2e}}@keyframes van-drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes van-drawer-fade-out{0%{opacity:1}to{opacity:0}}@keyframes van-drawer-slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes van-drawer-slide-out-right{to{transform:translate(100%)}}@keyframes van-drawer-slide-in-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes van-drawer-slide-out-left{to{transform:translate(-100%)}}@keyframes van-drawer-slide-in-top{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes van-drawer-slide-out-top{to{transform:translateY(-100%)}}@keyframes van-drawer-slide-in-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes van-drawer-slide-out-bottom{to{transform:translateY(100%)}}.van-drawer-backdrop{z-index:var(--z,1000);background:#0006;position:fixed;inset:0}.van-drawer-backdrop[data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-drawer-fade-in}.van-drawer-backdrop[data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) van-drawer-fade-out}.van-drawer-positioner{z-index:calc(var(--z-index-base,1000) + var(--layer-index,0));position:fixed;inset:0}.van-drawer-content{position:fixed}.van-drawer-content[data-placement=right],.van-drawer-content:not([data-placement]){width:var(--van-drawer-size,400px);max-width:100vw;top:0;bottom:0;right:0}.van-drawer-content[data-placement=right][data-state=open],.van-drawer-content:not([data-placement])[data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-drawer-slide-in-right}.van-drawer-content[data-placement=right][data-state=closed],.van-drawer-content:not([data-placement])[data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) forwards van-drawer-slide-out-right}.van-drawer-content[data-placement=left]{width:var(--van-drawer-size,400px);max-width:100vw;top:0;bottom:0;left:0}.van-drawer-content[data-placement=left][data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-drawer-slide-in-left}.van-drawer-content[data-placement=left][data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) forwards van-drawer-slide-out-left}.van-drawer-content[data-placement=top]{height:var(--van-drawer-size,400px);max-height:100vh;top:0;left:0;right:0}.van-drawer-content[data-placement=top][data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-drawer-slide-in-top}.van-drawer-content[data-placement=top][data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) forwards van-drawer-slide-out-top}.van-drawer-content[data-placement=bottom]{height:var(--van-drawer-size,400px);max-height:100vh;bottom:0;left:0;right:0}.van-drawer-content[data-placement=bottom][data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-drawer-slide-in-bottom}.van-drawer-content[data-placement=bottom][data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) forwards van-drawer-slide-out-bottom}.van-drawer-content-inner{background:var(--card,#fff);border-radius:2px;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden;box-shadow:0 0 0 1px #0000000f,0 4px 16px #0000001a}.van-drawer-header{flex-shrink:0;justify-content:space-between;align-items:flex-start;padding:20px 20px 12px;display:flex}.van-drawer-title{color:var(--card-foreground,#171717);margin:0;font-size:16px;font-weight:600;line-height:1.4}.van-drawer-close{border-radius:var(--radius-lg,2px);cursor:pointer;width:24px;height:24px;color:var(--muted-foreground,#737373);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin:-2px -2px 0 8px;font-size:14px;transition:background .15s,color .15s;display:inline-flex}.van-drawer-close:hover{background:var(--muted,#f5f5f5);color:var(--card-foreground,#171717)}.van-drawer-desc{color:var(--muted-foreground,#737373);padding:0 20px 14px;font-size:14px;line-height:1.5}.van-drawer-body{flex:1;min-height:0;padding:2px 20px 16px;overflow-y:auto}.van-drawer-footer{border-top:1px solid var(--border,#e5e5e5);flex-shrink:0;justify-content:flex-end;gap:10px;padding:12px 20px;display:flex}.van-drawer-footer .van-btn{min-width:84px}.van-drawer-grabber{cursor:grab;flex-shrink:0;justify-content:center;padding:8px 0 0;display:flex}.van-drawer-grabber:active{cursor:grabbing}.van-drawer-grabber-indicator{background:#d4d4d4;border-radius:2px;width:36px;height:4px}@keyframes van-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes van-modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes van-modal-scale-in{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:none}}@keyframes van-modal-scale-out{0%{opacity:1;transform:none}to{opacity:0;transform:scale(.95)translateY(-4px)}}.van-modal-backdrop{background:#0006;position:fixed;inset:0}.van-modal-backdrop[data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-modal-fade-in}.van-modal-backdrop[data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) van-modal-fade-out}.van-modal-positioner{justify-content:center;align-items:start;padding:15vh 1rem 1rem;display:flex;position:fixed;inset:0}.van-modal-positioner[data-center]{align-items:center;padding-top:1rem}.van-modal-content{background:var(--card,#fff);border-radius:var(--radius-lg,2px);width:var(--van-modal-width,min(480px, 92vw));min-width:min(420px,92vw);max-height:var(--van-modal-max-height,90vh);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 0 0 1px #0000000f,0 4px 16px #0000001a}.van-modal-content[data-state=open]{animation:.25s cubic-bezier(.16,1,.3,1) van-modal-scale-in}.van-modal-content[data-state=closed]{animation:.15s cubic-bezier(.4,0,1,1) van-modal-scale-out}.van-modal-header{background:var(--muted,#f5f5f5);border-bottom:1px solid var(--border,#e5e5e5);justify-content:space-between;align-items:center;gap:12px;height:56px;padding-left:16px;display:flex}.van-modal-title{color:var(--card-foreground,#171717);margin:0;font-size:16px;line-height:1.4}.van-modal-header-actions{flex-shrink:0;align-items:center;gap:6px;padding-right:12px;display:flex}.van-modal-header .van-modal-header-btn{border-radius:var(--radius-lg,2px);flex-shrink:0;width:36px;height:36px;padding:0}.van-modal-header .van-modal-header-btn-cancel{background:var(--border,#e5e5e5);color:var(--muted-foreground,#737373)}.van-modal-header .van-modal-header-btn-cancel:hover:not(:disabled){background:color-mix(in srgb, var(--border,#e5e5e5) 78%, black);color:var(--card-foreground,#171717)}.van-modal-header .van-modal-header-btn-confirm{background:var(--primary,#3b82f6);color:var(--primary-foreground,#fff)}.van-modal-header .van-modal-header-btn-confirm:hover:not(:disabled){background:color-mix(in srgb, var(--primary,#3b82f6) 85%, black);color:var(--primary-foreground,#fff)}.van-modal-header .van-modal-header-btn .van-btn-spinner-wrapper{width:18px;height:18px}.van-modal-header .van-modal-header-btn .van-btn-spinner{border-width:2px;width:18px;height:18px}.van-modal-desc{color:var(--muted-foreground,#737373);padding:20px;font-size:16px;line-height:1.5}.van-modal-body{flex:1;padding:0;overflow-y:auto}[data-scope=dialog][data-part=content][data-has-nested]{transform:scale(calc(1 - var(--nested-layer-count,0) * .03))}[data-scope=toast][data-part=root]{transform:translate3d(var(--x,0), var(--y,100%), 0);z-index:var(--z-index,0);opacity:var(--opacity,1);background:var(--card,#fff);border-radius:var(--radius-lg,2px);min-width:320px;max-width:420px;transition:transform .25s,opacity .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 12px #0000001f}.van-toast-bar{flex-shrink:0;width:4px}[data-type=success] .van-toast-bar{background:var(--success,#22c55e)}[data-type=error] .van-toast-bar{background:var(--destructive,#ef4444)}[data-type=info] .van-toast-bar{background:var(--primary,#3b82f6)}[data-type=warning] .van-toast-bar{background:var(--warning,#f59e0b)}[data-type=loading] .van-toast-bar{background:var(--muted-foreground,#f5f5f5)}.van-toast-body{flex:1;min-width:0;padding:12px 40px 12px 16px}.van-toast-title{color:var(--card-foreground,#171717);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;line-height:1.4;overflow:hidden}.van-toast-desc{color:var(--muted-foreground,#737373);margin-top:2px;font-size:14px;line-height:1.5}.van-toast-close{cursor:pointer;width:20px;height:20px;color:var(--muted-foreground,#9ca3af);background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;padding:0;transition:color .15s,background .15s;display:inline-flex;position:absolute;top:12px;right:12px}.van-toast-close:hover{color:var(--card-foreground,#4b5563);background:var(--muted,#f3f4f6)}.van-toast-close-x{width:12px;height:12px;display:block;position:relative}.van-toast-close-x:before,.van-toast-close-x:after{content:"";background:currentColor;border-radius:1px;width:12px;height:1.5px;position:absolute;top:50%;left:50%}.van-toast-close-x:before{transform:translate(-50%,-50%)rotate(45deg)}.van-toast-close-x:after{transform:translate(-50%,-50%)rotate(-45deg)}
2
2
  /*$vite$:1*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vanstack/solid-ark",
3
- "version": "0.0.43",
3
+ "version": "0.0.45",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -72,10 +72,10 @@
72
72
  "vite-plugin-solid": "^2.11.0",
73
73
  "vitest": "^4.1.10",
74
74
  "zod": "^4.4.0",
75
- "@vanstack/eslint-config": "0.0.1",
76
- "@vanstack/prettier-config": "0.0.1",
75
+ "@vanstack/tsconfig": "0.0.1",
77
76
  "@vanstack/vite-config": "0.0.2",
78
- "@vanstack/tsconfig": "0.0.1"
77
+ "@vanstack/prettier-config": "0.0.1",
78
+ "@vanstack/eslint-config": "0.0.1"
79
79
  },
80
80
  "scripts": {
81
81
  "build": "tsc --noEmit && vite build",