@1337exp/taoui 1.5.0 → 1.6.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.
package/dist/index.mjs CHANGED
@@ -1,15 +1,15 @@
1
- import { defineComponent, openBlock, createElementBlock, normalizeClass, createCommentVNode, toDisplayString, createElementVNode, renderSlot, computed, normalizeStyle, inject, useId, ref, unref, watch, onBeforeUnmount, createBlock, Teleport, createVNode, Transition, withCtx, withModifiers, nextTick, Fragment, renderList, createTextVNode, onMounted, provide, resolveDynamicComponent, useCssVars, useSlots, reactive, onBeforeMount, withDirectives, vModelText, getCurrentInstance, mergeProps, TransitionGroup, onUpdated, createApp } from "vue";
2
- const _hoisted_1$M = ["type", "disabled"];
3
- const _hoisted_2$F = {
1
+ import { defineComponent, openBlock, createElementBlock, normalizeClass, createCommentVNode, toDisplayString, createElementVNode, renderSlot, computed, normalizeStyle, inject, useId, ref, unref, watch, createTextVNode, onBeforeUnmount, createBlock, Teleport, createVNode, Transition, withCtx, withModifiers, nextTick, Fragment, renderList, onMounted, provide, resolveDynamicComponent, useCssVars, useSlots, reactive, onBeforeMount, withDirectives, vModelText, getCurrentInstance, mergeProps, TransitionGroup, onUpdated, createApp } from "vue";
2
+ const _hoisted_1$N = ["type", "disabled"];
3
+ const _hoisted_2$G = {
4
4
  key: 0,
5
5
  class: "tao-button__loader"
6
6
  };
7
- const _hoisted_3$y = {
7
+ const _hoisted_3$A = {
8
8
  key: 1,
9
9
  class: "tao-button__icon"
10
10
  };
11
- const _hoisted_4$r = { class: "tao-button__content" };
12
- const _sfc_main$U = /* @__PURE__ */ defineComponent({
11
+ const _hoisted_4$u = { class: "tao-button__content" };
12
+ const _sfc_main$V = /* @__PURE__ */ defineComponent({
13
13
  ...{ name: "TaoButton" },
14
14
  __name: "TaoButton",
15
15
  props: {
@@ -48,12 +48,12 @@ const _sfc_main$U = /* @__PURE__ */ defineComponent({
48
48
  disabled: __props.disabled || __props.loading,
49
49
  onClick: handleClick
50
50
  }, [
51
- __props.loading ? (openBlock(), createElementBlock("span", _hoisted_2$F)) : createCommentVNode("", true),
52
- __props.icon ? (openBlock(), createElementBlock("span", _hoisted_3$y, toDisplayString(__props.icon), 1)) : createCommentVNode("", true),
53
- createElementVNode("span", _hoisted_4$r, [
51
+ __props.loading ? (openBlock(), createElementBlock("span", _hoisted_2$G)) : createCommentVNode("", true),
52
+ __props.icon ? (openBlock(), createElementBlock("span", _hoisted_3$A, toDisplayString(__props.icon), 1)) : createCommentVNode("", true),
53
+ createElementVNode("span", _hoisted_4$u, [
54
54
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
55
55
  ])
56
- ], 10, _hoisted_1$M);
56
+ ], 10, _hoisted_1$N);
57
57
  };
58
58
  }
59
59
  });
@@ -64,8 +64,8 @@ const _export_sfc = (sfc, props) => {
64
64
  }
65
65
  return target;
66
66
  };
67
- const TaoButton = /* @__PURE__ */ _export_sfc(_sfc_main$U, [["__scopeId", "data-v-c3034f66"]]);
68
- const _sfc_main$T = /* @__PURE__ */ defineComponent({
67
+ const TaoButton = /* @__PURE__ */ _export_sfc(_sfc_main$V, [["__scopeId", "data-v-c3034f66"]]);
68
+ const _sfc_main$U = /* @__PURE__ */ defineComponent({
69
69
  ...{ name: "TaoBlock" },
70
70
  __name: "TaoBlock",
71
71
  props: {
@@ -97,24 +97,24 @@ const _sfc_main$T = /* @__PURE__ */ defineComponent({
97
97
  };
98
98
  }
99
99
  });
100
- const TaoBlock = /* @__PURE__ */ _export_sfc(_sfc_main$T, [["__scopeId", "data-v-feb87e36"]]);
100
+ const TaoBlock = /* @__PURE__ */ _export_sfc(_sfc_main$U, [["__scopeId", "data-v-feb87e36"]]);
101
101
  const formFieldKey = Symbol("taoFormField");
102
- const _hoisted_1$L = { class: "tao-input-wrapper" };
103
- const _hoisted_2$E = ["for"];
104
- const _hoisted_3$x = {
102
+ const _hoisted_1$M = { class: "tao-input-wrapper" };
103
+ const _hoisted_2$F = ["for"];
104
+ const _hoisted_3$z = {
105
105
  key: 0,
106
106
  class: "tao-input__affix tao-input__affix--prefix"
107
107
  };
108
- const _hoisted_4$q = ["id", "type", "value", "placeholder", "disabled", "aria-invalid", "aria-describedby"];
109
- const _hoisted_5$i = {
108
+ const _hoisted_4$t = ["id", "type", "value", "placeholder", "disabled", "aria-invalid", "aria-describedby"];
109
+ const _hoisted_5$m = {
110
110
  key: 1,
111
111
  class: "tao-input__affix tao-input__affix--suffix"
112
112
  };
113
- const _hoisted_6$e = {
113
+ const _hoisted_6$g = {
114
114
  key: 1,
115
115
  class: "tao-input__error"
116
116
  };
117
- const _sfc_main$S = /* @__PURE__ */ defineComponent({
117
+ const _sfc_main$T = /* @__PURE__ */ defineComponent({
118
118
  ...{ name: "TaoInput" },
119
119
  __name: "TaoInput",
120
120
  props: {
@@ -150,12 +150,12 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
150
150
  emit("focus", event);
151
151
  }
152
152
  return (_ctx, _cache) => {
153
- return openBlock(), createElementBlock("div", _hoisted_1$L, [
153
+ return openBlock(), createElementBlock("div", _hoisted_1$M, [
154
154
  __props.label && !unref(field) ? (openBlock(), createElementBlock("label", {
155
155
  key: 0,
156
156
  class: "tao-input__label",
157
157
  for: controlId.value
158
- }, toDisplayString(__props.label), 9, _hoisted_2$E)) : createCommentVNode("", true),
158
+ }, toDisplayString(__props.label), 9, _hoisted_2$F)) : createCommentVNode("", true),
159
159
  createElementVNode("div", {
160
160
  class: normalizeClass(["tao-input-shell", {
161
161
  "tao-input-shell--focused": focused.value,
@@ -165,7 +165,7 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
165
165
  "tao-input-shell--suffix": _ctx.$slots.suffix
166
166
  }])
167
167
  }, [
168
- _ctx.$slots.prefix ? (openBlock(), createElementBlock("span", _hoisted_3$x, [
168
+ _ctx.$slots.prefix ? (openBlock(), createElementBlock("span", _hoisted_3$z, [
169
169
  renderSlot(_ctx.$slots, "prefix", {}, void 0, true)
170
170
  ])) : createCommentVNode("", true),
171
171
  createElementVNode("input", {
@@ -180,27 +180,27 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
180
180
  onInput: handleInput,
181
181
  onBlur: handleBlur,
182
182
  onFocus: handleFocus
183
- }, null, 42, _hoisted_4$q),
184
- _ctx.$slots.suffix ? (openBlock(), createElementBlock("span", _hoisted_5$i, [
183
+ }, null, 42, _hoisted_4$t),
184
+ _ctx.$slots.suffix ? (openBlock(), createElementBlock("span", _hoisted_5$m, [
185
185
  renderSlot(_ctx.$slots, "suffix", {}, void 0, true)
186
186
  ])) : createCommentVNode("", true)
187
187
  ], 2),
188
- __props.error && __props.errorMessage ? (openBlock(), createElementBlock("span", _hoisted_6$e, toDisplayString(__props.errorMessage), 1)) : createCommentVNode("", true)
188
+ __props.error && __props.errorMessage ? (openBlock(), createElementBlock("span", _hoisted_6$g, toDisplayString(__props.errorMessage), 1)) : createCommentVNode("", true)
189
189
  ]);
190
190
  };
191
191
  }
192
192
  });
193
- const TaoInput = /* @__PURE__ */ _export_sfc(_sfc_main$S, [["__scopeId", "data-v-b522e041"]]);
194
- const _hoisted_1$K = {
193
+ const TaoInput = /* @__PURE__ */ _export_sfc(_sfc_main$T, [["__scopeId", "data-v-b522e041"]]);
194
+ const _hoisted_1$L = {
195
195
  key: 0,
196
196
  class: "tao-input-group__addon tao-input-group__addon--before"
197
197
  };
198
- const _hoisted_2$D = { class: "tao-input-group__field" };
199
- const _hoisted_3$w = {
198
+ const _hoisted_2$E = { class: "tao-input-group__field" };
199
+ const _hoisted_3$y = {
200
200
  key: 1,
201
201
  class: "tao-input-group__addon tao-input-group__addon--after"
202
202
  };
203
- const _sfc_main$R = /* @__PURE__ */ defineComponent({
203
+ const _sfc_main$S = /* @__PURE__ */ defineComponent({
204
204
  ...{ name: "TaoInputGroup" },
205
205
  __name: "TaoInputGroup",
206
206
  setup(__props) {
@@ -222,28 +222,30 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
222
222
  onFocusin: onFocusIn,
223
223
  onFocusout: onFocusOut
224
224
  }, [
225
- _ctx.$slots.before ? (openBlock(), createElementBlock("div", _hoisted_1$K, [
225
+ _ctx.$slots.before ? (openBlock(), createElementBlock("div", _hoisted_1$L, [
226
226
  renderSlot(_ctx.$slots, "before", {}, void 0, true)
227
227
  ])) : createCommentVNode("", true),
228
- createElementVNode("div", _hoisted_2$D, [
228
+ createElementVNode("div", _hoisted_2$E, [
229
229
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
230
230
  ]),
231
- _ctx.$slots.after ? (openBlock(), createElementBlock("div", _hoisted_3$w, [
231
+ _ctx.$slots.after ? (openBlock(), createElementBlock("div", _hoisted_3$y, [
232
232
  renderSlot(_ctx.$slots, "after", {}, void 0, true)
233
233
  ])) : createCommentVNode("", true)
234
234
  ], 34);
235
235
  };
236
236
  }
237
237
  });
238
- const TaoInputGroup = /* @__PURE__ */ _export_sfc(_sfc_main$R, [["__scopeId", "data-v-f06bb3b1"]]);
239
- const _hoisted_1$J = ["id", "value", "placeholder", "disabled", "aria-invalid", "aria-describedby", "aria-valuenow", "aria-valuemin", "aria-valuemax"];
240
- const _hoisted_2$C = {
238
+ const TaoInputGroup = /* @__PURE__ */ _export_sfc(_sfc_main$S, [["__scopeId", "data-v-f06bb3b1"]]);
239
+ const _hoisted_1$K = ["id", "value", "placeholder", "disabled", "aria-invalid", "aria-describedby", "aria-valuenow", "aria-valuemin", "aria-valuemax"];
240
+ const _hoisted_2$D = {
241
241
  key: 0,
242
242
  class: "tao-input-number__steppers"
243
243
  };
244
- const _hoisted_3$v = ["disabled"];
245
- const _hoisted_4$p = ["disabled"];
246
- const _sfc_main$Q = /* @__PURE__ */ defineComponent({
244
+ const _hoisted_3$x = ["aria-label", "disabled"];
245
+ const _hoisted_4$s = { "aria-hidden": "true" };
246
+ const _hoisted_5$l = ["aria-label", "disabled"];
247
+ const _hoisted_6$f = { "aria-hidden": "true" };
248
+ const _sfc_main$R = /* @__PURE__ */ defineComponent({
247
249
  ...{ name: "TaoInputNumber" },
248
250
  __name: "TaoInputNumber",
249
251
  props: {
@@ -254,7 +256,9 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
254
256
  precision: {},
255
257
  disabled: { type: Boolean, default: false },
256
258
  placeholder: { default: "" },
257
- controls: { type: Boolean, default: true }
259
+ controls: { type: Boolean, default: true },
260
+ incrementLabel: { default: "Увеличить" },
261
+ decrementLabel: { default: "Уменьшить" }
258
262
  },
259
263
  emits: ["update:modelValue", "blur", "focus"],
260
264
  setup(__props, { emit: __emit }) {
@@ -392,34 +396,48 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
392
396
  onFocus,
393
397
  onBlur,
394
398
  onKeydown
395
- }, null, 40, _hoisted_1$J),
396
- __props.controls ? (openBlock(), createElementBlock("div", _hoisted_2$C, [
399
+ }, null, 40, _hoisted_1$K),
400
+ __props.controls ? (openBlock(), createElementBlock("div", _hoisted_2$D, [
397
401
  createElementVNode("button", {
398
402
  type: "button",
399
403
  class: "tao-input-number__step",
400
- "aria-label": "Увеличить",
404
+ "aria-label": __props.incrementLabel,
401
405
  tabindex: "-1",
402
406
  disabled: __props.disabled || atMax.value,
403
407
  onClick: _cache[0] || (_cache[0] = ($event) => bump(1))
404
- }, " + ", 8, _hoisted_3$v),
408
+ }, [
409
+ createElementVNode("span", _hoisted_4$s, [
410
+ renderSlot(_ctx.$slots, "increment-icon", {}, () => [
411
+ _cache[2] || (_cache[2] = createTextVNode("+", -1))
412
+ ], true)
413
+ ])
414
+ ], 8, _hoisted_3$x),
405
415
  createElementVNode("button", {
406
416
  type: "button",
407
417
  class: "tao-input-number__step",
408
- "aria-label": "Уменьшить",
418
+ "aria-label": __props.decrementLabel,
409
419
  tabindex: "-1",
410
420
  disabled: __props.disabled || atMin.value,
411
421
  onClick: _cache[1] || (_cache[1] = ($event) => bump(-1))
412
- }, " − ", 8, _hoisted_4$p)
422
+ }, [
423
+ createElementVNode("span", _hoisted_6$f, [
424
+ renderSlot(_ctx.$slots, "decrement-icon", {}, () => [
425
+ _cache[3] || (_cache[3] = createTextVNode("−", -1))
426
+ ], true)
427
+ ])
428
+ ], 8, _hoisted_5$l)
413
429
  ])) : createCommentVNode("", true)
414
430
  ], 2);
415
431
  };
416
432
  }
417
433
  });
418
- const TaoInputNumber = /* @__PURE__ */ _export_sfc(_sfc_main$Q, [["__scopeId", "data-v-55b65a4d"]]);
419
- const _hoisted_1$I = ["aria-label", "disabled"];
420
- const _hoisted_2$B = ["id", "value", "disabled", "aria-invalid", "aria-describedby", "aria-valuenow", "aria-valuemin", "aria-valuemax"];
421
- const _hoisted_3$u = ["disabled"];
422
- const _sfc_main$P = /* @__PURE__ */ defineComponent({
434
+ const TaoInputNumber = /* @__PURE__ */ _export_sfc(_sfc_main$R, [["__scopeId", "data-v-331dd958"]]);
435
+ const _hoisted_1$J = ["aria-label", "disabled"];
436
+ const _hoisted_2$C = { "aria-hidden": "true" };
437
+ const _hoisted_3$w = ["id", "value", "disabled", "aria-invalid", "aria-describedby", "aria-valuenow", "aria-valuemin", "aria-valuemax"];
438
+ const _hoisted_4$r = ["aria-label", "disabled"];
439
+ const _hoisted_5$k = { "aria-hidden": "true" };
440
+ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
423
441
  ...{ name: "TaoQuantity" },
424
442
  __name: "TaoQuantity",
425
443
  props: {
@@ -428,7 +446,10 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
428
446
  max: {},
429
447
  disabled: { type: Boolean, default: false },
430
448
  allowRemove: { type: Boolean, default: true },
431
- forceMaxLimit: { type: Boolean, default: true }
449
+ forceMaxLimit: { type: Boolean, default: true },
450
+ decrementLabel: { default: "Уменьшить" },
451
+ removeLabel: { default: "Убрать" },
452
+ incrementLabel: { default: "Увеличить" }
432
453
  },
433
454
  emits: ["update:modelValue", "change", "dec", "inc", "blur", "focus"],
434
455
  setup(__props, { emit: __emit }) {
@@ -537,7 +558,7 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
537
558
  const atMax = computed(() => props.modelValue >= ceiling.value);
538
559
  const minusDisabled = computed(() => props.disabled || !props.allowRemove && atMin.value);
539
560
  const plusDisabled = computed(() => props.disabled || atMax.value);
540
- const minusLabel = computed(() => atMin.value && props.allowRemove ? "Убрать" : "Уменьшить");
561
+ const minusLabel = computed(() => atMin.value && props.allowRemove ? props.removeLabel : props.decrementLabel);
541
562
  return (_ctx, _cache) => {
542
563
  return openBlock(), createElementBlock("div", {
543
564
  class: normalizeClass(["tao-quantity", {
@@ -552,7 +573,13 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
552
573
  "aria-label": minusLabel.value,
553
574
  disabled: minusDisabled.value,
554
575
  onClick: onDec
555
- }, " − ", 8, _hoisted_1$I),
576
+ }, [
577
+ createElementVNode("span", _hoisted_2$C, [
578
+ renderSlot(_ctx.$slots, "decrement-icon", {}, () => [
579
+ _cache[0] || (_cache[0] = createTextVNode("−", -1))
580
+ ], true)
581
+ ])
582
+ ], 8, _hoisted_1$J),
556
583
  createElementVNode("input", {
557
584
  id: controlId.value,
558
585
  class: "tao-quantity__input",
@@ -572,49 +599,55 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
572
599
  onFocus,
573
600
  onBlur,
574
601
  onKeydown
575
- }, null, 40, _hoisted_2$B),
602
+ }, null, 40, _hoisted_3$w),
576
603
  createElementVNode("button", {
577
604
  type: "button",
578
605
  class: "tao-quantity__btn tao-quantity__btn--inc",
579
- "aria-label": "Увеличить",
606
+ "aria-label": __props.incrementLabel,
580
607
  disabled: plusDisabled.value,
581
608
  onClick: onInc
582
- }, " + ", 8, _hoisted_3$u)
609
+ }, [
610
+ createElementVNode("span", _hoisted_5$k, [
611
+ renderSlot(_ctx.$slots, "increment-icon", {}, () => [
612
+ _cache[1] || (_cache[1] = createTextVNode("+", -1))
613
+ ], true)
614
+ ])
615
+ ], 8, _hoisted_4$r)
583
616
  ], 2);
584
617
  };
585
618
  }
586
619
  });
587
- const TaoQuantity = /* @__PURE__ */ _export_sfc(_sfc_main$P, [["__scopeId", "data-v-df6baf04"]]);
588
- const _hoisted_1$H = {
620
+ const TaoQuantity = /* @__PURE__ */ _export_sfc(_sfc_main$Q, [["__scopeId", "data-v-c9c7c8b4"]]);
621
+ const _hoisted_1$I = {
589
622
  key: 0,
590
623
  class: "tao-card__cover"
591
624
  };
592
- const _hoisted_2$A = {
625
+ const _hoisted_2$B = {
593
626
  key: 0,
594
627
  class: "tao-card__header-title"
595
628
  };
596
- const _hoisted_3$t = { key: 0 };
597
- const _hoisted_4$o = {
629
+ const _hoisted_3$v = { key: 0 };
630
+ const _hoisted_4$q = {
598
631
  key: 2,
599
632
  class: "tao-card__title-block"
600
633
  };
601
- const _hoisted_5$h = {
634
+ const _hoisted_5$j = {
602
635
  key: 0,
603
636
  class: "tao-card__title"
604
637
  };
605
- const _hoisted_6$d = {
638
+ const _hoisted_6$e = {
606
639
  key: 1,
607
640
  class: "tao-card__sub"
608
641
  };
609
- const _hoisted_7$9 = {
642
+ const _hoisted_7$c = {
610
643
  key: 3,
611
644
  class: "tao-card__body"
612
645
  };
613
- const _hoisted_8$7 = {
646
+ const _hoisted_8$b = {
614
647
  key: 4,
615
648
  class: "tao-card__footer"
616
649
  };
617
- const _sfc_main$O = /* @__PURE__ */ defineComponent({
650
+ const _sfc_main$P = /* @__PURE__ */ defineComponent({
618
651
  ...{ name: "TaoCard" },
619
652
  __name: "TaoCard",
620
653
  props: {
@@ -646,14 +679,14 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
646
679
  }]),
647
680
  style: normalizeStyle(radiusStyle.value)
648
681
  }, [
649
- _ctx.$slots.cover ? (openBlock(), createElementBlock("div", _hoisted_1$H, [
682
+ _ctx.$slots.cover ? (openBlock(), createElementBlock("div", _hoisted_1$I, [
650
683
  renderSlot(_ctx.$slots, "cover", {}, void 0, true)
651
684
  ])) : createCommentVNode("", true),
652
685
  createElementVNode("div", {
653
686
  class: "tao-card__content",
654
687
  style: normalizeStyle(paddingStyle.value)
655
688
  }, [
656
- _ctx.$slots.headerTitle ? (openBlock(), createElementBlock("h2", _hoisted_2$A, [
689
+ _ctx.$slots.headerTitle ? (openBlock(), createElementBlock("h2", _hoisted_2$B, [
657
690
  renderSlot(_ctx.$slots, "headerTitle", {}, void 0, true)
658
691
  ])) : createCommentVNode("", true),
659
692
  _ctx.$slots.header || _ctx.$slots.headerSecondary ? (openBlock(), createElementBlock("div", {
@@ -663,22 +696,22 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
663
696
  createElementVNode("span", null, [
664
697
  renderSlot(_ctx.$slots, "header", {}, void 0, true)
665
698
  ]),
666
- _ctx.$slots.headerSecondary ? (openBlock(), createElementBlock("span", _hoisted_3$t, [
699
+ _ctx.$slots.headerSecondary ? (openBlock(), createElementBlock("span", _hoisted_3$v, [
667
700
  renderSlot(_ctx.$slots, "headerSecondary", {}, void 0, true)
668
701
  ])) : createCommentVNode("", true)
669
702
  ], 2)) : createCommentVNode("", true),
670
- _ctx.$slots.title || _ctx.$slots.sub ? (openBlock(), createElementBlock("div", _hoisted_4$o, [
671
- _ctx.$slots.title ? (openBlock(), createElementBlock("h2", _hoisted_5$h, [
703
+ _ctx.$slots.title || _ctx.$slots.sub ? (openBlock(), createElementBlock("div", _hoisted_4$q, [
704
+ _ctx.$slots.title ? (openBlock(), createElementBlock("h2", _hoisted_5$j, [
672
705
  renderSlot(_ctx.$slots, "title", {}, void 0, true)
673
706
  ])) : createCommentVNode("", true),
674
- _ctx.$slots.sub ? (openBlock(), createElementBlock("div", _hoisted_6$d, [
707
+ _ctx.$slots.sub ? (openBlock(), createElementBlock("div", _hoisted_6$e, [
675
708
  renderSlot(_ctx.$slots, "sub", {}, void 0, true)
676
709
  ])) : createCommentVNode("", true)
677
710
  ])) : createCommentVNode("", true),
678
- _ctx.$slots.default ? (openBlock(), createElementBlock("div", _hoisted_7$9, [
711
+ _ctx.$slots.default ? (openBlock(), createElementBlock("div", _hoisted_7$c, [
679
712
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
680
713
  ])) : createCommentVNode("", true),
681
- _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_8$7, [
714
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_8$b, [
682
715
  renderSlot(_ctx.$slots, "footer", {}, void 0, true)
683
716
  ])) : createCommentVNode("", true)
684
717
  ], 4)
@@ -686,7 +719,7 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
686
719
  };
687
720
  }
688
721
  });
689
- const TaoCard = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["__scopeId", "data-v-2ff3d055"]]);
722
+ const TaoCard = /* @__PURE__ */ _export_sfc(_sfc_main$P, [["__scopeId", "data-v-2ff3d055"]]);
690
723
  const FOCUSABLE = 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])';
691
724
  function getFocusable(root) {
692
725
  return [...root.querySelectorAll(FOCUSABLE)].filter(
@@ -715,25 +748,28 @@ function trapTab(event, root) {
715
748
  first.focus();
716
749
  }
717
750
  }
718
- const _hoisted_1$G = ["aria-labelledby"];
719
- const _hoisted_2$z = {
751
+ const _hoisted_1$H = ["aria-labelledby"];
752
+ const _hoisted_2$A = {
720
753
  key: 0,
721
754
  class: "tao-modal__header"
722
755
  };
723
- const _hoisted_3$s = ["id"];
724
- const _hoisted_4$n = { key: 1 };
725
- const _hoisted_5$g = { class: "tao-modal__content" };
726
- const _hoisted_6$c = {
756
+ const _hoisted_3$u = ["id"];
757
+ const _hoisted_4$p = { key: 1 };
758
+ const _hoisted_5$i = ["aria-label"];
759
+ const _hoisted_6$d = { "aria-hidden": "true" };
760
+ const _hoisted_7$b = { class: "tao-modal__content" };
761
+ const _hoisted_8$a = {
727
762
  key: 1,
728
763
  class: "tao-modal__footer"
729
764
  };
730
- const _sfc_main$N = /* @__PURE__ */ defineComponent({
765
+ const _sfc_main$O = /* @__PURE__ */ defineComponent({
731
766
  ...{ name: "TaoModal" },
732
767
  __name: "TaoModal",
733
768
  props: {
734
769
  modelValue: { type: Boolean },
735
770
  title: { default: "" },
736
- closable: { type: Boolean, default: true }
771
+ closable: { type: Boolean, default: true },
772
+ closeLabel: { default: "Закрыть" }
737
773
  },
738
774
  emits: ["update:modelValue", "close"],
739
775
  setup(__props, { emit: __emit }) {
@@ -827,29 +863,35 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
827
863
  "aria-labelledby": __props.title ? unref(titleId) : void 0,
828
864
  tabindex: "-1"
829
865
  }, [
830
- __props.title || _ctx.$slots.header || __props.closable ? (openBlock(), createElementBlock("div", _hoisted_2$z, [
866
+ __props.title || _ctx.$slots.header || __props.closable ? (openBlock(), createElementBlock("div", _hoisted_2$A, [
831
867
  renderSlot(_ctx.$slots, "header", {}, () => [
832
868
  __props.title ? (openBlock(), createElementBlock("h2", {
833
869
  key: 0,
834
870
  id: unref(titleId),
835
871
  class: "tao-modal__title"
836
- }, toDisplayString(__props.title), 9, _hoisted_3$s)) : (openBlock(), createElementBlock("span", _hoisted_4$n))
872
+ }, toDisplayString(__props.title), 9, _hoisted_3$u)) : (openBlock(), createElementBlock("span", _hoisted_4$p))
837
873
  ], true),
838
874
  __props.closable ? (openBlock(), createElementBlock("button", {
839
875
  key: 0,
840
876
  type: "button",
841
877
  class: "tao-modal__close",
842
- "aria-label": "Закрыть",
878
+ "aria-label": __props.closeLabel,
843
879
  onClick: close
844
- }, " × ")) : createCommentVNode("", true)
880
+ }, [
881
+ createElementVNode("span", _hoisted_6$d, [
882
+ renderSlot(_ctx.$slots, "close-icon", {}, () => [
883
+ _cache[0] || (_cache[0] = createTextVNode("×", -1))
884
+ ], true)
885
+ ])
886
+ ], 8, _hoisted_5$i)) : createCommentVNode("", true)
845
887
  ])) : createCommentVNode("", true),
846
- createElementVNode("div", _hoisted_5$g, [
888
+ createElementVNode("div", _hoisted_7$b, [
847
889
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
848
890
  ]),
849
- _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_6$c, [
891
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_8$a, [
850
892
  renderSlot(_ctx.$slots, "footer", {}, void 0, true)
851
893
  ])) : createCommentVNode("", true)
852
- ], 8, _hoisted_1$G)
894
+ ], 8, _hoisted_1$H)
853
895
  ], 32)) : createCommentVNode("", true)
854
896
  ]),
855
897
  _: 3
@@ -858,11 +900,11 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
858
900
  };
859
901
  }
860
902
  });
861
- const TaoModal = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__scopeId", "data-v-0cffe849"]]);
862
- const _hoisted_1$F = { class: "tao-tabs" };
863
- const _hoisted_2$y = ["id", "aria-selected", "aria-controls", "tabindex", "disabled", "onClick"];
864
- const _hoisted_3$r = ["id", "aria-labelledby"];
865
- const _sfc_main$M = /* @__PURE__ */ defineComponent({
903
+ const TaoModal = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["__scopeId", "data-v-67d4b1e8"]]);
904
+ const _hoisted_1$G = { class: "tao-tabs" };
905
+ const _hoisted_2$z = ["id", "aria-selected", "aria-controls", "tabindex", "disabled", "onClick"];
906
+ const _hoisted_3$t = ["id", "aria-labelledby"];
907
+ const _sfc_main$N = /* @__PURE__ */ defineComponent({
866
908
  ...{ name: "TaoTabs" },
867
909
  __name: "TaoTabs",
868
910
  props: {
@@ -926,7 +968,7 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
926
968
  }
927
969
  }
928
970
  return (_ctx, _cache) => {
929
- return openBlock(), createElementBlock("div", _hoisted_1$F, [
971
+ return openBlock(), createElementBlock("div", _hoisted_1$G, [
930
972
  createElementVNode("div", {
931
973
  class: "tao-tabs__list",
932
974
  role: "tablist",
@@ -951,7 +993,7 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
951
993
  }, void 0, true, 0) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
952
994
  createTextVNode(toDisplayString(tab.label), 1)
953
995
  ], 64))
954
- ], 8, _hoisted_2$y);
996
+ ], 8, _hoisted_2$z);
955
997
  }), 128))
956
998
  ], 32),
957
999
  createElementVNode("div", {
@@ -961,12 +1003,12 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
961
1003
  "aria-labelledby": tabId(__props.modelValue)
962
1004
  }, [
963
1005
  renderSlot(_ctx.$slots, "default", { activeTab: __props.modelValue }, void 0, true)
964
- ], 8, _hoisted_3$r)
1006
+ ], 8, _hoisted_3$t)
965
1007
  ]);
966
1008
  };
967
1009
  }
968
1010
  });
969
- const TaoTabs = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["__scopeId", "data-v-bf16735e"]]);
1011
+ const TaoTabs = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__scopeId", "data-v-bf16735e"]]);
970
1012
  function listenFocusLoss(onLoss) {
971
1013
  function onVisibilityChange() {
972
1014
  if (document.hidden) {
@@ -982,7 +1024,7 @@ function listenFocusLoss(onLoss) {
982
1024
  window.removeEventListener("pagehide", onLoss);
983
1025
  };
984
1026
  }
985
- const _sfc_main$L = /* @__PURE__ */ defineComponent({
1027
+ const _sfc_main$M = /* @__PURE__ */ defineComponent({
986
1028
  ...{ name: "TaoTooltip" },
987
1029
  __name: "TaoTooltip",
988
1030
  props: {
@@ -1144,9 +1186,9 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
1144
1186
  };
1145
1187
  }
1146
1188
  });
1147
- const TaoTooltip = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["__scopeId", "data-v-926dfa73"]]);
1148
- const _hoisted_1$E = { class: "tao-popover" };
1149
- const _sfc_main$K = /* @__PURE__ */ defineComponent({
1189
+ const TaoTooltip = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["__scopeId", "data-v-926dfa73"]]);
1190
+ const _hoisted_1$F = { class: "tao-popover" };
1191
+ const _sfc_main$L = /* @__PURE__ */ defineComponent({
1150
1192
  ...{ name: "TaoPopover" },
1151
1193
  __name: "TaoPopover",
1152
1194
  props: {
@@ -1304,7 +1346,7 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
1304
1346
  window.removeEventListener("scroll", onViewportChange, true);
1305
1347
  });
1306
1348
  return (_ctx, _cache) => {
1307
- return openBlock(), createElementBlock("div", _hoisted_1$E, [
1349
+ return openBlock(), createElementBlock("div", _hoisted_1$F, [
1308
1350
  createElementVNode("div", {
1309
1351
  ref_key: "triggerRef",
1310
1352
  ref: triggerRef,
@@ -1333,17 +1375,17 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
1333
1375
  };
1334
1376
  }
1335
1377
  });
1336
- const TaoPopover = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["__scopeId", "data-v-e4ead301"]]);
1378
+ const TaoPopover = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["__scopeId", "data-v-e4ead301"]]);
1337
1379
  const spoilerGroupKey = Symbol("taoSpoilerGroup");
1338
- const _hoisted_1$D = { class: "tao-spoiler" };
1339
- const _hoisted_2$x = ["aria-expanded", "aria-controls"];
1340
- const _hoisted_3$q = {
1380
+ const _hoisted_1$E = { class: "tao-spoiler" };
1381
+ const _hoisted_2$y = ["aria-expanded", "aria-controls"];
1382
+ const _hoisted_3$s = {
1341
1383
  key: 0,
1342
1384
  class: "tao-spoiler__title"
1343
1385
  };
1344
- const _hoisted_4$m = ["id"];
1345
- const _hoisted_5$f = { class: "tao-spoiler__content-inner" };
1346
- const _sfc_main$J = /* @__PURE__ */ defineComponent({
1386
+ const _hoisted_4$o = ["id"];
1387
+ const _hoisted_5$h = { class: "tao-spoiler__content-inner" };
1388
+ const _sfc_main$K = /* @__PURE__ */ defineComponent({
1347
1389
  ...{ name: "TaoSpoiler" },
1348
1390
  __name: "TaoSpoiler",
1349
1391
  props: {
@@ -1398,7 +1440,7 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
1398
1440
  });
1399
1441
  }
1400
1442
  return (_ctx, _cache) => {
1401
- return openBlock(), createElementBlock("div", _hoisted_1$D, [
1443
+ return openBlock(), createElementBlock("div", _hoisted_1$E, [
1402
1444
  createElementVNode("button", {
1403
1445
  type: "button",
1404
1446
  class: "tao-spoiler__header",
@@ -1409,12 +1451,12 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
1409
1451
  createElementVNode("span", {
1410
1452
  class: normalizeClass(["tao-spoiler__icon", { "tao-spoiler__icon--open": isOpen.value }])
1411
1453
  }, "▶", 2),
1412
- __props.title || _ctx.$slots.title ? (openBlock(), createElementBlock("span", _hoisted_3$q, [
1454
+ __props.title || _ctx.$slots.title ? (openBlock(), createElementBlock("span", _hoisted_3$s, [
1413
1455
  renderSlot(_ctx.$slots, "title", {}, () => [
1414
1456
  createTextVNode(toDisplayString(__props.title), 1)
1415
1457
  ], true)
1416
1458
  ])) : createCommentVNode("", true)
1417
- ], 8, _hoisted_2$x),
1459
+ ], 8, _hoisted_2$y),
1418
1460
  createVNode(Transition, {
1419
1461
  name: "tao-spoiler-slide",
1420
1462
  onBeforeEnter,
@@ -1428,10 +1470,10 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
1428
1470
  id: unref(panelId),
1429
1471
  class: "tao-spoiler__content"
1430
1472
  }, [
1431
- createElementVNode("div", _hoisted_5$f, [
1473
+ createElementVNode("div", _hoisted_5$h, [
1432
1474
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
1433
1475
  ])
1434
- ], 8, _hoisted_4$m)) : createCommentVNode("", true)
1476
+ ], 8, _hoisted_4$o)) : createCommentVNode("", true)
1435
1477
  ]),
1436
1478
  _: 3
1437
1479
  })
@@ -1439,9 +1481,9 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
1439
1481
  };
1440
1482
  }
1441
1483
  });
1442
- const TaoSpoiler = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["__scopeId", "data-v-ccb052cf"]]);
1443
- const _hoisted_1$C = { class: "tao-spoiler-group" };
1444
- const _sfc_main$I = /* @__PURE__ */ defineComponent({
1484
+ const TaoSpoiler = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["__scopeId", "data-v-ccb052cf"]]);
1485
+ const _hoisted_1$D = { class: "tao-spoiler-group" };
1486
+ const _sfc_main$J = /* @__PURE__ */ defineComponent({
1445
1487
  ...{ name: "TaoSpoilerGroup" },
1446
1488
  __name: "TaoSpoilerGroup",
1447
1489
  props: {
@@ -1461,20 +1503,21 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
1461
1503
  setOpen
1462
1504
  });
1463
1505
  return (_ctx, _cache) => {
1464
- return openBlock(), createElementBlock("div", _hoisted_1$C, [
1506
+ return openBlock(), createElementBlock("div", _hoisted_1$D, [
1465
1507
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
1466
1508
  ]);
1467
1509
  };
1468
1510
  }
1469
1511
  });
1470
- const TaoSpoilerGroup = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["__scopeId", "data-v-6b172e89"]]);
1471
- const _hoisted_1$B = ["aria-label"];
1472
- const _sfc_main$H = /* @__PURE__ */ defineComponent({
1512
+ const TaoSpoilerGroup = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["__scopeId", "data-v-6b172e89"]]);
1513
+ const _hoisted_1$C = ["aria-label"];
1514
+ const _sfc_main$I = /* @__PURE__ */ defineComponent({
1473
1515
  ...{ name: "TaoCopy" },
1474
1516
  __name: "TaoCopy",
1475
1517
  props: {
1476
1518
  text: {},
1477
1519
  successMessage: { default: "Скопировано!" },
1520
+ copyLabel: { default: "Копировать" },
1478
1521
  tip: { type: Boolean, default: true }
1479
1522
  },
1480
1523
  setup(__props) {
@@ -1576,7 +1619,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
1576
1619
  createElementVNode("button", {
1577
1620
  type: "button",
1578
1621
  class: normalizeClass(["tao-copy__button", { "tao-copy__button--copied": copied.value }]),
1579
- "aria-label": copied.value ? __props.successMessage : "Копировать",
1622
+ "aria-label": copied.value ? __props.successMessage : __props.copyLabel,
1580
1623
  onClick: copy
1581
1624
  }, [..._cache[0] || (_cache[0] = [
1582
1625
  createElementVNode("svg", {
@@ -1603,7 +1646,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
1603
1646
  "stroke-width": "2"
1604
1647
  })
1605
1648
  ], -1)
1606
- ])], 10, _hoisted_1$B)
1649
+ ])], 10, _hoisted_1$C)
1607
1650
  ], true),
