savor-ui 0.13.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/es/components/src/tag/index.d.ts +1 -1
- package/dist/es/components/src/tag/tag.vue_vue_type_script_setup_true_vapor_true_lang.mjs +1 -1
- package/dist/es/components/src/tag/types.d.ts +1 -1
- package/dist/es/components/src/text/text.vue_vue_type_script_setup_true_vapor_true_lang.mjs +71 -45
- package/dist/es/hooks/src/use-theme.d.ts +2 -0
- package/dist/es/theme/common/var.scss +1 -1
- package/dist/es/theme/components/input-group.scss +0 -81
- package/dist/es/theme/components/tag.scss +6 -12
- package/dist/es/utils/src/theme/themeMap.mjs +1 -0
- package/dist/json/web-types.json +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
+
## [0.13.1](https://gitee.com/mach552/savor-ui/compare/v0.13.0...v0.13.1) (2026-07-22)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **text:** 修复没有省略号时tooltip依然显示的问题 ([114f945](https://gitee.com/mach552/savor-ui/commits/114f9454df35f978ba720fe050bfaf823fffcba3))
|
|
11
|
+
|
|
5
12
|
# [0.13.0](https://gitee.com/mach552/savor-ui/compare/v0.12.2...v0.13.0) (2026-07-22)
|
|
6
13
|
|
|
7
14
|
|
|
@@ -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;
|
|
@@ -6,11 +6,11 @@ import r from "../../../icons/src/edit.vue.mjs";
|
|
|
6
6
|
import "../../../icons/index.mjs";
|
|
7
7
|
import { STooltip as i } from "../tooltip/index.mjs";
|
|
8
8
|
import { SInput as a } from "../input/index.mjs";
|
|
9
|
-
import { computed as o, createComponent as s, createDynamicComponent as c, createIf as l, createInvoker as u, createSlot as d, createTemplateRefSetter as f, defineVaporComponent as p, delegateEvents as m, mergeModels as h, nextTick as g, ref as _, renderEffect as v, setClass as y, setInsertionState as b, setStyle as x, setText as S, template as C, toDisplayString as w, txt as T, unref as E, useModel as D, useTemplateRef as O } from "vue";
|
|
9
|
+
import { computed as o, createComponent as s, createDynamicComponent as c, createIf as l, createInvoker as u, createSlot as d, createTemplateRefSetter as f, defineVaporComponent as p, delegateEvents as m, mergeModels as h, nextTick as g, ref as _, renderEffect as v, setClass as y, setInsertionState as b, setStyle as x, setText as S, template as C, toDisplayString as w, txt as T, unref as E, useModel as D, useTemplateRef as O, watch as k, watchPostEffect as A } from "vue";
|
|
10
10
|
//#region ../components/src/text/text.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
11
|
-
var
|
|
11
|
+
var j = C("<div>"), M = C(" "), N = C("<div></div>"), P = C("<div> </div>"), F = C("<div> ");
|
|
12
12
|
m("click");
|
|
13
|
-
var
|
|
13
|
+
var I = /*@__PURE__*/ p({
|
|
14
14
|
name: "SText",
|
|
15
15
|
__name: "text",
|
|
16
16
|
props: /*@__PURE__*/ h({
|
|
@@ -30,15 +30,35 @@ var P = /*@__PURE__*/ p({
|
|
|
30
30
|
}),
|
|
31
31
|
emits: ["update:modelValue"],
|
|
32
32
|
setup(p) {
|
|
33
|
-
let m = p, h = e("text"), C = D(p, "modelValue"),
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
let m = p, h = e("text"), C = D(p, "modelValue"), I = O("labelRef"), L = o(() => ({ "-webkit-line-clamp": m.lineClamp })), R = _(!1), z = () => {
|
|
34
|
+
let e = I.value;
|
|
35
|
+
if (!e) {
|
|
36
|
+
R.value = !1;
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
R.value = e.scrollWidth > e.clientWidth || e.scrollHeight > e.clientHeight;
|
|
40
|
+
};
|
|
41
|
+
A((e) => {
|
|
42
|
+
let t = I.value;
|
|
43
|
+
if (!t || typeof ResizeObserver > "u") return;
|
|
44
|
+
z();
|
|
45
|
+
let n = new ResizeObserver(z);
|
|
46
|
+
n.observe(t), e(() => n.disconnect());
|
|
47
|
+
}), k(() => [
|
|
48
|
+
m.label,
|
|
49
|
+
m.ellipsis,
|
|
50
|
+
m.lineClamp,
|
|
51
|
+
C.value
|
|
52
|
+
], () => g(z));
|
|
53
|
+
let B = _(!1), V = O("inputRef"), H = () => {
|
|
54
|
+
B.value = !0, g(() => V.value?.focus());
|
|
55
|
+
}, U = () => {
|
|
56
|
+
B.value = !1;
|
|
57
|
+
}, W = _(!1), G = async () => {
|
|
58
|
+
await K(m.label || I.value?.textContent || ""), W.value = !0, setTimeout(() => {
|
|
59
|
+
W.value = !1;
|
|
40
60
|
}, 3e3);
|
|
41
|
-
},
|
|
61
|
+
}, K = async (e) => {
|
|
42
62
|
try {
|
|
43
63
|
if (navigator.clipboard && window.isSecureContext) return await navigator.clipboard.writeText(e), !0;
|
|
44
64
|
} catch (e) {
|
|
@@ -52,7 +72,7 @@ var P = /*@__PURE__*/ p({
|
|
|
52
72
|
} catch (e) {
|
|
53
73
|
return console.error("复制失败:", e), !1;
|
|
54
74
|
}
|
|
55
|
-
},
|
|
75
|
+
}, q = f();
|
|
56
76
|
return c(() => p.tag, { class: () => [
|
|
57
77
|
E(h).b(),
|
|
58
78
|
E(h).m(p.type),
|
|
@@ -60,92 +80,98 @@ var P = /*@__PURE__*/ p({
|
|
|
60
80
|
E(h).is("edit", p.edit)
|
|
61
81
|
] }, () => [l(() => !p.edit, () => [
|
|
62
82
|
l(() => p.bar, () => {
|
|
63
|
-
let e =
|
|
83
|
+
let e = j();
|
|
64
84
|
return v(() => y(e, [E(h).e("bar")])), e;
|
|
65
85
|
}, null, 129),
|
|
66
|
-
l(() => p.tooltip, () => s(E(i),
|
|
86
|
+
l(() => p.tooltip, () => s(E(i), {
|
|
87
|
+
mini: "",
|
|
88
|
+
disabled: () => !R.value
|
|
89
|
+
}, {
|
|
67
90
|
content: () => {
|
|
68
|
-
let e =
|
|
69
|
-
return v(() => S(e, w(p.label ||
|
|
91
|
+
let e = M();
|
|
92
|
+
return v(() => S(e, w(p.label || I.value?.textContent))), e;
|
|
70
93
|
},
|
|
71
94
|
default: () => {
|
|
72
|
-
let e =
|
|
95
|
+
let e = N();
|
|
73
96
|
return v(() => {
|
|
74
97
|
let t = E(h);
|
|
75
98
|
y(e, [
|
|
76
99
|
t.e("label"),
|
|
77
100
|
t.is("ellipsis", p.ellipsis),
|
|
78
101
|
t.is("line-clamp", !!p.lineClamp)
|
|
79
|
-
]), x(e,
|
|
102
|
+
]), x(e, L.value);
|
|
80
103
|
}), b(e, null, 0), d("default", null, () => {
|
|
81
|
-
let e =
|
|
104
|
+
let e = M();
|
|
82
105
|
return v(() => S(e, w(p.label))), e;
|
|
83
|
-
}),
|
|
106
|
+
}), q(e, I, null, "labelRef"), e;
|
|
84
107
|
}
|
|
85
108
|
}), () => {
|
|
86
|
-
let e =
|
|
109
|
+
let e = j();
|
|
87
110
|
return v(() => {
|
|
88
111
|
let t = E(h);
|
|
89
112
|
y(e, [
|
|
90
113
|
t.e("label"),
|
|
91
114
|
t.is("ellipsis", p.ellipsis),
|
|
92
115
|
t.is("line-clamp", !!p.lineClamp)
|
|
93
|
-
]), x(e,
|
|
116
|
+
]), x(e, L.value);
|
|
94
117
|
}), b(e, null, 0), d("default", null, () => {
|
|
95
|
-
let e =
|
|
118
|
+
let e = M();
|
|
96
119
|
return v(() => S(e, w(p.label))), e;
|
|
97
|
-
}),
|
|
120
|
+
}), q(e, I, null, "labelRef"), e;
|
|
98
121
|
}, 645),
|
|
99
|
-
l(() => p.copy && !
|
|
100
|
-
let e =
|
|
101
|
-
return v(() => y(e, [E(h).e("copy-icon")])), b(e, null, 0), s(E(n)), e.$evtclick = u(
|
|
122
|
+
l(() => p.copy && !W.value, () => {
|
|
123
|
+
let e = j();
|
|
124
|
+
return v(() => y(e, [E(h).e("copy-icon")])), b(e, null, 0), s(E(n)), e.$evtclick = u(G), e;
|
|
102
125
|
}, null, 129),
|
|
103
|
-
l(() => p.copy &&
|
|
104
|
-
let e =
|
|
126
|
+
l(() => p.copy && W.value, () => {
|
|
127
|
+
let e = j();
|
|
105
128
|
return v(() => y(e, [E(h).e("copy-done")])), b(e, null, 0), s(E(t)), e;
|
|
106
129
|
}, null, 129)
|
|
107
130
|
], null, 130), l(() => p.edit, () => {
|
|
108
|
-
let e =
|
|
109
|
-
return v(() => y(e, [E(h).e("edit")])), b(e, null, 0), l(() =>
|
|
131
|
+
let e = j();
|
|
132
|
+
return v(() => y(e, [E(h).e("edit")])), b(e, null, 0), l(() => B.value, () => {
|
|
110
133
|
let e = s(E(a), {
|
|
111
134
|
modelValue: () => C.value,
|
|
112
135
|
"onUpdate:modelValue": () => (e) => C.value = e,
|
|
113
136
|
size: () => p.size,
|
|
114
|
-
onBlur: () =>
|
|
137
|
+
onBlur: () => U
|
|
115
138
|
});
|
|
116
|
-
return
|
|
117
|
-
}, () => [l(() => p.tooltip, () => s(E(i),
|
|
139
|
+
return q(e, V, null, "inputRef"), e;
|
|
140
|
+
}, () => [l(() => p.tooltip, () => s(E(i), {
|
|
141
|
+
mini: "",
|
|
142
|
+
disabled: () => !R.value
|
|
143
|
+
}, {
|
|
118
144
|
content: () => {
|
|
119
|
-
let e =
|
|
120
|
-
return v(() => S(e, w(C.value ||
|
|
145
|
+
let e = M();
|
|
146
|
+
return v(() => S(e, w(C.value || I.value?.textContent))), e;
|
|
121
147
|
},
|
|
122
148
|
default: () => {
|
|
123
|
-
let e =
|
|
124
|
-
return
|
|
149
|
+
let e = P(), t = T(e);
|
|
150
|
+
return q(e, I, null, "labelRef"), v(() => {
|
|
125
151
|
let n = E(h);
|
|
126
152
|
y(e, [
|
|
127
153
|
n.e("label"),
|
|
128
154
|
n.is("ellipsis", p.ellipsis),
|
|
129
155
|
n.is("line-clamp", !!p.lineClamp)
|
|
130
|
-
]), x(e,
|
|
156
|
+
]), x(e, L.value), S(t, w(C.value));
|
|
131
157
|
}), e;
|
|
132
158
|
}
|
|
133
159
|
}), () => {
|
|
134
|
-
let e =
|
|
160
|
+
let e = F(), t = T(e);
|
|
135
161
|
return v(() => {
|
|
136
162
|
let n = E(h);
|
|
137
163
|
y(e, [
|
|
138
164
|
n.e("label"),
|
|
139
165
|
n.is("ellipsis", p.ellipsis),
|
|
140
166
|
n.is("line-clamp", !!p.lineClamp)
|
|
141
|
-
]), x(e,
|
|
167
|
+
]), x(e, L.value), S(t, w(C.value));
|
|
142
168
|
}), e;
|
|
143
|
-
}, 1797), l(() => !
|
|
144
|
-
let e =
|
|
145
|
-
return v(() => y(e, [E(h).e("edit-icon")])), b(e, null, 0), s(E(r)), e.$evtclick = u(
|
|
169
|
+
}, 1797), l(() => !B.value, () => {
|
|
170
|
+
let e = j();
|
|
171
|
+
return v(() => y(e, [E(h).e("edit-icon")])), b(e, null, 0), s(E(r)), e.$evtclick = u(H), e;
|
|
146
172
|
})], 1545), e;
|
|
147
173
|
}, null, 129)], 1);
|
|
148
174
|
}
|
|
149
175
|
});
|
|
150
176
|
//#endregion
|
|
151
|
-
export {
|
|
177
|
+
export { I as default };
|
|
@@ -35,6 +35,7 @@ export declare function useTheme(options?: UseThemeOptions): {
|
|
|
35
35
|
sizeSmall?: string | undefined;
|
|
36
36
|
sizeMedium?: string | undefined;
|
|
37
37
|
sizeLarge?: string | undefined;
|
|
38
|
+
fontSizeTiny?: string | undefined;
|
|
38
39
|
fontSizeMini?: string | undefined;
|
|
39
40
|
fontSizeSmall?: string | undefined;
|
|
40
41
|
fontSizeMedium?: string | undefined;
|
|
@@ -85,6 +86,7 @@ export declare function useTheme(options?: UseThemeOptions): {
|
|
|
85
86
|
sizeSmall?: string | undefined;
|
|
86
87
|
sizeMedium?: string | undefined;
|
|
87
88
|
sizeLarge?: string | undefined;
|
|
89
|
+
fontSizeTiny?: string | undefined;
|
|
88
90
|
fontSizeMini?: string | undefined;
|
|
89
91
|
fontSizeSmall?: string | undefined;
|
|
90
92
|
fontSizeMedium?: string | undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
$size-list: mini, small, medium, large;
|
|
1
|
+
$size-list: tiny, mini, small, medium, large;
|
|
2
2
|
$type-list: primary, success, warning, danger, info;
|
|
@@ -6,14 +6,12 @@
|
|
|
6
6
|
display: flex;
|
|
7
7
|
align-items: center;
|
|
8
8
|
|
|
9
|
-
// 所有支持的组件:非首项向左偏移 1px,使相邻边框重叠,合并为单条边框
|
|
10
9
|
> .s-input,
|
|
11
10
|
> .s-input-number,
|
|
12
11
|
> .s-select,
|
|
13
12
|
> .s-cascader,
|
|
14
13
|
> .s-auto-complete,
|
|
15
14
|
> .s-button,
|
|
16
|
-
> .s-color-picker,
|
|
17
15
|
> .s-date-picker,
|
|
18
16
|
> .s-datetime-picker,
|
|
19
17
|
> .s-input-tag,
|
|
@@ -23,8 +21,6 @@
|
|
|
23
21
|
}
|
|
24
22
|
}
|
|
25
23
|
|
|
26
|
-
// 边框载体为 .s-input__wrapper:input / select(单选) / cascader / auto-complete / tree-select(单选)
|
|
27
|
-
// 这些组件均支持 filled 模式(经 SInput 处理);非 filled 自身 hover 边框为 fill-4
|
|
28
24
|
> .s-input,
|
|
29
25
|
> .s-select,
|
|
30
26
|
> .s-cascader,
|
|
@@ -34,12 +30,9 @@
|
|
|
34
30
|
@include be(input, wrapper) {
|
|
35
31
|
border-top-left-radius: 0;
|
|
36
32
|
border-bottom-left-radius: 0;
|
|
37
|
-
// 左边框透明,露出上一个组件的右边框作为共用边框
|
|
38
33
|
border-left-color: transparent;
|
|
39
|
-
// 避免自身背景覆盖上一个组件的右边框
|
|
40
34
|
background-clip: padding-box;
|
|
41
35
|
}
|
|
42
|
-
// 非 filled:hover 左边框 fill-4,focus-within 左边框 primary-5
|
|
43
36
|
&:hover {
|
|
44
37
|
@include be(input, wrapper) {
|
|
45
38
|
border-left-color: getCssVar("color", "fill-4");
|
|
@@ -50,8 +43,6 @@
|
|
|
50
43
|
border-left-color: getCssVar("color", "primary-5");
|
|
51
44
|
}
|
|
52
45
|
}
|
|
53
|
-
// filled:hover 边框 = 背景色(fill-3),focus-within 边框 = primary-5
|
|
54
|
-
// 默认态左边框保持透明,由上一个组件的 filled 右边框(fill-3)提供分隔线
|
|
55
46
|
&:hover {
|
|
56
47
|
@include be(input, wrapper) {
|
|
57
48
|
@include when(filled) {
|
|
@@ -71,13 +62,10 @@
|
|
|
71
62
|
@include be(input, wrapper) {
|
|
72
63
|
border-top-right-radius: 0;
|
|
73
64
|
border-bottom-right-radius: 0;
|
|
74
|
-
// filled 模式下自身右边框为 fill-2(与背景同色),补一条 fill-3 右边框作为共用边框
|
|
75
|
-
// (下一个组件左边框透明,由本组件右边框提供分隔线,focus 时为 primary-5)
|
|
76
65
|
@include when(filled) {
|
|
77
66
|
border-right-color: getCssVar("color", "fill-3");
|
|
78
67
|
}
|
|
79
68
|
}
|
|
80
|
-
// filled:hover 边框 = 背景色(fill-3),focus-within 边框 = primary-5
|
|
81
69
|
&:hover {
|
|
82
70
|
@include be(input, wrapper) {
|
|
83
71
|
@include when(filled) {
|
|
@@ -95,17 +83,14 @@
|
|
|
95
83
|
}
|
|
96
84
|
}
|
|
97
85
|
|
|
98
|
-
// select 多选:边框载体为 .s-select__tags-wrapper,支持 filled,非 filled 自身 hover 为 fill-4
|
|
99
86
|
> .s-select {
|
|
100
87
|
&:not(:first-child) {
|
|
101
88
|
@include be(select, tags-wrapper) {
|
|
102
89
|
border-top-left-radius: 0;
|
|
103
90
|
border-bottom-left-radius: 0;
|
|
104
|
-
// 左边框透明,露出上一个组件的右边框作为共用边框
|
|
105
91
|
border-left-color: transparent;
|
|
106
92
|
background-clip: padding-box;
|
|
107
93
|
}
|
|
108
|
-
// 非 filled:hover 左边框 fill-4,focus-within 左边框 primary-5
|
|
109
94
|
&:hover {
|
|
110
95
|
@include be(select, tags-wrapper) {
|
|
111
96
|
border-left-color: getCssVar("color", "fill-4");
|
|
@@ -116,7 +101,6 @@
|
|
|
116
101
|
border-left-color: getCssVar("color", "primary-5");
|
|
117
102
|
}
|
|
118
103
|
}
|
|
119
|
-
// filled:hover 边框 = 背景色(fill-3),focus-within 边框 = primary-5;默认态左边框透明
|
|
120
104
|
&:hover {
|
|
121
105
|
@include be(select, tags-wrapper) {
|
|
122
106
|
@include when(filled) {
|
|
@@ -136,12 +120,10 @@
|
|
|
136
120
|
@include be(select, tags-wrapper) {
|
|
137
121
|
border-top-right-radius: 0;
|
|
138
122
|
border-bottom-right-radius: 0;
|
|
139
|
-
// filled 模式下自身右边框为 fill-2(与背景同色),补一条 fill-3 右边框作为共用边框
|
|
140
123
|
@include when(filled) {
|
|
141
124
|
border-right-color: getCssVar("color", "fill-3");
|
|
142
125
|
}
|
|
143
126
|
}
|
|
144
|
-
// filled:hover 边框 = 背景色(fill-3),focus-within 边框 = primary-5
|
|
145
127
|
&:hover {
|
|
146
128
|
@include be(select, tags-wrapper) {
|
|
147
129
|
@include when(filled) {
|
|
@@ -159,7 +141,6 @@
|
|
|
159
141
|
}
|
|
160
142
|
}
|
|
161
143
|
|
|
162
|
-
// input-number:边框载体为 .s-input-number__wrapper,支持 filled,非 filled 自身 hover 为 fill-4
|
|
163
144
|
> .s-input-number {
|
|
164
145
|
&:not(:first-child) {
|
|
165
146
|
@include be(input-number, wrapper) {
|
|
@@ -169,7 +150,6 @@
|
|
|
169
150
|
border-left-color: transparent;
|
|
170
151
|
background-clip: padding-box;
|
|
171
152
|
}
|
|
172
|
-
// 非 filled:hover 左边框 fill-4,focus-within 左边框 primary-5
|
|
173
153
|
&:hover {
|
|
174
154
|
@include be(input-number, wrapper) {
|
|
175
155
|
border-left-color: getCssVar("color", "fill-4");
|
|
@@ -180,7 +160,6 @@
|
|
|
180
160
|
border-left-color: getCssVar("color", "primary-5");
|
|
181
161
|
}
|
|
182
162
|
}
|
|
183
|
-
// filled:hover 边框 = 背景色(fill-3),focus-within 边框 = primary-5;默认态左边框透明
|
|
184
163
|
&:hover {
|
|
185
164
|
@include be(input-number, wrapper) {
|
|
186
165
|
@include when(filled) {
|
|
@@ -200,12 +179,10 @@
|
|
|
200
179
|
@include be(input-number, wrapper) {
|
|
201
180
|
border-top-right-radius: 0;
|
|
202
181
|
border-bottom-right-radius: 0;
|
|
203
|
-
// filled 模式下自身右边框为 fill-2(与背景同色),补一条 fill-3 右边框作为共用边框
|
|
204
182
|
@include when(filled) {
|
|
205
183
|
border-right-color: getCssVar("color", "fill-3");
|
|
206
184
|
}
|
|
207
185
|
}
|
|
208
|
-
// filled:hover 边框 = 背景色(fill-3),focus-within 边框 = primary-5
|
|
209
186
|
&:hover {
|
|
210
187
|
@include be(input-number, wrapper) {
|
|
211
188
|
@include when(filled) {
|
|
@@ -223,17 +200,14 @@
|
|
|
223
200
|
}
|
|
224
201
|
}
|
|
225
202
|
|
|
226
|
-
// tree-select 多选:边框载体为 .s-tree-select__tags-wrapper,支持 filled,非 filled 自身 hover 为 fill-4
|
|
227
203
|
> .s-tree-select {
|
|
228
204
|
&:not(:first-child) {
|
|
229
205
|
@include be(tree-select, tags-wrapper) {
|
|
230
206
|
border-top-left-radius: 0;
|
|
231
207
|
border-bottom-left-radius: 0;
|
|
232
|
-
// 左边框透明,露出上一个组件的右边框作为共用边框
|
|
233
208
|
border-left-color: transparent;
|
|
234
209
|
background-clip: padding-box;
|
|
235
210
|
}
|
|
236
|
-
// 非 filled:hover 左边框 fill-4,focus-within 左边框 primary-5
|
|
237
211
|
&:hover {
|
|
238
212
|
@include be(tree-select, tags-wrapper) {
|
|
239
213
|
border-left-color: getCssVar("color", "fill-4");
|
|
@@ -244,7 +218,6 @@
|
|
|
244
218
|
border-left-color: getCssVar("color", "primary-5");
|
|
245
219
|
}
|
|
246
220
|
}
|
|
247
|
-
// filled:hover 边框 = 背景色(fill-3),focus-within 边框 = primary-5;默认态左边框透明
|
|
248
221
|
&:hover {
|
|
249
222
|
@include be(tree-select, tags-wrapper) {
|
|
250
223
|
@include when(filled) {
|
|
@@ -264,12 +237,10 @@
|
|
|
264
237
|
@include be(tree-select, tags-wrapper) {
|
|
265
238
|
border-top-right-radius: 0;
|
|
266
239
|
border-bottom-right-radius: 0;
|
|
267
|
-
// filled 模式下自身右边框为 fill-2(与背景同色),补一条 fill-3 右边框作为共用边框
|
|
268
240
|
@include when(filled) {
|
|
269
241
|
border-right-color: getCssVar("color", "fill-3");
|
|
270
242
|
}
|
|
271
243
|
}
|
|
272
|
-
// filled:hover 边框 = 背景色(fill-3),focus-within 边框 = primary-5
|
|
273
244
|
&:hover {
|
|
274
245
|
@include be(tree-select, tags-wrapper) {
|
|
275
246
|
@include when(filled) {
|
|
@@ -287,17 +258,14 @@
|
|
|
287
258
|
}
|
|
288
259
|
}
|
|
289
260
|
|
|
290
|
-
// date-picker:边框载体为 .s-date-picker__wrapper,支持 filled,非 filled 自身 hover 为 fill-4
|
|
291
261
|
> .s-date-picker {
|
|
292
262
|
&:not(:first-child) {
|
|
293
263
|
@include be(date-picker, wrapper) {
|
|
294
264
|
border-top-left-radius: 0;
|
|
295
265
|
border-bottom-left-radius: 0;
|
|
296
|
-
// 左边框透明,露出上一个组件的右边框作为共用边框
|
|
297
266
|
border-left-color: transparent;
|
|
298
267
|
background-clip: padding-box;
|
|
299
268
|
}
|
|
300
|
-
// 非 filled:hover 左边框 fill-4,focus-within 左边框 primary-5
|
|
301
269
|
&:hover {
|
|
302
270
|
@include be(date-picker, wrapper) {
|
|
303
271
|
border-left-color: getCssVar("color", "fill-4");
|
|
@@ -308,7 +276,6 @@
|
|
|
308
276
|
border-left-color: getCssVar("color", "primary-5");
|
|
309
277
|
}
|
|
310
278
|
}
|
|
311
|
-
// filled:hover 边框 = 背景色(fill-3),focus-within 边框 = primary-5;默认态左边框透明
|
|
312
279
|
&:hover {
|
|
313
280
|
@include be(date-picker, wrapper) {
|
|
314
281
|
@include when(filled) {
|
|
@@ -328,12 +295,10 @@
|
|
|
328
295
|
@include be(date-picker, wrapper) {
|
|
329
296
|
border-top-right-radius: 0;
|
|
330
297
|
border-bottom-right-radius: 0;
|
|
331
|
-
// filled 模式下自身右边框为 fill-2(与背景同色),补一条 fill-3 右边框作为共用边框
|
|
332
298
|
@include when(filled) {
|
|
333
299
|
border-right-color: getCssVar("color", "fill-3");
|
|
334
300
|
}
|
|
335
301
|
}
|
|
336
|
-
// filled:hover 边框 = 背景色(fill-3),focus-within 边框 = primary-5
|
|
337
302
|
&:hover {
|
|
338
303
|
@include be(date-picker, wrapper) {
|
|
339
304
|
@include when(filled) {
|
|
@@ -351,17 +316,14 @@
|
|
|
351
316
|
}
|
|
352
317
|
}
|
|
353
318
|
|
|
354
|
-
// datetime-picker:边框载体为 .s-datetime-picker__wrapper,支持 filled,非 filled 自身 hover 为 fill-4
|
|
355
319
|
> .s-datetime-picker {
|
|
356
320
|
&:not(:first-child) {
|
|
357
321
|
@include be(datetime-picker, wrapper) {
|
|
358
322
|
border-top-left-radius: 0;
|
|
359
323
|
border-bottom-left-radius: 0;
|
|
360
|
-
// 左边框透明,露出上一个组件的右边框作为共用边框
|
|
361
324
|
border-left-color: transparent;
|
|
362
325
|
background-clip: padding-box;
|
|
363
326
|
}
|
|
364
|
-
// 非 filled:hover 左边框 fill-4,focus-within 左边框 primary-5
|
|
365
327
|
&:hover {
|
|
366
328
|
@include be(datetime-picker, wrapper) {
|
|
367
329
|
border-left-color: getCssVar("color", "fill-4");
|
|
@@ -372,7 +334,6 @@
|
|
|
372
334
|
border-left-color: getCssVar("color", "primary-5");
|
|
373
335
|
}
|
|
374
336
|
}
|
|
375
|
-
// filled:hover 边框 = 背景色(fill-3),focus-within 边框 = primary-5;默认态左边框透明
|
|
376
337
|
&:hover {
|
|
377
338
|
@include be(datetime-picker, wrapper) {
|
|
378
339
|
@include when(filled) {
|
|
@@ -392,12 +353,10 @@
|
|
|
392
353
|
@include be(datetime-picker, wrapper) {
|
|
393
354
|
border-top-right-radius: 0;
|
|
394
355
|
border-bottom-right-radius: 0;
|
|
395
|
-
// filled 模式下自身右边框为 fill-2(与背景同色),补一条 fill-3 右边框作为共用边框
|
|
396
356
|
@include when(filled) {
|
|
397
357
|
border-right-color: getCssVar("color", "fill-3");
|
|
398
358
|
}
|
|
399
359
|
}
|
|
400
|
-
// filled:hover 边框 = 背景色(fill-3),focus-within 边框 = primary-5
|
|
401
360
|
&:hover {
|
|
402
361
|
@include be(datetime-picker, wrapper) {
|
|
403
362
|
@include when(filled) {
|
|
@@ -415,17 +374,14 @@
|
|
|
415
374
|
}
|
|
416
375
|
}
|
|
417
376
|
|
|
418
|
-
// input-tag:边框载体为 .s-input-tag__wrapper,支持 filled,非 filled 自身 hover 为 fill-4
|
|
419
377
|
> .s-input-tag {
|
|
420
378
|
&:not(:first-child) {
|
|
421
379
|
@include be(input-tag, wrapper) {
|
|
422
380
|
border-top-left-radius: 0;
|
|
423
381
|
border-bottom-left-radius: 0;
|
|
424
|
-
// 左边框透明,露出上一个组件的右边框作为共用边框
|
|
425
382
|
border-left-color: transparent;
|
|
426
383
|
background-clip: padding-box;
|
|
427
384
|
}
|
|
428
|
-
// 非 filled:hover 左边框 fill-4,focus-within 左边框 primary-5
|
|
429
385
|
&:hover {
|
|
430
386
|
@include be(input-tag, wrapper) {
|
|
431
387
|
border-left-color: getCssVar("color", "fill-4");
|
|
@@ -436,7 +392,6 @@
|
|
|
436
392
|
border-left-color: getCssVar("color", "primary-5");
|
|
437
393
|
}
|
|
438
394
|
}
|
|
439
|
-
// filled:hover 边框 = 背景色(fill-3),focus-within 边框 = primary-5;默认态左边框透明
|
|
440
395
|
&:hover {
|
|
441
396
|
@include be(input-tag, wrapper) {
|
|
442
397
|
@include when(filled) {
|
|
@@ -456,12 +411,10 @@
|
|
|
456
411
|
@include be(input-tag, wrapper) {
|
|
457
412
|
border-top-right-radius: 0;
|
|
458
413
|
border-bottom-right-radius: 0;
|
|
459
|
-
// filled 模式下自身右边框为 fill-2(与背景同色),补一条 fill-3 右边框作为共用边框
|
|
460
414
|
@include when(filled) {
|
|
461
415
|
border-right-color: getCssVar("color", "fill-3");
|
|
462
416
|
}
|
|
463
417
|
}
|
|
464
|
-
// filled:hover 边框 = 背景色(fill-3),focus-within 边框 = primary-5
|
|
465
418
|
&:hover {
|
|
466
419
|
@include be(input-tag, wrapper) {
|
|
467
420
|
@include when(filled) {
|
|
@@ -479,46 +432,12 @@
|
|
|
479
432
|
}
|
|
480
433
|
}
|
|
481
434
|
|
|
482
|
-
// color-picker:trigger 自身无边框,组内补一条边框以统一视觉;边框载体为 .s-color-picker__trigger
|
|
483
|
-
> .s-color-picker {
|
|
484
|
-
@include be(color-picker, trigger) {
|
|
485
|
-
border: 1px solid getCssVar("color", "fill-3");
|
|
486
|
-
background-clip: padding-box;
|
|
487
|
-
&:hover {
|
|
488
|
-
border-color: getCssVar("color", "fill-4");
|
|
489
|
-
}
|
|
490
|
-
}
|
|
491
|
-
&:not(:first-child) {
|
|
492
|
-
@include be(color-picker, trigger) {
|
|
493
|
-
border-top-left-radius: 0;
|
|
494
|
-
border-bottom-left-radius: 0;
|
|
495
|
-
// 左边框透明,露出上一个组件的右边框作为共用边框
|
|
496
|
-
border-left-color: transparent;
|
|
497
|
-
&:hover,
|
|
498
|
-
&:active {
|
|
499
|
-
border-left-color: getCssVar("color", "primary-5");
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
&:not(:last-child) {
|
|
504
|
-
@include be(color-picker, trigger) {
|
|
505
|
-
border-top-right-radius: 0;
|
|
506
|
-
border-bottom-right-radius: 0;
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
// button:边框载体为根节点 .s-button
|
|
512
435
|
> .s-button {
|
|
513
436
|
&:not(:first-child) {
|
|
514
437
|
border-top-left-radius: 0;
|
|
515
438
|
border-bottom-left-radius: 0;
|
|
516
439
|
border-left-color: transparent;
|
|
517
440
|
background-clip: padding-box;
|
|
518
|
-
&:hover,
|
|
519
|
-
&:active {
|
|
520
|
-
border-left-color: getCssVar("color", "primary-5");
|
|
521
|
-
}
|
|
522
441
|
}
|
|
523
442
|
&:not(:last-child) {
|
|
524
443
|
border-top-right-radius: 0;
|
|
@@ -42,18 +42,12 @@
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
@
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
height: getCssVar("size", "mini");
|
|
52
|
-
line-height: getCssVar("size", "mini");
|
|
53
|
-
}
|
|
54
|
-
@include m(large) {
|
|
55
|
-
height: getCssVar("size", "small");
|
|
56
|
-
line-height: getCssVar("size", "small");
|
|
45
|
+
@each $size in $size-list {
|
|
46
|
+
@include m(#{$size}) {
|
|
47
|
+
height: getCssVar("size", #{$size});
|
|
48
|
+
line-height: getCssVar("size", #{$size});
|
|
49
|
+
font-size: getCssVar("font-size", #{$size});
|
|
50
|
+
}
|
|
57
51
|
}
|
|
58
52
|
@include e(icon) {
|
|
59
53
|
font-size: getCssVar("font-size", "mini");
|
package/dist/json/web-types.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
|
|
3
3
|
"framework": "vue",
|
|
4
4
|
"name": "savor-ui",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.13.0",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
8
8
|
"types-syntax": "typescript",
|
|
@@ -6036,7 +6036,7 @@
|
|
|
6036
6036
|
"name": "size",
|
|
6037
6037
|
"description": "标签大小",
|
|
6038
6038
|
"value": {
|
|
6039
|
-
"type": "small | medium | large",
|
|
6039
|
+
"type": "tiny | mini | small | medium | large",
|
|
6040
6040
|
"kind": "expression"
|
|
6041
6041
|
}
|
|
6042
6042
|
},
|