@varlet/ui 1.27.8 → 1.27.9-alpha.1653036733481

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 (66) hide show
  1. package/es/badge/Badge.js +1 -1
  2. package/es/card/Card.js +213 -12
  3. package/es/card/card.css +1 -1
  4. package/es/card/card.less +109 -7
  5. package/es/card/props.js +18 -0
  6. package/es/index-bar/IndexBar.js +4 -4
  7. package/es/index-bar/props.js +1 -1
  8. package/es/loading/Loading.js +5 -14
  9. package/es/loading/loading.css +1 -1
  10. package/es/loading/loading.less +20 -0
  11. package/es/picker/Picker.js +2 -1
  12. package/es/progress/Progress.js +14 -11
  13. package/es/progress/progress.css +1 -1
  14. package/es/progress/progress.less +3 -0
  15. package/es/progress/props.js +1 -1
  16. package/es/rate/Rate.js +4 -2
  17. package/es/rate/props.js +2 -4
  18. package/es/rate/rate.css +1 -1
  19. package/es/rate/rate.less +7 -0
  20. package/es/select/Select.js +3 -1
  21. package/es/slider/Slider.js +10 -9
  22. package/es/style.css +1 -1
  23. package/es/switch/Switch.js +22 -19
  24. package/es/switch/props.js +1 -2
  25. package/es/switch/switch.css +1 -1
  26. package/es/switch/switch.less +18 -4
  27. package/es/utils/elements.js +13 -0
  28. package/es/utils/jest.js +19 -0
  29. package/es/varlet.esm.js +319 -90
  30. package/highlight/attributes.json +20 -4
  31. package/highlight/tags.json +5 -1
  32. package/highlight/web-types.json +49 -5
  33. package/lib/badge/Badge.js +1 -1
  34. package/lib/card/Card.js +213 -8
  35. package/lib/card/card.css +1 -1
  36. package/lib/card/card.less +109 -7
  37. package/lib/card/props.js +18 -0
  38. package/lib/index-bar/IndexBar.js +3 -3
  39. package/lib/index-bar/props.js +1 -1
  40. package/lib/loading/Loading.js +6 -15
  41. package/lib/loading/loading.css +1 -1
  42. package/lib/loading/loading.less +20 -0
  43. package/lib/picker/Picker.js +2 -1
  44. package/lib/progress/Progress.js +15 -11
  45. package/lib/progress/progress.css +1 -1
  46. package/lib/progress/progress.less +3 -0
  47. package/lib/progress/props.js +1 -1
  48. package/lib/rate/Rate.js +3 -1
  49. package/lib/rate/props.js +2 -4
  50. package/lib/rate/rate.css +1 -1
  51. package/lib/rate/rate.less +7 -0
  52. package/lib/select/Select.js +3 -1
  53. package/lib/slider/Slider.js +9 -8
  54. package/lib/snackbar/style/index.js +1 -1
  55. package/lib/snackbar/style/less.js +1 -1
  56. package/lib/style.css +1 -1
  57. package/lib/switch/Switch.js +22 -19
  58. package/lib/switch/props.js +1 -2
  59. package/lib/switch/switch.css +1 -1
  60. package/lib/switch/switch.less +18 -4
  61. package/lib/utils/elements.js +17 -1
  62. package/lib/utils/jest.js +21 -0
  63. package/package.json +10 -9
  64. package/types/card.d.ts +2 -0
  65. package/types/indexBar.d.ts +1 -1
  66. package/umd/varlet.js +4 -4