1608
1651
  (openBlock(), createBlock(Teleport, { to: "body" }, [
1609
1652
  copied.value && __props.tip && __props.successMessage ? (openBlock(), createElementBlock("div", {
@@ -1619,8 +1662,8 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
1619
1662
  };
1620
1663
  }
1621
1664
  });
1622
- const TaoCopy = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__scopeId", "data-v-1953c07e"]]);
1623
- const _sfc_main$G = /* @__PURE__ */ defineComponent({
1665
+ const TaoCopy = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["__scopeId", "data-v-38d3381d"]]);
1666
+ const _sfc_main$H = /* @__PURE__ */ defineComponent({
1624
1667
  ...{ name: "TaoContainer" },
1625
1668
  __name: "TaoContainer",
1626
1669
  props: {
@@ -1637,8 +1680,8 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
1637
1680
  };
1638
1681
  }
1639
1682
  });
1640
- const TaoContainer = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-4c0deb90"]]);
1641
- const _sfc_main$F = /* @__PURE__ */ defineComponent({
1683
+ const TaoContainer = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__scopeId", "data-v-4c0deb90"]]);
1684
+ const _sfc_main$G = /* @__PURE__ */ defineComponent({
1642
1685
  ...{ name: "TaoFlex" },
1643
1686
  __name: "TaoFlex",
1644
1687
  props: {
@@ -1669,7 +1712,7 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
1669
1712
  };
1670
1713
  }
1671
1714
  });
1672
- const _sfc_main$E = /* @__PURE__ */ defineComponent({
1715
+ const _sfc_main$F = /* @__PURE__ */ defineComponent({
1673
1716
  ...{ name: "TaoSpace" },
1674
1717
  __name: "TaoSpace",
1675
1718
  props: {
@@ -1689,7 +1732,332 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
1689
1732
  };
1690
1733
  }
1691
1734
  });
1692
- const TaoSpace = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["__scopeId", "data-v-698ca712"]]);
1735
+ const TaoSpace = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__scopeId", "data-v-698ca712"]]);
1736
+ const _hoisted_1$B = { class: "tao-split__pane tao-split__pane--start" };
1737
+ const _hoisted_2$x = ["aria-orientation", "aria-valuemin", "aria-valuemax", "aria-valuenow", "aria-valuetext", "aria-disabled", "tabindex"];
1738
+ const _hoisted_3$r = { class: "tao-split__pane tao-split__pane--end" };
1739
+ const _hoisted_4$n = {
1740
+ key: 0,
1741
+ class: "tao-split__shield"
1742
+ };
1743
+ const _sfc_main$E = /* @__PURE__ */ defineComponent({
1744
+ ...{ name: "TaoSplit" },
1745
+ __name: "TaoSplit",
1746
+ props: {
1747
+ modelValue: { default: 50 },
1748
+ direction: { default: "row" },
1749
+ unit: { default: "%" },
1750
+ min: { default: 0 },
1751
+ max: {},
1752
+ minEnd: { default: 0 },
1753
+ resizable: { type: Boolean, default: true },
1754
+ step: {}
1755
+ },
1756
+ emits: ["update:modelValue"],
1757
+ setup(__props, { emit: __emit }) {
1758
+ const props = __props;
1759
+ const emit = __emit;
1760
+ const rootRef = ref(null);
1761
+ const handleRef = ref(null);
1762
+ const startPx = ref(0);
1763
+ const available = ref(0);
1764
+ const isDragging = ref(false);
1765
+ const size = ref(props.modelValue);
1766
+ const isRow = computed(() => props.direction === "row");
1767
+ const stepValue = computed(() => props.step ?? (props.unit === "%" ? 1 : 8));
1768
+ const ariaOrientation = computed(() => isRow.value ? "vertical" : "horizontal");
1769
+ let dragPointer = -1;
1770
+ let dragStartPx = 0;
1771
+ let dragStartCoord = 0;
1772
+ let savedBodyCursor = "";
1773
+ let savedHtmlCursor = "";
1774
+ let savedUserSelect = "";
1775
+ let resizeObserver = null;
1776
+ let stopFocusLoss;
1777
+ function axisSize(el) {
1778
+ const rect = el.getBoundingClientRect();
1779
+ return isRow.value ? rect.width : rect.height;
1780
+ }
1781
+ function measureAvailable() {
1782
+ if (!rootRef.value || !handleRef.value) {
1783
+ return 0;
1784
+ }
1785
+ return Math.max(0, axisSize(rootRef.value) - axisSize(handleRef.value));
1786
+ }
1787
+ function toPx(value, avail) {
1788
+ if (avail <= 0) {
1789
+ return 0;
1790
+ }
1791
+ return props.unit === "%" ? value / 100 * avail : value;
1792
+ }
1793
+ function fromPx(px, avail) {
1794
+ if (props.unit === "%") {
1795
+ if (avail <= 0) {
1796
+ return 0;
1797
+ }
1798
+ return Math.round(px / avail * 1e4) / 100;
1799
+ }
1800
+ return Math.round(px);
1801
+ }
1802
+ function valuesEqual(a, b) {
1803
+ if (props.unit === "%") {
1804
+ return Math.abs(a - b) < 5e-3;
1805
+ }
1806
+ return Math.round(a) === Math.round(b);
1807
+ }
1808
+ function clampStartPx(desiredPx, avail) {
1809
+ if (avail <= 0) {
1810
+ return 0;
1811
+ }
1812
+ const minStartPx = toPx(props.min, avail);
1813
+ const minEndPx = toPx(props.minEnd, avail);
1814
+ const maxStartPx = props.max != null ? toPx(props.max, avail) : Infinity;
1815
+ if (minStartPx + minEndPx > avail) {
1816
+ return Math.min(Math.max(desiredPx, 0), avail);
1817
+ }
1818
+ const lo = minStartPx;
1819
+ const hi = Math.min(maxStartPx, avail - minEndPx);
1820
+ return Math.min(Math.max(desiredPx, lo), Math.max(lo, hi));
1821
+ }
1822
+ function commit(next) {
1823
+ if (valuesEqual(next, size.value)) {
1824
+ size.value = next;
1825
+ return;
1826
+ }
1827
+ size.value = next;
1828
+ emit("update:modelValue", next);
1829
+ }
1830
+ function applyLayout(emitIfChanged) {
1831
+ const avail = measureAvailable();
1832
+ available.value = avail;
1833
+ const clamped = clampStartPx(toPx(size.value, avail), avail);
1834
+ startPx.value = clamped;
1835
+ const next = fromPx(clamped, avail);
1836
+ if (emitIfChanged) {
1837
+ commit(next);
1838
+ }
1839
+ }
1840
+ function isRtl() {
1841
+ return !!rootRef.value && getComputedStyle(rootRef.value).direction === "rtl";
1842
+ }
1843
+ function applyDragCursor() {
1844
+ savedBodyCursor = document.body.style.cursor;
1845
+ savedHtmlCursor = document.documentElement.style.cursor;
1846
+ savedUserSelect = document.body.style.userSelect;
1847
+ const cursor = isRow.value ? "col-resize" : "row-resize";
1848
+ document.body.style.cursor = cursor;
1849
+ document.documentElement.style.cursor = cursor;
1850
+ document.body.style.userSelect = "none";
1851
+ }
1852
+ function restoreDragCursor() {
1853
+ document.body.style.cursor = savedBodyCursor;
1854
+ document.documentElement.style.cursor = savedHtmlCursor;
1855
+ document.body.style.userSelect = savedUserSelect;
1856
+ }
1857
+ function releaseDragCapture() {
1858
+ const el = handleRef.value;
1859
+ const id = dragPointer;
1860
+ if (!el || id === -1) {
1861
+ return;
1862
+ }
1863
+ if (typeof el.hasPointerCapture === "function" && !el.hasPointerCapture(id)) {
1864
+ return;
1865
+ }
1866
+ try {
1867
+ el.releasePointerCapture(id);
1868
+ } catch {
1869
+ }
1870
+ }
1871
+ function endDrag() {
1872
+ if (!isDragging.value) {
1873
+ return;
1874
+ }
1875
+ isDragging.value = false;
1876
+ releaseDragCapture();
1877
+ dragPointer = -1;
1878
+ restoreDragCursor();
1879
+ applyLayout(true);
1880
+ }
1881
+ function setStartFromDelta(delta) {
1882
+ const avail = measureAvailable();
1883
+ available.value = avail;
1884
+ const nextPx = clampStartPx(dragStartPx + delta, avail);
1885
+ startPx.value = nextPx;
1886
+ commit(fromPx(nextPx, avail));
1887
+ }
1888
+ function onPointerDown(event) {
1889
+ if (!props.resizable || event.button !== 0 || !handleRef.value) {
1890
+ return;
1891
+ }
1892
+ dragPointer = event.pointerId;
1893
+ isDragging.value = true;
1894
+ dragStartPx = startPx.value;
1895
+ dragStartCoord = isRow.value ? event.clientX : event.clientY;
1896
+ applyDragCursor();
1897
+ event.preventDefault();
1898
+ try {
1899
+ handleRef.value.setPointerCapture(event.pointerId);
1900
+ } catch {
1901
+ }
1902
+ }
1903
+ function onPointerMove(event) {
1904
+ if (!isDragging.value || event.pointerId !== dragPointer) {
1905
+ return;
1906
+ }
1907
+ const coord = isRow.value ? event.clientX : event.clientY;
1908
+ let delta = coord - dragStartCoord;
1909
+ if (isRow.value && isRtl()) {
1910
+ delta = -delta;
1911
+ }
1912
+ setStartFromDelta(delta);
1913
+ }
1914
+ function onPointerEnd(event) {
1915
+ if (!isDragging.value) {
1916
+ return;
1917
+ }
1918
+ if (dragPointer !== -1 && event.pointerId !== dragPointer) {
1919
+ return;
1920
+ }
1921
+ endDrag();
1922
+ }
1923
+ function onLostPointerCapture() {
1924
+ endDrag();
1925
+ }
1926
+ function ariaMax() {
1927
+ const avail = available.value;
1928
+ if (avail <= 0) {
1929
+ return props.max ?? (props.unit === "%" ? 100 - props.minEnd : 0);
1930
+ }
1931
+ const maxByEnd = fromPx(Math.max(0, avail - toPx(props.minEnd, avail)), avail);
1932
+ if (props.max == null) {
1933
+ return maxByEnd;
1934
+ }
1935
+ return Math.min(props.max, maxByEnd);
1936
+ }
1937
+ const ariaValueMin = computed(() => props.min);
1938
+ const ariaValueMax = computed(() => ariaMax());
1939
+ const ariaValueNow = computed(() => size.value);
1940
+ const ariaValueText = computed(() => props.unit === "%" ? `${size.value}%` : `${Math.round(size.value)}px`);
1941
+ function onKeydown(event) {
1942
+ if (!props.resizable) {
1943
+ return;
1944
+ }
1945
+ const avail = measureAvailable();
1946
+ available.value = avail;
1947
+ if (event.key === "Home") {
1948
+ event.preventDefault();
1949
+ const nextPx2 = clampStartPx(toPx(props.min, avail), avail);
1950
+ startPx.value = nextPx2;
1951
+ commit(fromPx(nextPx2, avail));
1952
+ return;
1953
+ }
1954
+ if (event.key === "End") {
1955
+ event.preventDefault();
1956
+ const nextPx2 = clampStartPx(toPx(ariaMax(), avail), avail);
1957
+ startPx.value = nextPx2;
1958
+ commit(fromPx(nextPx2, avail));
1959
+ return;
1960
+ }
1961
+ const primary = isRow.value && (event.key === "ArrowLeft" || event.key === "ArrowRight") || !isRow.value && (event.key === "ArrowUp" || event.key === "ArrowDown");
1962
+ const secondary = isRow.value && (event.key === "ArrowUp" || event.key === "ArrowDown") || !isRow.value && (event.key === "ArrowLeft" || event.key === "ArrowRight");
1963
+ if (!primary && !secondary) {
1964
+ return;
1965
+ }
1966
+ event.preventDefault();
1967
+ let dir = event.key === "ArrowRight" || event.key === "ArrowDown" ? 1 : -1;
1968
+ if (isRow.value && isRtl() && (event.key === "ArrowLeft" || event.key === "ArrowRight")) {
1969
+ dir = -dir;
1970
+ }
1971
+ const nextModel = size.value + dir * stepValue.value;
1972
+ const nextPx = clampStartPx(toPx(nextModel, avail), avail);
1973
+ startPx.value = nextPx;
1974
+ commit(fromPx(nextPx, avail));
1975
+ }
1976
+ watch(
1977
+ () => props.modelValue,
1978
+ (value) => {
1979
+ if (isDragging.value) {
1980
+ return;
1981
+ }
1982
+ if (!valuesEqual(value, size.value)) {
1983
+ size.value = value;
1984
+ applyLayout(false);
1985
+ }
1986
+ }
1987
+ );
1988
+ watch(
1989
+ () => [props.unit, props.direction, props.min, props.max, props.minEnd, props.resizable],
1990
+ () => {
1991
+ if (!isDragging.value) {
1992
+ applyLayout(true);
1993
+ }
1994
+ }
1995
+ );
1996
+ onMounted(() => {
1997
+ applyLayout(false);
1998
+ resizeObserver = new ResizeObserver(() => {
1999
+ if (isDragging.value) {
2000
+ return;
2001
+ }
2002
+ applyLayout(true);
2003
+ });
2004
+ if (rootRef.value) {
2005
+ resizeObserver.observe(rootRef.value);
2006
+ }
2007
+ stopFocusLoss = listenFocusLoss(endDrag);
2008
+ });
2009
+ onBeforeUnmount(() => {
2010
+ endDrag();
2011
+ resizeObserver == null ? void 0 : resizeObserver.disconnect();
2012
+ resizeObserver = null;
2013
+ stopFocusLoss == null ? void 0 : stopFocusLoss();
2014
+ });
2015
+ return (_ctx, _cache) => {
2016
+ return openBlock(), createElementBlock("div", {
2017
+ ref_key: "rootRef",
2018
+ ref: rootRef,
2019
+ class: normalizeClass(["tao-split", [
2020
+ `tao-split--${__props.direction}`,
2021
+ {
2022
+ "tao-split--fixed": !__props.resizable,
2023
+ "tao-split--dragging": isDragging.value
2024
+ }
2025
+ ]]),
2026
+ style: normalizeStyle({ "--tao-split-start": `${startPx.value}px` })
2027
+ }, [
2028
+ createElementVNode("div", _hoisted_1$B, [
2029
+ renderSlot(_ctx.$slots, "start", {}, void 0, true)
2030
+ ]),
2031
+ createElementVNode("div", {
2032
+ ref_key: "handleRef",
2033
+ ref: handleRef,
2034
+ class: "tao-split__handle",
2035
+ role: "separator",
2036
+ "aria-orientation": ariaOrientation.value,
2037
+ "aria-valuemin": ariaValueMin.value,
2038
+ "aria-valuemax": ariaValueMax.value,
2039
+ "aria-valuenow": ariaValueNow.value,
2040
+ "aria-valuetext": ariaValueText.value,
2041
+ "aria-disabled": __props.resizable ? void 0 : true,
2042
+ tabindex: __props.resizable ? 0 : -1,
2043
+ onPointerdown: onPointerDown,
2044
+ onPointermove: onPointerMove,
2045
+ onPointerup: onPointerEnd,
2046
+ onPointercancel: onPointerEnd,
2047
+ onLostpointercapture: onLostPointerCapture,
2048
+ onKeydown,
2049
+ onDragstart: _cache[0] || (_cache[0] = withModifiers(() => {
2050
+ }, ["prevent"]))
2051
+ }, null, 40, _hoisted_2$x),
2052
+ createElementVNode("div", _hoisted_3$r, [
2053
+ renderSlot(_ctx.$slots, "end", {}, void 0, true)
2054
+ ]),
2055
+ isDragging.value ? (openBlock(), createElementBlock("div", _hoisted_4$n)) : createCommentVNode("", true)
2056
+ ], 6);
2057
+ };
2058
+ }
2059
+ });
2060
+ const TaoSplit = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["__scopeId", "data-v-f44196dc"]]);
1693
2061
  const _hoisted_1$A = { class: "tao-icon" };
