savor-ui 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/es/components/src/collapse/collapse-item.vue_vue_type_script_setup_true_vapor_true_lang.mjs +21 -18
  3. package/dist/es/components/src/collapse/collapse.vue_vue_type_script_setup_true_vapor_true_lang.mjs +4 -1
  4. package/dist/es/components/src/form/form-item.d.ts +4 -0
  5. package/dist/es/components/src/form/form-item.vue_vue_type_script_setup_true_vapor_true_lang.mjs +32 -25
  6. package/dist/es/components/src/form/form.vue_vue_type_script_setup_true_vapor_true_lang.mjs +17 -13
  7. package/dist/es/components/src/form/index.d.ts +11 -0
  8. package/dist/es/components/src/form/types.d.ts +10 -0
  9. package/dist/es/components/src/radio/index.d.ts +1 -0
  10. package/dist/es/components/src/radio/radio-group.vue_vue_type_script_setup_true_vapor_true_lang.mjs +4 -2
  11. package/dist/es/components/src/radio/radio.vue_vue_type_script_setup_true_vapor_true_lang.mjs +5 -4
  12. package/dist/es/components/src/radio/types.d.ts +2 -0
  13. package/dist/es/components/src/tabs/index.d.ts +1 -0
  14. package/dist/es/components/src/tabs/tabs.vue_vue_type_script_setup_true_vapor_true_lang.mjs +16 -12
  15. package/dist/es/components/src/tabs/types.d.ts +2 -0
  16. package/dist/es/components/src/tag/index.d.ts +1 -1
  17. package/dist/es/components/src/tag/tag.vue_vue_type_script_setup_true_vapor_true_lang.mjs +1 -1
  18. package/dist/es/components/src/tag/types.d.ts +1 -1
  19. package/dist/es/components/src/text/text.vue_vue_type_script_setup_true_vapor_true_lang.mjs +79 -45
  20. package/dist/es/hooks/src/use-theme.d.ts +2 -0
  21. package/dist/es/theme/common/var.scss +1 -1
  22. package/dist/es/theme/components/collapse.scss +12 -1
  23. package/dist/es/theme/components/date-picker.scss +4 -0
  24. package/dist/es/theme/components/datetime-picker.scss +4 -0
  25. package/dist/es/theme/components/form.scss +11 -19
  26. package/dist/es/theme/components/input-group.scss +0 -81
  27. package/dist/es/theme/components/input-number.scss +4 -0
  28. package/dist/es/theme/components/input-tag.scss +4 -0
  29. package/dist/es/theme/components/radio.scss +26 -1
  30. package/dist/es/theme/components/tabs.scss +8 -3
  31. package/dist/es/theme/components/tag.scss +6 -12
  32. package/dist/es/theme/components/textarea.scss +4 -0
  33. package/dist/es/theme/mixins/mixins.scss +12 -0
  34. package/dist/es/utils/src/theme/themeMap.mjs +1 -0
  35. package/dist/json/vetur-attributes.json +18 -0
  36. package/dist/json/vetur-tags.json +9 -4
  37. package/dist/json/web-types.json +42 -2
  38. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,30 @@
2
2
 
3
3
 
4
4
 