package/es/badge/Badge.js CHANGED
@@ -66,7 +66,7 @@ export default defineComponent({
66
66
  icon
67
67
  } = props;
68
68
  var positionBasic = slots.default && n('position') + " " + n("--" + position);
69
- var dotClass = dot && n('dot');
69
+ var dotClass = dot ? n('dot') : null;
70
70
  var positionClass = getPositionClass();
71
71
  var iconClass = icon ? n('icon') : null;
72
72
  return [n("--" + type), positionBasic, dotClass, positionClass, iconClass];
package/es/card/Card.js CHANGED
@@ -1,37 +1,68 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
2
+
3
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
4
+
1
5
  import Ripple from '../ripple';
2
- import { defineComponent } from 'vue';
6
+ import VarIcon from '../icon';
7
+ import VarButton from '../button';
8
+ import { ref, defineComponent, watch, computed, nextTick } from 'vue';
3
9
  import { props } from './props';
4
- import { toSizeUnit } from '../utils/elements';
5
- import { createNamespace } from '../utils/components';
10
+ import { doubleRaf, toSizeUnit } from '../utils/elements';
11
+ import { call, createNamespace } from '../utils/components';
12
+ import { useZIndex } from '../context/zIndex';
13
+ import { useLock } from '../context/lock';
6
14
  var {
7
15
  n,
8
16
  classes
9
17
  } = createNamespace('card');
10
- import { renderSlot as _renderSlot, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, resolveDirective as _resolveDirective, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from "vue";
18
+ var RIPPLE_DELAY = 500;
19
+ import { renderSlot as _renderSlot, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, withModifiers as _withModifiers, withCtx as _withCtx, resolveDirective as _resolveDirective, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from "vue";
11
20
 
12
21
  var _withScopeId = n => (_pushScopeId(""), n = n(), _popScopeId(), n);
13
22
 
14
23
  var _hoisted_1 = ["src", "alt"];
15
24
  export function render(_ctx, _cache) {
25
+ var _component_var_icon = _resolveComponent("var-icon");
26
+
27
+ var _component_var_button = _resolveComponent("var-button");
28
+
16
29
  var _directive_ripple = _resolveDirective("ripple");
17
30
 
18
- return _withDirectives((_openBlock(), _createElementBlock("div", {
19
- class: _normalizeClass(_ctx.classes(_ctx.n(), [_ctx.elevation, "var-elevation--" + _ctx.elevation, 'var-elevation--2'])),
31
+ return _openBlock(), _createElementBlock("div", {
32
+ ref: "card",
33
+ class: _normalizeClass(_ctx.classes(_ctx.n(), [_ctx.isRow, _ctx.n('--layout-row')])),
20
34
  onClick: _cache[0] || (_cache[0] = function () {
21
35
  return _ctx.onClick && _ctx.onClick(...arguments);
22
36
  })
37
+ }, [_withDirectives((_openBlock(), _createElementBlock("div", {
38
+ ref: "cardFloater",
39
+ class: _normalizeClass(_ctx.classes(_ctx.n('floater'), [_ctx.elevation, "var-elevation--" + _ctx.elevation, 'var-elevation--1'])),
40
+ style: _normalizeStyle({
41
+ width: _ctx.floaterWidth,
42
+ height: _ctx.floaterHeight,
43
+ top: _ctx.floaterTop,
44
+ left: _ctx.floaterLeft,
45
+ overflow: _ctx.floaterOverflow,
46
+ position: _ctx.floaterPosition,
47
+ borderRadius: _ctx.floating ? '0px' : undefined,
48
+ zIndex: _ctx.floated ? _ctx.zIndex : undefined,
49
+ transition: _ctx.floated ? "background-color " + _ctx.floatingDuration + "ms, border-radius " + _ctx.floatingDuration + "ms, width " + _ctx.floatingDuration + "ms, height " + _ctx.floatingDuration + "ms, top " + _ctx.floatingDuration + "ms, left " + _ctx.floatingDuration + "ms" : undefined
50
+ })
23
51
  }, [_renderSlot(_ctx.$slots, "image", {}, () => [_ctx.src ? (_openBlock(), _createElementBlock("img", {
24
52
  key: 0,
25
53
  class: _normalizeClass(_ctx.n('image')),
26
54
  style: _normalizeStyle({
27
55
  objectFit: _ctx.fit,
28
- height: _ctx.toSizeUnit(_ctx.height)
56
+ height: _ctx.toSizeUnit(_ctx.height),
57
+ width: _ctx.toSizeUnit(_ctx.width)
29
58
  }),
30
59
  src: _ctx.src,
31
60
  alt: _ctx.alt
32
61
  }, null, 14
33
62
  /* CLASS, STYLE, PROPS */
34
- , _hoisted_1)) : _createCommentVNode("v-if", true)]), _renderSlot(_ctx.$slots, "title", {}, () => [_ctx.title ? (_openBlock(), _createElementBlock("div", {
63
+ , _hoisted_1)) : _createCommentVNode("v-if", true)]), _createElementVNode("div", {
64
+ class: _normalizeClass(_ctx.n('container'))
65
+ }, [_renderSlot(_ctx.$slots, "title", {}, () => [_ctx.title ? (_openBlock(), _createElementBlock("div", {
35
66
  key: 0,
36
67
  class: _normalizeClass(_ctx.n('title'))
37
68
  }, _toDisplayString(_ctx.title), 3
@@ -51,11 +82,58 @@ export function render(_ctx, _cache) {
51
82
  class: _normalizeClass(_ctx.n('footer'))
52
83
  }, [_renderSlot(_ctx.$slots, "extra")], 2
53
84
  /* CLASS */
85
+ )) : _createCommentVNode("v-if", true), _ctx.$slots.content && !_ctx.isRow ? (_openBlock(), _createElementBlock("div", {
86
+ key: 1,
87
+ class: _normalizeClass(_ctx.n('content')),
88
+ style: _normalizeStyle({
89
+ height: _ctx.contentHeight,
90
+ opacity: _ctx.opacity,
91
+ transition: "opacity " + _ctx.floatingDuration * 2 + "ms"
92
+ })
93
+ }, [_renderSlot(_ctx.$slots, "content")], 6
94
+ /* CLASS, STYLE */
54
95
  )) : _createCommentVNode("v-if", true)], 2
55
96
  /* CLASS */
97
+ ), _ctx.showToolBar ? (_openBlock(), _createElementBlock("div", {
98
+ key: 0,
99
+ class: _normalizeClass(_ctx.classes(_ctx.n('toolbar'), 'var--box')),
100
+ style: _normalizeStyle({
101
+ zIndex: _ctx.zIndex,
102
+ opacity: _ctx.opacity,
103
+ transition: "opacity " + _ctx.floatingDuration * 2 + "ms"
104
+ })
105
+ }, [_renderSlot(_ctx.$slots, "toolbar-close", {}, () => [_createVNode(_component_var_button, {
106
+ size: "large",
107
+ round: "",
108
+ class: _normalizeClass(_ctx.classes(_ctx.n('toolbar-close'), 'var-elevation--6')),
109
+ onClick: _withModifiers(_ctx.close, ["stop"])
110
+ }, {
111
+ default: _withCtx(() => [_createVNode(_component_var_icon, {
112
+ name: "window-close",
113
+ size: "24px"
114
+ })]),
115
+ _: 1
116
+ /* STABLE */
117
+
118
+ }, 8
119
+ /* PROPS */
120
+ , ["class", "onClick"])]), _renderSlot(_ctx.$slots, "toolbar-extra")], 6
121
+ /* CLASS, STYLE */
122
+ )) : _createCommentVNode("v-if", true)], 6
123
+ /* CLASS, STYLE */
56
124
  )), [[_directive_ripple, {
57
- disabled: !_ctx.ripple
58
- }]]);
125
+ disabled: !_ctx.ripple || _ctx.floater
126
+ }]]), _createElementVNode("div", {
127
+ class: _normalizeClass(_ctx.n('holder')),
128
+ style: _normalizeStyle({
129
+ width: _ctx.holderWidth,
130
+ height: _ctx.holderHeight
131
+ })
132
+ }, null, 6
133
+ /* CLASS, STYLE */
134
+ )], 2
135
+ /* CLASS */
136
+ );
59
137
  }
60
138
  export default defineComponent({
61
139
  render,
@@ -63,13 +141,136 @@ export default defineComponent({
63
141
  directives: {
64
142
  Ripple
65
143
  },
144
+ components: {
145
+ VarIcon,
146
+ VarButton
147
+ },
66
148
  props,
67
149
 
68
- setup() {
150
+ setup(props) {
151
+ var card = ref(null);
152
+ var cardFloater = ref(null);
153
+ var holderWidth = ref('auto');
154
+ var holderHeight = ref('auto');
155
+ var floaterWidth = ref('100%');
156
+ var floaterHeight = ref('100%');
157
+ var floaterTop = ref('auto');
158
+ var floaterLeft = ref('auto');
159
+ var floaterPosition = ref('static');
160
+ var floaterOverflow = ref('hidden');
161
+ var contentHeight = ref('0px');
162
+ var opacity = ref('0');
163
+ var {
164
+ zIndex
165
+ } = useZIndex(() => props.floating, 1);
166
+ var isRow = computed(() => props.layout === 'row');
167
+ var showToolBar = ref(false);
168
+ var floated = ref(false);
169
+ useLock(() => props.floating, () => isRow);
170
+ var dropdownFloaterTop = 'auto';
171
+ var dropdownFloaterLeft = 'auto';
172
+ var dropper = null;
173
+ var floater = ref(null);
174
+
175
+ var floating = /*#__PURE__*/function () {
176
+ var _ref = _asyncToGenerator(function* () {
177
+ clearTimeout(floater.value);
178
+ clearTimeout(dropper);
179
+ floater.value = null;
180
+ floater.value = setTimeout( /*#__PURE__*/_asyncToGenerator(function* () {
181
+ var {
182
+ width,
183
+ height,
184
+ left,
185
+ top
186
+ } = card.value.getBoundingClientRect();
187
+ holderWidth.value = toSizeUnit(width);
188
+ holderHeight.value = toSizeUnit(height);
189
+ floaterWidth.value = holderWidth.value;
190
+ floaterHeight.value = holderHeight.value;
191
+ floaterTop.value = toSizeUnit(top);
192
+ floaterLeft.value = toSizeUnit(left);
193
+ floaterPosition.value = 'fixed';
194
+ dropdownFloaterTop = floaterTop.value;
195
+ dropdownFloaterLeft = floaterLeft.value;
196
+ showToolBar.value = true;
197
+ yield doubleRaf();
198
+ floaterTop.value = '0';
199
+ floaterLeft.value = '0';
200
+ floaterWidth.value = '100vw';
201
+ floaterHeight.value = '100vh';
202
+ contentHeight.value = 'auto';
203
+ opacity.value = '1';
204
+ floaterOverflow.value = 'auto';
205
+ floated.value = true;
206
+ }), props.ripple ? RIPPLE_DELAY : 0);
207
+ });
208
+
209
+ return function floating() {
210
+ return _ref.apply(this, arguments);
211
+ };
212
+ }();
213
+
214
+ var dropdown = () => {
215
+ clearTimeout(dropper);
216
+ clearTimeout(floater.value);
217
+ floater.value = null;
218
+ floaterWidth.value = holderWidth.value;
219
+ floaterHeight.value = holderHeight.value;
220
+ floaterTop.value = dropdownFloaterTop;
221
+ floaterLeft.value = dropdownFloaterLeft;
222
+ contentHeight.value = '0px';
223
+ opacity.value = '0';
224
+ showToolBar.value = false;
225
+ dropper = setTimeout(() => {
226
+ holderWidth.value = 'auto';
227
+ holderHeight.value = 'auto';
228
+ floaterWidth.value = '100%';
229
+ floaterHeight.value = '100%';
230
+ floaterTop.value = 'auto';
231
+ floaterLeft.value = 'auto';
232
+ dropdownFloaterTop = 'auto';
233
+ dropdownFloaterLeft = 'auto';
234
+ floaterOverflow.value = 'hidden';
235
+ floaterPosition.value = 'static';
236
+ floated.value = false;
237
+ }, props.floatingDuration);
238
+ };
239
+
240
+ var close = () => {
241
+ call(props['onUpdate:floating'], false);
242
+ };
243
+
244
+ watch(() => props.floating, value => {
245
+ if (isRow.value) return;
246
+ nextTick(() => {
247
+ value ? floating() : dropdown();
248
+ });
249
+ }, {
250
+ immediate: true
251
+ });
69
252
  return {
70
253
  n,
71
254
  classes,
72
- toSizeUnit
255
+ toSizeUnit,
256
+ card,
257
+ cardFloater,
258
+ holderWidth,
259
+ holderHeight,
260
+ floater,
261
+ floaterWidth,
262
+ floaterHeight,
263
+ floaterTop,
264
+ floaterLeft,
265
+ floaterPosition,
266
+ floaterOverflow,
267
+ contentHeight,
268
+ opacity,
269
+ zIndex,
270
+ isRow,
271
+ close,
272
+ showToolBar,
273
+ floated
73
274
  };
74
275
  }
75
276
 
package/es/card/card.css CHANGED
@@ -1 +1 @@
1
- :root { --card-padding: 0 0 15px 0; --card-background: #fff; --card-border-radius: 4px; --card-image-width: 100%; --card-image-height: 200px; --card-title-color: #333; --card-title-font-size: 20px; --card-title-padding: 0 12px; --card-title-margin: 15px 0 0 0; --card-subtitle-color: rgba(0, 0, 0, 0.6); --card-subtitle-font-size: 14px; --card-subtitle-padding: 0 13px; --card-subtitle-margin: 10px 0 0 0; --card-description-color: rgba(0, 0, 0, 0.6); --card-description-font-size: 14px; --card-description-margin: 20px 0 0 0; --card-description-padding: 0 13px; --card-footer-padding: 0 12px; --card-footer-margin: 30px 0 0px 0; --card-line-height: 22px;}.var-card { border-radius: var(--card-border-radius); overflow: hidden; padding: var(--card-padding); line-height: var(--card-line-height); background: var(--card-background); transition: background-color 0.25s;}.var-card__image { width: var(--card-image-width); height: var(--card-image-height); display: block;}.var-card__title { font-size: var(--card-title-font-size); padding: var(--card-title-padding); margin: var(--card-title-margin); color: var(--card-title-color);}.var-card__subtitle { font-size: var(--card-subtitle-font-size); color: var(--card-subtitle-color); padding: var(--card-subtitle-padding); margin: var(--card-subtitle-margin);}.var-card__description { font-size: var(--card-description-font-size); color: var(--card-description-color); margin: var(--card-description-margin); padding: var(--card-description-padding); word-break: break-all;}.var-card__footer { padding: var(--card-footer-padding); margin: var(--card-footer-margin);}
1
+ :root { --card-padding: 0 0 15px 0; --card-background: #fff; --card-border-radius: 4px; --card-image-width: 100%; --card-row-image-width: 150px; --card-image-height: 200px; --card-row-height: 150px; --card-title-color: #333; --card-title-font-size: 20px; --card-title-padding: 0 12px; --card-title-margin: 15px 0 0 0; --card-title-row-margin: 12px 0; --card-subtitle-color: rgba(0, 0, 0, 0.6); --card-subtitle-font-size: 14px; --card-subtitle-padding: 0 12px; --card-subtitle-margin: 10px 0 0 0; --card-subtitle-row-margin: -8px 0 0 0; --card-description-color: rgba(0, 0, 0, 0.6); --card-description-font-size: 14px; --card-description-margin: 20px 0 0 0; --card-description-padding: 0 13px; --card-footer-padding: 0 12px; --card-footer-right: 13px; --card-footer-bottom: 9px; --card-footer-margin: 30px 0 0px 0; --card-line-height: 22px; --card-row-line-height: 1.5; --card-floater-toolbar-bottom: 16px; --card-floater-toolbar-right: 16px; --card-floater-toolbar-color: #fff; --card-floater-toolbar-close-size: 24px; --card-floater-toolbar-close-padding: 16px; --card-floater-toolbar-close-primary-color: #212121;}.var-card--layout-row { height: var(--card-row-height); position: relative;}.var-card__floater { border-radius: var(--card-border-radius); display: flex; flex-direction: column; line-height: var(--card-line-height); background: var(--card-background); transition-timing-function: cubic-bezier(0.45, 0.19, 0.06, 0.89);}.var-card__container { padding: var(--card-padding); flex-grow: 1; min-width: 0;}.var-card--layout-row .var-card__floater { flex-direction: row; line-height: var(--card-row-line-height);}.var-card__image { width: var(--card-image-width); height: var(--card-image-height); display: block;}.var-card--layout-row .var-card__image { width: var(--card-row-image-width); height: 100%; display: block; flex-shrink: 0;}.var-card__title { font-size: var(--card-title-font-size); padding: var(--card-title-padding); margin: var(--card-title-margin); color: var(--card-title-color); word-break: break-word;}.var-card--layout-row .var-card__title { max-width: 100%; overflow: hidden; margin: var(--card-title-row-margin); text-overflow: ellipsis; white-space: nowrap;}.var-card__subtitle { font-size: var(--card-subtitle-font-size); color: var(--card-subtitle-color); padding: var(--card-subtitle-padding); margin: var(--card-subtitle-margin); word-break: break-word;}.var-card--layout-row .var-card__subtitle { margin: var(--card-subtitle-row-margin); text-overflow: ellipsis; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;}.var-card__description { font-size: var(--card-description-font-size); color: var(--card-description-color); margin: var(--card-description-margin); padding: var(--card-description-padding); word-break: break-all;}.var-card__footer { display: flex; justify-content: flex-end; padding: var(--card-footer-padding); margin: var(--card-footer-margin);}.var-card--layout-row .var-card__footer { position: absolute; padding: 0; right: var(--card-footer-right); bottom: var(--card-footer-bottom);}.var-card__content { overflow: hidden; transition-timing-function: cubic-bezier(0.45, 0.19, 0.06, 0.89);}.var-card__toolbar { position: fixed; bottom: var(--card-floater-toolbar-bottom); right: var(--card-floater-toolbar-right);}.var-card__toolbar-close { padding: var(--card-floater-toolbar-close-padding); background-color: var(--card-floater-toolbar-close-primary-color); color: var(--card-floater-toolbar-color);}.var-card__toolbar-close .var-icon { width: var(--card-floater-toolbar-close-size); height: var(--card-floater-toolbar-close-size); font-size: var(--card-floater-toolbar-close-size);}
package/es/card/card.less CHANGED
@@ -2,53 +2,97 @@
2
2
  @card-background: #fff;
3
3
  @card-border-radius: 4px;
4
4
  @card-image-width: 100%;
5
+ @card-row-image-width: 150px;
6
+ @card-row-height: 150px;
5
7
  @card-image-height: 200px;
6
8
  @card-title-color: #333;
7
9
  @card-title-font-size: 20px;
8
10
  @card-title-padding: 0 12px;
9
11
  @card-title-margin: 15px 0 0 0;
12
+ @card-title-row-margin: 12px 0;
10
13
  @card-subtitle-color: rgba(0, 0, 0, 0.6);
11
14
  @card-subtitle-font-size: 14px;
12
- @card-subtitle-padding: 0 13px;
15
+ @card-subtitle-padding: 0 12px;
16
+ @card-subtitle-row-margin: -8px 0 0 0;
13
17
  @card-subtitle-margin: 10px 0 0 0;
14
18
  @card-description-color: rgba(0, 0, 0, 0.6);
15
19
  @card-description-font-size: 14px;
16
20
  @card-description-margin: 20px 0 0 0;
17
21
  @card-description-padding: 0 13px;
18
22
  @card-footer-padding: 0 12px;
23
+ @card-footer-right: 13px;
24
+ @card-footer-bottom: 9px;
19
25
  @card-footer-margin: 30px 0 0px 0;
20
26
  @card-line-height: 22px;
27
+ @card-row-line-height: 1.5;
28
+ @card-floater-toolbar-bottom: 16px;
29
+ @card-floater-toolbar-right: 16px;
30
+ @card-floater-toolbar-color: #fff;
31
+ @card-floater-toolbar-close-size: 24px;
32
+ @card-floater-toolbar-close-padding: 16px;
33
+ @card-floater-toolbar-close-primary-color: #212121;
21
34
 
22
35
  :root {
23
36
  --card-padding: @card-padding;
24
37
  --card-background: @card-background;
25
38
  --card-border-radius: @card-border-radius;
26
39
  --card-image-width: @card-image-width;
40
+ --card-row-image-width: @card-row-image-width;
27
41
  --card-image-height: @card-image-height;
42
+ --card-row-height: @card-row-height;
28
43
  --card-title-color: @card-title-color;
29
44
  --card-title-font-size: @card-title-font-size;
30
45
  --card-title-padding: @card-title-padding;
31
46
  --card-title-margin: @card-title-margin;
47
+ --card-title-row-margin: @card-title-row-margin;
32
48
  --card-subtitle-color: @card-subtitle-color;
33
49
  --card-subtitle-font-size: @card-subtitle-font-size;
34
50
  --card-subtitle-padding: @card-subtitle-padding;
35
51
  --card-subtitle-margin: @card-subtitle-margin;
52
+ --card-subtitle-row-margin: @card-subtitle-row-margin;
36
53
  --card-description-color: @card-description-color;
37
54
  --card-description-font-size: @card-description-font-size;
38
55
  --card-description-margin: @card-description-margin;
39
56
  --card-description-padding: @card-description-padding;
40
57
  --card-footer-padding: @card-footer-padding;
58
+ --card-footer-right: @card-footer-right;
59
+ --card-footer-bottom: @card-footer-bottom;
41
60
  --card-footer-margin: @card-footer-margin;
42
61
  --card-line-height: @card-line-height;
62
+ --card-row-line-height: @card-row-line-height;
63
+ --card-floater-toolbar-bottom: @card-floater-toolbar-bottom;
64
+ --card-floater-toolbar-right: @card-floater-toolbar-right;
65
+ --card-floater-toolbar-color: @card-floater-toolbar-color;
66
+ --card-floater-toolbar-close-size: @card-floater-toolbar-close-size;
67
+ --card-floater-toolbar-close-padding: @card-floater-toolbar-close-padding;
68
+ --card-floater-toolbar-close-primary-color: @card-floater-toolbar-close-primary-color;
43
69
  }
44
70
 
45
71
  .var-card {
46
- border-radius: var(--card-border-radius);
47
- overflow: hidden;
48
- padding: var(--card-padding);
49
- line-height: var(--card-line-height);
50
- background: var(--card-background);
51
- transition: background-color 0.25s;
72
+ &--layout-row {
73
+ height: var(--card-row-height);
74
+ position: relative;
75
+ }
76
+
77
+ &__floater {
78
+ border-radius: var(--card-border-radius);
79
+ display: flex;
80
+ flex-direction: column;
81
+ line-height: var(--card-line-height);
82
+ background: var(--card-background);
83
+ transition-timing-function: cubic-bezier(0.45, 0.19, 0.06, 0.89);
84
+ }
85
+
86
+ &__container {
87
+ padding: var(--card-padding);
88
+ flex-grow: 1;
89
+ min-width: 0;
90
+ }
91
+
92
+ &--layout-row &__floater {
93
+ flex-direction: row;
94
+ line-height: var(--card-row-line-height);
95
+ }
52
96
 
53
97
  &__image {
54
98
  width: var(--card-image-width);
@@ -56,11 +100,27 @@
56
100
  display: block;
57
101
  }
58
102
 
103
+ &--layout-row &__image {
104
+ width: var(--card-row-image-width);
105
+ height: 100%;
106
+ display: block;
107
+ flex-shrink: 0;
108
+ }
109
+
59
110
  &__title {
60
111
  font-size: var(--card-title-font-size);
61
112
  padding: var(--card-title-padding);
62
113
  margin: var(--card-title-margin);
63
114
  color: var(--card-title-color);
115
+ word-break: break-word;
116
+ }
117
+
118
+ &--layout-row &__title {
119
+ max-width: 100%;
120
+ overflow: hidden;
121
+ margin: var(--card-title-row-margin);
122
+ text-overflow: ellipsis;
123
+ white-space: nowrap;
64
124
  }
65
125
 
66
126
  &__subtitle {
@@ -68,6 +128,16 @@
68
128
  color: var(--card-subtitle-color);
69
129
  padding: var(--card-subtitle-padding);
70
130
  margin: var(--card-subtitle-margin);
131
+ word-break: break-word;
132
+ }
133
+
134
+ &--layout-row &__subtitle {
135
+ margin: var(--card-subtitle-row-margin);
136
+ text-overflow: ellipsis;
137
+ display: -webkit-box;
138
+ -webkit-box-orient: vertical;
139
+ -webkit-line-clamp: 2;
140
+ overflow: hidden;
71
141
  }
72
142
 
73
143
  &__description {
@@ -79,7 +149,39 @@
79
149
  }
80
150
 
81
151
  &__footer {
152
+ display: flex;
153
+ justify-content: flex-end;
82
154
  padding: var(--card-footer-padding);
83
155
  margin: var(--card-footer-margin);
84
156
  }
157
+
158
+ &--layout-row &__footer {
159
+ position: absolute;
160
+ padding: 0;
161
+ right: var(--card-footer-right);
162
+ bottom: var(--card-footer-bottom);
163
+ }
164
+
165
+ &__content {
166
+ overflow: hidden;
167
+ transition-timing-function: cubic-bezier(0.45, 0.19, 0.06, 0.89);
168
+ }
169
+
170
+ &__toolbar {
171
+ position: fixed;
172
+ bottom: var(--card-floater-toolbar-bottom);
173
+ right: var(--card-floater-toolbar-right);
174
+ }
175
+
176
+ &__toolbar-close {
177
+ padding: var(--card-floater-toolbar-close-padding);
178
+ background-color: var(--card-floater-toolbar-close-primary-color);
179
+ color: var(--card-floater-toolbar-color);
180
+
181
+ .var-icon {
182
+ width: var(--card-floater-toolbar-close-size);
183
+ height: var(--card-floater-toolbar-close-size);
184
+ font-size: var(--card-floater-toolbar-close-size);
185
+ }
186
+ }
85
187
  }
package/es/card/props.js CHANGED
@@ -14,6 +14,24 @@ export var props = {
14
14
  height: {
15
15
  type: [String, Number]
16
16
  },
17
+ width: {
18
+ type: [String, Number]
19
+ },
20
+ layout: {
21
+ type: String,
22
+ default: 'column'
23
+ },
24
+ floating: {
25
+ type: Boolean,
26
+ default: false
27
+ },
28
+ 'onUpdate:floating': {
29
+ type: Function
30
+ },
31
+ floatingDuration: {
32
+ type: Number,
33
+ default: 250
34
+ },
17
35
  alt: {
18
36
  type: String
19
37
  },
@@ -4,7 +4,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
4
4
 
5
5
  import { computed, defineComponent, ref, watch, onMounted, onBeforeUnmount } from 'vue';
6
6
  import { easeInOutCubic, isPlainObject, toNumber } from '../utils/shared';
7
- import { doubleRaf, getParentScroller, getScrollLeft, getScrollTop, nextTickFrame, requestAnimationFrame, scrollTo as varScrollTo } from '../utils/elements';
7
+ import { doubleRaf, getParentScroller, getScrollLeft, getScrollTop, nextTickFrame, requestAnimationFrame, scrollTo as varScrollTo, toPxNum } from '../utils/elements';
8
8
  import { useIndexAnchors } from './provide';
9
9
  import { props } from './props';
10
10
  import { createNamespace, call } from '../utils/components';
@@ -34,7 +34,7 @@ export function render(_ctx, _cache) {
34
34
  style: _normalizeStyle({
35
35
  color: _ctx.active === anchorName && _ctx.highlightColor ? _ctx.highlightColor : ''
36
36
  }),
37
- onClick: $event => _ctx.anchorClick(anchorName)
37
+ onClick: $event => _ctx.anchorClick(anchorName, true)
38
38
  }, _toDisplayString(anchorName), 15
39
39
  /* TEXT, CLASS, STYLE, PROPS */
40
40
  , _hoisted_1);
@@ -64,7 +64,7 @@ export default defineComponent({
64
64
  var active = ref();
65
65
  var sticky = computed(() => props.sticky);
66
66
  var cssMode = computed(() => props.cssMode);
67
- var stickyOffsetTop = computed(() => props.stickyOffsetTop);
67
+ var stickyOffsetTop = computed(() => toPxNum(props.stickyOffsetTop));
68
68
  var zIndex = computed(() => props.zIndex);
69
69
  var indexBarProvider = {
70
70
  active,
@@ -140,7 +140,7 @@ export default defineComponent({
140
140
 
141
141
 
142
142
  var scrollTo = index => {
143
- requestAnimationFrame(() => anchorClick(index, true));
143
+ requestAnimationFrame(() => anchorClick(index));
144
144
  };
145
145
 
146
146
  watch(() => length.value, /*#__PURE__*/_asyncToGenerator(function* () {
@@ -4,7 +4,7 @@ export var props = {
4
4
  default: true
5
5
  },
6
6
  stickyOffsetTop: {
7
- type: Number,
7
+ type: [String, Number],
8
8
  default: 0
9
9
  },
10
10
  cssMode: {
@@ -1,7 +1,7 @@
1
1
  import { computed, defineComponent } from 'vue';
2
2
  import { props } from './props';
3
- import { toNumber } from '../utils/shared';
4
3
  import { createNamespace, call } from '../utils/components';
4
+ import { multiplySizeUnit } from '../utils/elements';
5
5
  var {
6
6
  n,
7
7
  classes
@@ -42,10 +42,10 @@ export function render(_ctx, _cache) {
42
42
  key: 0,
43
43
  class: _normalizeClass(_ctx.n('circle'))
44
44
  }, [_createElementVNode("span", {
45
- class: _normalizeClass(_ctx.n('circle-block')),
45
+ class: _normalizeClass(_ctx.classes(_ctx.n('circle-block'), _ctx.n("circle-block--" + _ctx.size))),
46
46
  style: _normalizeStyle({
47
- width: _ctx.getRadius * 2 + 'px',
48
- height: _ctx.getRadius * 2 + 'px',
47
+ width: _ctx.multiplySizeUnit(_ctx.radius, 2),
48
+ height: _ctx.multiplySizeUnit(_ctx.radius, 2),
49
49
  color: _ctx.color
50
50
  })
51
51
  }, _hoisted_2, 6
@@ -108,15 +108,6 @@ export default defineComponent({
108
108
  rect: 8,
109
109
  disappear: 3
110
110
  };
111
- var sizeDict = {
112
- mini: 9,
113
- small: 12,
114
- normal: 15,
115
- large: 18
116
- };
117
- var getRadius = computed(() => {
118
- return props.radius ? toNumber(props.radius) : sizeDict[props.size];
119
- });
120
111
  var isShow = computed(() => {
121
112
  if (!call(slots.default)) return true;
122
113
  return props.loading;
@@ -124,8 +115,8 @@ export default defineComponent({
124
115
  return {
125
116
  n,
126
117
  classes,
118
+ multiplySizeUnit,
127
119
  loadingTypeDict,
128
- getRadius,
129
120
  isShow
130
121
  };
131
122
  }
@@ -1 +1 @@
1
- :root { --loading-opacity: 0.38; --loading-desc-margin: 8px 0 0;}.var-loading { position: relative;}.var-loading__content { position: relative; transition: opacity 0.3s; opacity: 1;}.var-loading__content--active { opacity: var(--loading-opacity);}.var-loading__content-mask { position: absolute; left: 0; right: 0; top: 0; bottom: 0;}.var-loading__body { display: flex; justify-content: center; align-items: center; height: 100%; flex-direction: column;}.var-loading__inside { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 1;}.var-loading__description { color: currentColor; margin: var(--loading-desc-margin);}.var-loading__description--large { font-size: 16px;}.var-loading__description--normal { font-size: 14px;}.var-loading__description--small { font-size: 12px;}.var-loading__description--mini { font-size: 10px;}.var-loading__circle { display: flex;}.var-loading__circle-block { display: inline-block; animation: circle 1.8s linear infinite;}.var-loading__circle-block svg { display: block; width: 100%; height: 100%;}.var-loading__circle-block svg circle { animation: circular 1.5s ease-in-out infinite; stroke: currentColor; stroke-width: 3; stroke-linecap: round;}@keyframes circle { from { transform: rotate(0deg); } to { transform: rotate(360deg); }}@keyframes circular { 0% { stroke-dasharray: 1, 200; stroke-dashoffset: 0; } 50% { stroke-dasharray: 90, 150; stroke-dashoffset: -40; } 100% { stroke-dasharray: 90, 150; stroke-dashoffset: -120; }}.var-loading__wave { display: flex; align-items: center; justify-content: center;}.var-loading__wave--large { width: 64px; height: 18px;}.var-loading__wave--normal { width: 50px; height: 16px;}.var-loading__wave--small { width: 36px; height: 14px;}.var-loading__wave--mini { width: 22px; height: 12px;}.var-loading__wave-item { height: 100%; display: inline-block; animation: 1.2s ease-in-out infinite wave;}.var-loading__wave-item:nth-child(1) { animation-delay: -1.2s; margin-left: 0;}.var-loading__wave-item:nth-child(2) { animation-delay: -1.1s;}.var-loading__wave-item:nth-child(3) { animation-delay: -1s;}.var-loading__wave-item:nth-child(4) { animation-delay: -0.9s;}.var-loading__wave-item:nth-child(5) { animation-delay: -0.8s;}.var-loading__wave-item--large { width: 5px; margin-left: 5px;}.var-loading__wave-item--normal { width: 4px; margin-left: 4px;}.var-loading__wave-item--small { width: 3px; margin-left: 3px;}.var-loading__wave-item--mini { width: 2px; margin-left: 2px;}@keyframes wave { 0%, 40%, 100% { transform: scaleY(0.4); } 20% { transform: scaleY(1); }}.var-loading__cube { display: flex; align-items: center;}.var-loading__cube--large { width: 64px; height: 18px;}.var-loading__cube--normal { width: 50px; height: 16px;}.var-loading__cube--small { width: 36px; height: 14px;}.var-loading__cube--mini { width: 22px; height: 12px;}.var-loading__cube-item { display: inline-block; transform-origin: right bottom; animation: 1.5s ease infinite cube;}.var-loading__cube-item:nth-child(1) { animation-delay: 0.2s; margin-left: 0;}.var-loading__cube-item:nth-child(2) { animation-delay: 0.4s;}.var-loading__cube-item:nth-child(3) { animation-delay: 0.6s;}.var-loading__cube-item:nth-child(4) { animation-delay: 0.8s;}.var-loading__cube-item--large { height: 10px; width: 10px; margin-left: 5px;}.var-loading__cube-item--normal { height: 8px; width: 8px; margin-left: 4px;}.var-loading__cube-item--small { height: 6px; width: 6px; margin-left: 3px;}.var-loading__cube-item--mini { height: 4px; width: 4px; margin-left: 2px;}@keyframes cube { 0% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: rotate(90deg) scale(0.3); }}.var-loading__rect { display: flex; flex-wrap: nowrap; justify-content: center; align-items: center;}.var-loading__rect--large { width: 64px; height: 18px;}.var-loading__rect--normal { width: 50px; height: 16px;}.var-loading__rect--small { width: 36px; height: 14px;}.var-loading__rect--mini { width: 22px; height: 12px;}.var-loading__rect-item { animation: 2s ease-in-out infinite rect;}.var-loading__rect-item:nth-child(1) { animation-delay: 1.75s;}.var-loading__rect-item:nth-child(2) { animation-delay: 1.5s;}.var-loading__rect-item:nth-child(3) { animation-delay: 1.25s;}.var-loading__rect-item:nth-child(4) { animation-delay: 1s;}.var-loading__rect-item:nth-child(5) { animation-delay: 0.75s;}.var-loading__rect-item:nth-child(6) { animation-delay: 0.5s;}.var-loading__rect-item:nth-child(7) { animation-delay: 0.25s;}.var-loading__rect-item:nth-child(8) { animation-delay: 0s;}.var-loading__rect-item--large { height: 100%; width: 8px;}.var-loading__rect-item--normal { height: 90%; width: 6.4px;}.var-loading__rect-item--small { height: 80%; width: 4.8px;}.var-loading__rect-item--mini { height: 70%; width: 3.2px;}@keyframes rect { 0% { opacity: 0.3; } 25% { opacity: 1; } 50% { opacity: 0.3; } 65% { opacity: 1; } 100% { opacity: 0.3; }}.var-loading__disappear { display: flex; justify-content: space-around; align-items: center; flex-flow: nowrap;}.var-loading__disappear--large { width: 64px; height: 18px;}.var-loading__disappear--normal { width: 50px; height: 16px;}.var-loading__disappear--small { width: 36px; height: 14px;}.var-loading__disappear--mini { width: 22px; height: 12px;}.var-loading__disappear-item { border-radius: 50%; animation: 0.5s ease-in-out infinite alternate disappear;}.var-loading__disappear-item:nth-child(1) { animation-delay: -0.4s;}.var-loading__disappear-item:nth-child(2) { animation-delay: -0.2s;}.var-loading__disappear-item:nth-child(3) { animation-delay: 0s;}.var-loading__disappear-item--large { height: 15px; width: 15px;}.var-loading__disappear-item--normal { height: 12px; width: 12px;}.var-loading__disappear-item--small { height: 9px; width: 9px;}.var-loading__disappear-item--mini { height: 6px; width: 6px;}@keyframes disappear { 0% { opacity: 1; } 100% { opacity: 0; }}
1
+ :root { --loading-opacity: 0.38; --loading-desc-margin: 8px 0 0;}.var-loading { position: relative;}.var-loading__content { position: relative; transition: opacity 0.3s; opacity: 1;}.var-loading__content--active { opacity: var(--loading-opacity);}.var-loading__content-mask { position: absolute; left: 0; right: 0; top: 0; bottom: 0;}.var-loading__body { display: flex; justify-content: center; align-items: center; height: 100%; flex-direction: column;}.var-loading__inside { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 1;}.var-loading__description { color: currentColor; margin: var(--loading-desc-margin);}.var-loading__description--large { font-size: 16px;}.var-loading__description--normal { font-size: 14px;}.var-loading__description--small { font-size: 12px;}.var-loading__description--mini { font-size: 10px;}.var-loading__circle { display: flex;}.var-loading__circle-block { display: inline-block; animation: circle 1.8s linear infinite;}.var-loading__circle-block--large { width: 36px; height: 36px;}.var-loading__circle-block--normal { width: 30px; height: 30px;}.var-loading__circle-block--small { width: 24px; height: 24px;}.var-loading__circle-block--mini { width: 18px; height: 18px;}.var-loading__circle-block svg { display: block; width: 100%; height: 100%;}.var-loading__circle-block svg circle { animation: circular 1.5s ease-in-out infinite; stroke: currentColor; stroke-width: 3; stroke-linecap: round;}@keyframes circle { from { transform: rotate(0deg); } to { transform: rotate(360deg); }}@keyframes circular { 0% { stroke-dasharray: 1, 200; stroke-dashoffset: 0; } 50% { stroke-dasharray: 90, 150; stroke-dashoffset: -40; } 100% { stroke-dasharray: 90, 150; stroke-dashoffset: -120; }}.var-loading__wave { display: flex; align-items: center; justify-content: center;}.var-loading__wave--large { width: 64px; height: 18px;}.var-loading__wave--normal { width: 50px; height: 16px;}.var-loading__wave--small { width: 36px; height: 14px;}.var-loading__wave--mini { width: 22px; height: 12px;}.var-loading__wave-item { height: 100%; display: inline-block; animation: 1.2s ease-in-out infinite wave;}.var-loading__wave-item:nth-child(1) { animation-delay: -1.2s; margin-left: 0;}.var-loading__wave-item:nth-child(2) { animation-delay: -1.1s;}.var-loading__wave-item:nth-child(3) { animation-delay: -1s;}.var-loading__wave-item:nth-child(4) { animation-delay: -0.9s;}.var-loading__wave-item:nth-child(5) { animation-delay: -0.8s;}.var-loading__wave-item--large { width: 5px; margin-left: 5px;}.var-loading__wave-item--normal { width: 4px; margin-left: 4px;}.var-loading__wave-item--small { width: 3px; margin-left: 3px;}.var-loading__wave-item--mini { width: 2px; margin-left: 2px;}@keyframes wave { 0%, 40%, 100% { transform: scaleY(0.4); } 20% { transform: scaleY(1); }}.var-loading__cube { display: flex; align-items: center;}.var-loading__cube--large { width: 64px; height: 18px;}.var-loading__cube--normal { width: 50px; height: 16px;}.var-loading__cube--small { width: 36px; height: 14px;}.var-loading__cube--mini { width: 22px; height: 12px;}.var-loading__cube-item { display: inline-block; transform-origin: right bottom; animation: 1.5s ease infinite cube;}.var-loading__cube-item:nth-child(1) { animation-delay: 0.2s; margin-left: 0;}.var-loading__cube-item:nth-child(2) { animation-delay: 0.4s;}.var-loading__cube-item:nth-child(3) { animation-delay: 0.6s;}.var-loading__cube-item:nth-child(4) { animation-delay: 0.8s;}.var-loading__cube-item--large { height: 10px; width: 10px; margin-left: 5px;}.var-loading__cube-item--normal { height: 8px; width: 8px; margin-left: 4px;}.var-loading__cube-item--small { height: 6px; width: 6px; margin-left: 3px;}.var-loading__cube-item--mini { height: 4px; width: 4px; margin-left: 2px;}@keyframes cube { 0% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: rotate(90deg) scale(0.3); }}.var-loading__rect { display: flex; flex-wrap: nowrap; justify-content: center; align-items: center;}.var-loading__rect--large { width: 64px; height: 18px;}.var-loading__rect--normal { width: 50px; height: 16px;}.var-loading__rect--small { width: 36px; height: 14px;}.var-loading__rect--mini { width: 22px; height: 12px;}.var-loading__rect-item { animation: 2s ease-in-out infinite rect;}.var-loading__rect-item:nth-child(1) { animation-delay: 1.75s;}.var-loading__rect-item:nth-child(2) { animation-delay: 1.5s;}.var-loading__rect-item:nth-child(3) { animation-delay: 1.25s;}.var-loading__rect-item:nth-child(4) { animation-delay: 1s;}.var-loading__rect-item:nth-child(5) { animation-delay: 0.75s;}.var-loading__rect-item:nth-child(6) { animation-delay: 0.5s;}.var-loading__rect-item:nth-child(7) { animation-delay: 0.25s;}.var-loading__rect-item:nth-child(8) { animation-delay: 0s;}.var-loading__rect-item--large { height: 100%; width: 8px;}.var-loading__rect-item--normal { height: 90%; width: 6.4px;}.var-loading__rect-item--small { height: 80%; width: 4.8px;}.var-loading__rect-item--mini { height: 70%; width: 3.2px;}@keyframes rect { 0% { opacity: 0.3; } 25% { opacity: 1; } 50% { opacity: 0.3; } 65% { opacity: 1; } 100% { opacity: 0.3; }}.var-loading__disappear { display: flex; justify-content: space-around; align-items: center; flex-flow: nowrap;}.var-loading__disappear--large { width: 64px; height: 18px;}.var-loading__disappear--normal { width: 50px; height: 16px;}.var-loading__disappear--small { width: 36px; height: 14px;}.var-loading__disappear--mini { width: 22px; height: 12px;}.var-loading__disappear-item { border-radius: 50%; animation: 0.5s ease-in-out infinite alternate disappear;}.var-loading__disappear-item:nth-child(1) { animation-delay: -0.4s;}.var-loading__disappear-item:nth-child(2) { animation-delay: -0.2s;}.var-loading__disappear-item:nth-child(3) { animation-delay: 0s;}.var-loading__disappear-item--large { height: 15px; width: 15px;}.var-loading__disappear-item--normal { height: 12px; width: 12px;}.var-loading__disappear-item--small { height: 9px; width: 9px;}.var-loading__disappear-item--mini { height: 6px; width: 6px;}@keyframes disappear { 0% { opacity: 1; } 100% { opacity: 0; }}
@@ -84,6 +84,26 @@
84
84
  display: inline-block;
85
85
  animation: circle 1.8s linear infinite;
86
86
 
87
+ &--large {
88
+ width: 36px;
89
+ height: 36px;
90
+ }
91
+
92
+ &--normal {
93
+ width: 30px;
94
+ height: 30px;
95
+ }
96
+
97
+ &--small {
98
+ width: 24px;
99
+ height: 24px;
100
+ }
101
+
102
+ &--mini {
103
+ width: 18px;
104
+ height: 18px;
105
+ }
106
+
87
107
  svg {
88
108
  display: block;
89
109
  width: 100%;
@@ -420,7 +420,8 @@ export default defineComponent({
420
420
  } = getPicked();
421
421
  prevIndexes = [...indexes];
422
422
  }, {
423
- immediate: true
423
+ immediate: true,
424
+ deep: true
424
425
  });
425
426
  return {
426
427
  n,