1694
2062
  const _sfc_main$D = /* @__PURE__ */ defineComponent({
1695
2063
  ...{ name: "TaoIcon" },
@@ -1782,6 +2150,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
1782
2150
  const TaoLoader = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__scopeId", "data-v-75a40018"]]);
1783
2151
  const _hoisted_1$z = { class: "tao-image" };
1784
2152
  const _hoisted_2$w = ["src", "alt", "loading"];
2153
+ const _hoisted_3$q = { class: "tao-image__placeholder" };
1785
2154
  const _sfc_main$B = /* @__PURE__ */ defineComponent({
1786
2155
  ...{ name: "TaoImage" },
1787
2156
  __name: "TaoImage",
@@ -1789,7 +2158,8 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
1789
2158
  src: { default: "" },
1790
2159
  alt: { default: "" },
1791
2160
  pixelated: { type: Boolean, default: false },
1792
- lazy: { type: Boolean, default: false }
2161
+ lazy: { type: Boolean, default: false },
2162
+ placeholderText: { default: "No image available" }
1793
2163
  },
1794
2164
  emits: ["load", "error"],
1795
2165
  setup(__props, { emit: __emit }) {
@@ -1820,20 +2190,20 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
1820
2190
  onLoad: handleLoad,
1821
2191
  onError: handleError
1822
2192
  }, null, 42, _hoisted_2$w)) : renderSlot(_ctx.$slots, "default", {}, () => [
1823
- _cache[0] || (_cache[0] = createElementVNode("div", { class: "tao-image__placeholder" }, "No image available", -1))
2193
+ createElementVNode("div", _hoisted_3$q, toDisplayString(__props.placeholderText), 1)
1824
2194
  ], true, 1)
1825
2195
  ]);