5
+ # [0.14.0](https://gitee.com/mach552/savor-ui/compare/v0.13.1...v0.14.0) (2026-07-26)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **collapse:** 修复border属性无效问题 ([244f173](https://gitee.com/mach552/savor-ui/commits/244f173944ee92dc1ce69efc4e0455f170f1d07a))
11
+ * **form:** 修复tooltip不居中问题 ([379a74e](https://gitee.com/mach552/savor-ui/commits/379a74e894ac04f5802e118c5dae74a701aca462))
12
+ * **tabs:** 修复单子组件时报错问题 ([14542d7](https://gitee.com/mach552/savor-ui/commits/14542d738b55dd79c148661e33fcc02e92937cac))
13
+ * **text:** 修复动态改变内容时tooltip显示时机问题 ([7a6779d](https://gitee.com/mach552/savor-ui/commits/7a6779d11762cee0c5b10069f728807d1a91b17e))
14
+
15
+
16
+ ### Features
17
+
18
+ * **form:** 新增`requiredAlign`属性 ([4ff93e8](https://gitee.com/mach552/savor-ui/commits/4ff93e80e3572e5a24ca6f96a9d18c982c6b0a86))
19
+ * **radio-group:** 新增`block`属性 ([3e6f902](https://gitee.com/mach552/savor-ui/commits/3e6f902269459be76aa8220ff38d1f8f5eb4fbe1))
20
+ * **tabs:** 新增`block`属性 ([37577cc](https://gitee.com/mach552/savor-ui/commits/37577cc9ded99124907615168f53f30084de9f45))
21
+
22
+ ## [0.13.1](https://gitee.com/mach552/savor-ui/compare/v0.13.0...v0.13.1) (2026-07-22)
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * **text:** 修复没有省略号时tooltip依然显示的问题 ([114f945](https://gitee.com/mach552/savor-ui/commits/114f9454df35f978ba720fe050bfaf823fffcba3))
28
+
5
29
  # [0.13.0](https://gitee.com/mach552/savor-ui/compare/v0.12.2...v0.13.0) (2026-07-22)
6
30
 
7
31
 
@@ -4,11 +4,11 @@ import t from "../../../icons/src/right.vue.mjs";
4
4
  import "../../../icons/index.mjs";
5
5
  import { STransition as n } from "../transition/index.mjs";
6
6
  import { collapseContextKey as r } from "./types.mjs";
7
- import { applyVShow as i, child as a, computed as o, createComponent as s, createInvoker as c, createSlot as l, defineVaporComponent as u, delegateEvents as d, inject as f, next as p, renderEffect as m, setClass as h, setInsertionState as g, setStyle as _, setText as v, template as y, toDisplayString as b, unref as x } from "vue";
7
+ import { applyVShow as i, child as a, computed as o, createComponent as s, createIf as c, createInvoker as l, createSlot as u, defineVaporComponent as d, delegateEvents as f, inject as p, next as m, renderEffect as h, setClass as g, setInsertionState as _, setStyle as v, setText as y, template as b, toDisplayString as x, unref as S } from "vue";
8
8
  //#region ../components/src/collapse/collapse-item.vue?vue&type=script&setup=true&vapor=true&lang.ts
9
- var S = y(" "), C = y("<div>"), w = y("<div><div><span></span><span></span><span>", 1);
10
- d("click");
11
- var T = /*@__PURE__*/ u({
9
+ var C = b(" "), w = b("<span>"), T = b("<div>"), E = b("<div><div><span></span><span></span>", 1);
10
+ f("click");
11
+ var D = /*@__PURE__*/ d({
12
12
  name: "SCollapseItem",
13
13
  __name: "collapse-item",
14
14
  props: {
@@ -16,21 +16,24 @@ var T = /*@__PURE__*/ u({
16
16
  name: {},
17
17
  disabled: { type: Boolean }
18
18
  },
19
- setup(u) {
20
- let d = u, y = e("collapse"), T = f(r), E = o(() => !!T?.modelValue?.value?.includes(d.name)), D = () => {
21
- d.disabled || T?.handleItemClick?.(d.name);
22
- }, O = w(), k = a(O), A = a(k), j = p(A, 1), M = p(j, 2);
23
- return m(() => {
24
- let e = x(y), t = E.value;
25
- h(O, [e.e("item"), e.is("disabled", u.disabled)]), h(k, [e.e("header"), e.is("active", t)]), h(A, e.e("header-arrow")), _(A, { transform: t ? "rotate(90deg)" : "" });
26
- }), g(A, null, 0), s(x(t)), m(() => h(j, x(y).e("header-title"))), g(j, null, 0), l("title", null, () => {
27
- let e = S();
28
- return m(() => v(e, b(u.title))), e;
29
- }), m(() => h(M, x(y).e("extra"))), g(M, null, 0), l("extra"), k.$evtclick = c(D), g(O, null, 1), s(x(n), { type: "height" }, () => {
19
+ setup(d, { slots: f }) {
20
+ let b = d, D = e("collapse"), O = p(r), k = o(() => !!O?.modelValue?.value?.includes(b.name)), A = () => {
21
+ b.disabled || O?.handleItemClick?.(b.name);
22
+ }, j = E(), M = a(j), N = a(M), P = m(N, 1);
23
+ return h(() => {
24
+ let e = S(D), t = k.value;
25
+ g(j, [e.e("item"), e.is("disabled", d.disabled)]), g(M, [e.e("header"), e.is("active", t)]), g(N, e.e("header-arrow")), v(N, { transform: t ? "rotate(90deg)" : "" });
26
+ }), _(N, null, 0), s(S(t)), h(() => g(P, S(D).e("header-title"))), _(P, null, 0), u("title", null, () => {
30
27
  let e = C();
31
- return m(() => h(e, x(y).e("content"))), g(e, null, 0), l(), i(e, () => E.value), e;
32
- }), O;
28
+ return h(() => y(e, x(d.title))), e;
29
+ }), _(M, null, 2), c(() => f.extra, () => {
30
+ let e = w();
31
+ return h(() => g(e, S(D).e("extra"))), _(e, null, 0), u("extra"), e;
32
+ }), M.$evtclick = l(A), _(j, null, 1), s(S(n), { type: "height" }, () => {
33
+ let e = T();
34
+ return h(() => g(e, S(D).e("content"))), _(e, null, 0), u(), i(e, () => k.value), e;
35
+ }), j;
33
36
  }
34
37
  });
35
38
  //#endregion
36
- export { T as default };
39
+ export { D as default };
@@ -31,7 +31,10 @@ var p = l("<div>", 1), m = /*@__PURE__*/ r({
31
31
  }
32
32
  });
33
33
  let _ = p();
34
- return o(() => s(_, u(h).b())), c(_, null, 0), n(), _;
34
+ return o(() => {
35
+ let e = u(h);
36
+ s(_, [e.b(), e.is("border", r.border)]);
37
+ }), c(_, null, 0), n(), _;
35
38
  }
36
39
  });
37
40
  //#endregion
@@ -10,6 +10,10 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
10
10
  label?: (props: {
11
11
  label: string | undefined;
12
12
  }) => any;
13
+ } & {
14
+ label?: (props: {
15
+ label: string | undefined;
16
+ }) => any;
13
17
  } & {
14
18
  default?: (props: {
15
19
  validate: (trigger?: string) => Promise<true | void>;
@@ -23,7 +23,8 @@ var k = w("<span>"), A = w(" "), j = w("<div><label>"), M = w("<div> "), N = w("
23
23
  showRequired: {
24
24
  type: Boolean,
25
25
  default: !0
26
- }
26
+ },
27
+ requiredAlign: {}
27
28
  },
28
29
  setup(p, { expose: w }) {
29
30
  let P = p, F = t("form-item"), I = m(i), L = l(() => I?.labelPosition?.value === "top" ? "" : P.labelWidth || I?.labelWidth?.value), R = l(() => P.labelAlign ? P.labelAlign : I?.labelAlign?.value ? I?.labelAlign?.value : I?.labelPosition?.value === "top" ? "left" : "right"), z = null, B = l(() => {
@@ -36,7 +37,7 @@ var k = w("<span>"), A = w(" "), j = w("<div><label>"), M = w("<div> "), N = w("
36
37
  state: "init",
37
38
  errorMsg: "",
38
39
  loading: !1
39
- }), U = (e) => V.value ? V.value.filter((t) => !t.trigger || !e ? !0 : t.trigger && t.trigger === e) : [], W = l(() => V.value.some((e) => e.required) && P.showRequired), G = async (e) => {
40
+ }), U = (e) => V.value ? V.value.filter((t) => !t.trigger || !e ? !0 : t.trigger && t.trigger === e) : [], W = l(() => V.value.some((e) => e.required) && (P.showRequired || I?.showRequired?.value)), G = l(() => P.requiredAlign ? P.requiredAlign : I?.requiredAlign?.value ? I?.requiredAlign?.value : "left"), K = async (e) => {
40
41
  let t = P.field, n = U(e);
41
42
  if (n.length === 0) return !0;
42
43
  if (t) {
@@ -53,35 +54,35 @@ var k = w("<span>"), A = w(" "), j = w("<div><label>"), M = w("<div> "), N = w("
53
54
  H.value.loading = !1;
54
55
  });
55
56
  }
56
- }, K = () => {
57
- H.value.state = "init", H.value.errorMsg = "", H.value.loading = !1;
58
57
  }, q = () => {
59
- K();
58
+ H.value.state = "init", H.value.errorMsg = "", H.value.loading = !1;
59
+ }, J = () => {
60
+ q();
60
61
  let e = I?.model?.value;
61
62
  e && P.field && (e[P.field] = z);
62
- }, J = l(() => H.value.state === "error"), Y = {
63
- validate: G,
63
+ }, Y = l(() => H.value.state === "error"), X = {
64
+ validate: K,
64
65
  field: P.field,
65
- resetField: q,
66
- clearValidate: K
66
+ resetField: J,
67
+ clearValidate: q
67
68
  };
68
- _(a, Y), _(o, {
69
+ _(a, X), _(o, {
69
70
  size: I?.size,
70
- error: J
71
+ error: Y
71
72
  }), h(() => {
72
- P.field && (I?.addField(Y), z = I?.model?.value?.[P.field]);
73
+ P.field && (I?.addField(X), z = I?.model?.value?.[P.field]);
73
74
  }), g(() => {
74
- P.field && I?.removeField(Y);
75
+ P.field && I?.removeField(X);
75
76
  }), w({
76
- validate: G,
77
- resetField: q,
78
- clearValidate: K,
77
+ validate: K,
78
+ resetField: J,
79
+ clearValidate: q,
79
80
  validateStatus: H
80
81
  });
81
- let X = N(), Z = c(X, 1), Q = c(Z);
82
+ let Z = N(), Q = c(Z, 1), $ = c(Q);
82
83
  return y(() => {
83
84
  let e = D(F), t = H.value, n = D(I), r = t.state;
84
- b(X, [
85
+ b(Z, [
85
86
  e.b(),
86
87
  e.is("error", r === "error"),
87
88
  e.is("success", r === "success"),
@@ -89,18 +90,24 @@ var k = w("<span>"), A = w(" "), j = w("<div><label>"), M = w("<div> "), N = w("
89
90
  e.is("top", n?.labelPosition?.value === "top"),
90
91
  e.m(n?.size?.value)
91
92
  ]);
92
- }), x(X, 0, 0), d(() => W.value || p.label || p.tooltip, () => {
93
+ }), x(Z, 0, 0), d(() => W.value || p.label || p.tooltip, () => {
93
94
  let t = j(), i = c(t);
94
95
  return y(() => {
95
96
  let n = D(F);
96
97
  b(t, [n.e("label-wrapper")]), b(i, [n.e("label"), n.m("align-" + R.value)]), S(i, { width: D(e)(L.value) });
97
- }), x(i, null, 0), d(() => W.value, () => {
98
+ }), x(i, null, 0), d(() => G.value === "left", () => [d(() => W.value, () => {
98
99
  let e = k();
99
100
  return y(() => b(e, [D(F).e("required")])), x(e, null, 0), u(D(n)), e;
100
- }), x(i, null, 1), f("label", { label: () => p.label }, () => {
101
+ }), f("label", { label: () => p.label }, () => {
102
+ let e = A();
103
+ return y(() => C(e, T(p.label))), e;
104
+ })], () => d(() => G.value === "right", () => [f("label", { label: () => p.label }, () => {
101
105
  let e = A();
102
106
  return y(() => C(e, T(p.label))), e;
103
- }), x(i, null, 2), d(() => p.tooltip, () => u(D(s), {
107
+ }), d(() => W.value, () => {
108
+ let e = k();
109
+ return y(() => b(e, [D(F).e("required")])), x(e, null, 0), u(D(n)), e;
110
+ })], null, 2), 518), x(i, null, 1), d(() => p.tooltip, () => u(D(s), {
104
111
  content: () => p.tooltip,
105
112
  mini: ""
106
113
  }, () => {
@@ -109,13 +116,13 @@ var k = w("<span>"), A = w(" "), j = w("<div><label>"), M = w("<div> "), N = w("
109
116
  })), t;
110
117
  }), y(() => {
111
118
  let e = D(F);
112
- b(Z, [e.e("content-wrapper")]), b(Q, [e.e("content")]);
113
- }), x(Q, null, 0), f("default", { validate: () => G }), x(Z, null, 1), d(() => H.value.state === "error", () => {
119
+ b(Q, [e.e("content-wrapper")]), b($, [e.e("content")]);
120
+ }), x($, null, 0), f("default", { validate: () => K }), x(Q, null, 1), d(() => H.value.state === "error", () => {
114
121
  let e = M(), t = E(e);
115
122
  return y(() => {
116
123
  b(e, [D(F).e("error-msg")]), C(t, T(H.value.errorMsg));
117
124
  }), e;
118
- }), X;
125
+ }), Z;
119
126
  }
120
127
  });
121
128
  //#endregion
@@ -12,13 +12,15 @@ var g = f("<form>", 1), _ = /*@__PURE__*/ r({
12
12
  size: {},
13
13
  labelWidth: { default: "100px" },
14
14
  labelPosition: { default: "left" },
15
- labelAlign: {}
15
+ labelAlign: {},
16
+ showRequired: { type: Boolean },
17
+ requiredAlign: {}
16
18
  },
17
19
  emits: ["submit"],
18
20
  setup(r, { expose: f, emit: _ }) {
19
- let v = r, y = _, b = e("form"), { size: x, labelWidth: S, labelPosition: C, labelAlign: w, model: T, rules: E } = p(v), D = h("formRef"), O = (e) => {
21
+ let v = r, y = _, b = e("form"), { size: x, labelWidth: S, labelPosition: C, labelAlign: w, model: T, rules: E, showRequired: D, requiredAlign: O } = p(v), k = h("formRef"), A = (e) => {
20
22
  e.preventDefault(), y("submit", e);
21
- }, k = s([]);
23
+ }, j = s([]);
22
24
  o(t, {
23
25
  model: T,
24
26
  rules: E,
@@ -27,18 +29,20 @@ var g = f("<form>", 1), _ = /*@__PURE__*/ r({
27
29
  labelPosition: C,
28
30
  labelAlign: w,
29
31
  addField: (e) => {
30
- k.value.push(e);
32
+ j.value.push(e);
31
33
  },
32
34
  removeField: (e) => {
33
- e.field && k.value.splice(k.value.indexOf(e), 1);
34
- }
35
+ e.field && j.value.splice(j.value.indexOf(e), 1);
36
+ },
37
+ showRequired: D,
38
+ requiredAlign: O
35
39
  }), i(() => {
36
- D.value?.addEventListener("submit", O);
40
+ k.value?.addEventListener("submit", A);
37
41
  }), a(() => {
38
- D.value?.removeEventListener("submit", O);
42
+ k.value?.removeEventListener("submit", A);
39
43
  }), f({
40
44
  validate: async (e) => {
41
- let t = e && e.length > 0 ? k.value.filter((t) => e.includes(t.field || "")) : k.value, n = {};
45
+ let t = e && e.length > 0 ? j.value.filter((t) => e.includes(t.field || "")) : j.value, n = {};
42
46
  for (let e of t) try {
43
47
  await e.validate("");
44
48
  } catch (e) {
@@ -51,16 +55,16 @@ var g = f("<form>", 1), _ = /*@__PURE__*/ r({
51
55
  return Object.keys(n).length === 0 ? !0 : Promise.reject(n);
52
56
  },
53
57
  resetFields: (e) => {
54
- let t = e && e.length > 0 ? k.value.filter((t) => e.includes(t.field || "")) : k.value;
58
+ let t = e && e.length > 0 ? j.value.filter((t) => e.includes(t.field || "")) : j.value;
55
59
  for (let e of t) e.resetField();
56
60
  },
57
61
  clearValidate: (e) => {
58
- let t = e && e.length > 0 ? k.value.filter((t) => e.includes(t.field || "")) : k.value;
62
+ let t = e && e.length > 0 ? j.value.filter((t) => e.includes(t.field || "")) : j.value;
59
63
  for (let e of t) e.clearValidate();
60
64
  }
61
65
  });
62
- let A = g();
63
- return c(() => l(A, [m(b).b()])), u(A, null, 0), n(), d(A, D, null, "formRef"), A;
66
+ let M = g();
67
+ return c(() => l(M, [m(b).b()])), u(M, null, 0), n(), d(M, k, null, "formRef"), M;
64
68
  }
65
69
  });
66
70
  //#endregion
@@ -14,6 +14,8 @@ export declare const SForm: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setu
14
14
  labelWidth?: string | number | undefined;
15
15
  labelPosition?: "left" | "top" | undefined;
16
16
  labelAlign?: "left" | "right" | undefined;
17
+ showRequired?: boolean | undefined;
18
+ requiredAlign?: "left" | "right" | undefined;
17
19
  onSubmit?: ((e: Event) => any) | undefined;
18
20
  } & (typeof globalThis extends {
19
21
  __VLS_PROPS_FALLBACK: infer P;
@@ -33,6 +35,10 @@ export declare const SFormItem: ((__VLS_props: NonNullable<Awaited<typeof __VLS_
33
35
  label?: (props: {
34
36
  label: string | undefined;
35
37
  }) => any;
38
+ } & {
39
+ label?: (props: {
40
+ label: string | undefined;
41
+ }) => any;
36
42
  } & {
37
43
  default?: (props: {
38
44
  validate: (trigger?: string) => Promise<true | void>;
@@ -48,6 +54,7 @@ export declare const SFormItem: ((__VLS_props: NonNullable<Awaited<typeof __VLS_
48
54
  tooltip?: string | undefined;
49
55
  labelAlign?: "left" | "right" | undefined;
50
56
  showRequired?: boolean | undefined;
57
+ requiredAlign?: "left" | "right" | undefined;
51
58
  } & (typeof globalThis extends {
52
59
  __VLS_PROPS_FALLBACK: infer P;
53
60
  } ? P : {});
@@ -57,6 +64,10 @@ export declare const SFormItem: ((__VLS_props: NonNullable<Awaited<typeof __VLS_
57
64
  label?: (props: {
58
65
  label: string | undefined;
59
66
  }) => any;
67
+ } & {
68
+ label?: (props: {
69
+ label: string | undefined;
70
+ }) => any;
60
71
  } & {
61
72
  default?: (props: {
62
73
  validate: (trigger?: string) => Promise<true | void>;
@@ -17,6 +17,10 @@ export interface FormProps {
17
17
  labelPosition?: "left" | "top";
18
18
  /** 表单项标签对齐方式 */
19
19
  labelAlign?: "left" | "right";
20
+ /** 是否显示必填标识 */
21
+ showRequired?: boolean;
22
+ /** 必填标识对齐方式 */
23
+ requiredAlign?: "left" | "right";
20
24
  }
21
25
  export interface FormEmits {
22
26
  /** 表单提交时触发 */
@@ -45,6 +49,8 @@ export interface FormItemProps {
45
49
  labelAlign?: "left" | "right";
46
50
  /** 是否显示必填标识 */
47
51
  showRequired?: boolean;
52
+ /** 必填标识对齐方式 */
53
+ requiredAlign?: "left" | "right";
48
54
  }
49
55
  export interface FormContext {
50
56
  /** 表单模型 */
@@ -63,6 +69,10 @@ export interface FormContext {
63
69
  labelPosition?: Ref<"left" | "top">;
64
70
  /** 表单项标签对齐方式 */
65
71
  labelAlign?: Ref<"left" | "right" | undefined>;
72
+ /** 是否显示必填标识 */
73
+ showRequired?: Ref<boolean>;
74
+ /** 必填标识对齐方式 */
75
+ requiredAlign?: Ref<"left" | "right" | undefined>;
66
76
  }
67
77
  export declare const formContextKey: InjectionKey<FormContext>;
68
78
  export interface FormItemValidateStatus {
@@ -33,6 +33,7 @@ export declare const SRadioGroup: ((__VLS_props: NonNullable<Awaited<typeof __VL
33
33
  props: PublicProps & {
34
34
  vertical?: boolean | undefined;
35
35
  button?: boolean | undefined;
36
+ block?: boolean | undefined;
36
37
  modelValue?: string | number | boolean | undefined;
37
38
  onChange?: ((value: string | number | boolean) => any) | undefined;
38
39
  "onUpdate:modelValue"?: ((value: string | number | boolean) => any) | undefined;
@@ -8,7 +8,8 @@ var p = l("<div>", 1), m = /*@__PURE__*/ r({
8
8
  __name: "radio-group",
9
9
  props: /*@__PURE__*/ i({
10
10
  vertical: { type: Boolean },
11
- button: { type: Boolean }
11
+ button: { type: Boolean },
12
+ block: { type: Boolean }
12
13
  }, {
13
14
  modelValue: {
14
15
  type: [
@@ -36,7 +37,8 @@ var p = l("<div>", 1), m = /*@__PURE__*/ r({
36
37
  s(y, [
37
38
  e.b(),
38
39
  e.is("vertical", r.vertical),
39
- e.is("button", d(v))
40
+ e.is("button", d(v)),
41
+ e.is("block", r.block)
40
42
  ]);
41
43
  }), c(y, null, 0), n(), y;
42
44
  }
@@ -32,16 +32,17 @@ var b = g("<span></span>"), x = g(" "), S = g("<span>"), C = g("<label><input ty
32
32
  e.target.checked && (k.value = w.value), D?.checked(k.value), T("change", k.value, e);
33
33
  }, M = C(), N = n(M);
34
34
  return l(N, "change", j), u(() => {
35
- let e = v(E), t = A.value;
35
+ let e = v(E), t = A.value, n = o.disabled;
36
36
  d(M, [
37
37
  e.b(),
38
38
  e.m(o.size),
39
39
  e.is("checked", t),
40
- e.is("button", O.value)
41
- ]), d(N, [e.e("input")]), h(N, o.value), p(N, "checked", t);
40
+ e.is("button", O.value),
41
+ e.is("disabled", n)
42
+ ]), d(N, [e.e("input")]), h(N, o.value), p(N, "checked", t), p(N, "disabled", n);
42
43
  }), f(M, null, 1), i(() => !g.check, () => {
43
44
  let e = b();
44
- return u(() => d(e, [v(E).e("inner")])), [e, i(() => o.label, () => {
45
+ return u(() => d(e, [v(E).e("inner")])), [e, i(() => o.label || g.default, () => {
45
46
  let e = S();
46
47
  return u(() => d(e, [v(E).e("label")])), f(e, null, 0), a("default", null, () => {
47
48
  let e = x();
@@ -26,6 +26,8 @@ export interface RadioGroupProps {
26
26
  vertical?: boolean;
27
27
  /** 是否按钮 */
28
28
  button?: boolean;
29
+ /** 是否块级元素,占满父元素宽度 */
30
+ block?: boolean;
29
31
  }
30
32
  export interface RadioGroupEmits {
31
33
  /** 选中状态变化时触发 */
@@ -15,6 +15,7 @@ export declare const STabs: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setu
15
15
  bordered?: boolean | undefined;
16
16
  showArrow?: boolean | undefined;
17
17
  showHeader?: boolean | undefined;
18
+ block?: boolean | undefined;
18
19
  onChange?: ((value: string | number) => any) | undefined;
19
20
  onRemove?: ((value: string | number) => any) | undefined;
20
21
  "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
@@ -24,7 +24,8 @@ var pe = 200, me = 40, A = /*@__PURE__*/ d({
24
24
  showHeader: {
25
25
  type: Boolean,
26
26
  default: !0
27
- }
27
+ },
28
+ block: { type: Boolean }
28
29
  }, {
29
30
  modelValue: { default: "" },
30
31
  modelModifiers: {}
@@ -44,24 +45,26 @@ var pe = 200, me = 40, A = /*@__PURE__*/ d({
44
45
  let n = H.get(e);
45
46
  n && t.replaceChildren(n);
46
47
  }, W = o(() => {
47
- let e = he.default?.() || [], t = [], n = /* @__PURE__ */ new Set();
48
+ let e = [], t = he.default?.() || [];
49
+ e = Array.isArray(t) ? t : [t];
50
+ let n = [], r = /* @__PURE__ */ new Set();
48
51
  return ((e) => {
49
52
  e.forEach((e) => {
50
- if (ge(e)) {
51
- let r = e.rawProps || {}, i = r.name;
52
- if (i == null || n.has(i)) return;
53
- n.add(i);
54
- let a = r.label, o = _e(e) ? "tab-pane" : "tab";
55
- t.push({
53
+ if (e.vapor && ge(e)) {
54
+ let t = e.rawProps || {}, i = t.name;
55
+ if (i == null || r.has(i)) return;
56
+ r.add(i);
57
+ let a = t.label, o = _e(e) ? "tab-pane" : "tab";
58
+ n.push({
56
59
  name: i,
57
60
  label: a,
58
- disabled: !!r.disabled,
59
- closeable: r.closeable,
61
+ disabled: !!t.disabled,
62
+ closeable: t.closeable,
60
63
  type: o
61
64
  });
62
65
  }
63
66
  });
64
- })(e), t;
67
+ })(e), n;
65
68
  }), be = o(() => W.value.some((e) => e.type === "tab-pane")), xe = o(() => ({
66
69
  left: `${F.value}px`,
67
70
  width: `${I.value}px`
@@ -162,7 +165,8 @@ var pe = 200, me = 40, A = /*@__PURE__*/ d({
162
165
  b(n, [
163
166
  t.e("item"),
164
167
  t.is("active", M.value === r.name),
165
- t.is("disabled", r.disabled)
168
+ t.is("disabled", r.disabled),
169
+ t.is("block", d.block)
166
170
  ]);
167
171
  }), x(n, null, 0), c(() => e.value.label, () => {
168
172
  let t = ue(), n = oe(t);
@@ -18,6 +18,8 @@ export interface TabsProps {
18
18
  showArrow?: boolean;
19
19
  /** 是否隐藏标题栏 */
20
20
  showHeader?: boolean;
21
+ /** 是否块级元素,占满父元素宽度 */
22
+ block?: boolean;
21
23
  }
22
24
  export interface TabsEmits {
23
25
  /** 选中选项卡变化时触发 */
@@ -7,7 +7,7 @@ export declare const STag: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setup
7
7
  }, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
8
8
  props: PublicProps & {
9
9
  type?: "default" | "primary" | "success" | "warning" | "danger" | "info" | undefined;
10
- size?: "small" | "medium" | "large" | undefined;
10
+ size?: "tiny" | "mini" | "small" | "medium" | "large" | undefined;
11
11
  closeable?: boolean | undefined;
12
12
  color?: string | undefined;
13
13
  effect?: "filled" | "solid" | "outline" | undefined;
@@ -11,7 +11,7 @@ var _ = /*@__PURE__*/ s({
11
11
  __name: "tag",
12
12
  props: {
13
13
  type: { default: "default" },
14
- size: { default: "medium" },
14
+ size: { default: "mini" },
15
15
  closeable: { type: Boolean },
16
16
  color: {},
17
17
  effect: { default: "filled" }
@@ -6,7 +6,7 @@ export interface TagProps {
6
6
  /** 标签大小
7
7
  * @default medium
8
8
  */
9
- size?: "small" | "medium" | "large";
9
+ size?: "tiny" | "mini" | "small" | "medium" | "large";
10
10
  /** 是否显示关闭按钮 */
11
11
  closeable?: boolean;
12
12
  /** 标签颜色 */