zartui 3.1.67 → 3.1.69

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/lib/index.d.ts CHANGED
@@ -84,4 +84,4 @@ declare namespace _default {
84
84
  }
85
85
  export default _default;
86
86
  export function install(app: any): void;
87
- export const version: "3.1.67";
87
+ export const version: "3.1.69";
package/lib/index.js CHANGED
@@ -182,7 +182,7 @@ __reExport(stdin_exports, require("./timeline"), module.exports);
182
182
  __reExport(stdin_exports, require("./toast"), module.exports);
183
183
  __reExport(stdin_exports, require("./uploader"), module.exports);
184
184
  __reExport(stdin_exports, require("./video"), module.exports);
185
- const version = "3.1.67";
185
+ const version = "3.1.69";
186
186
  function install(app) {
187
187
  const components = [
188
188
  import_action_sheet.ActionSheet,
@@ -1,4 +1,4 @@
1
- import { ExtractPropTypes } from 'vue';
1
+ import { ExtractPropTypes, PropType } from 'vue';
2
2
  import { Numeric } from '../utils';
3
3
  import { PickerOption } from './types';
4
4
  declare const multiplePickerProps: {
@@ -34,19 +34,19 @@ declare const multiplePickerProps: {
34
34
  default: true;
35
35
  };
36
36
  options: {
37
- type: import("vue").PropType<PickerOption[]>;
37
+ type: PropType<PickerOption[]>;
38
38
  default: () => PickerOption[];
39
39
  };
40
40
  filteredOptions: {
41
- type: import("vue").PropType<PickerOption[]>;
42
- default: () => PickerOption[];
41
+ type: PropType<PickerOption[]>;
42
+ default: undefined;
43
43
  };
44
44
  toolbarPosition: {
45
- type: import("vue").PropType<string>;
45
+ type: PropType<string>;
46
46
  default: string;
47
47
  };
48
48
  textKey: {
49
- type: import("vue").PropType<string>;
49
+ type: PropType<string>;
50
50
  default: string;
51
51
  };
52
52
  columnCounts: {
@@ -54,11 +54,11 @@ declare const multiplePickerProps: {
54
54
  default: number;
55
55
  };
56
56
  selectedIndex: {
57
- type: import("vue").PropType<number[]>;
57
+ type: PropType<number[]>;
58
58
  default: () => number[];
59
59
  };
60
60
  selectedValue: {
61
- type: import("vue").PropType<Numeric[]>;
61
+ type: PropType<Numeric[]>;
62
62
  default: () => Numeric[];
63
63
  };
64
64
  popup: {
@@ -107,19 +107,19 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
107
107
  default: true;
108
108
  };
109
109
  options: {
110
- type: import("vue").PropType<PickerOption[]>;
110
+ type: PropType<PickerOption[]>;
111
111
  default: () => PickerOption[];
112
112
  };
113
113
  filteredOptions: {
114
- type: import("vue").PropType<PickerOption[]>;
115
- default: () => PickerOption[];
114
+ type: PropType<PickerOption[]>;
115
+ default: undefined;
116
116
  };
117
117
  toolbarPosition: {
118
- type: import("vue").PropType<string>;
118
+ type: PropType<string>;
119
119
  default: string;
120
120
  };
121
121
  textKey: {
122
- type: import("vue").PropType<string>;
122
+ type: PropType<string>;
123
123
  default: string;
124
124
  };
125
125
  columnCounts: {
@@ -127,11 +127,11 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
127
127
  default: number;
128
128
  };
129
129
  selectedIndex: {
130
- type: import("vue").PropType<number[]>;
130
+ type: PropType<number[]>;
131
131
  default: () => number[];
132
132
  };
133
133
  selectedValue: {
134
- type: import("vue").PropType<Numeric[]>;
134
+ type: PropType<Numeric[]>;
135
135
  default: () => Numeric[];
136
136
  };
137
137
  popup: {
@@ -172,19 +172,19 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
172
172
  default: true;
173
173
  };
174
174
  options: {
175
- type: import("vue").PropType<PickerOption[]>;
175
+ type: PropType<PickerOption[]>;
176
176
  default: () => PickerOption[];
177
177
  };
178
178
  filteredOptions: {
179
- type: import("vue").PropType<PickerOption[]>;
180
- default: () => PickerOption[];
179
+ type: PropType<PickerOption[]>;
180
+ default: undefined;
181
181
  };
182
182
  toolbarPosition: {
183
- type: import("vue").PropType<string>;
183
+ type: PropType<string>;
184
184
  default: string;
185
185
  };
186
186
  textKey: {
187
- type: import("vue").PropType<string>;
187
+ type: PropType<string>;
188
188
  default: string;
189
189
  };
190
190
  columnCounts: {
@@ -192,11 +192,11 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
192
192
  default: number;
193
193
  };
194
194
  selectedIndex: {
195
- type: import("vue").PropType<number[]>;
195
+ type: PropType<number[]>;
196
196
  default: () => number[];
197
197
  };
198
198
  selectedValue: {
199
- type: import("vue").PropType<Numeric[]>;
199
+ type: PropType<Numeric[]>;
200
200
  default: () => Numeric[];
201
201
  };
202
202
  popup: {
@@ -57,7 +57,10 @@ const multiplePickerProps = {
57
57
  showToolbar: import_utils.truthProp,
58
58
  showTitle: import_utils.truthProp,
59
59
  options: (0, import_utils.makeArrayProp)(),
60
- filteredOptions: (0, import_utils.makeArrayProp)(),
60
+ filteredOptions: {
61
+ type: Array,
62
+ default: void 0
63
+ },
61
64
  toolbarPosition: (0, import_utils.makeStringProp)("bottom"),
62
65
  textKey: (0, import_utils.makeStringProp)("text"),
63
66
  columnCounts: (0, import_utils.makeNumberProp)(3),
@@ -81,7 +84,7 @@ var stdin_default = (0, import_vue.defineComponent)({
81
84
  const confirmIndexes = (0, import_vue.ref)(props.selectedIndex);
82
85
  const confirmValues = (0, import_vue.ref)(props.selectedValue);
83
86
  const displayOptions = (0, import_vue.computed)(() => {
84
- return props.filteredOptions && props.filteredOptions.length > 0 ? props.filteredOptions : currentOptions.value;
87
+ return props.filteredOptions !== void 0 ? props.filteredOptions : currentOptions.value;
85
88
  });
86
89
  const displaySelectedIndexes = (0, import_vue.computed)(() => {
87
90
  if (!props.filteredOptions || props.filteredOptions.length === 0) {
@@ -179,11 +182,13 @@ var stdin_default = (0, import_vue.defineComponent)({
179
182
  if (newValue !== props.showPicker) {
180
183
  emit("update:showPicker", newValue);
181
184
  }
182
- currentOptions.value = (0, import_deep_clone.deepClone)(props.options);
183
- confirmIndexes.value = (0, import_deep_clone.deepClone)(currentSelectedIndex.value);
184
- confirmValues.value = (0, import_deep_clone.deepClone)(currentSelectedValue.value);
185
- getIndexesByValues();
186
- updateAllSelectedOptions();
185
+ if (newValue) {
186
+ currentOptions.value = (0, import_deep_clone.deepClone)(props.options);
187
+ confirmIndexes.value = (0, import_deep_clone.deepClone)(currentSelectedIndex.value);
188
+ confirmValues.value = (0, import_deep_clone.deepClone)(currentSelectedValue.value);
189
+ getIndexesByValues();
190
+ updateAllSelectedOptions();
191
+ }
187
192
  });
188
193
  (0, import_vue.watch)(() => props.showPicker, (newValue) => {
189
194
  var _a;
@@ -309,65 +314,87 @@ var stdin_default = (0, import_vue.defineComponent)({
309
314
  const handleSelectAll = () => {
310
315
  if (props.filteredOptions && props.filteredOptions.length === 0) {
311
316
  confirmIndexes.value = [];
317
+ confirmValues.value = [];
318
+ emit("update:selectedValue", confirmValues.value);
319
+ emit("update:selectedIndex", confirmIndexes.value);
312
320
  updateAllSelectedOptions();
321
+ onChange();
313
322
  return;
314
323
  }
324
+ let newIndexes = [];
315
325
  if (!isAllSelected.value) {
316
326
  if (props.filteredOptions && props.filteredOptions.length > 0) {
317
- const selectedIndexes = [];
318
327
  displayOptions.value.forEach((option) => {
319
328
  const originalIndex = currentOptions.value.findIndex((opt) => opt.value === option.value);
320
329
  if (originalIndex >= 0) {
321
- selectedIndexes.push(originalIndex);
330
+ newIndexes.push(originalIndex);
322
331
  }
323
332
  });
324
- confirmIndexes.value = selectedIndexes;
325
333
  } else {
326
- confirmIndexes.value = currentOptions.value.map((_, index) => index);
334
+ newIndexes = currentOptions.value.map((_, index) => index);
327
335
  }
328
336
  } else {
329
- confirmIndexes.value = [];
337
+ newIndexes = [];
338
+ }
339
+ confirmIndexes.value = newIndexes;
340
+ if (confirmIndexes.value.length > 0) {
341
+ getValuesByIndexes();
342
+ } else {
343
+ confirmValues.value = [];
330
344
  }
345
+ emit("update:selectedValue", confirmValues.value);
346
+ emit("update:selectedIndex", confirmIndexes.value);
331
347
  updateAllSelectedOptions();
348
+ onChange();
332
349
  };
333
350
  const onSelectOther = () => {
334
351
  if (props.filteredOptions && props.filteredOptions.length === 0) {
335
352
  confirmIndexes.value = [];
353
+ confirmValues.value = [];
354
+ emit("update:selectedValue", confirmValues.value);
355
+ emit("update:selectedIndex", confirmIndexes.value);
336
356
  updateAllSelectedOptions();
357
+ onChange();
337
358
  return;
338
359
  }
360
+ let newIndexes = [];
339
361
  if (props.filteredOptions && props.filteredOptions.length > 0) {
340
- const filteredValues = new Set(displayOptions.value.map((opt) => opt.value));
341
362
  const currentSelectedInFiltered = /* @__PURE__ */ new Set();
342
363
  confirmIndexes.value.forEach((idx) => {
343
364
  var _a;
344
365
  if (idx >= 0 && idx < currentOptions.value.length) {
345
366
  const value = (_a = currentOptions.value[idx]) == null ? void 0 : _a.value;
346
- if (filteredValues.has(value)) {
367
+ const isInFilteredList = displayOptions.value.some((opt) => opt.value === value);
368
+ if (isInFilteredList) {
347
369
  currentSelectedInFiltered.add(idx);
348
370
  }
349
371
  }
350
372
  });
351
- const newSelectedIndexes = [];
352
373
  displayOptions.value.forEach((option) => {
353
374
  const originalIndex = currentOptions.value.findIndex((opt) => opt.value === option.value);
354
375
  if (originalIndex >= 0) {
355
376
  if (!currentSelectedInFiltered.has(originalIndex)) {
356
- newSelectedIndexes.push(originalIndex);
377
+ newIndexes.push(originalIndex);
357
378
  }
358
379
  }
359
380
  });
360
- confirmIndexes.value = newSelectedIndexes;
361
381
  } else {
362
- const temp = new Array();
363
382
  currentOptions.value.forEach((_, index) => {
364
383
  if (!confirmIndexes.value.includes(index)) {
365
- temp.push(index);
384
+ newIndexes.push(index);
366
385
  }
367
386
  });
368
- confirmIndexes.value = temp;
369
387
  }
388
+ confirmIndexes.value = newIndexes;
389
+ if (confirmIndexes.value.length > 0) {
390
+ getValuesByIndexes();
391
+ } else {
392
+ confirmValues.value = [];
393
+ }
394
+ emit("update:selectedValue", confirmValues.value);
395
+ emit("update:selectedIndex", confirmIndexes.value);
370
396
  updateAllSelectedOptions();
397
+ onChange();
371
398
  };
372
399
  const genOptionItems = () => {
373
400
  let formatOptions = [];
@@ -382,7 +409,7 @@ var stdin_default = (0, import_vue.defineComponent)({
382
409
  return (0, import_vue.createVNode)(import_MultiplePickerOptions.default, {
383
410
  "ref": pickerOptions,
384
411
  "currentIndexes": displaySelectedIndexes.value,
385
- "onUpdate:currentIndexes": [($event) => displaySelectedIndexes.value = $event, onUpdateCurrentIndexes],
412
+ "onUpdate:currentIndexes": onUpdateCurrentIndexes,
386
413
  "columnCounts": props.columnCounts,
387
414
  "initialOptions": formatOptions,
388
415
  "allowHtml": props.allowHtml,
@@ -38,7 +38,7 @@ export declare const MultiplePicker: import("../utils").WithInstall<import("vue"
38
38
  };
39
39
  filteredOptions: {
40
40
  type: import("vue").PropType<import("./types").PickerOption[]>;
41
- default: () => import("./types").PickerOption[];
41
+ default: undefined;
42
42
  };
43
43
  toolbarPosition: {
44
44
  type: import("vue").PropType<string>;
@@ -103,7 +103,7 @@ export declare const MultiplePicker: import("../utils").WithInstall<import("vue"
103
103
  };
104
104
  filteredOptions: {
105
105
  type: import("vue").PropType<import("./types").PickerOption[]>;
106
- default: () => import("./types").PickerOption[];
106
+ default: undefined;
107
107
  };
108
108
  toolbarPosition: {
109
109
  type: import("vue").PropType<string>;
@@ -63,6 +63,7 @@ var stdin_default = (0, import_vue.defineComponent)({
63
63
  scrollable
64
64
  } = props;
65
65
  const isCard = type === "card";
66
+ const isCapsule = type === "capsule";
66
67
  if (color && isCard) {
67
68
  style2.borderColor = color;
68
69
  if (!disabled) {
@@ -73,6 +74,17 @@ var stdin_default = (0, import_vue.defineComponent)({
73
74
  }
74
75
  }
75
76
  }
77
+ if (isCapsule) {
78
+ if (!disabled) {
79
+ if (isActive) {
80
+ style2.backgroundImage = "linear-gradient(-80deg, #85C0FF 0%, #3388FF 100%)";
81
+ style2.borderRadius = "14px";
82
+ style2.color = "#ffffff";
83
+ } else {
84
+ style2.backgroundColor = "#ffffff";
85
+ }
86
+ }
87
+ }
76
88
  const titleColor = isActive ? activeColor : inactiveColor;
77
89
  if (titleColor) {
78
90
  style2.color = titleColor;
@@ -1 +1 @@
1
- :root{--zt-tab-active-text-color: var(--zt-text-color);--zt-tab-disabled-text-color: var(--zt-text-color-3);--zt-tab-active-opacity: .2;--zt-tabs-default-color: var(--zt-primary-color);--zt-tabs-line-height: 44px;--zt-tabs-line-bottom: 16px;--zt-tabs-card-height: 32px;--zt-tabs-bottom-bar-width: 12px;--zt-tabs-bottom-bar-height: 4px;--zt-tabs-bottom-bar-color: var(--zt-primary-color);--zt-tabs-bottom-bar-radius: 2px;--zt-tabs-nav-background: var(--zt-background);--zt-tab-text-color: var(--zt-gray-a6);--zt-tabs-overlay-left-background: linear-gradient(90deg, #ffffff 0%, rgba(245, 250, 255, 0) 100%);--zt-tabs-overlay-right-background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, #ffffff 100%)}.zt-tab{position:relative;display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:0 var(--zt-padding-md);color:var(--zt-tab-text-color);font-size:var(--zt-font-size-md);line-height:var(--zt-line-height-md);cursor:pointer}.zt-tab--active{color:var(--zt-tab-active-text-color);font-size:var(--zt-font-size-lg);font-weight:var(--zt-font-bold)}.zt-tab--active:active{opacity:var(--zt-tab-active-opacity)}.zt-tab--disabled{color:var(--zt-tab-disabled-text-color);cursor:not-allowed;font-size:var(--zt-font-size-md)}.zt-tab--grow{flex:1 0 auto;padding:0 var(--zt-padding-sm)}.zt-tab--shrink{flex:none;padding:0 var(--zt-padding-xs)}.zt-tab--card{color:var(--zt-tabs-default-color)}.zt-tab--card.zt-tab--active{color:var(--zt-white);background-color:var(--zt-tabs-default-color)}.zt-tab--card--disabled{color:var(--zt-tab-disabled-text-color)}.zt-tab__title{flex:1;display:flex;align-items:center;justify-content:center}.zt-tab__text--ellipsis{display:-webkit-box;overflow:hidden;-webkit-line-clamp:1;-webkit-box-orient:vertical}.zt-tab__text-wrapper,.zt-tabs{position:relative}.zt-tabs__wrap{overflow:hidden;position:relative}.zt-tabs__wrap--page-top{position:fixed}.zt-tabs__wrap--content-bottom{top:auto;bottom:0}.zt-tabs__overlay-left,.zt-tabs__overlay-right{position:absolute;top:0;width:var(--zt-tabs-line-height);height:var(--zt-tabs-line-height);pointer-events:none}.zt-tabs__overlay-left{left:0;background:var(--zt-tabs-overlay-left-background)}.zt-tabs__overlay-right{right:0;background:var(--zt-tabs-overlay-right-background)}.zt-tabs__nav{position:relative;display:flex;justify-content:flex-start;background-color:var(--zt-tabs-nav-background);-webkit-user-select:none;-moz-user-select:none;user-select:none}.zt-tabs__nav--complete{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.zt-tabs__nav--complete::-webkit-scrollbar{display:none}.zt-tabs__nav--line{box-sizing:content-box;height:100%;padding-bottom:var(--zt-tabs-line-bottom)}.zt-tabs__nav--line.zt-tabs__nav--shrink .zt-tab,.zt-tabs__nav--line.zt-tabs__nav--complete .zt-tab{flex:1 0 auto;padding:0 var(--zt-padding-sm)}.zt-tabs__nav--line.zt-tabs__nav--shrink .zt-tabs__nav,.zt-tabs__nav--line.zt-tabs__nav--complete .zt-tabs__nav{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.zt-tabs__nav--line.zt-tabs__nav--shrink .zt-tabs__nav::-webkit-scrollbar,.zt-tabs__nav--line.zt-tabs__nav--complete .zt-tabs__nav::-webkit-scrollbar{display:none}.zt-tabs__nav--card.zt-tabs__nav--shrink{display:inline-flex}.zt-tabs__line{position:absolute;bottom:var(--zt-tabs-line-bottom);left:0;z-index:1;width:var(--zt-tabs-bottom-bar-width);height:var(--zt-tabs-bottom-bar-height);background:var(--zt-tabs-bottom-bar-color);border-radius:var(--zt-tabs-bottom-bar-radius)}.zt-tabs__track{position:relative;display:flex;width:100%;height:100%;will-change:left}.zt-tabs__content--animated{overflow:hidden}.zt-tabs--line .zt-tabs__wrap{height:var(--zt-tabs-line-height)}.zt-tabs--card>.zt-tabs__wrap{height:var(--zt-tabs-card-height);display:flex;justify-content:center}.zt-theme-dark{--zt-tabs-overlay-left-background: linear-gradient(90deg, #0f1923 0%, rgba(15, 25, 35, 0) 100%);--zt-tabs-overlay-right-background: linear-gradient(90deg, rgba(15, 25, 35, 0) 3%, #0f1923 100%)}
1
+ :root{--zt-tab-active-text-color: var(--zt-text-color);--zt-tab-disabled-text-color: var(--zt-text-color-3);--zt-tab-active-opacity: .2;--zt-tabs-default-color: var(--zt-primary-color);--zt-tabs-line-height: 44px;--zt-tabs-line-bottom: 16px;--zt-tabs-card-height: 32px;--zt-tabs-bottom-bar-width: 12px;--zt-tabs-bottom-bar-height: 4px;--zt-tabs-bottom-bar-color: var(--zt-primary-color);--zt-tabs-bottom-bar-radius: 2px;--zt-tabs-nav-background: var(--zt-background);--zt-tab-text-color: var(--zt-gray-a6);--zt-tabs-overlay-left-background: linear-gradient(90deg, #ffffff 0%, rgba(245, 250, 255, 0) 100%);--zt-tabs-overlay-right-background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, #ffffff 100%)}.zt-tab{position:relative;display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:0 var(--zt-padding-md);color:var(--zt-tab-text-color);font-size:var(--zt-font-size-md);line-height:var(--zt-line-height-md);cursor:pointer}.zt-tab--active{color:var(--zt-tab-active-text-color);font-size:var(--zt-font-size-lg);font-weight:var(--zt-font-bold)}.zt-tab--active:active{opacity:var(--zt-tab-active-opacity)}.zt-tab--disabled{color:var(--zt-tab-disabled-text-color);cursor:not-allowed;font-size:var(--zt-font-size-md)}.zt-tab--grow{flex:1 0 auto;padding:0 var(--zt-padding-sm)}.zt-tab--shrink{flex:none;padding:0 var(--zt-padding-xs)}.zt-tab--card{color:var(--zt-tabs-default-color)}.zt-tab--card.zt-tab--active{color:var(--zt-white);background-color:var(--zt-tabs-default-color)}.zt-tab--card--disabled{color:var(--zt-tab-disabled-text-color)}.zt-tab--capsule{color:var(--zt-black)}.zt-tab--capsule.zt-tab--active{color:var(--zt-white);font-size:var(--zt-font-size-md);background-image:linear-gradient(-80deg,#85C0FF 0%,#3388FF 100%);border-radius:14px}.zt-tab--capsule--disabled{color:var(--zt-tab-disabled-text-color)}.zt-tab__title{flex:1;display:flex;align-items:center;justify-content:center}.zt-tab__text--ellipsis{display:-webkit-box;overflow:hidden;-webkit-line-clamp:1;-webkit-box-orient:vertical}.zt-tab__text-wrapper,.zt-tabs{position:relative}.zt-tabs__wrap{overflow:hidden;position:relative}.zt-tabs__wrap--page-top{position:fixed}.zt-tabs__wrap--content-bottom{top:auto;bottom:0}.zt-tabs__overlay-left,.zt-tabs__overlay-right{position:absolute;top:0;width:var(--zt-tabs-line-height);height:var(--zt-tabs-line-height);pointer-events:none}.zt-tabs__overlay-left{left:0;background:var(--zt-tabs-overlay-left-background)}.zt-tabs__overlay-right{right:0;background:var(--zt-tabs-overlay-right-background)}.zt-tabs__nav{position:relative;display:flex;justify-content:flex-start;background-color:var(--zt-tabs-nav-background);-webkit-user-select:none;-moz-user-select:none;user-select:none}.zt-tabs__nav--complete{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.zt-tabs__nav--complete::-webkit-scrollbar{display:none}.zt-tabs__nav--line{box-sizing:content-box;height:100%;padding-bottom:var(--zt-tabs-line-bottom)}.zt-tabs__nav--line.zt-tabs__nav--shrink .zt-tab,.zt-tabs__nav--line.zt-tabs__nav--complete .zt-tab{flex:1 0 auto;padding:0 var(--zt-padding-sm)}.zt-tabs__nav--line.zt-tabs__nav--shrink .zt-tabs__nav,.zt-tabs__nav--line.zt-tabs__nav--complete .zt-tabs__nav{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.zt-tabs__nav--line.zt-tabs__nav--shrink .zt-tabs__nav::-webkit-scrollbar,.zt-tabs__nav--line.zt-tabs__nav--complete .zt-tabs__nav::-webkit-scrollbar{display:none}.zt-tabs__nav--card.zt-tabs__nav--shrink{display:inline-flex}.zt-tabs__nav--capsule{flex:1;box-sizing:border-box;justify-content:space-around;align-items:center;height:var(--zt-tabs-card-height);background:#ffffff;border-radius:18px;padding:4px}.zt-tabs__nav--capsule .zt-tab{flex:1;color:var(--zt-black)}.zt-tabs__nav--capsule .zt-tab.zt-tab--active{height:24px;color:var(--zt-white);font-size:var(--zt-font-size-md);background-image:linear-gradient(-80deg,#85C0FF 0%,#3388FF 100%);border-radius:14px}.zt-tabs__nav--capsule .zt-tab--disabled{color:var(--zt-tab-disabled-text-color)}.zt-tabs__nav--capsule.zt-tabs__nav--shrink{display:inline-flex}.zt-tabs__line{position:absolute;bottom:var(--zt-tabs-line-bottom);left:0;z-index:1;width:var(--zt-tabs-bottom-bar-width);height:var(--zt-tabs-bottom-bar-height);background:var(--zt-tabs-bottom-bar-color);border-radius:var(--zt-tabs-bottom-bar-radius)}.zt-tabs__track{position:relative;display:flex;width:100%;height:100%;will-change:left}.zt-tabs__content--animated{overflow:hidden}.zt-tabs--line .zt-tabs__wrap{height:var(--zt-tabs-line-height)}.zt-tabs--card>.zt-tabs__wrap,.zt-tabs--capsule>.zt-tabs__wrap{height:var(--zt-tabs-card-height);display:flex;justify-content:center}.zt-theme-dark{--zt-tabs-overlay-left-background: linear-gradient(90deg, #0f1923 0%, rgba(15, 25, 35, 0) 100%);--zt-tabs-overlay-right-background: linear-gradient(90deg, rgba(15, 25, 35, 0) 3%, #0f1923 100%)}
@@ -1,7 +1,7 @@
1
1
  import type { ComponentPublicInstance, ComputedRef } from 'vue';
2
2
  import type { Numeric } from '../utils';
3
3
  import type { TabsProps } from './Tabs';
4
- export type TabsType = 'line' | 'card';
4
+ export type TabsType = 'line' | 'card' | 'capsule';
5
5
  export type TabsClickTabEventParams = {
6
6
  name: Numeric;
7
7
  title: string;