1826
2196
  };
1827
2197
  }
1828
2198
  });
1829
- const TaoImage = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__scopeId", "data-v-522fe4da"]]);
2199
+ const TaoImage = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__scopeId", "data-v-e7c911e5"]]);
1830
2200
  const _hoisted_1$y = ["for"];
1831
2201
  const _hoisted_2$v = ["id", "checked", "disabled", "aria-checked", "aria-invalid", "aria-describedby"];
1832
2202
  const _hoisted_3$p = {
1833
2203
  key: 0,
1834
2204
  class: "tao-checkbox__label"
1835
2205
  };
1836
- const _hoisted_4$l = {
2206
+ const _hoisted_4$m = {
1837
2207
  key: 1,
1838
2208
  class: "tao-checkbox__label"
1839
2209
  };
@@ -1909,7 +2279,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
1909
2279
  onChange: onInputChange
1910
2280
  }, null, 40, _hoisted_2$v),
1911
2281
  _cache[0] || (_cache[0] = createElementVNode("span", { class: "tao-checkbox__box" }, null, -1)),
1912
- __props.label ? (openBlock(), createElementBlock("span", _hoisted_3$p, toDisplayString(__props.label), 1)) : (openBlock(), createElementBlock("span", _hoisted_4$l, [
2282
+ __props.label ? (openBlock(), createElementBlock("span", _hoisted_3$p, toDisplayString(__props.label), 1)) : (openBlock(), createElementBlock("span", _hoisted_4$m, [
1913
2283
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
1914
2284
  ])),
1915
2285
  renderSlot(_ctx.$slots, "post", { text: __props.label }, void 0, true)
@@ -1924,6 +2294,7 @@ const _hoisted_1$x = {
1924
2294
  };
1925
2295
  const _hoisted_2$u = { class: "tao-tag__text" };
1926
2296
  const _hoisted_3$o = ["aria-label"];
2297
+ const _hoisted_4$l = { "aria-hidden": "true" };
1927
2298
  const _sfc_main$z = /* @__PURE__ */ defineComponent({
1928
2299
  ...{ name: "TaoTag" },
1929
2300
  __name: "TaoTag",
@@ -1976,12 +2347,18 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
1976
2347
  class: "tao-tag__close",
1977
2348
  "aria-label": __props.closeLabel,
1978
2349
  onClick: withModifiers(onClose, ["stop"])
1979
- }, " ✕ ", 8, _hoisted_3$o)) : createCommentVNode("", true)
2350
+ }, [
2351
+ createElementVNode("span", _hoisted_4$l, [
2352
+ renderSlot(_ctx.$slots, "close-icon", {}, () => [
2353
+ _cache[0] || (_cache[0] = createTextVNode("✕", -1))
2354
+ ], true)
2355
+ ])
2356
+ ], 8, _hoisted_3$o)) : createCommentVNode("", true)
1980
2357
  ], 6);
1981
2358
  };
1982
2359
  }
1983
2360
  });
1984
- const TaoTag = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-5bd7ca79"]]);
2361
+ const TaoTag = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-f353f529"]]);
1985
2362
  const _hoisted_1$w = {
1986
2363
  key: 1,
1987
2364
  class: "tao-divider-text"
@@ -2218,7 +2595,7 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
2218
2595
  }
2219
2596
  });
2220
2597
  const TaoTextarea = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-2534c0c4"]]);
2221
- const _hoisted_1$t = ["tabindex"];
2598
+ const _hoisted_1$t = ["tabindex", "aria-label"];
2222
2599
  const _hoisted_2$q = { class: "tao-scroll-top__content" };
2223
2600
  const RIPPLE_DURATION = 750;
2224
2601
  const _sfc_main$u = /* @__PURE__ */ defineComponent({
@@ -2231,7 +2608,8 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
2231
2608
  zIndex: { default: 1e3 },
2232
2609
  boundary: { default: 300 },
2233
2610
  hasOutline: { type: Boolean, default: true },
2234
- tabindex: { default: 0 }
2611
+ tabindex: { default: 0 },
2612
+ ariaLabel: { default: "Наверх" }
2235
2613
  },
2236
2614
  setup(__props) {
2237
2615
  const props = __props;
@@ -2318,7 +2696,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
2318
2696
  style: normalizeStyle(mainStyle),
2319
2697
  tabindex: props.tabindex,
2320
2698
  class: normalizeClass(["tao-scroll-top", { "tao-scroll-top--no-outline": !props.hasOutline }]),
2321
- "aria-label": "Наверх",
2699
+ "aria-label": props.ariaLabel,
2322
2700
  onClick: withModifiers(onClick, ["prevent"])
2323
2701
  }, [
2324
2702
  createElementVNode("div", _hoisted_2$q, [
@@ -2345,7 +2723,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
2345
2723
  };
2346
2724
  }
2347
2725
  });
2348
- const TaoScrollTop = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-ce902f42"]]);
2726
+ const TaoScrollTop = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-59678649"]]);
2349
2727
  const _hoisted_1$s = { class: "tao-progress" };
2350
2728
  const _hoisted_2$p = {
2351
2729
  key: 0,
@@ -2356,11 +2734,11 @@ const _hoisted_4$j = {
2356
2734
  key: 0,
2357
2735
  class: "tao-progress__percentage"
2358
2736
  };
2359
- const _hoisted_5$e = {
2737
+ const _hoisted_5$g = {
2360
2738
  key: 1,
2361
2739
  class: "tao-progress__side"
2362
2740
  };
2363
- const _hoisted_6$b = {
2741
+ const _hoisted_6$c = {
2364
2742
  key: 0,
2365
2743
  class: "tao-progress__percentage"
2366
2744
  };
@@ -2415,9 +2793,9 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
2415
2793
  }, null, 6)
2416
2794
  ], 4)
2417
2795
  ]),
2418
- _ctx.$slots.right || showEndPercent.value ? (openBlock(), createElementBlock("div", _hoisted_5$e, [
2796
+ _ctx.$slots.right || showEndPercent.value ? (openBlock(), createElementBlock("div", _hoisted_5$g, [
2419
2797
  renderSlot(_ctx.$slots, "right", {}, void 0, true),
2420
- showEndPercent.value ? (openBlock(), createElementBlock("span", _hoisted_6$b, toDisplayString(endPercentLabel.value), 1)) : createCommentVNode("", true)
2798
+ showEndPercent.value ? (openBlock(), createElementBlock("span", _hoisted_6$c, toDisplayString(endPercentLabel.value), 1)) : createCommentVNode("", true)
2421
2799
  ])) : createCommentVNode("", true)
2422
2800
  ], 6)
2423
2801
  ]);
@@ -2662,14 +3040,17 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
2662
3040
  const TaoSlider = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-24a38782"]]);
2663
3041
  const _hoisted_1$q = { class: "tao-file-drop" };
2664
3042
  const _hoisted_2$n = { class: "tao-file-drop__row" };
2665
- const _hoisted_3$j = ["accept", "multiple"];
2666
- const _hoisted_4$i = {
3043
+ const _hoisted_3$j = ["aria-label"];
3044
+ const _hoisted_4$i = { "aria-hidden": "true" };
3045
+ const _hoisted_5$f = ["accept", "multiple"];
3046
+ const _hoisted_6$b = {
2667
3047
  key: 0,
2668
3048
  class: "tao-file-drop__list"
2669
3049
  };
2670
- const _hoisted_5$d = { class: "tao-file-drop__name" };
2671
- const _hoisted_6$a = { class: "tao-file-drop__meta" };
2672
- const _hoisted_7$8 = ["aria-label", "onClick"];
3050
+ const _hoisted_7$a = { class: "tao-file-drop__name" };
3051
+ const _hoisted_8$9 = { class: "tao-file-drop__meta" };
3052
+ const _hoisted_9$4 = ["aria-label", "onClick"];
3053
+ const _hoisted_10$4 = { "aria-hidden": "true" };
2673
3054
  const _sfc_main$r = /* @__PURE__ */ defineComponent({
2674
3055
  ...{ name: "TaoFileDrop" },
2675
3056
  __name: "TaoFileDrop",
@@ -2679,6 +3060,9 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
2679
3060
  accept: { default: "*" },
2680
3061
  multiple: { type: Boolean, default: false },
2681
3062
  showClear: { type: Boolean, default: false },
3063
+ clearLabel: { default: "Очистить файлы" },
3064
+ removeLabel: { default: "Убрать «{name}»" },
3065
+ formatSize: {},
2682
3066
  list: { type: Boolean, default: true }
2683
3067
  },
2684
3068
  emits: ["update:modelValue", "files", "clear-request"],
@@ -2745,7 +3129,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
2745
3129
  el.type = "file";
2746
3130
  }
2747
3131
  }
2748
- function formatSize(bytes) {
3132
+ function defaultFormatSize(bytes) {
2749
3133
  if (bytes < 1024) {
2750
3134
  return `${bytes} Б`;
2751
3135
  }
@@ -2758,6 +3142,9 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
2758
3142
  const value = mb < 10 ? mb.toFixed(1) : String(Math.round(mb));
2759
3143
  return `${value.replace(".", ",")} МБ`;
2760
3144
  }
3145
+ function sizeLabel(bytes) {
3146
+ return props.formatSize ? props.formatSize(bytes) : defaultFormatSize(bytes);
3147
+ }
2761
3148
  function fileKey(file, index) {
2762
3149
  return `${file.name}-${file.size}-${file.lastModified}-${index}`;
2763
3150
  }
@@ -2775,9 +3162,15 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
2775
3162
  key: 0,
2776
3163
  type: "button",
2777
3164
  class: "tao-file-drop__clear",
2778
- "aria-label": "Очистить файлы",
3165
+ "aria-label": __props.clearLabel,
2779
3166
  onClick: requestClear
2780
- }, " ✕ ")) : createCommentVNode("", true),
3167
+ }, [
3168
+ createElementVNode("span", _hoisted_4$i, [
3169
+ renderSlot(_ctx.$slots, "clear-icon", {}, () => [
3170
+ _cache[1] || (_cache[1] = createTextVNode("✕", -1))
3171
+ ], true)
3172
+ ])
3173
+ ], 8, _hoisted_3$j)) : createCommentVNode("", true),
2781
3174
  createElementVNode("label", {
2782
3175
  class: normalizeClass(["tao-file-drop__zone", [`tao-file-drop__zone--${__props.size}`, { "tao-file-drop__zone--dragging": isDragging.value }]]),
2783
3176
  onDragover: handleDragOver,
@@ -2785,7 +3178,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
2785
3178
  onDrop: handleDrop
2786
3179
  }, [
2787
3180
  renderSlot(_ctx.$slots, "default", {}, () => [
2788
- _cache[1] || (_cache[1] = createTextVNode("Перетащите файл сюда или нажмите, чтобы выбрать", -1))
3181
+ _cache[2] || (_cache[2] = createTextVNode("Перетащите файл сюда или нажмите, чтобы выбрать", -1))
2789
3182
  ], true),
2790
3183
  createElementVNode("input", {
2791
3184
  ref_key: "fileInput",
@@ -2797,23 +3190,29 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
2797
3190
  onChange: handleFileSelect,
2798
3191
  onClick: _cache[0] || (_cache[0] = withModifiers(() => {
2799
3192
  }, ["stop"]))
2800
- }, null, 40, _hoisted_3$j)
3193
+ }, null, 40, _hoisted_5$f)
2801
3194
  ], 34)
2802
3195
  ]),
