dxd-style-code 0.1.0 → 0.1.2

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.
@@ -1,5 +1,5 @@
1
- import { computed as g, createBlock as C, openBlock as a, resolveDynamicComponent as L, normalizeClass as f, withCtx as P, renderSlot as $, createElementBlock as n, createCommentVNode as c, createTextVNode as j, createElementVNode as o, toDisplayString as b, normalizeStyle as E, ref as D, createVNode as A, unref as O, inject as oe, Fragment as M, renderList as _, watch as H, Transition as Y, provide as re, onMounted as U, onBeforeUnmount as J, withDirectives as q, withKeys as R, withModifiers as N, vModelText as G, nextTick as W, vShow as fe, Teleport as pe } from "vue";
2
- const ms = {
1
+ import { computed as p, createBlock as $, openBlock as a, resolveDynamicComponent as O, normalizeClass as f, withCtx as T, renderSlot as V, createElementBlock as n, createCommentVNode as c, createTextVNode as j, createElementVNode as o, toDisplayString as h, normalizeStyle as G, ref as B, createVNode as A, unref as _, inject as Q, Fragment as M, renderList as L, watch as F, Transition as Y, provide as ee, onMounted as U, onBeforeUnmount as te, withDirectives as q, withKeys as E, withModifiers as P, vModelText as K, nextTick as J, vShow as ce, Teleport as ge } from "vue";
2
+ const Os = {
3
3
  __name: "DXHeading",
4
4
  props: {
5
5
  /** Уровень заголовка: 1-6 */
@@ -14,7 +14,7 @@ const ms = {
14
14
  truncate: { type: Boolean, default: !1 }
15
15
  },
16
16
  setup(e) {
17
- const t = e, l = g(() => `h${t.level}`), s = {
17
+ const t = e, l = p(() => `h${t.level}`), s = {
18
18
  xs: "text-xs",
19
19
  sm: "text-sm",
20
20
  md: "text-base",
@@ -42,25 +42,25 @@ const ms = {
42
42
  success: "text-emerald-700",
43
43
  warning: "text-amber-700",
44
44
  danger: "text-rose-700"
45
- }, u = g(() => [
45
+ }, u = p(() => [
46
46
  t.size ? s[t.size] : r[t.level],
47
47
  i[t.weight] || i.semibold,
48
48
  d[t.color] || d.default,
49
49
  "tracking-tight",
50
50
  t.truncate && "truncate"
51
51
  ]);
52
- return (p, v) => (a(), C(L(l.value), {
52
+ return (v, b) => (a(), $(O(l.value), {
53
53
  class: f(u.value),
54
54
  "data-component": "DXHeading",
55
55
  "data-level": e.level
56
56
  }, {
57
- default: P(() => [
58
- $(p.$slots, "default")
57
+ default: T(() => [
58
+ V(v.$slots, "default")
59
59
  ]),
60
60
  _: 3
61
61
  }, 8, ["class", "data-level"]));
62
62
  }
63
- }, fs = {
63
+ }, Zs = {
64
64
  __name: "DXText",
65
65
  props: {
66
66
  /** Тег: p | span | div */
@@ -102,7 +102,7 @@ const ms = {
102
102
  center: "text-center",
103
103
  right: "text-right",
104
104
  justify: "text-justify"
105
- }, d = g(() => [
105
+ }, d = p(() => [
106
106
  l[t.size] || l.md,
107
107
  s[t.weight] || s.normal,
108
108
  r[t.color] || r.default,
@@ -111,20 +111,20 @@ const ms = {
111
111
  t.truncate && "truncate",
112
112
  t.lines > 0 && `line-clamp-${t.lines}`
113
113
  ]);
114
- return (u, p) => (a(), C(L(e.tag), {
114
+ return (u, v) => (a(), $(O(e.tag), {
115
115
  class: f(d.value),
116
116
  "data-component": "DXText"
117
117
  }, {
118
- default: P(() => [
119
- $(u.$slots, "default")
118
+ default: T(() => [
119
+ V(u.$slots, "default")
120
120
  ]),
121
121
  _: 3
122
122
  }, 8, ["class"]));
123
123
  }
124
- }, ge = ["for"], ve = {
124
+ }, xe = ["for"], ye = {
125
125
  key: 0,
126
126
  class: "text-rose-500 ml-0.5"
127
- }, ps = {
127
+ }, Ts = {
128
128
  __name: "DXLabel",
129
129
  props: {
130
130
  /** ID связанного input */
@@ -152,7 +152,7 @@ const ms = {
152
152
  default: "text-slate-700",
153
153
  muted: "text-slate-500",
154
154
  primary: "text-slate-900"
155
- }, i = g(() => [
155
+ }, i = p(() => [
156
156
  "block",
157
157
  l[t.size] || l.sm,
158
158
  s[t.weight] || s.medium,
@@ -163,11 +163,11 @@ const ms = {
163
163
  for: e.htmlFor,
164
164
  "data-component": "DXLabel"
165
165
  }, [
166
- $(d.$slots, "default"),
167
- e.required ? (a(), n("span", ve, "*")) : c("", !0)
168
- ], 10, ge));
166
+ V(d.$slots, "default"),
167
+ e.required ? (a(), n("span", ye, "*")) : c("", !0)
168
+ ], 10, xe));
169
169
  }
170
- }, be = { key: 0 }, gs = {
170
+ }, we = { key: 0 }, Ns = {
171
171
  __name: "DXCode",
172
172
  props: {
173
173
  /** Блочный код (pre) или inline */
@@ -182,7 +182,7 @@ const ms = {
182
182
  xs: "text-xs",
183
183
  sm: "text-sm",
184
184
  md: "text-base"
185
- }, s = g(() => t.block ? [
185
+ }, s = p(() => t.block ? [
186
186
  "block w-full overflow-x-auto rounded-xl bg-slate-900 text-slate-100 p-4",
187
187
  l[t.size] || l.sm,
188
188
  "font-mono leading-relaxed"
@@ -191,23 +191,23 @@ const ms = {
191
191
  l[t.size] || l.sm,
192
192
  "font-mono"
193
193
  ]);
194
- return (r, i) => (a(), C(L(e.block ? "pre" : "code"), {
194
+ return (r, i) => (a(), $(O(e.block ? "pre" : "code"), {
195
195
  class: f(s.value),
196
196
  "data-component": "DXCode",
197
197
  "data-block": e.block
198
198
  }, {
199
- default: P(() => [
200
- e.block ? (a(), n("code", be, [
201
- $(r.$slots, "default")
202
- ])) : $(r.$slots, "default", { key: 1 })
199
+ default: T(() => [
200
+ e.block ? (a(), n("code", we, [
201
+ V(r.$slots, "default")
202
+ ])) : V(r.$slots, "default", { key: 1 })
203
203
  ]),
204
204
  _: 3
205
205
  }, 8, ["class", "data-block"]));
206
206
  }
207
- }, he = ["data-variant"], xe = {
207
+ }, ke = ["data-variant"], $e = {
208
208
  key: 0,
209
209
  class: "mt-2 text-sm text-slate-500"
210
- }, vs = {
210
+ }, Ps = {
211
211
  __name: "DXBlockquote",
212
212
  props: {
213
213
  /** Вариант: default | bordered | highlighted */
@@ -226,7 +226,7 @@ const ms = {
226
226
  default: "text-slate-600 italic",
227
227
  bordered: "border-l-4 border-slate-300 pl-4 text-slate-600 italic",
228
228
  highlighted: "bg-slate-50 border-l-4 border-slate-400 pl-4 pr-4 py-3 rounded-r-lg text-slate-700"
229
- }, r = g(() => [
229
+ }, r = p(() => [
230
230
  l[t.size] || l.md,
231
231
  s[t.variant] || s.bordered,
232
232
  "leading-relaxed"
@@ -236,18 +236,18 @@ const ms = {
236
236
  "data-component": "DXBlockquote",
237
237
  "data-variant": e.variant
238
238
  }, [
239
- $(i.$slots, "default"),
240
- e.cite || i.$slots.cite ? (a(), n("footer", xe, [
239
+ V(i.$slots, "default"),
240
+ e.cite || i.$slots.cite ? (a(), n("footer", $e, [
241
241
  d[0] || (d[0] = j(" — ", -1)),
242
242
  o("cite", null, [
243
- $(i.$slots, "cite", {}, () => [
244
- j(b(e.cite), 1)
243
+ V(i.$slots, "cite", {}, () => [
244
+ j(h(e.cite), 1)
245
245
  ])
246
246
  ])
247
247
  ])) : c("", !0)
248
- ], 10, he));
248
+ ], 10, ke));
249
249
  }
250
- }, bs = {
250
+ }, Rs = {
251
251
  __name: "DXList",
252
252
  props: {
253
253
  /** Нумерованный список */
@@ -275,23 +275,23 @@ const ms = {
275
275
  square: "list-square",
276
276
  decimal: "list-decimal",
277
277
  none: "list-none"
278
- }, i = g(() => [
278
+ }, i = p(() => [
279
279
  l[t.size] || l.md,
280
280
  s[t.spacing] || s.sm,
281
281
  t.marker ? r[t.marker] : t.ordered ? "list-decimal" : "list-disc",
282
282
  "pl-5 text-slate-700"
283
283
  ]);
284
- return (d, u) => (a(), C(L(e.ordered ? "ol" : "ul"), {
284
+ return (d, u) => (a(), $(O(e.ordered ? "ol" : "ul"), {
285
285
  class: f(i.value),
286
286
  "data-component": "DXList"
287
287
  }, {
288
- default: P(() => [
289
- $(d.$slots, "default")
288
+ default: T(() => [
289
+ V(d.$slots, "default")
290
290
  ]),
291
291
  _: 3
292
292
  }, 8, ["class"]));
293
293
  }
294
- }, ye = ["data-size"], hs = {
294
+ }, Ce = ["data-size"], qs = {
295
295
  __name: "DXContainer",
296
296
  props: {
297
297
  /** Максимальная ширина: sm | md | lg | xl | 2xl | full */
@@ -314,7 +314,7 @@ const ms = {
314
314
  sm: "px-4",
315
315
  md: "px-6",
316
316
  lg: "px-8"
317
- }, r = g(() => [
317
+ }, r = p(() => [
318
318
  "w-full",
319
319
  l[t.size] || l.lg,
320
320
  s[t.padding] || s.md,
@@ -325,10 +325,10 @@ const ms = {
325
325
  "data-component": "DXContainer",
326
326
  "data-size": e.size
327
327
  }, [
328
- $(i.$slots, "default")
329
- ], 10, ye));
328
+ V(i.$slots, "default")
329
+ ], 10, Ce));
330
330
  }
331
- }, xs = {
331
+ }, Hs = {
332
332
  __name: "DXGrid",
333
333
  props: {
334
334
  /** Количество колонок: 1-12 или auto */
@@ -368,7 +368,7 @@ const ms = {
368
368
  11: "grid-cols-11",
369
369
  12: "grid-cols-12",
370
370
  auto: "grid-cols-[repeat(auto-fit,minmax(250px,1fr))]"
371
- }, r = g(() => [
371
+ }, r = p(() => [
372
372
  "grid",
373
373
  s[t.cols] || `grid-cols-${t.cols}`,
374
374
  t.colsSm && `sm:grid-cols-${t.colsSm}`,
@@ -377,16 +377,16 @@ const ms = {
377
377
  !t.gapX && !t.gapY && (l[t.gap] || l.md),
378
378
  t.gapX && `gap-x-${t.gapX}`,
379
379
  t.gapY && `gap-y-${t.gapY}`
380
- ]), i = g(() => t.cols === "auto" ? {} : {});
380
+ ]), i = p(() => t.cols === "auto" ? {} : {});
381
381
  return (d, u) => (a(), n("div", {
382
382
  class: f(r.value),
383
- style: E(i.value),
383
+ style: G(i.value),
384
384
  "data-component": "DXGrid"
385
385
  }, [
386
- $(d.$slots, "default")
386
+ V(d.$slots, "default")
387
387
  ], 6));
388
388
  }
389
- }, ys = {
389
+ }, Fs = {
390
390
  __name: "DXFlex",
391
391
  props: {
392
392
  /** Направление: row | row-reverse | col | col-reverse */
@@ -432,7 +432,7 @@ const ms = {
432
432
  md: "gap-4",
433
433
  lg: "gap-6",
434
434
  xl: "gap-8"
435
- }, u = g(() => [
435
+ }, u = p(() => [
436
436
  t.inline ? "inline-flex" : "flex",
437
437
  l[t.direction] || l.row,
438
438
  s[t.justify] || s.start,
@@ -440,14 +440,14 @@ const ms = {
440
440
  i[t.wrap] || i.nowrap,
441
441
  d[t.gap] || d.md
442
442
  ]);
443
- return (p, v) => (a(), n("div", {
443
+ return (v, b) => (a(), n("div", {
444
444
  class: f(u.value),
445
445
  "data-component": "DXFlex"
446
446
  }, [
447
- $(p.$slots, "default")
447
+ V(v.$slots, "default")
448
448
  ], 2));
449
449
  }
450
- }, we = ["data-direction"], ws = {
450
+ }, Se = ["data-direction"], Es = {
451
451
  __name: "DXStack",
452
452
  props: {
453
453
  /** Направление: vertical | horizontal */
@@ -481,7 +481,7 @@ const ms = {
481
481
  end: "justify-end",
482
482
  between: "justify-between",
483
483
  around: "justify-around"
484
- }, i = g(() => [
484
+ }, i = p(() => [
485
485
  "flex",
486
486
  t.direction === "horizontal" ? "flex-row" : "flex-col",
487
487
  l[t.gap] || l.md,
@@ -494,10 +494,10 @@ const ms = {
494
494
  "data-component": "DXStack",
495
495
  "data-direction": e.direction
496
496
  }, [
497
- $(d.$slots, "default")
498
- ], 10, we));
497
+ V(d.$slots, "default")
498
+ ], 10, Se));
499
499
  }
500
- }, ks = {
500
+ }, Gs = {
501
501
  __name: "DXSpacer",
502
502
  props: {
503
503
  /** Размер: xs | sm | md | lg | xl | 2xl или число в пикселях */
@@ -515,12 +515,12 @@ const ms = {
515
515
  lg: { v: "h-8", h: "w-8" },
516
516
  xl: { v: "h-12", h: "w-12" },
517
517
  "2xl": { v: "h-16", h: "w-16" }
518
- }, s = g(() => {
518
+ }, s = p(() => {
519
519
  if (t.grow)
520
520
  return ["flex-grow"];
521
521
  const i = l[t.size];
522
522
  return i ? t.direction === "horizontal" ? [i.h] : t.direction === "both" ? [i.v, i.h] : [i.v] : [];
523
- }), r = g(() => {
523
+ }), r = p(() => {
524
524
  if (t.grow) return {};
525
525
  if (typeof t.size == "number") {
526
526
  const i = `${t.size}px`;
@@ -530,12 +530,12 @@ const ms = {
530
530
  });
531
531
  return (i, d) => (a(), n("div", {
532
532
  class: f(s.value),
533
- style: E(r.value),
533
+ style: G(r.value),
534
534
  "data-component": "DXSpacer",
535
535
  "aria-hidden": "true"
536
536
  }, null, 6));
537
537
  }
538
- }, $s = {
538
+ }, Us = {
539
539
  __name: "DXBox",
540
540
  props: {
541
541
  /** HTML тег */
@@ -595,7 +595,7 @@ const ms = {
595
595
  md: "shadow",
596
596
  lg: "shadow-lg",
597
597
  xl: "shadow-xl"
598
- }, u = g(() => [
598
+ }, u = p(() => [
599
599
  t.p && `p-${l[t.p] || t.p}`,
600
600
  t.px && `px-${l[t.px] || t.px}`,
601
601
  t.py && `py-${l[t.py] || t.py}`,
@@ -607,18 +607,18 @@ const ms = {
607
607
  t.shadow && (d[t.shadow] || `shadow-${t.shadow}`),
608
608
  t.border && "border border-slate-200"
609
609
  ]);
610
- return (p, v) => (a(), C(L(e.tag), {
610
+ return (v, b) => (a(), $(O(e.tag), {
611
611
  class: f(u.value),
612
612
  "data-component": "DXBox"
613
613
  }, {
614
- default: P(() => [
615
- $(p.$slots, "default")
614
+ default: T(() => [
615
+ V(v.$slots, "default")
616
616
  ]),
617
617
  _: 3
618
618
  }, 8, ["class"]));
619
619
  }
620
620
  };
621
- function ke(e, t) {
621
+ function Ve(e, t) {
622
622
  return a(), n("svg", {
623
623
  xmlns: "http://www.w3.org/2000/svg",
624
624
  viewBox: "0 0 24 24",
@@ -633,7 +633,7 @@ function ke(e, t) {
633
633
  })
634
634
  ]);
635
635
  }
636
- function $e(e, t) {
636
+ function De(e, t) {
637
637
  return a(), n("svg", {
638
638
  xmlns: "http://www.w3.org/2000/svg",
639
639
  viewBox: "0 0 24 24",
@@ -648,7 +648,7 @@ function $e(e, t) {
648
648
  })
649
649
  ]);
650
650
  }
651
- function Q(e, t) {
651
+ function le(e, t) {
652
652
  return a(), n("svg", {
653
653
  xmlns: "http://www.w3.org/2000/svg",
654
654
  viewBox: "0 0 24 24",
@@ -663,7 +663,7 @@ function Q(e, t) {
663
663
  })
664
664
  ]);
665
665
  }
666
- function Ce(e, t) {
666
+ function ze(e, t) {
667
667
  return a(), n("svg", {
668
668
  xmlns: "http://www.w3.org/2000/svg",
669
669
  viewBox: "0 0 24 24",
@@ -678,7 +678,7 @@ function Ce(e, t) {
678
678
  })
679
679
  ]);
680
680
  }
681
- function ee(e, t) {
681
+ function ae(e, t) {
682
682
  return a(), n("svg", {
683
683
  xmlns: "http://www.w3.org/2000/svg",
684
684
  viewBox: "0 0 24 24",
@@ -693,7 +693,7 @@ function ee(e, t) {
693
693
  })
694
694
  ]);
695
695
  }
696
- function Se(e, t) {
696
+ function Be(e, t) {
697
697
  return a(), n("svg", {
698
698
  xmlns: "http://www.w3.org/2000/svg",
699
699
  viewBox: "0 0 24 24",
@@ -706,7 +706,7 @@ function Se(e, t) {
706
706
  o("path", { d: "M6.75 12c0-.619.107-1.213.304-1.764l-3.1-3.1a11.25 11.25 0 0 0-2.63 4.31c-.12.362-.12.752 0 1.114 1.489 4.467 5.704 7.69 10.675 7.69 1.5 0 2.933-.294 4.242-.827l-2.477-2.477A5.25 5.25 0 0 1 6.75 12Z" })
707
707
  ]);
708
708
  }
709
- function Ve(e, t) {
709
+ function Xe(e, t) {
710
710
  return a(), n("svg", {
711
711
  xmlns: "http://www.w3.org/2000/svg",
712
712
  viewBox: "0 0 24 24",
@@ -717,7 +717,7 @@ function Ve(e, t) {
717
717
  o("path", { d: "m11.645 20.91-.007-.003-.022-.012a15.247 15.247 0 0 1-.383-.218 25.18 25.18 0 0 1-4.244-3.17C4.688 15.36 2.25 12.174 2.25 8.25 2.25 5.322 4.714 3 7.688 3A5.5 5.5 0 0 1 12 5.052 5.5 5.5 0 0 1 16.313 3c2.973 0 5.437 2.322 5.437 5.25 0 3.925-2.438 7.111-4.739 9.256a25.175 25.175 0 0 1-4.244 3.17 15.247 15.247 0 0 1-.383.219l-.022.012-.007.004-.003.001a.752.752 0 0 1-.704 0l-.003-.001Z" })
718
718
  ]);
719
719
  }
720
- function te(e, t) {
720
+ function ne(e, t) {
721
721
  return a(), n("svg", {
722
722
  xmlns: "http://www.w3.org/2000/svg",
723
723
  viewBox: "0 0 24 24",
@@ -732,7 +732,7 @@ function te(e, t) {
732
732
  })
733
733
  ]);
734
734
  }
735
- function De(e, t) {
735
+ function Ie(e, t) {
736
736
  return a(), n("svg", {
737
737
  xmlns: "http://www.w3.org/2000/svg",
738
738
  viewBox: "0 0 24 24",
@@ -747,7 +747,7 @@ function De(e, t) {
747
747
  })
748
748
  ]);
749
749
  }
750
- function ze(e, t) {
750
+ function Ae(e, t) {
751
751
  return a(), n("svg", {
752
752
  xmlns: "http://www.w3.org/2000/svg",
753
753
  viewBox: "0 0 24 24",
@@ -762,7 +762,7 @@ function ze(e, t) {
762
762
  })
763
763
  ]);
764
764
  }
765
- function Be(e, t) {
765
+ function je(e, t) {
766
766
  return a(), n("svg", {
767
767
  xmlns: "http://www.w3.org/2000/svg",
768
768
  viewBox: "0 0 24 24",
@@ -777,7 +777,7 @@ function Be(e, t) {
777
777
  })
778
778
  ]);
779
779
  }
780
- function Xe(e, t) {
780
+ function Me(e, t) {
781
781
  return a(), n("svg", {
782
782
  xmlns: "http://www.w3.org/2000/svg",
783
783
  viewBox: "0 0 24 24",
@@ -788,7 +788,7 @@ function Xe(e, t) {
788
788
  o("path", { d: "M13.5 4.06c0-1.336-1.616-2.005-2.56-1.06l-4.5 4.5H4.508c-1.141 0-2.318.664-2.66 1.905A9.76 9.76 0 0 0 1.5 12c0 .898.121 1.768.35 2.595.341 1.24 1.518 1.905 2.659 1.905h1.93l4.5 4.5c.945.945 2.561.276 2.561-1.06V4.06ZM17.78 9.22a.75.75 0 1 0-1.06 1.06L18.44 12l-1.72 1.72a.75.75 0 1 0 1.06 1.06l1.72-1.72 1.72 1.72a.75.75 0 1 0 1.06-1.06L20.56 12l1.72-1.72a.75.75 0 1 0-1.06-1.06l-1.72 1.72-1.72-1.72Z" })
789
789
  ]);
790
790
  }
791
- function Ie(e, t) {
791
+ function Le(e, t) {
792
792
  return a(), n("svg", {
793
793
  xmlns: "http://www.w3.org/2000/svg",
794
794
  viewBox: "0 0 24 24",
@@ -803,7 +803,7 @@ function Ie(e, t) {
803
803
  })
804
804
  ]);
805
805
  }
806
- function Ae(e, t) {
806
+ function _e(e, t) {
807
807
  return a(), n("svg", {
808
808
  xmlns: "http://www.w3.org/2000/svg",
809
809
  viewBox: "0 0 24 24",
@@ -818,7 +818,7 @@ function Ae(e, t) {
818
818
  })
819
819
  ]);
820
820
  }
821
- function ie(e, t) {
821
+ function me(e, t) {
822
822
  return a(), n("svg", {
823
823
  xmlns: "http://www.w3.org/2000/svg",
824
824
  viewBox: "0 0 24 24",
@@ -833,7 +833,7 @@ function ie(e, t) {
833
833
  })
834
834
  ]);
835
835
  }
836
- function je(e, t) {
836
+ function Oe(e, t) {
837
837
  return a(), n("svg", {
838
838
  xmlns: "http://www.w3.org/2000/svg",
839
839
  viewBox: "0 0 24 24",
@@ -848,12 +848,12 @@ function je(e, t) {
848
848
  })
849
849
  ]);
850
850
  }
851
- const Z = (e, t) => {
851
+ const N = (e, t) => {
852
852
  const l = e.__vccOpts || e;
853
853
  for (const [s, r] of t)
854
854
  l[s] = r;
855
855
  return l;
856
- }, Me = {
856
+ }, Ze = {
857
857
  __name: "DXIcon",
858
858
  props: {
859
859
  /** Heroicon компонент */
@@ -877,19 +877,19 @@ const Z = (e, t) => {
877
877
  wiggle: "dx-icon-wiggle",
878
878
  scale: "dx-icon-scale",
879
879
  rotate: "dx-icon-rotate"
880
- }, r = g(() => [
880
+ }, r = p(() => [
881
881
  l[t.size] || l.md,
882
882
  s[t.animation] || "",
883
883
  t.class
884
884
  ]);
885
- return (i, d) => (a(), C(L(e.icon), {
885
+ return (i, d) => (a(), $(O(e.icon), {
886
886
  class: f(r.value),
887
887
  "data-component": "DXIcon",
888
888
  "data-size": e.size,
889
889
  "data-animation": e.animation
890
890
  }, null, 8, ["class", "data-size", "data-animation"]));
891
891
  }
892
- }, S = /* @__PURE__ */ Z(Me, [["__scopeId", "data-v-9441a40d"]]), Le = ["data-size"], _e = ["src", "alt"], Cs = {
892
+ }, D = /* @__PURE__ */ N(Ze, [["__scopeId", "data-v-9441a40d"]]), Te = ["data-size"], Ne = ["src", "alt"], Ks = {
893
893
  __name: "DXAvatar",
894
894
  props: {
895
895
  /** URL изображения */
@@ -910,7 +910,7 @@ const Z = (e, t) => {
910
910
  iconAnimation: { type: String, default: "none" }
911
911
  },
912
912
  setup(e) {
913
- const t = e, l = D(!1), s = {
913
+ const t = e, l = B(!1), s = {
914
914
  xs: "w-6 h-6",
915
915
  sm: "w-8 h-8",
916
916
  md: "w-10 h-10",
@@ -937,26 +937,26 @@ const Z = (e, t) => {
937
937
  offline: "bg-slate-400",
938
938
  busy: "bg-rose-500",
939
939
  away: "bg-amber-500"
940
- }, p = g(() => [
940
+ }, v = p(() => [
941
941
  "relative inline-flex items-center justify-center overflow-hidden bg-slate-100 transition-transform",
942
942
  s[t.size] || s.md,
943
943
  r[t.shape] || r.circle,
944
944
  t.iconAnimation !== "none" && "hover:scale-105"
945
- ]), v = g(() => [
945
+ ]), b = p(() => [
946
946
  "text-slate-600 uppercase",
947
947
  i[t.size] || i.md
948
- ]), m = g(() => [
948
+ ]), m = p(() => [
949
949
  d[t.size] || d.md,
950
950
  u[t.status] || ""
951
- ]), h = g(() => t.icon || Ae), y = {
951
+ ]), g = p(() => t.icon || _e), w = {
952
952
  xs: "sm",
953
953
  sm: "sm",
954
954
  md: "md",
955
955
  lg: "lg",
956
956
  xl: "xl"
957
- }, x = g(() => y[t.size] || "md");
958
- return (V, T) => (a(), n("div", {
959
- class: f(p.value),
957
+ }, y = p(() => w[t.size] || "md");
958
+ return (S, Z) => (a(), n("div", {
959
+ class: f(v.value),
960
960
  "data-component": "DXAvatar",
961
961
  "data-size": e.size
962
962
  }, [
@@ -965,14 +965,14 @@ const Z = (e, t) => {
965
965
  src: e.src,
966
966
  alt: e.alt,
967
967
  class: "w-full h-full object-cover",
968
- onError: T[0] || (T[0] = (X) => l.value = !0)
969
- }, null, 40, _e)) : e.initials ? (a(), n("span", {
968
+ onError: Z[0] || (Z[0] = (z) => l.value = !0)
969
+ }, null, 40, Ne)) : e.initials ? (a(), n("span", {
970
970
  key: 1,
971
- class: f(["font-medium", v.value])
972
- }, b(e.initials), 3)) : (a(), C(S, {
971
+ class: f(["font-medium", b.value])
972
+ }, h(e.initials), 3)) : (a(), $(D, {
973
973
  key: 2,
974
- icon: h.value,
975
- size: x.value,
974
+ icon: g.value,
975
+ size: y.value,
976
976
  animation: e.iconAnimation,
977
977
  class: "text-slate-400"
978
978
  }, null, 8, ["icon", "size", "animation"])),
@@ -980,9 +980,9 @@ const Z = (e, t) => {
980
980
  key: 3,
981
981
  class: f(["absolute bottom-0 right-0 block rounded-full ring-2 ring-white", m.value])
982
982
  }, null, 2)) : c("", !0)
983
- ], 10, Le));
983
+ ], 10, Te));
984
984
  }
985
- }, Oe = ["data-variant"], Te = "inline-flex items-center gap-1 px-2 py-1 text-[11px] rounded-full border font-semibold", Ss = {
985
+ }, Pe = ["data-variant"], Re = "inline-flex items-center gap-1 px-2 py-1 text-[11px] rounded-full border font-semibold", ie = {
986
986
  __name: "DXBadge",
987
987
  props: {
988
988
  /** Вариант оформления: slate | success | warning | danger | info */
@@ -999,31 +999,31 @@ const Z = (e, t) => {
999
999
  warning: "bg-amber-50 text-amber-700 border-amber-100",
1000
1000
  danger: "bg-rose-50 text-rose-700 border-rose-100",
1001
1001
  info: "bg-blue-50 text-blue-700 border-blue-100"
1002
- }, s = g(() => {
1002
+ }, s = p(() => {
1003
1003
  const r = l[t.variant] || l.slate;
1004
- return `${Te} ${r}`;
1004
+ return `${Re} ${r}`;
1005
1005
  });
1006
1006
  return (r, i) => (a(), n("span", {
1007
1007
  class: f(s.value),
1008
1008
  "data-component": "DXBadge",
1009
1009
  "data-variant": e.variant
1010
1010
  }, [
1011
- e.iconLeft ? (a(), C(S, {
1011
+ e.iconLeft ? (a(), $(D, {
1012
1012
  key: 0,
1013
1013
  icon: e.iconLeft,
1014
1014
  size: "xs",
1015
1015
  animation: "none"
1016
1016
  }, null, 8, ["icon"])) : c("", !0),
1017
- $(r.$slots, "default"),
1018
- e.iconRight ? (a(), C(S, {
1017
+ V(r.$slots, "default"),
1018
+ e.iconRight ? (a(), $(D, {
1019
1019
  key: 1,
1020
1020
  icon: e.iconRight,
1021
1021
  size: "xs",
1022
1022
  animation: "none"
1023
1023
  }, null, 8, ["icon"])) : c("", !0)
1024
- ], 10, Oe));
1024
+ ], 10, Pe));
1025
1025
  }
1026
- }, Ze = {
1026
+ }, qe = {
1027
1027
  __name: "DXButton",
1028
1028
  props: {
1029
1029
  /** Вариант оформления: primary | ghost | danger | outline */
@@ -1048,7 +1048,7 @@ const Z = (e, t) => {
1048
1048
  rel: { type: String, default: null }
1049
1049
  },
1050
1050
  setup(e) {
1051
- const t = e, l = g(() => t.to ? "router-link" : t.href ? "a" : "button"), s = g(() => t.iconOnly ? t.size === "sm" ? "h-9 w-9 text-xs" : t.size === "lg" ? "h-12 w-12 text-sm" : "h-10 w-10 text-sm" : t.size === "sm" ? "px-3 py-2 text-xs" : t.size === "lg" ? "px-5 py-3 text-base" : "px-4 py-2 text-sm"), r = g(() => {
1051
+ const t = e, l = p(() => t.to ? "router-link" : t.href ? "a" : "button"), s = p(() => t.iconOnly ? t.size === "sm" ? "h-9 w-9 text-xs" : t.size === "lg" ? "h-12 w-12 text-sm" : "h-10 w-10 text-sm" : t.size === "sm" ? "px-3 py-2 text-xs" : t.size === "lg" ? "px-5 py-3 text-base" : "px-4 py-2 text-sm"), r = p(() => {
1052
1052
  switch (t.variant) {
1053
1053
  case "ghost":
1054
1054
  return "border border-slate-200 text-slate-700 hover:border-slate-300 bg-white";
@@ -1060,7 +1060,7 @@ const Z = (e, t) => {
1060
1060
  return "bg-slate-800 text-white hover:bg-slate-700";
1061
1061
  }
1062
1062
  });
1063
- return (i, d) => (a(), C(L(l.value), {
1063
+ return (i, d) => (a(), $(O(l.value), {
1064
1064
  type: l.value === "button" ? e.type : void 0,
1065
1065
  disabled: e.disabled,
1066
1066
  to: e.to,
@@ -1071,25 +1071,25 @@ const Z = (e, t) => {
1071
1071
  "data-component": "DXButton",
1072
1072
  "data-variant": e.variant
1073
1073
  }, {
1074
- default: P(() => [
1075
- $(i.$slots, "default", {}, void 0, !0)
1074
+ default: T(() => [
1075
+ V(i.$slots, "default", {}, void 0, !0)
1076
1076
  ]),
1077
1077
  _: 3
1078
1078
  }, 8, ["type", "disabled", "to", "href", "target", "rel", "class", "data-variant"]));
1079
1079
  }
1080
- }, Vs = /* @__PURE__ */ Z(Ze, [["__scopeId", "data-v-99117d90"]]), Ne = {}, Pe = {
1080
+ }, Ys = /* @__PURE__ */ N(qe, [["__scopeId", "data-v-99117d90"]]), He = {}, Fe = {
1081
1081
  class: "bg-white border border-slate-100 rounded-2xl shadow-sm p-5",
1082
1082
  "data-component": "DXCard"
1083
1083
  };
1084
- function Fe(e, t) {
1085
- return a(), n("div", Pe, [
1086
- $(e.$slots, "default")
1084
+ function Ee(e, t) {
1085
+ return a(), n("div", Fe, [
1086
+ V(e.$slots, "default")
1087
1087
  ]);
1088
1088
  }
1089
- const Ds = /* @__PURE__ */ Z(Ne, [["render", Fe]]), He = ["checked", "value", "disabled"], Re = {
1089
+ const Ws = /* @__PURE__ */ N(He, [["render", Ee]]), Ge = ["checked", "value", "disabled"], Ue = {
1090
1090
  key: 0,
1091
1091
  class: "text-sm text-slate-700 select-none"
1092
- }, zs = {
1092
+ }, Js = {
1093
1093
  __name: "DXCheckbox",
1094
1094
  props: {
1095
1095
  /** Значение (v-model) - boolean или массив */
@@ -1105,7 +1105,7 @@ const Ds = /* @__PURE__ */ Z(Ne, [["render", Fe]]), He = ["checked", "value", "d
1105
1105
  },
1106
1106
  emits: ["update:modelValue"],
1107
1107
  setup(e, { emit: t }) {
1108
- const l = e, s = t, r = g(() => {
1108
+ const l = e, s = t, r = p(() => {
1109
1109
  switch (l.size) {
1110
1110
  case "sm":
1111
1111
  return "h-3.5 w-3.5";
@@ -1114,20 +1114,20 @@ const Ds = /* @__PURE__ */ Z(Ne, [["render", Fe]]), He = ["checked", "value", "d
1114
1114
  default:
1115
1115
  return "h-4 w-4";
1116
1116
  }
1117
- }), i = g(() => Array.isArray(l.modelValue) ? l.modelValue.includes(l.value) : l.modelValue), d = (u) => {
1117
+ }), i = p(() => Array.isArray(l.modelValue) ? l.modelValue.includes(l.value) : l.modelValue), d = (u) => {
1118
1118
  if (Array.isArray(l.modelValue)) {
1119
- const p = [...l.modelValue];
1119
+ const v = [...l.modelValue];
1120
1120
  if (u.target.checked)
1121
- p.push(l.value);
1121
+ v.push(l.value);
1122
1122
  else {
1123
- const v = p.indexOf(l.value);
1124
- v > -1 && p.splice(v, 1);
1123
+ const b = v.indexOf(l.value);
1124
+ b > -1 && v.splice(b, 1);
1125
1125
  }
1126
- s("update:modelValue", p);
1126
+ s("update:modelValue", v);
1127
1127
  } else
1128
1128
  s("update:modelValue", u.target.checked);
1129
1129
  };
1130
- return (u, p) => (a(), n("label", {
1130
+ return (u, v) => (a(), n("label", {
1131
1131
  class: f(["inline-flex items-center gap-2 cursor-pointer", { "opacity-60 cursor-not-allowed": e.disabled }]),
1132
1132
  "data-component": "DXCheckbox"
1133
1133
  }, [
@@ -1138,12 +1138,12 @@ const Ds = /* @__PURE__ */ Z(Ne, [["render", Fe]]), He = ["checked", "value", "d
1138
1138
  disabled: e.disabled,
1139
1139
  class: f(["rounded border-slate-300 text-slate-900 focus:ring-slate-900/10 focus:ring-2 transition", r.value]),
1140
1140
  onChange: d
1141
- }, null, 42, He),
1142
- e.label ? (a(), n("span", Re, b(e.label), 1)) : c("", !0)
1141
+ }, null, 42, Ge),
1142
+ e.label ? (a(), n("span", Ue, h(e.label), 1)) : c("", !0)
1143
1143
  ], 2));
1144
1144
  }
1145
1145
  };
1146
- function qe(e, t) {
1146
+ function Ke(e, t) {
1147
1147
  return a(), n("svg", {
1148
1148
  xmlns: "http://www.w3.org/2000/svg",
1149
1149
  fill: "none",
@@ -1160,7 +1160,7 @@ function qe(e, t) {
1160
1160
  })
1161
1161
  ]);
1162
1162
  }
1163
- function Ee(e, t) {
1163
+ function Ye(e, t) {
1164
1164
  return a(), n("svg", {
1165
1165
  xmlns: "http://www.w3.org/2000/svg",
1166
1166
  fill: "none",
@@ -1177,7 +1177,7 @@ function Ee(e, t) {
1177
1177
  })
1178
1178
  ]);
1179
1179
  }
1180
- function Ge(e, t) {
1180
+ function We(e, t) {
1181
1181
  return a(), n("svg", {
1182
1182
  xmlns: "http://www.w3.org/2000/svg",
1183
1183
  fill: "none",
@@ -1194,7 +1194,7 @@ function Ge(e, t) {
1194
1194
  })
1195
1195
  ]);
1196
1196
  }
1197
- function Ue(e, t) {
1197
+ function Je(e, t) {
1198
1198
  return a(), n("svg", {
1199
1199
  xmlns: "http://www.w3.org/2000/svg",
1200
1200
  fill: "none",
@@ -1211,7 +1211,41 @@ function Ue(e, t) {
1211
1211
  })
1212
1212
  ]);
1213
1213
  }
1214
- function le(e, t) {
1214
+ function Qe(e, t) {
1215
+ return a(), n("svg", {
1216
+ xmlns: "http://www.w3.org/2000/svg",
1217
+ fill: "none",
1218
+ viewBox: "0 0 24 24",
1219
+ "stroke-width": "1.5",
1220
+ stroke: "currentColor",
1221
+ "aria-hidden": "true",
1222
+ "data-slot": "icon"
1223
+ }, [
1224
+ o("path", {
1225
+ "stroke-linecap": "round",
1226
+ "stroke-linejoin": "round",
1227
+ d: "m18.75 4.5-7.5 7.5 7.5 7.5m-6-15L5.25 12l7.5 7.5"
1228
+ })
1229
+ ]);
1230
+ }
1231
+ function et(e, t) {
1232
+ return a(), n("svg", {
1233
+ xmlns: "http://www.w3.org/2000/svg",
1234
+ fill: "none",
1235
+ viewBox: "0 0 24 24",
1236
+ "stroke-width": "1.5",
1237
+ stroke: "currentColor",
1238
+ "aria-hidden": "true",
1239
+ "data-slot": "icon"
1240
+ }, [
1241
+ o("path", {
1242
+ "stroke-linecap": "round",
1243
+ "stroke-linejoin": "round",
1244
+ d: "m5.25 4.5 7.5 7.5-7.5 7.5m6-15 7.5 7.5-7.5 7.5"
1245
+ })
1246
+ ]);
1247
+ }
1248
+ function W(e, t) {
1215
1249
  return a(), n("svg", {
1216
1250
  xmlns: "http://www.w3.org/2000/svg",
1217
1251
  fill: "none",
@@ -1228,7 +1262,7 @@ function le(e, t) {
1228
1262
  })
1229
1263
  ]);
1230
1264
  }
1231
- function Ke(e, t) {
1265
+ function tt(e, t) {
1232
1266
  return a(), n("svg", {
1233
1267
  xmlns: "http://www.w3.org/2000/svg",
1234
1268
  fill: "none",
@@ -1245,7 +1279,7 @@ function Ke(e, t) {
1245
1279
  })
1246
1280
  ]);
1247
1281
  }
1248
- function de(e, t) {
1282
+ function fe(e, t) {
1249
1283
  return a(), n("svg", {
1250
1284
  xmlns: "http://www.w3.org/2000/svg",
1251
1285
  fill: "none",
@@ -1262,7 +1296,7 @@ function de(e, t) {
1262
1296
  })
1263
1297
  ]);
1264
1298
  }
1265
- function We(e, t) {
1299
+ function lt(e, t) {
1266
1300
  return a(), n("svg", {
1267
1301
  xmlns: "http://www.w3.org/2000/svg",
1268
1302
  fill: "none",
@@ -1279,7 +1313,7 @@ function We(e, t) {
1279
1313
  })
1280
1314
  ]);
1281
1315
  }
1282
- function Ye(e, t) {
1316
+ function at(e, t) {
1283
1317
  return a(), n("svg", {
1284
1318
  xmlns: "http://www.w3.org/2000/svg",
1285
1319
  fill: "none",
@@ -1296,7 +1330,7 @@ function Ye(e, t) {
1296
1330
  })
1297
1331
  ]);
1298
1332
  }
1299
- function Je(e, t) {
1333
+ function nt(e, t) {
1300
1334
  return a(), n("svg", {
1301
1335
  xmlns: "http://www.w3.org/2000/svg",
1302
1336
  fill: "none",
@@ -1313,7 +1347,7 @@ function Je(e, t) {
1313
1347
  })
1314
1348
  ]);
1315
1349
  }
1316
- function Qe(e, t) {
1350
+ function st(e, t) {
1317
1351
  return a(), n("svg", {
1318
1352
  xmlns: "http://www.w3.org/2000/svg",
1319
1353
  fill: "none",
@@ -1330,7 +1364,7 @@ function Qe(e, t) {
1330
1364
  })
1331
1365
  ]);
1332
1366
  }
1333
- function et(e, t) {
1367
+ function ot(e, t) {
1334
1368
  return a(), n("svg", {
1335
1369
  xmlns: "http://www.w3.org/2000/svg",
1336
1370
  fill: "none",
@@ -1347,7 +1381,7 @@ function et(e, t) {
1347
1381
  })
1348
1382
  ]);
1349
1383
  }
1350
- function ae(e, t) {
1384
+ function se(e, t) {
1351
1385
  return a(), n("svg", {
1352
1386
  xmlns: "http://www.w3.org/2000/svg",
1353
1387
  fill: "none",
@@ -1369,7 +1403,7 @@ function ae(e, t) {
1369
1403
  })
1370
1404
  ]);
1371
1405
  }
1372
- function tt(e, t) {
1406
+ function rt(e, t) {
1373
1407
  return a(), n("svg", {
1374
1408
  xmlns: "http://www.w3.org/2000/svg",
1375
1409
  fill: "none",
@@ -1386,7 +1420,7 @@ function tt(e, t) {
1386
1420
  })
1387
1421
  ]);
1388
1422
  }
1389
- function lt(e, t) {
1423
+ function it(e, t) {
1390
1424
  return a(), n("svg", {
1391
1425
  xmlns: "http://www.w3.org/2000/svg",
1392
1426
  fill: "none",
@@ -1403,7 +1437,24 @@ function lt(e, t) {
1403
1437
  })
1404
1438
  ]);
1405
1439
  }
1406
- function at(e, t) {
1440
+ function dt(e, t) {
1441
+ return a(), n("svg", {
1442
+ xmlns: "http://www.w3.org/2000/svg",
1443
+ fill: "none",
1444
+ viewBox: "0 0 24 24",
1445
+ "stroke-width": "1.5",
1446
+ stroke: "currentColor",
1447
+ "aria-hidden": "true",
1448
+ "data-slot": "icon"
1449
+ }, [
1450
+ o("path", {
1451
+ "stroke-linecap": "round",
1452
+ "stroke-linejoin": "round",
1453
+ d: "m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"
1454
+ })
1455
+ ]);
1456
+ }
1457
+ function ut(e, t) {
1407
1458
  return a(), n("svg", {
1408
1459
  xmlns: "http://www.w3.org/2000/svg",
1409
1460
  fill: "none",
@@ -1420,7 +1471,7 @@ function at(e, t) {
1420
1471
  })
1421
1472
  ]);
1422
1473
  }
1423
- function nt(e, t) {
1474
+ function ct(e, t) {
1424
1475
  return a(), n("svg", {
1425
1476
  xmlns: "http://www.w3.org/2000/svg",
1426
1477
  fill: "none",
@@ -1437,7 +1488,7 @@ function nt(e, t) {
1437
1488
  })
1438
1489
  ]);
1439
1490
  }
1440
- function st(e, t) {
1491
+ function mt(e, t) {
1441
1492
  return a(), n("svg", {
1442
1493
  xmlns: "http://www.w3.org/2000/svg",
1443
1494
  fill: "none",
@@ -1454,7 +1505,7 @@ function st(e, t) {
1454
1505
  })
1455
1506
  ]);
1456
1507
  }
1457
- function ot(e, t) {
1508
+ function ft(e, t) {
1458
1509
  return a(), n("svg", {
1459
1510
  xmlns: "http://www.w3.org/2000/svg",
1460
1511
  fill: "none",
@@ -1471,7 +1522,7 @@ function ot(e, t) {
1471
1522
  })
1472
1523
  ]);
1473
1524
  }
1474
- function rt(e, t) {
1525
+ function pt(e, t) {
1475
1526
  return a(), n("svg", {
1476
1527
  xmlns: "http://www.w3.org/2000/svg",
1477
1528
  fill: "none",
@@ -1488,7 +1539,7 @@ function rt(e, t) {
1488
1539
  })
1489
1540
  ]);
1490
1541
  }
1491
- function it(e, t) {
1542
+ function vt(e, t) {
1492
1543
  return a(), n("svg", {
1493
1544
  xmlns: "http://www.w3.org/2000/svg",
1494
1545
  fill: "none",
@@ -1505,7 +1556,7 @@ function it(e, t) {
1505
1556
  })
1506
1557
  ]);
1507
1558
  }
1508
- function dt(e, t) {
1559
+ function ht(e, t) {
1509
1560
  return a(), n("svg", {
1510
1561
  xmlns: "http://www.w3.org/2000/svg",
1511
1562
  fill: "none",
@@ -1522,7 +1573,7 @@ function dt(e, t) {
1522
1573
  })
1523
1574
  ]);
1524
1575
  }
1525
- function ut(e, t) {
1576
+ function bt(e, t) {
1526
1577
  return a(), n("svg", {
1527
1578
  xmlns: "http://www.w3.org/2000/svg",
1528
1579
  fill: "none",
@@ -1539,7 +1590,7 @@ function ut(e, t) {
1539
1590
  })
1540
1591
  ]);
1541
1592
  }
1542
- function ct(e, t) {
1593
+ function gt(e, t) {
1543
1594
  return a(), n("svg", {
1544
1595
  xmlns: "http://www.w3.org/2000/svg",
1545
1596
  fill: "none",
@@ -1556,7 +1607,7 @@ function ct(e, t) {
1556
1607
  })
1557
1608
  ]);
1558
1609
  }
1559
- function mt(e, t) {
1610
+ function xt(e, t) {
1560
1611
  return a(), n("svg", {
1561
1612
  xmlns: "http://www.w3.org/2000/svg",
1562
1613
  fill: "none",
@@ -1573,7 +1624,7 @@ function mt(e, t) {
1573
1624
  })
1574
1625
  ]);
1575
1626
  }
1576
- function ue(e, t) {
1627
+ function pe(e, t) {
1577
1628
  return a(), n("svg", {
1578
1629
  xmlns: "http://www.w3.org/2000/svg",
1579
1630
  fill: "none",
@@ -1590,7 +1641,7 @@ function ue(e, t) {
1590
1641
  })
1591
1642
  ]);
1592
1643
  }
1593
- const ft = ["aria-label"], ce = {
1644
+ const yt = ["aria-label"], ve = {
1594
1645
  __name: "DXCloseButton",
1595
1646
  props: {
1596
1647
  /** Размер: sm | md | lg */
@@ -1614,29 +1665,29 @@ const ft = ["aria-label"], ce = {
1614
1665
  default: "text-slate-400 hover:text-slate-600",
1615
1666
  light: "text-white/70 hover:text-white",
1616
1667
  danger: "text-rose-400 hover:text-rose-600"
1617
- }, i = g(() => s[t.size] || s.md), d = g(() => [
1668
+ }, i = p(() => s[t.size] || s.md), d = p(() => [
1618
1669
  "inline-flex items-center justify-center rounded transition-colors",
1619
1670
  l[t.size] || l.md,
1620
1671
  r[t.variant] || r.default
1621
1672
  ]);
1622
- return (u, p) => (a(), n("button", {
1673
+ return (u, v) => (a(), n("button", {
1623
1674
  type: "button",
1624
1675
  class: f(d.value),
1625
- onClick: p[0] || (p[0] = (v) => u.$emit("click", v)),
1676
+ onClick: v[0] || (v[0] = (b) => u.$emit("click", b)),
1626
1677
  "aria-label": e.ariaLabel,
1627
1678
  "data-component": "DXCloseButton"
1628
1679
  }, [
1629
- A(S, {
1630
- icon: O(ue),
1680
+ A(D, {
1681
+ icon: _(pe),
1631
1682
  size: i.value,
1632
1683
  animation: "scale"
1633
1684
  }, null, 8, ["icon", "size"])
1634
- ], 10, ft));
1685
+ ], 10, yt));
1635
1686
  }
1636
- }, pt = ["data-orientation"], gt = {
1687
+ }, wt = ["data-orientation"], kt = {
1637
1688
  key: 0,
1638
1689
  class: "flex items-center w-full"
1639
- }, vt = { class: "px-3 text-sm text-slate-500 whitespace-nowrap" }, Bs = {
1690
+ }, $t = { class: "px-3 text-sm text-slate-500 whitespace-nowrap" }, Ct = {
1640
1691
  __name: "DXDivider",
1641
1692
  props: {
1642
1693
  /** Ориентация: horizontal | vertical */
@@ -1671,42 +1722,42 @@ const ft = ["aria-label"], ce = {
1671
1722
  sm: "mx-2",
1672
1723
  md: "mx-4",
1673
1724
  lg: "mx-6"
1674
- }, u = g(() => [
1725
+ }, u = p(() => [
1675
1726
  t.orientation === "vertical" ? "inline-flex h-full" : "w-full",
1676
1727
  t.orientation === "horizontal" ? i[t.spacing] : d[t.spacing]
1677
- ]), p = g(() => [
1728
+ ]), v = p(() => [
1678
1729
  t.orientation === "vertical" ? "h-full" : "flex-1",
1679
1730
  l[t.color] || l.default,
1680
1731
  t.orientation === "vertical" ? r[t.thickness] : s[t.thickness]
1681
1732
  ]);
1682
- return (v, m) => (a(), n("div", {
1733
+ return (b, m) => (a(), n("div", {
1683
1734
  class: f(u.value),
1684
1735
  "data-component": "DXDivider",
1685
1736
  "data-orientation": e.orientation
1686
1737
  }, [
1687
- v.$slots.default && e.orientation === "horizontal" ? (a(), n("div", gt, [
1738
+ b.$slots.default && e.orientation === "horizontal" ? (a(), n("div", kt, [
1688
1739
  o("div", {
1689
- class: f(p.value)
1740
+ class: f(v.value)
1690
1741
  }, null, 2),
1691
- o("span", vt, [
1692
- $(v.$slots, "default")
1742
+ o("span", $t, [
1743
+ V(b.$slots, "default")
1693
1744
  ]),
1694
1745
  o("div", {
1695
- class: f(p.value)
1746
+ class: f(v.value)
1696
1747
  }, null, 2)
1697
1748
  ])) : (a(), n("div", {
1698
1749
  key: 1,
1699
- class: f(p.value)
1750
+ class: f(v.value)
1700
1751
  }, null, 2))
1701
- ], 10, pt));
1752
+ ], 10, wt));
1702
1753
  }
1703
- }, bt = ["disabled"], ht = { class: "flex-1" }, xt = {
1754
+ }, St = ["disabled"], Vt = { class: "flex-1" }, Dt = {
1704
1755
  key: 1,
1705
1756
  class: "w-4 h-4 text-slate-400",
1706
1757
  fill: "none",
1707
1758
  stroke: "currentColor",
1708
1759
  viewBox: "0 0 24 24"
1709
- }, yt = {
1760
+ }, zt = {
1710
1761
  __name: "DXDropdownItem",
1711
1762
  props: {
1712
1763
  icon: { type: Object, default: null },
@@ -1717,7 +1768,7 @@ const ft = ["aria-label"], ce = {
1717
1768
  },
1718
1769
  emits: ["click"],
1719
1770
  setup(e, { emit: t }) {
1720
- const l = e, s = t, r = oe("dropdown", null), i = (d) => {
1771
+ const l = e, s = t, r = Q("dropdown", null), i = (d) => {
1721
1772
  l.disabled || (s("click", d), l.closeOnClick && r && r.close());
1722
1773
  };
1723
1774
  return (d, u) => (a(), n("button", {
@@ -1730,14 +1781,14 @@ const ft = ["aria-label"], ce = {
1730
1781
  onClick: i,
1731
1782
  "data-component": "DXDropdownItem"
1732
1783
  }, [
1733
- e.icon ? (a(), C(L(e.icon), {
1784
+ e.icon ? (a(), $(O(e.icon), {
1734
1785
  key: 0,
1735
1786
  class: "w-4 h-4 flex-shrink-0"
1736
1787
  })) : c("", !0),
1737
- o("span", ht, [
1738
- $(d.$slots, "default", {}, void 0, !0)
1788
+ o("span", Vt, [
1789
+ V(d.$slots, "default", {}, void 0, !0)
1739
1790
  ]),
1740
- e.submenu ? (a(), n("svg", xt, [...u[0] || (u[0] = [
1791
+ e.submenu ? (a(), n("svg", Dt, [...u[0] || (u[0] = [
1741
1792
  o("path", {
1742
1793
  "stroke-linecap": "round",
1743
1794
  "stroke-linejoin": "round",
@@ -1745,10 +1796,10 @@ const ft = ["aria-label"], ce = {
1745
1796
  d: "M9 5l7 7-7 7"
1746
1797
  }, null, -1)
1747
1798
  ])])) : c("", !0)
1748
- ], 10, bt));
1799
+ ], 10, St));
1749
1800
  }
1750
- }, Xs = /* @__PURE__ */ Z(yt, [["__scopeId", "data-v-b0daf145"]]);
1751
- function me(e, t = "input") {
1801
+ }, Qs = /* @__PURE__ */ N(zt, [["__scopeId", "data-v-b0daf145"]]);
1802
+ function he(e, t = "input") {
1752
1803
  var s, r;
1753
1804
  const l = {
1754
1805
  button: {
@@ -1778,25 +1829,25 @@ function me(e, t = "input") {
1778
1829
  };
1779
1830
  return ((s = l[t]) == null ? void 0 : s[e]) || ((r = l[t]) == null ? void 0 : r.md) || "";
1780
1831
  }
1781
- const wt = {
1832
+ const Bt = {
1782
1833
  class: "w-full",
1783
1834
  "data-component": "DXInput"
1784
- }, kt = {
1835
+ }, Xt = {
1785
1836
  key: 0,
1786
1837
  class: "block text-sm text-slate-600 mb-1 font-medium"
1787
- }, $t = { class: "relative" }, Ct = {
1838
+ }, It = { class: "relative" }, At = {
1788
1839
  key: 0,
1789
1840
  class: "absolute left-3 top-1/2 -translate-y-1/2 text-slate-400"
1790
- }, St = ["type", "placeholder", "value", "disabled"], Vt = {
1841
+ }, jt = ["type", "placeholder", "value", "disabled"], Mt = {
1791
1842
  key: 1,
1792
1843
  class: "absolute right-3 top-1/2 -translate-y-1/2 text-slate-400"
1793
- }, Dt = {
1844
+ }, Lt = {
1794
1845
  key: 1,
1795
1846
  class: "mt-1 text-xs text-rose-500"
1796
- }, zt = {
1847
+ }, _t = {
1797
1848
  key: 2,
1798
1849
  class: "mt-1 text-xs text-slate-500"
1799
- }, Is = {
1850
+ }, Ot = {
1800
1851
  __name: "DXInput",
1801
1852
  props: {
1802
1853
  /** Значение поля (v-model) */
@@ -1824,11 +1875,11 @@ const wt = {
1824
1875
  },
1825
1876
  emits: ["update:modelValue"],
1826
1877
  setup(e) {
1827
- const t = e, l = g(() => {
1878
+ const t = e, l = p(() => {
1828
1879
  var s, r;
1829
1880
  return [
1830
1881
  "w-full rounded-xl border border-slate-200 bg-white transition-colors",
1831
- me(t.size, "input"),
1882
+ he(t.size, "input"),
1832
1883
  "text-slate-700 placeholder:text-slate-400",
1833
1884
  !t.disabled && "hover:border-slate-300 focus:outline-none focus:ring-2 focus:ring-slate-900/10 focus:border-slate-300",
1834
1885
  t.disabled && "opacity-60 cursor-not-allowed bg-slate-50",
@@ -1838,16 +1889,16 @@ const wt = {
1838
1889
  t.inputClass
1839
1890
  ];
1840
1891
  });
1841
- return (s, r) => (a(), n("div", wt, [
1842
- e.label ? (a(), n("label", kt, b(e.label), 1)) : c("", !0),
1843
- o("div", $t, [
1844
- e.prefixIcon || s.$slots.prefix ? (a(), n("div", Ct, [
1845
- e.prefixIcon ? (a(), C(S, {
1892
+ return (s, r) => (a(), n("div", Bt, [
1893
+ e.label ? (a(), n("label", Xt, h(e.label), 1)) : c("", !0),
1894
+ o("div", It, [
1895
+ e.prefixIcon || s.$slots.prefix ? (a(), n("div", At, [
1896
+ e.prefixIcon ? (a(), $(D, {
1846
1897
  key: 0,
1847
1898
  icon: e.prefixIcon,
1848
1899
  size: "sm",
1849
1900
  animation: "none"
1850
- }, null, 8, ["icon"])) : $(s.$slots, "prefix", { key: 1 })
1901
+ }, null, 8, ["icon"])) : V(s.$slots, "prefix", { key: 1 })
1851
1902
  ])) : c("", !0),
1852
1903
  o("input", {
1853
1904
  type: e.type,
@@ -1856,26 +1907,26 @@ const wt = {
1856
1907
  disabled: e.disabled,
1857
1908
  class: f(l.value),
1858
1909
  onInput: r[0] || (r[0] = (i) => s.$emit("update:modelValue", i.target.value))
1859
- }, null, 42, St),
1860
- e.suffixIcon || s.$slots.suffix ? (a(), n("div", Vt, [
1861
- e.suffixIcon ? (a(), C(S, {
1910
+ }, null, 42, jt),
1911
+ e.suffixIcon || s.$slots.suffix ? (a(), n("div", Mt, [
1912
+ e.suffixIcon ? (a(), $(D, {
1862
1913
  key: 0,
1863
1914
  icon: e.suffixIcon,
1864
1915
  size: "sm",
1865
1916
  animation: "none"
1866
- }, null, 8, ["icon"])) : $(s.$slots, "suffix", { key: 1 })
1917
+ }, null, 8, ["icon"])) : V(s.$slots, "suffix", { key: 1 })
1867
1918
  ])) : c("", !0)
1868
1919
  ]),
1869
- e.error ? (a(), n("p", Dt, b(e.error), 1)) : e.helper ? (a(), n("p", zt, b(e.helper), 1)) : c("", !0)
1920
+ e.error ? (a(), n("p", Lt, h(e.error), 1)) : e.helper ? (a(), n("p", _t, h(e.helper), 1)) : c("", !0)
1870
1921
  ]));
1871
1922
  }
1872
- }, As = {
1923
+ }, eo = {
1873
1924
  __name: "DXInputAddon",
1874
1925
  props: {
1875
1926
  icon: { type: Object, default: null }
1876
1927
  },
1877
1928
  setup(e) {
1878
- const t = oe("inputGroup", { size: "md" }), l = g(() => {
1929
+ const t = Q("inputGroup", { size: "md" }), l = p(() => {
1879
1930
  const s = {
1880
1931
  sm: "h-9",
1881
1932
  md: "h-11",
@@ -1887,38 +1938,38 @@ const wt = {
1887
1938
  class: f(["flex items-center px-3 border border-r-0 bg-slate-50 text-slate-600 text-sm first:rounded-l-xl last:rounded-r-xl last:border-r", l.value]),
1888
1939
  "data-component": "DXInputGroupAddon"
1889
1940
  }, [
1890
- e.icon ? (a(), C(L(e.icon), {
1941
+ e.icon ? (a(), $(O(e.icon), {
1891
1942
  key: 0,
1892
1943
  class: "w-4 h-4"
1893
1944
  })) : c("", !0),
1894
- $(s.$slots, "default")
1945
+ V(s.$slots, "default")
1895
1946
  ], 2));
1896
1947
  }
1897
- }, Bt = {}, Xt = {
1948
+ }, Zt = {}, Tt = {
1898
1949
  class: "flex items-center justify-center gap-2 text-sm text-slate-600",
1899
1950
  "data-component": "DXLoader"
1900
1951
  };
1901
- function It(e, t) {
1902
- return a(), n("div", Xt, [
1952
+ function Nt(e, t) {
1953
+ return a(), n("div", Tt, [
1903
1954
  t[1] || (t[1] = o("span", { class: "w-4 h-4 border-2 border-slate-300 border-t-slate-900 rounded-full animate-spin" }, null, -1)),
1904
- $(e.$slots, "default", {}, () => [
1955
+ V(e.$slots, "default", {}, () => [
1905
1956
  t[0] || (t[0] = j("Загрузка...", -1))
1906
1957
  ])
1907
1958
  ]);
1908
1959
  }
1909
- const js = /* @__PURE__ */ Z(Bt, [["render", It]]), At = {
1960
+ const to = /* @__PURE__ */ N(Zt, [["render", Nt]]), Pt = {
1910
1961
  class: "w-full",
1911
1962
  "data-component": "DXProgress"
1912
- }, jt = {
1963
+ }, Rt = {
1913
1964
  key: 0,
1914
1965
  class: "flex justify-between items-center mb-1"
1915
- }, Mt = { class: "text-sm font-medium text-slate-700" }, Lt = {
1966
+ }, qt = { class: "text-sm font-medium text-slate-700" }, Ht = {
1916
1967
  key: 0,
1917
1968
  class: "text-sm font-semibold text-slate-900"
1918
- }, _t = ["aria-valuenow", "aria-valuemin", "aria-valuemax"], Ot = {
1969
+ }, Ft = ["aria-valuenow", "aria-valuemin", "aria-valuemax"], Et = {
1919
1970
  key: 0,
1920
1971
  class: "text-xs font-medium text-white px-1"
1921
- }, Tt = {
1972
+ }, Gt = {
1922
1973
  __name: "DXProgress",
1923
1974
  props: {
1924
1975
  /** Текущее значение */
@@ -1945,10 +1996,10 @@ const js = /* @__PURE__ */ Z(Bt, [["render", It]]), At = {
1945
1996
  striped: { type: Boolean, default: !1 }
1946
1997
  },
1947
1998
  setup(e) {
1948
- const t = e, l = g(() => {
1949
- const p = t.max - t.min;
1950
- return Math.min(100, Math.max(0, (t.value - t.min) / p * 100));
1951
- }), s = g(() => `${Math.round(l.value)}%`), r = {
1999
+ const t = e, l = p(() => {
2000
+ const v = t.max - t.min;
2001
+ return Math.min(100, Math.max(0, (t.value - t.min) / v * 100));
2002
+ }), s = p(() => `${Math.round(l.value)}%`), r = {
1952
2003
  xs: "h-1",
1953
2004
  sm: "h-2",
1954
2005
  md: "h-3",
@@ -1959,44 +2010,44 @@ const js = /* @__PURE__ */ Z(Bt, [["render", It]]), At = {
1959
2010
  warning: "bg-amber-500",
1960
2011
  danger: "bg-rose-500",
1961
2012
  info: "bg-blue-500"
1962
- }, d = g(() => [
2013
+ }, d = p(() => [
1963
2014
  "w-full bg-slate-200 rounded-full overflow-hidden",
1964
2015
  r[t.size] || r.md
1965
- ]), u = g(() => [
2016
+ ]), u = p(() => [
1966
2017
  "h-full rounded-full transition-all duration-300 flex items-center justify-end",
1967
2018
  i[t.color] || i.default,
1968
2019
  t.striped && "bg-stripes",
1969
2020
  t.animated && t.striped && "animate-stripes"
1970
2021
  ]);
1971
- return (p, v) => (a(), n("div", At, [
1972
- e.showLabel || p.$slots.label ? (a(), n("div", jt, [
1973
- o("span", Mt, [
1974
- $(p.$slots, "label", {}, () => [
1975
- j(b(e.label), 1)
2022
+ return (v, b) => (a(), n("div", Pt, [
2023
+ e.showLabel || v.$slots.label ? (a(), n("div", Rt, [
2024
+ o("span", qt, [
2025
+ V(v.$slots, "label", {}, () => [
2026
+ j(h(e.label), 1)
1976
2027
  ], !0)
1977
2028
  ]),
1978
- e.showValue ? (a(), n("span", Lt, b(s.value), 1)) : c("", !0)
2029
+ e.showValue ? (a(), n("span", Ht, h(s.value), 1)) : c("", !0)
1979
2030
  ])) : c("", !0),
1980
2031
  o("div", {
1981
2032
  class: f(d.value)
1982
2033
  }, [
1983
2034
  o("div", {
1984
2035
  class: f(u.value),
1985
- style: E({ width: `${l.value}%` }),
2036
+ style: G({ width: `${l.value}%` }),
1986
2037
  role: "progressbar",
1987
2038
  "aria-valuenow": e.value,
1988
2039
  "aria-valuemin": e.min,
1989
2040
  "aria-valuemax": e.max
1990
2041
  }, [
1991
- e.showInnerValue && l.value > 10 ? (a(), n("span", Ot, b(s.value), 1)) : c("", !0)
1992
- ], 14, _t)
2042
+ e.showInnerValue && l.value > 10 ? (a(), n("span", Et, h(s.value), 1)) : c("", !0)
2043
+ ], 14, Ft)
1993
2044
  ], 2)
1994
2045
  ]));
1995
2046
  }
1996
- }, Ms = /* @__PURE__ */ Z(Tt, [["__scopeId", "data-v-e469818e"]]), Zt = ["value", "checked", "disabled"], Nt = {
2047
+ }, lo = /* @__PURE__ */ N(Gt, [["__scopeId", "data-v-e469818e"]]), Ut = ["value", "checked", "disabled"], Kt = {
1997
2048
  key: 0,
1998
2049
  class: "text-sm text-slate-700 select-none"
1999
- }, Ls = {
2050
+ }, ao = {
2000
2051
  __name: "DXRadio",
2001
2052
  props: {
2002
2053
  /** Текущее значение группы (v-model) */
@@ -2012,7 +2063,7 @@ const js = /* @__PURE__ */ Z(Bt, [["render", It]]), At = {
2012
2063
  },
2013
2064
  emits: ["update:modelValue"],
2014
2065
  setup(e) {
2015
- const t = e, l = g(() => {
2066
+ const t = e, l = p(() => {
2016
2067
  switch (t.size) {
2017
2068
  case "sm":
2018
2069
  return "h-3.5 w-3.5";
@@ -2033,31 +2084,31 @@ const js = /* @__PURE__ */ Z(Bt, [["render", It]]), At = {
2033
2084
  disabled: e.disabled,
2034
2085
  class: f(["rounded-full border-slate-300 text-slate-900 focus:ring-slate-900/10 focus:ring-2 transition", l.value]),
2035
2086
  onChange: r[0] || (r[0] = (i) => s.$emit("update:modelValue", e.value))
2036
- }, null, 42, Zt),
2037
- e.label ? (a(), n("span", Nt, b(e.label), 1)) : c("", !0)
2087
+ }, null, 42, Ut),
2088
+ e.label ? (a(), n("span", Kt, h(e.label), 1)) : c("", !0)
2038
2089
  ], 2));
2039
2090
  }
2040
- }, Pt = {
2091
+ }, Yt = {
2041
2092
  class: "w-full",
2042
2093
  "data-component": "DXSelect"
2043
- }, Ft = {
2094
+ }, Wt = {
2044
2095
  key: 0,
2045
2096
  class: "block text-sm text-slate-600 mb-1 font-medium"
2046
- }, Ht = { class: "relative" }, Rt = {
2097
+ }, Jt = { class: "relative" }, Qt = {
2047
2098
  key: 0,
2048
2099
  class: "absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none text-slate-400"
2049
- }, qt = ["value", "disabled"], Et = {
2100
+ }, el = ["value", "disabled"], tl = {
2050
2101
  key: 0,
2051
2102
  value: "",
2052
2103
  disabled: "",
2053
2104
  selected: ""
2054
- }, Gt = ["value"], Ut = { class: "absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none" }, Kt = {
2105
+ }, ll = ["value"], al = { class: "absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none" }, nl = {
2055
2106
  key: 1,
2056
2107
  class: "mt-1 text-xs text-rose-500"
2057
- }, Wt = {
2108
+ }, sl = {
2058
2109
  key: 2,
2059
2110
  class: "mt-1 text-xs text-slate-500"
2060
- }, _s = {
2111
+ }, no = {
2061
2112
  __name: "DXSelect",
2062
2113
  props: {
2063
2114
  /** Значение (v-model) */
@@ -2081,20 +2132,20 @@ const js = /* @__PURE__ */ Z(Bt, [["render", It]]), At = {
2081
2132
  },
2082
2133
  emits: ["update:modelValue"],
2083
2134
  setup(e) {
2084
- const t = e, l = g(() => [
2135
+ const t = e, l = p(() => [
2085
2136
  "w-full appearance-none rounded-xl border border-slate-200 bg-white transition-colors pr-10",
2086
- me(t.size, "input"),
2137
+ he(t.size, "input"),
2087
2138
  "text-slate-700",
2088
2139
  t.prefixIcon && "pl-10",
2089
2140
  !t.disabled && "hover:border-slate-300 focus:outline-none focus:ring-2 focus:ring-slate-900/10 focus:border-slate-300",
2090
2141
  t.disabled && "opacity-60 cursor-not-allowed bg-slate-50",
2091
2142
  t.error && "border-rose-300 focus:ring-rose-500/10"
2092
2143
  ]);
2093
- return (s, r) => (a(), n("div", Pt, [
2094
- e.label ? (a(), n("label", Ft, b(e.label), 1)) : c("", !0),
2095
- o("div", Ht, [
2096
- e.prefixIcon ? (a(), n("div", Rt, [
2097
- A(S, {
2144
+ return (s, r) => (a(), n("div", Yt, [
2145
+ e.label ? (a(), n("label", Wt, h(e.label), 1)) : c("", !0),
2146
+ o("div", Jt, [
2147
+ e.prefixIcon ? (a(), n("div", Qt, [
2148
+ A(D, {
2098
2149
  icon: e.prefixIcon,
2099
2150
  size: "sm",
2100
2151
  animation: "none"
@@ -2106,25 +2157,25 @@ const js = /* @__PURE__ */ Z(Bt, [["render", It]]), At = {
2106
2157
  class: f(l.value),
2107
2158
  onChange: r[0] || (r[0] = (i) => s.$emit("update:modelValue", i.target.value))
2108
2159
  }, [
2109
- e.placeholder ? (a(), n("option", Et, b(e.placeholder), 1)) : c("", !0),
2110
- (a(!0), n(M, null, _(e.options, (i) => (a(), n("option", {
2160
+ e.placeholder ? (a(), n("option", tl, h(e.placeholder), 1)) : c("", !0),
2161
+ (a(!0), n(M, null, L(e.options, (i) => (a(), n("option", {
2111
2162
  key: i.value,
2112
2163
  value: i.value
2113
- }, b(i.label), 9, Gt))), 128))
2114
- ], 42, qt),
2115
- o("div", Ut, [
2116
- A(S, {
2117
- icon: O(le),
2164
+ }, h(i.label), 9, ll))), 128))
2165
+ ], 42, el),
2166
+ o("div", al, [
2167
+ A(D, {
2168
+ icon: _(W),
2118
2169
  size: "sm",
2119
2170
  animation: "none",
2120
2171
  class: "text-slate-400"
2121
2172
  }, null, 8, ["icon"])
2122
2173
  ])
2123
2174
  ]),
2124
- e.error ? (a(), n("p", Kt, b(e.error), 1)) : e.helper ? (a(), n("p", Wt, b(e.helper), 1)) : c("", !0)
2175
+ e.error ? (a(), n("p", nl, h(e.error), 1)) : e.helper ? (a(), n("p", sl, h(e.helper), 1)) : c("", !0)
2125
2176
  ]));
2126
2177
  }
2127
- }, Os = {
2178
+ }, so = {
2128
2179
  __name: "DXSkeleton",
2129
2180
  props: {
2130
2181
  /** Ширина */
@@ -2137,30 +2188,30 @@ const js = /* @__PURE__ */ Z(Bt, [["render", It]]), At = {
2137
2188
  setup(e) {
2138
2189
  return (t, l) => (a(), n("div", {
2139
2190
  class: f(["animate-pulse bg-slate-200", e.rounded]),
2140
- style: E({ width: e.width, height: e.height }),
2191
+ style: G({ width: e.width, height: e.height }),
2141
2192
  "data-component": "DXSkeleton"
2142
2193
  }, null, 6));
2143
2194
  }
2144
- }, Yt = {
2195
+ }, ol = {
2145
2196
  class: "w-full",
2146
2197
  "data-component": "DXSlider"
2147
- }, Jt = { class: "flex items-center justify-between mb-2" }, Qt = {
2198
+ }, rl = { class: "flex items-center justify-between mb-2" }, il = {
2148
2199
  key: 0,
2149
2200
  class: "text-sm font-medium text-slate-700"
2150
- }, el = {
2201
+ }, dl = {
2151
2202
  key: 1,
2152
2203
  class: "text-sm font-semibold text-slate-900"
2153
- }, tl = { class: "relative" }, ll = {
2204
+ }, ul = { class: "relative" }, cl = {
2154
2205
  key: 0,
2155
2206
  class: "absolute top-1/2 left-0 right-0 flex justify-between pointer-events-none",
2156
2207
  style: { transform: "translateY(-50%)" }
2157
- }, al = ["value", "min", "max", "step", "disabled"], nl = {
2208
+ }, ml = ["value", "min", "max", "step", "disabled"], fl = {
2158
2209
  key: 0,
2159
2210
  class: "flex justify-between mt-1 px-1"
2160
- }, sl = {
2211
+ }, pl = {
2161
2212
  key: 1,
2162
2213
  class: "mt-1 text-xs text-slate-500"
2163
- }, ol = {
2214
+ }, vl = {
2164
2215
  __name: "DXSlider",
2165
2216
  props: {
2166
2217
  /** Значение (v-model) */
@@ -2194,29 +2245,29 @@ const js = /* @__PURE__ */ Z(Bt, [["render", It]]), At = {
2194
2245
  },
2195
2246
  emits: ["update:modelValue"],
2196
2247
  setup(e, { emit: t }) {
2197
- const l = e, s = t, r = g(() => `${l.modelValue}${l.unit}`), i = g(() => {
2248
+ const l = e, s = t, r = p(() => `${l.modelValue}${l.unit}`), i = p(() => {
2198
2249
  if (!l.ticks) return [];
2199
- const m = l.tickCount, h = (l.max - l.min) / (m - 1);
2200
- return Array.from({ length: m }, (y, x) => Math.round(l.min + h * x));
2250
+ const m = l.tickCount, g = (l.max - l.min) / (m - 1);
2251
+ return Array.from({ length: m }, (w, y) => Math.round(l.min + g * y));
2201
2252
  }), d = (m) => {
2202
2253
  s("update:modelValue", Number(m.target.value));
2203
- }, u = g(() => {
2254
+ }, u = p(() => {
2204
2255
  if (!l.ticks || !i.value.length) return -1;
2205
- let m = 0, h = Math.abs(l.modelValue - i.value[0]);
2206
- return i.value.forEach((y, x) => {
2207
- const V = Math.abs(l.modelValue - y);
2208
- V < h && (h = V, m = x);
2256
+ let m = 0, g = Math.abs(l.modelValue - i.value[0]);
2257
+ return i.value.forEach((w, y) => {
2258
+ const S = Math.abs(l.modelValue - w);
2259
+ S < g && (g = S, m = y);
2209
2260
  }), m;
2210
- }), p = (m) => u.value === m, v = (m) => p(m) ? l.tickIconAnimation : "none";
2211
- return (m, h) => (a(), n("div", Yt, [
2212
- o("div", Jt, [
2213
- e.label ? (a(), n("label", Qt, b(e.label), 1)) : c("", !0),
2214
- e.showValue ? (a(), n("span", el, b(r.value), 1)) : c("", !0)
2261
+ }), v = (m) => u.value === m, b = (m) => v(m) ? l.tickIconAnimation : "none";
2262
+ return (m, g) => (a(), n("div", ol, [
2263
+ o("div", rl, [
2264
+ e.label ? (a(), n("label", il, h(e.label), 1)) : c("", !0),
2265
+ e.showValue ? (a(), n("span", dl, h(r.value), 1)) : c("", !0)
2215
2266
  ]),
2216
- o("div", tl, [
2217
- e.ticks ? (a(), n("div", ll, [
2218
- (a(!0), n(M, null, _(i.value, (y, x) => (a(), n("div", {
2219
- key: `tick-${x}`,
2267
+ o("div", ul, [
2268
+ e.ticks ? (a(), n("div", cl, [
2269
+ (a(!0), n(M, null, L(i.value, (w, y) => (a(), n("div", {
2270
+ key: `tick-${y}`,
2220
2271
  class: "w-0.5 h-3 bg-slate-400 rounded-full"
2221
2272
  }))), 128))
2222
2273
  ])) : c("", !0),
@@ -2229,33 +2280,33 @@ const js = /* @__PURE__ */ Z(Bt, [["render", It]]), At = {
2229
2280
  disabled: e.disabled,
2230
2281
  class: "slider w-full appearance-none cursor-pointer disabled:opacity-60 disabled:cursor-not-allowed relative z-10",
2231
2282
  onInput: d
2232
- }, null, 40, al)
2283
+ }, null, 40, ml)
2233
2284
  ]),
2234
- e.ticks && (e.showTickLabels || e.tickIcons) ? (a(), n("div", nl, [
2235
- (a(!0), n(M, null, _(i.value, (y, x) => (a(), n("span", {
2236
- key: y,
2237
- class: f(["flex flex-col items-center gap-0.5 transition-transform duration-200", { "scale-110": p(x) }])
2285
+ e.ticks && (e.showTickLabels || e.tickIcons) ? (a(), n("div", fl, [
2286
+ (a(!0), n(M, null, L(i.value, (w, y) => (a(), n("span", {
2287
+ key: w,
2288
+ class: f(["flex flex-col items-center gap-0.5 transition-transform duration-200", { "scale-110": v(y) }])
2238
2289
  }, [
2239
- e.tickIcons && e.tickIcons[x] ? (a(), C(S, {
2290
+ e.tickIcons && e.tickIcons[y] ? (a(), $(D, {
2240
2291
  key: 0,
2241
- icon: e.tickIcons[x],
2292
+ icon: e.tickIcons[y],
2242
2293
  size: "sm",
2243
- animation: v(x),
2244
- class: f(p(x) ? "text-slate-900" : "text-slate-400")
2294
+ animation: b(y),
2295
+ class: f(v(y) ? "text-slate-900" : "text-slate-400")
2245
2296
  }, null, 8, ["icon", "animation", "class"])) : c("", !0),
2246
2297
  e.showTickLabels ? (a(), n("span", {
2247
2298
  key: 1,
2248
- class: f(["text-xs transition-colors duration-200", p(x) ? "text-slate-900 font-semibold" : "text-slate-500"])
2249
- }, b(y) + b(e.unit), 3)) : c("", !0)
2299
+ class: f(["text-xs transition-colors duration-200", v(y) ? "text-slate-900 font-semibold" : "text-slate-500"])
2300
+ }, h(w) + h(e.unit), 3)) : c("", !0)
2250
2301
  ], 2))), 128))
2251
2302
  ])) : c("", !0),
2252
- e.helper ? (a(), n("p", sl, b(e.helper), 1)) : c("", !0)
2303
+ e.helper ? (a(), n("p", pl, h(e.helper), 1)) : c("", !0)
2253
2304
  ]));
2254
2305
  }
2255
- }, Ts = /* @__PURE__ */ Z(ol, [["__scopeId", "data-v-d55b8f6a"]]), rl = {
2306
+ }, oo = /* @__PURE__ */ N(vl, [["__scopeId", "data-v-d55b8f6a"]]), hl = {
2256
2307
  class: "flex flex-wrap gap-2",
2257
2308
  "data-component": "DXTags"
2258
- }, il = ["onClick", "aria-label"], Zs = {
2309
+ }, bl = ["onClick", "aria-label"], ro = {
2259
2310
  __name: "DXTags",
2260
2311
  props: {
2261
2312
  /** Массив тегов: строки или объекты { label, icon?, closable?, color?, iconAnimation? } */
@@ -2269,81 +2320,81 @@ const js = /* @__PURE__ */ Z(Bt, [["render", It]]), At = {
2269
2320
  },
2270
2321
  emits: ["remove"],
2271
2322
  setup(e, { emit: t }) {
2272
- const l = e, s = t, r = g(() => l.tags.map((v) => typeof v == "string" ? {
2273
- label: v,
2323
+ const l = e, s = t, r = p(() => l.tags.map((b) => typeof b == "string" ? {
2324
+ label: b,
2274
2325
  icon: null,
2275
2326
  closable: l.closable,
2276
2327
  color: l.color,
2277
2328
  iconAnimation: "none"
2278
2329
  } : {
2279
- label: v.label || v,
2280
- icon: v.icon || null,
2281
- closable: v.closable !== void 0 ? v.closable : l.closable,
2282
- color: v.color || l.color,
2283
- iconAnimation: v.iconAnimation || "none"
2284
- })), i = (v, m) => `${v.label}-${m}`, d = {
2330
+ label: b.label || b,
2331
+ icon: b.icon || null,
2332
+ closable: b.closable !== void 0 ? b.closable : l.closable,
2333
+ color: b.color || l.color,
2334
+ iconAnimation: b.iconAnimation || "none"
2335
+ })), i = (b, m) => `${b.label}-${m}`, d = {
2285
2336
  default: "bg-slate-100 text-slate-800 border-slate-200",
2286
2337
  primary: "bg-blue-100 text-blue-800 border-blue-200",
2287
2338
  success: "bg-green-100 text-green-800 border-green-200",
2288
2339
  warning: "bg-yellow-100 text-yellow-800 border-yellow-200",
2289
2340
  danger: "bg-red-100 text-red-800 border-red-200",
2290
2341
  info: "bg-cyan-100 text-cyan-800 border-cyan-200"
2291
- }, u = (v) => {
2292
- const m = l.variant === "large" ? "px-3 py-1.5 text-sm" : "px-2 py-1 text-xs", h = d[v.color] || d.default;
2293
- return `${m} ${h} rounded-full border`;
2294
- }, p = (v, m) => {
2295
- s("remove", { tag: v, index: m });
2342
+ }, u = (b) => {
2343
+ const m = l.variant === "large" ? "px-3 py-1.5 text-sm" : "px-2 py-1 text-xs", g = d[b.color] || d.default;
2344
+ return `${m} ${g} rounded-full border`;
2345
+ }, v = (b, m) => {
2346
+ s("remove", { tag: b, index: m });
2296
2347
  };
2297
- return (v, m) => (a(), n("div", rl, [
2298
- (a(!0), n(M, null, _(r.value, (h, y) => (a(), n("span", {
2299
- key: i(h, y),
2300
- class: f([u(h), "inline-flex items-center gap-1.5 transition-all duration-200"])
2348
+ return (b, m) => (a(), n("div", hl, [
2349
+ (a(!0), n(M, null, L(r.value, (g, w) => (a(), n("span", {
2350
+ key: i(g, w),
2351
+ class: f([u(g), "inline-flex items-center gap-1.5 transition-all duration-200"])
2301
2352
  }, [
2302
- h.icon ? (a(), C(S, {
2353
+ g.icon ? (a(), $(D, {
2303
2354
  key: 0,
2304
- icon: h.icon,
2355
+ icon: g.icon,
2305
2356
  size: e.variant === "large" ? "sm" : "xs",
2306
- animation: h.iconAnimation || "none"
2357
+ animation: g.iconAnimation || "none"
2307
2358
  }, null, 8, ["icon", "size", "animation"])) : c("", !0),
2308
- o("span", null, b(h.label), 1),
2309
- h.closable ? (a(), n("button", {
2359
+ o("span", null, h(g.label), 1),
2360
+ g.closable ? (a(), n("button", {
2310
2361
  key: 1,
2311
2362
  type: "button",
2312
- onClick: (x) => p(h, y),
2363
+ onClick: (y) => v(g, w),
2313
2364
  class: "ml-0.5 -mr-1 hover:bg-slate-200/50 rounded-full p-0.5 transition-colors",
2314
- "aria-label": `Remove ${h.label}`
2365
+ "aria-label": `Remove ${g.label}`
2315
2366
  }, [
2316
- A(S, {
2317
- icon: O(je),
2367
+ A(D, {
2368
+ icon: _(Oe),
2318
2369
  size: "xs",
2319
2370
  animation: "scale"
2320
2371
  }, null, 8, ["icon"])
2321
- ], 8, il)) : c("", !0)
2372
+ ], 8, bl)) : c("", !0)
2322
2373
  ], 2))), 128))
2323
2374
  ]));
2324
2375
  }
2325
- }, dl = {
2376
+ }, gl = {
2326
2377
  class: "w-full",
2327
2378
  "data-component": "DXTextarea"
2328
- }, ul = {
2379
+ }, xl = {
2329
2380
  key: 0,
2330
2381
  class: "block text-sm text-slate-600 mb-1 font-medium"
2331
- }, cl = { class: "relative" }, ml = {
2382
+ }, yl = { class: "relative" }, wl = {
2332
2383
  key: 0,
2333
2384
  class: "absolute left-3 top-3 text-slate-400 z-10"
2334
- }, fl = ["rows", "placeholder", "value", "disabled", "maxlength"], pl = {
2385
+ }, kl = ["rows", "placeholder", "value", "disabled", "maxlength"], $l = {
2335
2386
  key: 1,
2336
2387
  class: "absolute right-3 top-3 text-slate-400 z-10"
2337
- }, gl = {
2388
+ }, Cl = {
2338
2389
  key: 2,
2339
2390
  class: "absolute right-3 bottom-3 text-xs text-slate-400"
2340
- }, vl = {
2391
+ }, Sl = {
2341
2392
  key: 1,
2342
2393
  class: "mt-1 text-xs text-rose-500"
2343
- }, bl = {
2394
+ }, Vl = {
2344
2395
  key: 2,
2345
2396
  class: "mt-1 text-xs text-slate-500"
2346
- }, Ns = {
2397
+ }, io = {
2347
2398
  __name: "DXTextarea",
2348
2399
  props: {
2349
2400
  /** Значение (v-model) */
@@ -2374,25 +2425,25 @@ const js = /* @__PURE__ */ Z(Bt, [["render", It]]), At = {
2374
2425
  emits: ["update:modelValue"],
2375
2426
  setup(e, { emit: t }) {
2376
2427
  var u;
2377
- const l = e, s = t, r = D(((u = l.modelValue) == null ? void 0 : u.length) || 0), i = (p) => {
2378
- const v = p.target.value;
2379
- r.value = v.length, s("update:modelValue", v), l.autoResize && (p.target.style.height = "auto", p.target.style.height = p.target.scrollHeight + "px");
2428
+ const l = e, s = t, r = B(((u = l.modelValue) == null ? void 0 : u.length) || 0), i = (v) => {
2429
+ const b = v.target.value;
2430
+ r.value = b.length, s("update:modelValue", b), l.autoResize && (v.target.style.height = "auto", v.target.style.height = v.target.scrollHeight + "px");
2380
2431
  };
2381
- H(() => l.modelValue, (p) => {
2382
- r.value = (p == null ? void 0 : p.length) || 0;
2432
+ F(() => l.modelValue, (v) => {
2433
+ r.value = (v == null ? void 0 : v.length) || 0;
2383
2434
  });
2384
- const d = g(() => [
2435
+ const d = p(() => [
2385
2436
  "w-full rounded-xl border border-slate-200 px-4 py-3 text-sm text-slate-700 placeholder:text-slate-400 focus:outline-none focus:ring-2 focus:ring-slate-900/10 focus:border-slate-300 transition-colors disabled:opacity-60 disabled:cursor-not-allowed disabled:bg-slate-50",
2386
2437
  l.prefixIcon && "pl-10",
2387
2438
  l.suffixIcon && "pr-10",
2388
2439
  l.maxLength && l.showCount && "pb-8",
2389
2440
  l.error && "border-rose-300 focus:ring-rose-500/10"
2390
2441
  ]);
2391
- return (p, v) => (a(), n("div", dl, [
2392
- e.label ? (a(), n("label", ul, b(e.label), 1)) : c("", !0),
2393
- o("div", cl, [
2394
- e.prefixIcon ? (a(), n("div", ml, [
2395
- A(S, {
2442
+ return (v, b) => (a(), n("div", gl, [
2443
+ e.label ? (a(), n("label", xl, h(e.label), 1)) : c("", !0),
2444
+ o("div", yl, [
2445
+ e.prefixIcon ? (a(), n("div", wl, [
2446
+ A(D, {
2396
2447
  icon: e.prefixIcon,
2397
2448
  size: "sm",
2398
2449
  animation: "none"
@@ -2406,60 +2457,60 @@ const js = /* @__PURE__ */ Z(Bt, [["render", It]]), At = {
2406
2457
  maxlength: e.maxLength,
2407
2458
  class: f(d.value),
2408
2459
  onInput: i
2409
- }, null, 42, fl),
2410
- e.suffixIcon ? (a(), n("div", pl, [
2411
- A(S, {
2460
+ }, null, 42, kl),
2461
+ e.suffixIcon ? (a(), n("div", $l, [
2462
+ A(D, {
2412
2463
  icon: e.suffixIcon,
2413
2464
  size: "sm",
2414
2465
  animation: "none"
2415
2466
  }, null, 8, ["icon"])
2416
2467
  ])) : c("", !0),
2417
- e.maxLength && e.showCount ? (a(), n("div", gl, b(r.value) + " / " + b(e.maxLength), 1)) : c("", !0)
2468
+ e.maxLength && e.showCount ? (a(), n("div", Cl, h(r.value) + " / " + h(e.maxLength), 1)) : c("", !0)
2418
2469
  ]),
2419
- e.error ? (a(), n("p", vl, b(e.error), 1)) : e.helper ? (a(), n("p", bl, b(e.helper), 1)) : c("", !0)
2470
+ e.error ? (a(), n("p", Sl, h(e.error), 1)) : e.helper ? (a(), n("p", Vl, h(e.helper), 1)) : c("", !0)
2420
2471
  ]));
2421
2472
  }
2422
- }, F = {
2473
+ }, H = {
2423
2474
  info: {
2424
2475
  bg: "bg-blue-50",
2425
2476
  text: "text-blue-800",
2426
2477
  border: "border-blue-200",
2427
- icon: te,
2478
+ icon: ne,
2428
2479
  iconColor: "text-blue-500"
2429
2480
  },
2430
2481
  success: {
2431
2482
  bg: "bg-emerald-50",
2432
2483
  text: "text-emerald-800",
2433
2484
  border: "border-emerald-200",
2434
- icon: Q,
2485
+ icon: le,
2435
2486
  iconColor: "text-emerald-500"
2436
2487
  },
2437
2488
  warning: {
2438
2489
  bg: "bg-amber-50",
2439
2490
  text: "text-amber-800",
2440
2491
  border: "border-amber-200",
2441
- icon: ee,
2492
+ icon: ae,
2442
2493
  iconColor: "text-amber-500"
2443
2494
  },
2444
2495
  danger: {
2445
2496
  bg: "bg-rose-50",
2446
2497
  text: "text-rose-800",
2447
2498
  border: "border-rose-200",
2448
- icon: ie,
2499
+ icon: me,
2449
2500
  iconColor: "text-rose-500"
2450
2501
  }
2451
2502
  };
2452
- function Ps(e) {
2453
- const t = F[e] || F.info;
2503
+ function uo(e) {
2504
+ const t = H[e] || H.info;
2454
2505
  return `${t.bg} ${t.text} ${t.border}`;
2455
2506
  }
2456
- function Fs(e) {
2457
- return (F[e] || F.info).icon;
2507
+ function co(e) {
2508
+ return (H[e] || H.info).icon;
2458
2509
  }
2459
- function hl(e) {
2460
- return F[e] || F.info;
2510
+ function Dl(e) {
2511
+ return H[e] || H.info;
2461
2512
  }
2462
- const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2513
+ const zl = ["data-variant"], Bl = { class: "flex-1" }, mo = {
2463
2514
  __name: "DXToast",
2464
2515
  props: {
2465
2516
  /** Вариант: info | success | warning | danger */
@@ -2468,28 +2519,28 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2468
2519
  showIcon: { type: Boolean, default: !0 }
2469
2520
  },
2470
2521
  setup(e) {
2471
- const t = e, l = g(() => hl(t.variant)), s = g(() => `${l.value.bg} ${l.value.border} ${l.value.text}`), r = g(() => t.showIcon ? l.value.icon : null), i = g(() => l.value.iconColor);
2522
+ const t = e, l = p(() => Dl(t.variant)), s = p(() => `${l.value.bg} ${l.value.border} ${l.value.text}`), r = p(() => t.showIcon ? l.value.icon : null), i = p(() => l.value.iconColor);
2472
2523
  return (d, u) => (a(), n("div", {
2473
2524
  class: f(["flex items-start gap-3 rounded-2xl border px-4 py-3 text-sm", s.value]),
2474
2525
  "data-component": "DXToast",
2475
2526
  "data-variant": e.variant
2476
2527
  }, [
2477
- r.value ? (a(), C(S, {
2528
+ r.value ? (a(), $(D, {
2478
2529
  key: 0,
2479
2530
  icon: r.value,
2480
2531
  size: "md",
2481
2532
  animation: "none",
2482
2533
  class: f([i.value, "shrink-0 mt-0.5"])
2483
2534
  }, null, 8, ["icon", "class"])) : c("", !0),
2484
- o("div", yl, [
2485
- $(d.$slots, "default")
2535
+ o("div", Bl, [
2536
+ V(d.$slots, "default")
2486
2537
  ])
2487
- ], 10, xl));
2538
+ ], 10, zl));
2488
2539
  }
2489
- }, wl = ["aria-checked", "disabled"], kl = {
2540
+ }, Xl = ["aria-checked", "disabled"], Il = {
2490
2541
  key: 0,
2491
2542
  class: "text-sm text-slate-700 select-none"
2492
- }, Rs = {
2543
+ }, fo = {
2493
2544
  __name: "DXToggle",
2494
2545
  props: {
2495
2546
  /** Значение (v-model) */
@@ -2516,11 +2567,11 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2516
2567
  o("span", {
2517
2568
  class: f(["inline-block h-4 w-4 transform rounded-full bg-white transition-transform", e.modelValue ? "translate-x-6" : "translate-x-1"])
2518
2569
  }, null, 2)
2519
- ], 10, wl),
2520
- e.label ? (a(), n("span", kl, b(e.label), 1)) : c("", !0)
2570
+ ], 10, Xl),
2571
+ e.label ? (a(), n("span", Il, h(e.label), 1)) : c("", !0)
2521
2572
  ], 2));
2522
2573
  }
2523
- }, $l = ["disabled", "aria-pressed", "aria-label"], Cl = { key: 1 }, Sl = {
2574
+ }, Al = ["disabled", "aria-pressed", "aria-label"], jl = { key: 1 }, Ml = {
2524
2575
  __name: "DXToggleButton",
2525
2576
  props: {
2526
2577
  /** Текущее состояние (v-model) */
@@ -2551,38 +2602,38 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2551
2602
  emits: ["update:modelValue", "change"],
2552
2603
  setup(e, { emit: t }) {
2553
2604
  const l = e, s = t, r = () => {
2554
- const h = !l.modelValue;
2555
- s("update:modelValue", h), s("change", h);
2556
- }, i = g(() => l.modelValue ? l.activeIcon : l.inactiveIcon), d = g(() => l.modelValue ? l.activeLabel : l.inactiveLabel), u = g(() => l.size === "sm" ? "xs" : l.size === "lg" ? "md" : "sm"), p = g(() => d.value ? l.size === "sm" ? "px-3 py-2 text-xs" : l.size === "lg" ? "px-5 py-3 text-base" : "px-4 py-2.5 text-sm" : l.size === "sm" ? "h-9 w-9 text-xs" : l.size === "lg" ? "h-12 w-12 text-base" : "h-10 w-10 text-sm"), v = {
2605
+ const g = !l.modelValue;
2606
+ s("update:modelValue", g), s("change", g);
2607
+ }, i = p(() => l.modelValue ? l.activeIcon : l.inactiveIcon), d = p(() => l.modelValue ? l.activeLabel : l.inactiveLabel), u = p(() => l.size === "sm" ? "xs" : l.size === "lg" ? "md" : "sm"), v = p(() => d.value ? l.size === "sm" ? "px-3 py-2 text-xs" : l.size === "lg" ? "px-5 py-3 text-base" : "px-4 py-2.5 text-sm" : l.size === "sm" ? "h-9 w-9 text-xs" : l.size === "lg" ? "h-12 w-12 text-base" : "h-10 w-10 text-sm"), b = {
2557
2608
  primary: "bg-slate-800 text-white hover:bg-slate-700 focus:ring-slate-500",
2558
2609
  ghost: "border border-slate-200 text-slate-700 hover:border-slate-300 hover:bg-slate-50 bg-white focus:ring-slate-400",
2559
2610
  danger: "bg-rose-600 text-white hover:bg-rose-500 focus:ring-rose-500",
2560
2611
  success: "bg-green-600 text-white hover:bg-green-500 focus:ring-green-500",
2561
2612
  warning: "bg-amber-500 text-white hover:bg-amber-400 focus:ring-amber-500",
2562
2613
  outline: "border border-slate-200 text-slate-700 hover:border-slate-300 bg-transparent focus:ring-slate-400"
2563
- }, m = g(() => {
2564
- const h = l.modelValue ? l.activeVariant : l.inactiveVariant;
2565
- return v[h] || v.ghost;
2614
+ }, m = p(() => {
2615
+ const g = l.modelValue ? l.activeVariant : l.inactiveVariant;
2616
+ return b[g] || b.ghost;
2566
2617
  });
2567
- return (h, y) => (a(), n("button", {
2618
+ return (g, w) => (a(), n("button", {
2568
2619
  type: "button",
2569
- class: f(["toggle-btn inline-flex items-center justify-center gap-2 rounded-xl font-semibold transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-60 disabled:cursor-not-allowed", [p.value, m.value, { "w-full": e.block }]]),
2620
+ class: f(["toggle-btn inline-flex items-center justify-center gap-2 rounded-xl font-semibold transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-60 disabled:cursor-not-allowed", [v.value, m.value, { "w-full": e.block }]]),
2570
2621
  disabled: e.disabled,
2571
2622
  onClick: r,
2572
2623
  "aria-pressed": e.modelValue,
2573
2624
  "aria-label": e.ariaLabel,
2574
2625
  "data-component": "DXToggleButton"
2575
2626
  }, [
2576
- i.value ? (a(), C(S, {
2627
+ i.value ? (a(), $(D, {
2577
2628
  key: 0,
2578
2629
  icon: i.value,
2579
2630
  size: u.value,
2580
2631
  animation: e.iconAnimation
2581
2632
  }, null, 8, ["icon", "size", "animation"])) : c("", !0),
2582
- d.value ? (a(), n("span", Cl, b(d.value), 1)) : c("", !0)
2583
- ], 10, $l));
2633
+ d.value ? (a(), n("span", jl, h(d.value), 1)) : c("", !0)
2634
+ ], 10, Al));
2584
2635
  }
2585
- }, qs = /* @__PURE__ */ Z(Sl, [["__scopeId", "data-v-249aa090"]]), Vl = {
2636
+ }, po = /* @__PURE__ */ N(Ml, [["__scopeId", "data-v-249aa090"]]), Ll = {
2586
2637
  __name: "DXTooltip",
2587
2638
  props: {
2588
2639
  /** Текст подсказки */
@@ -2595,7 +2646,7 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2595
2646
  maxWidth: { type: String, default: "200px" }
2596
2647
  },
2597
2648
  setup(e) {
2598
- const t = e, l = D(!1), s = {
2649
+ const t = e, l = B(!1), s = {
2599
2650
  top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
2600
2651
  bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
2601
2652
  left: "right-full top-1/2 -translate-y-1/2 mr-2",
@@ -2613,35 +2664,35 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2613
2664
  }, d = {
2614
2665
  dark: "bg-slate-900 text-white",
2615
2666
  light: "bg-white text-slate-900 border border-slate-200 shadow-lg"
2616
- }, u = g(() => [
2667
+ }, u = p(() => [
2617
2668
  "absolute z-50 px-3 py-2 text-sm rounded-lg whitespace-normal",
2618
2669
  s[t.position] || s.top,
2619
2670
  d[t.color] || d.dark
2620
- ]), p = g(() => [
2671
+ ]), v = p(() => [
2621
2672
  "absolute w-0 h-0 border-4",
2622
2673
  t.color === "light" ? i[t.position] : r[t.position]
2623
2674
  ]);
2624
- return (v, m) => (a(), n("div", {
2675
+ return (b, m) => (a(), n("div", {
2625
2676
  class: "relative inline-block",
2626
- onMouseenter: m[0] || (m[0] = (h) => l.value = !0),
2627
- onMouseleave: m[1] || (m[1] = (h) => l.value = !1),
2628
- onFocus: m[2] || (m[2] = (h) => l.value = !0),
2629
- onBlur: m[3] || (m[3] = (h) => l.value = !1),
2677
+ onMouseenter: m[0] || (m[0] = (g) => l.value = !0),
2678
+ onMouseleave: m[1] || (m[1] = (g) => l.value = !1),
2679
+ onFocus: m[2] || (m[2] = (g) => l.value = !0),
2680
+ onBlur: m[3] || (m[3] = (g) => l.value = !1),
2630
2681
  "data-component": "DXTooltip"
2631
2682
  }, [
2632
- $(v.$slots, "default", {}, void 0, !0),
2683
+ V(b.$slots, "default", {}, void 0, !0),
2633
2684
  A(Y, { name: "tooltip" }, {
2634
- default: P(() => [
2635
- l.value && (e.content || v.$slots.content) ? (a(), n("div", {
2685
+ default: T(() => [
2686
+ l.value && (e.content || b.$slots.content) ? (a(), n("div", {
2636
2687
  key: 0,
2637
2688
  class: f(u.value),
2638
2689
  role: "tooltip"
2639
2690
  }, [
2640
- $(v.$slots, "content", {}, () => [
2641
- j(b(e.content), 1)
2691
+ V(b.$slots, "content", {}, () => [
2692
+ j(h(e.content), 1)
2642
2693
  ], !0),
2643
2694
  o("div", {
2644
- class: f(p.value)
2695
+ class: f(v.value)
2645
2696
  }, null, 2)
2646
2697
  ], 2)) : c("", !0)
2647
2698
  ]),
@@ -2649,7 +2700,7 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2649
2700
  })
2650
2701
  ], 32));
2651
2702
  }
2652
- }, Es = /* @__PURE__ */ Z(Vl, [["__scopeId", "data-v-bd65e96f"]]), ne = {
2703
+ }, vo = /* @__PURE__ */ N(Ll, [["__scopeId", "data-v-bd65e96f"]]), de = {
2653
2704
  __name: "DXValidationIcon",
2654
2705
  props: {
2655
2706
  /** Состояние: success | error | warning | info */
@@ -2660,23 +2711,23 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2660
2711
  setup(e) {
2661
2712
  const t = e, l = {
2662
2713
  success: {
2663
- icon: Q,
2714
+ icon: le,
2664
2715
  color: "text-emerald-500"
2665
2716
  },
2666
2717
  error: {
2667
- icon: Ce,
2718
+ icon: ze,
2668
2719
  color: "text-rose-500"
2669
2720
  },
2670
2721
  warning: {
2671
- icon: ee,
2722
+ icon: ae,
2672
2723
  color: "text-amber-500"
2673
2724
  },
2674
2725
  info: {
2675
- icon: te,
2726
+ icon: ne,
2676
2727
  color: "text-blue-500"
2677
2728
  }
2678
- }, s = g(() => l[t.state] || l.info), r = g(() => s.value.icon), i = g(() => s.value.color);
2679
- return (d, u) => r.value ? (a(), C(S, {
2729
+ }, s = p(() => l[t.state] || l.info), r = p(() => s.value.icon), i = p(() => s.value.color);
2730
+ return (d, u) => r.value ? (a(), $(D, {
2680
2731
  key: 0,
2681
2732
  icon: r.value,
2682
2733
  size: e.size,
@@ -2686,7 +2737,7 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2686
2737
  "data-state": e.state
2687
2738
  }, null, 8, ["icon", "size", "class", "data-state"])) : c("", !0);
2688
2739
  }
2689
- }, Dl = ["disabled"], zl = { key: 0 }, Bl = ["disabled"], Xl = { key: 0 }, Il = ["disabled"], Al = { key: 0 }, Gs = {
2740
+ }, _l = ["disabled"], Ol = { key: 0 }, Zl = ["disabled"], Tl = { key: 0 }, Nl = ["disabled"], Pl = { key: 0 }, ho = {
2690
2741
  __name: "DXActionButtons",
2691
2742
  props: {
2692
2743
  /** Показывать кнопку просмотра */
@@ -2702,11 +2753,11 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2702
2753
  /** Текст кнопки удаления */
2703
2754
  deleteLabel: { type: String, default: "Удалить" },
2704
2755
  /** Иконка для кнопки просмотра */
2705
- viewIcon: { type: Object, default: () => ae },
2756
+ viewIcon: { type: Object, default: () => se },
2706
2757
  /** Иконка для кнопки редактирования */
2707
- editIcon: { type: Object, default: () => at },
2758
+ editIcon: { type: Object, default: () => ut },
2708
2759
  /** Иконка для кнопки удаления */
2709
- deleteIcon: { type: Object, default: () => ct },
2760
+ deleteIcon: { type: Object, default: () => gt },
2710
2761
  /** Размер кнопок: xs | sm | md */
2711
2762
  size: { type: String, default: "sm" },
2712
2763
  /** Только иконки без текста */
@@ -2718,7 +2769,7 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2718
2769
  },
2719
2770
  emits: ["view", "edit", "delete"],
2720
2771
  setup(e) {
2721
- const t = e, l = g(() => t.size === "xs" ? "xs" : t.size === "md" ? "sm" : "xs"), s = g(() => {
2772
+ const t = e, l = p(() => t.size === "xs" ? "xs" : t.size === "md" ? "sm" : "xs"), s = p(() => {
2722
2773
  const r = "font-semibold rounded-xl";
2723
2774
  return t.iconOnly ? t.size === "xs" ? `${r} p-1.5` : t.size === "md" ? `${r} p-2.5` : `${r} p-2` : t.size === "xs" ? `${r} px-2 py-1 text-xs` : t.size === "md" ? `${r} px-4 py-2.5 text-sm` : `${r} px-3 py-2 text-xs`;
2724
2775
  });
@@ -2733,13 +2784,13 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2733
2784
  disabled: e.disabled,
2734
2785
  onClick: i[0] || (i[0] = (d) => r.$emit("view"))
2735
2786
  }, [
2736
- A(S, {
2787
+ A(D, {
2737
2788
  icon: e.viewIcon,
2738
2789
  size: l.value,
2739
2790
  animation: "scale"
2740
2791
  }, null, 8, ["icon", "size"]),
2741
- e.iconOnly ? c("", !0) : (a(), n("span", zl, b(e.viewLabel), 1))
2742
- ], 10, Dl)) : c("", !0),
2792
+ e.iconOnly ? c("", !0) : (a(), n("span", Ol, h(e.viewLabel), 1))
2793
+ ], 10, _l)) : c("", !0),
2743
2794
  e.showEdit ? (a(), n("button", {
2744
2795
  key: 1,
2745
2796
  type: "button",
@@ -2747,13 +2798,13 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2747
2798
  disabled: e.disabled,
2748
2799
  onClick: i[1] || (i[1] = (d) => r.$emit("edit"))
2749
2800
  }, [
2750
- A(S, {
2801
+ A(D, {
2751
2802
  icon: e.editIcon,
2752
2803
  size: l.value,
2753
2804
  animation: "wiggle"
2754
2805
  }, null, 8, ["icon", "size"]),
2755
- e.iconOnly ? c("", !0) : (a(), n("span", Xl, b(e.editLabel), 1))
2756
- ], 10, Bl)) : c("", !0),
2806
+ e.iconOnly ? c("", !0) : (a(), n("span", Tl, h(e.editLabel), 1))
2807
+ ], 10, Zl)) : c("", !0),
2757
2808
  e.showDelete ? (a(), n("button", {
2758
2809
  key: 2,
2759
2810
  type: "button",
@@ -2761,20 +2812,20 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2761
2812
  disabled: e.disabled,
2762
2813
  onClick: i[2] || (i[2] = (d) => r.$emit("delete"))
2763
2814
  }, [
2764
- A(S, {
2815
+ A(D, {
2765
2816
  icon: e.deleteIcon,
2766
2817
  size: l.value,
2767
2818
  animation: "scale"
2768
2819
  }, null, 8, ["icon", "size"]),
2769
- e.iconOnly ? c("", !0) : (a(), n("span", Al, b(e.deleteLabel), 1))
2770
- ], 10, Il)) : c("", !0),
2771
- $(r.$slots, "default")
2820
+ e.iconOnly ? c("", !0) : (a(), n("span", Pl, h(e.deleteLabel), 1))
2821
+ ], 10, Nl)) : c("", !0),
2822
+ V(r.$slots, "default")
2772
2823
  ], 2));
2773
2824
  }
2774
- }, jl = ["data-variant"], Ml = { class: "flex items-start gap-3" }, Ll = { class: "flex-1 min-w-0" }, _l = {
2825
+ }, Rl = ["data-variant"], ql = { class: "flex items-start gap-3" }, Hl = { class: "flex-1 min-w-0" }, Fl = {
2775
2826
  key: 0,
2776
2827
  class: "mt-3 flex gap-2"
2777
- }, Us = {
2828
+ }, bo = {
2778
2829
  __name: "DXAlert",
2779
2830
  props: {
2780
2831
  /** Вариант: info | success | warning | danger */
@@ -2790,7 +2841,7 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2790
2841
  },
2791
2842
  emits: ["dismiss"],
2792
2843
  setup(e, { emit: t }) {
2793
- const l = e, s = t, r = D(!1), i = () => {
2844
+ const l = e, s = t, r = B(!1), i = () => {
2794
2845
  r.value = !0, s("dismiss");
2795
2846
  }, d = {
2796
2847
  info: {
@@ -2799,7 +2850,7 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2799
2850
  title: "text-blue-900",
2800
2851
  content: "text-blue-800",
2801
2852
  close: "text-blue-500",
2802
- defaultIcon: te
2853
+ defaultIcon: ne
2803
2854
  },
2804
2855
  success: {
2805
2856
  bg: "bg-emerald-50 border-emerald-200",
@@ -2807,7 +2858,7 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2807
2858
  title: "text-emerald-900",
2808
2859
  content: "text-emerald-800",
2809
2860
  close: "text-emerald-500",
2810
- defaultIcon: Q
2861
+ defaultIcon: le
2811
2862
  },
2812
2863
  warning: {
2813
2864
  bg: "bg-amber-50 border-amber-200",
@@ -2815,7 +2866,7 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2815
2866
  title: "text-amber-900",
2816
2867
  content: "text-amber-800",
2817
2868
  close: "text-amber-500",
2818
- defaultIcon: ee
2869
+ defaultIcon: ae
2819
2870
  },
2820
2871
  danger: {
2821
2872
  bg: "bg-rose-50 border-rose-200",
@@ -2823,58 +2874,58 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2823
2874
  title: "text-rose-900",
2824
2875
  content: "text-rose-800",
2825
2876
  close: "text-rose-500",
2826
- defaultIcon: ie
2877
+ defaultIcon: me
2827
2878
  }
2828
- }, u = g(() => d[l.variant] || d.info), p = g(() => l.showIcon ? l.icon !== void 0 ? l.icon : u.value.defaultIcon : null), v = g(() => [
2879
+ }, u = p(() => d[l.variant] || d.info), v = p(() => l.showIcon ? l.icon !== void 0 ? l.icon : u.value.defaultIcon : null), b = p(() => [
2829
2880
  "rounded-xl border p-4",
2830
2881
  u.value.bg
2831
- ]), m = g(() => ["w-5 h-5 flex-shrink-0 mt-0.5", u.value.icon]), h = g(() => u.value.title), y = g(() => ["text-sm", u.value.content, l.title && "mt-1"]);
2832
- return g(() => u.value.close), (x, V) => r.value ? c("", !0) : (a(), n("div", {
2882
+ ]), m = p(() => ["w-5 h-5 flex-shrink-0 mt-0.5", u.value.icon]), g = p(() => u.value.title), w = p(() => ["text-sm", u.value.content, l.title && "mt-1"]);
2883
+ return p(() => u.value.close), (y, S) => r.value ? c("", !0) : (a(), n("div", {
2833
2884
  key: 0,
2834
- class: f(v.value),
2885
+ class: f(b.value),
2835
2886
  role: "alert",
2836
2887
  "data-component": "DXAlert",
2837
2888
  "data-variant": e.variant
2838
2889
  }, [
2839
- o("div", Ml, [
2840
- p.value ? (a(), C(S, {
2890
+ o("div", ql, [
2891
+ v.value ? (a(), $(D, {
2841
2892
  key: 0,
2842
- icon: p.value,
2893
+ icon: v.value,
2843
2894
  size: "md",
2844
2895
  animation: "none",
2845
2896
  class: f(m.value)
2846
2897
  }, null, 8, ["icon", "class"])) : c("", !0),
2847
- o("div", Ll, [
2898
+ o("div", Hl, [
2848
2899
  e.title ? (a(), n("p", {
2849
2900
  key: 0,
2850
- class: f(["font-semibold", h.value])
2851
- }, b(e.title), 3)) : c("", !0),
2901
+ class: f(["font-semibold", g.value])
2902
+ }, h(e.title), 3)) : c("", !0),
2852
2903
  o("div", {
2853
- class: f(y.value)
2904
+ class: f(w.value)
2854
2905
  }, [
2855
- $(x.$slots, "default")
2906
+ V(y.$slots, "default")
2856
2907
  ], 2)
2857
2908
  ]),
2858
- e.dismissible ? (a(), C(ce, {
2909
+ e.dismissible ? (a(), $(ve, {
2859
2910
  key: 1,
2860
2911
  size: "sm",
2861
2912
  variant: "default",
2862
2913
  onClick: i
2863
2914
  })) : c("", !0)
2864
2915
  ]),
2865
- x.$slots.actions ? (a(), n("div", _l, [
2866
- $(x.$slots, "actions")
2916
+ y.$slots.actions ? (a(), n("div", Fl, [
2917
+ V(y.$slots, "actions")
2867
2918
  ])) : c("", !0)
2868
- ], 10, jl));
2919
+ ], 10, Rl));
2869
2920
  }
2870
- }, Ol = {
2921
+ }, El = {
2871
2922
  "aria-label": "Breadcrumb",
2872
2923
  "data-component": "DXBreadcrumb"
2873
- }, Tl = {
2924
+ }, Gl = {
2874
2925
  key: 0,
2875
2926
  class: "mx-2 text-slate-400",
2876
2927
  "aria-hidden": "true"
2877
- }, Zl = { key: 1 }, Nl = "inline-flex items-center transition-colors", Ks = {
2928
+ }, Ul = { key: 1 }, Kl = "inline-flex items-center transition-colors", go = {
2878
2929
  __name: "DXBreadcrumb",
2879
2930
  props: {
2880
2931
  /** Элементы: [{ label, href?, to?, icon?, iconAnimation? }] */
@@ -2893,43 +2944,43 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2893
2944
  sm: "text-xs",
2894
2945
  md: "text-sm",
2895
2946
  lg: "text-base"
2896
- }, s = g(() => l[t.size] || l.md), r = g(() => t.size === "sm" ? "xs" : t.size === "lg" ? "sm" : "xs"), i = (u) => u.to ? "router-link" : u.href ? "a" : "span", d = (u, p) => u.iconAnimation ? u.iconAnimation : t.animateCurrentOnly ? p === t.items.length - 1 ? t.iconAnimation : "none" : t.iconAnimation;
2897
- return (u, p) => (a(), n("nav", Ol, [
2947
+ }, s = p(() => l[t.size] || l.md), r = p(() => t.size === "sm" ? "xs" : t.size === "lg" ? "sm" : "xs"), i = (u) => u.to ? "router-link" : u.href ? "a" : "span", d = (u, v) => u.iconAnimation ? u.iconAnimation : t.animateCurrentOnly ? v === t.items.length - 1 ? t.iconAnimation : "none" : t.iconAnimation;
2948
+ return (u, v) => (a(), n("nav", El, [
2898
2949
  o("ol", {
2899
2950
  class: f(["flex items-center flex-wrap", s.value])
2900
2951
  }, [
2901
- (a(!0), n(M, null, _(e.items, (v, m) => (a(), n("li", {
2952
+ (a(!0), n(M, null, L(e.items, (b, m) => (a(), n("li", {
2902
2953
  key: m,
2903
2954
  class: "flex items-center"
2904
2955
  }, [
2905
- m > 0 ? (a(), n("span", Tl, [
2906
- $(u.$slots, "separator", {}, () => [
2907
- e.separator === "chevron" ? (a(), C(S, {
2956
+ m > 0 ? (a(), n("span", Gl, [
2957
+ V(u.$slots, "separator", {}, () => [
2958
+ e.separator === "chevron" ? (a(), $(D, {
2908
2959
  key: 0,
2909
- icon: O(de),
2960
+ icon: _(fe),
2910
2961
  size: r.value,
2911
2962
  animation: "none"
2912
- }, null, 8, ["icon", "size"])) : (a(), n("span", Zl, "/"))
2963
+ }, null, 8, ["icon", "size"])) : (a(), n("span", Ul, "/"))
2913
2964
  ])
2914
2965
  ])) : c("", !0),
2915
- (a(), C(L(i(v)), {
2916
- href: v.href,
2917
- to: v.to,
2966
+ (a(), $(O(i(b)), {
2967
+ href: b.href,
2968
+ to: b.to,
2918
2969
  class: f([
2919
- Nl,
2970
+ Kl,
2920
2971
  m === e.items.length - 1 ? "text-slate-900 font-medium" : "text-slate-500 hover:text-slate-700"
2921
2972
  ]),
2922
2973
  "aria-current": m === e.items.length - 1 ? "page" : void 0
2923
2974
  }, {
2924
- default: P(() => [
2925
- v.icon ? (a(), C(S, {
2975
+ default: T(() => [
2976
+ b.icon ? (a(), $(D, {
2926
2977
  key: 0,
2927
- icon: v.icon,
2978
+ icon: b.icon,
2928
2979
  size: r.value,
2929
- animation: d(v, m),
2980
+ animation: d(b, m),
2930
2981
  class: "mr-1.5"
2931
2982
  }, null, 8, ["icon", "size", "animation"])) : c("", !0),
2932
- j(" " + b(v.label), 1)
2983
+ j(" " + h(b.label), 1)
2933
2984
  ]),
2934
2985
  _: 2
2935
2986
  }, 1032, ["href", "to", "class", "aria-current"]))
@@ -2937,13 +2988,13 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2937
2988
  ], 2)
2938
2989
  ]));
2939
2990
  }
2940
- }, Pl = {
2991
+ }, Yl = {
2941
2992
  class: "inline-flex",
2942
2993
  "data-component": "DXButtonGroup"
2943
- }, Fl = {
2994
+ }, Wl = {
2944
2995
  key: 0,
2945
2996
  class: "text-sm font-medium text-slate-700 mb-2"
2946
- }, Ws = {
2997
+ }, xo = {
2947
2998
  __name: "DXButtonGroup",
2948
2999
  props: {
2949
3000
  /** Значение (v-model) */
@@ -2959,7 +3010,7 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2959
3010
  },
2960
3011
  emits: ["update:modelValue"],
2961
3012
  setup(e, { emit: t }) {
2962
- const l = e, s = t, r = g(() => {
3013
+ const l = e, s = t, r = p(() => {
2963
3014
  switch (l.size) {
2964
3015
  case "sm":
2965
3016
  return "h-8";
@@ -2971,50 +3022,50 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
2971
3022
  }), i = (u) => {
2972
3023
  if (!l.disabled)
2973
3024
  if (l.multiple) {
2974
- const p = Array.isArray(l.modelValue) ? l.modelValue : [], v = p.indexOf(u);
2975
- if (v > -1) {
2976
- const m = [...p];
2977
- m.splice(v, 1), s("update:modelValue", m);
3025
+ const v = Array.isArray(l.modelValue) ? l.modelValue : [], b = v.indexOf(u);
3026
+ if (b > -1) {
3027
+ const m = [...v];
3028
+ m.splice(b, 1), s("update:modelValue", m);
2978
3029
  } else
2979
- s("update:modelValue", [...p, u]);
3030
+ s("update:modelValue", [...v, u]);
2980
3031
  } else
2981
3032
  s("update:modelValue", u);
2982
3033
  }, d = (u) => l.multiple ? Array.isArray(l.modelValue) && l.modelValue.includes(u) : l.modelValue === u;
2983
- return re("buttonGroup", {
3034
+ return ee("buttonGroup", {
2984
3035
  modelValue: l.modelValue,
2985
3036
  multiple: l.multiple,
2986
3037
  size: l.size,
2987
3038
  disabled: l.disabled,
2988
3039
  handleSelect: i,
2989
3040
  isSelected: d
2990
- }), (u, p) => (a(), n("div", Pl, [
2991
- e.label ? (a(), n("p", Fl, b(e.label), 1)) : c("", !0),
3041
+ }), (u, v) => (a(), n("div", Yl, [
3042
+ e.label ? (a(), n("p", Wl, h(e.label), 1)) : c("", !0),
2992
3043
  o("div", {
2993
3044
  class: f(["inline-flex border border-slate-200 rounded-xl overflow-hidden divide-x divide-slate-200", r.value])
2994
3045
  }, [
2995
- $(u.$slots, "default")
3046
+ V(u.$slots, "default")
2996
3047
  ], 2)
2997
3048
  ]));
2998
3049
  }
2999
- }, Hl = {
3050
+ }, Jl = {
3000
3051
  key: 0,
3001
3052
  class: "block text-sm font-medium text-slate-700 mb-1"
3002
- }, Rl = { class: "relative" }, ql = ["placeholder", "disabled", "onKeydown"], El = {
3053
+ }, Ql = { class: "relative" }, ea = ["placeholder", "disabled", "onKeydown"], ta = {
3003
3054
  key: 1,
3004
3055
  class: "absolute z-20 mt-2 w-full bg-white border border-slate-200 rounded-xl shadow-lg py-2 max-h-48 overflow-y-auto"
3005
- }, Gl = ["onClick", "onMouseenter"], Ul = { class: "flex items-center gap-2" }, Kl = {
3056
+ }, la = ["onClick", "onMouseenter"], aa = { class: "flex items-center gap-2" }, na = {
3006
3057
  key: 0,
3007
3058
  class: "w-4 h-4 text-slate-900",
3008
3059
  fill: "none",
3009
3060
  stroke: "currentColor",
3010
3061
  viewBox: "0 0 24 24"
3011
- }, Wl = {
3062
+ }, sa = {
3012
3063
  key: 0,
3013
3064
  class: "px-4 py-2 text-sm text-slate-500"
3014
- }, Yl = { key: 0 }, Jl = { key: 1 }, Ql = {
3065
+ }, oa = { key: 0 }, ra = { key: 1 }, ia = {
3015
3066
  key: 2,
3016
3067
  class: "mt-1 text-xs text-slate-500"
3017
- }, Ys = {
3068
+ }, yo = {
3018
3069
  __name: "DXComboBox",
3019
3070
  props: {
3020
3071
  modelValue: [String, Number],
@@ -3028,45 +3079,45 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3028
3079
  },
3029
3080
  emits: ["update:modelValue"],
3030
3081
  setup(e, { emit: t }) {
3031
- const l = e, s = t, r = D(null), i = D(null), d = D(""), u = D(!1), p = D(0), v = g(() => l.options.find((w) => w.value === l.modelValue)), m = g(() => {
3082
+ const l = e, s = t, r = B(null), i = B(null), d = B(""), u = B(!1), v = B(0), b = p(() => l.options.find((x) => x.value === l.modelValue)), m = p(() => {
3032
3083
  if (!l.filterable || !d.value)
3033
3084
  return l.options;
3034
- const w = d.value.toLowerCase();
3035
- return l.options.filter((k) => k.label.toLowerCase().includes(w));
3036
- }), h = () => {
3037
- if (u.value = !0, p.value = 0, !l.filterable) return;
3085
+ const x = d.value.toLowerCase();
3086
+ return l.options.filter((k) => k.label.toLowerCase().includes(x));
3087
+ }), g = () => {
3088
+ if (u.value = !0, v.value = 0, !l.filterable) return;
3038
3089
  !l.options.find((k) => k.label === d.value) && !l.allowCustom && s("update:modelValue", null);
3039
- }, y = () => {
3040
- u.value = !0, p.value = 0;
3041
- }, x = (w) => {
3042
- d.value = w.label, s("update:modelValue", w.value), u.value = !1;
3043
- }, V = () => {
3090
+ }, w = () => {
3091
+ u.value = !0, v.value = 0;
3092
+ }, y = (x) => {
3093
+ d.value = x.label, s("update:modelValue", x.value), u.value = !1;
3094
+ }, S = () => {
3044
3095
  if (!u.value) {
3045
3096
  u.value = !0;
3046
3097
  return;
3047
3098
  }
3048
- p.value < m.value.length - 1 && p.value++;
3049
- }, T = () => {
3050
- p.value > 0 && p.value--;
3051
- }, X = () => {
3099
+ v.value < m.value.length - 1 && v.value++;
3100
+ }, Z = () => {
3101
+ v.value > 0 && v.value--;
3102
+ }, z = () => {
3052
3103
  if (u.value && m.value.length > 0) {
3053
- const w = m.value[p.value];
3054
- w && x(w);
3104
+ const x = m.value[v.value];
3105
+ x && y(x);
3055
3106
  } else l.allowCustom && d.value && (s("update:modelValue", d.value), u.value = !1);
3056
- }, z = (w) => {
3057
- r.value && !r.value.contains(w.target) && (u.value = !1, !l.allowCustom && v.value && (d.value = v.value.label));
3107
+ }, C = (x) => {
3108
+ r.value && !r.value.contains(x.target) && (u.value = !1, !l.allowCustom && b.value && (d.value = b.value.label));
3058
3109
  };
3059
- return H(() => l.modelValue, (w) => {
3060
- const k = l.options.find((I) => I.value === w);
3061
- d.value = k ? k.label : l.allowCustom ? String(w || "") : "";
3062
- }, { immediate: !0 }), U(() => document.addEventListener("click", z)), J(() => document.removeEventListener("click", z)), (w, k) => (a(), n("div", {
3110
+ return F(() => l.modelValue, (x) => {
3111
+ const k = l.options.find((I) => I.value === x);
3112
+ d.value = k ? k.label : l.allowCustom ? String(x || "") : "";
3113
+ }, { immediate: !0 }), U(() => document.addEventListener("click", C)), te(() => document.removeEventListener("click", C)), (x, k) => (a(), n("div", {
3063
3114
  class: "relative",
3064
3115
  ref_key: "root",
3065
3116
  ref: r,
3066
3117
  "data-component": "DXComboBox"
3067
3118
  }, [
3068
- e.label ? (a(), n("label", Hl, b(e.label), 1)) : c("", !0),
3069
- o("div", Rl, [
3119
+ e.label ? (a(), n("label", Jl, h(e.label), 1)) : c("", !0),
3120
+ o("div", Ql, [
3070
3121
  q(o("input", {
3071
3122
  ref_key: "inputRef",
3072
3123
  ref: i,
@@ -3075,16 +3126,16 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3075
3126
  placeholder: e.placeholder,
3076
3127
  disabled: e.disabled,
3077
3128
  class: f(["w-full pr-10 rounded-xl border border-slate-200 bg-white px-4 py-3 text-sm text-slate-900 placeholder:text-slate-400 hover:border-slate-300 focus:border-slate-300 focus:outline-none transition-colors", e.disabled && "opacity-60 cursor-not-allowed bg-slate-50"]),
3078
- onInput: h,
3079
- onFocus: y,
3129
+ onInput: g,
3130
+ onFocus: w,
3080
3131
  onKeydown: [
3081
- R(N(V, ["prevent"]), ["down"]),
3082
- R(N(T, ["prevent"]), ["up"]),
3083
- R(N(X, ["prevent"]), ["enter"]),
3084
- k[1] || (k[1] = R((I) => u.value = !1, ["escape"]))
3132
+ E(P(S, ["prevent"]), ["down"]),
3133
+ E(P(Z, ["prevent"]), ["up"]),
3134
+ E(P(z, ["prevent"]), ["enter"]),
3135
+ k[1] || (k[1] = E((I) => u.value = !1, ["escape"]))
3085
3136
  ]
3086
- }, null, 42, ql), [
3087
- [G, d.value]
3137
+ }, null, 42, ea), [
3138
+ [K, d.value]
3088
3139
  ]),
3089
3140
  (a(), n("svg", {
3090
3141
  class: f(["absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-slate-400 pointer-events-none transition-transform", { "rotate-180": u.value }]),
@@ -3100,22 +3151,22 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3100
3151
  }, null, -1)
3101
3152
  ])], 2))
3102
3153
  ]),
3103
- u.value && (m.value.length > 0 || e.allowCustom && d.value) ? (a(), n("div", El, [
3104
- (a(!0), n(M, null, _(m.value, (I, B) => (a(), n("button", {
3154
+ u.value && (m.value.length > 0 || e.allowCustom && d.value) ? (a(), n("div", ta, [
3155
+ (a(!0), n(M, null, L(m.value, (I, X) => (a(), n("button", {
3105
3156
  key: I.value,
3106
3157
  type: "button",
3107
- class: f(["w-full text-left px-4 py-2 text-sm hover:bg-slate-50 flex items-center justify-between", { "bg-slate-100": B === p.value }]),
3108
- onClick: (K) => x(I),
3109
- onMouseenter: (K) => p.value = B
3158
+ class: f(["w-full text-left px-4 py-2 text-sm hover:bg-slate-50 flex items-center justify-between", { "bg-slate-100": X === v.value }]),
3159
+ onClick: (R) => y(I),
3160
+ onMouseenter: (R) => v.value = X
3110
3161
  }, [
3111
- o("span", Ul, [
3112
- I.icon ? (a(), C(L(I.icon), {
3162
+ o("span", aa, [
3163
+ I.icon ? (a(), $(O(I.icon), {
3113
3164
  key: 0,
3114
3165
  class: "w-4 h-4 text-slate-500"
3115
3166
  })) : c("", !0),
3116
- j(" " + b(I.label), 1)
3167
+ j(" " + h(I.label), 1)
3117
3168
  ]),
3118
- e.modelValue === I.value ? (a(), n("svg", Kl, [...k[3] || (k[3] = [
3169
+ e.modelValue === I.value ? (a(), n("svg", na, [...k[3] || (k[3] = [
3119
3170
  o("path", {
3120
3171
  "stroke-linecap": "round",
3121
3172
  "stroke-linejoin": "round",
@@ -3123,21 +3174,21 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3123
3174
  d: "M5 13l4 4L19 7"
3124
3175
  }, null, -1)
3125
3176
  ])])) : c("", !0)
3126
- ], 42, Gl))), 128)),
3127
- m.value.length === 0 && d.value ? (a(), n("div", Wl, [
3128
- e.allowCustom ? (a(), n("span", Yl, 'Нажмите Enter для "' + b(d.value) + '"', 1)) : (a(), n("span", Jl, "Не найдено"))
3177
+ ], 42, la))), 128)),
3178
+ m.value.length === 0 && d.value ? (a(), n("div", sa, [
3179
+ e.allowCustom ? (a(), n("span", oa, 'Нажмите Enter для "' + h(d.value) + '"', 1)) : (a(), n("span", ra, "Не найдено"))
3129
3180
  ])) : c("", !0)
3130
3181
  ])) : c("", !0),
3131
- e.helper ? (a(), n("p", Ql, b(e.helper), 1)) : c("", !0)
3182
+ e.helper ? (a(), n("p", ia, h(e.helper), 1)) : c("", !0)
3132
3183
  ], 512));
3133
3184
  }
3134
- }, ea = {
3185
+ }, da = {
3135
3186
  class: "space-y-1",
3136
3187
  "data-component": "DXCopyField"
3137
- }, ta = {
3188
+ }, ua = {
3138
3189
  key: 0,
3139
3190
  class: "text-[11px] uppercase tracking-wide text-slate-500 font-semibold"
3140
- }, la = { class: "flex items-center justify-between gap-2 rounded-lg border border-slate-200 bg-white px-3 py-3" }, aa = { class: "text-base font-semibold text-slate-900 break-all flex-1 text-center" }, na = ["aria-label"], Js = {
3191
+ }, ca = { class: "flex items-center justify-between gap-2 rounded-lg border border-slate-200 bg-white px-3 py-3" }, ma = { class: "text-base font-semibold text-slate-900 break-all flex-1 text-center" }, fa = ["aria-label"], wo = {
3141
3192
  __name: "DXCopyField",
3142
3193
  props: {
3143
3194
  /** Лейбл */
@@ -3145,9 +3196,9 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3145
3196
  /** Значение для копирования */
3146
3197
  value: { type: String, default: "" },
3147
3198
  /** Иконка для копирования */
3148
- copyIcon: { type: Object, default: () => Ye },
3199
+ copyIcon: { type: Object, default: () => at },
3149
3200
  /** Иконка успешного копирования */
3150
- successIcon: { type: Object, default: () => We },
3201
+ successIcon: { type: Object, default: () => lt },
3151
3202
  /** Анимация иконки копирования: none | wiggle | scale | rotate */
3152
3203
  copyIconAnimation: { type: String, default: "scale" },
3153
3204
  /** Анимация иконки успеха: none | wiggle | scale | rotate */
@@ -3157,7 +3208,7 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3157
3208
  },
3158
3209
  emits: ["copied"],
3159
3210
  setup(e, { emit: t }) {
3160
- const l = e, s = t, r = D(!1), i = async () => {
3211
+ const l = e, s = t, r = B(!1), i = async () => {
3161
3212
  if (l.value)
3162
3213
  try {
3163
3214
  await navigator.clipboard.writeText(l.value), r.value = !0, s("copied", l.value), setTimeout(() => {
@@ -3167,45 +3218,45 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3167
3218
  console.error("Не удалось скопировать", d);
3168
3219
  }
3169
3220
  };
3170
- return (d, u) => (a(), n("div", ea, [
3171
- e.label ? (a(), n("p", ta, b(e.label), 1)) : c("", !0),
3172
- o("div", la, [
3173
- o("p", aa, b(e.value || "—"), 1),
3221
+ return (d, u) => (a(), n("div", da, [
3222
+ e.label ? (a(), n("p", ua, h(e.label), 1)) : c("", !0),
3223
+ o("div", ca, [
3224
+ o("p", ma, h(e.value || "—"), 1),
3174
3225
  o("button", {
3175
3226
  type: "button",
3176
3227
  class: f(["h-9 w-9 inline-flex items-center justify-center rounded-xl border border-slate-200 text-slate-700 hover:border-slate-300 bg-white transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-slate-400 focus:ring-offset-2", { "border-emerald-300 bg-emerald-50": r.value }]),
3177
3228
  "aria-label": `Скопировать ${e.label || "значение"}`,
3178
3229
  onClick: i
3179
3230
  }, [
3180
- r.value ? (a(), C(S, {
3231
+ r.value ? (a(), $(D, {
3181
3232
  key: 0,
3182
- icon: O(Ue),
3233
+ icon: _(Je),
3183
3234
  size: "sm",
3184
3235
  animation: e.copiedIconAnimation,
3185
3236
  class: "text-emerald-600"
3186
- }, null, 8, ["icon", "animation"])) : (a(), C(S, {
3237
+ }, null, 8, ["icon", "animation"])) : (a(), $(D, {
3187
3238
  key: 1,
3188
3239
  icon: e.copyIcon,
3189
3240
  size: "sm",
3190
3241
  animation: e.copyIconAnimation
3191
3242
  }, null, 8, ["icon", "animation"]))
3192
- ], 10, na)
3243
+ ], 10, fa)
3193
3244
  ])
3194
3245
  ]));
3195
3246
  }
3196
- }, sa = {
3247
+ }, pa = {
3197
3248
  class: "w-full",
3198
3249
  "data-component": "DXDatePicker"
3199
- }, oa = {
3250
+ }, va = {
3200
3251
  key: 0,
3201
3252
  class: "block text-sm text-slate-600 mb-1 font-medium"
3202
- }, ra = { class: "relative" }, ia = ["type", "value", "placeholder", "disabled", "readonly"], da = {
3253
+ }, ha = { class: "relative" }, ba = ["type", "value", "placeholder", "disabled", "readonly"], ga = {
3203
3254
  key: 1,
3204
3255
  class: "absolute z-20 mt-2 p-4 bg-white border border-slate-200 rounded-xl shadow-lg"
3205
- }, ua = { class: "space-y-3" }, ca = { class: "flex gap-2" }, ma = {
3256
+ }, xa = { class: "space-y-3" }, ya = { class: "flex gap-2" }, wa = {
3206
3257
  key: 2,
3207
3258
  class: "mt-1 text-xs text-slate-500"
3208
- }, Qs = {
3259
+ }, ko = {
3209
3260
  __name: "DXDatePicker",
3210
3261
  props: {
3211
3262
  /** Значение (v-model) - строка или { start, end } для range */
@@ -3223,20 +3274,20 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3223
3274
  },
3224
3275
  emits: ["update:modelValue"],
3225
3276
  setup(e, { emit: t }) {
3226
- const l = e, s = t, r = D(!1), i = D(""), d = D(""), u = g(() => {
3277
+ const l = e, s = t, r = B(!1), i = B(""), d = B(""), u = p(() => {
3227
3278
  if (l.range && typeof l.modelValue == "object" && l.modelValue) {
3228
- const { start: y, end: x } = l.modelValue;
3229
- return y && x ? `${p(y)} - ${p(x)}` : "";
3279
+ const { start: w, end: y } = l.modelValue;
3280
+ return w && y ? `${v(w)} - ${v(y)}` : "";
3230
3281
  }
3231
3282
  return l.modelValue || "";
3232
- }), p = (y) => y ? new Date(y).toLocaleDateString("ru-RU") : "", v = (y) => s("update:modelValue", y), m = () => {
3283
+ }), v = (w) => w ? new Date(w).toLocaleDateString("ru-RU") : "", b = (w) => s("update:modelValue", w), m = () => {
3233
3284
  l.disabled || (r.value = !r.value, r.value && typeof l.modelValue == "object" && l.modelValue && (i.value = l.modelValue.start || "", d.value = l.modelValue.end || ""));
3234
- }, h = () => {
3285
+ }, g = () => {
3235
3286
  i.value && d.value && s("update:modelValue", { start: i.value, end: d.value }), r.value = !1;
3236
3287
  };
3237
- return (y, x) => (a(), n("div", sa, [
3238
- e.label ? (a(), n("label", oa, b(e.label), 1)) : c("", !0),
3239
- o("div", ra, [
3288
+ return (w, y) => (a(), n("div", pa, [
3289
+ e.label ? (a(), n("label", va, h(e.label), 1)) : c("", !0),
3290
+ o("div", ha, [
3240
3291
  o("input", {
3241
3292
  type: e.range ? "text" : "date",
3242
3293
  value: u.value,
@@ -3244,10 +3295,10 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3244
3295
  disabled: e.disabled,
3245
3296
  class: "w-full h-10 px-4 py-2.5 text-sm rounded-xl border border-slate-200 bg-white text-slate-700 transition-colors hover:border-slate-300 focus:outline-none focus:ring-2 focus:ring-slate-900/10 focus:border-slate-300 disabled:opacity-60 disabled:cursor-not-allowed disabled:bg-slate-50",
3246
3297
  readonly: e.range,
3247
- onChange: x[0] || (x[0] = (V) => !e.range && v(V.target.value)),
3248
- onClick: x[1] || (x[1] = (V) => e.range && m())
3249
- }, null, 40, ia),
3250
- x[5] || (x[5] = o("svg", {
3298
+ onChange: y[0] || (y[0] = (S) => !e.range && b(S.target.value)),
3299
+ onClick: y[1] || (y[1] = (S) => e.range && m())
3300
+ }, null, 40, ba),
3301
+ y[5] || (y[5] = o("svg", {
3251
3302
  class: "absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-slate-400 pointer-events-none",
3252
3303
  fill: "none",
3253
3304
  stroke: "currentColor",
@@ -3261,67 +3312,67 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3261
3312
  })
3262
3313
  ], -1))
3263
3314
  ]),
3264
- e.range && r.value ? (a(), n("div", da, [
3265
- o("div", ua, [
3315
+ e.range && r.value ? (a(), n("div", ga, [
3316
+ o("div", xa, [
3266
3317
  o("div", null, [
3267
- x[6] || (x[6] = o("label", { class: "text-xs text-slate-600" }, "От", -1)),
3318
+ y[6] || (y[6] = o("label", { class: "text-xs text-slate-600" }, "От", -1)),
3268
3319
  q(o("input", {
3269
3320
  type: "date",
3270
- "onUpdate:modelValue": x[2] || (x[2] = (V) => i.value = V),
3321
+ "onUpdate:modelValue": y[2] || (y[2] = (S) => i.value = S),
3271
3322
  class: "w-full mt-1 px-3 py-2 text-sm border border-slate-200 rounded-lg focus:outline-none focus:ring-2 focus:ring-slate-900/10"
3272
3323
  }, null, 512), [
3273
- [G, i.value]
3324
+ [K, i.value]
3274
3325
  ])
3275
3326
  ]),
3276
3327
  o("div", null, [
3277
- x[7] || (x[7] = o("label", { class: "text-xs text-slate-600" }, "До", -1)),
3328
+ y[7] || (y[7] = o("label", { class: "text-xs text-slate-600" }, "До", -1)),
3278
3329
  q(o("input", {
3279
3330
  type: "date",
3280
- "onUpdate:modelValue": x[3] || (x[3] = (V) => d.value = V),
3331
+ "onUpdate:modelValue": y[3] || (y[3] = (S) => d.value = S),
3281
3332
  class: "w-full mt-1 px-3 py-2 text-sm border border-slate-200 rounded-lg focus:outline-none focus:ring-2 focus:ring-slate-900/10"
3282
3333
  }, null, 512), [
3283
- [G, d.value]
3334
+ [K, d.value]
3284
3335
  ])
3285
3336
  ]),
3286
- o("div", ca, [
3337
+ o("div", ya, [
3287
3338
  o("button", {
3288
3339
  type: "button",
3289
3340
  class: "flex-1 px-3 py-2 text-sm bg-slate-900 text-white rounded-lg hover:bg-slate-800",
3290
- onClick: h
3341
+ onClick: g
3291
3342
  }, " Применить "),
3292
3343
  o("button", {
3293
3344
  type: "button",
3294
3345
  class: "px-3 py-2 text-sm border border-slate-200 rounded-lg hover:bg-slate-50",
3295
- onClick: x[4] || (x[4] = (V) => r.value = !1)
3346
+ onClick: y[4] || (y[4] = (S) => r.value = !1)
3296
3347
  }, " Отмена ")
3297
3348
  ])
3298
3349
  ])
3299
3350
  ])) : c("", !0),
3300
- e.helper ? (a(), n("p", ma, b(e.helper), 1)) : c("", !0)
3351
+ e.helper ? (a(), n("p", wa, h(e.helper), 1)) : c("", !0)
3301
3352
  ]));
3302
3353
  }
3303
- }, fa = {
3354
+ }, ka = {
3304
3355
  class: "w-full",
3305
3356
  "data-component": "DXFileUpload"
3306
- }, pa = {
3357
+ }, $a = {
3307
3358
  key: 0,
3308
3359
  class: "block text-sm font-medium text-slate-700 mb-1"
3309
- }, ga = ["accept", "multiple", "disabled"], va = {
3360
+ }, Ca = ["accept", "multiple", "disabled"], Sa = {
3310
3361
  key: 0,
3311
3362
  class: "text-center"
3312
- }, ba = { class: "text-sm font-medium text-slate-700 mb-1" }, ha = ["disabled"], xa = { class: "text-xs text-slate-500" }, ya = {
3363
+ }, Va = { class: "text-sm font-medium text-slate-700 mb-1" }, Da = ["disabled"], za = { class: "text-xs text-slate-500" }, Ba = {
3313
3364
  key: 1,
3314
3365
  class: "space-y-2"
3315
- }, wa = {
3366
+ }, Xa = {
3316
3367
  key: 0,
3317
3368
  class: "w-12 h-12 flex-shrink-0 rounded overflow-hidden bg-slate-200"
3318
- }, ka = ["src", "alt"], $a = { class: "flex-1 min-w-0" }, Ca = { class: "text-sm font-medium text-slate-900 truncate" }, Sa = { class: "text-xs text-slate-500" }, Va = ["onClick"], Da = ["disabled"], za = {
3369
+ }, Ia = ["src", "alt"], Aa = { class: "flex-1 min-w-0" }, ja = { class: "text-sm font-medium text-slate-900 truncate" }, Ma = { class: "text-xs text-slate-500" }, La = ["onClick"], _a = ["disabled"], Oa = {
3319
3370
  key: 1,
3320
3371
  class: "mt-1 text-xs text-slate-500"
3321
- }, Ba = {
3372
+ }, Za = {
3322
3373
  key: 2,
3323
3374
  class: "mt-1 text-xs text-rose-500"
3324
- }, eo = {
3375
+ }, $o = {
3325
3376
  __name: "DXFileUpload",
3326
3377
  props: {
3327
3378
  modelValue: [File, FileList, Array],
@@ -3334,40 +3385,40 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3334
3385
  },
3335
3386
  emits: ["update:modelValue", "upload"],
3336
3387
  setup(e, { emit: t }) {
3337
- const l = e, s = t, r = D(null), i = D(null), d = D(!1), u = D([]), p = D(""), v = (X) => {
3338
- const z = Array.from(X.target.files || []);
3339
- x(z);
3340
- }, m = (X) => {
3341
- var w;
3388
+ const l = e, s = t, r = B(null), i = B(null), d = B(!1), u = B([]), v = B(""), b = (z) => {
3389
+ const C = Array.from(z.target.files || []);
3390
+ y(C);
3391
+ }, m = (z) => {
3392
+ var x;
3342
3393
  if (d.value = !1, l.disabled) return;
3343
- const z = Array.from(((w = X.dataTransfer) == null ? void 0 : w.files) || []);
3344
- x(z);
3345
- }, h = () => {
3394
+ const C = Array.from(((x = z.dataTransfer) == null ? void 0 : x.files) || []);
3395
+ y(C);
3396
+ }, g = () => {
3346
3397
  l.disabled || (d.value = !0);
3347
- }, y = (X) => {
3348
- X.target === i.value && (d.value = !1);
3349
- }, x = (X) => {
3350
- p.value = "";
3351
- const z = X.map((w) => {
3352
- if (w.type.startsWith("image/")) {
3353
- const k = URL.createObjectURL(w);
3354
- return Object.assign(w, { preview: k });
3398
+ }, w = (z) => {
3399
+ z.target === i.value && (d.value = !1);
3400
+ }, y = (z) => {
3401
+ v.value = "";
3402
+ const C = z.map((x) => {
3403
+ if (x.type.startsWith("image/")) {
3404
+ const k = URL.createObjectURL(x);
3405
+ return Object.assign(x, { preview: k });
3355
3406
  }
3356
- return w;
3407
+ return x;
3357
3408
  });
3358
- l.multiple ? u.value = [...u.value, ...z] : u.value = z.slice(0, 1), s("update:modelValue", l.multiple ? u.value : u.value[0]);
3359
- }, V = (X) => {
3360
- const z = u.value[X];
3361
- z.preview && URL.revokeObjectURL(z.preview), u.value.splice(X, 1), s("update:modelValue", l.multiple ? u.value : u.value[0] || null);
3362
- }, T = (X) => {
3363
- if (X === 0) return "0 Bytes";
3364
- const z = 1024, w = ["Bytes", "KB", "MB", "GB"], k = Math.floor(Math.log(X) / Math.log(z));
3365
- return Math.round(X / Math.pow(z, k) * 100) / 100 + " " + w[k];
3409
+ l.multiple ? u.value = [...u.value, ...C] : u.value = C.slice(0, 1), s("update:modelValue", l.multiple ? u.value : u.value[0]);
3410
+ }, S = (z) => {
3411
+ const C = u.value[z];
3412
+ C.preview && URL.revokeObjectURL(C.preview), u.value.splice(z, 1), s("update:modelValue", l.multiple ? u.value : u.value[0] || null);
3413
+ }, Z = (z) => {
3414
+ if (z === 0) return "0 Bytes";
3415
+ const C = 1024, x = ["Bytes", "KB", "MB", "GB"], k = Math.floor(Math.log(z) / Math.log(C));
3416
+ return Math.round(z / Math.pow(C, k) * 100) / 100 + " " + x[k];
3366
3417
  };
3367
- return H(() => l.modelValue, (X) => {
3368
- X || (u.value = []);
3369
- }), (X, z) => (a(), n("div", fa, [
3370
- e.label ? (a(), n("label", pa, b(e.label), 1)) : c("", !0),
3418
+ return F(() => l.modelValue, (z) => {
3419
+ z || (u.value = []);
3420
+ }), (z, C) => (a(), n("div", ka, [
3421
+ e.label ? (a(), n("label", $a, h(e.label), 1)) : c("", !0),
3371
3422
  o("div", {
3372
3423
  ref_key: "dropZone",
3373
3424
  ref: i,
@@ -3375,11 +3426,11 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3375
3426
  d.value ? "border-slate-900 bg-slate-50 scale-105" : "border-slate-300 bg-white hover:border-slate-400",
3376
3427
  e.disabled && "opacity-60 cursor-not-allowed"
3377
3428
  ]]),
3378
- onDragenter: N(h, ["prevent"]),
3379
- onDragover: z[2] || (z[2] = N(() => {
3429
+ onDragenter: P(g, ["prevent"]),
3430
+ onDragover: C[2] || (C[2] = P(() => {
3380
3431
  }, ["prevent"])),
3381
- onDragleave: N(y, ["prevent"]),
3382
- onDrop: N(m, ["prevent"])
3432
+ onDragleave: P(w, ["prevent"]),
3433
+ onDrop: P(m, ["prevent"])
3383
3434
  }, [
3384
3435
  o("input", {
3385
3436
  ref_key: "fileInput",
@@ -3389,44 +3440,44 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3389
3440
  multiple: e.multiple,
3390
3441
  disabled: e.disabled,
3391
3442
  class: "hidden",
3392
- onChange: v
3393
- }, null, 40, ga),
3394
- u.value.length ? (a(), n("div", ya, [
3395
- (a(!0), n(M, null, _(u.value, (w, k) => {
3443
+ onChange: b
3444
+ }, null, 40, Ca),
3445
+ u.value.length ? (a(), n("div", Ba, [
3446
+ (a(!0), n(M, null, L(u.value, (x, k) => {
3396
3447
  var I;
3397
3448
  return a(), n("div", {
3398
3449
  key: k,
3399
3450
  class: "flex items-center gap-3 p-3 bg-slate-50 rounded-lg"
3400
3451
  }, [
3401
- (I = w.type) != null && I.startsWith("image/") ? (a(), n("div", wa, [
3452
+ (I = x.type) != null && I.startsWith("image/") ? (a(), n("div", Xa, [
3402
3453
  o("img", {
3403
- src: w.preview,
3404
- alt: w.name,
3454
+ src: x.preview,
3455
+ alt: x.name,
3405
3456
  class: "w-full h-full object-cover"
3406
- }, null, 8, ka)
3407
- ])) : (a(), C(S, {
3457
+ }, null, 8, Ia)
3458
+ ])) : (a(), $(D, {
3408
3459
  key: 1,
3409
- icon: O(Qe),
3460
+ icon: _(st),
3410
3461
  size: "lg",
3411
3462
  animation: "none",
3412
3463
  class: "text-slate-400 flex-shrink-0"
3413
3464
  }, null, 8, ["icon"])),
3414
- o("div", $a, [
3415
- o("p", Ca, b(w.name), 1),
3416
- o("p", Sa, b(T(w.size)), 1)
3465
+ o("div", Aa, [
3466
+ o("p", ja, h(x.name), 1),
3467
+ o("p", Ma, h(Z(x.size)), 1)
3417
3468
  ]),
3418
3469
  o("button", {
3419
3470
  type: "button",
3420
3471
  class: "text-slate-400 hover:text-slate-600 transition-colors",
3421
- onClick: (B) => V(k),
3472
+ onClick: (X) => S(k),
3422
3473
  "aria-label": "Удалить файл"
3423
3474
  }, [
3424
- A(S, {
3425
- icon: O(ue),
3475
+ A(D, {
3476
+ icon: _(pe),
3426
3477
  size: "md",
3427
3478
  animation: "scale"
3428
3479
  }, null, 8, ["icon"])
3429
- ], 8, Va)
3480
+ ], 8, La)
3430
3481
  ]);
3431
3482
  }), 128)),
3432
3483
  e.multiple ? (a(), n("button", {
@@ -3434,49 +3485,49 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3434
3485
  type: "button",
3435
3486
  class: "w-full py-2 text-sm text-slate-600 hover:text-slate-900 border border-slate-200 rounded-lg hover:bg-slate-50",
3436
3487
  disabled: e.disabled,
3437
- onClick: z[1] || (z[1] = (w) => {
3488
+ onClick: C[1] || (C[1] = (x) => {
3438
3489
  var k;
3439
3490
  return (k = r.value) == null ? void 0 : k.click();
3440
3491
  })
3441
3492
  }, [
3442
- A(S, {
3443
- icon: O(st),
3493
+ A(D, {
3494
+ icon: _(mt),
3444
3495
  size: "sm",
3445
3496
  animation: "none",
3446
3497
  class: "inline mr-1"
3447
3498
  }, null, 8, ["icon"]),
3448
- z[4] || (z[4] = j(" Добавить ещё ", -1))
3449
- ], 8, Da)) : c("", !0)
3450
- ])) : (a(), n("div", va, [
3451
- A(S, {
3452
- icon: O(Je),
3499
+ C[4] || (C[4] = j(" Добавить ещё ", -1))
3500
+ ], 8, _a)) : c("", !0)
3501
+ ])) : (a(), n("div", Sa, [
3502
+ A(D, {
3503
+ icon: _(nt),
3453
3504
  size: "xl",
3454
3505
  animation: "none",
3455
3506
  class: "mx-auto text-slate-400 mb-3 w-12 h-12"
3456
3507
  }, null, 8, ["icon"]),
3457
- o("p", ba, [
3458
- z[3] || (z[3] = j(" Перетащите файлы сюда или ", -1)),
3508
+ o("p", Va, [
3509
+ C[3] || (C[3] = j(" Перетащите файлы сюда или ", -1)),
3459
3510
  o("button", {
3460
3511
  type: "button",
3461
3512
  class: "text-slate-900 underline hover:no-underline",
3462
3513
  disabled: e.disabled,
3463
- onClick: z[0] || (z[0] = (w) => {
3514
+ onClick: C[0] || (C[0] = (x) => {
3464
3515
  var k;
3465
3516
  return (k = r.value) == null ? void 0 : k.click();
3466
3517
  })
3467
- }, " выберите ", 8, ha)
3518
+ }, " выберите ", 8, Da)
3468
3519
  ]),
3469
- o("p", xa, b(e.accept || "Любые файлы") + " " + b(e.maxSize ? `• Макс. ${e.maxSize}` : ""), 1)
3520
+ o("p", za, h(e.accept || "Любые файлы") + " " + h(e.maxSize ? `• Макс. ${e.maxSize}` : ""), 1)
3470
3521
  ]))
3471
3522
  ], 34),
3472
- e.helper ? (a(), n("p", za, b(e.helper), 1)) : c("", !0),
3473
- p.value ? (a(), n("p", Ba, b(p.value), 1)) : c("", !0)
3523
+ e.helper ? (a(), n("p", Oa, h(e.helper), 1)) : c("", !0),
3524
+ v.value ? (a(), n("p", Za, h(v.value), 1)) : c("", !0)
3474
3525
  ]));
3475
3526
  }
3476
- }, Xa = {
3527
+ }, Ta = {
3477
3528
  class: "space-y-2",
3478
3529
  "data-component": "DXFilterGroup"
3479
- }, Ia = { class: "text-xs font-semibold text-slate-500 uppercase tracking-wide" }, Aa = { class: "flex flex-wrap gap-2" }, ja = ["onClick"], to = {
3530
+ }, Na = { class: "text-xs font-semibold text-slate-500 uppercase tracking-wide" }, Pa = { class: "flex flex-wrap gap-2" }, Ra = ["onClick"], Co = {
3480
3531
  __name: "DXFilterGroup",
3481
3532
  props: {
3482
3533
  /** Лейбл группы */
@@ -3490,15 +3541,15 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3490
3541
  },
3491
3542
  emits: ["update:modelValue"],
3492
3543
  setup(e) {
3493
- return (t, l) => (a(), n("div", Xa, [
3494
- o("p", Ia, b(e.label), 1),
3495
- o("div", Aa, [
3496
- (a(!0), n(M, null, _(e.options, (s) => (a(), n("button", {
3544
+ return (t, l) => (a(), n("div", Ta, [
3545
+ o("p", Na, h(e.label), 1),
3546
+ o("div", Pa, [
3547
+ (a(!0), n(M, null, L(e.options, (s) => (a(), n("button", {
3497
3548
  key: s.value,
3498
3549
  type: "button",
3499
3550
  class: f(["px-3 py-2 rounded-full text-xs font-semibold border transition", e.modelValue === s.value ? "bg-slate-800 text-white border-slate-800" : "border-slate-200 text-slate-700 hover:border-slate-300 bg-white"]),
3500
3551
  onClick: (r) => t.$emit("update:modelValue", s.value)
3501
- }, b(s.label), 11, ja))), 128)),
3552
+ }, h(s.label), 11, Ra))), 128)),
3502
3553
  e.modelValue && e.clearable ? (a(), n("button", {
3503
3554
  key: 0,
3504
3555
  type: "button",
@@ -3508,31 +3559,31 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3508
3559
  ])
3509
3560
  ]));
3510
3561
  }
3511
- }, Ma = {
3562
+ }, qa = {
3512
3563
  class: "w-full",
3513
3564
  "data-component": "DXFormControl"
3514
- }, La = { class: "flex items-center justify-between mb-1" }, _a = {
3565
+ }, Ha = { class: "flex items-center justify-between mb-1" }, Fa = {
3515
3566
  key: 0,
3516
3567
  class: "text-sm font-medium text-slate-700"
3517
- }, Oa = {
3568
+ }, Ea = {
3518
3569
  key: 0,
3519
3570
  class: "text-rose-500"
3520
- }, Ta = {
3571
+ }, Ga = {
3521
3572
  key: 1,
3522
3573
  class: "text-xs text-slate-500"
3523
- }, Za = { class: "relative" }, Na = {
3574
+ }, Ua = { class: "relative" }, Ka = {
3524
3575
  key: 0,
3525
3576
  class: "absolute left-3 top-1/2 -translate-y-1/2 text-slate-400"
3526
- }, Pa = {
3577
+ }, Ya = {
3527
3578
  key: 1,
3528
3579
  class: "absolute right-3 top-1/2 -translate-y-1/2"
3529
- }, Fa = {
3580
+ }, Wa = {
3530
3581
  key: 0,
3531
3582
  class: "mt-1 text-xs text-rose-500 flex items-center gap-1"
3532
- }, Ha = {
3583
+ }, Ja = {
3533
3584
  key: 1,
3534
3585
  class: "mt-1 text-xs text-slate-500"
3535
- }, lo = {
3586
+ }, So = {
3536
3587
  __name: "DXFormControl",
3537
3588
  props: {
3538
3589
  /** Лейбл */
@@ -3555,56 +3606,56 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3555
3606
  showCount: { type: Boolean, default: !1 }
3556
3607
  },
3557
3608
  setup(e) {
3558
- const t = e, l = g(() => t.validationState === "success" || t.validationState === "error");
3559
- return (s, r) => (a(), n("div", Ma, [
3560
- o("div", La, [
3561
- e.label ? (a(), n("label", _a, [
3562
- j(b(e.label) + " ", 1),
3563
- e.required ? (a(), n("span", Oa, "*")) : c("", !0)
3609
+ const t = e, l = p(() => t.validationState === "success" || t.validationState === "error");
3610
+ return (s, r) => (a(), n("div", qa, [
3611
+ o("div", Ha, [
3612
+ e.label ? (a(), n("label", Fa, [
3613
+ j(h(e.label) + " ", 1),
3614
+ e.required ? (a(), n("span", Ea, "*")) : c("", !0)
3564
3615
  ])) : c("", !0),
3565
- e.maxLength && e.showCount ? (a(), n("span", Ta, b(e.currentLength) + " / " + b(e.maxLength), 1)) : c("", !0)
3616
+ e.maxLength && e.showCount ? (a(), n("span", Ga, h(e.currentLength) + " / " + h(e.maxLength), 1)) : c("", !0)
3566
3617
  ]),
3567
- o("div", Za, [
3568
- s.$slots.prefix || e.prefixIcon ? (a(), n("div", Na, [
3569
- e.prefixIcon ? (a(), C(S, {
3618
+ o("div", Ua, [
3619
+ s.$slots.prefix || e.prefixIcon ? (a(), n("div", Ka, [
3620
+ e.prefixIcon ? (a(), $(D, {
3570
3621
  key: 0,
3571
3622
  icon: e.prefixIcon,
3572
3623
  size: "sm",
3573
3624
  animation: "none"
3574
3625
  }, null, 8, ["icon"])) : c("", !0),
3575
- $(s.$slots, "prefix")
3626
+ V(s.$slots, "prefix")
3576
3627
  ])) : c("", !0),
3577
3628
  o("div", {
3578
3629
  class: f({ "pl-10": s.$slots.prefix || e.prefixIcon, "pr-10": l.value })
3579
3630
  }, [
3580
- $(s.$slots, "default")
3631
+ V(s.$slots, "default")
3581
3632
  ], 2),
3582
- l.value ? (a(), n("div", Pa, [
3583
- A(ne, {
3633
+ l.value ? (a(), n("div", Ya, [
3634
+ A(de, {
3584
3635
  state: e.validationState,
3585
3636
  size: "md"
3586
3637
  }, null, 8, ["state"])
3587
3638
  ])) : c("", !0)
3588
3639
  ]),
3589
- e.error ? (a(), n("p", Fa, [
3590
- A(ne, {
3640
+ e.error ? (a(), n("p", Wa, [
3641
+ A(de, {
3591
3642
  state: "error",
3592
3643
  size: "xs"
3593
3644
  }),
3594
- j(" " + b(e.error), 1)
3595
- ])) : e.helper ? (a(), n("p", Ha, b(e.helper), 1)) : c("", !0)
3645
+ j(" " + h(e.error), 1)
3646
+ ])) : e.helper ? (a(), n("p", Ja, h(e.helper), 1)) : c("", !0)
3596
3647
  ]));
3597
3648
  }
3598
- }, Ra = {
3649
+ }, Qa = {
3599
3650
  class: "w-full",
3600
3651
  "data-component": "DXInputGroup"
3601
- }, qa = {
3652
+ }, en = {
3602
3653
  key: 0,
3603
3654
  class: "block text-sm font-medium text-slate-700 mb-1"
3604
- }, Ea = { class: "flex" }, Ga = {
3655
+ }, tn = { class: "flex" }, ln = {
3605
3656
  key: 1,
3606
3657
  class: "mt-1 text-xs text-slate-500"
3607
- }, ao = {
3658
+ }, Vo = {
3608
3659
  __name: "DXInputGroup",
3609
3660
  props: {
3610
3661
  label: { type: String, default: "" },
@@ -3612,26 +3663,26 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3612
3663
  size: { type: String, default: "md" }
3613
3664
  },
3614
3665
  setup(e) {
3615
- return re("inputGroup", {
3666
+ return ee("inputGroup", {
3616
3667
  size: e.size
3617
- }), (l, s) => (a(), n("div", Ra, [
3618
- e.label ? (a(), n("label", qa, b(e.label), 1)) : c("", !0),
3619
- o("div", Ea, [
3620
- $(l.$slots, "default")
3668
+ }), (l, s) => (a(), n("div", Qa, [
3669
+ e.label ? (a(), n("label", en, h(e.label), 1)) : c("", !0),
3670
+ o("div", tn, [
3671
+ V(l.$slots, "default")
3621
3672
  ]),
3622
- e.helper ? (a(), n("p", Ga, b(e.helper), 1)) : c("", !0)
3673
+ e.helper ? (a(), n("p", ln, h(e.helper), 1)) : c("", !0)
3623
3674
  ]));
3624
3675
  }
3625
- }, Ua = {
3676
+ }, an = {
3626
3677
  class: "w-full",
3627
3678
  "data-component": "DXInputMask"
3628
- }, Ka = {
3679
+ }, nn = {
3629
3680
  key: 0,
3630
3681
  class: "block text-sm text-slate-600 mb-1 font-medium"
3631
- }, Wa = ["type", "placeholder", "value", "disabled"], Ya = {
3682
+ }, sn = ["type", "placeholder", "value", "disabled"], on = {
3632
3683
  key: 1,
3633
3684
  class: "mt-1 text-xs text-slate-500"
3634
- }, no = {
3685
+ }, Do = {
3635
3686
  __name: "DXInputMask",
3636
3687
  props: {
3637
3688
  /** Значение (v-model) - сырое значение без маски */
@@ -3651,27 +3702,27 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3651
3702
  },
3652
3703
  emits: ["update:modelValue"],
3653
3704
  setup(e, { emit: t }) {
3654
- const l = e, s = t, r = D(null), i = D(""), d = (m) => {
3655
- const h = m.replace(/\D/g, "");
3656
- let y = "", x = 0;
3657
- for (let V = 0; V < l.mask.length && x < h.length; V++)
3658
- l.mask[V] === "#" ? (y += h[x], x++) : y += l.mask[V];
3659
- return y;
3660
- }, u = (m) => m.replace(/\D/g, ""), p = (m) => {
3661
- const h = u(m.target.value), y = d(h);
3662
- i.value = y, s("update:modelValue", h), setTimeout(() => {
3705
+ const l = e, s = t, r = B(null), i = B(""), d = (m) => {
3706
+ const g = m.replace(/\D/g, "");
3707
+ let w = "", y = 0;
3708
+ for (let S = 0; S < l.mask.length && y < g.length; S++)
3709
+ l.mask[S] === "#" ? (w += g[y], y++) : w += l.mask[S];
3710
+ return w;
3711
+ }, u = (m) => m.replace(/\D/g, ""), v = (m) => {
3712
+ const g = u(m.target.value), w = d(g);
3713
+ i.value = w, s("update:modelValue", g), setTimeout(() => {
3663
3714
  if (r.value) {
3664
- const x = y.length;
3665
- r.value.setSelectionRange(x, x);
3715
+ const y = w.length;
3716
+ r.value.setSelectionRange(y, y);
3666
3717
  }
3667
3718
  }, 0);
3668
- }, v = (m) => {
3719
+ }, b = (m) => {
3669
3720
  ["Backspace", "Delete", "Tab", "Escape", "Enter", "ArrowLeft", "ArrowRight"].includes(m.key) || /^\d$/.test(m.key) || m.preventDefault();
3670
3721
  };
3671
- return H(() => l.modelValue, (m) => {
3722
+ return F(() => l.modelValue, (m) => {
3672
3723
  m !== u(i.value) && (i.value = d(m));
3673
- }, { immediate: !0 }), (m, h) => (a(), n("div", Ua, [
3674
- e.label ? (a(), n("label", Ka, b(e.label), 1)) : c("", !0),
3724
+ }, { immediate: !0 }), (m, g) => (a(), n("div", an, [
3725
+ e.label ? (a(), n("label", nn, h(e.label), 1)) : c("", !0),
3675
3726
  o("input", {
3676
3727
  ref_key: "inputRef",
3677
3728
  ref: r,
@@ -3680,20 +3731,20 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3680
3731
  value: i.value,
3681
3732
  disabled: e.disabled,
3682
3733
  class: "w-full h-10 px-4 py-2.5 text-sm rounded-xl border border-slate-200 bg-white text-slate-700 placeholder:text-slate-400 transition-colors hover:border-slate-300 focus:outline-none focus:ring-2 focus:ring-slate-900/10 focus:border-slate-300 disabled:opacity-60 disabled:cursor-not-allowed disabled:bg-slate-50",
3683
- onInput: p,
3684
- onKeydown: v
3685
- }, null, 40, Wa),
3686
- e.helper ? (a(), n("p", Ya, b(e.helper), 1)) : c("", !0)
3734
+ onInput: v,
3735
+ onKeydown: b
3736
+ }, null, 40, sn),
3737
+ e.helper ? (a(), n("p", on, h(e.helper), 1)) : c("", !0)
3687
3738
  ]));
3688
3739
  }
3689
- }, Ja = {
3740
+ }, rn = {
3690
3741
  class: "flex items-center gap-1",
3691
3742
  "aria-label": "Pagination",
3692
3743
  "data-component": "DXPagination"
3693
- }, Qa = ["disabled"], en = {
3744
+ }, dn = ["disabled"], un = {
3694
3745
  key: 0,
3695
3746
  class: "px-2 text-slate-400"
3696
- }, tn = ["aria-current", "onClick"], ln = ["disabled"], an = "bg-slate-900 text-white hover:bg-slate-800", so = {
3747
+ }, cn = ["aria-current", "onClick"], mn = ["disabled"], fn = "bg-slate-900 text-white hover:bg-slate-800", zo = {
3697
3748
  __name: "DXPagination",
3698
3749
  props: {
3699
3750
  /** Текущая страница (v-model) */
@@ -3707,79 +3758,79 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3707
3758
  },
3708
3759
  emits: ["update:modelValue"],
3709
3760
  setup(e, { emit: t }) {
3710
- const l = e, s = t, r = (v) => {
3711
- v >= 1 && v <= l.totalPages && s("update:modelValue", v);
3712
- }, i = g(() => {
3713
- const v = l.modelValue, m = l.totalPages, h = l.siblingCount, y = [];
3714
- y.push(1);
3715
- const x = Math.max(2, v - h), V = Math.min(m - 1, v + h);
3716
- x > 2 && y.push("...");
3717
- for (let T = x; T <= V; T++)
3718
- T !== 1 && T !== m && y.push(T);
3719
- return V < m - 1 && y.push("..."), m > 1 && y.push(m), y;
3761
+ const l = e, s = t, r = (b) => {
3762
+ b >= 1 && b <= l.totalPages && s("update:modelValue", b);
3763
+ }, i = p(() => {
3764
+ const b = l.modelValue, m = l.totalPages, g = l.siblingCount, w = [];
3765
+ w.push(1);
3766
+ const y = Math.max(2, b - g), S = Math.min(m - 1, b + g);
3767
+ y > 2 && w.push("...");
3768
+ for (let Z = y; Z <= S; Z++)
3769
+ Z !== 1 && Z !== m && w.push(Z);
3770
+ return S < m - 1 && w.push("..."), m > 1 && w.push(m), w;
3720
3771
  }), d = {
3721
3772
  sm: "h-7 min-w-7 text-xs",
3722
3773
  md: "h-9 min-w-9 text-sm",
3723
3774
  lg: "h-11 min-w-11 text-base"
3724
- }, u = g(() => [
3775
+ }, u = p(() => [
3725
3776
  "inline-flex items-center justify-center rounded-lg border border-slate-200 bg-white text-slate-600 hover:bg-slate-50 hover:border-slate-300 transition-colors",
3726
3777
  d[l.size] || d.md
3727
- ]), p = g(() => [
3778
+ ]), v = p(() => [
3728
3779
  "inline-flex items-center justify-center rounded-lg font-medium transition-colors",
3729
3780
  d[l.size] || d.md,
3730
3781
  "text-slate-600 hover:bg-slate-100"
3731
3782
  ]);
3732
- return (v, m) => (a(), n("nav", Ja, [
3783
+ return (b, m) => (a(), n("nav", rn, [
3733
3784
  o("button", {
3734
3785
  type: "button",
3735
3786
  disabled: e.modelValue <= 1,
3736
3787
  class: f([u.value, e.modelValue <= 1 && "opacity-50 cursor-not-allowed"]),
3737
- onClick: m[0] || (m[0] = (h) => r(e.modelValue - 1)),
3788
+ onClick: m[0] || (m[0] = (g) => r(e.modelValue - 1)),
3738
3789
  "aria-label": "Предыдущая"
3739
3790
  }, [
3740
- A(S, {
3741
- icon: O(Ke),
3791
+ A(D, {
3792
+ icon: _(tt),
3742
3793
  size: "sm",
3743
3794
  animation: "none"
3744
3795
  }, null, 8, ["icon"])
3745
- ], 10, Qa),
3746
- (a(!0), n(M, null, _(i.value, (h) => (a(), n(M, { key: h }, [
3747
- h === "..." ? (a(), n("span", en, "...")) : (a(), n("button", {
3796
+ ], 10, dn),
3797
+ (a(!0), n(M, null, L(i.value, (g) => (a(), n(M, { key: g }, [
3798
+ g === "..." ? (a(), n("span", un, "...")) : (a(), n("button", {
3748
3799
  key: 1,
3749
3800
  type: "button",
3750
- class: f([p.value, h === e.modelValue && an]),
3751
- "aria-current": h === e.modelValue ? "page" : void 0,
3752
- onClick: (y) => r(h)
3753
- }, b(h), 11, tn))
3801
+ class: f([v.value, g === e.modelValue && fn]),
3802
+ "aria-current": g === e.modelValue ? "page" : void 0,
3803
+ onClick: (w) => r(g)
3804
+ }, h(g), 11, cn))
3754
3805
  ], 64))), 128)),
3755
3806
  o("button", {
3756
3807
  type: "button",
3757
3808
  disabled: e.modelValue >= e.totalPages,
3758
3809
  class: f([u.value, e.modelValue >= e.totalPages && "opacity-50 cursor-not-allowed"]),
3759
- onClick: m[1] || (m[1] = (h) => r(e.modelValue + 1)),
3810
+ onClick: m[1] || (m[1] = (g) => r(e.modelValue + 1)),
3760
3811
  "aria-label": "Следующая"
3761
3812
  }, [
3762
- A(S, {
3763
- icon: O(de),
3813
+ A(D, {
3814
+ icon: _(fe),
3764
3815
  size: "sm",
3765
3816
  animation: "none"
3766
3817
  }, null, 8, ["icon"])
3767
- ], 10, ln)
3818
+ ], 10, mn)
3768
3819
  ]));
3769
3820
  }
3770
- }, nn = {
3821
+ }, pn = {
3771
3822
  class: "w-full",
3772
3823
  "data-component": "DXPasswordInput"
3773
- }, sn = {
3824
+ }, vn = {
3774
3825
  key: 0,
3775
3826
  class: "block text-sm text-slate-600 mb-1 font-medium"
3776
- }, on = { class: "relative" }, rn = ["type", "placeholder", "value", "disabled"], dn = ["disabled", "aria-label"], un = {
3827
+ }, hn = { class: "relative" }, bn = ["type", "placeholder", "value", "disabled"], gn = ["disabled", "aria-label"], xn = {
3777
3828
  key: 1,
3778
3829
  class: "mt-1 text-xs text-rose-500"
3779
- }, cn = {
3830
+ }, yn = {
3780
3831
  key: 2,
3781
3832
  class: "mt-1 text-xs text-slate-500"
3782
- }, oo = {
3833
+ }, Bo = {
3783
3834
  __name: "DXPasswordInput",
3784
3835
  props: {
3785
3836
  /** Значение (v-model) */
@@ -3797,10 +3848,10 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3797
3848
  },
3798
3849
  emits: ["update:modelValue"],
3799
3850
  setup(e) {
3800
- const t = D(!1);
3801
- return (l, s) => (a(), n("div", nn, [
3802
- e.label ? (a(), n("label", sn, b(e.label), 1)) : c("", !0),
3803
- o("div", on, [
3851
+ const t = B(!1);
3852
+ return (l, s) => (a(), n("div", pn, [
3853
+ e.label ? (a(), n("label", vn, h(e.label), 1)) : c("", !0),
3854
+ o("div", hn, [
3804
3855
  o("input", {
3805
3856
  type: t.value ? "text" : "password",
3806
3857
  placeholder: e.placeholder,
@@ -3808,7 +3859,7 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3808
3859
  disabled: e.disabled,
3809
3860
  class: f(["w-full pr-11 h-10 px-4 py-2.5 text-sm rounded-xl border border-slate-200 bg-white text-slate-700 placeholder:text-slate-400 transition-colors hover:border-slate-300 focus:outline-none focus:ring-2 focus:ring-slate-900/10 focus:border-slate-300 disabled:opacity-60 disabled:cursor-not-allowed disabled:bg-slate-50", { "border-rose-300 focus:ring-rose-500/10": e.error }]),
3810
3861
  onInput: s[0] || (s[0] = (r) => l.$emit("update:modelValue", r.target.value))
3811
- }, null, 42, rn),
3862
+ }, null, 42, bn),
3812
3863
  o("button", {
3813
3864
  type: "button",
3814
3865
  class: "absolute right-3 top-1/2 -translate-y-1/2 text-slate-400 hover:text-slate-600 transition",
@@ -3816,23 +3867,23 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3816
3867
  onClick: s[1] || (s[1] = (r) => t.value = !t.value),
3817
3868
  "aria-label": t.value ? "Скрыть пароль" : "Показать пароль"
3818
3869
  }, [
3819
- A(S, {
3820
- icon: t.value ? O(et) : O(ae),
3870
+ A(D, {
3871
+ icon: t.value ? _(ot) : _(se),
3821
3872
  size: "md",
3822
3873
  animation: "scale"
3823
3874
  }, null, 8, ["icon"])
3824
- ], 8, dn)
3875
+ ], 8, gn)
3825
3876
  ]),
3826
- e.error ? (a(), n("p", un, b(e.error), 1)) : e.helper ? (a(), n("p", cn, b(e.helper), 1)) : c("", !0)
3877
+ e.error ? (a(), n("p", xn, h(e.error), 1)) : e.helper ? (a(), n("p", yn, h(e.helper), 1)) : c("", !0)
3827
3878
  ]));
3828
3879
  }
3829
- }, mn = ["value", "checked", "disabled"], fn = { class: "flex items-start gap-3" }, pn = { class: "flex-1 min-w-0" }, gn = { class: "flex items-center justify-between" }, vn = {
3880
+ }, wn = ["value", "checked", "disabled"], kn = { class: "flex items-start gap-3" }, $n = { class: "flex-1 min-w-0" }, Cn = { class: "flex items-center justify-between" }, Sn = {
3830
3881
  key: 0,
3831
3882
  class: "w-5 h-5 rounded-full bg-slate-900 flex items-center justify-center flex-shrink-0"
3832
- }, bn = {
3883
+ }, Vn = {
3833
3884
  key: 0,
3834
3885
  class: "text-sm text-slate-600 mt-1"
3835
- }, ro = {
3886
+ }, Xo = {
3836
3887
  __name: "DXRadioCard",
3837
3888
  props: {
3838
3889
  modelValue: [String, Number, Boolean],
@@ -3855,7 +3906,7 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3855
3906
  disabled: e.disabled,
3856
3907
  class: "sr-only peer",
3857
3908
  onChange: l[0] || (l[0] = (s) => t.$emit("update:modelValue", e.value))
3858
- }, null, 40, mn),
3909
+ }, null, 40, wn),
3859
3910
  o("div", {
3860
3911
  class: f(["border-2 rounded-xl p-4 transition-all", [
3861
3912
  e.modelValue === e.value ? "border-slate-900 bg-slate-50" : "border-slate-200 bg-white",
@@ -3863,17 +3914,17 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3863
3914
  e.disabled && "bg-slate-50"
3864
3915
  ]])
3865
3916
  }, [
3866
- o("div", fn, [
3867
- e.icon ? (a(), C(L(e.icon), {
3917
+ o("div", kn, [
3918
+ e.icon ? (a(), $(O(e.icon), {
3868
3919
  key: 0,
3869
3920
  class: f(["w-6 h-6 flex-shrink-0", e.modelValue === e.value ? "text-slate-900" : "text-slate-400"])
3870
3921
  }, null, 8, ["class"])) : c("", !0),
3871
- o("div", pn, [
3872
- o("div", gn, [
3922
+ o("div", $n, [
3923
+ o("div", Cn, [
3873
3924
  o("p", {
3874
3925
  class: f(["font-semibold", e.modelValue === e.value ? "text-slate-900" : "text-slate-700"])
3875
- }, b(e.title), 3),
3876
- e.modelValue === e.value ? (a(), n("div", vn, [...l[1] || (l[1] = [
3926
+ }, h(e.title), 3),
3927
+ e.modelValue === e.value ? (a(), n("div", Sn, [...l[1] || (l[1] = [
3877
3928
  o("svg", {
3878
3929
  class: "w-3 h-3 text-white",
3879
3930
  fill: "none",
@@ -3889,23 +3940,23 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3889
3940
  ], -1)
3890
3941
  ])])) : c("", !0)
3891
3942
  ]),
3892
- e.description ? (a(), n("p", bn, b(e.description), 1)) : c("", !0),
3893
- $(t.$slots, "default")
3943
+ e.description ? (a(), n("p", Vn, h(e.description), 1)) : c("", !0),
3944
+ V(t.$slots, "default")
3894
3945
  ])
3895
3946
  ])
3896
3947
  ], 2)
3897
3948
  ], 2));
3898
3949
  }
3899
- }, hn = {
3950
+ }, Dn = {
3900
3951
  class: "space-y-2",
3901
3952
  "data-component": "DXRadioGroup"
3902
- }, xn = {
3953
+ }, zn = {
3903
3954
  key: 0,
3904
3955
  class: "text-sm font-medium text-slate-700 mb-3"
3905
- }, yn = ["value", "checked", "disabled", "onChange"], wn = { class: "text-sm text-slate-700 select-none" }, kn = {
3956
+ }, Bn = ["value", "checked", "disabled", "onChange"], Xn = { class: "text-sm text-slate-700 select-none" }, In = {
3906
3957
  key: 1,
3907
3958
  class: "text-xs text-slate-500 mt-1"
3908
- }, io = {
3959
+ }, Io = {
3909
3960
  __name: "DXRadioGroup",
3910
3961
  props: {
3911
3962
  /** Текущее значение (v-model) */
@@ -3925,7 +3976,7 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3925
3976
  },
3926
3977
  emits: ["update:modelValue"],
3927
3978
  setup(e) {
3928
- const t = e, l = g(() => {
3979
+ const t = e, l = p(() => {
3929
3980
  switch (t.size) {
3930
3981
  case "sm":
3931
3982
  return "h-3.5 w-3.5";
@@ -3935,12 +3986,12 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3935
3986
  return "h-4 w-4";
3936
3987
  }
3937
3988
  });
3938
- return (s, r) => (a(), n("div", hn, [
3939
- e.label ? (a(), n("p", xn, b(e.label), 1)) : c("", !0),
3989
+ return (s, r) => (a(), n("div", Dn, [
3990
+ e.label ? (a(), n("p", zn, h(e.label), 1)) : c("", !0),
3940
3991
  o("div", {
3941
3992
  class: f(e.layout === "horizontal" ? "flex flex-wrap gap-3" : "space-y-2")
3942
3993
  }, [
3943
- (a(!0), n(M, null, _(e.options, (i) => (a(), n("label", {
3994
+ (a(!0), n(M, null, L(e.options, (i) => (a(), n("label", {
3944
3995
  key: i.value,
3945
3996
  class: f(["inline-flex items-center gap-2 cursor-pointer", { "opacity-60 cursor-not-allowed": e.disabled || i.disabled }])
3946
3997
  }, [
@@ -3951,32 +4002,32 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3951
4002
  disabled: e.disabled || i.disabled,
3952
4003
  class: f(["rounded-full border-slate-300 text-slate-900 focus:ring-slate-900/10 focus:ring-2 transition", l.value]),
3953
4004
  onChange: (d) => s.$emit("update:modelValue", i.value)
3954
- }, null, 42, yn),
3955
- o("span", wn, b(i.label), 1)
4005
+ }, null, 42, Bn),
4006
+ o("span", Xn, h(i.label), 1)
3956
4007
  ], 2))), 128))
3957
4008
  ], 2),
3958
- e.helper ? (a(), n("p", kn, b(e.helper), 1)) : c("", !0)
4009
+ e.helper ? (a(), n("p", In, h(e.helper), 1)) : c("", !0)
3959
4010
  ]));
3960
4011
  }
3961
- }, $n = {
4012
+ }, An = {
3962
4013
  key: 0,
3963
4014
  class: "block text-sm text-slate-600 mb-1 font-medium"
3964
- }, Cn = {
4015
+ }, jn = {
3965
4016
  key: 1,
3966
4017
  class: "flex flex-wrap gap-2 mb-2"
3967
- }, Sn = ["onClick"], Vn = { class: "truncate flex items-center gap-2" }, Dn = {
4018
+ }, Mn = ["onClick"], Ln = { class: "truncate flex items-center gap-2" }, _n = {
3968
4019
  key: 2,
3969
4020
  class: "absolute z-20 mt-2 w-full bg-white border border-slate-200 rounded-xl shadow-lg p-3 space-y-2"
3970
- }, zn = { class: "relative" }, Bn = ["placeholder"], Xn = { class: "max-h-48 overflow-y-auto space-y-1" }, In = ["onClick"], An = { class: "flex items-center gap-2 flex-1 truncate" }, jn = {
4021
+ }, On = { class: "relative" }, Zn = ["placeholder"], Tn = { class: "max-h-48 overflow-y-auto space-y-1" }, Nn = ["onClick"], Pn = { class: "flex items-center gap-2 flex-1 truncate" }, Rn = {
3971
4022
  key: 0,
3972
4023
  class: "w-4 h-4 text-slate-900 flex-shrink-0",
3973
4024
  fill: "none",
3974
4025
  stroke: "currentColor",
3975
4026
  viewBox: "0 0 24 24"
3976
- }, Mn = {
4027
+ }, qn = {
3977
4028
  key: 1,
3978
4029
  class: "text-xs text-slate-500 px-3 py-2"
3979
- }, uo = {
4030
+ }, Ao = {
3980
4031
  __name: "DXSearchSelect",
3981
4032
  props: {
3982
4033
  /** Значение (v-model) - строка или массив для multiple */
@@ -3996,48 +4047,48 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
3996
4047
  },
3997
4048
  emits: ["update:modelValue", "create"],
3998
4049
  setup(e, { emit: t }) {
3999
- const l = e, s = t, r = D(!1), i = D(""), d = D(null), u = D(null), p = g(() => l.multiple ? null : l.options.find((w) => String(w.value) === String(l.modelValue))), v = g(() => {
4050
+ const l = e, s = t, r = B(!1), i = B(""), d = B(null), u = B(null), v = p(() => l.multiple ? null : l.options.find((x) => String(x.value) === String(l.modelValue))), b = p(() => {
4000
4051
  if (!l.multiple) return [];
4001
- const w = Array.isArray(l.modelValue) ? l.modelValue : [];
4002
- return l.options.filter((k) => w.includes(k.value));
4003
- }), m = g(() => {
4052
+ const x = Array.isArray(l.modelValue) ? l.modelValue : [];
4053
+ return l.options.filter((k) => x.includes(k.value));
4054
+ }), m = p(() => {
4004
4055
  if (l.multiple) {
4005
- const w = v.value.length;
4006
- return w > 0 ? `Выбрано: ${w}` : l.placeholder;
4056
+ const x = b.value.length;
4057
+ return x > 0 ? `Выбрано: ${x}` : l.placeholder;
4007
4058
  }
4008
- return p.value ? p.value.label : l.placeholder;
4009
- }), h = g(() => {
4010
- const w = i.value.toLowerCase().trim();
4011
- return w ? l.options.filter((k) => k.label.toLowerCase().includes(w)) : l.options;
4012
- }), y = (w) => l.multiple ? (Array.isArray(l.modelValue) ? l.modelValue : []).includes(w) : l.modelValue === w, x = () => {
4013
- r.value = !r.value, r.value && W(() => {
4014
- var w;
4015
- return (w = u.value) == null ? void 0 : w.focus();
4059
+ return v.value ? v.value.label : l.placeholder;
4060
+ }), g = p(() => {
4061
+ const x = i.value.toLowerCase().trim();
4062
+ return x ? l.options.filter((k) => k.label.toLowerCase().includes(x)) : l.options;
4063
+ }), w = (x) => l.multiple ? (Array.isArray(l.modelValue) ? l.modelValue : []).includes(x) : l.modelValue === x, y = () => {
4064
+ r.value = !r.value, r.value && J(() => {
4065
+ var x;
4066
+ return (x = u.value) == null ? void 0 : x.focus();
4016
4067
  });
4017
- }, V = (w) => {
4068
+ }, S = (x) => {
4018
4069
  if (l.multiple) {
4019
- const k = Array.isArray(l.modelValue) ? l.modelValue : [], I = k.indexOf(w);
4070
+ const k = Array.isArray(l.modelValue) ? l.modelValue : [], I = k.indexOf(x);
4020
4071
  if (I > -1) {
4021
- const B = [...k];
4022
- B.splice(I, 1), s("update:modelValue", B);
4072
+ const X = [...k];
4073
+ X.splice(I, 1), s("update:modelValue", X);
4023
4074
  } else
4024
- s("update:modelValue", [...k, w]);
4075
+ s("update:modelValue", [...k, x]);
4025
4076
  } else
4026
- s("update:modelValue", w), r.value = !1;
4077
+ s("update:modelValue", x), r.value = !1;
4027
4078
  i.value = "";
4028
- }, T = (w) => {
4079
+ }, Z = (x) => {
4029
4080
  if (l.multiple) {
4030
4081
  const k = Array.isArray(l.modelValue) ? l.modelValue : [];
4031
- s("update:modelValue", k.filter((I) => I !== w));
4082
+ s("update:modelValue", k.filter((I) => I !== x));
4032
4083
  }
4033
- }, X = () => {
4084
+ }, z = () => {
4034
4085
  l.creatable && i.value && (s("create", i.value), i.value = "");
4035
- }, z = (w) => {
4036
- d.value && !d.value.contains(w.target) && (r.value = !1, i.value = "");
4086
+ }, C = (x) => {
4087
+ d.value && !d.value.contains(x.target) && (r.value = !1, i.value = "");
4037
4088
  };
4038
- return H(r, (w) => {
4039
- w || (i.value = "");
4040
- }), U(() => document.addEventListener("click", z)), J(() => document.removeEventListener("click", z)), (w, k) => {
4089
+ return F(r, (x) => {
4090
+ x || (i.value = "");
4091
+ }), U(() => document.addEventListener("click", C)), te(() => document.removeEventListener("click", C)), (x, k) => {
4041
4092
  var I;
4042
4093
  return a(), n("div", {
4043
4094
  class: "relative",
@@ -4045,21 +4096,21 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4045
4096
  ref: d,
4046
4097
  "data-component": "DXSearchSelect"
4047
4098
  }, [
4048
- e.label ? (a(), n("label", $n, b(e.label), 1)) : c("", !0),
4049
- e.multiple && v.value.length > 0 ? (a(), n("div", Cn, [
4050
- (a(!0), n(M, null, _(v.value, (B) => (a(), n("span", {
4051
- key: B.value,
4099
+ e.label ? (a(), n("label", An, h(e.label), 1)) : c("", !0),
4100
+ e.multiple && b.value.length > 0 ? (a(), n("div", jn, [
4101
+ (a(!0), n(M, null, L(b.value, (X) => (a(), n("span", {
4102
+ key: X.value,
4052
4103
  class: "inline-flex items-center gap-1 px-2 py-1 text-xs font-medium bg-slate-100 text-slate-700 rounded-lg"
4053
4104
  }, [
4054
- B.icon ? (a(), C(L(B.icon), {
4105
+ X.icon ? (a(), $(O(X.icon), {
4055
4106
  key: 0,
4056
4107
  class: "w-3 h-3"
4057
4108
  })) : c("", !0),
4058
- j(" " + b(B.label) + " ", 1),
4109
+ j(" " + h(X.label) + " ", 1),
4059
4110
  o("button", {
4060
4111
  type: "button",
4061
4112
  class: "hover:text-slate-900",
4062
- onClick: N((K) => T(B.value), ["stop"])
4113
+ onClick: P((R) => Z(X.value), ["stop"])
4063
4114
  }, [...k[3] || (k[3] = [
4064
4115
  o("svg", {
4065
4116
  class: "w-3 h-3",
@@ -4074,7 +4125,7 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4074
4125
  d: "M6 18L18 6M6 6l12 12"
4075
4126
  })
4076
4127
  ], -1)
4077
- ])], 8, Sn)
4128
+ ])], 8, Mn)
4078
4129
  ]))), 128))
4079
4130
  ])) : c("", !0),
4080
4131
  o("button", {
@@ -4083,14 +4134,14 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4083
4134
  !r.value && "hover:border-slate-300",
4084
4135
  r.value && "ring-2 ring-slate-900/10 border-slate-300"
4085
4136
  ]]),
4086
- onClick: x
4137
+ onClick: y
4087
4138
  }, [
4088
- o("span", Vn, [
4089
- !e.multiple && ((I = p.value) != null && I.icon) ? (a(), C(L(p.value.icon), {
4139
+ o("span", Ln, [
4140
+ !e.multiple && ((I = v.value) != null && I.icon) ? (a(), $(O(v.value.icon), {
4090
4141
  key: 0,
4091
4142
  class: "w-4 h-4 text-slate-500"
4092
4143
  })) : c("", !0),
4093
- j(" " + b(m.value), 1)
4144
+ j(" " + h(m.value), 1)
4094
4145
  ]),
4095
4146
  (a(), n("svg", {
4096
4147
  class: f(["w-4 h-4 text-slate-400 transition-transform", { "rotate-180": r.value }]),
@@ -4106,21 +4157,21 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4106
4157
  }, null, -1)
4107
4158
  ])], 2))
4108
4159
  ], 2),
4109
- r.value ? (a(), n("div", Dn, [
4110
- o("div", zn, [
4160
+ r.value ? (a(), n("div", _n, [
4161
+ o("div", On, [
4111
4162
  q(o("input", {
4112
4163
  ref_key: "searchInput",
4113
4164
  ref: u,
4114
- "onUpdate:modelValue": k[0] || (k[0] = (B) => i.value = B),
4165
+ "onUpdate:modelValue": k[0] || (k[0] = (X) => i.value = X),
4115
4166
  class: "w-full px-3 py-2 text-sm border border-slate-200 rounded-lg focus:outline-none focus:ring-2 focus:ring-slate-900/10",
4116
4167
  placeholder: e.searchPlaceholder,
4117
4168
  onKeydown: [
4118
- k[1] || (k[1] = N(() => {
4169
+ k[1] || (k[1] = P(() => {
4119
4170
  }, ["stop"])),
4120
- k[2] || (k[2] = R((B) => r.value = !1, ["escape"]))
4171
+ k[2] || (k[2] = E((X) => r.value = !1, ["escape"]))
4121
4172
  ]
4122
- }, null, 40, Bn), [
4123
- [G, i.value]
4173
+ }, null, 40, Zn), [
4174
+ [K, i.value]
4124
4175
  ]),
4125
4176
  k[5] || (k[5] = o("svg", {
4126
4177
  class: "absolute right-3 top-2.5 w-4 h-4 text-slate-400",
@@ -4136,21 +4187,21 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4136
4187
  })
4137
4188
  ], -1))
4138
4189
  ]),
4139
- o("div", Xn, [
4140
- (a(!0), n(M, null, _(h.value, (B) => (a(), n("button", {
4141
- key: B.value,
4190
+ o("div", Tn, [
4191
+ (a(!0), n(M, null, L(g.value, (X) => (a(), n("button", {
4192
+ key: X.value,
4142
4193
  type: "button",
4143
- class: f(["w-full text-left px-3 py-2 rounded-lg hover:bg-slate-50 text-sm flex items-center justify-between gap-2", { "bg-slate-100": y(B.value) }]),
4144
- onClick: (K) => V(B.value)
4194
+ class: f(["w-full text-left px-3 py-2 rounded-lg hover:bg-slate-50 text-sm flex items-center justify-between gap-2", { "bg-slate-100": w(X.value) }]),
4195
+ onClick: (R) => S(X.value)
4145
4196
  }, [
4146
- o("span", An, [
4147
- B.icon ? (a(), C(L(B.icon), {
4197
+ o("span", Pn, [
4198
+ X.icon ? (a(), $(O(X.icon), {
4148
4199
  key: 0,
4149
4200
  class: "w-4 h-4 text-slate-500"
4150
4201
  })) : c("", !0),
4151
- j(" " + b(B.label), 1)
4202
+ j(" " + h(X.label), 1)
4152
4203
  ]),
4153
- y(B.value) ? (a(), n("svg", jn, [...k[6] || (k[6] = [
4204
+ w(X.value) ? (a(), n("svg", Rn, [...k[6] || (k[6] = [
4154
4205
  o("path", {
4155
4206
  "stroke-linecap": "round",
4156
4207
  "stroke-linejoin": "round",
@@ -4158,12 +4209,12 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4158
4209
  d: "M5 13l4 4L19 7"
4159
4210
  }, null, -1)
4160
4211
  ])])) : c("", !0)
4161
- ], 10, In))), 128)),
4162
- e.creatable && i.value && !h.value.length ? (a(), n("button", {
4212
+ ], 10, Nn))), 128)),
4213
+ e.creatable && i.value && !g.value.length ? (a(), n("button", {
4163
4214
  key: 0,
4164
4215
  type: "button",
4165
4216
  class: "w-full text-left px-3 py-2 rounded-lg hover:bg-slate-50 text-sm flex items-center gap-2 text-slate-600",
4166
- onClick: X
4217
+ onClick: z
4167
4218
  }, [
4168
4219
  k[7] || (k[7] = o("svg", {
4169
4220
  class: "w-4 h-4",
@@ -4178,20 +4229,20 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4178
4229
  d: "M12 4v16m8-8H4"
4179
4230
  })
4180
4231
  ], -1)),
4181
- j(' Создать "' + b(i.value) + '" ', 1)
4182
- ])) : h.value.length ? c("", !0) : (a(), n("p", Mn, "Не найдено"))
4232
+ j(' Создать "' + h(i.value) + '" ', 1)
4233
+ ])) : g.value.length ? c("", !0) : (a(), n("p", qn, "Не найдено"))
4183
4234
  ])
4184
4235
  ])) : c("", !0)
4185
4236
  ], 512);
4186
4237
  };
4187
4238
  }
4188
- }, Ln = {
4239
+ }, Hn = {
4189
4240
  class: "inline-flex",
4190
4241
  "data-component": "DXSegmentedControl"
4191
- }, _n = {
4242
+ }, Fn = {
4192
4243
  key: 0,
4193
4244
  class: "text-sm font-medium text-slate-700 mb-2"
4194
- }, On = { class: "relative inline-flex p-1 bg-slate-100 rounded-xl gap-1" }, Tn = ["disabled", "onClick"], Zn = { key: 1 }, co = {
4245
+ }, En = { class: "relative inline-flex p-1 bg-slate-100 rounded-xl gap-1" }, Gn = ["disabled", "onClick"], Un = { key: 1 }, jo = {
4195
4246
  __name: "DXSegmentedControl",
4196
4247
  props: {
4197
4248
  modelValue: [String, Number, Boolean],
@@ -4208,61 +4259,61 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4208
4259
  },
4209
4260
  emits: ["update:modelValue"],
4210
4261
  setup(e, { emit: t }) {
4211
- const l = e, s = t, r = D([]), i = D({}), d = g(() => l.options.findIndex((m) => m.value === l.modelValue)), u = () => {
4262
+ const l = e, s = t, r = B([]), i = B({}), d = p(() => l.options.findIndex((m) => m.value === l.modelValue)), u = () => {
4212
4263
  const m = d.value;
4213
4264
  if (m >= 0 && r.value[m]) {
4214
- const h = r.value[m];
4265
+ const g = r.value[m];
4215
4266
  i.value = {
4216
- width: `${h.offsetWidth}px`,
4217
- height: `${h.offsetHeight}px`,
4218
- left: `${h.offsetLeft}px`,
4219
- top: `${h.offsetTop}px`
4267
+ width: `${g.offsetWidth}px`,
4268
+ height: `${g.offsetHeight}px`,
4269
+ left: `${g.offsetLeft}px`,
4270
+ top: `${g.offsetTop}px`
4220
4271
  };
4221
4272
  }
4222
- }, p = (m) => {
4273
+ }, v = (m) => {
4223
4274
  l.disabled || s("update:modelValue", m);
4224
- }, v = (m) => l.iconAnimation === "none" ? "none" : l.animateActiveOnly ? l.modelValue === m.value ? l.iconAnimation : "none" : l.iconAnimation;
4225
- return H(() => l.modelValue, () => {
4226
- W(u);
4275
+ }, b = (m) => l.iconAnimation === "none" ? "none" : l.animateActiveOnly ? l.modelValue === m.value ? l.iconAnimation : "none" : l.iconAnimation;
4276
+ return F(() => l.modelValue, () => {
4277
+ J(u);
4227
4278
  }), U(() => {
4228
- W(u);
4229
- }), (m, h) => (a(), n("div", Ln, [
4230
- e.label ? (a(), n("p", _n, b(e.label), 1)) : c("", !0),
4231
- o("div", On, [
4279
+ J(u);
4280
+ }), (m, g) => (a(), n("div", Hn, [
4281
+ e.label ? (a(), n("p", Fn, h(e.label), 1)) : c("", !0),
4282
+ o("div", En, [
4232
4283
  o("div", {
4233
4284
  class: "absolute bg-white rounded-lg shadow-sm transition-all duration-200 ease-out",
4234
- style: E(i.value)
4285
+ style: G(i.value)
4235
4286
  }, null, 4),
4236
- (a(!0), n(M, null, _(e.options, (y, x) => (a(), n("button", {
4237
- key: y.value,
4287
+ (a(!0), n(M, null, L(e.options, (w, y) => (a(), n("button", {
4288
+ key: w.value,
4238
4289
  type: "button",
4239
4290
  ref_for: !0,
4240
- ref: (V) => {
4241
- V && (r.value[x] = V);
4291
+ ref: (S) => {
4292
+ S && (r.value[y] = S);
4242
4293
  },
4243
4294
  class: f(["relative z-10 px-4 py-1.5 text-sm font-medium transition-colors duration-150 rounded-lg whitespace-nowrap min-w-[60px] text-center inline-flex items-center justify-center gap-1.5", [
4244
- e.modelValue === y.value ? "text-slate-900" : "text-slate-600 hover:text-slate-900",
4295
+ e.modelValue === w.value ? "text-slate-900" : "text-slate-600 hover:text-slate-900",
4245
4296
  e.disabled && "opacity-60 cursor-not-allowed"
4246
4297
  ]]),
4247
4298
  disabled: e.disabled,
4248
- onClick: (V) => p(y.value)
4299
+ onClick: (S) => v(w.value)
4249
4300
  }, [
4250
- y.icon ? (a(), C(S, {
4301
+ w.icon ? (a(), $(D, {
4251
4302
  key: 0,
4252
- icon: y.icon,
4303
+ icon: w.icon,
4253
4304
  size: "xs",
4254
- animation: v(y)
4305
+ animation: b(w)
4255
4306
  }, null, 8, ["icon", "animation"])) : c("", !0),
4256
- y.label ? (a(), n("span", Zn, b(y.label), 1)) : c("", !0),
4257
- y.count !== void 0 && y.count !== null ? (a(), n("span", {
4307
+ w.label ? (a(), n("span", Un, h(w.label), 1)) : c("", !0),
4308
+ w.count !== void 0 && w.count !== null ? (a(), n("span", {
4258
4309
  key: 2,
4259
- class: f(["inline-flex items-center justify-center min-w-[20px] h-5 px-1.5 text-[11px] font-semibold rounded-full", e.modelValue === y.value ? "bg-slate-800 text-white" : "bg-slate-200 text-slate-700"])
4260
- }, b(y.count), 3)) : c("", !0)
4261
- ], 10, Tn))), 128))
4310
+ class: f(["inline-flex items-center justify-center min-w-[20px] h-5 px-1.5 text-[11px] font-semibold rounded-full", e.modelValue === w.value ? "bg-slate-800 text-white" : "bg-slate-200 text-slate-700"])
4311
+ }, h(w.count), 3)) : c("", !0)
4312
+ ], 10, Gn))), 128))
4262
4313
  ])
4263
4314
  ]));
4264
4315
  }
4265
- }, Nn = ["onClick", "aria-expanded"], Pn = { class: "flex items-center gap-2" }, Fn = { class: "text-slate-900" }, Hn = { class: "overflow-hidden" }, Rn = { class: "pb-4 px-1 text-sm text-slate-600" }, mo = {
4316
+ }, Kn = ["onClick", "aria-expanded"], Yn = { class: "flex items-center gap-2" }, Wn = { class: "text-slate-900" }, Jn = { class: "overflow-hidden" }, Qn = { class: "pb-4 px-1 text-sm text-slate-600" }, Mo = {
4266
4317
  __name: "DXAccordion",
4267
4318
  props: {
4268
4319
  /** Элементы: [{ title, content?, icon? }] */
@@ -4275,46 +4326,46 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4275
4326
  variant: { type: String, default: "default" }
4276
4327
  },
4277
4328
  setup(e) {
4278
- const t = e, l = D(new Set(t.defaultOpen)), s = (u) => l.value.has(u), r = (u) => {
4329
+ const t = e, l = B(new Set(t.defaultOpen)), s = (u) => l.value.has(u), r = (u) => {
4279
4330
  t.multiple ? (l.value.has(u) ? l.value.delete(u) : l.value.add(u), l.value = new Set(l.value)) : l.value.has(u) ? l.value = /* @__PURE__ */ new Set() : l.value = /* @__PURE__ */ new Set([u]);
4280
4331
  }, i = {
4281
4332
  default: "",
4282
4333
  bordered: "border border-slate-200 rounded-xl overflow-hidden",
4283
4334
  separated: "space-y-2"
4284
- }, d = g(() => [
4335
+ }, d = p(() => [
4285
4336
  i[t.variant] || i.default
4286
4337
  ]);
4287
- return (u, p) => (a(), n("div", {
4338
+ return (u, v) => (a(), n("div", {
4288
4339
  class: f(d.value),
4289
4340
  "data-component": "DXAccordion"
4290
4341
  }, [
4291
- (a(!0), n(M, null, _(e.items, (v, m) => (a(), n("div", {
4342
+ (a(!0), n(M, null, L(e.items, (b, m) => (a(), n("div", {
4292
4343
  key: m,
4293
4344
  class: "border-b border-slate-200 last:border-b-0"
4294
4345
  }, [
4295
4346
  o("button", {
4296
4347
  type: "button",
4297
4348
  class: f(["w-full flex items-center justify-between py-4 px-1 text-left transition-colors hover:bg-slate-50", { "font-semibold": s(m) }]),
4298
- onClick: (h) => r(m),
4349
+ onClick: (g) => r(m),
4299
4350
  "aria-expanded": s(m)
4300
4351
  }, [
4301
- o("span", Pn, [
4302
- v.icon ? (a(), C(S, {
4352
+ o("span", Yn, [
4353
+ b.icon ? (a(), $(D, {
4303
4354
  key: 0,
4304
- icon: v.icon,
4355
+ icon: b.icon,
4305
4356
  size: "md",
4306
4357
  animation: "none",
4307
4358
  class: "text-slate-500"
4308
4359
  }, null, 8, ["icon"])) : c("", !0),
4309
- o("span", Fn, b(v.title), 1)
4360
+ o("span", Wn, h(b.title), 1)
4310
4361
  ]),
4311
- A(S, {
4312
- icon: O(le),
4362
+ A(D, {
4363
+ icon: _(W),
4313
4364
  size: "md",
4314
4365
  animation: "none",
4315
4366
  class: f(["text-slate-400 transition-transform duration-200", { "rotate-180": s(m) }])
4316
4367
  }, null, 8, ["icon", "class"])
4317
- ], 10, Nn),
4368
+ ], 10, Kn),
4318
4369
  A(Y, {
4319
4370
  "enter-active-class": "transition-all duration-200 ease-out",
4320
4371
  "enter-from-class": "opacity-0 max-h-0",
@@ -4323,15 +4374,15 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4323
4374
  "leave-from-class": "opacity-100 max-h-96",
4324
4375
  "leave-to-class": "opacity-0 max-h-0"
4325
4376
  }, {
4326
- default: P(() => [
4327
- q(o("div", Hn, [
4328
- o("div", Rn, [
4329
- $(u.$slots, `item-${m}`, {}, () => [
4330
- j(b(v.content), 1)
4377
+ default: T(() => [
4378
+ q(o("div", Jn, [
4379
+ o("div", Qn, [
4380
+ V(u.$slots, `item-${m}`, {}, () => [
4381
+ j(h(b.content), 1)
4331
4382
  ])
4332
4383
  ])
4333
4384
  ], 512), [
4334
- [fe, s(m)]
4385
+ [ce, s(m)]
4335
4386
  ])
4336
4387
  ]),
4337
4388
  _: 2
@@ -4339,16 +4390,16 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4339
4390
  ]))), 128))
4340
4391
  ], 2));
4341
4392
  }
4342
- }, qn = {
4393
+ }, es = {
4343
4394
  key: 0,
4344
4395
  class: "absolute right-0 mt-2 w-56 bg-white border border-slate-200 rounded-2xl shadow-lg py-2 z-20"
4345
- }, fo = {
4396
+ }, Lo = {
4346
4397
  __name: "DXDropdown",
4347
4398
  setup(e) {
4348
- const t = D(!1), l = D(null), s = () => t.value = !t.value, r = () => t.value = !1, i = (d) => {
4399
+ const t = B(!1), l = B(null), s = () => t.value = !t.value, r = () => t.value = !1, i = (d) => {
4349
4400
  l.value && !l.value.contains(d.target) && r();
4350
4401
  };
4351
- return U(() => document.addEventListener("click", i)), J(() => document.removeEventListener("click", i)), (d, u) => (a(), n("div", {
4402
+ return U(() => document.addEventListener("click", i)), te(() => document.removeEventListener("click", i)), (d, u) => (a(), n("div", {
4352
4403
  class: "relative inline-block",
4353
4404
  ref_key: "root",
4354
4405
  ref: l,
@@ -4359,28 +4410,28 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4359
4410
  class: "dropdown-btn inline-flex items-center gap-2 px-3 py-2 rounded-xl border border-slate-200 text-sm font-semibold text-slate-700 hover:border-slate-300 transition",
4360
4411
  onClick: s
4361
4412
  }, [
4362
- $(d.$slots, "trigger", {}, () => [
4413
+ V(d.$slots, "trigger", {}, () => [
4363
4414
  u[0] || (u[0] = j("Меню", -1))
4364
4415
  ]),
4365
- A(S, {
4366
- icon: O(le),
4416
+ A(D, {
4417
+ icon: _(W),
4367
4418
  size: "sm",
4368
4419
  animation: "wiggle",
4369
4420
  class: "text-slate-400"
4370
4421
  }, null, 8, ["icon"])
4371
4422
  ]),
4372
- t.value ? (a(), n("div", qn, [
4373
- $(d.$slots, "default")
4423
+ t.value ? (a(), n("div", es, [
4424
+ V(d.$slots, "default")
4374
4425
  ])) : c("", !0)
4375
4426
  ], 512));
4376
4427
  }
4377
- }, En = {
4428
+ }, ts = {
4378
4429
  class: "bg-white border border-slate-100 rounded-3xl shadow-sm p-8 text-center space-y-3",
4379
4430
  "data-component": "DXEmptyState"
4380
- }, Gn = { class: "text-base font-semibold text-slate-900" }, Un = {
4431
+ }, ls = { class: "text-base font-semibold text-slate-900" }, as = {
4381
4432
  key: 0,
4382
4433
  class: "text-sm text-slate-600"
4383
- }, Kn = {
4434
+ }, ns = {
4384
4435
  __name: "DXEmptyState",
4385
4436
  props: {
4386
4437
  /** Иконка (компонент) */
@@ -4393,22 +4444,22 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4393
4444
  animated: { type: Boolean, default: !1 }
4394
4445
  },
4395
4446
  setup(e) {
4396
- return (t, l) => (a(), n("div", En, [
4397
- (a(), C(L(e.icon), {
4447
+ return (t, l) => (a(), n("div", ts, [
4448
+ (a(), $(O(e.icon), {
4398
4449
  class: f(["w-10 h-10 text-slate-500 mx-auto", e.animated && "animate-bounce-slow"])
4399
4450
  }, null, 8, ["class"])),
4400
- o("p", Gn, b(e.title), 1),
4401
- e.description ? (a(), n("p", Un, b(e.description), 1)) : c("", !0),
4402
- $(t.$slots, "action", {}, void 0, !0)
4451
+ o("p", ls, h(e.title), 1),
4452
+ e.description ? (a(), n("p", as, h(e.description), 1)) : c("", !0),
4453
+ V(t.$slots, "action", {}, void 0, !0)
4403
4454
  ]));
4404
4455
  }
4405
- }, po = /* @__PURE__ */ Z(Kn, [["__scopeId", "data-v-0d333d18"]]), Wn = ["data-variant"], Yn = { class: "flex items-center justify-between flex-shrink-0 mb-4 gap-4" }, Jn = { class: "text-lg font-semibold tracking-tight text-slate-900 flex-1" }, Qn = {
4456
+ }, _o = /* @__PURE__ */ N(ns, [["__scopeId", "data-v-0d333d18"]]), ss = ["data-variant"], os = { class: "flex items-center justify-between flex-shrink-0 mb-4 gap-4" }, rs = { class: "text-lg font-semibold tracking-tight text-slate-900 flex-1" }, is = {
4406
4457
  key: 0,
4407
4458
  class: "flex items-center gap-1 rounded-xl border border-slate-200 bg-slate-50 p-1"
4408
- }, es = ["title", "onClick"], ts = { class: "text-slate-700 overflow-y-auto flex-1 min-h-0" }, ls = {
4459
+ }, ds = ["title", "onClick"], us = { class: "text-slate-700 overflow-y-auto flex-1 min-h-0" }, cs = {
4409
4460
  key: 0,
4410
4461
  class: "flex justify-end gap-2 flex-shrink-0 mt-4 pt-4 border-t border-slate-200"
4411
- }, as = {
4462
+ }, ms = {
4412
4463
  __name: "DXModal",
4413
4464
  props: {
4414
4465
  /** Открыто/закрыто */
@@ -4425,15 +4476,15 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4425
4476
  emits: ["close", "opened", "closed", "update:variant"],
4426
4477
  setup(e, { emit: t }) {
4427
4478
  const l = e, s = t, r = [
4428
- { value: "modal", label: "Модальное окно", icon: it },
4429
- { value: "fullscreen", label: "На весь экран", icon: qe },
4430
- { value: "sidebar-right", label: "Боковая панель", icon: mt },
4431
- { value: "half-right", label: "Половина справа", icon: ot }
4479
+ { value: "modal", label: "Модальное окно", icon: vt },
4480
+ { value: "fullscreen", label: "На весь экран", icon: Ke },
4481
+ { value: "sidebar-right", label: "Боковая панель", icon: xt },
4482
+ { value: "half-right", label: "Половина справа", icon: ft }
4432
4483
  ], i = () => {
4433
4484
  l.closable && l.variant !== "half-right" && s("close");
4434
- }, d = (h) => {
4435
- s("update:variant", h);
4436
- }, u = g(() => {
4485
+ }, d = (g) => {
4486
+ s("update:variant", g);
4487
+ }, u = p(() => {
4437
4488
  switch (l.variant) {
4438
4489
  case "sidebar-right":
4439
4490
  case "half-right":
@@ -4441,7 +4492,7 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4441
4492
  default:
4442
4493
  return "fade-scale";
4443
4494
  }
4444
- }), p = g(() => {
4495
+ }), v = p(() => {
4445
4496
  switch (l.variant) {
4446
4497
  case "fullscreen":
4447
4498
  return "fixed inset-0 z-50 bg-slate-900/40 backdrop-blur-sm flex items-center justify-center p-0";
@@ -4452,19 +4503,19 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4452
4503
  default:
4453
4504
  return "fixed inset-0 z-50 bg-slate-900/40 backdrop-blur-sm flex items-center justify-center px-4 py-4 overflow-y-auto";
4454
4505
  }
4455
- }), v = g(() => {
4456
- const h = "bg-white shadow-2xl flex flex-col";
4506
+ }), b = p(() => {
4507
+ const g = "bg-white shadow-2xl flex flex-col";
4457
4508
  switch (l.variant) {
4458
4509
  case "fullscreen":
4459
- return `${h} w-full h-full p-8`;
4510
+ return `${g} w-full h-full p-8`;
4460
4511
  case "sidebar-right":
4461
- return `${h} h-full w-full max-w-md p-6 border-l border-slate-200`;
4512
+ return `${g} h-full w-full max-w-md p-6 border-l border-slate-200`;
4462
4513
  case "half-right":
4463
- return `${h} h-full w-full p-6 border-l border-slate-200 pointer-events-auto`;
4514
+ return `${g} h-full w-full p-6 border-l border-slate-200 pointer-events-auto`;
4464
4515
  default:
4465
- return `${h} rounded-2xl w-full max-h-[90vh] p-6 my-auto ${m.value}`;
4516
+ return `${g} rounded-2xl w-full max-h-[90vh] p-6 my-auto ${m.value}`;
4466
4517
  }
4467
- }), m = g(() => {
4518
+ }), m = p(() => {
4468
4519
  if (l.variant !== "modal") return "";
4469
4520
  switch (l.width) {
4470
4521
  case "sm":
@@ -4477,90 +4528,422 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4477
4528
  return "max-w-xl";
4478
4529
  }
4479
4530
  });
4480
- return (h, y) => (a(), C(pe, { to: "body" }, [
4531
+ return (g, w) => (a(), $(ge, { to: "body" }, [
4481
4532
  A(Y, {
4482
4533
  name: u.value,
4483
- onAfterEnter: y[1] || (y[1] = (x) => h.$emit("opened")),
4484
- onAfterLeave: y[2] || (y[2] = (x) => h.$emit("closed"))
4534
+ onAfterEnter: w[1] || (w[1] = (y) => g.$emit("opened")),
4535
+ onAfterLeave: w[2] || (w[2] = (y) => g.$emit("closed"))
4485
4536
  }, {
4486
- default: P(() => [
4537
+ default: T(() => [
4487
4538
  e.open ? (a(), n("div", {
4488
4539
  key: 0,
4489
- class: f(p.value),
4490
- onClick: N(i, ["self"]),
4540
+ class: f(v.value),
4541
+ onClick: P(i, ["self"]),
4491
4542
  "data-component": "DXModal",
4492
4543
  "data-variant": e.variant
4493
4544
  }, [
4494
4545
  o("div", {
4495
- class: f(v.value)
4546
+ class: f(b.value)
4496
4547
  }, [
4497
- o("div", Yn, [
4498
- o("h3", Jn, [
4499
- $(h.$slots, "title", {}, () => [
4500
- y[3] || (y[3] = j("Диалог", -1))
4548
+ o("div", os, [
4549
+ o("h3", rs, [
4550
+ V(g.$slots, "title", {}, () => [
4551
+ w[3] || (w[3] = j("Диалог", -1))
4501
4552
  ], !0)
4502
4553
  ]),
4503
- e.showModeSwitcher ? (a(), n("div", Qn, [
4504
- (a(), n(M, null, _(r, (x) => o("button", {
4505
- key: x.value,
4554
+ e.showModeSwitcher ? (a(), n("div", is, [
4555
+ (a(), n(M, null, L(r, (y) => o("button", {
4556
+ key: y.value,
4506
4557
  type: "button",
4507
- class: f(["rounded-lg p-1.5 transition-colors", e.variant === x.value ? "bg-white text-slate-900 shadow-sm" : "text-slate-400 hover:text-slate-600 hover:bg-white/50"]),
4508
- title: x.label,
4509
- onClick: (V) => d(x.value)
4558
+ class: f(["rounded-lg p-1.5 transition-colors", e.variant === y.value ? "bg-white text-slate-900 shadow-sm" : "text-slate-400 hover:text-slate-600 hover:bg-white/50"]),
4559
+ title: y.label,
4560
+ onClick: (S) => d(y.value)
4510
4561
  }, [
4511
- (a(), C(L(x.icon), { class: "h-4 w-4" }))
4512
- ], 10, es)), 64))
4562
+ (a(), $(O(y.icon), { class: "h-4 w-4" }))
4563
+ ], 10, ds)), 64))
4513
4564
  ])) : c("", !0),
4514
- e.closable ? (a(), C(ce, {
4565
+ e.closable ? (a(), $(ve, {
4515
4566
  key: 1,
4516
4567
  size: "md",
4517
4568
  variant: "default",
4518
- onClick: y[0] || (y[0] = (x) => h.$emit("close"))
4569
+ onClick: w[0] || (w[0] = (y) => g.$emit("close"))
4519
4570
  })) : c("", !0)
4520
4571
  ]),
4521
- o("div", ts, [
4522
- $(h.$slots, "default", {}, void 0, !0)
4572
+ o("div", us, [
4573
+ V(g.$slots, "default", {}, void 0, !0)
4523
4574
  ]),
4524
- h.$slots.actions ? (a(), n("div", ls, [
4525
- $(h.$slots, "actions", {}, void 0, !0)
4575
+ g.$slots.actions ? (a(), n("div", cs, [
4576
+ V(g.$slots, "actions", {}, void 0, !0)
4526
4577
  ])) : c("", !0)
4527
4578
  ], 2)
4528
- ], 10, Wn)) : c("", !0)
4579
+ ], 10, ss)) : c("", !0)
4529
4580
  ]),
4530
4581
  _: 3
4531
4582
  }, 8, ["name"])
4532
4583
  ]));
4533
4584
  }
4534
- }, go = /* @__PURE__ */ Z(as, [["__scopeId", "data-v-d02ee1db"]]), ns = {
4585
+ }, Oo = /* @__PURE__ */ N(ms, [["__scopeId", "data-v-d02ee1db"]]), fs = { "data-component": "DXSidebarMenuItem" }, ps = { class: "flex items-center gap-3 flex-1" }, vs = {
4586
+ key: 1,
4587
+ class: "flex-1 text-sm font-medium text-left"
4588
+ }, hs = { key: 1 }, bs = { class: "flex items-center gap-3 flex-1" }, gs = {
4589
+ key: 1,
4590
+ class: "flex-1 text-sm font-medium text-left"
4591
+ }, xs = { class: "overflow-hidden" }, ys = { class: "pl-11 py-1 space-y-1" }, ws = {
4592
+ __name: "DXSidebarMenuItem",
4593
+ props: {
4594
+ item: {
4595
+ type: Object,
4596
+ required: !0
4597
+ },
4598
+ active: {
4599
+ type: Boolean,
4600
+ default: !1
4601
+ },
4602
+ compact: {
4603
+ type: Boolean,
4604
+ default: !1
4605
+ }
4606
+ },
4607
+ emits: ["click", "child-click"],
4608
+ setup(e, { emit: t }) {
4609
+ const l = e, s = t, r = B(!1), i = Q("hasRouter", !1), d = () => {
4610
+ r.value = !r.value;
4611
+ }, u = p(() => l.item.to && i ? "router-link" : l.item.href ? "a" : "button"), v = (S) => S.to && i ? "router-link" : S.href ? "a" : "button", b = p(() => [
4612
+ "w-full flex items-center gap-3 px-4 py-2.5 rounded-xl transition-all duration-200 text-left",
4613
+ l.active ? "bg-slate-900 text-white shadow-lg shadow-slate-900/20" : "text-slate-600 hover:bg-slate-100 hover:text-slate-900",
4614
+ l.item.disabled && "opacity-50 cursor-not-allowed",
4615
+ l.compact && "justify-center px-2"
4616
+ ]), m = p(() => [
4617
+ "flex-shrink-0",
4618
+ l.active ? "text-white" : "text-slate-400"
4619
+ ]), g = (S) => [
4620
+ "w-full flex items-center px-3 py-2 text-sm rounded-lg transition-colors text-left",
4621
+ S.active ? "bg-slate-100 text-slate-900 font-medium" : "text-slate-600 hover:bg-slate-50 hover:text-slate-900"
4622
+ ], w = (S) => {
4623
+ if (l.item.disabled) {
4624
+ S.preventDefault();
4625
+ return;
4626
+ }
4627
+ s("click", l.item, S);
4628
+ }, y = (S) => {
4629
+ S.disabled || s("child-click", S);
4630
+ };
4631
+ return (S, Z) => (a(), n("div", fs, [
4632
+ e.item.children ? (a(), n("div", hs, [
4633
+ o("button", {
4634
+ type: "button",
4635
+ class: f(b.value),
4636
+ onClick: d
4637
+ }, [
4638
+ o("div", bs, [
4639
+ e.item.icon ? (a(), $(D, {
4640
+ key: 0,
4641
+ icon: e.item.icon,
4642
+ size: "md",
4643
+ animation: "scale",
4644
+ class: f(m.value)
4645
+ }, null, 8, ["icon", "class"])) : c("", !0),
4646
+ e.compact ? c("", !0) : (a(), n("span", gs, h(e.item.label), 1))
4647
+ ]),
4648
+ e.compact ? c("", !0) : (a(), $(D, {
4649
+ key: 0,
4650
+ icon: _(W),
4651
+ size: "sm",
4652
+ animation: "none",
4653
+ class: f(["text-slate-400 transition-transform duration-200", { "rotate-180": r.value }])
4654
+ }, null, 8, ["icon", "class"]))
4655
+ ], 2),
4656
+ A(Y, {
4657
+ "enter-active-class": "transition-all duration-200 ease-out",
4658
+ "enter-from-class": "opacity-0 max-h-0",
4659
+ "enter-to-class": "opacity-100 max-h-96",
4660
+ "leave-active-class": "transition-all duration-200 ease-in",
4661
+ "leave-from-class": "opacity-100 max-h-96",
4662
+ "leave-to-class": "opacity-0 max-h-0"
4663
+ }, {
4664
+ default: T(() => [
4665
+ q(o("div", xs, [
4666
+ o("div", ys, [
4667
+ (a(!0), n(M, null, L(e.item.children, (z, C) => (a(), $(O(v(z)), {
4668
+ key: C,
4669
+ to: z.to,
4670
+ href: z.href,
4671
+ class: f(g(z)),
4672
+ onClick: (x) => y(z)
4673
+ }, {
4674
+ default: T(() => [
4675
+ j(h(z.label) + " ", 1),
4676
+ z.badge ? (a(), $(ie, {
4677
+ key: 0,
4678
+ variant: z.badgeVariant || "info",
4679
+ size: "sm",
4680
+ class: "ml-auto"
4681
+ }, {
4682
+ default: T(() => [
4683
+ j(h(z.badge), 1)
4684
+ ]),
4685
+ _: 2
4686
+ }, 1032, ["variant"])) : c("", !0)
4687
+ ]),
4688
+ _: 2
4689
+ }, 1032, ["to", "href", "class", "onClick"]))), 128))
4690
+ ])
4691
+ ], 512), [
4692
+ [ce, r.value && !e.compact]
4693
+ ])
4694
+ ]),
4695
+ _: 1
4696
+ })
4697
+ ])) : (a(), $(O(u.value), {
4698
+ key: 0,
4699
+ to: e.item.to,
4700
+ href: e.item.href,
4701
+ class: f(b.value),
4702
+ onClick: w
4703
+ }, {
4704
+ default: T(() => [
4705
+ o("div", ps, [
4706
+ e.item.icon ? (a(), $(D, {
4707
+ key: 0,
4708
+ icon: e.item.icon,
4709
+ size: "md",
4710
+ animation: "scale",
4711
+ class: f(m.value)
4712
+ }, null, 8, ["icon", "class"])) : c("", !0),
4713
+ e.compact ? c("", !0) : (a(), n("span", vs, h(e.item.label), 1))
4714
+ ]),
4715
+ e.item.badge && !e.compact ? (a(), $(ie, {
4716
+ key: 0,
4717
+ variant: e.item.badgeVariant || "info",
4718
+ size: "sm"
4719
+ }, {
4720
+ default: T(() => [
4721
+ j(h(e.item.badge), 1)
4722
+ ]),
4723
+ _: 1
4724
+ }, 8, ["variant"])) : c("", !0)
4725
+ ]),
4726
+ _: 1
4727
+ }, 8, ["to", "href", "class"]))
4728
+ ]));
4729
+ }
4730
+ }, ks = /* @__PURE__ */ N(ws, [["__scopeId", "data-v-ddd1087c"]]), $s = ["data-compact"], Cs = {
4731
+ key: 0,
4732
+ class: "text-lg font-bold text-slate-900"
4733
+ }, Ss = ["title"], Vs = {
4734
+ key: 1,
4735
+ class: "px-4 pb-4"
4736
+ }, Ds = {
4737
+ key: 0,
4738
+ class: "px-4 py-2 text-xs font-semibold text-slate-400 uppercase tracking-wider"
4739
+ }, zs = {
4740
+ __name: "DXSidebarMenu",
4741
+ props: {
4742
+ /** Заголовок сайдбара */
4743
+ title: {
4744
+ type: String,
4745
+ default: ""
4746
+ },
4747
+ /** Секции меню: [{ title?, items: [{ label, icon?, to?, href?, badge?, children? }] }] */
4748
+ sections: {
4749
+ type: Array,
4750
+ required: !0
4751
+ },
4752
+ /** Текущий активный элемент (path или id) */
4753
+ activeItem: {
4754
+ type: String,
4755
+ default: ""
4756
+ },
4757
+ /** Компактный режим (только иконки) */
4758
+ compact: {
4759
+ type: Boolean,
4760
+ default: !1
4761
+ },
4762
+ /** Можно ли сворачивать */
4763
+ collapsible: {
4764
+ type: Boolean,
4765
+ default: !0
4766
+ },
4767
+ /** Показывать поиск */
4768
+ searchable: {
4769
+ type: Boolean,
4770
+ default: !1
4771
+ },
4772
+ /** Ширина: sm | md | lg | full */
4773
+ width: {
4774
+ type: String,
4775
+ default: "md",
4776
+ validator: (e) => ["sm", "md", "lg", "full"].includes(e)
4777
+ },
4778
+ /** Фиксированная позиция */
4779
+ fixed: {
4780
+ type: Boolean,
4781
+ default: !1
4782
+ },
4783
+ /** Показывать бордер справа */
4784
+ bordered: {
4785
+ type: Boolean,
4786
+ default: !0
4787
+ }
4788
+ },
4789
+ emits: ["item-click", "update:compact"],
4790
+ setup(e, { emit: t }) {
4791
+ const l = e, s = t, r = B(""), i = B(l.compact), d = p(() => i.value);
4792
+ let u = !1;
4793
+ U(() => {
4794
+ try {
4795
+ u = !!(window != null && window.$router) || !1;
4796
+ } catch {
4797
+ u = !1;
4798
+ }
4799
+ }), ee("hasRouter", u);
4800
+ const v = {
4801
+ sm: "w-64",
4802
+ md: "w-80",
4803
+ lg: "w-96",
4804
+ full: "w-full"
4805
+ }, b = p(() => [
4806
+ "flex flex-col bg-white transition-all duration-300",
4807
+ i.value ? "w-20" : v[l.width],
4808
+ l.fixed && "fixed top-0 left-0 h-screen",
4809
+ l.bordered && "border-r border-slate-200",
4810
+ "shadow-sm"
4811
+ ]), m = p(() => [
4812
+ "flex items-center gap-2 border-b border-slate-200 flex-shrink-0",
4813
+ i.value ? "justify-center px-2 py-3" : "px-4 py-5"
4814
+ ]), g = p(() => [
4815
+ "flex-1 overflow-y-auto py-4 px-3 space-y-6",
4816
+ i.value && "px-2"
4817
+ ]), w = p(() => [
4818
+ "px-4 py-4 border-t border-slate-200 flex-shrink-0",
4819
+ i.value && "px-2"
4820
+ ]), y = p(() => {
4821
+ if (!r.value.trim()) return l.sections;
4822
+ const C = r.value.toLowerCase();
4823
+ return l.sections.map((x) => ({
4824
+ ...x,
4825
+ items: x.items.filter((k) => {
4826
+ var R, oe;
4827
+ const I = (R = k.label) == null ? void 0 : R.toLowerCase().includes(C), X = (oe = k.children) == null ? void 0 : oe.some(
4828
+ (be) => {
4829
+ var re;
4830
+ return (re = be.label) == null ? void 0 : re.toLowerCase().includes(C);
4831
+ }
4832
+ );
4833
+ return I || X;
4834
+ })
4835
+ })).filter((x) => x.items.length > 0);
4836
+ }), S = (C) => l.activeItem ? C.to === l.activeItem || C.id === l.activeItem ? !0 : C.children ? C.children.some(
4837
+ (x) => x.to === l.activeItem || x.id === l.activeItem
4838
+ ) : !1 : !1, Z = () => {
4839
+ i.value = !i.value, s("update:compact", i.value);
4840
+ }, z = (C, x) => {
4841
+ s("item-click", C, x);
4842
+ };
4843
+ return (C, x) => (a(), n("aside", {
4844
+ class: f(b.value),
4845
+ "data-component": "DXSidebarMenu",
4846
+ "data-compact": d.value
4847
+ }, [
4848
+ C.$slots.header || e.title || e.collapsible ? (a(), n("div", {
4849
+ key: 0,
4850
+ class: f(m.value)
4851
+ }, [
4852
+ d.value ? c("", !0) : V(C.$slots, "header", { key: 0 }, () => [
4853
+ e.title ? (a(), n("h2", Cs, h(e.title), 1)) : c("", !0)
4854
+ ], !0),
4855
+ e.collapsible ? (a(), n("button", {
4856
+ key: 1,
4857
+ type: "button",
4858
+ class: f(["p-2 rounded-lg hover:bg-slate-100 transition-colors", { "ml-auto": !d.value }]),
4859
+ onClick: Z,
4860
+ title: d.value ? "Развернуть" : "Свернуть"
4861
+ }, [
4862
+ A(D, {
4863
+ icon: d.value ? _(et) : _(Qe),
4864
+ size: "md",
4865
+ animation: "scale",
4866
+ class: "text-slate-600"
4867
+ }, null, 8, ["icon"])
4868
+ ], 10, Ss)) : c("", !0)
4869
+ ], 2)) : c("", !0),
4870
+ e.searchable && !d.value ? (a(), n("div", Vs, [
4871
+ A(Ot, {
4872
+ modelValue: r.value,
4873
+ "onUpdate:modelValue": x[0] || (x[0] = (k) => r.value = k),
4874
+ placeholder: "Поиск...",
4875
+ size: "sm"
4876
+ }, {
4877
+ prefix: T(() => [
4878
+ A(D, {
4879
+ icon: _(dt),
4880
+ size: "sm",
4881
+ class: "text-slate-400"
4882
+ }, null, 8, ["icon"])
4883
+ ]),
4884
+ _: 1
4885
+ }, 8, ["modelValue"])
4886
+ ])) : c("", !0),
4887
+ o("nav", {
4888
+ class: f(g.value)
4889
+ }, [
4890
+ (a(!0), n(M, null, L(y.value, (k, I) => (a(), n("div", {
4891
+ key: I,
4892
+ class: "space-y-1"
4893
+ }, [
4894
+ k.title && !d.value ? (a(), n("div", Ds, h(k.title), 1)) : c("", !0),
4895
+ k.title && d.value ? (a(), $(Ct, {
4896
+ key: 1,
4897
+ spacing: "sm"
4898
+ })) : c("", !0),
4899
+ (a(!0), n(M, null, L(k.items, (X, R) => (a(), $(ks, {
4900
+ key: R,
4901
+ item: X,
4902
+ active: S(X),
4903
+ compact: d.value,
4904
+ onClick: z,
4905
+ onChildClick: z
4906
+ }, null, 8, ["item", "active", "compact"]))), 128))
4907
+ ]))), 128))
4908
+ ], 2),
4909
+ C.$slots.footer && !d.value ? (a(), n("div", {
4910
+ key: 2,
4911
+ class: f(w.value)
4912
+ }, [
4913
+ V(C.$slots, "footer", {}, void 0, !0)
4914
+ ], 2)) : c("", !0)
4915
+ ], 10, $s));
4916
+ }
4917
+ }, Zo = /* @__PURE__ */ N(zs, [["__scopeId", "data-v-0cacd444"]]), Bs = {
4535
4918
  class: "border border-slate-200 rounded-2xl overflow-hidden",
4536
4919
  "data-component": "DXTable"
4537
- }, ss = { class: "min-w-full divide-y divide-slate-200" }, os = { class: "bg-slate-50" }, rs = { class: "divide-y divide-slate-200 bg-white" }, vo = {
4920
+ }, Xs = { class: "min-w-full divide-y divide-slate-200" }, Is = { class: "bg-slate-50" }, As = { class: "divide-y divide-slate-200 bg-white" }, To = {
4538
4921
  __name: "DXTable",
4539
4922
  props: {
4540
4923
  /** Массив заголовков колонок */
4541
4924
  headers: { type: Array, default: () => [] }
4542
4925
  },
4543
4926
  setup(e) {
4544
- return (t, l) => (a(), n("div", ns, [
4545
- o("table", ss, [
4546
- o("thead", os, [
4927
+ return (t, l) => (a(), n("div", Bs, [
4928
+ o("table", Xs, [
4929
+ o("thead", Is, [
4547
4930
  o("tr", null, [
4548
- (a(!0), n(M, null, _(e.headers, (s) => (a(), n("th", {
4931
+ (a(!0), n(M, null, L(e.headers, (s) => (a(), n("th", {
4549
4932
  key: s,
4550
4933
  class: "px-4 py-3 text-left text-xs font-semibold text-slate-600 uppercase tracking-wide"
4551
- }, b(s), 1))), 128))
4934
+ }, h(s), 1))), 128))
4552
4935
  ])
4553
4936
  ]),
4554
- o("tbody", rs, [
4555
- $(t.$slots, "default")
4937
+ o("tbody", As, [
4938
+ V(t.$slots, "default")
4556
4939
  ])
4557
4940
  ])
4558
4941
  ]));
4559
4942
  }
4560
- }, is = {
4943
+ }, js = {
4561
4944
  class: "flex flex-wrap gap-2",
4562
4945
  "data-component": "DXTabs"
4563
- }, ds = ["onClick"], us = { class: "flex items-center gap-2" }, bo = {
4946
+ }, Ms = ["onClick"], Ls = { class: "flex items-center gap-2" }, No = {
4564
4947
  __name: "DXTabs",
4565
4948
  props: {
4566
4949
  /** Текущее значение (v-model) */
@@ -4575,91 +4958,91 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4575
4958
  emits: ["update:modelValue"],
4576
4959
  setup(e) {
4577
4960
  const t = e, l = (s) => s.iconAnimation ? s.iconAnimation : t.animateActiveOnly ? t.modelValue === s.value ? t.iconAnimation : "none" : t.iconAnimation;
4578
- return (s, r) => (a(), n("div", is, [
4579
- (a(!0), n(M, null, _(e.tabs, (i) => (a(), n("button", {
4961
+ return (s, r) => (a(), n("div", js, [
4962
+ (a(!0), n(M, null, L(e.tabs, (i) => (a(), n("button", {
4580
4963
  key: i.value,
4581
4964
  class: f(["tab-btn px-3 py-2 rounded-xl text-sm font-semibold border transition", e.modelValue === i.value ? "bg-slate-800 text-white border-slate-800" : "border-slate-200 text-slate-700 hover:border-slate-300"]),
4582
4965
  onClick: (d) => s.$emit("update:modelValue", i.value)
4583
4966
  }, [
4584
- o("span", us, [
4585
- i.icon ? (a(), C(S, {
4967
+ o("span", Ls, [
4968
+ i.icon ? (a(), $(D, {
4586
4969
  key: 0,
4587
4970
  icon: i.icon,
4588
4971
  size: "sm",
4589
4972
  animation: l(i)
4590
4973
  }, null, 8, ["icon", "animation"])) : c("", !0),
4591
- o("span", null, b(i.label), 1),
4974
+ o("span", null, h(i.label), 1),
4592
4975
  i.count !== void 0 ? (a(), n("span", {
4593
4976
  key: 1,
4594
4977
  class: f(["inline-flex items-center justify-center min-w-[24px] px-2 py-1 text-[11px] rounded-full", e.modelValue === i.value ? "bg-white/20 text-white" : "bg-slate-100 text-slate-700"])
4595
- }, b(i.count), 3)) : c("", !0)
4978
+ }, h(i.count), 3)) : c("", !0)
4596
4979
  ])
4597
- ], 10, ds))), 128))
4980
+ ], 10, Ms))), 128))
4598
4981
  ]));
4599
4982
  }
4600
- }, ho = {
4983
+ }, Po = {
4601
4984
  type: String,
4602
4985
  default: "md",
4603
4986
  validator: (e) => ["xs", "sm", "md", "lg", "xl"].includes(e)
4604
- }, xo = {
4987
+ }, Ro = {
4605
4988
  type: String,
4606
4989
  default: "info",
4607
4990
  validator: (e) => ["info", "success", "warning", "danger"].includes(e)
4608
- }, yo = {
4991
+ }, qo = {
4609
4992
  type: String,
4610
4993
  default: "primary",
4611
4994
  validator: (e) => ["primary", "ghost", "danger", "success", "warning", "outline"].includes(e)
4612
- }, wo = {
4995
+ }, Ho = {
4613
4996
  type: String,
4614
4997
  default: "none",
4615
4998
  validator: (e) => ["none", "wiggle", "scale", "rotate"].includes(e)
4616
- }, ko = {
4999
+ }, Fo = {
4617
5000
  type: Boolean,
4618
5001
  default: !1
4619
- }, $o = {
5002
+ }, Eo = {
4620
5003
  type: String,
4621
5004
  default: ""
4622
- }, Co = {
5005
+ }, Go = {
4623
5006
  type: String,
4624
5007
  default: ""
4625
- }, So = {
5008
+ }, Uo = {
4626
5009
  type: String,
4627
5010
  default: ""
4628
- }, Vo = {
5011
+ }, Ko = {
4629
5012
  type: String,
4630
5013
  default: ""
4631
- }, se = {
5014
+ }, ue = {
4632
5015
  favorite: {
4633
- activeIcon: Ve,
4634
- inactiveIcon: tt,
5016
+ activeIcon: Xe,
5017
+ inactiveIcon: rt,
4635
5018
  activeVariant: "danger",
4636
5019
  inactiveVariant: "ghost",
4637
5020
  iconAnimation: "scale"
4638
5021
  },
4639
5022
  bookmark: {
4640
- activeIcon: $e,
4641
- inactiveIcon: Ge,
5023
+ activeIcon: De,
5024
+ inactiveIcon: We,
4642
5025
  activeVariant: "warning",
4643
5026
  inactiveVariant: "ghost",
4644
5027
  iconAnimation: "scale"
4645
5028
  },
4646
5029
  star: {
4647
- activeIcon: Ie,
4648
- inactiveIcon: dt,
5030
+ activeIcon: Le,
5031
+ inactiveIcon: ht,
4649
5032
  activeVariant: "warning",
4650
5033
  inactiveVariant: "ghost",
4651
5034
  iconAnimation: "scale"
4652
5035
  },
4653
5036
  notifications: {
4654
- activeIcon: ke,
4655
- inactiveIcon: Ee,
5037
+ activeIcon: Ve,
5038
+ inactiveIcon: Ye,
4656
5039
  activeVariant: "primary",
4657
5040
  inactiveVariant: "ghost",
4658
5041
  iconAnimation: "wiggle"
4659
5042
  },
4660
5043
  visibility: {
4661
- activeIcon: ae,
4662
- inactiveIcon: Se,
5044
+ activeIcon: se,
5045
+ inactiveIcon: Be,
4663
5046
  activeLabel: "Visible",
4664
5047
  inactiveLabel: "Hidden",
4665
5048
  activeVariant: "success",
@@ -4667,8 +5050,8 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4667
5050
  iconAnimation: "scale"
4668
5051
  },
4669
5052
  lock: {
4670
- activeIcon: De,
4671
- inactiveIcon: lt,
5053
+ activeIcon: Ie,
5054
+ inactiveIcon: it,
4672
5055
  activeLabel: "Locked",
4673
5056
  inactiveLabel: "Unlocked",
4674
5057
  activeVariant: "danger",
@@ -4676,8 +5059,8 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4676
5059
  iconAnimation: "rotate"
4677
5060
  },
4678
5061
  theme: {
4679
- activeIcon: ze,
4680
- inactiveIcon: ut,
5062
+ activeIcon: Ae,
5063
+ inactiveIcon: bt,
4681
5064
  activeLabel: "Dark",
4682
5065
  inactiveLabel: "Light",
4683
5066
  activeVariant: "primary",
@@ -4685,15 +5068,15 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4685
5068
  iconAnimation: "rotate"
4686
5069
  },
4687
5070
  sound: {
4688
- activeIcon: Xe,
4689
- inactiveIcon: rt,
5071
+ activeIcon: Me,
5072
+ inactiveIcon: pt,
4690
5073
  activeVariant: "danger",
4691
5074
  inactiveVariant: "primary",
4692
5075
  iconAnimation: "scale"
4693
5076
  },
4694
5077
  playPause: {
4695
- activeIcon: Be,
4696
- inactiveIcon: nt,
5078
+ activeIcon: je,
5079
+ inactiveIcon: ct,
4697
5080
  activeLabel: "Pause",
4698
5081
  inactiveLabel: "Play",
4699
5082
  activeVariant: "warning",
@@ -4701,84 +5084,86 @@ const xl = ["data-variant"], yl = { class: "flex-1" }, Hs = {
4701
5084
  iconAnimation: "scale"
4702
5085
  }
4703
5086
  };
4704
- function Do(e) {
4705
- return se[e] || se.favorite;
5087
+ function Yo(e) {
5088
+ return ue[e] || ue.favorite;
4706
5089
  }
4707
5090
  export {
4708
- mo as DXAccordion,
4709
- Gs as DXActionButtons,
4710
- Us as DXAlert,
4711
- Cs as DXAvatar,
4712
- Ss as DXBadge,
4713
- vs as DXBlockquote,
4714
- $s as DXBox,
4715
- Ks as DXBreadcrumb,
4716
- Vs as DXButton,
4717
- Ws as DXButtonGroup,
4718
- Ds as DXCard,
4719
- zs as DXCheckbox,
4720
- ce as DXCloseButton,
4721
- gs as DXCode,
4722
- Ys as DXComboBox,
4723
- hs as DXContainer,
4724
- Js as DXCopyField,
4725
- Qs as DXDatePicker,
4726
- Bs as DXDivider,
4727
- fo as DXDropdown,
4728
- Xs as DXDropdownItem,
4729
- po as DXEmptyState,
4730
- eo as DXFileUpload,
4731
- to as DXFilterGroup,
4732
- ys as DXFlex,
4733
- lo as DXFormControl,
4734
- xs as DXGrid,
4735
- ms as DXHeading,
4736
- S as DXIcon,
4737
- Is as DXInput,
4738
- As as DXInputAddon,
4739
- ao as DXInputGroup,
4740
- no as DXInputMask,
4741
- ps as DXLabel,
4742
- bs as DXList,
4743
- js as DXLoader,
4744
- go as DXModal,
4745
- so as DXPagination,
4746
- oo as DXPasswordInput,
4747
- Ms as DXProgress,
4748
- Ls as DXRadio,
4749
- ro as DXRadioCard,
4750
- io as DXRadioGroup,
4751
- uo as DXSearchSelect,
4752
- co as DXSegmentedControl,
4753
- _s as DXSelect,
4754
- Os as DXSkeleton,
4755
- Ts as DXSlider,
4756
- ks as DXSpacer,
4757
- ws as DXStack,
4758
- vo as DXTable,
4759
- bo as DXTabs,
4760
- Zs as DXTags,
4761
- fs as DXText,
4762
- Ns as DXTextarea,
4763
- Hs as DXToast,
4764
- Rs as DXToggle,
4765
- qs as DXToggleButton,
4766
- Es as DXTooltip,
4767
- ne as DXValidationIcon,
4768
- se as TOGGLE_PRESETS,
4769
- F as VARIANT_CONFIGS,
4770
- yo as buttonVariantProp,
4771
- ko as disabledProp,
4772
- So as errorProp,
4773
- Vo as helperProp,
4774
- wo as iconAnimationProp,
4775
- $o as labelProp,
4776
- Co as placeholderProp,
4777
- ho as sizeProp,
4778
- me as useComponentSize,
4779
- Do as useTogglePreset,
4780
- Ps as useVariantClasses,
4781
- hl as useVariantConfig,
4782
- Fs as useVariantIcon,
4783
- xo as variantProp
5091
+ Mo as DXAccordion,
5092
+ ho as DXActionButtons,
5093
+ bo as DXAlert,
5094
+ Ks as DXAvatar,
5095
+ ie as DXBadge,
5096
+ Ps as DXBlockquote,
5097
+ Us as DXBox,
5098
+ go as DXBreadcrumb,
5099
+ Ys as DXButton,
5100
+ xo as DXButtonGroup,
5101
+ Ws as DXCard,
5102
+ Js as DXCheckbox,
5103
+ ve as DXCloseButton,
5104
+ Ns as DXCode,
5105
+ yo as DXComboBox,
5106
+ qs as DXContainer,
5107
+ wo as DXCopyField,
5108
+ ko as DXDatePicker,
5109
+ Ct as DXDivider,
5110
+ Lo as DXDropdown,
5111
+ Qs as DXDropdownItem,
5112
+ _o as DXEmptyState,
5113
+ $o as DXFileUpload,
5114
+ Co as DXFilterGroup,
5115
+ Fs as DXFlex,
5116
+ So as DXFormControl,
5117
+ Hs as DXGrid,
5118
+ Os as DXHeading,
5119
+ D as DXIcon,
5120
+ Ot as DXInput,
5121
+ eo as DXInputAddon,
5122
+ Vo as DXInputGroup,
5123
+ Do as DXInputMask,
5124
+ Ts as DXLabel,
5125
+ Rs as DXList,
5126
+ to as DXLoader,
5127
+ Oo as DXModal,
5128
+ zo as DXPagination,
5129
+ Bo as DXPasswordInput,
5130
+ lo as DXProgress,
5131
+ ao as DXRadio,
5132
+ Xo as DXRadioCard,
5133
+ Io as DXRadioGroup,
5134
+ Ao as DXSearchSelect,
5135
+ jo as DXSegmentedControl,
5136
+ no as DXSelect,
5137
+ Zo as DXSidebarMenu,
5138
+ ks as DXSidebarMenuItem,
5139
+ so as DXSkeleton,
5140
+ oo as DXSlider,
5141
+ Gs as DXSpacer,
5142
+ Es as DXStack,
5143
+ To as DXTable,
5144
+ No as DXTabs,
5145
+ ro as DXTags,
5146
+ Zs as DXText,
5147
+ io as DXTextarea,
5148
+ mo as DXToast,
5149
+ fo as DXToggle,
5150
+ po as DXToggleButton,
5151
+ vo as DXTooltip,
5152
+ de as DXValidationIcon,
5153
+ ue as TOGGLE_PRESETS,
5154
+ H as VARIANT_CONFIGS,
5155
+ qo as buttonVariantProp,
5156
+ Fo as disabledProp,
5157
+ Uo as errorProp,
5158
+ Ko as helperProp,
5159
+ Ho as iconAnimationProp,
5160
+ Eo as labelProp,
5161
+ Go as placeholderProp,
5162
+ Po as sizeProp,
5163
+ he as useComponentSize,
5164
+ Yo as useTogglePreset,
5165
+ uo as useVariantClasses,
5166
+ Dl as useVariantConfig,
5167
+ co as useVariantIcon,
5168
+ Ro as variantProp
4784
5169
  };