2803
- __props.list && __props.modelValue.length ? (openBlock(), createElementBlock("ul", _hoisted_4$i, [
3196
+ __props.list && __props.modelValue.length ? (openBlock(), createElementBlock("ul", _hoisted_6$b, [
2804
3197
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.modelValue, (file, index) => {
2805
3198
  return openBlock(), createElementBlock("li", {
2806
3199
  key: fileKey(file, index),
2807
3200
  class: "tao-file-drop__file"
2808
3201
  }, [
2809
- createElementVNode("span", _hoisted_5$d, toDisplayString(file.name), 1),
2810
- createElementVNode("span", _hoisted_6$a, toDisplayString(formatSize(file.size)), 1),
3202
+ createElementVNode("span", _hoisted_7$a, toDisplayString(file.name), 1),
3203
+ createElementVNode("span", _hoisted_8$9, toDisplayString(sizeLabel(file.size)), 1),
2811
3204
  createElementVNode("button", {
2812
3205
  type: "button",
2813
3206
  class: "tao-file-drop__remove",
2814
- "aria-label": `Убрать «${file.name}»`,
3207
+ "aria-label": __props.removeLabel.replace("{name}", file.name),
2815
3208
  onClick: ($event) => removeAt(index)
2816
- }, " ✕ ", 8, _hoisted_7$8)
3209
+ }, [
3210
+ createElementVNode("span", _hoisted_10$4, [
3211
+ renderSlot(_ctx.$slots, "remove-icon", {}, () => [
3212
+ _cache[3] || (_cache[3] = createTextVNode("✕", -1))
3213
+ ], true)
3214
+ ])
3215
+ ], 8, _hoisted_9$4)
2817
3216
  ]);
2818
3217
  }), 128))
2819
3218
  ])) : createCommentVNode("", true)
@@ -2821,19 +3220,18 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
2821
3220
  };
2822
3221
  }
2823
3222
  });
2824
- const TaoFileDrop = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-f97c4e91"]]);
3223
+ const TaoFileDrop = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-570fc1bb"]]);
2825
3224
  const _hoisted_1$p = ["aria-expanded"];
2826
- const _hoisted_2$m = {
2827
- key: 1,
2828
- "aria-label": "Меню"
2829
- };
2830
- const _hoisted_3$i = ["onClick", "onMouseenter"];
2831
- const _hoisted_4$h = { key: 1 };
3225
+ const _hoisted_2$m = ["aria-label"];
3226
+ const _hoisted_3$i = { "aria-hidden": "true" };
3227
+ const _hoisted_4$h = ["onClick", "onMouseenter"];
3228
+ const _hoisted_5$e = { key: 1 };
2832
3229
  const _sfc_main$q = /* @__PURE__ */ defineComponent({
2833
3230
  ...{ name: "TaoDropdownMenu" },
2834
3231
  __name: "TaoDropdownMenu",
2835
3232
  props: {
2836
- actions: { default: () => [] }
3233
+ actions: { default: () => [] },
3234
+ menuLabel: { default: "Меню" }
2837
3235
  },
2838
3236
  emits: ["selected"],
2839
3237
  setup(__props, { emit: __emit }) {
@@ -2964,7 +3362,16 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
2964
3362
  "aria-expanded": isOpen.value,
2965
3363
  onClick: toggleMenu
2966
3364
  }, [
2967
- _ctx.$slots.button ? renderSlot(_ctx.$slots, "button", {}, void 0, true, 0) : (openBlock(), createElementBlock("span", _hoisted_2$m, "⋮"))
3365
+ _ctx.$slots.button ? renderSlot(_ctx.$slots, "button", {}, void 0, true, 0) : (openBlock(), createElementBlock("span", {
3366
+ key: 1,
3367
+ "aria-label": __props.menuLabel
3368
+ }, [
3369
+ createElementVNode("span", _hoisted_3$i, [
3370
+ renderSlot(_ctx.$slots, "icon", {}, () => [
3371
+ _cache[0] || (_cache[0] = createTextVNode("⋮", -1))
3372
+ ], true)
3373
+ ])
3374
+ ], 8, _hoisted_2$m))
2968
3375
  ], 8, _hoisted_1$p),
2969
3376
  (openBlock(), createBlock(Teleport, { to: "body" }, [
2970
3377
  isOpen.value ? (openBlock(), createElementBlock("div", {
@@ -2990,8 +3397,8 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
2990
3397
  id: action.id,
2991
3398
  ico: action.ico,
2992
3399
  text: action.name
2993
- }, void 0, true, 0) : (openBlock(), createElementBlock("span", _hoisted_4$h, toDisplayString(action.name), 1))
2994
- ], 42, _hoisted_3$i);
3400
+ }, void 0, true, 0) : (openBlock(), createElementBlock("span", _hoisted_5$e, toDisplayString(action.name), 1))
3401
+ ], 42, _hoisted_4$h);
2995
3402
  }), 128))
2996
3403
  ], 36)) : createCommentVNode("", true)
2997
3404
  ]))
@@ -2999,7 +3406,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
2999
3406
  };
3000
3407
  }
3001
3408
  });
3002
- const TaoDropdownMenu = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-420a7e63"]]);
3409
+ const TaoDropdownMenu = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-42bc0a2a"]]);
3003
3410
  const _hoisted_1$o = ["aria-invalid", "aria-describedby"];
3004
3411
  const _hoisted_2$l = ["id", "value", "placeholder", "type", "inputmode", "pattern", "onInput", "onKeydown", "onFocus"];
3005
3412
  const _sfc_main$p = /* @__PURE__ */ defineComponent({
@@ -3283,7 +3690,8 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
3283
3690
  options: { default: () => [] },
3284
3691
  placeholder: { default: "Выберите" },
3285
3692
  disabled: { type: Boolean, default: false },
3286
- error: { type: Boolean, default: false }
3693
+ error: { type: Boolean, default: false },
3694
+ clearText: { default: "Очистить" }
3287
3695
  },
3288
3696
  emits: ["update:modelValue", "change"],
3289
3697
  setup(__props, { emit: __emit }) {
@@ -3489,10 +3897,12 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
3489
3897
  onKeydown: onTriggerKeydown
3490
3898
  }, [
3491
3899
  createElementVNode("span", _hoisted_2$k, toDisplayString(((_a = selected.value) == null ? void 0 : _a.label) ?? __props.placeholder), 1),
3492
- _cache[2] || (_cache[2] = createElementVNode("span", {
3493
- class: "tao-select__chevron",
3900
+ createElementVNode("span", {
3901
+ class: normalizeClass(["tao-select__chevron", { "tao-select__chevron--custom": _ctx.$slots.chevron }]),
3494
3902
  "aria-hidden": "true"
3495
- }, null, -1))
3903
+ }, [
3904
+ renderSlot(_ctx.$slots, "chevron", {}, void 0, true)
3905
+ ], 2)
3496
3906
  ], 42, _hoisted_1$m),
3497
3907
  (openBlock(), createBlock(Teleport, { to: "body" }, [
3498
3908
  open.value ? (openBlock(), createElementBlock("div", {
@@ -3539,14 +3949,18 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
3539
3949
  onMousedown: _cache[1] || (_cache[1] = withModifiers(() => {
3540
3950
  }, ["prevent"])),
3541
3951
  onClick: clear
3542
- }, " Очистить ", 32)) : createCommentVNode("", true)
3952
+ }, [
3953
+ renderSlot(_ctx.$slots, "clear", {}, () => [
3954
+ createTextVNode(toDisplayString(__props.clearText), 1)
3955
+ ], true)
3956
+ ], 32)) : createCommentVNode("", true)
3543
3957
  ], 4)) : createCommentVNode("", true)
3544
3958
  ]))
3545
3959
  ], 2);
3546
3960
  };
3547
3961
  }
3548
3962
  });
3549
- const TaoSelect = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-42551757"]]);
3963
+ const TaoSelect = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-c5d6cdd3"]]);
3550
3964
  const _hoisted_1$l = ["id", "aria-expanded", "aria-activedescendant", "aria-invalid", "aria-describedby", "disabled", "placeholder", "value"];
3551
3965
  const _hoisted_2$j = {
3552
3966
  key: 0,
@@ -3562,6 +3976,8 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
3562
3976
  placeholder: { default: "Начните вводить" },
3563
3977
  disabled: { type: Boolean, default: false },
3564
3978
  error: { type: Boolean, default: false },
3979
+ emptyText: { default: "Ничего не найдено" },
3980
+ clearText: { default: "Очистить" },
3565
3981
  allowCreate: { type: Boolean, default: false }
3566
3982
  },
3567
3983
  emits: ["update:modelValue", "change", "create"],
@@ -3962,10 +4378,12 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
3962
4378
  onBlur,
3963
4379
  onKeydown: onInputKeydown
3964
4380
  }, null, 40, _hoisted_1$l),
3965
- _cache[1] || (_cache[1] = createElementVNode("span", {
3966
- class: "tao-combobox__chevron",
4381
+ createElementVNode("span", {
4382
+ class: normalizeClass(["tao-combobox__chevron", { "tao-combobox__chevron--custom": _ctx.$slots.chevron }]),
3967
4383
  "aria-hidden": "true"
3968
- }, null, -1))
4384
+ }, [
4385
+ renderSlot(_ctx.$slots, "chevron", {}, void 0, true)
4386
+ ], 2)
3969
4387
  ], 544),
3970
4388
  (openBlock(), createBlock(Teleport, { to: "body" }, [
3971
4389
  open.value ? (openBlock(), createElementBlock("div", {
@@ -3982,7 +4400,11 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
3982
4400
  class: "tao-combobox__list",
3983
4401
  role: "listbox"
3984
4402
  }, [
3985
- !rows.value.length ? (openBlock(), createElementBlock("li", _hoisted_2$j, "Ничего не найдено")) : createCommentVNode("", true),
4403
+ !rows.value.length ? (openBlock(), createElementBlock("li", _hoisted_2$j, [
4404
+ renderSlot(_ctx.$slots, "empty", {}, () => [
4405
+ createTextVNode(toDisplayString(__props.emptyText), 1)
4406
+ ], true)
4407
+ ])) : createCommentVNode("", true),
3986
4408
  (openBlock(true), createElementBlock(Fragment, null, renderList(rows.value, (row, index) => {
3987
4409
  return openBlock(), createElementBlock("li", {
3988
4410
  id: `${listId}-row-${index}`,
@@ -4001,9 +4423,11 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
4001
4423
  onClick: ($event) => activateRow(row),
4002
4424
  onMouseenter: ($event) => !(row.kind === "option" && row.option.disabled) && (activeIndex.value = index)
4003
4425
  }, [
4004
- row.kind === "create" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
4426
+ row.kind === "create" ? renderSlot(_ctx.$slots, "create", {
4427
+ text: row.text
4428
+ }, () => [
4005
4429
  createTextVNode("Добавить «" + toDisplayString(row.text) + "»", 1)
4006
- ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
4430
+ ], true, 0) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
4007
4431
  createTextVNode(toDisplayString(row.option.label), 1)
4008
4432
  ], 64))
4009
4433
  ], 42, _hoisted_3$g);
@@ -4014,14 +4438,18 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
4014
4438
  type: "button",
4015
4439
  class: "tao-combobox__clear",
4016
4440
  onMousedown: withModifiers(markPicking, ["prevent"])
4017
- }, " Очистить ", 32)) : createCommentVNode("", true)
4441
+ }, [
4442
+ renderSlot(_ctx.$slots, "clear", {}, () => [
4443
+ createTextVNode(toDisplayString(__props.clearText), 1)
4444
+ ], true)
4445
+ ], 32)) : createCommentVNode("", true)
4018
4446
  ], 4)) : createCommentVNode("", true)
4019
4447
  ]))
4020
4448
  ], 2);
4021
4449
  };
4022
4450
  }
4023
4451
  });
4024
- const TaoCombobox = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-60be67d0"]]);
4452
+ const TaoCombobox = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-2281e009"]]);
4025
4453
  const ISO_DATE = /^(\d{4})-(\d{2})-(\d{2})$/;
4026
4454
  function formatTaoDateIso(parts) {
4027
4455
  return `${String(parts.y).padStart(4, "0")}-${String(parts.m).padStart(2, "0")}-${String(parts.d).padStart(2, "0")}`;
@@ -4151,20 +4579,28 @@ function buildTaoDateGrid(year, month) {
4151
4579
  }
4152
4580
  const _hoisted_1$k = ["id", "aria-expanded", "aria-invalid", "aria-describedby", "disabled"];
4153
4581
  const _hoisted_2$i = { class: "tao-date__value" };
4154
- const _hoisted_3$f = ["aria-label"];
4155
- const _hoisted_4$f = { class: "tao-date__header" };
4156
- const _hoisted_5$c = { class: "tao-date__month" };
4157
- const _hoisted_6$9 = {
4582
+ const _hoisted_3$f = {
4583
+ class: "tao-date__icon",
4584
+ "aria-hidden": "true"
4585
+ };
4586
+ const _hoisted_4$f = ["aria-label"];
4587
+ const _hoisted_5$d = { class: "tao-date__header" };
4588
+ const _hoisted_6$a = ["aria-label"];
4589
+ const _hoisted_7$9 = { "aria-hidden": "true" };
4590
+ const _hoisted_8$8 = { class: "tao-date__month" };
4591
+ const _hoisted_9$3 = ["aria-label"];
4592
+ const _hoisted_10$3 = { "aria-hidden": "true" };
4593
+ const _hoisted_11$2 = {
4158
4594
  class: "tao-date__weekdays",
4159
4595
  "aria-hidden": "true"
4160
4596
  };
4161
- const _hoisted_7$7 = {
4597
+ const _hoisted_12$1 = {
4162
4598
  class: "tao-date__grid",
4163
4599
  role: "grid"
4164
4600
  };
4165
- const _hoisted_8$6 = ["aria-label", "aria-selected", "disabled", "onClick"];
4166
- const _hoisted_9$2 = { class: "tao-date__footer" };
4167
- const _hoisted_10$1 = ["disabled"];
4601
+ const _hoisted_13$1 = ["aria-label", "aria-selected", "disabled", "onClick"];
4602
+ const _hoisted_14$1 = { class: "tao-date__footer" };
4603
+ const _hoisted_15 = ["disabled"];
4168
4604
  const _sfc_main$k = /* @__PURE__ */ defineComponent({
4169
4605
  ...{ name: "TaoDate" },
4170
4606
  __name: "TaoDate",
@@ -4175,7 +4611,11 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
4175
4611
  error: { type: Boolean, default: false },
4176
4612
  min: { default: void 0 },
4177
4613
  max: { default: void 0 },
4178
- locale: { default: "ru-RU" }
4614
+ locale: { default: "ru-RU" },
4615
+ todayText: { default: "Сегодня" },
4616
+ clearText: { default: "Очистить" },
4617
+ prevMonthLabel: { default: "Предыдущий месяц" },
4618
+ nextMonthLabel: { default: "Следующий месяц" }
4179
4619
  },
4180
4620
  emits: ["update:modelValue", "change"],
4181
4621
  setup(__props, { emit: __emit }) {
@@ -4396,32 +4836,34 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
4396
4836
  onKeydown: onTriggerKeydown
4397
4837
  }, [
4398
4838
  createElementVNode("span", _hoisted_2$i, toDisplayString(displayLabel.value || __props.placeholder), 1),
4399
- _cache[4] || (_cache[4] = createElementVNode("svg", {
4400
- class: "tao-date__icon",
4401
- viewBox: "0 0 16 16",
4402
- width: "16",
4403
- height: "16",
4404
- "aria-hidden": "true",
4405
- focusable: "false"
4406
- }, [
4407
- createElementVNode("rect", {
4408
- x: "2",
4409
- y: "3",
4410
- width: "12",
4411
- height: "11",
4412
- rx: "1.5",
4413
- fill: "none",
4414
- stroke: "currentColor",
4415
- "stroke-width": "1.4"
4416
- }),
4417
- createElementVNode("path", {
4418
- d: "M5 1.5v3M11 1.5v3M2 6.5h12",
4419
- fill: "none",
4420
- stroke: "currentColor",
4421
- "stroke-width": "1.4",
4422
- "stroke-linecap": "round"
4423
- })
4424
- ], -1))
4839
+ createElementVNode("span", _hoisted_3$f, [
4840
+ renderSlot(_ctx.$slots, "icon", {}, () => [
4841
+ _cache[4] || (_cache[4] = createElementVNode("svg", {
4842
+ viewBox: "0 0 16 16",
4843
+ width: "16",
4844
+ height: "16",
4845
+ focusable: "false"
4846
+ }, [
4847
+ createElementVNode("rect", {
4848
+ x: "2",
4849
+ y: "3",
4850
+ width: "12",
4851
+ height: "11",
4852
+ rx: "1.5",
4853
+ fill: "none",
4854
+ stroke: "currentColor",
4855
+ "stroke-width": "1.4"
4856
+ }),
4857
+ createElementVNode("path", {
4858
+ d: "M5 1.5v3M11 1.5v3M2 6.5h12",
4859
+ fill: "none",
4860
+ stroke: "currentColor",
4861
+ "stroke-width": "1.4",
4862
+ "stroke-linecap": "round"
4863
+ })
4864
+ ], -1))
4865
+ ], true)
4866
+ ])
4425
4867
  ], 42, _hoisted_1$k),
4426
4868
  (openBlock(), createBlock(Teleport, { to: "body" }, [
4427
4869
  open.value ? (openBlock(), createElementBlock("div", {
@@ -4436,61 +4878,67 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
4436
4878
  style: normalizeStyle(panelStyle.value),
4437
4879
  onKeydown: onPanelKeydown
4438
4880
  }, [
4439
- createElementVNode("div", _hoisted_4$f, [
4881
+ createElementVNode("div", _hoisted_5$d, [
4440
4882
  createElementVNode("button", {
4441
4883
  type: "button",
4442
4884
  class: "tao-date__nav",
4443
- "aria-label": "Предыдущий месяц",
4885
+ "aria-label": __props.prevMonthLabel,
4444
4886
  onClick: _cache[0] || (_cache[0] = ($event) => goMonth(-1))
4445
- }, [..._cache[5] || (_cache[5] = [
4446
- createElementVNode("svg", {
4447
- viewBox: "0 0 24 24",
4448
- width: "14",
4449
- height: "14",
4450
- "aria-hidden": "true",
4451
- focusable: "false"
4452
- }, [
4453
- createElementVNode("path", {
4454
- fill: "none",
4455
- stroke: "currentColor",
4456
- "stroke-width": "2.2",
4457
- "stroke-linecap": "round",
4458
- "stroke-linejoin": "round",
4459
- d: "M14.5 5 8 12l6.5 7"
4460
- })
4461
- ], -1)
4462
- ])]),
4463
- createElementVNode("p", _hoisted_5$c, toDisplayString(monthLabel.value), 1),
4887
+ }, [
4888
+ createElementVNode("span", _hoisted_7$9, [
4889
+ renderSlot(_ctx.$slots, "prev-icon", {}, () => [
4890
+ _cache[5] || (_cache[5] = createElementVNode("svg", {
4891
+ viewBox: "0 0 24 24",
4892
+ width: "14",
4893
+ height: "14",
4894
+ focusable: "false"
4895
+ }, [
4896
+ createElementVNode("path", {
4897
+ fill: "none",
4898
+ stroke: "currentColor",
4899
+ "stroke-width": "2.2",
4900
+ "stroke-linecap": "round",
4901
+ "stroke-linejoin": "round",
4902
+ d: "M14.5 5 8 12l6.5 7"
4903
+ })
4904
+ ], -1))
4905
+ ], true)
4906
+ ])
4907
+ ], 8, _hoisted_6$a),
4908
+ createElementVNode("p", _hoisted_8$8, toDisplayString(monthLabel.value), 1),
4464
4909
  createElementVNode("button", {
4465
4910
  type: "button",
4466
4911
  class: "tao-date__nav",
4467
- "aria-label": "Следующий месяц",
4912
+ "aria-label": __props.nextMonthLabel,
4468
4913
  onClick: _cache[1] || (_cache[1] = ($event) => goMonth(1))
4469
- }, [..._cache[6] || (_cache[6] = [
4470
- createElementVNode("svg", {
4471
- viewBox: "0 0 24 24",
4472
- width: "14",
4473
- height: "14",
4474
- "aria-hidden": "true",
4475
- focusable: "false"
4476
- }, [
4477
- createElementVNode("path", {
4478
- fill: "none",
4479
- stroke: "currentColor",
4480
- "stroke-width": "2.2",
4481
- "stroke-linecap": "round",
4482
- "stroke-linejoin": "round",
4483
- d: "M9.5 5 16 12l-6.5 7"
4484
- })
4485
- ], -1)
4486
- ])])
4914
+ }, [
4915
+ createElementVNode("span", _hoisted_10$3, [
4916
+ renderSlot(_ctx.$slots, "next-icon", {}, () => [
4917
+ _cache[6] || (_cache[6] = createElementVNode("svg", {
4918
+ viewBox: "0 0 24 24",
4919
+ width: "14",
4920
+ height: "14",
4921
+ focusable: "false"
4922
+ }, [
4923
+ createElementVNode("path", {
4924
+ fill: "none",
4925
+ stroke: "currentColor",
4926
+ "stroke-width": "2.2",
4927
+ "stroke-linecap": "round",
4928
+ "stroke-linejoin": "round",
4929
+ d: "M9.5 5 16 12l-6.5 7"
4930
+ })
4931
+ ], -1))
4932
+ ], true)
4933
+ ])
4934
+ ], 8, _hoisted_9$3)
4487
4935
  ]),
4488
- createElementVNode("div", _hoisted_6$9, [
4936
+ createElementVNode("div", _hoisted_11$2, [
4489
4937
  (openBlock(true), createElementBlock(Fragment, null, renderList(weekdays.value, (day) => {
4490
4938
  return openBlock(), createElementBlock("span", { key: day }, toDisplayString(day), 1);
4491
4939
  }), 128))
4492
4940
  ]),
4493
- createElementVNode("div", _hoisted_7$7, [
4941
+ createElementVNode("div", _hoisted_12$1, [
4494
4942
  (openBlock(true), createElementBlock(Fragment, null, renderList(cells.value, (cell) => {
4495
4943
  return openBlock(), createElementBlock("button", {
4496
4944
  key: cell.iso,
@@ -4509,42 +4957,58 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
4509
4957
  onMousedown: _cache[2] || (_cache[2] = withModifiers(() => {
4510
4958
  }, ["prevent"])),
4511
4959
  onClick: ($event) => selectDay(cell.iso)
4512
- }, toDisplayString(cell.day), 43, _hoisted_8$6);
4960
+ }, toDisplayString(cell.day), 43, _hoisted_13$1);
4513
4961
  }), 128))
4514
4962
  ]),
4515
- createElementVNode("div", _hoisted_9$2, [
4963
+ createElementVNode("div", _hoisted_14$1, [
4516
4964
  createElementVNode("button", {
4517
4965
  type: "button",
4518
4966
  class: "tao-date__link",
4519
4967
  disabled: !todayEnabled.value,
4520
4968
  onClick: _cache[3] || (_cache[3] = ($event) => selectDay(todayIso.value))
4521
- }, " Сегодня ", 8, _hoisted_10$1),
4969
+ }, [
4970
+ renderSlot(_ctx.$slots, "today", {}, () => [
4971
+ createTextVNode(toDisplayString(__props.todayText), 1)
4972
+ ], true)
4973
+ ], 8, _hoisted_15),
4522
4974
  valueIso.value ? (openBlock(), createElementBlock("button", {
4523
4975
  key: 0,
4524
4976
  type: "button",
4525
4977
  class: "tao-date__link",
4526
4978
  onClick: clear
4527
- }, "Очистить")) : createCommentVNode("", true)
4979
+ }, [
4980
+ renderSlot(_ctx.$slots, "clear", {}, () => [
4981
+ createTextVNode(toDisplayString(__props.clearText), 1)
4982
+ ], true)
4983
+ ])) : createCommentVNode("", true)
4528
4984
  ])
4529
- ], 44, _hoisted_3$f)) : createCommentVNode("", true)
4985
+ ], 44, _hoisted_4$f)) : createCommentVNode("", true)
4530
4986
  ]))
4531
4987
  ], 2);
4532
4988
  };
4533
4989
  }
4534
4990
  });
4535
- const TaoDate = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-f4a9cddd"]]);
4991
+ const TaoDate = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-771836c8"]]);
4536
4992
  const _hoisted_1$j = ["id", "aria-expanded", "aria-invalid", "aria-describedby", "disabled"];
4537
4993
  const _hoisted_2$h = { class: "tao-date-range__value" };
4538
- const _hoisted_3$e = ["aria-label"];
4539
- const _hoisted_4$e = { class: "tao-date__header" };
4540
- const _hoisted_5$b = { class: "tao-date__month" };
4541
- const _hoisted_6$8 = {
4994
+ const _hoisted_3$e = {
4995
+ class: "tao-date-range__icon",
4996
+ "aria-hidden": "true"
4997
+ };
4998
+ const _hoisted_4$e = ["aria-label"];
4999
+ const _hoisted_5$c = { class: "tao-date__header" };
5000
+ const _hoisted_6$9 = ["aria-label"];
5001
+ const _hoisted_7$8 = { "aria-hidden": "true" };
5002
+ const _hoisted_8$7 = { class: "tao-date__month" };
5003
+ const _hoisted_9$2 = ["aria-label"];
5004
+ const _hoisted_10$2 = { "aria-hidden": "true" };
5005
+ const _hoisted_11$1 = {
4542
5006
  class: "tao-date__weekdays",
4543
5007
  "aria-hidden": "true"
4544
5008
  };
4545
- const _hoisted_7$6 = ["aria-label", "aria-selected", "disabled", "onMouseenter", "onClick"];
4546
- const _hoisted_8$5 = { class: "tao-date__footer" };
4547
- const _hoisted_9$1 = ["disabled"];
5009
+ const _hoisted_12 = ["aria-label", "aria-selected", "disabled", "onMouseenter", "onClick"];
5010
+ const _hoisted_13 = { class: "tao-date__footer" };
5011
+ const _hoisted_14 = ["disabled"];
4548
5012
  const _sfc_main$j = /* @__PURE__ */ defineComponent({
4549
5013
  ...{ name: "TaoDateRange" },
4550
5014
  __name: "TaoDateRange",
@@ -4555,7 +5019,11 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
4555
5019
  error: { type: Boolean, default: false },
4556
5020
  min: { default: void 0 },
4557
5021
  max: { default: void 0 },
4558
- locale: { default: "ru-RU" }
5022
+ locale: { default: "ru-RU" },
5023
+ todayText: { default: "Сегодня" },
5024
+ clearText: { default: "Очистить" },
5025
+ prevMonthLabel: { default: "Предыдущий месяц" },
5026
+ nextMonthLabel: { default: "Следующий месяц" }
4559
5027
  },
4560
5028
  emits: ["update:modelValue", "change"],
4561
5029
  setup(__props, { emit: __emit }) {
@@ -4830,32 +5298,34 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
4830
5298
  onKeydown: onTriggerKeydown
4831
5299
  }, [
4832
5300
  createElementVNode("span", _hoisted_2$h, toDisplayString(displayLabel.value || __props.placeholder), 1),
4833
- _cache[3] || (_cache[3] = createElementVNode("svg", {
4834
- class: "tao-date-range__icon",
4835
- viewBox: "0 0 16 16",
4836
- width: "16",
4837
- height: "16",
4838
- "aria-hidden": "true",
4839
- focusable: "false"
4840
- }, [
4841
- createElementVNode("rect", {
4842
- x: "2",
4843
- y: "3",
4844
- width: "12",
4845
- height: "11",
4846
- rx: "1.5",
4847
- fill: "none",
4848
- stroke: "currentColor",
4849
- "stroke-width": "1.4"
4850
- }),
4851
- createElementVNode("path", {
4852
- d: "M5 1.5v3M11 1.5v3M2 6.5h12",
4853
- fill: "none",
4854
- stroke: "currentColor",
4855
- "stroke-width": "1.4",
4856
- "stroke-linecap": "round"
4857
- })
4858
- ], -1))
5301
+ createElementVNode("span", _hoisted_3$e, [
5302
+ renderSlot(_ctx.$slots, "icon", {}, () => [
5303
+ _cache[3] || (_cache[3] = createElementVNode("svg", {
5304
+ viewBox: "0 0 16 16",
5305
+ width: "16",
5306
+ height: "16",
5307
+ focusable: "false"
5308
+ }, [
5309
+ createElementVNode("rect", {
5310
+ x: "2",
5311
+ y: "3",
5312
+ width: "12",
5313
+ height: "11",
5314
+ rx: "1.5",
5315
+ fill: "none",
5316
+ stroke: "currentColor",
5317
+ "stroke-width": "1.4"
5318
+ }),
5319
+ createElementVNode("path", {
5320
+ d: "M5 1.5v3M11 1.5v3M2 6.5h12",
5321
+ fill: "none",
5322
+ stroke: "currentColor",
5323
+ "stroke-width": "1.4",
5324
+ "stroke-linecap": "round"
5325
+ })
5326
+ ], -1))
5327
+ ], true)
5328
+ ])
4859
5329
  ], 42, _hoisted_1$j),
4860
5330
  (openBlock(), createBlock(Teleport, { to: "body" }, [
4861
5331
  open.value ? (openBlock(), createElementBlock("div", {
@@ -4870,56 +5340,62 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
4870
5340
  style: normalizeStyle(panelStyle.value),
4871
5341
  onKeydown: onPanelKeydown
4872
5342
  }, [
4873
- createElementVNode("div", _hoisted_4$e, [
5343
+ createElementVNode("div", _hoisted_5$c, [
4874
5344
  createElementVNode("button", {
4875
5345
  type: "button",
4876
5346
  class: "tao-date__nav",
4877
- "aria-label": "Предыдущий месяц",
5347
+ "aria-label": __props.prevMonthLabel,
4878
5348
  onClick: _cache[0] || (_cache[0] = ($event) => goMonth(-1))
4879
- }, [..._cache[4] || (_cache[4] = [
4880
- createElementVNode("svg", {
4881
- viewBox: "0 0 24 24",
4882
- width: "14",
4883
- height: "14",
4884
- "aria-hidden": "true",
4885
- focusable: "false"
4886
- }, [
4887
- createElementVNode("path", {
4888
- fill: "none",
4889
- stroke: "currentColor",
4890
- "stroke-width": "2.2",
4891
- "stroke-linecap": "round",
4892
- "stroke-linejoin": "round",
4893
- d: "M14.5 5 8 12l6.5 7"
4894
- })
4895
- ], -1)
4896
- ])]),
4897
- createElementVNode("p", _hoisted_5$b, toDisplayString(monthLabel.value), 1),
5349
+ }, [
5350
+ createElementVNode("span", _hoisted_7$8, [
5351
+ renderSlot(_ctx.$slots, "prev-icon", {}, () => [
5352
+ _cache[4] || (_cache[4] = createElementVNode("svg", {
5353
+ viewBox: "0 0 24 24",
5354
+ width: "14",
5355
+ height: "14",
5356
+ focusable: "false"
5357
+ }, [
5358
+ createElementVNode("path", {
5359
+ fill: "none",
5360
+ stroke: "currentColor",
5361
+ "stroke-width": "2.2",
5362
+ "stroke-linecap": "round",
5363
+ "stroke-linejoin": "round",
5364
+ d: "M14.5 5 8 12l6.5 7"
5365
+ })
5366
+ ], -1))
5367
+ ], true)
5368
+ ])
5369
+ ], 8, _hoisted_6$9),
5370
+ createElementVNode("p", _hoisted_8$7, toDisplayString(monthLabel.value), 1),
4898
5371
  createElementVNode("button", {
4899
5372
  type: "button",
4900
5373
  class: "tao-date__nav",
4901
- "aria-label": "Следующий месяц",
5374
+ "aria-label": __props.nextMonthLabel,
4902
5375
  onClick: _cache[1] || (_cache[1] = ($event) => goMonth(1))
4903
- }, [..._cache[5] || (_cache[5] = [
4904
- createElementVNode("svg", {
4905
- viewBox: "0 0 24 24",
4906
- width: "14",
4907
- height: "14",
4908
- "aria-hidden": "true",
4909
- focusable: "false"
4910
- }, [
4911
- createElementVNode("path", {
4912
- fill: "none",
4913
- stroke: "currentColor",
4914
- "stroke-width": "2.2",
4915
- "stroke-linecap": "round",
4916
- "stroke-linejoin": "round",
4917
- d: "M9.5 5 16 12l-6.5 7"
4918
- })
4919
- ], -1)
4920
- ])])
5376
+ }, [
5377
+ createElementVNode("span", _hoisted_10$2, [
5378
+ renderSlot(_ctx.$slots, "next-icon", {}, () => [
5379
+ _cache[5] || (_cache[5] = createElementVNode("svg", {
5380
+ viewBox: "0 0 24 24",
5381
+ width: "14",
5382
+ height: "14",
5383
+ focusable: "false"
5384
+ }, [
5385
+ createElementVNode("path", {
5386
+ fill: "none",
5387
+ stroke: "currentColor",
5388
+ "stroke-width": "2.2",
5389
+ "stroke-linecap": "round",
5390
+ "stroke-linejoin": "round",
5391
+ d: "M9.5 5 16 12l-6.5 7"
5392
+ })
5393
+ ], -1))
5394
+ ], true)
5395
+ ])
5396
+ ], 8, _hoisted_9$2)
4921
5397
  ]),
4922
- createElementVNode("div", _hoisted_6$8, [
5398
+ createElementVNode("div", _hoisted_11$1, [
4923
5399
  (openBlock(true), createElementBlock(Fragment, null, renderList(weekdays.value, (day) => {
4924
5400
  return openBlock(), createElementBlock("span", { key: day }, toDisplayString(day), 1);
4925
5401
  }), 128))
@@ -4952,30 +5428,38 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
4952
5428
  }, ["prevent"])),
4953
5429
  onMouseenter: ($event) => onDayEnter(cell.iso),
4954
5430
  onClick: ($event) => selectDay(cell.iso)
4955
- }, toDisplayString(cell.day), 43, _hoisted_7$6);
5431
+ }, toDisplayString(cell.day), 43, _hoisted_12);
4956
5432
  }), 128))
4957
5433
  ], 32),
4958
- createElementVNode("div", _hoisted_8$5, [
5434
+ createElementVNode("div", _hoisted_13, [
4959
5435
  createElementVNode("button", {
4960
5436
  type: "button",
4961
5437
  class: "tao-date__link",
4962
5438
  disabled: !todayEnabled.value,
4963
5439
  onClick: selectToday
4964
- }, " Сегодня ", 8, _hoisted_9$1),
5440
+ }, [
5441
+ renderSlot(_ctx.$slots, "today", {}, () => [
5442
+ createTextVNode(toDisplayString(__props.todayText), 1)
5443
+ ], true)
5444
+ ], 8, _hoisted_14),
4965
5445
  committed.value ? (openBlock(), createElementBlock("button", {
4966
5446
  key: 0,
4967
5447
  type: "button",
4968
5448
  class: "tao-date__link",
4969
5449
  onClick: clear
4970
- }, "Очистить")) : createCommentVNode("", true)
5450
+ }, [
5451
+ renderSlot(_ctx.$slots, "clear", {}, () => [
5452
+ createTextVNode(toDisplayString(__props.clearText), 1)
5453
+ ], true)
5454
+ ])) : createCommentVNode("", true)
4971
5455
  ])
4972
- ], 44, _hoisted_3$e)) : createCommentVNode("", true)
5456
+ ], 44, _hoisted_4$e)) : createCommentVNode("", true)
4973
5457
  ]))
4974
5458
  ], 2);
4975
5459
  };
4976
5460
  }
4977
5461
  });
4978
- const TaoDateRange = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-3d067081"]]);
5462
+ const TaoDateRange = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-4394053c"]]);
4979
5463
  const _hoisted_1$i = ["for"];
4980
5464
  const _hoisted_2$g = ["id", "checked", "disabled", "aria-checked"];
4981
5465
  const _hoisted_3$d = {
@@ -5294,15 +5778,15 @@ const _hoisted_4$b = {
5294
5778
  class: "tao-segmented-option__icon",
5295
5779
  "aria-hidden": "true"
5296
5780
  };
5297
- const _hoisted_5$a = {
5781
+ const _hoisted_5$b = {
5298
5782
  key: 1,
5299
5783
  class: "tao-segmented-option__label"
5300
5784
  };
5301
- const _hoisted_6$7 = {
5785
+ const _hoisted_6$8 = {
5302
5786
  key: 2,
5303
5787
  class: "tao-segmented-option__sr"
5304
5788
  };
5305
- const _hoisted_7$5 = {
5789
+ const _hoisted_7$7 = {
5306
5790
  key: 3,
5307
5791
  class: "tao-segmented-option__count"
5308
5792
  };
@@ -5387,12 +5871,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
5387
5871
  createTextVNode(toDisplayString(__props.icon), 1)
5388
5872
  ], true)
5389
5873
  ])) : createCommentVNode("", true),
5390
- hasLabel.value ? (openBlock(), createElementBlock("span", _hoisted_5$a, [
5874
+ hasLabel.value ? (openBlock(), createElementBlock("span", _hoisted_5$b, [
5391
5875
  renderSlot(_ctx.$slots, "default", {}, () => [
5392
5876
  createTextVNode(toDisplayString(__props.label), 1)
5393
5877
  ], true)
5394
- ])) : __props.ariaLabel ? (openBlock(), createElementBlock("span", _hoisted_6$7, toDisplayString(__props.ariaLabel), 1)) : createCommentVNode("", true),
5395
- countLabel.value ? (openBlock(), createElementBlock("span", _hoisted_7$5, toDisplayString(countLabel.value), 1)) : createCommentVNode("", true)
5878
+ ])) : __props.ariaLabel ? (openBlock(), createElementBlock("span", _hoisted_6$8, toDisplayString(__props.ariaLabel), 1)) : createCommentVNode("", true),
5879
+ countLabel.value ? (openBlock(), createElementBlock("span", _hoisted_7$7, toDisplayString(countLabel.value), 1)) : createCommentVNode("", true)
5396
5880
  ])
5397
5881
  ], 10, _hoisted_1$e);
5398
5882
  };
@@ -5409,13 +5893,16 @@ const _hoisted_4$a = {
5409
5893
  key: 1,
5410
5894
  class: "tao-alert__message"
5411
5895
  };
5896
+ const _hoisted_5$a = ["aria-label"];
5897
+ const _hoisted_6$7 = { "aria-hidden": "true" };
5412
5898
  const _sfc_main$d = /* @__PURE__ */ defineComponent({
5413
5899
  ...{ name: "TaoAlert" },
5414
5900
  __name: "TaoAlert",
5415
5901
  props: {
5416
5902
  type: { default: "info" },
5417
5903
  title: { default: "" },
5418
- closable: { type: Boolean, default: false }
5904
+ closable: { type: Boolean, default: false },
5905
+ closeLabel: { default: "Закрыть" }
5419
5906
  },
5420
5907
  emits: ["close"],
5421
5908
  setup(__props, { emit: __emit }) {
@@ -5439,22 +5926,28 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
5439
5926
  key: 0,
5440
5927
  type: "button",
5441
5928
  class: "tao-alert__close",
5442
- "aria-label": "Закрыть",
5929
+ "aria-label": __props.closeLabel,
5443
5930
  onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
5444
- }, " × ")) : createCommentVNode("", true)
5931
+ }, [
5932
+ createElementVNode("span", _hoisted_6$7, [
5933
+ renderSlot(_ctx.$slots, "close-icon", {}, () => [
5934
+ _cache[1] || (_cache[1] = createTextVNode("×", -1))
5935
+ ], true)
5936
+ ])
5937
+ ], 8, _hoisted_5$a)) : createCommentVNode("", true)
5445
5938
  ], 10, _hoisted_1$d);
5446
5939
  };
5447
5940
  }
5448
5941
  });
5449
- const TaoAlert = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-4c89fa1f"]]);
5942
+ const TaoAlert = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-1a1dbef3"]]);
5450
5943
  const _hoisted_1$c = { key: 0 };
5451
5944
  const _hoisted_2$a = ["aria-sort"];
5452
5945
  const _hoisted_3$9 = ["onClick"];
5453
5946
  const _hoisted_4$9 = { key: 1 };
5454
5947
  const _hoisted_5$9 = { key: 0 };
5455
5948
  const _hoisted_6$6 = ["colspan"];
5456
- const _hoisted_7$4 = ["onClick"];
5457
- const _hoisted_8$4 = {
5949
+ const _hoisted_7$6 = ["onClick"];
5950
+ const _hoisted_8$6 = {
5458
5951
  key: 0,
5459
5952
  class: "tao-table__loading",
5460
5953
  "aria-busy": "true"
@@ -5607,11 +6100,11 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
5607
6100
  ], true)
5608
6101
  ], 4);
5609
6102
  }), 128))
5610
- ], 8, _hoisted_7$4);
6103
+ ], 8, _hoisted_7$6);
5611
6104
  }), 128))
5612
6105
  ])
5613
6106
  ], 2),
5614
- __props.loading ? (openBlock(), createElementBlock("div", _hoisted_8$4, [
6107
+ __props.loading ? (openBlock(), createElementBlock("div", _hoisted_8$6, [
5615
6108
  renderSlot(_ctx.$slots, "loading", {}, () => [
5616
6109
  createVNode(TaoLoader, { size: 36 })
5617
6110
  ], true)
@@ -5651,15 +6144,17 @@ const _hoisted_2$9 = {
5651
6144
  class: "tao-pagination__total"
5652
6145
  };
5653
6146
  const _hoisted_3$8 = { class: "tao-pagination__pages" };
5654
- const _hoisted_4$8 = ["disabled"];
5655
- const _hoisted_5$8 = ["aria-label", "disabled", "onClick"];
5656
- const _hoisted_6$5 = {
6147
+ const _hoisted_4$8 = ["aria-label", "disabled"];
6148
+ const _hoisted_5$8 = { "aria-hidden": "true" };
6149
+ const _hoisted_6$5 = ["aria-label", "disabled", "onClick"];
6150
+ const _hoisted_7$5 = {
5657
6151
  key: 1,
5658
6152
  class: "tao-pagination__ellipsis",
5659
6153
  "aria-hidden": "true"
5660
6154
  };
5661
- const _hoisted_7$3 = ["aria-current", "aria-label", "disabled", "onClick"];
5662
- const _hoisted_8$3 = ["disabled"];
6155
+ const _hoisted_8$5 = ["aria-current", "aria-label", "disabled", "onClick"];
6156
+ const _hoisted_9$1 = ["aria-label", "disabled"];
6157
+ const _hoisted_10$1 = { "aria-hidden": "true" };
5663
6158
  const _sfc_main$b = /* @__PURE__ */ defineComponent({
5664
6159
  ...{ name: "TaoPagination" },
5665
6160
  __name: "TaoPagination",
@@ -5672,7 +6167,12 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
5672
6167
  showTotal: { type: Boolean, default: true },
5673
6168
  size: { default: "medium" },
5674
6169
  jump: { default: 5 },
5675
- ariaLabel: { default: "Пагинация" }
6170
+ ariaLabel: { default: "Пагинация" },
6171
+ prevLabel: { default: "Назад" },
6172
+ nextLabel: { default: "Вперёд" },
6173
+ pageLabel: { default: "Страница {page}" },
6174
+ jumpPrevLabel: { default: "Назад на {n} страниц" },
6175
+ jumpNextLabel: { default: "Вперёд на {n} страниц" }
5676
6176
  },
5677
6177
  emits: ["update:page", "change"],
5678
6178
  setup(__props, { emit: __emit }) {
@@ -5705,20 +6205,32 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
5705
6205
  "aria-label": __props.ariaLabel
5706
6206
  }, [
5707
6207
  __props.showTotal ? (openBlock(), createElementBlock("p", _hoisted_2$9, [
5708
- __props.total === 0 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
5709
- createTextVNode("0 из 0")
5710
- ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
5711
- createTextVNode(toDisplayString(from.value) + "–" + toDisplayString(to.value) + " из " + toDisplayString(__props.total), 1)
5712
- ], 64))
6208
+ renderSlot(_ctx.$slots, "total", {
6209
+ from: from.value,
6210
+ to: to.value,
6211
+ total: __props.total
6212
+ }, () => [
6213
+ __props.total === 0 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
6214
+ createTextVNode("0 из 0")
6215
+ ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
6216
+ createTextVNode(toDisplayString(from.value) + "–" + toDisplayString(to.value) + " из " + toDisplayString(__props.total), 1)
6217
+ ], 64))
6218
+ ], true)
5713
6219
  ])) : createCommentVNode("", true),
5714
6220
  createElementVNode("div", _hoisted_3$8, [
5715
6221
  createElementVNode("button", {
5716
6222
  type: "button",
5717
6223
  class: "tao-pagination__btn",
5718
- "aria-label": "Назад",
6224
+ "aria-label": __props.prevLabel,
5719
6225
  disabled: __props.disabled || current.value <= 1,
5720
6226
  onClick: _cache[0] || (_cache[0] = ($event) => goTo(current.value - 1))
5721
- }, " ‹ ", 8, _hoisted_4$8),
6227
+ }, [
6228
+ createElementVNode("span", _hoisted_5$8, [
6229
+ renderSlot(_ctx.$slots, "prev-icon", {}, () => [
6230
+ _cache[2] || (_cache[2] = createTextVNode("‹", -1))
6231
+ ], true)
6232
+ ])
6233
+ ], 8, _hoisted_4$8),
5722
6234
  (openBlock(true), createElementBlock(Fragment, null, renderList(items.value, (item) => {
5723
6235
  return openBlock(), createElementBlock(Fragment, {
5724
6236
  key: item.type === "page" ? item.page : item.id
@@ -5727,33 +6239,39 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
5727
6239
  key: 0,
5728
6240
  type: "button",
5729
6241
  class: "tao-pagination__btn tao-pagination__btn--jump",
5730
- "aria-label": item.id === "left" ? `Назад на ${__props.jump} страниц` : `Вперёд на ${__props.jump} страниц`,
6242
+ "aria-label": item.id === "left" ? __props.jumpPrevLabel.replace("{n}", String(__props.jump)) : __props.jumpNextLabel.replace("{n}", String(__props.jump)),
5731
6243
  disabled: __props.disabled,
5732
6244
  onClick: ($event) => goTo(item.id === "left" ? current.value - __props.jump : current.value + __props.jump)
5733
- }, " … ", 8, _hoisted_5$8)) : item.type === "ellipsis" ? (openBlock(), createElementBlock("span", _hoisted_6$5, "…")) : (openBlock(), createElementBlock("button", {
6245
+ }, " … ", 8, _hoisted_6$5)) : item.type === "ellipsis" ? (openBlock(), createElementBlock("span", _hoisted_7$5, "…")) : (openBlock(), createElementBlock("button", {
5734
6246
  key: 2,
5735
6247
  type: "button",
5736
6248
  class: normalizeClass(["tao-pagination__btn", { "tao-pagination__btn--current": item.page === current.value }]),
5737
6249
  "aria-current": item.page === current.value ? "page" : void 0,
5738
- "aria-label": `Страница ${item.page}`,
6250
+ "aria-label": __props.pageLabel.replace("{page}", String(item.page)),
5739
6251
  disabled: __props.disabled,
5740
6252
  onClick: ($event) => goTo(item.page)
5741
- }, toDisplayString(item.page), 11, _hoisted_7$3))
6253
+ }, toDisplayString(item.page), 11, _hoisted_8$5))
5742
6254
  ], 64);
5743
6255
  }), 128)),
5744
6256
  createElementVNode("button", {
5745
6257
  type: "button",
5746
6258
  class: "tao-pagination__btn",
5747
- "aria-label": "Вперёд",
6259
+ "aria-label": __props.nextLabel,
5748
6260
  disabled: __props.disabled || current.value >= pageCount.value,
5749
6261
  onClick: _cache[1] || (_cache[1] = ($event) => goTo(current.value + 1))
5750
- }, " › ", 8, _hoisted_8$3)
6262
+ }, [
6263
+ createElementVNode("span", _hoisted_10$1, [
6264
+ renderSlot(_ctx.$slots, "next-icon", {}, () => [
6265
+ _cache[3] || (_cache[3] = createTextVNode("›", -1))
6266
+ ], true)
6267
+ ])
6268
+ ], 8, _hoisted_9$1)
5751
6269
  ])
5752
6270
  ], 10, _hoisted_1$b);
5753
6271
  };
5754
6272
  }
5755
6273
  });
5756
- const TaoPagination = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-fd69be36"]]);
6274
+ const TaoPagination = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-a890810c"]]);
5757
6275
  const _hoisted_1$a = { class: "tao-empty" };
5758
6276
  const _hoisted_2$8 = {
5759
6277
  key: 0,
@@ -5832,8 +6350,10 @@ const _hoisted_2$7 = {
5832
6350
  };
5833
6351
  const _hoisted_3$6 = ["id"];
5834
6352
  const _hoisted_4$6 = { key: 1 };
5835
- const _hoisted_5$6 = { class: "tao-drawer__content" };
5836
- const _hoisted_6$4 = {
6353
+ const _hoisted_5$6 = ["aria-label"];
6354
+ const _hoisted_6$4 = { "aria-hidden": "true" };
6355
+ const _hoisted_7$4 = { class: "tao-drawer__content" };
6356
+ const _hoisted_8$4 = {
5837
6357
  key: 1,
5838
6358
  class: "tao-drawer__footer"
5839
6359
  };
@@ -5844,7 +6364,8 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
5844
6364
  modelValue: { type: Boolean },
5845
6365
  title: { default: "" },
5846
6366
  side: { default: "right" },
5847
- closable: { type: Boolean, default: true }
6367
+ closable: { type: Boolean, default: true },
6368
+ closeLabel: { default: "Закрыть" }
5848
6369
  },
5849
6370
  emits: ["update:modelValue", "close"],
5850
6371
  setup(__props, { emit: __emit }) {
@@ -5953,14 +6474,20 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
5953
6474
  key: 2,
5954
6475
  type: "button",
5955
6476
  class: "tao-drawer__close",
5956
- "aria-label": "Закрыть",
6477
+ "aria-label": __props.closeLabel,
5957
6478
  onClick: close
5958
- }, " × ")) : createCommentVNode("", true)
6479
+ }, [
6480
+ createElementVNode("span", _hoisted_6$4, [
6481
+ renderSlot(_ctx.$slots, "close-icon", {}, () => [
6482
+ _cache[0] || (_cache[0] = createTextVNode("×", -1))
6483
+ ], true)
6484
+ ])
6485
+ ], 8, _hoisted_5$6)) : createCommentVNode("", true)
5959
6486
  ])) : createCommentVNode("", true),
5960
- createElementVNode("div", _hoisted_5$6, [
6487
+ createElementVNode("div", _hoisted_7$4, [
5961
6488
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
5962
6489
  ]),
5963
- _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_6$4, [
6490
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_8$4, [
5964
6491
  renderSlot(_ctx.$slots, "footer", {}, void 0, true)
5965
6492
  ])) : createCommentVNode("", true)
5966
6493
  ], 8, _hoisted_1$8)
@@ -5972,7 +6499,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
5972
6499
  };
5973
6500
  }
5974
6501
  });
5975
- const TaoDrawer = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-6a0c0e98"]]);
6502
+ const TaoDrawer = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-14730fe9"]]);
5976
6503
  const _hoisted_1$7 = ["title"];
5977
6504
  const _hoisted_2$6 = { class: "tao-avatar__face" };
5978
6505
  const _hoisted_3$5 = ["src", "alt"];
@@ -5991,7 +6518,10 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
5991
6518
  alt: { default: "" },
5992
6519
  size: { default: "medium" },
5993
6520
  dot: { type: [Boolean, String], default: false },
5994
- count: { default: void 0 }
6521
+ count: { default: void 0 },
6522
+ fallbackLabel: { default: "Аватар" },
6523
+ notificationsLabel: { default: "{count} уведомлений" },
6524
+ dotLabels: { default: () => ({}) }
5995
6525
  },
5996
6526
  setup(__props) {
5997
6527
  const props = __props;
@@ -6036,7 +6566,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
6036
6566
  }
6037
6567
  return String(props.count);
6038
6568
  });
6039
- const dotLabel = {
6569
+ const defaultDotLabel = {
6040
6570
  success: "в сети",
6041
6571
  danger: "занят",
6042
6572
  warning: "отошёл",
@@ -6044,13 +6574,13 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
6044
6574
  neutral: "не в сети"
6045
6575
  };
6046
6576
  const label = computed(() => {
6047
- const base = props.alt || props.name || "Аватар";
6577
+ const base = props.alt || props.name || props.fallbackLabel;
6048
6578
  const extra = [];
6049
6579
  if (dotTone.value) {
6050
- extra.push(dotLabel[dotTone.value]);
6580
+ extra.push(props.dotLabels[dotTone.value] ?? defaultDotLabel[dotTone.value]);
6051
6581
  }
6052
6582
  if (badge.value) {
6053
- extra.push(`${badge.value} уведомлений`);
6583
+ extra.push(props.notificationsLabel.replace("{count}", badge.value));
6054
6584
  }
6055
6585
  return extra.length ? `${base}, ${extra.join(", ")}` : base;
6056
6586
  });
@@ -6081,11 +6611,8 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
6081
6611
  };
6082
6612
  }
6083
6613
  });
6084
- const TaoAvatar = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-cb4ec893"]]);
6085
- const _hoisted_1$6 = {
6086
- class: "tao-breadcrumb",
6087
- "aria-label": "Хлебные крошки"
6088
- };
6614
+ const TaoAvatar = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-03b60017"]]);
6615
+ const _hoisted_1$6 = ["aria-label"];
6089
6616
  const _hoisted_2$5 = { class: "tao-breadcrumb__list" };
6090
6617
  const _hoisted_3$4 = {
6091
6618
  key: 0,
@@ -6105,11 +6632,15 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
6105
6632
  ...{ name: "TaoBreadcrumb" },
6106
6633
  __name: "TaoBreadcrumb",
6107
6634
  props: {
6108
- items: {}
6635
+ items: {},
6636
+ ariaLabel: { default: "Хлебные крошки" }
6109
6637
  },
6110
6638
  setup(__props) {
6111
6639
  return (_ctx, _cache) => {
6112
- return openBlock(), createElementBlock("nav", _hoisted_1$6, [
6640
+ return openBlock(), createElementBlock("nav", {
6641
+ class: "tao-breadcrumb",
6642
+ "aria-label": __props.ariaLabel
6643
+ }, [
6113
6644
  createElementVNode("ol", _hoisted_2$5, [
6114
6645
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item, index) => {
6115
6646
  return openBlock(), createElementBlock("li", {
@@ -6130,11 +6661,11 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
6130
6661
  ]);
6131
6662
  }), 128))
6132
6663
  ])
6133
- ]);
6664
+ ], 8, _hoisted_1$6);
6134
6665
  };
6135
6666
  }
6136
6667
  });
6137
- const TaoBreadcrumb = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-48cf9bb5"]]);
6668
+ const TaoBreadcrumb = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-94ab1f67"]]);
6138
6669
  const _hoisted_1$5 = ["aria-label"];
6139
6670
  const _hoisted_2$4 = {
6140
6671
  class: "tao-counter__row",
@@ -6218,16 +6749,13 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
6218
6749
  });
6219
6750
  const TaoCounter = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-6b746f2f"]]);
6220
6751
  const _hoisted_1$4 = { class: "tao-carousel__row" };
6221
- const _hoisted_2$3 = ["disabled"];
6222
- const _hoisted_3$3 = ["aria-label"];
6223
- const _hoisted_4$3 = ["disabled"];
6224
- const _hoisted_5$3 = {
6225
- key: 0,
6226
- class: "tao-carousel__dots",
6227
- role: "group",
6228
- "aria-label": "Слайды"
6229
- };
6230
- const _hoisted_6$3 = ["aria-label", "aria-current", "onClick"];
6752
+ const _hoisted_2$3 = ["aria-label", "disabled"];
6753
+ const _hoisted_3$3 = { "aria-hidden": "true" };
6754
+ const _hoisted_4$3 = ["aria-label"];
6755
+ const _hoisted_5$3 = ["aria-label", "disabled"];
6756
+ const _hoisted_6$3 = { "aria-hidden": "true" };
6757
+ const _hoisted_7$3 = ["aria-label"];
6758
+ const _hoisted_8$3 = ["aria-label", "aria-current", "onClick"];
6231
6759
  const _sfc_main$4 = /* @__PURE__ */ defineComponent({
6232
6760
  ...{ name: "TaoCarousel" },
6233
6761
  __name: "TaoCarousel",
@@ -6239,7 +6767,11 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
6239
6767
  autoplay: { default: 0 },
6240
6768
  loop: { type: Boolean, default: false },
6241
6769
  dots: { type: Boolean, default: false },
6242
- ariaLabel: { default: "Лента" }
6770
+ ariaLabel: { default: "Лента" },
6771
+ prevLabel: { default: "Назад" },
6772
+ nextLabel: { default: "Вперёд" },
6773
+ dotsLabel: { default: "Слайды" },
6774
+ slideLabel: { default: "Слайд {n} из {count}" }
6243
6775
  },
6244
6776
  emits: ["update:modelValue", "change"],
6245
6777
  setup(__props, { emit: __emit }) {
@@ -6530,27 +7062,30 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
6530
7062
  key: 0,
6531
7063
  type: "button",
6532
7064
  class: "tao-carousel__nav",
6533
- "aria-label": "Назад",
7065
+ "aria-label": __props.prevLabel,
6534
7066
  disabled: atStart.value,
6535
7067
  onClick: goPrev
6536
- }, [..._cache[0] || (_cache[0] = [
6537
- createElementVNode("svg", {
6538
- viewBox: "0 0 24 24",
6539
- width: "16",
6540
- height: "16",
6541
- "aria-hidden": "true",
6542
- focusable: "false"
6543
- }, [
6544
- createElementVNode("path", {
6545
- fill: "none",
6546
- stroke: "currentColor",
6547
- "stroke-width": "2.2",
6548
- "stroke-linecap": "round",
6549
- "stroke-linejoin": "round",
6550
- d: "M14.5 5 8 12l6.5 7"
6551
- })
6552
- ], -1)
6553
- ])], 8, _hoisted_2$3)) : createCommentVNode("", true)
7068
+ }, [
7069
+ createElementVNode("span", _hoisted_3$3, [
7070
+ renderSlot(_ctx.$slots, "prev-icon", {}, () => [
7071
+ _cache[0] || (_cache[0] = createElementVNode("svg", {
7072
+ viewBox: "0 0 24 24",
7073
+ width: "16",
7074
+ height: "16",
7075
+ focusable: "false"
7076
+ }, [
7077
+ createElementVNode("path", {
7078
+ fill: "none",
7079
+ stroke: "currentColor",
7080
+ "stroke-width": "2.2",
7081
+ "stroke-linecap": "round",
7082
+ "stroke-linejoin": "round",
7083
+ d: "M14.5 5 8 12l6.5 7"
7084
+ })
7085
+ ], -1))
7086
+ ], true)
7087
+ ])
7088
+ ], 8, _hoisted_2$3)) : createCommentVNode("", true)
6554
7089
  ], true),
6555
7090
  createElementVNode("div", {
6556
7091
  ref_key: "track",
@@ -6569,7 +7104,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
6569
7104
  onClickCapture
6570
7105
  }, [
6571
7106
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
6572
- ], 42, _hoisted_3$3),
7107
+ ], 42, _hoisted_4$3),
6573
7108
  renderSlot(_ctx.$slots, "next", {
6574
7109
  disabled: atEnd.value,
6575
7110
  go: goNext
@@ -6578,27 +7113,30 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
6578
7113
  key: 0,
6579
7114
  type: "button",
6580
7115
  class: "tao-carousel__nav",
6581
- "aria-label": "Вперёд",
7116
+ "aria-label": __props.nextLabel,
6582
7117
  disabled: atEnd.value,
6583
7118
  onClick: goNext
6584
- }, [..._cache[1] || (_cache[1] = [
6585
- createElementVNode("svg", {
6586
- viewBox: "0 0 24 24",
6587
- width: "16",
6588
- height: "16",
6589
- "aria-hidden": "true",
6590
- focusable: "false"
6591
- }, [
6592
- createElementVNode("path", {
6593
- fill: "none",
6594
- stroke: "currentColor",
6595
- "stroke-width": "2.2",
6596
- "stroke-linecap": "round",
6597
- "stroke-linejoin": "round",
6598
- d: "M9.5 5 16 12l-6.5 7"
6599
- })
6600
- ], -1)
6601
- ])], 8, _hoisted_4$3)) : createCommentVNode("", true)
7119
+ }, [
7120
+ createElementVNode("span", _hoisted_6$3, [
7121
+ renderSlot(_ctx.$slots, "next-icon", {}, () => [
7122
+ _cache[1] || (_cache[1] = createElementVNode("svg", {
7123
+ viewBox: "0 0 24 24",
7124
+ width: "16",
7125
+ height: "16",
7126
+ focusable: "false"
7127
+ }, [
7128
+ createElementVNode("path", {
7129
+ fill: "none",
7130
+ stroke: "currentColor",
7131
+ "stroke-width": "2.2",
7132
+ "stroke-linecap": "round",
7133
+ "stroke-linejoin": "round",
7134
+ d: "M9.5 5 16 12l-6.5 7"
7135
+ })
7136
+ ], -1))
7137
+ ], true)
7138
+ ])
7139
+ ], 8, _hoisted_5$3)) : createCommentVNode("", true)
6602
7140
  ], true)
6603
7141
  ]),
6604
7142
  renderSlot(_ctx.$slots, "dots", {
@@ -6606,13 +7144,18 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
6606
7144
  count: snapCount.value,
6607
7145
  go: goTo
6608
7146
  }, () => [
6609
- showDots.value ? (openBlock(), createElementBlock("div", _hoisted_5$3, [
7147
+ showDots.value ? (openBlock(), createElementBlock("div", {
7148
+ key: 0,
7149
+ class: "tao-carousel__dots",
7150
+ role: "group",
7151
+ "aria-label": __props.dotsLabel
7152
+ }, [
6610
7153
  (openBlock(true), createElementBlock(Fragment, null, renderList(snapCount.value, (n) => {
6611
7154
  return openBlock(), createElementBlock("button", {
6612
7155
  key: n,
6613
7156
  type: "button",
6614
7157
  class: normalizeClass(["tao-carousel__dot", { "tao-carousel__dot--active": n - 1 === index.value }]),
6615
- "aria-label": `Слайд ${n} из ${snapCount.value}`,
7158
+ "aria-label": __props.slideLabel.replace("{n}", String(n)).replace("{count}", String(snapCount.value)),
6616
7159
  "aria-current": n - 1 === index.value ? "true" : void 0,
6617
7160
  onClick: ($event) => goTo(n - 1)
6618
7161
  }, [
@@ -6623,15 +7166,15 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
6623
7166
  }, () => [
6624
7167
  _cache[2] || (_cache[2] = createElementVNode("span", { class: "tao-carousel__pip" }, null, -1))
6625
7168
  ], true)
6626
- ], 10, _hoisted_6$3);
7169
+ ], 10, _hoisted_8$3);
6627
7170
  }), 128))
6628
- ])) : createCommentVNode("", true)
7171
+ ], 8, _hoisted_7$3)) : createCommentVNode("", true)
6629
7172
  ], true)
6630
7173
  ], 36);
6631
7174
  };
6632
7175
  }
6633
7176
  });
6634
- const TaoCarousel = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-4f6de725"]]);
7177
+ const TaoCarousel = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-239073ed"]]);
6635
7178
  const _hoisted_1$3 = ["aria-label"];
6636
7179
  const _hoisted_2$2 = ["aria-label"];
6637
7180
  const _hoisted_3$2 = {
@@ -6673,11 +7216,12 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
6673
7216
  props: {
6674
7217
  items: { default: () => [] },
6675
7218
  vertical: { type: Boolean, default: true },
6676
- ariaLabel: { default: "Стадии" }
7219
+ ariaLabel: { default: "Стадии" },
7220
+ statusLabels: { default: () => ({}) }
6677
7221
  },
6678
7222
  setup(__props) {
6679
7223
  const props = __props;
6680
- const statusText = {
7224
+ const fallbackStatusText = {
6681
7225
  wait: "ожидание",
6682
7226
  work: "в работе",
6683
7227
  ok: "готово",
@@ -6690,7 +7234,8 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
6690
7234
  return item.status ?? "wait";
6691
7235
  }
6692
7236
  function itemLabel(item) {
6693
- return `${item.label ?? item.key}, ${statusText[statusOf(item)]}`;
7237
+ const status = statusOf(item);
7238
+ return `${item.label ?? item.key}, ${props.statusLabels[status] ?? fallbackStatusText[status]}`;
6694
7239
  }
6695
7240
  return (_ctx, _cache) => {
6696
7241
  return openBlock(), createElementBlock("ul", {
@@ -6764,7 +7309,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
6764
7309
  };
6765
7310
  }
6766
7311
  });
6767
- const TaoStages = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-fefa5c65"]]);
7312
+ const TaoStages = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-b62db56d"]]);
6768
7313
  const TOAST_POSITIONS = [
6769
7314
  "topRight",
6770
7315
  "topLeft",
@@ -6778,7 +7323,8 @@ const toastDefaults = {
6778
7323
  position: "topCenter",
6779
7324
  timeout: 3e3,
6780
7325
  closable: true,
6781
- progress: true
7326
+ progress: true,
7327
+ closeLabel: "Закрыть уведомление"
6782
7328
  };
6783
7329
  const toasts = ref([]);
6784
7330
  const toastsByPosition = computed(() => {
@@ -6889,6 +7435,7 @@ const _hoisted_10 = {
6889
7435
  key: 2,
6890
7436
  class: "tao-toast__actions"
6891
7437
  };
7438
+ const _hoisted_11 = ["aria-label"];
6892
7439
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
6893
7440
  ...{ name: "TaoToastItem" },
6894
7441
  __name: "TaoToastItem",
@@ -7057,9 +7604,9 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
7057
7604
  key: 0,
7058
7605
  type: "button",
7059
7606
  class: "tao-toast__close",
7060
- "aria-label": "Закрыть уведомление",
7607
+ "aria-label": unref(toastDefaults).closeLabel,
7061
7608
  onClick: close
7062
- }, " × ")) : createCommentVNode("", true),
7609
+ }, " × ", 8, _hoisted_11)) : createCommentVNode("", true),
7063
7610
  __props.toast.progress && __props.toast.timeout ? (openBlock(), createElementBlock("span", {
7064
7611
  key: 1,
7065
7612
  class: "tao-toast__progress",
@@ -7069,7 +7616,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
7069
7616
  };
7070
7617
  }
7071
7618
  });
7072
- const TaoToastItem = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-7c4692c0"]]);
7619
+ const TaoToastItem = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-3909ff09"]]);
7073
7620
  const _hoisted_1$1 = { class: "tao-toast-slot__inner" };
7074
7621
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
7075
7622
  ...{ name: "TaoToastViewport" },
@@ -7778,8 +8325,9 @@ const components = [
7778
8325
  TaoSpoilerGroup,
7779
8326
  TaoCopy,
7780
8327
  TaoContainer,
7781
- _sfc_main$F,
8328
+ _sfc_main$G,
7782
8329
  TaoSpace,
8330
+ TaoSplit,
7783
8331
  TaoIcon,
7784
8332
  TaoLoader,
7785
8333
  TaoImage,
@@ -7850,7 +8398,7 @@ export {
7850
8398
  TaoEmpty,
7851
8399
  TaoFieldset,
7852
8400
  TaoFileDrop,
7853
- _sfc_main$F as TaoFlex,
8401
+ _sfc_main$G as TaoFlex,
7854
8402
  TaoFormField,
7855
8403
  TaoIcon,
7856
8404
  TaoImage,
@@ -7874,6 +8422,7 @@ export {
7874
8422
  TaoSkeleton,
7875
8423
  TaoSlider,
7876
8424
  TaoSpace,
8425
+ TaoSplit,
7877
8426
  TaoSpoiler,
7878
8427
  TaoSpoilerGroup,
7879
8428
  TaoStages,