@retailcrm/embed-ui-v1-components 0.9.14 → 0.9.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/AGENTS.md +126 -0
  2. package/README.md +24 -0
  3. package/assets/sprites/map-and-places/navigate.svg +3 -0
  4. package/assets/stylesheets/palette.less +11 -6
  5. package/bin/embed-ui-v1-components.mjs +209 -0
  6. package/bin/postinstall.mjs +37 -0
  7. package/dist/host.cjs +2443 -657
  8. package/dist/host.css +920 -6
  9. package/dist/host.d.ts +2440 -6
  10. package/dist/host.js +2444 -658
  11. package/dist/remote.cjs +1009 -46
  12. package/dist/remote.d.ts +1240 -67
  13. package/dist/remote.js +1011 -48
  14. package/docs/AI.md +106 -0
  15. package/docs/COMPONENTS.md +99 -0
  16. package/docs/FORMAT.md +267 -0
  17. package/docs/PROFILES.md +66 -0
  18. package/docs/README.md +65 -0
  19. package/docs/STYLING.md +156 -0
  20. package/docs/profiles/UiAddButton.yml +57 -0
  21. package/docs/profiles/UiAlert.yml +48 -0
  22. package/docs/profiles/UiAvatar.yml +48 -0
  23. package/docs/profiles/UiAvatarList.yml +42 -0
  24. package/docs/profiles/UiButton.yml +229 -0
  25. package/docs/profiles/UiCalendar.yml +48 -0
  26. package/docs/profiles/UiCheckbox.yml +53 -0
  27. package/docs/profiles/UiCollapse.yml +40 -0
  28. package/docs/profiles/UiCollapseBox.yml +51 -0
  29. package/docs/profiles/UiCollapseGroup.yml +39 -0
  30. package/docs/profiles/UiCopyButton.yml +52 -0
  31. package/docs/profiles/UiDate.yml +38 -0
  32. package/docs/profiles/UiDatePicker.yml +59 -0
  33. package/docs/profiles/UiError.yml +32 -0
  34. package/docs/profiles/UiField.yml +233 -0
  35. package/docs/profiles/UiImage.yml +39 -0
  36. package/docs/profiles/UiInfobox.yml +45 -0
  37. package/docs/profiles/UiLink.yml +51 -0
  38. package/docs/profiles/UiLoader.yml +38 -0
  39. package/docs/profiles/UiMenuItem.yml +57 -0
  40. package/docs/profiles/UiMenuItemGroup.yml +50 -0
  41. package/docs/profiles/UiModalSidebar.yml +46 -0
  42. package/docs/profiles/UiModalWindow.yml +44 -0
  43. package/docs/profiles/UiModalWindowSurface.yml +41 -0
  44. package/docs/profiles/UiNumberStepper.yml +52 -0
  45. package/docs/profiles/UiPageHeader.yml +244 -0
  46. package/docs/profiles/UiPopper.yml +201 -0
  47. package/docs/profiles/UiPopperConnector.yml +115 -0
  48. package/docs/profiles/UiPopperTarget.yml +118 -0
  49. package/docs/profiles/UiRadio.yml +38 -0
  50. package/docs/profiles/UiRadioSwitch.yml +231 -0
  51. package/docs/profiles/UiRadioSwitchOption.yml +121 -0
  52. package/docs/profiles/UiScrollBox.yml +31 -0
  53. package/docs/profiles/UiSelect.yml +327 -0
  54. package/docs/profiles/UiSelectOption.yml +44 -0
  55. package/docs/profiles/UiSelectOptionGroup.yml +38 -0
  56. package/docs/profiles/UiSlider.yml +38 -0
  57. package/docs/profiles/UiSwitch.yml +37 -0
  58. package/docs/profiles/UiTab.yml +119 -0
  59. package/docs/profiles/UiTabGroup.yml +238 -0
  60. package/docs/profiles/UiTable.yml +152 -0
  61. package/docs/profiles/UiTableBodyCell.yml +47 -0
  62. package/docs/profiles/UiTableColumn.yml +50 -0
  63. package/docs/profiles/UiTableFooterButton.yml +44 -0
  64. package/docs/profiles/UiTableFooterSection.yml +38 -0
  65. package/docs/profiles/UiTableHeadCell.yml +44 -0
  66. package/docs/profiles/UiTableSorter.yml +45 -0
  67. package/docs/profiles/UiTag.yml +41 -0
  68. package/docs/profiles/UiTextbox.yml +392 -0
  69. package/docs/profiles/UiTimePicker.yml +46 -0
  70. package/docs/profiles/UiToggleButton.yml +211 -0
  71. package/docs/profiles/UiToggleGroup.yml +211 -0
  72. package/docs/profiles/UiToggleGroupOption.yml +116 -0
  73. package/docs/profiles/UiToolbarButton.yml +37 -0
  74. package/docs/profiles/UiToolbarLink.yml +32 -0
  75. package/docs/profiles/UiTooltip.yml +43 -0
  76. package/docs/profiles/UiTransition.yml +27 -0
  77. package/docs/profiles/UiYandexMap.yml +29 -0
  78. package/package.json +8 -3
package/dist/host.cjs CHANGED
@@ -7,7 +7,7 @@ const dateFns = require("date-fns");
7
7
  const locale = require("date-fns/locale");
8
8
  const vue3PerfectScrollbar = require("vue3-perfect-scrollbar");
9
9
  const host = require("@omnicajs/vue-remote/host");
10
- const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
10
+ const _sfc_main$12 = /* @__PURE__ */ vue.defineComponent({
11
11
  __name: "UiTransition",
12
12
  props: {
13
13
  /** Наименование анимации перехода */
@@ -35,13 +35,13 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
35
35
  };
36
36
  }
37
37
  });
38
- const _hoisted_1$R = {
38
+ const _hoisted_1$W = {
39
39
  xmlns: "http://www.w3.org/2000/svg",
40
40
  fill: "none",
41
41
  viewBox: "0 0 24 24"
42
42
  };
43
- function render$n(_ctx, _cache) {
44
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$R, [..._cache[0] || (_cache[0] = [
43
+ function render$p(_ctx, _cache) {
44
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$W, [..._cache[0] || (_cache[0] = [
45
45
  vue.createElementVNode("path", {
46
46
  fill: "currentColor",
47
47
  "fill-rule": "evenodd",
@@ -50,26 +50,26 @@ function render$n(_ctx, _cache) {
50
50
  }, null, -1)
51
51
  ])]);
52
52
  }
53
- const IconCheckmarkCircleOutlined = { render: render$n };
54
- const _hoisted_1$Q = {
53
+ const IconCheckmarkCircleOutlined = { render: render$p };
54
+ const _hoisted_1$V = {
55
55
  xmlns: "http://www.w3.org/2000/svg",
56
56
  viewBox: "0 0 24 24"
57
57
  };
58
- function render$m(_ctx, _cache) {
59
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$Q, [..._cache[0] || (_cache[0] = [
58
+ function render$o(_ctx, _cache) {
59
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$V, [..._cache[0] || (_cache[0] = [
60
60
  vue.createElementVNode("path", {
61
61
  fill: "currentColor",
62
62
  d: "M7.113 6.176a.6.6 0 0 1 .848 0L12 10.214l4.038-4.038a.6.6 0 0 1 .849 0l.937.937a.6.6 0 0 1 0 .848L13.785 12l4.04 4.04a.6.6 0 0 1 0 .848l-.937.937a.6.6 0 0 1-.849 0L12 13.784l-4.038 4.04a.6.6 0 0 1-.849 0l-.937-.937a.6.6 0 0 1 0-.848l4.04-4.04-4.039-4.038a.6.6 0 0 1 0-.849z"
63
63
  }, null, -1)
64
64
  ])]);
65
65
  }
66
- const IconClear = { render: render$m };
67
- const _hoisted_1$P = {
66
+ const IconClear = { render: render$o };
67
+ const _hoisted_1$U = {
68
68
  xmlns: "http://www.w3.org/2000/svg",
69
69
  viewBox: "0 0 24 24"
70
70
  };
71
- function render$l(_ctx, _cache) {
72
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$P, [..._cache[0] || (_cache[0] = [
71
+ function render$n(_ctx, _cache) {
72
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$U, [..._cache[0] || (_cache[0] = [
73
73
  vue.createElementVNode("path", {
74
74
  fill: "currentColor",
75
75
  "fill-rule": "evenodd",
@@ -78,26 +78,26 @@ function render$l(_ctx, _cache) {
78
78
  }, null, -1)
79
79
  ])]);
80
80
  }
81
- const IconClearCircleOutlined = { render: render$l };
82
- const _hoisted_1$O = {
81
+ const IconClearCircleOutlined = { render: render$n };
82
+ const _hoisted_1$T = {
83
83
  xmlns: "http://www.w3.org/2000/svg",
84
84
  viewBox: "0 0 24 24"
85
85
  };
86
- function render$k(_ctx, _cache) {
87
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$O, [..._cache[0] || (_cache[0] = [
86
+ function render$m(_ctx, _cache) {
87
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$T, [..._cache[0] || (_cache[0] = [
88
88
  vue.createElementVNode("path", {
89
89
  fill: "currentColor",
90
90
  d: "M2 12C2 6.477 6.477 2 12 2A10 10 0 1 1 2 12m2 0a8 8 0 1 0 16 0 8 8 0 0 0-16 0m7.5 2a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zm-.18-6h1.36a.5.5 0 0 1 .5.56l-.4 3.22a.25.25 0 0 1-.25.22h-1.06a.25.25 0 0 1-.25-.22l-.4-3.22a.5.5 0 0 1 .5-.56"
91
91
  }, null, -1)
92
92
  ])]);
93
93
  }
94
- const IconErrorOutlined = { render: render$k };
95
- const _hoisted_1$N = {
94
+ const IconErrorOutlined = { render: render$m };
95
+ const _hoisted_1$S = {
96
96
  xmlns: "http://www.w3.org/2000/svg",
97
97
  viewBox: "0 0 24 24"
98
98
  };
99
- function render$j(_ctx, _cache) {
100
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$N, [..._cache[0] || (_cache[0] = [
99
+ function render$l(_ctx, _cache) {
100
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$S, [..._cache[0] || (_cache[0] = [
101
101
  vue.createElementVNode("path", {
102
102
  fill: "currentColor",
103
103
  "fill-rule": "evenodd",
@@ -106,7 +106,7 @@ function render$j(_ctx, _cache) {
106
106
  }, null, -1)
107
107
  ])]);
108
108
  }
109
- const IconInfoOutlined = { render: render$j };
109
+ const IconInfoOutlined = { render: render$l };
110
110
  var VARIANT$1 = /* @__PURE__ */ ((VARIANT2) => {
111
111
  VARIANT2["PRIMARY"] = "primary";
112
112
  VARIANT2["WARNING"] = "warning";
@@ -114,13 +114,13 @@ var VARIANT$1 = /* @__PURE__ */ ((VARIANT2) => {
114
114
  VARIANT2["DANGER"] = "danger";
115
115
  return VARIANT2;
116
116
  })(VARIANT$1 || {});
117
- const _hoisted_1$M = ["aria-hidden", "aria-live"];
118
- const _hoisted_2$m = {
117
+ const _hoisted_1$R = ["aria-hidden", "aria-live"];
118
+ const _hoisted_2$p = {
119
119
  key: 0,
120
120
  class: "ui-v1-alert__icon-outline"
121
121
  };
122
- const _hoisted_3$h = { class: "ui-v1-alert__icon" };
123
- const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
122
+ const _hoisted_3$j = { class: "ui-v1-alert__icon" };
123
+ const _sfc_main$11 = /* @__PURE__ */ vue.defineComponent({
124
124
  ...{
125
125
  inheritAttrs: false
126
126
  },
@@ -229,7 +229,7 @@ const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
229
229
  }
230
230
  });
231
231
  return (_ctx, _cache) => {
232
- return vue.openBlock(), vue.createBlock(_sfc_main$S, {
232
+ return vue.openBlock(), vue.createBlock(_sfc_main$12, {
233
233
  name: "fade",
234
234
  onBeforeEnter,
235
235
  onBeforeLeave,
@@ -252,8 +252,8 @@ const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
252
252
  role: "alert"
253
253
  }, _ctx.$attrs), [
254
254
  vue.renderSlot(_ctx.$slots, "icon", {}, () => [
255
- __props.variant ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$m, [
256
- vue.createElementVNode("div", _hoisted_3$h, [
255
+ __props.variant ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$p, [
256
+ vue.createElementVNode("div", _hoisted_3$j, [
257
257
  __props.variant === vue.unref(VARIANT$1).PRIMARY ? (vue.openBlock(), vue.createBlock(vue.unref(IconInfoOutlined), { key: 0 })) : __props.variant === vue.unref(VARIANT$1).WARNING ? (vue.openBlock(), vue.createBlock(vue.unref(IconErrorOutlined), { key: 1 })) : __props.variant === vue.unref(VARIANT$1).DANGER ? (vue.openBlock(), vue.createBlock(vue.unref(IconClearCircleOutlined), { key: 2 })) : __props.variant === vue.unref(VARIANT$1).SUCCESS ? (vue.openBlock(), vue.createBlock(vue.unref(IconCheckmarkCircleOutlined), { key: 3 })) : vue.createCommentVNode("", true)
258
258
  ])
259
259
  ])) : vue.createCommentVNode("", true)
@@ -278,7 +278,7 @@ const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
278
278
  }, [
279
279
  vue.createVNode(vue.unref(IconClear), { class: "ui-v1-alert__close-icon" })
280
280
  ])) : vue.createCommentVNode("", true)
281
- ], 16, _hoisted_1$M), [
281
+ ], 16, _hoisted_1$R), [
282
282
  [vue.vShow, state.shown]
283
283
  ])
284
284
  ]),
@@ -287,12 +287,12 @@ const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
287
287
  };
288
288
  }
289
289
  });
290
- const _hoisted_1$L = {
290
+ const _hoisted_1$Q = {
291
291
  xmlns: "http://www.w3.org/2000/svg",
292
292
  viewBox: "0 0 24 24"
293
293
  };
294
- function render$i(_ctx, _cache) {
295
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$L, [..._cache[0] || (_cache[0] = [
294
+ function render$k(_ctx, _cache) {
295
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$Q, [..._cache[0] || (_cache[0] = [
296
296
  vue.createElementVNode("path", {
297
297
  fill: "currentColor",
298
298
  "fill-rule": "evenodd",
@@ -301,7 +301,7 @@ function render$i(_ctx, _cache) {
301
301
  }, null, -1)
302
302
  ])]);
303
303
  }
304
- const IconAddCircle = { render: render$i };
304
+ const IconAddCircle = { render: render$k };
305
305
  var COLOR$1 = /* @__PURE__ */ ((COLOR2) => {
306
306
  COLOR2["GREEN"] = "green";
307
307
  COLOR2["BLUE"] = "blue";
@@ -314,14 +314,14 @@ const isNumeric = (value) => !isNaN(Number(value));
314
314
  const normalizeHeight = (height) => {
315
315
  return isNumeric(height) ? `${height}px` : `${height}`;
316
316
  };
317
- const _hoisted_1$K = ["type", "disabled"];
318
- const _hoisted_2$l = { class: "ui-v1-add-button__content" };
319
- const _hoisted_3$g = { class: "ui-v1-add-button__title" };
320
- const _hoisted_4$b = {
317
+ const _hoisted_1$P = ["type", "disabled"];
318
+ const _hoisted_2$o = { class: "ui-v1-add-button__content" };
319
+ const _hoisted_3$i = { class: "ui-v1-add-button__title" };
320
+ const _hoisted_4$c = {
321
321
  key: 0,
322
322
  class: "ui-v1-add-button__description"
323
323
  };
324
- const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
324
+ const _sfc_main$10 = /* @__PURE__ */ vue.defineComponent({
325
325
  ...{
326
326
  inheritAttrs: false
327
327
  },
@@ -364,8 +364,8 @@ const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
364
364
  height: vue.unref(normalizeHeight)(__props.height)
365
365
  }
366
366
  }, _ctx.$attrs), [
367
- vue.createElementVNode("span", _hoisted_2$l, [
368
- vue.createElementVNode("span", _hoisted_3$g, [
367
+ vue.createElementVNode("span", _hoisted_2$o, [
368
+ vue.createElementVNode("span", _hoisted_3$i, [
369
369
  vue.renderSlot(_ctx.$slots, "icon", {}, () => [
370
370
  vue.createVNode(vue.unref(IconAddCircle), {
371
371
  "aria-hidden": "true",
@@ -374,20 +374,20 @@ const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
374
374
  ]),
375
375
  vue.renderSlot(_ctx.$slots, "default")
376
376
  ]),
377
- !__props.small && _ctx.$slots.description ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$b, [
377
+ !__props.small && _ctx.$slots.description ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$c, [
378
378
  vue.renderSlot(_ctx.$slots, "description")
379
379
  ])) : vue.createCommentVNode("", true)
380
380
  ])
381
- ], 16, _hoisted_1$K);
381
+ ], 16, _hoisted_1$P);
382
382
  };
383
383
  }
384
384
  });
385
- const _hoisted_1$J = {
385
+ const _hoisted_1$O = {
386
386
  xmlns: "http://www.w3.org/2000/svg",
387
387
  viewBox: "0 0 24 24"
388
388
  };
389
- function render$h(_ctx, _cache) {
390
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$J, [..._cache[0] || (_cache[0] = [
389
+ function render$j(_ctx, _cache) {
390
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$O, [..._cache[0] || (_cache[0] = [
391
391
  vue.createElementVNode("path", {
392
392
  fill: "currentColor",
393
393
  "fill-rule": "evenodd",
@@ -396,34 +396,34 @@ function render$h(_ctx, _cache) {
396
396
  }, null, -1)
397
397
  ])]);
398
398
  }
399
- const IconHelpOutlined = { render: render$h };
400
- const _hoisted_1$I = {
399
+ const IconHelpOutlined = { render: render$j };
400
+ const _hoisted_1$N = {
401
401
  xmlns: "http://www.w3.org/2000/svg",
402
402
  viewBox: "0 0 18 8"
403
403
  };
404
- function render$g(_ctx, _cache) {
405
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$I, [..._cache[0] || (_cache[0] = [
404
+ function render$i(_ctx, _cache) {
405
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$N, [..._cache[0] || (_cache[0] = [
406
406
  vue.createElementVNode("g", { fill: "currentColor" }, [
407
407
  vue.createElementVNode("path", { d: "M0 0v8h2.867q1.257-.011 1.935-.604.68-.594.68-1.748 0-.675-.33-1.143a1.54 1.54 0 0 0-.892-.62q.497-.21.775-.654.279-.45.279-1.039 0-1.077-.694-1.632Q3.926 0 2.584 0zm1.52 6.676v-2.16h1.393q1.048.016 1.048 1.116 0 .488-.303.77-.3.273-.836.274zm1.124-3.324H1.52V1.335h1.064q.628 0 .916.242.294.236.294.78 0 .972-1.15.995M7.503 6.352h2.665L10.679 8h1.616l-2.76-8H8.125L5.38 8h1.616zm2.254-1.336H7.913l.917-2.994zM12.362 8V0h2.27q.972 0 1.737.478.77.473 1.2 1.352.432.873.431 1.989v.368q0 1.115-.425 1.983a3.17 3.17 0 0 1-1.191 1.346A3.26 3.26 0 0 1 14.646 8zm1.52-6.665v5.34h.734q.891 0 1.363-.631.47-.632.481-1.808v-.423q0-1.22-.466-1.846-.466-.632-1.363-.632z" })
408
408
  ], -1)
409
409
  ])]);
410
410
  }
411
- const SpriteBAD = { render: render$g };
412
- const _hoisted_1$H = {
411
+ const SpriteBAD = { render: render$i };
412
+ const _hoisted_1$M = {
413
413
  xmlns: "http://www.w3.org/2000/svg",
414
414
  viewBox: "0 0 16 8"
415
415
  };
416
- function render$f(_ctx, _cache) {
417
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$H, [..._cache[0] || (_cache[0] = [
416
+ function render$h(_ctx, _cache) {
417
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$M, [..._cache[0] || (_cache[0] = [
418
418
  vue.createElementVNode("g", { fill: "currentColor" }, [
419
419
  vue.createElementVNode("path", { d: "M3.373 6.016 5.058 0h1.704L4.175 8H2.577L0 0h1.7zM8.99 8H7.46V0H8.99zM11.84 8V5.181h1.343q1.322 0 2.067-.676.75-.681.75-1.857 0-.774-.342-1.379a2.3 2.3 0 0 0-.98-.94Q14.045 0 13.208 0H10.31v8zm1.368-4.154h-1.367v-2.51h1.403q.567.01.888.373t.322.95q0 .571-.322.88-.316.307-.924.307" })
420
420
  ], -1)
421
421
  ])]);
422
422
  }
423
- const SpriteVIP = { render: render$f };
423
+ const SpriteVIP = { render: render$h };
424
424
  const ImageWorkersKey = Symbol("$image.workers");
425
- const _hoisted_1$G = ["alt", "src"];
426
- const _sfc_main$P = /* @__PURE__ */ vue.defineComponent({
425
+ const _hoisted_1$L = ["alt", "src"];
426
+ const _sfc_main$$ = /* @__PURE__ */ vue.defineComponent({
427
427
  __name: "UiImage",
428
428
  props: {
429
429
  alt: {
@@ -459,7 +459,7 @@ const _sfc_main$P = /* @__PURE__ */ vue.defineComponent({
459
459
  return vue.openBlock(), vue.createElementBlock("img", vue.mergeProps({
460
460
  alt: __props.alt,
461
461
  src: url.value
462
- }, _ctx.$attrs), null, 16, _hoisted_1$G);
462
+ }, _ctx.$attrs), null, 16, _hoisted_1$L);
463
463
  };
464
464
  }
465
465
  });
@@ -478,12 +478,12 @@ const isURL = (href, loose = true) => {
478
478
  return false;
479
479
  }
480
480
  };
481
- var SIZE$8 = /* @__PURE__ */ ((SIZE2) => {
481
+ var SIZE$a = /* @__PURE__ */ ((SIZE2) => {
482
482
  SIZE2["XS"] = "xs";
483
483
  SIZE2["SM"] = "sm";
484
484
  SIZE2["LG"] = "lg";
485
485
  return SIZE2;
486
- })(SIZE$8 || {});
486
+ })(SIZE$a || {});
487
487
  var STATUS = /* @__PURE__ */ ((STATUS2) => {
488
488
  STATUS2["NONE"] = "";
489
489
  STATUS2["BUSY"] = "busy";
@@ -493,27 +493,27 @@ var STATUS = /* @__PURE__ */ ((STATUS2) => {
493
493
  return STATUS2;
494
494
  })(STATUS || {});
495
495
  const AvatarSizeKey = Symbol("UiAvatarSize");
496
- const _hoisted_1$F = {
496
+ const _hoisted_1$K = {
497
497
  key: 1,
498
498
  class: "ui-v1-avatar__unresolved"
499
499
  };
500
- const _hoisted_2$k = {
500
+ const _hoisted_2$n = {
501
501
  key: 3,
502
502
  class: "ui-v1-avatar__initials"
503
503
  };
504
- const _hoisted_3$f = {
504
+ const _hoisted_3$h = {
505
505
  key: 4,
506
506
  class: "ui-v1-avatar__labels"
507
507
  };
508
- const _hoisted_4$a = {
508
+ const _hoisted_4$b = {
509
509
  key: 0,
510
510
  class: "ui-v1-avatar__label ui-v1-avatar__label_vip"
511
511
  };
512
- const _hoisted_5$8 = {
512
+ const _hoisted_5$9 = {
513
513
  key: 1,
514
514
  class: "ui-v1-avatar__label ui-v1-avatar__label_bad"
515
515
  };
516
- const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
516
+ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
517
517
  __name: "UiAvatar",
518
518
  props: {
519
519
  /** Путь к изображению */
@@ -552,8 +552,8 @@ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
552
552
  /** Размер изображения */
553
553
  size: {
554
554
  type: String,
555
- validator: (size) => Object.values(SIZE$8).includes(size),
556
- default: SIZE$8.SM
555
+ validator: (size) => Object.values(SIZE$a).includes(size),
556
+ default: SIZE$a.SM
557
557
  },
558
558
  optimize: {
559
559
  type: [Boolean, Object],
@@ -581,9 +581,9 @@ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
581
581
  const processing = typeof props.optimize === "object" ? props.optimize : {};
582
582
  return {
583
583
  resize: processing.resize ?? {
584
- [SIZE$8.XS]: "48x-",
585
- [SIZE$8.SM]: "72x-",
586
- [SIZE$8.LG]: "104x-"
584
+ [SIZE$a.XS]: "48x-",
585
+ [SIZE$a.SM]: "72x-",
586
+ [SIZE$a.LG]: "104x-"
587
587
  }[size.value],
588
588
  crop: processing.crop
589
589
  };
@@ -600,7 +600,7 @@ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
600
600
  }
601
601
  }, _ctx.$attrs), {
602
602
  default: vue.withCtx(() => [
603
- __props.src ? (vue.openBlock(), vue.createBlock(_sfc_main$P, {
603
+ __props.src ? (vue.openBlock(), vue.createBlock(_sfc_main$$, {
604
604
  key: 0,
605
605
  src: __props.src,
606
606
  resize: optimization.value.resize,
@@ -609,7 +609,7 @@ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
609
609
  draggable: "false",
610
610
  onLoad: _cache[0] || (_cache[0] = ($event) => loaded.value = true),
611
611
  onError: _cache[1] || (_cache[1] = ($event) => loaded.value = false)
612
- }, null, 8, ["src", "resize", "crop"])) : !__props.src && unresolved.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$F, [
612
+ }, null, 8, ["src", "resize", "crop"])) : !__props.src && unresolved.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$K, [
613
613
  vue.createVNode(vue.unref(IconHelpOutlined))
614
614
  ])) : vue.createCommentVNode("", true),
615
615
  __props.status && !(__props.vip || __props.bad) ? (vue.openBlock(), vue.createElementBlock("span", {
@@ -620,16 +620,16 @@ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
620
620
  [`ui-v1-avatar__status_${__props.status}`]: __props.status
621
621
  })
622
622
  }, null, 2)) : vue.createCommentVNode("", true),
623
- !(unresolved.value || loaded.value) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$k, [
623
+ !(unresolved.value || loaded.value) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$n, [
624
624
  vue.renderSlot(_ctx.$slots, "default", {}, () => [
625
625
  vue.createTextVNode(vue.toDisplayString(initials.value), 1)
626
626
  ])
627
627
  ])) : vue.createCommentVNode("", true),
628
- __props.vip || __props.bad ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$f, [
629
- __props.vip ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$a, [
628
+ __props.vip || __props.bad ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$h, [
629
+ __props.vip ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$b, [
630
630
  vue.createVNode(vue.unref(SpriteVIP), { class: "ui-v1-avatar__vip" })
631
631
  ])) : vue.createCommentVNode("", true),
632
- __props.bad ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$8, [
632
+ __props.bad ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$9, [
633
633
  vue.createVNode(vue.unref(SpriteBAD), { class: "ui-v1-avatar__bad" })
634
634
  ])) : vue.createCommentVNode("", true)
635
635
  ])) : vue.createCommentVNode("", true)
@@ -639,7 +639,7 @@ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
639
639
  };
640
640
  }
641
641
  });
642
- const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
642
+ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
643
643
  __name: "UiAvatarList",
644
644
  props: {
645
645
  /** Список аватарок пользователей */
@@ -650,8 +650,8 @@ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
650
650
  /** Размер аватарок */
651
651
  size: {
652
652
  type: String,
653
- validator: (size) => Object.values(SIZE$8).includes(size),
654
- default: SIZE$8.SM
653
+ validator: (size) => Object.values(SIZE$a).includes(size),
654
+ default: SIZE$a.SM
655
655
  }
656
656
  },
657
657
  setup(__props) {
@@ -666,7 +666,7 @@ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
666
666
  key: index,
667
667
  class: "ui-v1-avatar-list__item"
668
668
  }, [
669
- vue.createVNode(_sfc_main$O, {
669
+ vue.createVNode(_sfc_main$_, {
670
670
  src: avatar.src,
671
671
  name: avatar.name
672
672
  }, null, 8, ["src", "name"])
@@ -713,27 +713,27 @@ const useElementRef = () => {
713
713
  vue.provide(ElementRefKey, vue.ref(null));
714
714
  return el;
715
715
  };
716
- var APPEARANCE$3 = /* @__PURE__ */ ((APPEARANCE2) => {
716
+ var APPEARANCE$5 = /* @__PURE__ */ ((APPEARANCE2) => {
717
717
  APPEARANCE2["OUTLINED"] = "outlined";
718
718
  APPEARANCE2["PRIMARY"] = "primary";
719
719
  APPEARANCE2["SECONDARY"] = "secondary";
720
720
  APPEARANCE2["TERTIARY"] = "tertiary";
721
721
  return APPEARANCE2;
722
- })(APPEARANCE$3 || {});
723
- var SIZE$7 = /* @__PURE__ */ ((SIZE2) => {
722
+ })(APPEARANCE$5 || {});
723
+ var SIZE$9 = /* @__PURE__ */ ((SIZE2) => {
724
724
  SIZE2["LG"] = "lg";
725
725
  SIZE2["MD"] = "md";
726
726
  SIZE2["SM"] = "sm";
727
727
  SIZE2["XS"] = "xs";
728
728
  return SIZE2;
729
- })(SIZE$7 || {});
729
+ })(SIZE$9 || {});
730
730
  var VARIANT = /* @__PURE__ */ ((VARIANT2) => {
731
731
  VARIANT2["DEFAULT"] = "default";
732
732
  VARIANT2["SUCCESS"] = "success";
733
733
  VARIANT2["DANGER"] = "danger";
734
734
  return VARIANT2;
735
735
  })(VARIANT || {});
736
- const _sfc_main$M = vue.defineComponent({
736
+ const _sfc_main$Y = vue.defineComponent({
737
737
  props: {
738
738
  /** Устанавливает тип кнопки */
739
739
  type: {
@@ -749,7 +749,7 @@ const _sfc_main$M = vue.defineComponent({
749
749
  /** Регулирует внешний вид кнопки: primary, secondary, tertiary or outlined */
750
750
  appearance: {
751
751
  type: String,
752
- default: APPEARANCE$3.PRIMARY
752
+ default: APPEARANCE$5.PRIMARY
753
753
  },
754
754
  /** Регулирует цветовую схему кнопки: default, success or danger */
755
755
  variant: {
@@ -759,7 +759,7 @@ const _sfc_main$M = vue.defineComponent({
759
759
  /** Размер */
760
760
  size: {
761
761
  type: String,
762
- default: SIZE$7.SM
762
+ default: SIZE$9.SM
763
763
  },
764
764
  /** Если кнопка активна */
765
765
  active: {
@@ -819,8 +819,8 @@ const _sfc_main$M = vue.defineComponent({
819
819
  };
820
820
  }
821
821
  });
822
- const _hoisted_1$E = { class: "ui-v1-calendar-cell__content" };
823
- const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
822
+ const _hoisted_1$J = { class: "ui-v1-calendar-cell__content" };
823
+ const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
824
824
  __name: "UiCalendarCell",
825
825
  props: {
826
826
  current: {
@@ -865,32 +865,32 @@ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
865
865
  "aria-hidden": "true",
866
866
  class: "ui-v1-calendar-cell__backdrop"
867
867
  }, null, -1)),
868
- vue.createElementVNode("div", _hoisted_1$E, [
868
+ vue.createElementVNode("div", _hoisted_1$J, [
869
869
  vue.renderSlot(_ctx.$slots, "default")
870
870
  ])
871
871
  ], 16);
872
872
  };
873
873
  }
874
874
  });
875
- const _hoisted_1$D = {
875
+ const _hoisted_1$I = {
876
876
  xmlns: "http://www.w3.org/2000/svg",
877
877
  viewBox: "0 0 24 24"
878
878
  };
879
- function render$e(_ctx, _cache) {
880
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$D, [..._cache[0] || (_cache[0] = [
879
+ function render$g(_ctx, _cache) {
880
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$I, [..._cache[0] || (_cache[0] = [
881
881
  vue.createElementVNode("path", {
882
882
  fill: "currentColor",
883
883
  d: "M15.78 11.28c.14.14.22.331.22.53v.38a.77.77 0 0 1-.22.53l-5.14 5.13a.5.5 0 0 1-.71 0l-.71-.71a.49.49 0 0 1 0-.7L13.67 12 9.22 7.56a.5.5 0 0 1 0-.71l.71-.7a.5.5 0 0 1 .71 0z"
884
884
  }, null, -1)
885
885
  ])]);
886
886
  }
887
- const IconChevronRight = { render: render$e };
888
- const _hoisted_1$C = {
887
+ const IconChevronRight = { render: render$g };
888
+ const _hoisted_1$H = {
889
889
  key: 1,
890
890
  "aria-hidden": "true",
891
891
  class: "ui-v1-calendar-navigation__placeholder"
892
892
  };
893
- const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
893
+ const _sfc_main$W = /* @__PURE__ */ vue.defineComponent({
894
894
  __name: "UiCalendarDirectionButton",
895
895
  props: {
896
896
  label: {
@@ -910,7 +910,7 @@ const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
910
910
  emits: ["click"],
911
911
  setup(__props) {
912
912
  return (_ctx, _cache) => {
913
- return !__props.absent ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
913
+ return !__props.absent ? (vue.openBlock(), vue.createBlock(_sfc_main$Y, {
914
914
  key: 0,
915
915
  "aria-label": __props.label,
916
916
  appearance: "tertiary",
@@ -927,15 +927,15 @@ const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
927
927
  }, null, 8, ["class"])
928
928
  ]),
929
929
  _: 1
930
- }, 8, ["aria-label"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$C));
930
+ }, 8, ["aria-label"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$H));
931
931
  };
932
932
  }
933
933
  });
934
- const _hoisted_1$B = {
934
+ const _hoisted_1$G = {
935
935
  key: 1,
936
936
  class: "ui-v1-calendar-navigation__text"
937
937
  };
938
- const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
938
+ const _sfc_main$V = /* @__PURE__ */ vue.defineComponent({
939
939
  __name: "UiCalendarSwitchButton",
940
940
  props: {
941
941
  locked: {
@@ -946,7 +946,7 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
946
946
  emits: ["click"],
947
947
  setup(__props) {
948
948
  return (_ctx, _cache) => {
949
- return !__props.locked ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
949
+ return !__props.locked ? (vue.openBlock(), vue.createBlock(_sfc_main$Y, {
950
950
  key: 0,
951
951
  appearance: "tertiary",
952
952
  class: "ui-v1-calendar-navigation__switch-button",
@@ -956,17 +956,17 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
956
956
  vue.renderSlot(_ctx.$slots, "default")
957
957
  ]),
958
958
  _: 3
959
- })) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$B, [
959
+ })) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$G, [
960
960
  vue.renderSlot(_ctx.$slots, "default")
961
961
  ]));
962
962
  };
963
963
  }
964
964
  });
965
- var APPEARANCE$2 = /* @__PURE__ */ ((APPEARANCE2) => {
965
+ var APPEARANCE$4 = /* @__PURE__ */ ((APPEARANCE2) => {
966
966
  APPEARANCE2["SINGLE"] = "single";
967
967
  APPEARANCE2["DOUBLE"] = "double";
968
968
  return APPEARANCE2;
969
- })(APPEARANCE$2 || {});
969
+ })(APPEARANCE$4 || {});
970
970
  var TYPE$2 = /* @__PURE__ */ ((TYPE2) => {
971
971
  TYPE2["SINGLE"] = "single";
972
972
  TYPE2["RANGE"] = "range";
@@ -1381,11 +1381,11 @@ const _i18n$6 = define({
1381
1381
  "ru-RU": messages_ru_RU$6
1382
1382
  }
1383
1383
  });
1384
- const _hoisted_1$A = { class: "ui-v1-calendar-wrapper" };
1385
- const _hoisted_2$j = ["aria-label"];
1386
- const _hoisted_3$e = ["id"];
1387
- const _hoisted_4$9 = ["aria-labelledby", "aria-multiselectable"];
1388
- const _hoisted_5$7 = {
1384
+ const _hoisted_1$F = { class: "ui-v1-calendar-wrapper" };
1385
+ const _hoisted_2$m = ["aria-label"];
1386
+ const _hoisted_3$g = ["id"];
1387
+ const _hoisted_4$a = ["aria-labelledby", "aria-multiselectable"];
1388
+ const _hoisted_5$8 = {
1389
1389
  class: "ui-v1-calendar__row",
1390
1390
  role: "row"
1391
1391
  };
@@ -1404,7 +1404,7 @@ const _hoisted_16 = {
1404
1404
  "aria-atomic": "true",
1405
1405
  "aria-live": "polite"
1406
1406
  };
1407
- const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
1407
+ const _sfc_main$U = /* @__PURE__ */ vue.defineComponent({
1408
1408
  __name: "UiCalendar",
1409
1409
  props: {
1410
1410
  /** Текущая дата */
@@ -1422,8 +1422,8 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
1422
1422
  /** Одиночный или двойной вид */
1423
1423
  appearance: {
1424
1424
  type: String,
1425
- validator: (appearance) => Object.values(APPEARANCE$2).includes(appearance),
1426
- default: APPEARANCE$2.SINGLE
1425
+ validator: (appearance) => Object.values(APPEARANCE$4).includes(appearance),
1426
+ default: APPEARANCE$4.SINGLE
1427
1427
  },
1428
1428
  /** Первый день недели */
1429
1429
  firstDayOfWeek: {
@@ -1563,7 +1563,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
1563
1563
  });
1564
1564
  const viewsComputed = vue.computed(() => {
1565
1565
  const view = [views[0]];
1566
- if (props.appearance === APPEARANCE$2.DOUBLE) {
1566
+ if (props.appearance === APPEARANCE$4.DOUBLE) {
1567
1567
  view.push(views[1]);
1568
1568
  }
1569
1569
  return view.map(({ date, decade, mode }) => ({
@@ -1575,7 +1575,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
1575
1575
  });
1576
1576
  const viewsIsSynchronized = vue.computed(() => {
1577
1577
  const [first, last] = views;
1578
- return props.appearance === APPEARANCE$2.DOUBLE && first.mode === last.mode && first.date.inSameMonth(new CalendarDay(last.date.year, last.date.month - 1));
1578
+ return props.appearance === APPEARANCE$4.DOUBLE && first.mode === last.mode && first.date.inSameMonth(new CalendarDay(last.date.year, last.date.month - 1));
1579
1579
  });
1580
1580
  const range = vue.computed(() => {
1581
1581
  const [first, last] = valueComputed.value;
@@ -1999,7 +1999,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
1999
1999
  return date.inSameMonth(views[viewIndex].date);
2000
2000
  };
2001
2001
  const inSelectedView = (date) => {
2002
- return inSelectedMonth(date, 0) || inSelectedMonth(date, 1) && props.appearance === APPEARANCE$2.DOUBLE;
2002
+ return inSelectedMonth(date, 0) || inSelectedMonth(date, 1) && props.appearance === APPEARANCE$4.DOUBLE;
2003
2003
  };
2004
2004
  const inRangeDate = (date) => {
2005
2005
  const [min2, max2] = range.value;
@@ -2022,7 +2022,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
2022
2022
  ));
2023
2023
  };
2024
2024
  return (_ctx, _cache) => {
2025
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$A, [
2025
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$F, [
2026
2026
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(viewsComputed.value, (view, index) => {
2027
2027
  return vue.openBlock(), vue.createElementBlock("div", {
2028
2028
  key: "view-" + index + "-" + view.date,
@@ -2033,12 +2033,12 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
2033
2033
  class: "ui-v1-calendar-navigation",
2034
2034
  "aria-label": i18n.value.t("monthNavigation")
2035
2035
  }, [
2036
- vue.createVNode(_sfc_main$K, {
2036
+ vue.createVNode(_sfc_main$W, {
2037
2037
  absent: index === 1 && viewsIsSynchronized.value && views[0].mode === vue.unref(VIEW_MODE).DAYS,
2038
2038
  label: i18n.value.t("prevMonth"),
2039
2039
  onClick: ($event) => showPrevMonth(index)
2040
2040
  }, null, 8, ["absent", "label", "onClick"]),
2041
- vue.createVNode(_sfc_main$J, {
2041
+ vue.createVNode(_sfc_main$V, {
2042
2042
  onClick: ($event) => views[index].mode = vue.unref(VIEW_MODE).MONTHS
2043
2043
  }, {
2044
2044
  default: vue.withCtx(() => [
@@ -2046,17 +2046,17 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
2046
2046
  id: getGridLabelId(index, vue.unref(VIEW_MODE).DAYS),
2047
2047
  "aria-atomic": "true",
2048
2048
  "aria-live": "polite"
2049
- }, vue.toDisplayString(i18n.value.t(`months.${view.date.month - 1}`)) + " " + vue.toDisplayString(view.date.year), 9, _hoisted_3$e)
2049
+ }, vue.toDisplayString(i18n.value.t(`months.${view.date.month - 1}`)) + " " + vue.toDisplayString(view.date.year), 9, _hoisted_3$g)
2050
2050
  ]),
2051
2051
  _: 2
2052
2052
  }, 1032, ["onClick"]),
2053
- vue.createVNode(_sfc_main$K, {
2053
+ vue.createVNode(_sfc_main$W, {
2054
2054
  absent: index === 0 && viewsIsSynchronized.value && views[1].mode === vue.unref(VIEW_MODE).DAYS,
2055
2055
  label: i18n.value.t("nextMonth"),
2056
2056
  direction: "next",
2057
2057
  onClick: ($event) => showNextMonth(index)
2058
2058
  }, null, 8, ["absent", "label", "onClick"])
2059
- ], 8, _hoisted_2$j),
2059
+ ], 8, _hoisted_2$m),
2060
2060
  vue.createElementVNode("div", {
2061
2061
  class: "ui-v1-calendar__table",
2062
2062
  role: "grid",
@@ -2064,7 +2064,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
2064
2064
  "aria-describedby": dayGridHintId,
2065
2065
  "aria-multiselectable": props.type === vue.unref(TYPE$2).RANGE ? "true" : void 0
2066
2066
  }, [
2067
- vue.createElementVNode("div", _hoisted_5$7, [
2067
+ vue.createElementVNode("div", _hoisted_5$8, [
2068
2068
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(weekdaysNames.value, (name, i) => {
2069
2069
  return vue.openBlock(), vue.createElementBlock("div", {
2070
2070
  key: "weekday-" + i,
@@ -2084,7 +2084,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
2084
2084
  role: "row"
2085
2085
  }, [
2086
2086
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(week, (day) => {
2087
- return vue.openBlock(), vue.createBlock(_sfc_main$L, {
2087
+ return vue.openBlock(), vue.createBlock(_sfc_main$X, {
2088
2088
  key: "day-" + index + "-" + day,
2089
2089
  class: vue.normalizeClass({
2090
2090
  "ui-v1-calendar__cell-day": true,
@@ -2121,18 +2121,18 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
2121
2121
  }), 128))
2122
2122
  ], 2);
2123
2123
  }), 128))
2124
- ], 8, _hoisted_4$9)
2124
+ ], 8, _hoisted_4$a)
2125
2125
  ], 64)) : vue.createCommentVNode("", true),
2126
2126
  view.mode === vue.unref(VIEW_MODE).MONTHS ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
2127
2127
  vue.createElementVNode("nav", {
2128
2128
  class: "ui-v1-calendar-navigation",
2129
2129
  "aria-label": i18n.value.t("yearNavigation")
2130
2130
  }, [
2131
- vue.createVNode(_sfc_main$K, {
2131
+ vue.createVNode(_sfc_main$W, {
2132
2132
  label: i18n.value.t("prevYear"),
2133
2133
  onClick: ($event) => showYear(view.date.year - 1, index)
2134
2134
  }, null, 8, ["label", "onClick"]),
2135
- vue.createVNode(_sfc_main$J, {
2135
+ vue.createVNode(_sfc_main$V, {
2136
2136
  onClick: ($event) => views[index].mode = vue.unref(VIEW_MODE).YEARS
2137
2137
  }, {
2138
2138
  default: vue.withCtx(() => [
@@ -2144,7 +2144,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
2144
2144
  ]),
2145
2145
  _: 2
2146
2146
  }, 1032, ["onClick"]),
2147
- vue.createVNode(_sfc_main$K, {
2147
+ vue.createVNode(_sfc_main$W, {
2148
2148
  label: i18n.value.t("nextYear"),
2149
2149
  direction: "next",
2150
2150
  onClick: ($event) => showYear(view.date.year + 1, index)
@@ -2162,7 +2162,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
2162
2162
  role: "row"
2163
2163
  }, [
2164
2164
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(months2, (month) => {
2165
- return vue.openBlock(), vue.createBlock(_sfc_main$L, {
2165
+ return vue.openBlock(), vue.createBlock(_sfc_main$X, {
2166
2166
  key: "month-" + month.month,
2167
2167
  class: vue.normalizeClass({ "ui-v1-calendar__cell-month": true }),
2168
2168
  current: isCurrentMonth(month.month, index),
@@ -2193,11 +2193,11 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
2193
2193
  class: "ui-v1-calendar-navigation",
2194
2194
  "aria-label": i18n.value.t("decadeNavigation")
2195
2195
  }, [
2196
- vue.createVNode(_sfc_main$K, {
2196
+ vue.createVNode(_sfc_main$W, {
2197
2197
  label: i18n.value.t("prevDecade"),
2198
2198
  onClick: ($event) => showPrevDecade(index)
2199
2199
  }, null, 8, ["label", "onClick"]),
2200
- vue.createVNode(_sfc_main$J, {
2200
+ vue.createVNode(_sfc_main$V, {
2201
2201
  locked: "",
2202
2202
  onClick: ($event) => views[index].mode = vue.unref(VIEW_MODE).MONTHS
2203
2203
  }, {
@@ -2210,7 +2210,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
2210
2210
  ]),
2211
2211
  _: 2
2212
2212
  }, 1032, ["onClick"]),
2213
- vue.createVNode(_sfc_main$K, {
2213
+ vue.createVNode(_sfc_main$W, {
2214
2214
  label: i18n.value.t("nextDecade"),
2215
2215
  direction: "next",
2216
2216
  onClick: ($event) => showNextDecade(index)
@@ -2228,7 +2228,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
2228
2228
  role: "row"
2229
2229
  }, [
2230
2230
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(years, (year) => {
2231
- return vue.openBlock(), vue.createBlock(_sfc_main$L, {
2231
+ return vue.openBlock(), vue.createBlock(_sfc_main$X, {
2232
2232
  key: "year-" + year,
2233
2233
  class: vue.normalizeClass({ "ui-v1-calendar__cell-year": true }),
2234
2234
  current: isCurrentYear(year),
@@ -2263,12 +2263,12 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
2263
2263
  };
2264
2264
  }
2265
2265
  });
2266
- const _hoisted_1$z = {
2266
+ const _hoisted_1$E = {
2267
2267
  xmlns: "http://www.w3.org/2000/svg",
2268
2268
  viewBox: "0 0 24 24"
2269
2269
  };
2270
- function render$d(_ctx, _cache) {
2271
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$z, [..._cache[0] || (_cache[0] = [
2270
+ function render$f(_ctx, _cache) {
2271
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$E, [..._cache[0] || (_cache[0] = [
2272
2272
  vue.createElementVNode("path", {
2273
2273
  fill: "currentColor",
2274
2274
  "fill-rule": "evenodd",
@@ -2277,7 +2277,7 @@ function render$d(_ctx, _cache) {
2277
2277
  }, null, -1)
2278
2278
  ])]);
2279
2279
  }
2280
- const IconDone = { render: render$d };
2280
+ const IconDone = { render: render$f };
2281
2281
  const expect = (value) => ({
2282
2282
  toBeOneOf(variants) {
2283
2283
  return Object.values(variants).includes(value);
@@ -2305,11 +2305,11 @@ const without = (obj, exclude) => {
2305
2305
  });
2306
2306
  return newObj;
2307
2307
  };
2308
- const _hoisted_1$y = ["id", "value", "name", "disabled", "checked"];
2309
- const _hoisted_2$i = { class: "ui-v1-checkbox__checkmark" };
2310
- let counter$2 = 0;
2308
+ const _hoisted_1$D = ["id", "value", "name", "disabled", "checked"];
2309
+ const _hoisted_2$l = { class: "ui-v1-checkbox__checkmark" };
2310
+ let counter$3 = 0;
2311
2311
  const __default__$2 = {};
2312
- const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
2312
+ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
2313
2313
  ...__default__$2,
2314
2314
  __name: "UiCheckbox",
2315
2315
  props: {
@@ -2321,7 +2321,7 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
2321
2321
  /** Атрибут name нативного поля ввода */
2322
2322
  name: {
2323
2323
  type: String,
2324
- default: () => "ui-v1-checkbox-" + ++counter$2
2324
+ default: () => "ui-v1-checkbox-" + ++counter$3
2325
2325
  },
2326
2326
  /** Значение модели используемое с директивой v-model */
2327
2327
  model: {
@@ -2416,8 +2416,8 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
2416
2416
  type: "checkbox",
2417
2417
  class: "ui-v1-checkbox__input",
2418
2418
  onChange
2419
- }), null, 16, _hoisted_1$y),
2420
- vue.createElementVNode("span", _hoisted_2$i, [
2419
+ }), null, 16, _hoisted_1$D),
2420
+ vue.createElementVNode("span", _hoisted_2$l, [
2421
2421
  checked.value && !__props.indeterminate ? (vue.openBlock(), vue.createBlock(vue.unref(IconDone), {
2422
2422
  key: 0,
2423
2423
  class: "ui-v1-checkbox__checkmark-icon"
@@ -2432,15 +2432,15 @@ var COLLAPSE_BEHAVIOUR = /* @__PURE__ */ ((COLLAPSE_BEHAVIOUR2) => {
2432
2432
  COLLAPSE_BEHAVIOUR2["HIDE"] = "hide";
2433
2433
  return COLLAPSE_BEHAVIOUR2;
2434
2434
  })(COLLAPSE_BEHAVIOUR || {});
2435
- const _hoisted_1$x = {
2435
+ const _hoisted_1$C = {
2436
2436
  key: 0,
2437
2437
  class: "ui-v1-collapse"
2438
2438
  };
2439
- const _hoisted_2$h = {
2439
+ const _hoisted_2$k = {
2440
2440
  key: 1,
2441
2441
  class: "ui-v1-collapse"
2442
2442
  };
2443
- const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
2443
+ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
2444
2444
  __name: "UiCollapse",
2445
2445
  props: {
2446
2446
  /** Свёрнут/Развёрнут */
@@ -2558,12 +2558,12 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
2558
2558
  }, {
2559
2559
  default: vue.withCtx(() => [
2560
2560
  __props.collapseBehaviour === vue.unref(COLLAPSE_BEHAVIOUR).DISPOSE ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
2561
- __props.expanded ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$x, [
2561
+ __props.expanded ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$C, [
2562
2562
  vue.createElementVNode("div", null, [
2563
2563
  vue.renderSlot(_ctx.$slots, "default")
2564
2564
  ])
2565
2565
  ])) : vue.createCommentVNode("", true)
2566
- ], 64)) : vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", _hoisted_2$h, [
2566
+ ], 64)) : vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", _hoisted_2$k, [
2567
2567
  vue.createElementVNode("div", null, [
2568
2568
  vue.renderSlot(_ctx.$slots, "default")
2569
2569
  ])
@@ -2586,20 +2586,20 @@ var COLOR = /* @__PURE__ */ ((COLOR2) => {
2586
2586
  COLOR2["YELLOW"] = "yellow";
2587
2587
  return COLOR2;
2588
2588
  })(COLOR || {});
2589
- var SIZE$6 = /* @__PURE__ */ ((SIZE2) => {
2589
+ var SIZE$8 = /* @__PURE__ */ ((SIZE2) => {
2590
2590
  SIZE2["SM"] = "sm";
2591
2591
  SIZE2["MD"] = "md";
2592
2592
  return SIZE2;
2593
- })(SIZE$6 || {});
2593
+ })(SIZE$8 || {});
2594
2594
  const CollapseGroupRegisterKey = Symbol("UiCollapseGroup_register");
2595
2595
  const CollapseGroupUnregisterKey = Symbol("UiCollapseGroup_unregister");
2596
2596
  const CollapseGroupExpandKey = Symbol("UiCollapseGroup_expand");
2597
2597
  const CollapseGroupCollapseKey = Symbol("UiCollapseGroup_collapse");
2598
- const _hoisted_1$w = ["id", "aria-labelledby"];
2599
- const _hoisted_2$g = ["id", "disabled", "aria-controls", "aria-expanded", "aria-disabled"];
2600
- const _hoisted_3$d = { class: "ui-v1-collapse-box__icon-sprite" };
2601
- const _hoisted_4$8 = { class: "ui-v1-collapse-box__header-content" };
2602
- const _hoisted_5$6 = ["id"];
2598
+ const _hoisted_1$B = ["id", "aria-labelledby"];
2599
+ const _hoisted_2$j = ["id", "disabled", "aria-controls", "aria-expanded", "aria-disabled"];
2600
+ const _hoisted_3$f = { class: "ui-v1-collapse-box__icon-sprite" };
2601
+ const _hoisted_4$9 = { class: "ui-v1-collapse-box__header-content" };
2602
+ const _hoisted_5$7 = ["id"];
2603
2603
  const _hoisted_6$5 = ["id"];
2604
2604
  const _hoisted_7$3 = {
2605
2605
  key: 1,
@@ -2611,7 +2611,7 @@ const _hoisted_10 = {
2611
2611
  key: 0,
2612
2612
  class: "ui-v1-collapse-box__footer"
2613
2613
  };
2614
- const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
2614
+ const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
2615
2615
  ...{
2616
2616
  inheritAttrs: false
2617
2617
  },
@@ -2667,8 +2667,8 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
2667
2667
  /** Размер иконки */
2668
2668
  iconSize: {
2669
2669
  type: String,
2670
- default: SIZE$6.SM,
2671
- validator: (value) => Object.values(SIZE$6).includes(value)
2670
+ default: SIZE$8.SM,
2671
+ validator: (value) => Object.values(SIZE$8).includes(value)
2672
2672
  },
2673
2673
  /** Рамка вместо тени */
2674
2674
  bordered: {
@@ -2834,17 +2834,17 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
2834
2834
  [`ui-v1-collapse-box__icon_${__props.iconSize}`]: __props.iconSize
2835
2835
  })
2836
2836
  }, [
2837
- vue.createElementVNode("span", _hoisted_3$d, [
2837
+ vue.createElementVNode("span", _hoisted_3$f, [
2838
2838
  vue.renderSlot(_ctx.$slots, "icon")
2839
2839
  ])
2840
2840
  ], 2)) : vue.createCommentVNode("", true),
2841
- vue.createElementVNode("span", _hoisted_4$8, [
2841
+ vue.createElementVNode("span", _hoisted_4$9, [
2842
2842
  vue.createElementVNode("span", {
2843
2843
  id: boxId.value + "-title",
2844
2844
  class: "ui-v1-collapse-box__title"
2845
2845
  }, [
2846
2846
  vue.renderSlot(_ctx.$slots, "title")
2847
- ], 8, _hoisted_5$6),
2847
+ ], 8, _hoisted_5$7),
2848
2848
  _ctx.$slots["description"] ? (vue.openBlock(), vue.createElementBlock("span", {
2849
2849
  key: 0,
2850
2850
  id: boxId.value + "-description",
@@ -2856,9 +2856,9 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
2856
2856
  !__props.disabled ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_7$3, [
2857
2857
  vue.createVNode(vue.unref(IconChevronRight), { class: "ui-v1-collapse-box__arrow" })
2858
2858
  ])) : vue.createCommentVNode("", true)
2859
- ], 8, _hoisted_2$g)
2859
+ ], 8, _hoisted_2$j)
2860
2860
  ], 2),
2861
- vue.createVNode(_sfc_main$G, {
2861
+ vue.createVNode(_sfc_main$S, {
2862
2862
  id: boxId.value + "-collapse",
2863
2863
  "aria-hidden": !state.expanded ? "true" : "false",
2864
2864
  "aria-labelledby": boxId.value + "-button",
@@ -2893,11 +2893,11 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
2893
2893
  ]),
2894
2894
  _: 3
2895
2895
  }, 8, ["id", "aria-hidden", "aria-labelledby", "duration", "expanded", "collapse-behaviour"])
2896
- ], 16, _hoisted_1$w);
2896
+ ], 16, _hoisted_1$B);
2897
2897
  };
2898
2898
  }
2899
2899
  });
2900
- const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
2900
+ const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
2901
2901
  __name: "UiCollapseGroup",
2902
2902
  props: {
2903
2903
  /**
@@ -3015,19 +3015,19 @@ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
3015
3015
  };
3016
3016
  }
3017
3017
  });
3018
- const _hoisted_1$v = {
3018
+ const _hoisted_1$A = {
3019
3019
  xmlns: "http://www.w3.org/2000/svg",
3020
3020
  viewBox: "0 0 24 24"
3021
3021
  };
3022
- function render$c(_ctx, _cache) {
3023
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$v, [..._cache[0] || (_cache[0] = [
3022
+ function render$e(_ctx, _cache) {
3023
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$A, [..._cache[0] || (_cache[0] = [
3024
3024
  vue.createElementVNode("path", {
3025
3025
  fill: "currentColor",
3026
3026
  d: "M18 16V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2M4 4h12v12H4zm16 14V6a2 2 0 0 1 2 2v10a4 4 0 0 1-4 4H8a2 2 0 0 1-2-2h12a2 2 0 0 0 2-2"
3027
3027
  }, null, -1)
3028
3028
  ])]);
3029
3029
  }
3030
- const IconCopy = { render: render$c };
3030
+ const IconCopy = { render: render$e };
3031
3031
  const sides$1 = ["top", "right", "bottom", "left"];
3032
3032
  const min = Math.min;
3033
3033
  const max = Math.max;
@@ -4694,8 +4694,8 @@ if (typeof document !== "undefined" && typeof window !== "undefined") {
4694
4694
  window.addEventListener("click", onGlobalEvent("click"), true);
4695
4695
  }
4696
4696
  }
4697
- const _hoisted_1$u = { class: "ui-v1-popper__content" };
4698
- const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
4697
+ const _hoisted_1$z = { class: "ui-v1-popper__content" };
4698
+ const _sfc_main$P = /* @__PURE__ */ vue.defineComponent({
4699
4699
  __name: "UiPopper",
4700
4700
  props: {
4701
4701
  /** Флаг для ручного переключения видимости */
@@ -5041,7 +5041,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
5041
5041
  ref: arrow2,
5042
5042
  class: "ui-v1-popper__arrow"
5043
5043
  }, null, 512)) : vue.createCommentVNode("", true),
5044
- vue.createElementVNode("div", _hoisted_1$u, [
5044
+ vue.createElementVNode("div", _hoisted_1$z, [
5045
5045
  vue.renderSlot(_ctx.$slots, "default")
5046
5046
  ])
5047
5047
  ], 16)
@@ -5049,7 +5049,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
5049
5049
  };
5050
5050
  }
5051
5051
  });
5052
- const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
5052
+ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
5053
5053
  __name: "UiTooltip",
5054
5054
  props: {
5055
5055
  /** Флаг для ручного переключения видимости */
@@ -5160,7 +5160,7 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
5160
5160
  hide: () => popper.value?.hide()
5161
5161
  });
5162
5162
  return (_ctx, _cache) => {
5163
- return vue.openBlock(), vue.createBlock(_sfc_main$D, vue.mergeProps({
5163
+ return vue.openBlock(), vue.createBlock(_sfc_main$P, vue.mergeProps({
5164
5164
  ref_key: "popper",
5165
5165
  ref: popper,
5166
5166
  visible: __props.visible,
@@ -5194,11 +5194,11 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
5194
5194
  };
5195
5195
  }
5196
5196
  });
5197
- const _hoisted_1$t = { class: "ui-v1-copy-button__tooltip" };
5198
- const _hoisted_2$f = { class: "ui-v1-copy-button__icon" };
5199
- const _hoisted_3$c = { class: "ui-v1-copy-button__text" };
5200
- const _hoisted_4$7 = ["value"];
5201
- const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
5197
+ const _hoisted_1$y = { class: "ui-v1-copy-button__tooltip" };
5198
+ const _hoisted_2$i = { class: "ui-v1-copy-button__icon" };
5199
+ const _hoisted_3$e = { class: "ui-v1-copy-button__text" };
5200
+ const _hoisted_4$8 = ["value"];
5201
+ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
5202
5202
  __name: "UiCopyButton",
5203
5203
  props: {
5204
5204
  /** Текст для копирования в буфер обмена */
@@ -5209,7 +5209,7 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
5209
5209
  /** Размер кнопки */
5210
5210
  size: {
5211
5211
  type: String,
5212
- default: SIZE$7.XS
5212
+ default: SIZE$9.XS
5213
5213
  },
5214
5214
  /** Объект, содержащий параметры настройки Tooltip */
5215
5215
  tooltipOptions: {
@@ -5270,7 +5270,7 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
5270
5270
  onClick: copy
5271
5271
  }, [
5272
5272
  vue.renderSlot(_ctx.$slots, "trigger", {}, () => [
5273
- vue.createVNode(_sfc_main$M, {
5273
+ vue.createVNode(_sfc_main$Y, {
5274
5274
  size: __props.size,
5275
5275
  appearance: "tertiary"
5276
5276
  }, {
@@ -5280,7 +5280,7 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
5280
5280
  _: 1
5281
5281
  }, 8, ["size"])
5282
5282
  ]),
5283
- vue.createVNode(_sfc_main$C, vue.mergeProps({
5283
+ vue.createVNode(_sfc_main$O, vue.mergeProps({
5284
5284
  visible: visible.value,
5285
5285
  "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => visible.value = $event),
5286
5286
  target: rootTarget.value,
@@ -5290,12 +5290,12 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
5290
5290
  ...__props.tooltipOptions
5291
5291
  }), {
5292
5292
  default: vue.withCtx(() => [
5293
- vue.createElementVNode("div", _hoisted_1$t, [
5293
+ vue.createElementVNode("div", _hoisted_1$y, [
5294
5294
  copied.value ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
5295
- vue.createElementVNode("div", _hoisted_2$f, [
5295
+ vue.createElementVNode("div", _hoisted_2$i, [
5296
5296
  vue.createVNode(vue.unref(IconCheckmarkCircleOutlined))
5297
5297
  ]),
5298
- vue.createElementVNode("div", _hoisted_3$c, [
5298
+ vue.createElementVNode("div", _hoisted_3$e, [
5299
5299
  vue.renderSlot(_ctx.$slots, "hint-copied")
5300
5300
  ])
5301
5301
  ], 64)) : vue.renderSlot(_ctx.$slots, "hint", { key: 1 })
@@ -5310,7 +5310,7 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
5310
5310
  value: __props.text,
5311
5311
  class: "ui-v1-copy-button__area",
5312
5312
  type: "text"
5313
- }, null, 8, _hoisted_4$7)) : vue.createCommentVNode("", true)
5313
+ }, null, 8, _hoisted_4$8)) : vue.createCommentVNode("", true)
5314
5314
  ], 544);
5315
5315
  };
5316
5316
  }
@@ -5350,7 +5350,7 @@ function detectLocale() {
5350
5350
  }
5351
5351
  return "en-GB";
5352
5352
  }
5353
- const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
5353
+ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
5354
5354
  __name: "UiDate",
5355
5355
  props: {
5356
5356
  date: {
@@ -5377,12 +5377,12 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
5377
5377
  };
5378
5378
  }
5379
5379
  });
5380
- const _hoisted_1$s = {
5380
+ const _hoisted_1$x = {
5381
5381
  xmlns: "http://www.w3.org/2000/svg",
5382
5382
  viewBox: "0 0 24 24"
5383
5383
  };
5384
- function render$b(_ctx, _cache) {
5385
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$s, [..._cache[0] || (_cache[0] = [
5384
+ function render$d(_ctx, _cache) {
5385
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$x, [..._cache[0] || (_cache[0] = [
5386
5386
  vue.createElementVNode("path", {
5387
5387
  fill: "currentColor",
5388
5388
  "fill-rule": "evenodd",
@@ -5391,13 +5391,13 @@ function render$b(_ctx, _cache) {
5391
5391
  }, null, -1)
5392
5392
  ])]);
5393
5393
  }
5394
- const IconCalendar = { render: render$b };
5395
- const _hoisted_1$r = {
5394
+ const IconCalendar = { render: render$d };
5395
+ const _hoisted_1$w = {
5396
5396
  xmlns: "http://www.w3.org/2000/svg",
5397
5397
  viewBox: "0 0 24 24"
5398
5398
  };
5399
- function render$a(_ctx, _cache) {
5400
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$r, [..._cache[0] || (_cache[0] = [
5399
+ function render$c(_ctx, _cache) {
5400
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$w, [..._cache[0] || (_cache[0] = [
5401
5401
  vue.createElementVNode("path", {
5402
5402
  fill: "currentColor",
5403
5403
  "fill-rule": "evenodd",
@@ -5406,7 +5406,7 @@ function render$a(_ctx, _cache) {
5406
5406
  }, null, -1)
5407
5407
  ])]);
5408
5408
  }
5409
- const IconClearCircle = { render: render$a };
5409
+ const IconClearCircle = { render: render$c };
5410
5410
  var TYPE$1 = /* @__PURE__ */ ((TYPE2) => {
5411
5411
  TYPE2["EMAIL"] = "email";
5412
5412
  TYPE2["PASSWORD"] = "password";
@@ -5427,14 +5427,14 @@ var INPUTMODE = /* @__PURE__ */ ((INPUTMODE2) => {
5427
5427
  INPUTMODE2["URL"] = "url";
5428
5428
  return INPUTMODE2;
5429
5429
  })(INPUTMODE || {});
5430
- var SIZE$5 = /* @__PURE__ */ ((SIZE2) => {
5430
+ var SIZE$7 = /* @__PURE__ */ ((SIZE2) => {
5431
5431
  SIZE2["XS"] = "xs";
5432
5432
  SIZE2["SM"] = "sm";
5433
5433
  SIZE2["MD"] = "md";
5434
5434
  SIZE2["LG"] = "lg";
5435
5435
  SIZE2["XL"] = "xl";
5436
5436
  return SIZE2;
5437
- })(SIZE$5 || {});
5437
+ })(SIZE$7 || {});
5438
5438
  const decimalsOf = (value) => {
5439
5439
  const [, fraction] = String(value).replace(",", ".").split(".");
5440
5440
  return fraction ? fraction.length : 0;
@@ -5506,19 +5506,19 @@ const _i18n$5 = define({
5506
5506
  "ru-RU": messages_ru_RU$5
5507
5507
  }
5508
5508
  });
5509
- const _hoisted_1$q = ["id"];
5510
- const _hoisted_2$e = {
5509
+ const _hoisted_1$v = ["id"];
5510
+ const _hoisted_2$h = {
5511
5511
  key: 0,
5512
5512
  class: "ui-v1-textbox__prefix"
5513
5513
  };
5514
- const _hoisted_3$b = ["id", "type", "value", "max", "min", "step", "aria-invalid", "autocomplete", "inputmode", "maxlength", "placeholder", "readonly", "required", "disabled"];
5515
- const _hoisted_4$6 = ["id", "value", "aria-invalid", "autocomplete", "inputmode", "maxlength", "placeholder", "rows", "cols", "readonly", "required", "disabled"];
5516
- const _hoisted_5$5 = ["disabled", "aria-controls", "aria-label"];
5514
+ const _hoisted_3$d = ["id", "type", "value", "max", "min", "step", "aria-invalid", "autocomplete", "inputmode", "maxlength", "placeholder", "readonly", "required", "disabled"];
5515
+ const _hoisted_4$7 = ["id", "value", "aria-invalid", "autocomplete", "inputmode", "maxlength", "placeholder", "rows", "cols", "readonly", "required", "disabled"];
5516
+ const _hoisted_5$6 = ["disabled", "aria-controls", "aria-label"];
5517
5517
  const _hoisted_6$4 = {
5518
5518
  key: 7,
5519
5519
  class: "ui-v1-textbox__suffix"
5520
5520
  };
5521
- const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
5521
+ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
5522
5522
  __name: "UiTextbox",
5523
5523
  props: {
5524
5524
  /** Уникальный идентификатор поля */
@@ -5581,7 +5581,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
5581
5581
  /** Размер поля ввода */
5582
5582
  size: {
5583
5583
  type: String,
5584
- default: SIZE$5.SM
5584
+ default: SIZE$7.SM
5585
5585
  },
5586
5586
  /** Нативный атрибут input|textarea */
5587
5587
  placeholder: {
@@ -5936,13 +5936,13 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
5936
5936
  "ui-v1-textbox_autofit": __props.autofit,
5937
5937
  "ui-v1-textbox_invalid": __props.invalid,
5938
5938
  "ui-v1-textbox_outlined": __props.outlined,
5939
- "ui-v1-textbox_xs": __props.size === vue.unref(SIZE$5).XS,
5940
- "ui-v1-textbox_md": __props.size === vue.unref(SIZE$5).MD,
5941
- "ui-v1-textbox_lg": __props.size === vue.unref(SIZE$5).LG,
5942
- "ui-v1-textbox_xl": __props.size === vue.unref(SIZE$5).XL
5939
+ "ui-v1-textbox_xs": __props.size === vue.unref(SIZE$7).XS,
5940
+ "ui-v1-textbox_md": __props.size === vue.unref(SIZE$7).MD,
5941
+ "ui-v1-textbox_lg": __props.size === vue.unref(SIZE$7).LG,
5942
+ "ui-v1-textbox_xl": __props.size === vue.unref(SIZE$7).XL
5943
5943
  }
5944
5944
  }, _ctx.$attrs), [
5945
- __props.prefix || "prefix" in _ctx.$slots ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$e, [
5945
+ __props.prefix || "prefix" in _ctx.$slots ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$h, [
5946
5946
  vue.renderSlot(_ctx.$slots, "prefix", {}, () => [
5947
5947
  vue.createTextVNode(vue.toDisplayString(__props.prefix), 1)
5948
5948
  ])
@@ -5979,7 +5979,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
5979
5979
  onChange,
5980
5980
  onFocus,
5981
5981
  onBlur
5982
- }), null, 16, _hoisted_3$b)) : (vue.openBlock(), vue.createElementBlock("textarea", vue.mergeProps({
5982
+ }), null, 16, _hoisted_3$d)) : (vue.openBlock(), vue.createElementBlock("textarea", vue.mergeProps({
5983
5983
  key: 3,
5984
5984
  id: __props.id ?? vue.unref(uid2),
5985
5985
  ref_key: "textbox",
@@ -6002,7 +6002,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
6002
6002
  onChange,
6003
6003
  onFocus,
6004
6004
  onBlur
6005
- }), null, 16, _hoisted_4$6)),
6005
+ }), null, 16, _hoisted_4$7)),
6006
6006
  __props.autofit ? (vue.openBlock(), vue.createElementBlock("span", {
6007
6007
  key: 4,
6008
6008
  ref_key: "placeholderRef",
@@ -6019,7 +6019,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
6019
6019
  onClick: clear2
6020
6020
  }, [
6021
6021
  vue.createVNode(vue.unref(IconClearCircle), { "aria-hidden": "true" })
6022
- ], 8, _hoisted_5$5)) : vue.createCommentVNode("", true),
6022
+ ], 8, _hoisted_5$6)) : vue.createCommentVNode("", true),
6023
6023
  "trailing-icon" in _ctx.$slots ? (vue.openBlock(), vue.createElementBlock("span", {
6024
6024
  key: 6,
6025
6025
  class: "ui-v1-textbox__icon ui-v1-textbox__icon_trailing",
@@ -6032,17 +6032,17 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
6032
6032
  vue.createTextVNode(vue.toDisplayString(__props.suffix), 1)
6033
6033
  ])
6034
6034
  ])) : vue.createCommentVNode("", true)
6035
- ], 16, _hoisted_1$q);
6035
+ ], 16, _hoisted_1$v);
6036
6036
  };
6037
6037
  }
6038
6038
  });
6039
- var SIZE$4 = /* @__PURE__ */ ((SIZE2) => {
6039
+ var SIZE$6 = /* @__PURE__ */ ((SIZE2) => {
6040
6040
  SIZE2["XS"] = "xs";
6041
6041
  SIZE2["SM"] = "sm";
6042
6042
  SIZE2["MD"] = "md";
6043
6043
  SIZE2["LG"] = "lg";
6044
6044
  return SIZE2;
6045
- })(SIZE$4 || {});
6045
+ })(SIZE$6 || {});
6046
6046
  const deltaTransition$1 = (el) => {
6047
6047
  const delta = el.scrollWidth - el.clientWidth;
6048
6048
  return delta !== 0 ? {
@@ -6050,17 +6050,17 @@ const deltaTransition$1 = (el) => {
6050
6050
  animationDuration: `${delta * 15}ms`
6051
6051
  } : {};
6052
6052
  };
6053
- const _hoisted_1$p = {
6053
+ const _hoisted_1$u = {
6054
6054
  key: 0,
6055
6055
  class: "ui-v1-menu-item__avatar"
6056
6056
  };
6057
- const _hoisted_2$d = {
6057
+ const _hoisted_2$g = {
6058
6058
  key: 1,
6059
6059
  class: "ui-v1-menu-item__icon ui-v1-menu-item__icon_leading"
6060
6060
  };
6061
- const _hoisted_3$a = { class: "ui-v1-menu-item__content" };
6062
- const _hoisted_4$5 = { class: "ui-v1-menu-item__text" };
6063
- const _hoisted_5$4 = {
6061
+ const _hoisted_3$c = { class: "ui-v1-menu-item__content" };
6062
+ const _hoisted_4$6 = { class: "ui-v1-menu-item__text" };
6063
+ const _hoisted_5$5 = {
6064
6064
  key: 0,
6065
6065
  class: "ui-v1-menu-item__description"
6066
6066
  };
@@ -6072,13 +6072,13 @@ const _hoisted_7$2 = {
6072
6072
  key: 3,
6073
6073
  class: "ui-v1-menu-item__icon ui-v1-menu-item__icon_trailing"
6074
6074
  };
6075
- const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
6075
+ const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
6076
6076
  __name: "UiMenuItem",
6077
6077
  props: {
6078
6078
  /** Размер */
6079
6079
  size: {
6080
6080
  type: String,
6081
- default: SIZE$4.MD
6081
+ default: SIZE$6.MD
6082
6082
  },
6083
6083
  /** Описание */
6084
6084
  description: {
@@ -6151,13 +6151,13 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
6151
6151
  }),
6152
6152
  onMouseoverOnce: onHover
6153
6153
  }, [
6154
- _ctx.$slots["avatar"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$p, [
6154
+ _ctx.$slots["avatar"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$u, [
6155
6155
  vue.renderSlot(_ctx.$slots, "avatar")
6156
- ])) : _ctx.$slots["leading-icon"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$d, [
6156
+ ])) : _ctx.$slots["leading-icon"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$g, [
6157
6157
  vue.renderSlot(_ctx.$slots, "leading-icon")
6158
6158
  ])) : vue.createCommentVNode("", true),
6159
- vue.createElementVNode("div", _hoisted_3$a, [
6160
- vue.createElementVNode("div", _hoisted_4$5, [
6159
+ vue.createElementVNode("div", _hoisted_3$c, [
6160
+ vue.createElementVNode("div", _hoisted_4$6, [
6161
6161
  __props.ticker ? (vue.openBlock(), vue.createElementBlock("div", {
6162
6162
  key: 0,
6163
6163
  ref_key: "textRef",
@@ -6168,7 +6168,7 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
6168
6168
  vue.renderSlot(_ctx.$slots, "default")
6169
6169
  ], 4)) : vue.renderSlot(_ctx.$slots, "default", { key: 1 })
6170
6170
  ]),
6171
- _ctx.$slots["description"] || __props.description ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$4, [
6171
+ _ctx.$slots["description"] || __props.description ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$5, [
6172
6172
  vue.renderSlot(_ctx.$slots, "description", {}, () => [
6173
6173
  vue.createTextVNode(vue.toDisplayString(__props.description), 1)
6174
6174
  ])
@@ -6183,7 +6183,7 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
6183
6183
  };
6184
6184
  }
6185
6185
  });
6186
- const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
6186
+ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
6187
6187
  __name: "UiScrollBox",
6188
6188
  props: {
6189
6189
  /** Наименование тэга-обёртки для нативного скролла */
@@ -6361,7 +6361,7 @@ const isQuickDateEqual = (first, second) => {
6361
6361
  }
6362
6362
  return false;
6363
6363
  };
6364
- const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
6364
+ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
6365
6365
  __name: "UiDatePickerQuickMenu",
6366
6366
  props: {
6367
6367
  value: {
@@ -6387,18 +6387,18 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
6387
6387
  emit("change", props.nullable && isActive(date) ? null : date);
6388
6388
  };
6389
6389
  return (_ctx, _cache) => {
6390
- return vue.openBlock(), vue.createBlock(_sfc_main$x, {
6390
+ return vue.openBlock(), vue.createBlock(_sfc_main$J, {
6391
6391
  class: "ui-v1-date-picker__quick-menu",
6392
6392
  role: "menu",
6393
6393
  native: ""
6394
6394
  }, {
6395
6395
  default: vue.withCtx(() => [
6396
6396
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.items, (item, index) => {
6397
- return vue.openBlock(), vue.createBlock(_sfc_main$y, {
6397
+ return vue.openBlock(), vue.createBlock(_sfc_main$K, {
6398
6398
  key: "quick-item-" + index,
6399
6399
  active: isActive(item.value),
6400
6400
  "aria-current": isActive(item.value) ? "true" : "false",
6401
- size: vue.unref(SIZE$4).SM,
6401
+ size: vue.unref(SIZE$6).SM,
6402
6402
  role: "menuitem",
6403
6403
  onClick: ($event) => onClick(item.value)
6404
6404
  }, {
@@ -6439,11 +6439,11 @@ const _i18n$4 = define({
6439
6439
  "ru-RU": messages_ru_RU$4
6440
6440
  }
6441
6441
  });
6442
- const _hoisted_1$o = ["id", "aria-controls", "aria-disabled", "aria-expanded", "aria-readonly"];
6443
- const _hoisted_2$c = ["id"];
6444
- const _hoisted_3$9 = { class: "ui-v1-date-picker__workspace" };
6445
- const _hoisted_4$4 = { class: "ui-v1-date-picker__action" };
6446
- const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6442
+ const _hoisted_1$t = ["id", "aria-controls", "aria-disabled", "aria-expanded", "aria-readonly"];
6443
+ const _hoisted_2$f = ["id"];
6444
+ const _hoisted_3$b = { class: "ui-v1-date-picker__workspace" };
6445
+ const _hoisted_4$5 = { class: "ui-v1-date-picker__action" };
6446
+ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
6447
6447
  ...{
6448
6448
  inheritAttrs: false
6449
6449
  },
@@ -6488,8 +6488,8 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6488
6488
  },
6489
6489
  appearance: {
6490
6490
  type: String,
6491
- validator: (appearance) => Object.values(APPEARANCE$2).includes(appearance),
6492
- default: APPEARANCE$2.SINGLE
6491
+ validator: (appearance) => Object.values(APPEARANCE$4).includes(appearance),
6492
+ default: APPEARANCE$4.SINGLE
6493
6493
  },
6494
6494
  synchronization: {
6495
6495
  type: String,
@@ -6810,7 +6810,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6810
6810
  onClick: toggle
6811
6811
  }, [
6812
6812
  vue.renderSlot(_ctx.$slots, "trigger")
6813
- ])) : (vue.openBlock(), vue.createBlock(_sfc_main$z, vue.mergeProps({
6813
+ ])) : (vue.openBlock(), vue.createBlock(_sfc_main$L, vue.mergeProps({
6814
6814
  key: 1,
6815
6815
  id: inputId.value,
6816
6816
  ref_key: "textbox",
@@ -6845,7 +6845,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6845
6845
  key: "0"
6846
6846
  } : void 0
6847
6847
  ]), 1040, ["id", "clearable", "value", "placeholder", "active", "disabled", "readonly"])),
6848
- vue.createVNode(_sfc_main$D, vue.mergeProps({
6848
+ vue.createVNode(_sfc_main$P, vue.mergeProps({
6849
6849
  id: `${inputId.value}-popper`,
6850
6850
  visible: showCalendar.value,
6851
6851
  target: triggerTarget.value,
@@ -6868,15 +6868,15 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6868
6868
  onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
6869
6869
  }, ["stop"]))
6870
6870
  }, [
6871
- __props.quickOptions.length > 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$w, {
6871
+ __props.quickOptions.length > 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$I, {
6872
6872
  key: 0,
6873
6873
  value: view.value,
6874
6874
  items: __props.quickOptions,
6875
6875
  nullable: __props.nullable,
6876
6876
  onChange: onQuickChange
6877
6877
  }, null, 8, ["value", "items", "nullable"])) : vue.createCommentVNode("", true),
6878
- vue.createElementVNode("div", _hoisted_3$9, [
6879
- vue.createVNode(_sfc_main$I, {
6878
+ vue.createElementVNode("div", _hoisted_3$b, [
6879
+ vue.createVNode(_sfc_main$U, {
6880
6880
  ref_key: "calendar",
6881
6881
  ref: calendar,
6882
6882
  value: view.value,
@@ -6893,11 +6893,11 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6893
6893
  key: 0,
6894
6894
  class: vue.normalizeClass({
6895
6895
  "ui-v1-date-picker__footer": true,
6896
- "ui-v1-date-picker__footer_horizontal": __props.appearance === vue.unref(APPEARANCE$2).DOUBLE
6896
+ "ui-v1-date-picker__footer_horizontal": __props.appearance === vue.unref(APPEARANCE$4).DOUBLE
6897
6897
  })
6898
6898
  }, [
6899
- vue.createElementVNode("div", _hoisted_4$4, [
6900
- vue.createVNode(_sfc_main$M, {
6899
+ vue.createElementVNode("div", _hoisted_4$5, [
6900
+ vue.createVNode(_sfc_main$Y, {
6901
6901
  appearance: "tertiary",
6902
6902
  class: "ui-v1-date-picker__button",
6903
6903
  onClick: reset
@@ -6907,7 +6907,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6907
6907
  ]),
6908
6908
  _: 1
6909
6909
  }),
6910
- vue.createVNode(_sfc_main$M, {
6910
+ vue.createVNode(_sfc_main$Y, {
6911
6911
  class: "ui-v1-date-picker__button",
6912
6912
  onClick: apply2
6913
6913
  }, {
@@ -6919,11 +6919,11 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
6919
6919
  ])
6920
6920
  ], 2)) : vue.createCommentVNode("", true)
6921
6921
  ])
6922
- ], 8, _hoisted_2$c)
6922
+ ], 8, _hoisted_2$f)
6923
6923
  ]),
6924
6924
  _: 1
6925
6925
  }, 16, ["id", "visible", "target", "container", "placement", "aria-hidden", "class", "disabled"])
6926
- ], 16, _hoisted_1$o);
6926
+ ], 16, _hoisted_1$t);
6927
6927
  };
6928
6928
  }
6929
6929
  });
@@ -6932,7 +6932,7 @@ var ALIGN$1 = /* @__PURE__ */ ((ALIGN2) => {
6932
6932
  ALIGN2["RIGHT"] = "right";
6933
6933
  return ALIGN2;
6934
6934
  })(ALIGN$1 || {});
6935
- const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
6935
+ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
6936
6936
  __name: "UiError",
6937
6937
  props: {
6938
6938
  /** Тест, разметка ошибки */
@@ -6971,46 +6971,46 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
6971
6971
  };
6972
6972
  }
6973
6973
  });
6974
- const _hoisted_1$n = {
6974
+ const _hoisted_1$s = {
6975
6975
  xmlns: "http://www.w3.org/2000/svg",
6976
6976
  viewBox: "0 0 24 24"
6977
6977
  };
6978
- function render$9(_ctx, _cache) {
6979
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$n, [..._cache[0] || (_cache[0] = [
6978
+ function render$b(_ctx, _cache) {
6979
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$s, [..._cache[0] || (_cache[0] = [
6980
6980
  vue.createElementVNode("path", {
6981
6981
  fill: "currentColor",
6982
6982
  d: "M12.72 15.78a.75.75 0 0 1-.53.22h-.38a.77.77 0 0 1-.53-.22l-5.13-5.14a.5.5 0 0 1 0-.71l.71-.71a.49.49 0 0 1 .7 0L12 13.67l4.44-4.45a.5.5 0 0 1 .71 0l.7.71a.5.5 0 0 1 0 .71z"
6983
6983
  }, null, -1)
6984
6984
  ])]);
6985
6985
  }
6986
- const IconChevronDown = { render: render$9 };
6987
- const _hoisted_1$m = {
6986
+ const IconChevronDown = { render: render$b };
6987
+ const _hoisted_1$r = {
6988
6988
  xmlns: "http://www.w3.org/2000/svg",
6989
6989
  viewBox: "0 0 24 24"
6990
6990
  };
6991
- function render$8(_ctx, _cache) {
6992
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$m, [..._cache[0] || (_cache[0] = [
6991
+ function render$a(_ctx, _cache) {
6992
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$r, [..._cache[0] || (_cache[0] = [
6993
6993
  vue.createElementVNode("path", {
6994
6994
  fill: "currentColor",
6995
6995
  d: "M11.28 8.22a.75.75 0 0 1 .53-.22h.38a.77.77 0 0 1 .53.22l5.13 5.14a.5.5 0 0 1 0 .71l-.71.71a.49.49 0 0 1-.7 0L12 10.33l-4.44 4.45a.5.5 0 0 1-.71 0l-.7-.71a.5.5 0 0 1 0-.71z"
6996
6996
  }, null, -1)
6997
6997
  ])]);
6998
6998
  }
6999
- const IconChevronUp = { render: render$8 };
7000
- const _hoisted_1$l = ["id", "aria-expanded", "aria-hidden"];
7001
- const _hoisted_2$b = {
6999
+ const IconChevronUp = { render: render$a };
7000
+ const _hoisted_1$q = ["id", "aria-expanded", "aria-hidden"];
7001
+ const _hoisted_2$e = {
7002
7002
  "aria-hidden": "true",
7003
7003
  class: "ui-v1-infobox__media"
7004
7004
  };
7005
- const _hoisted_3$8 = { class: "ui-v1-infobox__icon" };
7006
- const _hoisted_4$3 = { class: "ui-v1-infobox__content" };
7007
- const _hoisted_5$3 = {
7005
+ const _hoisted_3$a = { class: "ui-v1-infobox__icon" };
7006
+ const _hoisted_4$4 = { class: "ui-v1-infobox__content" };
7007
+ const _hoisted_5$4 = {
7008
7008
  key: 0,
7009
7009
  class: "ui-v1-infobox__header"
7010
7010
  };
7011
7011
  const _hoisted_6$2 = ["id"];
7012
7012
  const _hoisted_7$1 = ["aria-controls", "aria-expanded"];
7013
- const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
7013
+ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
7014
7014
  ...{
7015
7015
  inheritAttrs: false
7016
7016
  },
@@ -7147,7 +7147,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
7147
7147
  syncExpandedFromProps();
7148
7148
  });
7149
7149
  return (_ctx, _cache) => {
7150
- return vue.openBlock(), vue.createBlock(_sfc_main$S, {
7150
+ return vue.openBlock(), vue.createBlock(_sfc_main$12, {
7151
7151
  name: "fade",
7152
7152
  onAfterEnter,
7153
7153
  onAfterLeave,
@@ -7167,8 +7167,8 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
7167
7167
  },
7168
7168
  role: "alert"
7169
7169
  }, rootAttrs.value), [
7170
- vue.createElementVNode("div", _hoisted_2$b, [
7171
- vue.createElementVNode("div", _hoisted_3$8, [
7170
+ vue.createElementVNode("div", _hoisted_2$e, [
7171
+ vue.createElementVNode("div", _hoisted_3$a, [
7172
7172
  vue.renderSlot(_ctx.$slots, "icon", {
7173
7173
  expanded: state.shouldBeExpanded
7174
7174
  }, () => [
@@ -7176,8 +7176,8 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
7176
7176
  ])
7177
7177
  ])
7178
7178
  ]),
7179
- vue.createElementVNode("div", _hoisted_4$3, [
7180
- hasHeader.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$3, [
7179
+ vue.createElementVNode("div", _hoisted_4$4, [
7180
+ hasHeader.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$4, [
7181
7181
  hasTitle.value ? (vue.openBlock(), vue.createElementBlock("div", {
7182
7182
  key: 0,
7183
7183
  id: titleId.value,
@@ -7213,7 +7213,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
7213
7213
  }))
7214
7214
  ], 8, _hoisted_7$1)) : vue.createCommentVNode("", true)
7215
7215
  ])) : vue.createCommentVNode("", true),
7216
- vue.createVNode(_sfc_main$G, {
7216
+ vue.createVNode(_sfc_main$S, {
7217
7217
  id: bodyId.value,
7218
7218
  "aria-labelledby": hasTitle.value ? titleId.value : void 0,
7219
7219
  expanded: bodyExpanded.value,
@@ -7241,7 +7241,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
7241
7241
  }, [
7242
7242
  vue.createVNode(vue.unref(IconClear), { class: "ui-v1-infobox__closer-icon" })
7243
7243
  ])) : vue.createCommentVNode("", true)
7244
- ], 16, _hoisted_1$l), [
7244
+ ], 16, _hoisted_1$q), [
7245
7245
  [vue.vShow, state.shouldBeShown]
7246
7246
  ])
7247
7247
  ]),
@@ -7250,28 +7250,28 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
7250
7250
  };
7251
7251
  }
7252
7252
  });
7253
- const _hoisted_1$k = {
7253
+ const _hoisted_1$p = {
7254
7254
  xmlns: "http://www.w3.org/2000/svg",
7255
7255
  viewBox: "0 0 24 24"
7256
7256
  };
7257
- function render$7(_ctx, _cache) {
7258
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$k, [..._cache[0] || (_cache[0] = [
7257
+ function render$9(_ctx, _cache) {
7258
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$p, [..._cache[0] || (_cache[0] = [
7259
7259
  vue.createElementVNode("path", {
7260
7260
  fill: "currentColor",
7261
7261
  d: "m6.844 17.854-.7-.703a.5.5 0 0 1 0-.704l8.48-8.456-6.212.007a.49.49 0 0 1-.496-.5l.007-.991a.5.5 0 0 1 .496-.5L16.994 6c.196 0 .385.078.524.218l.265.267c.137.142.215.33.217.528l-.007 8.633a.5.5 0 0 1-.496.5h-.992a.48.48 0 0 1-.49-.493l.007-6.255-8.48 8.456a.49.49 0 0 1-.698 0"
7262
7262
  }, null, -1)
7263
7263
  ])]);
7264
7264
  }
7265
- const IconOpenInNew = { render: render$7 };
7266
- var APPEARANCE$1 = /* @__PURE__ */ ((APPEARANCE2) => {
7265
+ const IconOpenInNew = { render: render$9 };
7266
+ var APPEARANCE$3 = /* @__PURE__ */ ((APPEARANCE2) => {
7267
7267
  APPEARANCE2["BREADCRUMBS"] = "breadcrumbs";
7268
7268
  APPEARANCE2["DEFAULT"] = "default";
7269
7269
  APPEARANCE2["NAVIGATION"] = "navigation";
7270
7270
  APPEARANCE2["NAVIGATION_ANCHOR"] = "navigation-anchor";
7271
7271
  APPEARANCE2["TITLE"] = "title";
7272
7272
  return APPEARANCE2;
7273
- })(APPEARANCE$1 || {});
7274
- var SIZE$3 = /* @__PURE__ */ ((SIZE2) => {
7273
+ })(APPEARANCE$3 || {});
7274
+ var SIZE$5 = /* @__PURE__ */ ((SIZE2) => {
7275
7275
  SIZE2["ARTICLE"] = "article";
7276
7276
  SIZE2["BODY"] = "body";
7277
7277
  SIZE2["PARAGRAPH"] = "paragraph";
@@ -7280,17 +7280,17 @@ var SIZE$3 = /* @__PURE__ */ ((SIZE2) => {
7280
7280
  SIZE2["TITLE01"] = "title-01";
7281
7281
  SIZE2["TITLE02"] = "title-02";
7282
7282
  return SIZE2;
7283
- })(SIZE$3 || {});
7284
- const _hoisted_1$j = ["href", "target"];
7285
- const _hoisted_2$a = {
7283
+ })(SIZE$5 || {});
7284
+ const _hoisted_1$o = ["href", "target"];
7285
+ const _hoisted_2$d = {
7286
7286
  key: 0,
7287
7287
  class: "ui-v1-link__inner"
7288
7288
  };
7289
- const _hoisted_3$7 = {
7289
+ const _hoisted_3$9 = {
7290
7290
  key: 2,
7291
7291
  class: "ui-v1-link__icon"
7292
7292
  };
7293
- const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
7293
+ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
7294
7294
  __name: "UiLink",
7295
7295
  props: {
7296
7296
  /** Атрибут ссылки */
@@ -7310,14 +7310,14 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
7310
7310
  /** Тип ссылок */
7311
7311
  appearance: {
7312
7312
  type: String,
7313
- validator: (appearance) => Object.values(APPEARANCE$1).includes(appearance),
7314
- default: APPEARANCE$1.DEFAULT
7313
+ validator: (appearance) => Object.values(APPEARANCE$3).includes(appearance),
7314
+ default: APPEARANCE$3.DEFAULT
7315
7315
  },
7316
7316
  /** Размер текста */
7317
7317
  size: {
7318
7318
  type: String,
7319
- validator: (size) => Object.values(SIZE$3).includes(size),
7320
- default: SIZE$3.BODY
7319
+ validator: (size) => Object.values(SIZE$5).includes(size),
7320
+ default: SIZE$5.BODY
7321
7321
  },
7322
7322
  /** Инвертированный цвет ссылок для тёмного фона */
7323
7323
  light: {
@@ -7359,19 +7359,19 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
7359
7359
  },
7360
7360
  target: __props.external ? "_blank" : "_self"
7361
7361
  }, _ctx.$attrs), [
7362
- __props.dotted ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$a, [
7362
+ __props.dotted ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$d, [
7363
7363
  vue.renderSlot(_ctx.$slots, "default")
7364
7364
  ])) : vue.renderSlot(_ctx.$slots, "default", { key: 1 }),
7365
- _ctx.$slots.icon || __props.external ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$7, [
7365
+ _ctx.$slots.icon || __props.external ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$9, [
7366
7366
  vue.renderSlot(_ctx.$slots, "icon", {}, () => [
7367
7367
  vue.createVNode(vue.unref(IconOpenInNew), { class: "ui-v1-link__icon-sprite" })
7368
7368
  ])
7369
7369
  ])) : vue.createCommentVNode("", true)
7370
- ], 16, _hoisted_1$j);
7370
+ ], 16, _hoisted_1$o);
7371
7371
  };
7372
7372
  }
7373
7373
  });
7374
- const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
7374
+ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
7375
7375
  __name: "UiLoader",
7376
7376
  props: {
7377
7377
  /** Диаметр (размер) окружности индикатора */
@@ -7403,7 +7403,7 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
7403
7403
  },
7404
7404
  setup(__props) {
7405
7405
  return (_ctx, _cache) => {
7406
- return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(__props.transition ? _sfc_main$S : "div"), vue.normalizeProps(vue.guardReactiveProps(__props.transition ? {
7406
+ return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(__props.transition ? _sfc_main$12 : "div"), vue.normalizeProps(vue.guardReactiveProps(__props.transition ? {
7407
7407
  appear: true,
7408
7408
  class: "ui-v1-loader-wrapper",
7409
7409
  name: __props.transition
@@ -7437,27 +7437,27 @@ const _export_sfc = (sfc, props) => {
7437
7437
  }
7438
7438
  return target;
7439
7439
  };
7440
- const _sfc_main$q = {};
7441
- const _hoisted_1$i = { class: "ui-v1-menu-item-group" };
7442
- const _hoisted_2$9 = { class: "ui-v1-menu-item-group__head" };
7443
- const _hoisted_3$6 = {
7440
+ const _sfc_main$C = {};
7441
+ const _hoisted_1$n = { class: "ui-v1-menu-item-group" };
7442
+ const _hoisted_2$c = { class: "ui-v1-menu-item-group__head" };
7443
+ const _hoisted_3$8 = {
7444
7444
  key: 0,
7445
7445
  class: "ui-v1-menu-item-group__head-option"
7446
7446
  };
7447
- const _hoisted_4$2 = {
7447
+ const _hoisted_4$3 = {
7448
7448
  key: 1,
7449
7449
  class: "ui-v1-menu-item-group__head-inner"
7450
7450
  };
7451
- const _hoisted_5$2 = {
7451
+ const _hoisted_5$3 = {
7452
7452
  key: 0,
7453
7453
  class: "ui-v1-menu-item-group__count"
7454
7454
  };
7455
7455
  function _sfc_render(_ctx, _cache) {
7456
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$i, [
7457
- vue.createElementVNode("div", _hoisted_2$9, [
7458
- _ctx.$slots.option ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$6, [
7456
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$n, [
7457
+ vue.createElementVNode("div", _hoisted_2$c, [
7458
+ _ctx.$slots.option ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$8, [
7459
7459
  vue.renderSlot(_ctx.$slots, "option")
7460
- ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$2, [
7460
+ ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$3, [
7461
7461
  vue.createElementVNode("div", {
7462
7462
  class: vue.normalizeClass({
7463
7463
  "ui-v1-menu-item-group__title": true,
@@ -7466,7 +7466,7 @@ function _sfc_render(_ctx, _cache) {
7466
7466
  }, [
7467
7467
  vue.renderSlot(_ctx.$slots, "label")
7468
7468
  ], 2),
7469
- _ctx.$slots.quantity ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$2, [
7469
+ _ctx.$slots.quantity ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$3, [
7470
7470
  vue.renderSlot(_ctx.$slots, "quantity")
7471
7471
  ])) : vue.createCommentVNode("", true)
7472
7472
  ]))
@@ -7474,7 +7474,7 @@ function _sfc_render(_ctx, _cache) {
7474
7474
  vue.renderSlot(_ctx.$slots, "default")
7475
7475
  ]);
7476
7476
  }
7477
- const UiMenuItemGroup = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render]]);
7477
+ const UiMenuItemGroup = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["render", _sfc_render]]);
7478
7478
  class LayerRegistry {
7479
7479
  registry;
7480
7480
  started = false;
@@ -7546,8 +7546,8 @@ const plugin = {
7546
7546
  }
7547
7547
  };
7548
7548
  const nextAnimationFrame = async () => new Promise((resolve) => requestAnimationFrame(resolve));
7549
- let counter$1 = 0;
7550
- const uid = (prefix) => `${prefix}-${++counter$1}`;
7549
+ let counter$2 = 0;
7550
+ const uid = (prefix) => `${prefix}-${++counter$2}`;
7551
7551
  var CLOSE_METHOD = /* @__PURE__ */ ((CLOSE_METHOD2) => {
7552
7552
  CLOSE_METHOD2["CLICK_CROSS"] = "Cross";
7553
7553
  CLOSE_METHOD2["CLICK_OUTSIDE"] = "Outside";
@@ -7565,16 +7565,16 @@ var SCROLLING$1 = /* @__PURE__ */ ((SCROLLING2) => {
7565
7565
  SCROLLING2["NONE"] = "none";
7566
7566
  return SCROLLING2;
7567
7567
  })(SCROLLING$1 || {});
7568
- var SIZE$2 = /* @__PURE__ */ ((SIZE2) => {
7568
+ var SIZE$4 = /* @__PURE__ */ ((SIZE2) => {
7569
7569
  SIZE2["LG"] = "lg";
7570
7570
  SIZE2["SM"] = "sm";
7571
7571
  return SIZE2;
7572
- })(SIZE$2 || {});
7573
- const _hoisted_1$h = ["id", "aria-hidden", "role"];
7574
- const _hoisted_2$8 = ["id"];
7575
- const _hoisted_3$5 = { class: "ui-v1-modal-sidebar__header" };
7576
- const _hoisted_4$1 = { class: "ui-v1-modal-sidebar__header-inner" };
7577
- const _hoisted_5$1 = {
7572
+ })(SIZE$4 || {});
7573
+ const _hoisted_1$m = ["id", "aria-hidden", "role"];
7574
+ const _hoisted_2$b = ["id"];
7575
+ const _hoisted_3$7 = { class: "ui-v1-modal-sidebar__header" };
7576
+ const _hoisted_4$2 = { class: "ui-v1-modal-sidebar__header-inner" };
7577
+ const _hoisted_5$2 = {
7578
7578
  "aria-level": "1",
7579
7579
  class: "ui-v1-modal-sidebar__title",
7580
7580
  role: "heading"
@@ -7588,7 +7588,7 @@ const _hoisted_8 = {
7588
7588
  key: 2,
7589
7589
  class: "ui-v1-modal-sidebar__footer"
7590
7590
  };
7591
- const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
7591
+ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
7592
7592
  ...{
7593
7593
  inheritAttrs: false
7594
7594
  },
@@ -7634,7 +7634,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
7634
7634
  /** Размер панели */
7635
7635
  size: {
7636
7636
  type: String,
7637
- default: SIZE$2.SM
7637
+ default: SIZE$4.SM
7638
7638
  },
7639
7639
  /** ARIA-роль модального контейнера */
7640
7640
  role: {
@@ -7814,7 +7814,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
7814
7814
  key: 0,
7815
7815
  to: vue.unref(globals)?.container || "body"
7816
7816
  }, [
7817
- vue.createVNode(_sfc_main$S, {
7817
+ vue.createVNode(_sfc_main$12, {
7818
7818
  name: "fade-2",
7819
7819
  onBeforeEnter: _cache[5] || (_cache[5] = ($event) => visibilityOfOverlay.value = "showing"),
7820
7820
  onAfterEnter: _cache[6] || (_cache[6] = ($event) => visibilityOfOverlay.value = "shown"),
@@ -7835,7 +7835,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
7835
7835
  "aria-modal": "true",
7836
7836
  role: __props.role
7837
7837
  }, _ctx.$attrs, { onClick: onBackdropClick }), [
7838
- vue.createVNode(_sfc_main$S, {
7838
+ vue.createVNode(_sfc_main$12, {
7839
7839
  name: `slide-${__props.direction}`,
7840
7840
  onBeforeEnter: _cache[1] || (_cache[1] = ($event) => visibilityOfSidebar.value = "showing"),
7841
7841
  onAfterEnter: _cache[2] || (_cache[2] = ($event) => visibilityOfSidebar.value = "shown"),
@@ -7850,13 +7850,13 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
7850
7850
  "ui-v1-modal-sidebar": true,
7851
7851
  "ui-v1-modal-sidebar_fixed": __props.fixed,
7852
7852
  "ui-v1-modal-sidebar_left": __props.direction === vue.unref(DIRECTION$2).LEFT,
7853
- "ui-v1-modal-sidebar_size_sm": __props.size === vue.unref(SIZE$2).SM,
7854
- "ui-v1-modal-sidebar_size_lg": __props.size === vue.unref(SIZE$2).LG
7853
+ "ui-v1-modal-sidebar_size_sm": __props.size === vue.unref(SIZE$4).SM,
7854
+ "ui-v1-modal-sidebar_size_lg": __props.size === vue.unref(SIZE$4).LG
7855
7855
  })
7856
7856
  }, [
7857
- vue.createElementVNode("header", _hoisted_3$5, [
7858
- vue.createElementVNode("div", _hoisted_4$1, [
7859
- vue.createElementVNode("div", _hoisted_5$1, [
7857
+ vue.createElementVNode("header", _hoisted_3$7, [
7858
+ vue.createElementVNode("div", _hoisted_4$2, [
7859
+ vue.createElementVNode("div", _hoisted_5$2, [
7860
7860
  vue.renderSlot(_ctx.$slots, "title", {
7861
7861
  overlapped: state.overlapped
7862
7862
  })
@@ -7876,7 +7876,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
7876
7876
  "aria-hidden": "true",
7877
7877
  width: "32"
7878
7878
  }),
7879
- vue.createVNode(_sfc_main$C, {
7879
+ vue.createVNode(_sfc_main$O, {
7880
7880
  target: closerTarget.value,
7881
7881
  "offset-main-axis": 0
7882
7882
  }, {
@@ -7891,7 +7891,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
7891
7891
  vue.renderSlot(_ctx.$slots, "default", {
7892
7892
  overlapped: state.overlapped
7893
7893
  })
7894
- ])) : (vue.openBlock(), vue.createBlock(_sfc_main$x, {
7894
+ ])) : (vue.openBlock(), vue.createBlock(_sfc_main$J, {
7895
7895
  key: 1,
7896
7896
  native: __props.scrolling === vue.unref(SCROLLING$1).NATIVE,
7897
7897
  class: "ui-v1-modal-sidebar__body",
@@ -7910,11 +7910,11 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
7910
7910
  overlapped: state.overlapped
7911
7911
  })
7912
7912
  ])) : vue.createCommentVNode("", true)
7913
- ], 10, _hoisted_2$8)) : vue.createCommentVNode("", true)
7913
+ ], 10, _hoisted_2$b)) : vue.createCommentVNode("", true)
7914
7914
  ]),
7915
7915
  _: 3
7916
7916
  }, 8, ["name"])
7917
- ], 16, _hoisted_1$h), [
7917
+ ], 16, _hoisted_1$m), [
7918
7918
  [vue.vShow, state.shown]
7919
7919
  ])
7920
7920
  ]),
@@ -7924,19 +7924,19 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
7924
7924
  };
7925
7925
  }
7926
7926
  });
7927
- var APPEARANCE = /* @__PURE__ */ ((APPEARANCE2) => {
7927
+ var APPEARANCE$2 = /* @__PURE__ */ ((APPEARANCE2) => {
7928
7928
  APPEARANCE2["ALERT"] = "alert";
7929
7929
  APPEARANCE2["DIALOG"] = "dialog";
7930
7930
  APPEARANCE2["POPUP"] = "popup";
7931
7931
  APPEARANCE2["HINT"] = "hint";
7932
7932
  return APPEARANCE2;
7933
- })(APPEARANCE || {});
7933
+ })(APPEARANCE$2 || {});
7934
7934
  var SCROLLING = /* @__PURE__ */ ((SCROLLING2) => {
7935
7935
  SCROLLING2["NORMAL"] = "normal";
7936
7936
  SCROLLING2["NATIVE"] = "native";
7937
7937
  return SCROLLING2;
7938
7938
  })(SCROLLING || {});
7939
- const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
7939
+ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
7940
7940
  __name: "UiModalWindowSurface",
7941
7941
  props: {
7942
7942
  /** Атрибут id корневого элемента модального окна. Должен быть уникальным на странице */
@@ -7957,8 +7957,8 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
7957
7957
  /** Внешний вид */
7958
7958
  appearance: {
7959
7959
  type: String,
7960
- validator: (appearance) => expect(appearance).toBeOneOf(APPEARANCE),
7961
- default: APPEARANCE.POPUP
7960
+ validator: (appearance) => expect(appearance).toBeOneOf(APPEARANCE$2),
7961
+ default: APPEARANCE$2.POPUP
7962
7962
  },
7963
7963
  /** Вывод на весь экран */
7964
7964
  fullscreen: {
@@ -8156,7 +8156,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
8156
8156
  const slots = vue.useSlots();
8157
8157
  const renderBody = () => {
8158
8158
  const appearance = props.appearance;
8159
- return vue.h(_sfc_main$S, {
8159
+ return vue.h(_sfc_main$12, {
8160
8160
  name: "zoom",
8161
8161
  onBeforeEnter: () => visibilityOfBody.value = "showing",
8162
8162
  onAfterEnter: () => visibilityOfBody.value = "shown",
@@ -8166,10 +8166,10 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
8166
8166
  ref: body,
8167
8167
  class: {
8168
8168
  "ui-v1-modal-window": true,
8169
- "ui-v1-modal-window_alert": appearance === APPEARANCE.ALERT,
8170
- "ui-v1-modal-window_dialog": appearance === APPEARANCE.DIALOG,
8171
- "ui-v1-modal-window_popup": appearance === APPEARANCE.POPUP,
8172
- "ui-v1-modal-window_hint": appearance === APPEARANCE.HINT,
8169
+ "ui-v1-modal-window_alert": appearance === APPEARANCE$2.ALERT,
8170
+ "ui-v1-modal-window_dialog": appearance === APPEARANCE$2.DIALOG,
8171
+ "ui-v1-modal-window_popup": appearance === APPEARANCE$2.POPUP,
8172
+ "ui-v1-modal-window_hint": appearance === APPEARANCE$2.HINT,
8173
8173
  "ui-v1-popper-container": true
8174
8174
  }
8175
8175
  }, slots) : []);
@@ -8181,7 +8181,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
8181
8181
  };
8182
8182
  const EmbedModalWindowSurface = () => !state.attached ? void 0 : vue.h(vue.Teleport, {
8183
8183
  to: globals?.container ?? document.body
8184
- }, vue.h(_sfc_main$S, {
8184
+ }, vue.h(_sfc_main$12, {
8185
8185
  name: "fade-2",
8186
8186
  onBeforeEnter: () => visibilityOfOverlay.value = "showing",
8187
8187
  onAfterEnter: () => visibilityOfOverlay.value = "shown",
@@ -8199,11 +8199,11 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
8199
8199
  "ui-v1-modal_overlapped": state.overlapped
8200
8200
  }],
8201
8201
  onClick: onOverlayClick
8202
- }, vue.h(_sfc_main$x, {
8202
+ }, vue.h(_sfc_main$J, {
8203
8203
  class: {
8204
8204
  "ui-v1-modal-window-container": true,
8205
8205
  "ui-v1-modal-window-container_fullscreen": props.fullscreen,
8206
- "ui-v1-modal-window-container_responsive": props.responsive && props.appearance === APPEARANCE.POPUP
8206
+ "ui-v1-modal-window-container_responsive": props.responsive && props.appearance === APPEARANCE$2.POPUP
8207
8207
  },
8208
8208
  showOnMac: true,
8209
8209
  native: props.scrolling === SCROLLING.NATIVE,
@@ -8223,12 +8223,12 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
8223
8223
  };
8224
8224
  }
8225
8225
  });
8226
- const _hoisted_1$g = {
8226
+ const _hoisted_1$l = {
8227
8227
  xmlns: "http://www.w3.org/2000/svg",
8228
8228
  viewBox: "0 0 24 24"
8229
8229
  };
8230
- function render$6(_ctx, _cache) {
8231
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$g, [..._cache[0] || (_cache[0] = [
8230
+ function render$8(_ctx, _cache) {
8231
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$l, [..._cache[0] || (_cache[0] = [
8232
8232
  vue.createElementVNode("path", {
8233
8233
  fill: "currentColor",
8234
8234
  "fill-rule": "evenodd",
@@ -8237,18 +8237,18 @@ function render$6(_ctx, _cache) {
8237
8237
  }, null, -1)
8238
8238
  ])]);
8239
8239
  }
8240
- const IconWarning = { render: render$6 };
8241
- const _hoisted_1$f = {
8240
+ const IconWarning = { render: render$8 };
8241
+ const _hoisted_1$k = {
8242
8242
  key: 0,
8243
8243
  class: "ui-v1-modal-window__icon"
8244
8244
  };
8245
- const _hoisted_2$7 = ["id"];
8246
- const _hoisted_3$4 = ["disabled"];
8247
- const _hoisted_4 = {
8245
+ const _hoisted_2$a = ["id"];
8246
+ const _hoisted_3$6 = ["disabled"];
8247
+ const _hoisted_4$1 = {
8248
8248
  key: 1,
8249
8249
  class: "ui-v1-modal-window__content"
8250
8250
  };
8251
- const _hoisted_5 = {
8251
+ const _hoisted_5$1 = {
8252
8252
  key: 2,
8253
8253
  class: "ui-v1-modal-window__footer"
8254
8254
  };
@@ -8256,7 +8256,7 @@ const _hoisted_6 = {
8256
8256
  key: 0,
8257
8257
  class: "ui-v1-modal-window__footer-text"
8258
8258
  };
8259
- const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
8259
+ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
8260
8260
  __name: "UiModalWindow",
8261
8261
  props: {
8262
8262
  /** Атрибут id корневого элемента модального окна. Должен быть уникальным на странице */
@@ -8277,8 +8277,8 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
8277
8277
  /** Внешний вид: алерт, диалог, popup, hint */
8278
8278
  appearance: {
8279
8279
  type: String,
8280
- validator: (value) => expect(value).toBeOneOf(APPEARANCE),
8281
- default: APPEARANCE.POPUP
8280
+ validator: (value) => expect(value).toBeOneOf(APPEARANCE$2),
8281
+ default: APPEARANCE$2.POPUP
8282
8282
  },
8283
8283
  /** Время, через которое плавающий элемент удаляется со страницы, если был скрыт */
8284
8284
  disposeTimeout: {
@@ -8376,7 +8376,7 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
8376
8376
  });
8377
8377
  vue.watch(() => props.opened, toggle);
8378
8378
  return (_ctx, _cache) => {
8379
- return vue.openBlock(), vue.createBlock(_sfc_main$o, vue.mergeProps({
8379
+ return vue.openBlock(), vue.createBlock(_sfc_main$A, vue.mergeProps({
8380
8380
  id: __props.id,
8381
8381
  opened: state.opened,
8382
8382
  closable: __props.closable,
@@ -8402,10 +8402,10 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
8402
8402
  vue.createElementVNode("div", {
8403
8403
  class: vue.normalizeClass({
8404
8404
  "ui-v1-modal-window__header": true,
8405
- "ui-v1-modal-window__header_pinned": _ctx.$slots.title && state.scrolled && __props.appearance === vue.unref(APPEARANCE).POPUP && !__props.responsive
8405
+ "ui-v1-modal-window__header_pinned": _ctx.$slots.title && state.scrolled && __props.appearance === vue.unref(APPEARANCE$2).POPUP && !__props.responsive
8406
8406
  })
8407
8407
  }, [
8408
- __props.appearance === vue.unref(APPEARANCE).ALERT ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$f, [
8408
+ __props.appearance === vue.unref(APPEARANCE$2).ALERT ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$k, [
8409
8409
  vue.renderSlot(_ctx.$slots, "icon", {
8410
8410
  overlapped: state.overlapped
8411
8411
  }, () => [
@@ -8420,8 +8420,8 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
8420
8420
  vue.renderSlot(_ctx.$slots, "title", {
8421
8421
  overlapped: state.overlapped
8422
8422
  })
8423
- ], 8, _hoisted_2$7)) : vue.createCommentVNode("", true),
8424
- __props.appearance !== vue.unref(APPEARANCE).ALERT ? (vue.openBlock(), vue.createElementBlock("button", {
8423
+ ], 8, _hoisted_2$a)) : vue.createCommentVNode("", true),
8424
+ __props.appearance !== vue.unref(APPEARANCE$2).ALERT ? (vue.openBlock(), vue.createElementBlock("button", {
8425
8425
  key: 2,
8426
8426
  "aria-keyshortcuts": "Esc",
8427
8427
  "aria-label": "Close dialog",
@@ -8434,9 +8434,9 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
8434
8434
  title: "Close dialog",
8435
8435
  style: { "width": "100%" }
8436
8436
  })
8437
- ], 8, _hoisted_3$4)) : vue.createCommentVNode("", true)
8437
+ ], 8, _hoisted_3$6)) : vue.createCommentVNode("", true)
8438
8438
  ], 2),
8439
- __props.responsive ? (vue.openBlock(), vue.createBlock(_sfc_main$x, {
8439
+ __props.responsive ? (vue.openBlock(), vue.createBlock(_sfc_main$J, {
8440
8440
  key: 0,
8441
8441
  class: "ui-v1-modal-window__content",
8442
8442
  "show-on-mac": "",
@@ -8448,13 +8448,13 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
8448
8448
  })
8449
8449
  ]),
8450
8450
  _: 3
8451
- })) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
8451
+ })) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$1, [
8452
8452
  vue.renderSlot(_ctx.$slots, "default", {
8453
8453
  overlapped: state.overlapped
8454
8454
  })
8455
8455
  ])),
8456
- _ctx.$slots.footer ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [
8457
- __props.appearance === vue.unref(APPEARANCE).HINT ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6, [
8456
+ _ctx.$slots.footer ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$1, [
8457
+ __props.appearance === vue.unref(APPEARANCE$2).HINT ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6, [
8458
8458
  vue.renderSlot(_ctx.$slots, "footer", {
8459
8459
  overlapped: state.overlapped
8460
8460
  })
@@ -8469,58 +8469,58 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
8469
8469
  };
8470
8470
  }
8471
8471
  });
8472
- const _hoisted_1$e = {
8472
+ const _hoisted_1$j = {
8473
8473
  xmlns: "http://www.w3.org/2000/svg",
8474
8474
  viewBox: "0 0 24 24"
8475
8475
  };
8476
- function render$5(_ctx, _cache) {
8477
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$e, [..._cache[0] || (_cache[0] = [
8476
+ function render$7(_ctx, _cache) {
8477
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$j, [..._cache[0] || (_cache[0] = [
8478
8478
  vue.createElementVNode("path", {
8479
8479
  fill: "currentColor",
8480
8480
  d: "M19 11.5v1a.5.5 0 0 1-.5.5H13v5.5a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5V13H5.5a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5H11V5.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5V11h5.5a.5.5 0 0 1 .5.5"
8481
8481
  }, null, -1)
8482
8482
  ])]);
8483
8483
  }
8484
- const IconAdd = { render: render$5 };
8485
- const _hoisted_1$d = {
8484
+ const IconAdd = { render: render$7 };
8485
+ const _hoisted_1$i = {
8486
8486
  xmlns: "http://www.w3.org/2000/svg",
8487
8487
  viewBox: "0 0 24 24"
8488
8488
  };
8489
- function render$4(_ctx, _cache) {
8490
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$d, [..._cache[0] || (_cache[0] = [
8489
+ function render$6(_ctx, _cache) {
8490
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$i, [..._cache[0] || (_cache[0] = [
8491
8491
  vue.createElementVNode("path", {
8492
8492
  fill: "currentColor",
8493
8493
  d: "M8.138 11.06A.52.52 0 0 1 8 10.705c0-.133.05-.261.138-.355l.187-.2A.44.44 0 0 1 8.66 10h6.68a.44.44 0 0 1 .335.15l.187.2a.52.52 0 0 1 .138.355c0 .133-.05.26-.138.355l-3.536 3.788A.43.43 0 0 1 12 15a.43.43 0 0 1-.326-.152z"
8494
8494
  }, null, -1)
8495
8495
  ])]);
8496
8496
  }
8497
- const IconCaret = { render: render$4 };
8498
- const _hoisted_1$c = {
8497
+ const IconCaret = { render: render$6 };
8498
+ const _hoisted_1$h = {
8499
8499
  xmlns: "http://www.w3.org/2000/svg",
8500
8500
  viewBox: "0 0 24 24"
8501
8501
  };
8502
- function render$3(_ctx, _cache) {
8503
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$c, [..._cache[0] || (_cache[0] = [
8502
+ function render$5(_ctx, _cache) {
8503
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$h, [..._cache[0] || (_cache[0] = [
8504
8504
  vue.createElementVNode("path", {
8505
8505
  fill: "currentColor",
8506
8506
  d: "M16.14 12.94a.5.5 0 0 1 0 .71l-.2.2a.5.5 0 0 1-.36.15H8.42a.5.5 0 0 1-.36-.15l-.2-.2a.5.5 0 0 1 0-.71l3.79-3.79a.48.48 0 0 1 .7 0z"
8507
8507
  }, null, -1)
8508
8508
  ])]);
8509
8509
  }
8510
- const IconCaretUp = { render: render$3 };
8511
- const _hoisted_1$b = {
8510
+ const IconCaretUp = { render: render$5 };
8511
+ const _hoisted_1$g = {
8512
8512
  xmlns: "http://www.w3.org/2000/svg",
8513
8513
  viewBox: "0 0 24 24"
8514
8514
  };
8515
- function render$2(_ctx, _cache) {
8516
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$b, [..._cache[0] || (_cache[0] = [
8515
+ function render$4(_ctx, _cache) {
8516
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$g, [..._cache[0] || (_cache[0] = [
8517
8517
  vue.createElementVNode("path", {
8518
8518
  fill: "currentColor",
8519
8519
  d: "M5.5 13.25c-.276 0-.5-.28-.5-.625v-1.25c0-.345.224-.625.5-.625h13c.276 0 .5.28.5.625v1.25c0 .345-.224.625-.5.625z"
8520
8520
  }, null, -1)
8521
8521
  ])]);
8522
8522
  }
8523
- const IconRemove = { render: render$2 };
8523
+ const IconRemove = { render: render$4 };
8524
8524
  var DIRECTION$1 = /* @__PURE__ */ ((DIRECTION2) => {
8525
8525
  DIRECTION2["HORIZONTAL"] = "horizontal";
8526
8526
  DIRECTION2["VERTICAL"] = "vertical";
@@ -8623,10 +8623,10 @@ const _i18n$3 = define({
8623
8623
  "ru-RU": messages_ru_RU$3
8624
8624
  }
8625
8625
  });
8626
- const _hoisted_1$a = ["id", "aria-disabled", "aria-readonly"];
8627
- const _hoisted_2$6 = ["id", "aria-controls", "aria-label", "disabled"];
8628
- const _hoisted_3$3 = ["id", "aria-controls", "aria-label", "disabled"];
8629
- const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
8626
+ const _hoisted_1$f = ["id", "aria-disabled", "aria-readonly"];
8627
+ const _hoisted_2$9 = ["id", "aria-controls", "aria-label", "disabled"];
8628
+ const _hoisted_3$5 = ["id", "aria-controls", "aria-label", "disabled"];
8629
+ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
8630
8630
  ...{
8631
8631
  inheritAttrs: false
8632
8632
  },
@@ -8688,8 +8688,8 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
8688
8688
  },
8689
8689
  size: {
8690
8690
  type: String,
8691
- validator: (value) => Object.values(SIZE$5).includes(value),
8692
- default: SIZE$5.SM
8691
+ validator: (value) => Object.values(SIZE$7).includes(value),
8692
+ default: SIZE$7.SM
8693
8693
  },
8694
8694
  outlined: {
8695
8695
  type: Boolean,
@@ -8974,8 +8974,8 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
8974
8974
  "aria-hidden": "true",
8975
8975
  class: "ui-v1-number-stepper__icon"
8976
8976
  }))
8977
- ], 8, _hoisted_2$6),
8978
- vue.createVNode(_sfc_main$z, vue.mergeProps(resolvedTextboxOptions.value, {
8977
+ ], 8, _hoisted_2$9),
8978
+ vue.createVNode(_sfc_main$L, vue.mergeProps(resolvedTextboxOptions.value, {
8979
8979
  id: stepperId.value,
8980
8980
  ref_key: "textbox",
8981
8981
  ref: textbox,
@@ -9014,75 +9014,458 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
9014
9014
  "aria-hidden": "true",
9015
9015
  class: "ui-v1-number-stepper__icon"
9016
9016
  }))
9017
- ], 8, _hoisted_3$3)
9018
- ], 16, _hoisted_1$a);
9019
- };
9020
- }
9021
- });
9022
- const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
9023
- __name: "UiPopperConnector",
9024
- setup(__props) {
9025
- const target = vue.ref(null);
9026
- vue.provide(ElementRefKey, target);
9027
- vue.provide(PopperTargetKey, vue.computed(() => target.value));
9028
- return (_ctx, _cache) => {
9029
- return vue.renderSlot(_ctx.$slots, "default");
9030
- };
9031
- }
9032
- });
9033
- const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
9034
- __name: "UiPopperTarget",
9035
- props: {
9036
- tag: {
9037
- type: String,
9038
- default: "div"
9039
- }
9040
- },
9041
- setup(__props) {
9042
- const root = useElementRef();
9043
- return (_ctx, _cache) => {
9044
- return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(__props.tag), vue.mergeProps({
9045
- ref_key: "root",
9046
- ref: root
9047
- }, _ctx.$attrs), {
9048
- default: vue.withCtx(() => [
9049
- vue.renderSlot(_ctx.$slots, "default")
9050
- ]),
9051
- _: 3
9052
- }, 16);
9017
+ ], 8, _hoisted_3$5)
9018
+ ], 16, _hoisted_1$f);
9053
9019
  };
9054
9020
  }
9055
9021
  });
9056
- const _hoisted_1$9 = ["id", "name", "value", "checked", "required", "disabled"];
9057
- let nameCounter = 0;
9058
- let idCounter = 0;
9059
- const __default__$1 = {};
9060
- const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
9061
- ...__default__$1,
9062
- ...{
9063
- inheritAttrs: false
9064
- },
9065
- __name: "UiRadio",
9022
+ const _hoisted_1$e = ["id", "aria-label", "role", "tabindex", "onKeydown"];
9023
+ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
9024
+ __name: "UiPageHeaderTitle",
9066
9025
  props: {
9026
+ /** Уникальный идентификатор корневого элемента */
9067
9027
  id: {
9068
9028
  type: null,
9069
9029
  validator: (id) => id === void 0 || typeof id === "string" && id.length > 0 && /^[A-Za-z]/.test(id),
9070
- default: () => "ui-v1-radio-" + ++idCounter
9071
- },
9072
- /** Атрибут name нативного поля ввода */
9073
- name: {
9074
- type: String,
9075
- default: () => "ui-v1-radio-" + ++nameCounter
9076
- },
9077
- /** Значение модели, используемое с директивой v-model */
9078
- model: {
9079
- type: null,
9080
9030
  default: void 0
9081
9031
  },
9082
- /** Атрибут value нативного поля ввода */
9032
+ /** Текст заголовка */
9083
9033
  value: {
9084
9034
  type: null,
9085
- required: true
9035
+ default: ""
9036
+ },
9037
+ /** Плейсхолдер, отображаемый при отсутствии текста */
9038
+ placeholder: {
9039
+ type: String,
9040
+ default: ""
9041
+ },
9042
+ /** Текст ошибки для tooltip при пустом невалидном заголовке */
9043
+ error: {
9044
+ type: String,
9045
+ default: ""
9046
+ },
9047
+ /** Разрешает перейти в режим редактирования по клику */
9048
+ editable: {
9049
+ type: Boolean,
9050
+ default: false
9051
+ },
9052
+ /** Автоматически переводит фокус во встроенный UiTextbox при монтировании */
9053
+ autofocus: {
9054
+ type: Boolean,
9055
+ default: false
9056
+ },
9057
+ /** Автоматически выделяет текст заголовка при фокусе на встроенном поле */
9058
+ autoselect: {
9059
+ type: Boolean,
9060
+ default: true
9061
+ },
9062
+ /** Делает встроенное поле только для чтения */
9063
+ readonly: {
9064
+ type: Boolean,
9065
+ default: false
9066
+ },
9067
+ /** Полностью отключает заголовок */
9068
+ disabled: {
9069
+ type: Boolean,
9070
+ default: false
9071
+ },
9072
+ /** Помечает встроенное поле как невалидное */
9073
+ invalid: {
9074
+ type: Boolean,
9075
+ default: false
9076
+ }
9077
+ },
9078
+ emits: ["blur", "change", "focus", "keydown", "update:value"],
9079
+ setup(__props, { expose: __expose, emit: __emit }) {
9080
+ const props = __props;
9081
+ const emit = __emit;
9082
+ const uid2 = vue.useId();
9083
+ const textbox = vue.ref(null);
9084
+ const isEditing = vue.ref(false);
9085
+ const currentValue = vue.ref(props.value === null ? "" : String(props.value));
9086
+ const textboxId = vue.computed(() => `${props.id ?? uid2}-input`);
9087
+ const canEdit = vue.computed(() => props.editable && !props.readonly && !props.disabled);
9088
+ const displayPlaceholder = vue.computed(() => currentValue.value ? "" : props.placeholder);
9089
+ const displayInvalid = vue.computed(() => props.invalid && currentValue.value === "");
9090
+ const displayError = vue.computed(() => displayInvalid.value && props.error !== "");
9091
+ vue.watch(() => props.value, (nextValue) => {
9092
+ currentValue.value = nextValue === null ? "" : String(nextValue);
9093
+ });
9094
+ vue.watch(canEdit, (nextCanEdit) => {
9095
+ if (!nextCanEdit) {
9096
+ isEditing.value = false;
9097
+ }
9098
+ });
9099
+ vue.watch(displayError, async (nextDisplayError) => {
9100
+ if (!nextDisplayError || !canEdit.value) {
9101
+ return;
9102
+ }
9103
+ isEditing.value = true;
9104
+ await vue.nextTick();
9105
+ textbox.value?.focus();
9106
+ }, {
9107
+ immediate: true
9108
+ });
9109
+ const startEditing = async () => {
9110
+ if (!canEdit.value || isEditing.value) {
9111
+ return;
9112
+ }
9113
+ isEditing.value = true;
9114
+ await vue.nextTick();
9115
+ textbox.value?.focus();
9116
+ };
9117
+ const onMouseDown = (event) => {
9118
+ if (!canEdit.value || isEditing.value) {
9119
+ return;
9120
+ }
9121
+ event.preventDefault();
9122
+ void startEditing();
9123
+ };
9124
+ const onBlur = (event) => {
9125
+ if (displayError.value && canEdit.value) {
9126
+ isEditing.value = true;
9127
+ emit("blur", event);
9128
+ void vue.nextTick().then(() => {
9129
+ textbox.value?.focus();
9130
+ });
9131
+ return;
9132
+ }
9133
+ isEditing.value = false;
9134
+ emit("blur", event);
9135
+ };
9136
+ const onUpdateValue = (value) => {
9137
+ currentValue.value = String(value);
9138
+ emit("update:value", value);
9139
+ };
9140
+ const onKeyDown = (event) => {
9141
+ if (event.key === "Enter" && !event.shiftKey && !event.isComposing) {
9142
+ event.preventDefault();
9143
+ if (!displayError.value) {
9144
+ textbox.value?.blur();
9145
+ isEditing.value = false;
9146
+ }
9147
+ }
9148
+ emit("keydown", event);
9149
+ };
9150
+ __expose({
9151
+ focus: () => {
9152
+ void startEditing();
9153
+ },
9154
+ blur: () => {
9155
+ if (displayError.value && canEdit.value) {
9156
+ void vue.nextTick().then(() => {
9157
+ textbox.value?.focus();
9158
+ });
9159
+ return;
9160
+ }
9161
+ textbox.value?.blur();
9162
+ isEditing.value = false;
9163
+ }
9164
+ });
9165
+ return (_ctx, _cache) => {
9166
+ return !isEditing.value && !displayError.value ? (vue.openBlock(), vue.createElementBlock("h1", {
9167
+ key: 0,
9168
+ id: textboxId.value,
9169
+ "aria-label": __props.placeholder || currentValue.value || "Page title",
9170
+ class: vue.normalizeClass({
9171
+ "ui-v1-page-header__trigger": true,
9172
+ "ui-v1-page-header__trigger_editable": canEdit.value,
9173
+ "ui-v1-page-header__trigger_empty": !!displayPlaceholder.value
9174
+ }),
9175
+ role: canEdit.value ? "button" : void 0,
9176
+ tabindex: canEdit.value ? 0 : void 0,
9177
+ onMousedown: onMouseDown,
9178
+ onClick: startEditing,
9179
+ onKeydown: [
9180
+ vue.withKeys(vue.withModifiers(startEditing, ["prevent"]), ["enter"]),
9181
+ vue.withKeys(vue.withModifiers(startEditing, ["prevent"]), ["space"])
9182
+ ]
9183
+ }, vue.toDisplayString(currentValue.value || displayPlaceholder.value), 43, _hoisted_1$e)) : (vue.openBlock(), vue.createBlock(_sfc_main$L, {
9184
+ key: 1,
9185
+ id: textboxId.value,
9186
+ ref_key: "textbox",
9187
+ ref: textbox,
9188
+ value: currentValue.value,
9189
+ autofocus: __props.autofocus,
9190
+ autoselect: __props.autoselect,
9191
+ disabled: __props.disabled,
9192
+ "input-attributes": { "aria-label": __props.placeholder || "Page title" },
9193
+ invalid: displayInvalid.value,
9194
+ outlined: false,
9195
+ placeholder: displayPlaceholder.value,
9196
+ readonly: __props.readonly,
9197
+ size: "xl",
9198
+ autofit: "",
9199
+ class: "ui-v1-page-header__textbox",
9200
+ onBlur,
9201
+ onChange: _cache[0] || (_cache[0] = ($event) => emit("change", $event)),
9202
+ onFocus: _cache[1] || (_cache[1] = ($event) => emit("focus", $event)),
9203
+ onKeydown: onKeyDown,
9204
+ "onUpdate:value": onUpdateValue
9205
+ }, null, 8, ["id", "value", "autofocus", "autoselect", "disabled", "input-attributes", "invalid", "placeholder", "readonly"]));
9206
+ };
9207
+ }
9208
+ });
9209
+ const _hoisted_1$d = ["id"];
9210
+ const _hoisted_2$8 = { class: "ui-v1-page-header__main" };
9211
+ const _hoisted_3$4 = { class: "ui-v1-page-header__title" };
9212
+ const _hoisted_4 = {
9213
+ key: 0,
9214
+ class: "ui-v1-page-header__addon"
9215
+ };
9216
+ const _hoisted_5 = {
9217
+ key: 0,
9218
+ class: "ui-v1-page-header__actions"
9219
+ };
9220
+ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
9221
+ ...{
9222
+ inheritAttrs: false
9223
+ },
9224
+ __name: "UiPageHeaderLayout",
9225
+ props: {
9226
+ /** Уникальный идентификатор корневого элемента */
9227
+ id: {
9228
+ type: null,
9229
+ validator: (id) => id === void 0 || typeof id === "string" && id.length > 0 && /^[A-Za-z]/.test(id),
9230
+ default: void 0
9231
+ },
9232
+ /** Текст заголовка */
9233
+ value: {
9234
+ type: null,
9235
+ default: ""
9236
+ },
9237
+ /** Плейсхолдер, отображаемый при отсутствии текста */
9238
+ placeholder: {
9239
+ type: String,
9240
+ default: ""
9241
+ },
9242
+ /** Текст ошибки для tooltip при пустом невалидном заголовке */
9243
+ error: {
9244
+ type: String,
9245
+ default: ""
9246
+ },
9247
+ /** Разрешает перейти в режим редактирования по клику */
9248
+ editable: {
9249
+ type: Boolean,
9250
+ default: false
9251
+ },
9252
+ /** Автоматически переводит фокус во встроенный UiTextbox при монтировании */
9253
+ autofocus: {
9254
+ type: Boolean,
9255
+ default: false
9256
+ },
9257
+ /** Автоматически выделяет текст заголовка при фокусе на встроенном поле */
9258
+ autoselect: {
9259
+ type: Boolean,
9260
+ default: true
9261
+ },
9262
+ /** Делает встроенное поле только для чтения */
9263
+ readonly: {
9264
+ type: Boolean,
9265
+ default: false
9266
+ },
9267
+ /** Полностью отключает заголовок */
9268
+ disabled: {
9269
+ type: Boolean,
9270
+ default: false
9271
+ },
9272
+ /** Помечает встроенное поле как невалидное */
9273
+ invalid: {
9274
+ type: Boolean,
9275
+ default: false
9276
+ }
9277
+ },
9278
+ emits: ["blur", "change", "focus", "keydown", "update:value"],
9279
+ setup(__props, { expose: __expose, emit: __emit }) {
9280
+ const emit = __emit;
9281
+ const uid2 = vue.useId();
9282
+ const main = vue.ref(null);
9283
+ const displayInvalid = vue.computed(() => {
9284
+ const currentValue = __props.value === null ? "" : String(__props.value);
9285
+ return __props.invalid && currentValue === "";
9286
+ });
9287
+ __expose({
9288
+ focus: () => main.value?.focus(),
9289
+ blur: () => main.value?.blur()
9290
+ });
9291
+ return (_ctx, _cache) => {
9292
+ return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
9293
+ id: __props.id ?? vue.unref(uid2),
9294
+ class: {
9295
+ "ui-v1-page-header": true,
9296
+ "ui-v1-page-header_disabled": __props.disabled,
9297
+ "ui-v1-page-header_invalid": displayInvalid.value,
9298
+ "ui-v1-page-header_readonly": __props.readonly
9299
+ }
9300
+ }, _ctx.$attrs), [
9301
+ vue.createElementVNode("div", _hoisted_2$8, [
9302
+ vue.createElementVNode("div", _hoisted_3$4, [
9303
+ vue.createVNode(_sfc_main$x, {
9304
+ id: __props.id,
9305
+ ref_key: "main",
9306
+ ref: main,
9307
+ value: __props.value,
9308
+ placeholder: __props.placeholder,
9309
+ error: __props.error,
9310
+ editable: __props.editable,
9311
+ autofocus: __props.autofocus,
9312
+ autoselect: __props.autoselect,
9313
+ readonly: __props.readonly,
9314
+ disabled: __props.disabled,
9315
+ invalid: __props.invalid,
9316
+ onBlur: _cache[0] || (_cache[0] = ($event) => emit("blur", $event)),
9317
+ onChange: _cache[1] || (_cache[1] = ($event) => emit("change", $event)),
9318
+ onFocus: _cache[2] || (_cache[2] = ($event) => emit("focus", $event)),
9319
+ onKeydown: _cache[3] || (_cache[3] = ($event) => emit("keydown", $event)),
9320
+ "onUpdate:value": _cache[4] || (_cache[4] = ($event) => emit("update:value", $event))
9321
+ }, null, 8, ["id", "value", "placeholder", "error", "editable", "autofocus", "autoselect", "readonly", "disabled", "invalid"])
9322
+ ]),
9323
+ "addon" in _ctx.$slots ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
9324
+ vue.renderSlot(_ctx.$slots, "addon")
9325
+ ])) : vue.createCommentVNode("", true)
9326
+ ]),
9327
+ "actions" in _ctx.$slots ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [
9328
+ vue.renderSlot(_ctx.$slots, "actions")
9329
+ ])) : vue.createCommentVNode("", true)
9330
+ ], 16, _hoisted_1$d);
9331
+ };
9332
+ }
9333
+ });
9334
+ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
9335
+ ...{
9336
+ inheritAttrs: false
9337
+ },
9338
+ __name: "UiPageHeader",
9339
+ props: {
9340
+ id: {},
9341
+ value: { default: "" },
9342
+ placeholder: { default: "" },
9343
+ error: { default: "" },
9344
+ editable: { type: Boolean, default: false },
9345
+ autofocus: { type: Boolean, default: false },
9346
+ autoselect: { type: Boolean, default: true },
9347
+ readonly: { type: Boolean, default: false },
9348
+ disabled: { type: Boolean, default: false },
9349
+ invalid: { type: Boolean, default: false }
9350
+ },
9351
+ emits: ["blur", "change", "focus", "keydown", "update:value"],
9352
+ setup(__props, { expose: __expose }) {
9353
+ const props = __props;
9354
+ const attrs = vue.useAttrs();
9355
+ const baseProps = vue.computed(() => ({
9356
+ ...attrs,
9357
+ id: props.id,
9358
+ value: props.value,
9359
+ placeholder: props.placeholder,
9360
+ error: props.error,
9361
+ editable: props.editable,
9362
+ autofocus: props.autofocus,
9363
+ autoselect: props.autoselect,
9364
+ readonly: props.readonly,
9365
+ disabled: props.disabled,
9366
+ invalid: props.invalid
9367
+ }));
9368
+ const base = vue.ref(null);
9369
+ __expose({
9370
+ focus: () => base.value?.focus(),
9371
+ blur: () => base.value?.blur()
9372
+ });
9373
+ return (_ctx, _cache) => {
9374
+ return vue.openBlock(), vue.createBlock(_sfc_main$w, vue.mergeProps({
9375
+ ref_key: "base",
9376
+ ref: base
9377
+ }, baseProps.value, {
9378
+ onBlur: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("blur", $event)),
9379
+ onChange: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("change", $event)),
9380
+ onFocus: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("focus", $event)),
9381
+ onKeydown: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("keydown", $event)),
9382
+ "onUpdate:value": _cache[4] || (_cache[4] = ($event) => _ctx.$emit("update:value", $event))
9383
+ }), vue.createSlots({ _: 2 }, [
9384
+ _ctx.$slots.addon ? {
9385
+ name: "addon",
9386
+ fn: vue.withCtx(() => [
9387
+ vue.renderSlot(_ctx.$slots, "addon")
9388
+ ]),
9389
+ key: "0"
9390
+ } : void 0,
9391
+ _ctx.$slots.actions ? {
9392
+ name: "actions",
9393
+ fn: vue.withCtx(() => [
9394
+ vue.renderSlot(_ctx.$slots, "actions")
9395
+ ]),
9396
+ key: "1"
9397
+ } : void 0
9398
+ ]), 1040);
9399
+ };
9400
+ }
9401
+ });
9402
+ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
9403
+ __name: "UiPopperConnector",
9404
+ setup(__props) {
9405
+ const target = vue.ref(null);
9406
+ vue.provide(ElementRefKey, target);
9407
+ vue.provide(PopperTargetKey, vue.computed(() => target.value));
9408
+ return (_ctx, _cache) => {
9409
+ return vue.renderSlot(_ctx.$slots, "default");
9410
+ };
9411
+ }
9412
+ });
9413
+ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
9414
+ ...{
9415
+ inheritAttrs: false
9416
+ },
9417
+ __name: "UiPopperTarget",
9418
+ props: {
9419
+ tag: {
9420
+ type: String,
9421
+ default: "div"
9422
+ }
9423
+ },
9424
+ setup(__props) {
9425
+ const root = useElementRef();
9426
+ return (_ctx, _cache) => {
9427
+ return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(__props.tag), vue.mergeProps({
9428
+ ref_key: "root",
9429
+ ref: root
9430
+ }, _ctx.$attrs), {
9431
+ default: vue.withCtx(() => [
9432
+ vue.renderSlot(_ctx.$slots, "default")
9433
+ ]),
9434
+ _: 3
9435
+ }, 16);
9436
+ };
9437
+ }
9438
+ });
9439
+ const _hoisted_1$c = ["id", "name", "value", "checked", "required", "disabled"];
9440
+ let nameCounter = 0;
9441
+ let idCounter = 0;
9442
+ const __default__$1 = {};
9443
+ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
9444
+ ...__default__$1,
9445
+ ...{
9446
+ inheritAttrs: false
9447
+ },
9448
+ __name: "UiRadio",
9449
+ props: {
9450
+ id: {
9451
+ type: null,
9452
+ validator: (id) => id === void 0 || typeof id === "string" && id.length > 0 && /^[A-Za-z]/.test(id),
9453
+ default: () => "ui-v1-radio-" + ++idCounter
9454
+ },
9455
+ /** Атрибут name нативного поля ввода */
9456
+ name: {
9457
+ type: String,
9458
+ default: () => "ui-v1-radio-" + ++nameCounter
9459
+ },
9460
+ /** Значение модели, используемое с директивой v-model */
9461
+ model: {
9462
+ type: null,
9463
+ default: void 0
9464
+ },
9465
+ /** Атрибут value нативного поля ввода */
9466
+ value: {
9467
+ type: null,
9468
+ required: true
9086
9469
  },
9087
9470
  /** Заблокированный */
9088
9471
  disabled: {
@@ -9146,21 +9529,114 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
9146
9529
  type: "radio",
9147
9530
  class: "ui-v1-radio__input",
9148
9531
  onChange
9149
- }), null, 16, _hoisted_1$9),
9532
+ }), null, 16, _hoisted_1$c),
9150
9533
  _cache[0] || (_cache[0] = vue.createElementVNode("span", { class: "ui-v1-radio__checkmark" }, null, -1))
9151
9534
  ], 16);
9152
9535
  };
9153
9536
  }
9154
9537
  });
9155
- var TYPE = /* @__PURE__ */ ((TYPE2) => {
9156
- TYPE2["SINGLE"] = "single";
9157
- TYPE2["RANGE"] = "range";
9158
- return TYPE2;
9159
- })(TYPE || {});
9160
- const MIN = 0;
9161
- const MAX = 100;
9162
- const clamp = (value, min2 = MIN, max2 = MAX) => value < min2 ? min2 : value > max2 ? max2 : value;
9163
- const normalize$1 = (value, min2 = MIN, max2 = MAX) => {
9538
+ var APPEARANCE$1 = /* @__PURE__ */ ((APPEARANCE2) => {
9539
+ APPEARANCE2["DEFAULT"] = "default";
9540
+ APPEARANCE2["SECTION"] = "section";
9541
+ return APPEARANCE2;
9542
+ })(APPEARANCE$1 || {});
9543
+ var SIZE$3 = /* @__PURE__ */ ((SIZE2) => {
9544
+ SIZE2["SM"] = "sm";
9545
+ SIZE2["MD"] = "md";
9546
+ SIZE2["LG"] = "lg";
9547
+ return SIZE2;
9548
+ })(SIZE$3 || {});
9549
+ const _sfc_main$r = vue.defineComponent({
9550
+ name: "UiRadioSwitchOptionShell",
9551
+ inheritAttrs: false,
9552
+ props: {
9553
+ id: {
9554
+ type: String,
9555
+ default: void 0
9556
+ },
9557
+ appearance: {
9558
+ type: String,
9559
+ default: APPEARANCE$1.DEFAULT,
9560
+ validator: (appearance) => Object.values(APPEARANCE$1).includes(appearance)
9561
+ },
9562
+ size: {
9563
+ type: String,
9564
+ default: SIZE$3.MD,
9565
+ validator: (size) => Object.values(SIZE$3).includes(size)
9566
+ },
9567
+ checked: {
9568
+ type: Boolean,
9569
+ default: false
9570
+ },
9571
+ disabled: {
9572
+ type: Boolean,
9573
+ default: false
9574
+ }
9575
+ },
9576
+ setup(props, { attrs, expose, slots }) {
9577
+ const root = vue.ref(null);
9578
+ expose({
9579
+ focus: () => root.value?.focus(),
9580
+ blur: () => root.value?.blur()
9581
+ });
9582
+ return () => vue.h("div", {
9583
+ ref: root,
9584
+ ...attrs,
9585
+ id: props.id,
9586
+ role: attrs.role ?? "radio",
9587
+ "aria-checked": `${props.checked}`,
9588
+ "aria-disabled": `${props.disabled}`,
9589
+ class: [attrs.class, {
9590
+ "ui-v1-radio-switch-option": true,
9591
+ "ui-v1-radio-switch-option_standalone": props.appearance === APPEARANCE$1.SECTION,
9592
+ "ui-v1-radio-switch-option_default": props.appearance === APPEARANCE$1.DEFAULT,
9593
+ [`ui-v1-radio-switch-option_${props.size}`]: props.appearance === APPEARANCE$1.DEFAULT,
9594
+ "ui-v1-radio-switch-option_active": props.checked,
9595
+ "ui-v1-radio-switch-option_disabled": props.disabled
9596
+ }]
9597
+ }, slots.default?.());
9598
+ }
9599
+ });
9600
+ const _sfc_main$q = vue.defineComponent({
9601
+ name: "UiRadioSwitchRoot",
9602
+ props: {
9603
+ appearance: {
9604
+ type: String,
9605
+ default: APPEARANCE$1.DEFAULT,
9606
+ validator: (appearance) => Object.values(APPEARANCE$1).includes(appearance)
9607
+ },
9608
+ size: {
9609
+ type: String,
9610
+ default: SIZE$3.MD,
9611
+ validator: (size) => Object.values(SIZE$3).includes(size)
9612
+ },
9613
+ rubber: {
9614
+ type: Boolean,
9615
+ default: false
9616
+ }
9617
+ },
9618
+ setup(props, { attrs, slots }) {
9619
+ return () => vue.h("div", {
9620
+ ...attrs,
9621
+ role: attrs.role ?? "radiogroup",
9622
+ class: [attrs.class, {
9623
+ "ui-v1-radio-switch": true,
9624
+ [`ui-v1-radio-switch_${props.size}`]: props.appearance === APPEARANCE$1.DEFAULT,
9625
+ "ui-v1-radio-switch_borderless": props.appearance === APPEARANCE$1.SECTION,
9626
+ "ui-v1-radio-switch_rubber": props.rubber
9627
+ }]
9628
+ }, slots.default?.());
9629
+ }
9630
+ });
9631
+ var TYPE = /* @__PURE__ */ ((TYPE2) => {
9632
+ TYPE2["SINGLE"] = "single";
9633
+ TYPE2["RANGE"] = "range";
9634
+ return TYPE2;
9635
+ })(TYPE || {});
9636
+ const MIN = 0;
9637
+ const MAX = 100;
9638
+ const clamp = (value, min2 = MIN, max2 = MAX) => value < min2 ? min2 : value > max2 ? max2 : value;
9639
+ const normalize$1 = (value, min2 = MIN, max2 = MAX) => {
9164
9640
  return min2 !== max2 ? 100 * (clamp(value, min2, max2) - min2) / (max2 - min2) : 0;
9165
9641
  };
9166
9642
  const getValue = (values, reverse) => {
@@ -9252,16 +9728,16 @@ const createManipulator = (options) => {
9252
9728
  onDragEnd
9253
9729
  };
9254
9730
  };
9255
- const _hoisted_1$8 = {
9731
+ const _hoisted_1$b = {
9256
9732
  key: 0,
9257
9733
  class: "ui-v1-slider__label"
9258
9734
  };
9259
- const _hoisted_2$5 = ["onMousedown", "onKeydown", "onFocus"];
9260
- const _hoisted_3$2 = {
9735
+ const _hoisted_2$7 = ["onMousedown", "onKeydown", "onFocus"];
9736
+ const _hoisted_3$3 = {
9261
9737
  key: 1,
9262
9738
  class: "ui-v1-slider__label"
9263
9739
  };
9264
- const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
9740
+ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
9265
9741
  __name: "UiSlider",
9266
9742
  props: {
9267
9743
  type: {
@@ -9424,7 +9900,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
9424
9900
  onClick: _cache[2] || (_cache[2] = ($event) => vue.unref(onClick)($event)),
9425
9901
  onKeydown: _cache[3] || (_cache[3] = ($event) => onRootKeydown($event))
9426
9902
  }), [
9427
- props.labelled ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$8, [
9903
+ props.labelled ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [
9428
9904
  vue.renderSlot(_ctx.$slots, "label", {
9429
9905
  boundary: props.min
9430
9906
  })
@@ -9465,10 +9941,10 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
9465
9941
  key: 0,
9466
9942
  boundary: handle.value
9467
9943
  }) : vue.createCommentVNode("", true)
9468
- ], 16, _hoisted_2$5);
9944
+ ], 16, _hoisted_2$7);
9469
9945
  }), 128))
9470
9946
  ], 512),
9471
- props.labelled ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$2, [
9947
+ props.labelled ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$3, [
9472
9948
  vue.renderSlot(_ctx.$slots, "label", {
9473
9949
  boundary: props.max
9474
9950
  })
@@ -9488,7 +9964,7 @@ var PLACEMENT = /* @__PURE__ */ ((PLACEMENT2) => {
9488
9964
  PLACEMENT2["LEFT_START"] = "left-start";
9489
9965
  return PLACEMENT2;
9490
9966
  })(PLACEMENT || {});
9491
- const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
9967
+ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
9492
9968
  __name: "UiSelectPopper",
9493
9969
  props: {
9494
9970
  /** Атрибут id корневого элемента выпадающего списка. Должен быть уникальным на странице */
@@ -9602,7 +10078,9 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
9602
10078
  __expose({
9603
10079
  autoScroll,
9604
10080
  updateWidth,
9605
- adjust: () => popper.value?.adjust(),
10081
+ adjust: async () => {
10082
+ await popper.value?.adjust();
10083
+ },
9606
10084
  dispose: () => popper.value?.dispose(),
9607
10085
  show: () => popper.value?.show(),
9608
10086
  hide: () => popper.value?.hide()
@@ -9611,7 +10089,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
9611
10089
  vue.onMounted(() => {
9612
10090
  });
9613
10091
  return (_ctx, _cache) => {
9614
- return vue.openBlock(), vue.createBlock(_sfc_main$D, vue.mergeProps({
10092
+ return vue.openBlock(), vue.createBlock(_sfc_main$P, vue.mergeProps({
9615
10093
  id: __props.id + "-popper",
9616
10094
  ref_key: "popper",
9617
10095
  ref: popper,
@@ -9679,7 +10157,7 @@ const _i18n$2 = define({
9679
10157
  "ru-RU": messages_ru_RU$2
9680
10158
  }
9681
10159
  });
9682
- const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
10160
+ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
9683
10161
  __name: "UiSelectTrigger",
9684
10162
  props: {
9685
10163
  /** Атрибут id корневого элемента выпадающего списка. Должен быть уникальным на странице */
@@ -9740,8 +10218,8 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
9740
10218
  /** Размер поля ввода */
9741
10219
  textboxSize: {
9742
10220
  type: String,
9743
- validator: (size) => Object.values(SIZE$5).includes(size),
9744
- default: SIZE$5.SM
10221
+ validator: (size) => Object.values(SIZE$7).includes(size),
10222
+ default: SIZE$7.SM
9745
10223
  },
9746
10224
  /** Состояние открытия выпадающего списка */
9747
10225
  expanded: {
@@ -9905,7 +10383,7 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
9905
10383
  class: "ui-v1-select__touchstone"
9906
10384
  }, vue.toDisplayString(selectionLabels.value), 513)) : vue.createCommentVNode("", true),
9907
10385
  vue.renderSlot(_ctx.$slots, "trigger", {}, () => [
9908
- vue.createVNode(_sfc_main$z, {
10386
+ vue.createVNode(_sfc_main$L, {
9909
10387
  id: __props.id,
9910
10388
  value: inputValue.value,
9911
10389
  placeholder: !inputReadonly.value && __props.expanded ? i18n.value.t("search.placeholder") : __props.placeholder,
@@ -9946,19 +10424,19 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
9946
10424
  };
9947
10425
  }
9948
10426
  });
9949
- const _hoisted_1$7 = ["id", "checked", "disabled", "aria-checked", "aria-disabled"];
9950
- const _hoisted_2$4 = { class: "ui-v1-switch__track" };
9951
- const _hoisted_3$1 = { class: "ui-v1-switch__handle" };
9952
- let counter = 0;
10427
+ const _hoisted_1$a = ["id", "checked", "disabled", "aria-checked", "aria-disabled"];
10428
+ const _hoisted_2$6 = { class: "ui-v1-switch__track" };
10429
+ const _hoisted_3$2 = { class: "ui-v1-switch__handle" };
10430
+ let counter$1 = 0;
9953
10431
  const __default__ = {};
9954
- const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
10432
+ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
9955
10433
  ...__default__,
9956
10434
  __name: "UiSwitch",
9957
10435
  props: {
9958
10436
  id: {
9959
10437
  type: null,
9960
10438
  validator: (id) => id === void 0 || typeof id === "string" && id.length > 0 && /^[A-Za-z]/.test(id),
9961
- default: () => "ui-v1-switch-" + ++counter
10439
+ default: () => "ui-v1-switch-" + ++counter$1
9962
10440
  },
9963
10441
  /** Включен/выключен */
9964
10442
  value: {
@@ -10024,9 +10502,9 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
10024
10502
  role: "switch",
10025
10503
  class: "ui-v1-switch__input",
10026
10504
  onChange
10027
- }), null, 16, _hoisted_1$7),
10028
- vue.createElementVNode("span", _hoisted_2$4, [
10029
- vue.createElementVNode("span", _hoisted_3$1, [
10505
+ }), null, 16, _hoisted_1$a),
10506
+ vue.createElementVNode("span", _hoisted_2$6, [
10507
+ vue.createElementVNode("span", _hoisted_3$2, [
10030
10508
  !__props.square ? (vue.openBlock(), vue.createBlock(vue.unref(IconDone), {
10031
10509
  key: 0,
10032
10510
  class: "ui-v1-switch__icon"
@@ -10059,7 +10537,7 @@ const byRowKey = (key) => {
10059
10537
  };
10060
10538
  const asRowClass = (value) => value;
10061
10539
  const asRowAttrs = (value) => value;
10062
- const _sfc_main$e = vue.defineComponent({
10540
+ const _sfc_main$l = vue.defineComponent({
10063
10541
  name: "UiTableBodyCell",
10064
10542
  props: {
10065
10543
  align: {
@@ -10111,7 +10589,7 @@ const toCssSize = (value) => {
10111
10589
  }
10112
10590
  return value;
10113
10591
  };
10114
- const _sfc_main$d = vue.defineComponent({
10592
+ const _sfc_main$k = vue.defineComponent({
10115
10593
  name: "UiTableCol",
10116
10594
  props: {
10117
10595
  width: {
@@ -10142,9 +10620,9 @@ const _sfc_main$d = vue.defineComponent({
10142
10620
  });
10143
10621
  }
10144
10622
  });
10145
- const _hoisted_1$6 = ["type"];
10146
- const _hoisted_2$3 = { class: "ui-v1-table__footer-button-content" };
10147
- const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
10623
+ const _hoisted_1$9 = ["type"];
10624
+ const _hoisted_2$5 = { class: "ui-v1-table__footer-button-content" };
10625
+ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
10148
10626
  ...{
10149
10627
  inheritAttrs: false
10150
10628
  },
@@ -10162,14 +10640,14 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
10162
10640
  type: __props.type,
10163
10641
  class: "ui-v1-table__footer-button"
10164
10642
  }, _ctx.$attrs), [
10165
- vue.createElementVNode("span", _hoisted_2$3, [
10643
+ vue.createElementVNode("span", _hoisted_2$5, [
10166
10644
  vue.renderSlot(_ctx.$slots, "default")
10167
10645
  ])
10168
- ], 16, _hoisted_1$6);
10646
+ ], 16, _hoisted_1$9);
10169
10647
  };
10170
10648
  }
10171
10649
  });
10172
- const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
10650
+ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
10173
10651
  ...{
10174
10652
  inheritAttrs: false
10175
10653
  },
@@ -10182,7 +10660,7 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
10182
10660
  };
10183
10661
  }
10184
10662
  });
10185
- const _sfc_main$a = vue.defineComponent({
10663
+ const _sfc_main$h = vue.defineComponent({
10186
10664
  name: "UiTableHeadCell",
10187
10665
  props: {
10188
10666
  align: {
@@ -10207,7 +10685,7 @@ const _sfc_main$a = vue.defineComponent({
10207
10685
  }, slots.default?.());
10208
10686
  }
10209
10687
  });
10210
- const _sfc_main$9 = vue.defineComponent({
10688
+ const _sfc_main$g = vue.defineComponent({
10211
10689
  name: "UiTableRoot",
10212
10690
  props: {
10213
10691
  bordered: {
@@ -10230,7 +10708,7 @@ const _sfc_main$9 = vue.defineComponent({
10230
10708
  }, slots.default?.());
10231
10709
  }
10232
10710
  });
10233
- const _sfc_main$8 = vue.defineComponent({
10711
+ const _sfc_main$f = vue.defineComponent({
10234
10712
  name: "UiTableRow",
10235
10713
  props: {
10236
10714
  interactive: {
@@ -10258,7 +10736,7 @@ const sectionTagByKind = {
10258
10736
  body: "tbody",
10259
10737
  foot: "tfoot"
10260
10738
  };
10261
- const _sfc_main$7 = vue.defineComponent({
10739
+ const _sfc_main$e = vue.defineComponent({
10262
10740
  name: "UiTableSection",
10263
10741
  props: {
10264
10742
  kind: {
@@ -10277,14 +10755,14 @@ const _sfc_main$7 = vue.defineComponent({
10277
10755
  }, slots.default?.());
10278
10756
  }
10279
10757
  });
10280
- const _hoisted_1$5 = {
10758
+ const _hoisted_1$8 = {
10281
10759
  "aria-hidden": "true",
10282
10760
  class: "ui-v1-table__sorter-icon",
10283
10761
  xmlns: "http://www.w3.org/2000/svg",
10284
10762
  viewBox: "0 0 24 24"
10285
10763
  };
10286
- const _hoisted_2$2 = { class: "ui-v1-table__sorter-label" };
10287
- const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
10764
+ const _hoisted_2$4 = { class: "ui-v1-table__sorter-label" };
10765
+ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
10288
10766
  ...{
10289
10767
  inheritAttrs: false
10290
10768
  },
@@ -10302,7 +10780,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
10302
10780
  type: "button",
10303
10781
  class: "ui-v1-table__sorter"
10304
10782
  }, _ctx.$attrs), [
10305
- (vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$5, [
10783
+ (vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$8, [
10306
10784
  vue.createElementVNode("path", {
10307
10785
  class: vue.normalizeClass({
10308
10786
  "ui-v1-table__sorter-path": true,
@@ -10315,29 +10793,848 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
10315
10793
  "ui-v1-table__sorter-path": true,
10316
10794
  "ui-v1-table__sorter-path_active": __props.direction === vue.unref(DIRECTION).DESC
10317
10795
  }),
10318
- d: "M7.7,15.7c0,0.1,0.1,0.3,0.1,0.4l3.8,3.8c0.2,0.2,0.5,0.2,0.7,0c0,0,0,0,0,0l3.8-3.8c0.2-0.2,0.2-0.5,0-0.7c0,0,0,0,0,0l-0.2-0.2c-0.1-0.1-0.2-0.2-0.4-0.1H8.4c-0.1,0-0.3,0.1-0.4,0.1l-0.2,0.2C7.8,15.4,7.7,15.6,7.7,15.7z"
10319
- }, null, 2)
10320
- ])),
10321
- vue.createElementVNode("span", _hoisted_2$2, [
10322
- vue.renderSlot(_ctx.$slots, "default")
10323
- ])
10324
- ], 16);
10796
+ d: "M7.7,15.7c0,0.1,0.1,0.3,0.1,0.4l3.8,3.8c0.2,0.2,0.5,0.2,0.7,0c0,0,0,0,0,0l3.8-3.8c0.2-0.2,0.2-0.5,0-0.7c0,0,0,0,0,0l-0.2-0.2c-0.1-0.1-0.2-0.2-0.4-0.1H8.4c-0.1,0-0.3,0.1-0.4,0.1l-0.2,0.2C7.8,15.4,7.7,15.6,7.7,15.7z"
10797
+ }, null, 2)
10798
+ ])),
10799
+ vue.createElementVNode("span", _hoisted_2$4, [
10800
+ vue.renderSlot(_ctx.$slots, "default")
10801
+ ])
10802
+ ], 16);
10803
+ };
10804
+ }
10805
+ });
10806
+ const _sfc_main$c = vue.defineComponent({
10807
+ name: "UiTab",
10808
+ inheritAttrs: false,
10809
+ props: {
10810
+ id: {
10811
+ type: String,
10812
+ required: true
10813
+ },
10814
+ label: {
10815
+ type: String,
10816
+ default: ""
10817
+ },
10818
+ counter: {
10819
+ type: [String, Number],
10820
+ default: null
10821
+ },
10822
+ disabled: {
10823
+ type: Boolean,
10824
+ default: false
10825
+ }
10826
+ },
10827
+ setup() {
10828
+ return () => null;
10829
+ }
10830
+ });
10831
+ const _hoisted_1$7 = {
10832
+ xmlns: "http://www.w3.org/2000/svg",
10833
+ viewBox: "0 0 24 24"
10834
+ };
10835
+ function render$3(_ctx, _cache) {
10836
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$7, [..._cache[0] || (_cache[0] = [
10837
+ vue.createElementVNode("path", {
10838
+ fill: "currentColor",
10839
+ "fill-rule": "evenodd",
10840
+ d: "M6 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4m8 2a2 2 0 1 0-4 0 2 2 0 0 0 4 0m4-2a2 2 0 1 1 0 4 2 2 0 0 1 0-4",
10841
+ "clip-rule": "evenodd"
10842
+ }, null, -1)
10843
+ ])]);
10844
+ }
10845
+ const IconMoreHorizontal = { render: render$3 };
10846
+ var SIZE$2 = /* @__PURE__ */ ((SIZE2) => {
10847
+ SIZE2["SM"] = "sm";
10848
+ SIZE2["MD"] = "md";
10849
+ SIZE2["LG"] = "lg";
10850
+ return SIZE2;
10851
+ })(SIZE$2 || {});
10852
+ var APPEARANCE = /* @__PURE__ */ ((APPEARANCE2) => {
10853
+ APPEARANCE2["TEXT"] = "text";
10854
+ APPEARANCE2["FILLED"] = "filled";
10855
+ return APPEARANCE2;
10856
+ })(APPEARANCE || {});
10857
+ const hasCounter = (value) => {
10858
+ return value !== null && typeof value !== "undefined";
10859
+ };
10860
+ const _sfc_main$b = vue.defineComponent({
10861
+ name: "UiTabButton",
10862
+ inheritAttrs: false,
10863
+ props: {
10864
+ item: {
10865
+ type: Object,
10866
+ required: true
10867
+ },
10868
+ active: {
10869
+ type: Boolean,
10870
+ default: false
10871
+ },
10872
+ size: {
10873
+ type: String,
10874
+ default: SIZE$2.MD,
10875
+ validator: (size) => Object.values(SIZE$2).includes(size)
10876
+ },
10877
+ appearance: {
10878
+ type: String,
10879
+ default: APPEARANCE.TEXT,
10880
+ validator: (appearance) => Object.values(APPEARANCE).includes(appearance)
10881
+ }
10882
+ },
10883
+ setup(props, { attrs, expose }) {
10884
+ const root = vue.ref(null);
10885
+ const isIconOnly = vue.computed(() => {
10886
+ return Boolean(props.item.iconOnly);
10887
+ });
10888
+ const focus = () => {
10889
+ root.value?.focus();
10890
+ };
10891
+ const getWidth = () => {
10892
+ return Math.ceil(root.value?.offsetWidth ?? 0);
10893
+ };
10894
+ expose({
10895
+ focus,
10896
+ getWidth
10897
+ });
10898
+ return () => vue.h("button", {
10899
+ ...attrs,
10900
+ ref: root,
10901
+ class: [attrs.class, {
10902
+ "ui-v1-tab": true,
10903
+ [`ui-v1-tab_${props.appearance}`]: true,
10904
+ [`ui-v1-tab_${props.size}`]: true,
10905
+ "ui-v1-tab_active": props.active,
10906
+ "ui-v1-tab_disabled": Boolean(props.item.disabled),
10907
+ "ui-v1-tab_icon-without-text": isIconOnly.value
10908
+ }],
10909
+ disabled: props.item.disabled,
10910
+ type: "button"
10911
+ }, [
10912
+ props.item.iconSlot ? vue.h("span", { class: "ui-v1-tab__icon" }, props.item.iconSlot()) : null,
10913
+ props.item.labelSlot || props.item.label ? vue.h("span", { class: "ui-v1-tab__label" }, props.item.labelSlot?.() ?? [props.item.label]) : null,
10914
+ props.item.counterSlot || hasCounter(props.item.counter) ? vue.h("span", { class: "ui-v1-tab__counter" }, props.item.counterSlot?.() ?? [String(props.item.counter ?? "")]) : null
10915
+ ]);
10916
+ }
10917
+ });
10918
+ const _hoisted_1$6 = {
10919
+ "aria-hidden": "true",
10920
+ class: "ui-v1-tab-group__measure"
10921
+ };
10922
+ const _hoisted_2$3 = { class: "ui-v1-tab-group__content" };
10923
+ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
10924
+ __name: "UiTabGroupHead",
10925
+ props: {
10926
+ groupId: {
10927
+ type: String,
10928
+ required: true
10929
+ },
10930
+ items: {
10931
+ type: Array,
10932
+ default: () => []
10933
+ },
10934
+ headItems: {
10935
+ type: Array,
10936
+ default: () => []
10937
+ },
10938
+ activeId: {
10939
+ type: String,
10940
+ default: null
10941
+ },
10942
+ focusableId: {
10943
+ type: String,
10944
+ default: null
10945
+ },
10946
+ menuExpanded: {
10947
+ type: Boolean,
10948
+ default: false
10949
+ },
10950
+ hasMenuItems: {
10951
+ type: Boolean,
10952
+ default: false
10953
+ },
10954
+ size: {
10955
+ type: String,
10956
+ default: SIZE$2.MD,
10957
+ validator: (size) => Object.values(SIZE$2).includes(size)
10958
+ },
10959
+ appearance: {
10960
+ type: String,
10961
+ default: APPEARANCE.TEXT,
10962
+ validator: (appearance) => Object.values(APPEARANCE).includes(appearance)
10963
+ }
10964
+ },
10965
+ emits: ["focus-tab", "move-focus", "select"],
10966
+ setup(__props, { expose: __expose, emit: __emit }) {
10967
+ const props = __props;
10968
+ const emit = __emit;
10969
+ const head = vue.ref(null);
10970
+ const headRefs = /* @__PURE__ */ new Map();
10971
+ const measureRefs = /* @__PURE__ */ new Map();
10972
+ const createIntent = (id, direction) => {
10973
+ return { id, direction };
10974
+ };
10975
+ const onTabKeydown = (id, event) => {
10976
+ switch (event.key) {
10977
+ case " ":
10978
+ case "Enter":
10979
+ event.preventDefault();
10980
+ emit("select", id);
10981
+ return;
10982
+ case "ArrowDown":
10983
+ case "ArrowRight":
10984
+ event.preventDefault();
10985
+ emit("move-focus", createIntent(id, "next"));
10986
+ return;
10987
+ case "ArrowUp":
10988
+ case "ArrowLeft":
10989
+ event.preventDefault();
10990
+ emit("move-focus", createIntent(id, "prev"));
10991
+ return;
10992
+ case "Home":
10993
+ event.preventDefault();
10994
+ emit("move-focus", createIntent(id, "first"));
10995
+ return;
10996
+ case "End":
10997
+ event.preventDefault();
10998
+ emit("move-focus", createIntent(id, "last"));
10999
+ }
11000
+ };
11001
+ const setHeadRef = (id, element) => {
11002
+ if (element) {
11003
+ headRefs.set(id, element);
11004
+ return;
11005
+ }
11006
+ headRefs.delete(id);
11007
+ };
11008
+ const setMeasureRef = (id, element) => {
11009
+ if (element) {
11010
+ measureRefs.set(id, element);
11011
+ return;
11012
+ }
11013
+ measureRefs.delete(id);
11014
+ };
11015
+ const focusTab = (id) => {
11016
+ headRefs.get(id)?.focus();
11017
+ };
11018
+ const measure = () => {
11019
+ const widths = /* @__PURE__ */ new Map();
11020
+ props.items.forEach((item) => {
11021
+ widths.set(item.id, measureRefs.get(item.id)?.getWidth() ?? 0);
11022
+ });
11023
+ return {
11024
+ availableWidth: Math.ceil(head.value?.clientWidth ?? 0),
11025
+ widths
11026
+ };
11027
+ };
11028
+ __expose({
11029
+ focusTab,
11030
+ measure
11031
+ });
11032
+ return (_ctx, _cache) => {
11033
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
11034
+ vue.createElementVNode("div", _hoisted_1$6, [
11035
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.items, (item) => {
11036
+ return vue.openBlock(), vue.createBlock(_sfc_main$b, {
11037
+ id: `${item.id}-measure`,
11038
+ key: `measure-${item.id}`,
11039
+ ref_for: true,
11040
+ ref: (element) => setMeasureRef(item.id, element),
11041
+ active: __props.activeId === item.id,
11042
+ appearance: __props.appearance,
11043
+ class: "ui-v1-tab-group__measure-button",
11044
+ item,
11045
+ size: __props.size,
11046
+ tabindex: "-1"
11047
+ }, null, 8, ["id", "active", "appearance", "item", "size"]);
11048
+ }), 128))
11049
+ ]),
11050
+ vue.createElementVNode("div", {
11051
+ ref_key: "head",
11052
+ ref: head,
11053
+ class: "ui-v1-tab-group__head",
11054
+ role: "tablist"
11055
+ }, [
11056
+ vue.createElementVNode("div", _hoisted_2$3, [
11057
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.headItems, (item) => {
11058
+ return vue.openBlock(), vue.createBlock(_sfc_main$b, {
11059
+ id: `${props.groupId}-tab-${item.id}`,
11060
+ key: `head-${item.id}`,
11061
+ ref_for: true,
11062
+ ref: (element) => setHeadRef(item.id, element),
11063
+ active: __props.activeId === item.id,
11064
+ "aria-disabled": item.disabled ? "true" : "false",
11065
+ "aria-selected": __props.activeId === item.id ? "true" : "false",
11066
+ "aria-controls": item.contentSlot ? `${props.groupId}-panel-${item.id}` : void 0,
11067
+ appearance: __props.appearance,
11068
+ item,
11069
+ size: __props.size,
11070
+ tabindex: !item.disabled && __props.focusableId === item.id ? 0 : -1,
11071
+ role: "tab",
11072
+ onClick: ($event) => _ctx.$emit("select", item.id),
11073
+ onFocus: ($event) => _ctx.$emit("focus-tab", item.id),
11074
+ onKeydown: ($event) => onTabKeydown(item.id, $event)
11075
+ }, null, 8, ["id", "active", "aria-disabled", "aria-selected", "aria-controls", "appearance", "item", "size", "tabindex", "onClick", "onFocus", "onKeydown"]);
11076
+ }), 128))
11077
+ ]),
11078
+ __props.hasMenuItems ? (vue.openBlock(), vue.createBlock(_sfc_main$Y, {
11079
+ key: 0,
11080
+ active: __props.menuExpanded,
11081
+ "aria-expanded": __props.menuExpanded ? "true" : "false",
11082
+ "aria-label": "More tabs",
11083
+ "aria-haspopup": "menu",
11084
+ appearance: "tertiary",
11085
+ class: "ui-v1-tab-group__trigger",
11086
+ size: "sm",
11087
+ type: "button"
11088
+ }, {
11089
+ default: vue.withCtx(() => [
11090
+ vue.createVNode(vue.unref(IconMoreHorizontal), {
11091
+ "aria-hidden": "true",
11092
+ class: "ui-v1-tab-group__trigger-icon"
11093
+ })
11094
+ ]),
11095
+ _: 1
11096
+ }, 8, ["active", "aria-expanded"])) : vue.createCommentVNode("", true)
11097
+ ], 512)
11098
+ ], 64);
11099
+ };
11100
+ }
11101
+ });
11102
+ const _sfc_main$9 = vue.defineComponent({
11103
+ name: "UiTabGroupMenu",
11104
+ props: {
11105
+ items: {
11106
+ type: Array,
11107
+ default: () => []
11108
+ },
11109
+ activeId: {
11110
+ type: String,
11111
+ default: null
11112
+ },
11113
+ menuExpanded: {
11114
+ type: Boolean,
11115
+ default: false
11116
+ },
11117
+ size: {
11118
+ type: String,
11119
+ default: SIZE$2.MD,
11120
+ validator: (size) => Object.values(SIZE$2).includes(size)
11121
+ }
11122
+ },
11123
+ emits: {
11124
+ "select": (id) => {
11125
+ return true;
11126
+ },
11127
+ "update:menuExpanded": (expanded) => {
11128
+ return true;
11129
+ }
11130
+ },
11131
+ setup(props, { emit }) {
11132
+ const resolvedMenuItemSize = vue.computed(() => {
11133
+ return props.size === SIZE$2.SM ? SIZE$6.SM : SIZE$6.MD;
11134
+ });
11135
+ const onMenuItemKeydown = (id, event) => {
11136
+ switch (event.key) {
11137
+ case " ":
11138
+ case "Enter":
11139
+ event.preventDefault();
11140
+ emit("select", id);
11141
+ }
11142
+ };
11143
+ const onUpdateVisible = (expanded) => {
11144
+ if (expanded !== props.menuExpanded) {
11145
+ emit("update:menuExpanded", expanded);
11146
+ }
11147
+ };
11148
+ return () => {
11149
+ if (!props.items.length) {
11150
+ return null;
11151
+ }
11152
+ return vue.h(_sfc_main$P, {
11153
+ visible: props.menuExpanded,
11154
+ targetTriggers: {
11155
+ hide: ["click"],
11156
+ show: ["click"]
11157
+ },
11158
+ globalTriggers: ["miss-click", "reference-hidden"],
11159
+ class: "ui-v1-tab-group__popper",
11160
+ placement: "bottom-end",
11161
+ "onUpdate:visible": onUpdateVisible
11162
+ }, {
11163
+ default: () => vue.h("div", {
11164
+ class: "ui-v1-tab-group__menu",
11165
+ role: "menu"
11166
+ }, props.items.map((item) => vue.h(_sfc_main$K, {
11167
+ key: `menu-${item.id}`,
11168
+ active: props.activeId === item.id,
11169
+ "aria-checked": props.activeId === item.id ? "true" : "false",
11170
+ "aria-disabled": item.disabled ? "true" : "false",
11171
+ class: "ui-v1-tab-group__menu-item",
11172
+ counter: item.counter ?? null,
11173
+ disabled: item.disabled,
11174
+ role: "menuitemradio",
11175
+ size: resolvedMenuItemSize.value,
11176
+ tabindex: item.disabled ? -1 : 0,
11177
+ onClick: () => emit("select", item.id),
11178
+ onKeydown: (event) => {
11179
+ onMenuItemKeydown(item.id, event);
11180
+ }
11181
+ }, {
11182
+ default: () => item.labelSlot?.() ?? [item.label ?? item.id],
11183
+ "leading-icon": item.iconSlot ? () => item.iconSlot?.() ?? null : void 0
11184
+ })))
11185
+ });
11186
+ };
11187
+ }
11188
+ });
11189
+ const isNamedComponent = (node, name) => {
11190
+ if (typeof node.type !== "object" || node.type === null) {
11191
+ return false;
11192
+ }
11193
+ return "name" in node.type && node.type.name === name;
11194
+ };
11195
+ const hasTabLikeProps = (node) => {
11196
+ const props = node.props ?? {};
11197
+ const childrenRecord = node.children && !Array.isArray(node.children) && typeof node.children !== "string" ? node.children : {};
11198
+ if (typeof props.id !== "string" || !props.id.length) {
11199
+ return false;
11200
+ }
11201
+ return [
11202
+ "label",
11203
+ "counter",
11204
+ "disabled"
11205
+ ].some((key) => key in props) || [
11206
+ "default",
11207
+ "icon",
11208
+ "label",
11209
+ "counter",
11210
+ "content"
11211
+ ].some((key) => key in childrenRecord);
11212
+ };
11213
+ const isTabVNode = (node) => {
11214
+ return isNamedComponent(node, "UiTab") || hasTabLikeProps(node);
11215
+ };
11216
+ const isWhitespaceText = (value) => value.trim().length === 0;
11217
+ const normalizeNodes = (children) => {
11218
+ const normalized = [];
11219
+ children.forEach((child) => {
11220
+ if (Array.isArray(child)) {
11221
+ normalized.push(...normalizeNodes(child));
11222
+ return;
11223
+ }
11224
+ if (!vue.isVNode(child)) {
11225
+ return;
11226
+ }
11227
+ if (child.type === vue.Comment) {
11228
+ return;
11229
+ }
11230
+ if (child.type === vue.Text) {
11231
+ const text = typeof child.children === "string" ? child.children : "";
11232
+ if (!isWhitespaceText(text)) {
11233
+ normalized.push(child);
11234
+ }
11235
+ return;
11236
+ }
11237
+ if (child.type === vue.Fragment && Array.isArray(child.children)) {
11238
+ normalized.push(...normalizeNodes(child.children));
11239
+ return;
11240
+ }
11241
+ normalized.push(child);
11242
+ });
11243
+ return normalized;
11244
+ };
11245
+ const normalizeString = (value) => {
11246
+ return typeof value === "string" ? value : "";
11247
+ };
11248
+ const normalizeCounter = (value) => {
11249
+ return typeof value === "string" || typeof value === "number" ? value : null;
11250
+ };
11251
+ const normalizeBoolean = (value) => value === "" || value === true;
11252
+ const createTabDefinitions = (items) => {
11253
+ return items.map((item) => ({
11254
+ id: item.id,
11255
+ label: item.label ?? "",
11256
+ counter: item.counter ?? null,
11257
+ disabled: Boolean(item.disabled),
11258
+ iconOnly: Boolean(item.iconOnly)
11259
+ }));
11260
+ };
11261
+ const collectTabs = (children) => {
11262
+ return normalizeNodes(children).filter(isTabVNode).map((node, index) => {
11263
+ const props = node.props ?? {};
11264
+ const childrenRecord = node.children && !Array.isArray(node.children) && typeof node.children !== "string" ? node.children : {};
11265
+ const label2 = normalizeString(props.label);
11266
+ const counter2 = normalizeCounter(props.counter);
11267
+ const hasIcon = Boolean(childrenRecord.icon);
11268
+ const hasLabel = Boolean(childrenRecord.label) || Boolean(label2);
11269
+ const hasCounter2 = typeof childrenRecord.counter !== "undefined" || counter2 !== null;
11270
+ return {
11271
+ id: normalizeString(props.id) || String(node.key ?? `ui-v1-tab-${index}`),
11272
+ label: label2,
11273
+ counter: counter2,
11274
+ disabled: normalizeBoolean(props.disabled),
11275
+ iconOnly: hasIcon && !hasLabel && !hasCounter2,
11276
+ iconSlot: childrenRecord.icon,
11277
+ labelSlot: childrenRecord.label,
11278
+ counterSlot: childrenRecord.counter,
11279
+ contentSlot: childrenRecord.content
11280
+ };
11281
+ });
11282
+ };
11283
+ const resolveActiveId = (tabs, activeId) => {
11284
+ if (!activeId) {
11285
+ return null;
11286
+ }
11287
+ return tabs.some((tab) => tab.id === activeId) ? activeId : null;
11288
+ };
11289
+ const HEAD_GAP = {
11290
+ [SIZE$2.SM]: 20,
11291
+ [SIZE$2.MD]: 24,
11292
+ [SIZE$2.LG]: 24
11293
+ };
11294
+ const FILLED_TRIGGER_GAP = {
11295
+ [SIZE$2.SM]: 10,
11296
+ [SIZE$2.MD]: 12,
11297
+ [SIZE$2.LG]: 32
11298
+ };
11299
+ const MENU_TRIGGER_WIDTH = 36;
11300
+ const widthOf = (id, widths) => {
11301
+ return Math.max(0, Math.ceil(widths.get(id) ?? 0));
11302
+ };
11303
+ const sumWidths = (ids, widths, gap) => ids.reduce((total, id, index) => {
11304
+ return total + widthOf(id, widths) + (index > 0 ? gap : 0);
11305
+ }, 0);
11306
+ const moveActiveToHead = (ids, headIds, widths, limit, gap, activeId) => {
11307
+ if (headIds.includes(activeId)) {
11308
+ return headIds;
11309
+ }
11310
+ const next = [...headIds, activeId].sort((a, b) => ids.indexOf(a) - ids.indexOf(b));
11311
+ while (next.length > 1 && sumWidths(next, widths, gap) > limit) {
11312
+ const removable = [...next].reverse().find((id) => id !== activeId);
11313
+ if (!removable) {
11314
+ break;
11315
+ }
11316
+ next.splice(next.indexOf(removable), 1);
11317
+ }
11318
+ return next;
11319
+ };
11320
+ const resolveTabLayout = (options) => {
11321
+ const ids = options.items.map((item) => item.id);
11322
+ if (!ids.length) {
11323
+ return {
11324
+ headIds: [],
11325
+ menuIds: []
11326
+ };
11327
+ }
11328
+ if (!options.overflowing || options.availableWidth <= 0) {
11329
+ return {
11330
+ headIds: ids,
11331
+ menuIds: []
11332
+ };
11333
+ }
11334
+ if (ids.some((id) => widthOf(id, options.widths) === 0)) {
11335
+ return {
11336
+ headIds: ids,
11337
+ menuIds: []
11338
+ };
11339
+ }
11340
+ const size = options.size;
11341
+ const appearance = options.appearance;
11342
+ const gap = appearance === APPEARANCE.FILLED ? 0 : HEAD_GAP[size] ?? HEAD_GAP[SIZE$2.MD];
11343
+ const totalWidth = sumWidths(ids, options.widths, gap);
11344
+ if (totalWidth <= options.availableWidth) {
11345
+ return {
11346
+ headIds: ids,
11347
+ menuIds: []
11348
+ };
11349
+ }
11350
+ const triggerGap = appearance === APPEARANCE.FILLED ? FILLED_TRIGGER_GAP[size] ?? FILLED_TRIGGER_GAP[SIZE$2.MD] : gap;
11351
+ const limit = Math.max(options.availableWidth - MENU_TRIGGER_WIDTH - triggerGap, 0);
11352
+ const headIds = [];
11353
+ let occupied = 0;
11354
+ options.items.forEach((item) => {
11355
+ const nextWidth = occupied + widthOf(item.id, options.widths) + (headIds.length > 0 ? gap : 0);
11356
+ if (nextWidth <= limit || headIds.length === 0) {
11357
+ headIds.push(item.id);
11358
+ occupied = nextWidth;
11359
+ }
11360
+ });
11361
+ const resolvedHeadIds = options.activeId ? moveActiveToHead(ids, headIds, options.widths, limit, gap, options.activeId) : headIds;
11362
+ const headSet = new Set(resolvedHeadIds);
11363
+ return {
11364
+ headIds: ids.filter((id) => headSet.has(id)),
11365
+ menuIds: ids.filter((id) => !headSet.has(id))
11366
+ };
11367
+ };
11368
+ let counter = 0;
11369
+ const _sfc_main$8 = vue.defineComponent({
11370
+ name: "UiTabGroup",
11371
+ inheritAttrs: false,
11372
+ props: {
11373
+ items: {
11374
+ type: Array,
11375
+ default: () => []
11376
+ },
11377
+ activeId: {
11378
+ type: String,
11379
+ default: null
11380
+ },
11381
+ focusableId: {
11382
+ type: String,
11383
+ default: void 0
11384
+ },
11385
+ menuExpanded: {
11386
+ type: Boolean,
11387
+ default: void 0
11388
+ },
11389
+ overflowing: {
11390
+ type: Boolean,
11391
+ default: false
11392
+ },
11393
+ size: {
11394
+ type: String,
11395
+ default: SIZE$2.MD,
11396
+ validator: (size) => Object.values(SIZE$2).includes(size)
11397
+ },
11398
+ appearance: {
11399
+ type: String,
11400
+ default: APPEARANCE.TEXT,
11401
+ validator: (appearance) => Object.values(APPEARANCE).includes(appearance)
11402
+ }
11403
+ },
11404
+ emits: {
11405
+ "layout": (layout) => {
11406
+ return true;
11407
+ },
11408
+ "change": (id) => {
11409
+ return true;
11410
+ },
11411
+ "update:activeId": (id) => {
11412
+ return true;
11413
+ },
11414
+ "update:focusableId": (id) => {
11415
+ return true;
11416
+ },
11417
+ "update:menuExpanded": (expanded) => {
11418
+ return true;
11419
+ }
11420
+ },
11421
+ setup(props, { attrs, emit, slots }) {
11422
+ const groupId = `ui-v1-tab-group-${++counter}`;
11423
+ const root = vue.ref(null);
11424
+ const headView = vue.ref(null);
11425
+ const widths = vue.ref(/* @__PURE__ */ new Map());
11426
+ const availableWidth = vue.ref(0);
11427
+ const localFocusableId = vue.ref(null);
11428
+ const localMenuExpanded = vue.ref(false);
11429
+ const resolvedMenuExpanded = vue.computed(() => {
11430
+ return typeof props.menuExpanded === "undefined" ? localMenuExpanded.value : props.menuExpanded;
11431
+ });
11432
+ let currentLayout = {
11433
+ headIds: [],
11434
+ menuIds: []
11435
+ };
11436
+ let currentResolvedFocusableId = null;
11437
+ let currentTabs = props.items.length ? createTabDefinitions(props.items) : [];
11438
+ let lastEmittedLayoutKey = "";
11439
+ let lastFocusedId = null;
11440
+ let observer = null;
11441
+ const updateMetrics = () => {
11442
+ const metrics = headView.value?.measure();
11443
+ availableWidth.value = metrics?.availableWidth ?? 0;
11444
+ widths.value = metrics?.widths ?? /* @__PURE__ */ new Map();
11445
+ };
11446
+ const setFocusableId = (id) => {
11447
+ if (typeof props.focusableId === "undefined") {
11448
+ localFocusableId.value = id;
11449
+ }
11450
+ emit("update:focusableId", id);
11451
+ };
11452
+ const setMenuExpanded = (expanded) => {
11453
+ if (typeof props.menuExpanded === "undefined") {
11454
+ localMenuExpanded.value = expanded;
11455
+ }
11456
+ emit("update:menuExpanded", expanded);
11457
+ };
11458
+ const resolveFocusableId = (enabledHeadItems) => {
11459
+ const enabledIds = new Set(enabledHeadItems.map((item) => item.id));
11460
+ const candidateFocusableId = typeof props.focusableId === "undefined" ? localFocusableId.value : props.focusableId;
11461
+ if (candidateFocusableId && enabledIds.has(candidateFocusableId)) {
11462
+ return candidateFocusableId;
11463
+ }
11464
+ const resolvedActiveId = resolveActiveId(currentTabs, props.activeId);
11465
+ if (resolvedActiveId && enabledIds.has(resolvedActiveId)) {
11466
+ return resolvedActiveId;
11467
+ }
11468
+ return enabledHeadItems[0]?.id ?? null;
11469
+ };
11470
+ const moveFocus = (intent) => {
11471
+ const headIds = new Set(currentLayout.headIds);
11472
+ const enabledHeadItems = currentTabs.filter((item) => {
11473
+ return headIds.has(item.id) && !item.disabled;
11474
+ });
11475
+ if (!enabledHeadItems.length) {
11476
+ setFocusableId(null);
11477
+ return;
11478
+ }
11479
+ let target = enabledHeadItems[0];
11480
+ if (intent.direction === "first") {
11481
+ target = enabledHeadItems[0];
11482
+ } else if (intent.direction === "last") {
11483
+ target = enabledHeadItems.at(-1) ?? enabledHeadItems[0];
11484
+ } else {
11485
+ const currentIndex = enabledHeadItems.findIndex((tab) => tab.id === intent.id);
11486
+ const fallbackIndex = currentResolvedFocusableId ? enabledHeadItems.findIndex((tab) => tab.id === currentResolvedFocusableId) : -1;
11487
+ const baseIndex = currentIndex === -1 ? Math.max(fallbackIndex, 0) : currentIndex;
11488
+ const offset2 = intent.direction === "next" ? 1 : -1;
11489
+ const nextIndex = (baseIndex + offset2 + enabledHeadItems.length) % enabledHeadItems.length;
11490
+ target = enabledHeadItems[nextIndex] ?? enabledHeadItems[0];
11491
+ }
11492
+ if (!target) {
11493
+ return;
11494
+ }
11495
+ setFocusableId(target.id);
11496
+ emit("change", target.id);
11497
+ emit("update:activeId", target.id);
11498
+ };
11499
+ const selectTab = (id) => {
11500
+ const tab = currentTabs.find((item) => item.id === id);
11501
+ if (!tab || tab.disabled) {
11502
+ return;
11503
+ }
11504
+ setFocusableId(id);
11505
+ setMenuExpanded(false);
11506
+ emit("change", id);
11507
+ emit("update:activeId", id);
11508
+ };
11509
+ const shouldMoveDomFocus = () => {
11510
+ const activeElement = document.activeElement;
11511
+ return Boolean(activeElement && root.value?.contains(activeElement));
11512
+ };
11513
+ const syncAfterRender = () => {
11514
+ const layoutKey = `${currentLayout.headIds.join("|")}::${currentLayout.menuIds.join("|")}`;
11515
+ if (layoutKey !== lastEmittedLayoutKey) {
11516
+ lastEmittedLayoutKey = layoutKey;
11517
+ emit("layout", currentLayout);
11518
+ }
11519
+ if (!currentResolvedFocusableId || currentResolvedFocusableId === lastFocusedId || !shouldMoveDomFocus()) {
11520
+ return;
11521
+ }
11522
+ lastFocusedId = currentResolvedFocusableId;
11523
+ void vue.nextTick(() => {
11524
+ headView.value?.focusTab(currentResolvedFocusableId);
11525
+ });
11526
+ };
11527
+ vue.onMounted(() => {
11528
+ updateMetrics();
11529
+ syncAfterRender();
11530
+ if (typeof window !== "undefined" && typeof window.ResizeObserver === "function" && root.value) {
11531
+ observer = new window.ResizeObserver(() => {
11532
+ requestAnimationFrame(updateMetrics);
11533
+ });
11534
+ observer.observe(root.value);
11535
+ }
11536
+ });
11537
+ vue.onUpdated(syncAfterRender);
11538
+ vue.onBeforeUnmount(() => {
11539
+ observer?.disconnect();
11540
+ observer = null;
11541
+ });
11542
+ vue.watch(() => props.items, () => {
11543
+ void vue.nextTick(updateMetrics);
11544
+ }, { deep: true });
11545
+ vue.watch(() => [props.appearance, props.size], () => {
11546
+ void vue.nextTick(updateMetrics);
11547
+ });
11548
+ return () => {
11549
+ const tabs = props.items.length ? createTabDefinitions(props.items) : collectTabs(slots.default?.() ?? []);
11550
+ const resolvedActiveId = resolveActiveId(tabs, props.activeId);
11551
+ const layout = resolveTabLayout({
11552
+ items: tabs,
11553
+ widths: widths.value,
11554
+ availableWidth: availableWidth.value,
11555
+ size: props.size ?? SIZE$2.MD,
11556
+ appearance: props.appearance ?? APPEARANCE.TEXT,
11557
+ overflowing: props.overflowing,
11558
+ activeId: resolvedActiveId
11559
+ });
11560
+ const headIds = new Set(layout.headIds);
11561
+ const menuIds = new Set(layout.menuIds);
11562
+ const headItems = tabs.filter((item) => headIds.has(item.id));
11563
+ const menuItems = tabs.filter((item) => menuIds.has(item.id));
11564
+ const enabledHeadItems = headItems.filter((item) => !item.disabled);
11565
+ const activeItem = resolvedActiveId ? tabs.find((item) => item.id === resolvedActiveId) ?? null : null;
11566
+ currentTabs = tabs;
11567
+ currentLayout = layout;
11568
+ currentResolvedFocusableId = resolveFocusableId(enabledHeadItems);
11569
+ return vue.h("div", {
11570
+ ...attrs,
11571
+ ref: root,
11572
+ class: [attrs.class, {
11573
+ "ui-v1-tab-group": true,
11574
+ [`ui-v1-tab-group_${props.appearance}`]: true,
11575
+ [`ui-v1-tab-group_${props.size}`]: true
11576
+ }]
11577
+ }, [
11578
+ vue.h(_sfc_main$u, null, {
11579
+ default: () => [
11580
+ vue.h(_sfc_main$a, {
11581
+ ref: headView,
11582
+ activeId: resolvedActiveId,
11583
+ appearance: props.appearance,
11584
+ focusableId: currentResolvedFocusableId,
11585
+ groupId,
11586
+ hasMenuItems: menuItems.length > 0,
11587
+ headItems,
11588
+ items: tabs,
11589
+ menuExpanded: resolvedMenuExpanded.value,
11590
+ size: props.size,
11591
+ onFocusTab: (id) => {
11592
+ setFocusableId(id);
11593
+ },
11594
+ onMoveFocus: (intent) => {
11595
+ moveFocus(intent);
11596
+ },
11597
+ onSelect: (id) => {
11598
+ selectTab(id);
11599
+ }
11600
+ }),
11601
+ vue.h(_sfc_main$9, {
11602
+ activeId: resolvedActiveId,
11603
+ items: menuItems,
11604
+ menuExpanded: resolvedMenuExpanded.value,
11605
+ size: props.size,
11606
+ onSelect: (id) => {
11607
+ selectTab(id);
11608
+ },
11609
+ "onUpdate:menuExpanded": (expanded) => {
11610
+ setMenuExpanded(expanded);
11611
+ }
11612
+ })
11613
+ ]
11614
+ }),
11615
+ activeItem?.contentSlot ? vue.h("div", {
11616
+ id: `${groupId}-panel-${activeItem.id}`,
11617
+ class: "ui-v1-tab-group__panel",
11618
+ role: "tabpanel",
11619
+ "aria-labelledby": `${groupId}-tab-${activeItem.id}`
11620
+ }, activeItem.contentSlot()) : null
11621
+ ]);
10325
11622
  };
10326
11623
  }
10327
11624
  });
10328
- const _hoisted_1$4 = {
11625
+ const _hoisted_1$5 = {
10329
11626
  xmlns: "http://www.w3.org/2000/svg",
10330
11627
  viewBox: "0 0 24 24"
10331
11628
  };
10332
- function render$1(_ctx, _cache) {
10333
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$4, [..._cache[0] || (_cache[0] = [
11629
+ function render$2(_ctx, _cache) {
11630
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$5, [..._cache[0] || (_cache[0] = [
10334
11631
  vue.createElementVNode("path", {
10335
11632
  fill: "currentColor",
10336
11633
  d: "m14.675 4.6.544-1.257a.99.99 0 0 0-.04-.911.82.82 0 0 0-.739-.421L9.5 2a.81.81 0 0 0-.704.423.99.99 0 0 0-.047.88l.55 1.26c.155.358.201.762.13 1.15l-.623 3.441a2.8 2.8 0 0 1-.685 1.426l-.875.96a.96.96 0 0 0-.246.646l.025.555c.002.502.373.91.83.912l8.312.025c.458 0 .828-.407.828-.909l.005-.536a.96.96 0 0 0-.248-.646l-.878-.964a2.85 2.85 0 0 1-.691-1.43l-.636-3.443a2 2 0 0 1 .128-1.15M10.967 20.047a3 3 0 0 1-.196-1.079l-.007-3.771 2.424.057.007 3.758a3 3 0 0 1-.193 1.079l-.638 1.632a.415.415 0 0 1-.382.277.42.42 0 0 1-.383-.279z"
10337
11634
  }, null, -1)
10338
11635
  ])]);
10339
11636
  }
10340
- const IconPinned = { render: render$1 };
11637
+ const IconPinned = { render: render$2 };
10341
11638
  var SIZE$1 = /* @__PURE__ */ ((SIZE2) => {
10342
11639
  SIZE2["LG"] = "lg";
10343
11640
  SIZE2["MD"] = "md";
@@ -10369,13 +11666,13 @@ const _i18n$1 = define({
10369
11666
  "ru-RU": messages_ru_RU$1
10370
11667
  }
10371
11668
  });
10372
- const _hoisted_1$3 = {
11669
+ const _hoisted_1$4 = {
10373
11670
  key: 0,
10374
11671
  class: "ui-v1-tag__icon"
10375
11672
  };
10376
- const _hoisted_2$1 = { class: "ui-v1-tag__content-inner" };
10377
- const _hoisted_3 = ["aria-label"];
10378
- const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
11673
+ const _hoisted_2$2 = { class: "ui-v1-tag__content-inner" };
11674
+ const _hoisted_3$1 = ["aria-label"];
11675
+ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
10379
11676
  __name: "UiTag",
10380
11677
  props: {
10381
11678
  /** Размер */
@@ -10437,7 +11734,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
10437
11734
  style: vue.normalizeStyle(__props.background ? { background: __props.background } : {}),
10438
11735
  onMouseoverOnce: onHover
10439
11736
  }, [
10440
- _ctx.$slots["icon"] || __props.pinned ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [
11737
+ _ctx.$slots["icon"] || __props.pinned ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
10441
11738
  vue.renderSlot(_ctx.$slots, "icon", {}, () => [
10442
11739
  vue.createVNode(vue.unref(IconPinned))
10443
11740
  ])
@@ -10448,7 +11745,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
10448
11745
  style: vue.normalizeStyle(textStyle.value),
10449
11746
  class: "ui-v1-tag__content"
10450
11747
  }, [
10451
- vue.createElementVNode("div", _hoisted_2$1, [
11748
+ vue.createElementVNode("div", _hoisted_2$2, [
10452
11749
  vue.renderSlot(_ctx.$slots, "default")
10453
11750
  ])
10454
11751
  ], 4),
@@ -10462,25 +11759,25 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
10462
11759
  vue.renderSlot(_ctx.$slots, "remove-icon", {}, () => [
10463
11760
  vue.createVNode(vue.unref(IconClear))
10464
11761
  ])
10465
- ], 8, _hoisted_3)) : vue.createCommentVNode("", true)
11762
+ ], 8, _hoisted_3$1)) : vue.createCommentVNode("", true)
10466
11763
  ], 38)
10467
11764
  ], 16);
10468
11765
  };
10469
11766
  }
10470
11767
  });
10471
- const _hoisted_1$2 = {
11768
+ const _hoisted_1$3 = {
10472
11769
  xmlns: "http://www.w3.org/2000/svg",
10473
11770
  viewBox: "0 0 24 24"
10474
11771
  };
10475
- function render(_ctx, _cache) {
10476
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$2, [..._cache[0] || (_cache[0] = [
11772
+ function render$1(_ctx, _cache) {
11773
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$3, [..._cache[0] || (_cache[0] = [
10477
11774
  vue.createElementVNode("path", {
10478
11775
  fill: "currentColor",
10479
11776
  d: "M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10A10 10 0 0 0 12 2m0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16m.88-13.5v5.14l3.63 3.63a.51.51 0 0 1 0 .71l-.53.53a.51.51 0 0 1-.71 0l-4-4a.53.53 0 0 1-.15-.35V6.5a.5.5 0 0 1 .5-.5h.76a.5.5 0 0 1 .5.5"
10480
11777
  }, null, -1)
10481
11778
  ])]);
10482
11779
  }
10483
- const IconTime = { render };
11780
+ const IconTime = { render: render$1 };
10484
11781
  const pad = (time2) => time2 < 10 ? `0${time2}` : String(time2);
10485
11782
  const milliseconds = (time2) => {
10486
11783
  const [hours, minutes] = parse(time2).split(":").map((value) => parseInt(value, 10));
@@ -10579,14 +11876,14 @@ const _i18n = define({
10579
11876
  "ru-RU": messages_ru_RU
10580
11877
  }
10581
11878
  });
10582
- const _hoisted_1$1 = ["id", "aria-activedescendant", "aria-controls", "aria-disabled", "aria-expanded", "aria-label", "aria-readonly"];
10583
- const _hoisted_2 = {
11879
+ const _hoisted_1$2 = ["id", "aria-activedescendant", "aria-controls", "aria-disabled", "aria-expanded", "aria-label", "aria-readonly"];
11880
+ const _hoisted_2$1 = {
10584
11881
  key: 0,
10585
11882
  "aria-disabled": "true",
10586
11883
  class: "ui-v1-time-picker__empty",
10587
11884
  role: "option"
10588
11885
  };
10589
- const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
11886
+ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
10590
11887
  ...{
10591
11888
  inheritAttrs: false
10592
11889
  },
@@ -10936,7 +12233,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
10936
12233
  },
10937
12234
  role: "combobox"
10938
12235
  }, _ctx.$attrs, { onMousedown: onRootMouseDown }), [
10939
- vue.createVNode(_sfc_main$z, vue.mergeProps({
12236
+ vue.createVNode(_sfc_main$L, vue.mergeProps({
10940
12237
  id: inputId.value,
10941
12238
  ref_key: "textbox",
10942
12239
  ref: textbox,
@@ -10963,7 +12260,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
10963
12260
  ]),
10964
12261
  _: 3
10965
12262
  }, 16, ["id", "value", "placeholder", "clearable", "disabled", "readonly"]),
10966
- vue.createVNode(_sfc_main$D, {
12263
+ vue.createVNode(_sfc_main$P, {
10967
12264
  id: `${inputId.value}-listbox`,
10968
12265
  visible: expanded.value,
10969
12266
  target: rootTarget.value,
@@ -10978,14 +12275,14 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
10978
12275
  onAttached: onPopperAttached
10979
12276
  }, {
10980
12277
  default: vue.withCtx(() => [
10981
- vue.createVNode(_sfc_main$x, {
12278
+ vue.createVNode(_sfc_main$J, {
10982
12279
  ref_key: "scrollable",
10983
12280
  ref: scrollable,
10984
12281
  class: "ui-v1-time-picker__list"
10985
12282
  }, {
10986
12283
  default: vue.withCtx(() => [
10987
12284
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(variants.value, (time2, index) => {
10988
- return vue.openBlock(), vue.createBlock(_sfc_main$y, {
12285
+ return vue.openBlock(), vue.createBlock(_sfc_main$K, {
10989
12286
  id: optionId(index),
10990
12287
  key: `${time2}-${index}`,
10991
12288
  ref_for: true,
@@ -11007,17 +12304,148 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
11007
12304
  _: 2
11008
12305
  }, 1032, ["id", "active", "aria-selected", "data-time", "class", "onMouseenter", "onMousedown"]);
11009
12306
  }), 128)),
11010
- !variants.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, vue.toDisplayString(i18n.value.t("empty")), 1)) : vue.createCommentVNode("", true)
12307
+ !variants.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$1, vue.toDisplayString(i18n.value.t("empty")), 1)) : vue.createCommentVNode("", true)
11011
12308
  ]),
11012
12309
  _: 1
11013
12310
  }, 512)
11014
12311
  ]),
11015
12312
  _: 1
11016
12313
  }, 8, ["id", "visible", "target", "container", "aria-hidden", "disabled", "style"])
11017
- ], 16, _hoisted_1$1);
12314
+ ], 16, _hoisted_1$2);
12315
+ };
12316
+ }
12317
+ });
12318
+ var UiToggleButtonSize = /* @__PURE__ */ ((UiToggleButtonSize2) => {
12319
+ UiToggleButtonSize2["LG"] = "lg";
12320
+ UiToggleButtonSize2["MD"] = "md";
12321
+ UiToggleButtonSize2["SM"] = "sm";
12322
+ UiToggleButtonSize2["XS"] = "xs";
12323
+ return UiToggleButtonSize2;
12324
+ })(UiToggleButtonSize || {});
12325
+ const _sfc_main$5 = vue.defineComponent({
12326
+ name: "UiToggleButton",
12327
+ props: {
12328
+ id: {
12329
+ type: String,
12330
+ default: void 0
12331
+ },
12332
+ type: {
12333
+ type: String,
12334
+ default: "button"
12335
+ },
12336
+ pressed: {
12337
+ type: Boolean,
12338
+ default: false
12339
+ },
12340
+ disabled: {
12341
+ type: Boolean,
12342
+ default: false
12343
+ },
12344
+ focused: {
12345
+ type: Boolean,
12346
+ default: false
12347
+ },
12348
+ grouped: {
12349
+ type: Boolean,
12350
+ default: false
12351
+ },
12352
+ size: {
12353
+ type: String,
12354
+ default: UiToggleButtonSize.SM,
12355
+ validator: (size) => {
12356
+ return Object.values(UiToggleButtonSize).includes(size);
12357
+ }
12358
+ }
12359
+ },
12360
+ setup(props, { attrs, expose, slots }) {
12361
+ const root = useElementRef();
12362
+ expose({
12363
+ click: () => root.value?.click(),
12364
+ focus: () => root.value?.focus(),
12365
+ blur: () => root.value?.blur()
12366
+ });
12367
+ return () => {
12368
+ const content = normalize$3("default" in slots ? slots.default?.() ?? [] : []);
12369
+ return vue.h("button", {
12370
+ ref: root,
12371
+ ...attrs,
12372
+ id: props.id,
12373
+ type: props.type,
12374
+ disabled: props.disabled,
12375
+ class: [attrs.class, {
12376
+ "ui-v1-toggle-button": true,
12377
+ [`ui-v1-toggle-button_${props.size}`]: true,
12378
+ "ui-v1-toggle-button_pressed": props.pressed,
12379
+ "ui-v1-toggle-button_disabled": props.disabled,
12380
+ "ui-v1-toggle-button_focused": props.focused,
12381
+ "ui-v1-toggle-button_grouped": props.grouped
12382
+ }]
12383
+ }, vue.h("span", { class: "ui-v1-toggle-button__content" }, content.map(([node, isIcon]) => {
12384
+ const nodeProps = node.props ?? {};
12385
+ return vue.h("span", {
12386
+ class: {
12387
+ "ui-v1-toggle-button__icon": isIcon,
12388
+ "ui-v1-toggle-button__text": !isIcon
12389
+ },
12390
+ ..."aria-hidden" in nodeProps ? { "aria-hidden": nodeProps["aria-hidden"] } : {}
12391
+ }, node);
12392
+ })));
11018
12393
  };
11019
12394
  }
11020
12395
  });
12396
+ const _sfc_main$4 = vue.defineComponent({
12397
+ name: "UiToggleGroupRoot",
12398
+ props: {
12399
+ size: {
12400
+ type: String,
12401
+ default: UiToggleButtonSize.SM,
12402
+ validator: (size) => {
12403
+ return Object.values(UiToggleButtonSize).includes(size);
12404
+ }
12405
+ },
12406
+ rubber: {
12407
+ type: Boolean,
12408
+ default: false
12409
+ },
12410
+ disabled: {
12411
+ type: Boolean,
12412
+ default: false
12413
+ },
12414
+ ariaLabel: {
12415
+ type: String,
12416
+ default: void 0
12417
+ },
12418
+ ariaLabelledby: {
12419
+ type: String,
12420
+ default: void 0
12421
+ },
12422
+ ariaDescribedby: {
12423
+ type: String,
12424
+ default: void 0
12425
+ },
12426
+ ariaOrientation: {
12427
+ type: String,
12428
+ default: "horizontal"
12429
+ }
12430
+ },
12431
+ setup(props, { attrs, slots }) {
12432
+ return () => vue.h("span", {
12433
+ ...attrs,
12434
+ role: attrs.role ?? "toolbar",
12435
+ "aria-label": attrs["aria-label"] ?? props.ariaLabel,
12436
+ "aria-labelledby": attrs["aria-labelledby"] ?? props.ariaLabelledby,
12437
+ "aria-describedby": attrs["aria-describedby"] ?? props.ariaDescribedby,
12438
+ "aria-disabled": attrs["aria-disabled"] ?? `${props.disabled}`,
12439
+ "aria-orientation": attrs["aria-orientation"] ?? props.ariaOrientation,
12440
+ class: [attrs.class, {
12441
+ "ui-v1-toggle-group": true,
12442
+ [`ui-v1-toggle-group_${props.size}`]: true,
12443
+ "ui-v1-toggle-group_rubber": props.rubber,
12444
+ "ui-v1-toggle-group_disabled": props.disabled
12445
+ }]
12446
+ }, slots.default?.());
12447
+ }
12448
+ });
11021
12449
  var SIZE = /* @__PURE__ */ ((SIZE2) => {
11022
12450
  SIZE2["SM"] = "sm";
11023
12451
  SIZE2["MD"] = "md";
@@ -11092,12 +12520,12 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
11092
12520
  const toolbarSize = useToolbarSize();
11093
12521
  const size = vue.computed(() => {
11094
12522
  if (toolbarSize.value === SIZE.SM) {
11095
- return SIZE$7.XS;
12523
+ return SIZE$9.XS;
11096
12524
  }
11097
- return SIZE$7.SM;
12525
+ return SIZE$9.SM;
11098
12526
  });
11099
12527
  return (_ctx, _cache) => {
11100
- return vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({
12528
+ return vue.openBlock(), vue.createBlock(_sfc_main$Y, vue.mergeProps({
11101
12529
  ref_key: "root",
11102
12530
  ref: root,
11103
12531
  href: __props.href,
@@ -11144,8 +12572,8 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
11144
12572
  /** Тип ссылок */
11145
12573
  appearance: {
11146
12574
  type: String,
11147
- validator: (appearance) => Object.values(APPEARANCE$1).includes(appearance),
11148
- default: APPEARANCE$1.DEFAULT
12575
+ validator: (appearance) => Object.values(APPEARANCE$3).includes(appearance),
12576
+ default: APPEARANCE$3.DEFAULT
11149
12577
  },
11150
12578
  /** Инвертированный цвет ссылок для тёмного фона */
11151
12579
  light: {
@@ -11170,7 +12598,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
11170
12598
  },
11171
12599
  setup(__props) {
11172
12600
  return (_ctx, _cache) => {
11173
- return vue.openBlock(), vue.createBlock(_sfc_main$s, vue.mergeProps({
12601
+ return vue.openBlock(), vue.createBlock(_sfc_main$E, vue.mergeProps({
11174
12602
  href: __props.href,
11175
12603
  external: __props.external,
11176
12604
  appearance: __props.appearance,
@@ -11196,6 +12624,22 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
11196
12624
  };
11197
12625
  }
11198
12626
  });
12627
+ const _hoisted_1$1 = {
12628
+ xmlns: "http://www.w3.org/2000/svg",
12629
+ viewBox: "0 0 24 24"
12630
+ };
12631
+ function render(_ctx, _cache) {
12632
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$1, [..._cache[0] || (_cache[0] = [
12633
+ vue.createElementVNode("path", {
12634
+ fill: "currentColor",
12635
+ d: "M18.968 19.942c.07.188.023.4-.12.54l-.378.38a.487.487 0 0 1-.677 0 8.374 8.374 0 0 0-11.539 0 .487.487 0 0 1-.678 0l-.378-.38a.51.51 0 0 1-.18-.54L11.376 3.32a.51.51 0 0 1 .468-.32h.299a.51.51 0 0 1 .468.32z"
12636
+ }, null, -1)
12637
+ ])]);
12638
+ }
12639
+ const IconNavigate = { render };
12640
+ const YANDEX_MAP_PLUGIN = {
12641
+ LOCATOR: "locator"
12642
+ };
11199
12643
  const load = (document2, src) => new Promise((resolve, reject) => {
11200
12644
  const script = document2.createElement("script");
11201
12645
  script.async = true;
@@ -11215,6 +12659,83 @@ const load = (document2, src) => new Promise((resolve, reject) => {
11215
12659
  head.appendChild(script);
11216
12660
  });
11217
12661
  const _hoisted_1 = { class: "ui-v1-yandex-map" };
12662
+ const _hoisted_2 = {
12663
+ key: 1,
12664
+ class: "ui-v1-yandex-map__control-group ui-v1-yandex-map__control-group_left"
12665
+ };
12666
+ const _hoisted_3 = {
12667
+ key: 2,
12668
+ class: "ui-v1-yandex-map__control-group ui-v1-yandex-map__control-group_right"
12669
+ };
12670
+ const MAP_IFRAME_STYLE = `
12671
+ html, body, #map {
12672
+ width: 100%;
12673
+ height: 100%;
12674
+ margin: 0;
12675
+ }
12676
+
12677
+ .ui-v1-yandex-map-marker {
12678
+ position: relative;
12679
+ transform: translate(-10px, -76px);
12680
+ width: 0;
12681
+ height: 0;
12682
+ cursor: grab;
12683
+ user-select: none;
12684
+ }
12685
+
12686
+ .ui-v1-yandex-map-marker:active {
12687
+ cursor: grabbing;
12688
+ }
12689
+
12690
+ .ui-v1-yandex-map-marker__pin {
12691
+ position: absolute;
12692
+ left: 0;
12693
+ top: 0;
12694
+ width: 44px;
12695
+ height: 44px;
12696
+ border-radius: 50%;
12697
+ background: #ff5547;
12698
+ box-shadow: 0 12px 24px rgba(255, 85, 71, 0.28);
12699
+ }
12700
+
12701
+ .ui-v1-yandex-map-marker__pin::before {
12702
+ content: '';
12703
+ position: absolute;
12704
+ left: 16px;
12705
+ bottom: -13px;
12706
+ width: 12px;
12707
+ height: 16px;
12708
+ background: #ff5547;
12709
+ clip-path: polygon(50% 100%, 0 0, 100% 0);
12710
+ }
12711
+
12712
+ .ui-v1-yandex-map-marker__pin::after {
12713
+ content: '';
12714
+ position: absolute;
12715
+ left: 14px;
12716
+ bottom: -26px;
12717
+ width: 16px;
12718
+ height: 16px;
12719
+ border: 2px solid #ffffff;
12720
+ border-radius: 50%;
12721
+ background: #ff5547;
12722
+ box-sizing: border-box;
12723
+ }
12724
+
12725
+ .ui-v1-yandex-map-marker__hint {
12726
+ position: absolute;
12727
+ left: 56px;
12728
+ top: 4px;
12729
+ min-width: 152px;
12730
+ padding: 7px 12px;
12731
+ border-radius: 4px;
12732
+ background: rgba(255, 255, 255, 0.96);
12733
+ box-shadow: 0 8px 24px rgba(36, 48, 77, 0.16);
12734
+ color: #24304d;
12735
+ font: 400 14px/20px Arial, sans-serif;
12736
+ white-space: nowrap;
12737
+ }
12738
+ `;
11218
12739
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
11219
12740
  __name: "UiYandexMap",
11220
12741
  props: {
@@ -11225,6 +12746,10 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
11225
12746
  address: {
11226
12747
  type: String,
11227
12748
  default: ""
12749
+ },
12750
+ plugins: {
12751
+ type: Array,
12752
+ default: () => []
11228
12753
  }
11229
12754
  },
11230
12755
  emits: [
@@ -11232,10 +12757,23 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
11232
12757
  "update:address"
11233
12758
  ],
11234
12759
  setup(__props, { emit: __emit }) {
12760
+ const PLAIN_OBJECT_PROTOTYPES = [Object.prototype, null];
11235
12761
  const props = __props;
11236
12762
  const emit = __emit;
11237
12763
  const i18nBus = vue.inject(I18nInjectKey, null);
12764
+ const LOCATION = {
12765
+ center: [37.64, 55.76],
12766
+ zoom: 10
12767
+ };
11238
12768
  const iframe = vue.ref(null);
12769
+ const map = vue.shallowRef(null);
12770
+ const marker = vue.shallowRef(null);
12771
+ const mapLocation = vue.ref({
12772
+ center: [...LOCATION.center],
12773
+ zoom: LOCATION.zoom
12774
+ });
12775
+ const activeLoadToken = vue.ref(0);
12776
+ const locating = vue.ref(false);
11239
12777
  const getIFrameDocument = () => iframe.value?.contentDocument ?? null;
11240
12778
  const getIFrameWindow = () => iframe.value?.contentWindow ?? null;
11241
12779
  const getIFrameYMaps = () => {
@@ -11245,10 +12783,6 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
11245
12783
  }
11246
12784
  return null;
11247
12785
  };
11248
- const LOCATION = {
11249
- center: [37.64, 55.76],
11250
- zoom: 10
11251
- };
11252
12786
  const waitIFrameContentLoaded = (retry = 5) => {
11253
12787
  if (iframe.value?.contentDocument) {
11254
12788
  return Promise.resolve();
@@ -11257,7 +12791,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
11257
12791
  throw new Error("iframe contentDocument wasn't loaded");
11258
12792
  }
11259
12793
  return new Promise((resolve) => setTimeout(async () => {
11260
- await waitIFrameContentLoaded(retry--);
12794
+ await waitIFrameContentLoaded(retry - 1);
11261
12795
  resolve(0);
11262
12796
  }, 100));
11263
12797
  };
@@ -11270,6 +12804,138 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
11270
12804
  const apiUrl = vue.computed(() => `https://api-maps.yandex.ru/v3/?apikey=${props.apiKey}&lang=${apiLocale.value}`);
11271
12805
  const apiUrlVersion = vue.ref(0);
11272
12806
  const getGeocodeApiUrl = (geocode) => `https://geocode-maps.yandex.ru/1.x/?apikey=${props.apiKey}&geocode=${geocode}&lang=${apiLocale.value}&format=json`;
12807
+ const createLoadToken = () => {
12808
+ activeLoadToken.value++;
12809
+ return activeLoadToken.value;
12810
+ };
12811
+ const isCurrentLoadToken = (token) => activeLoadToken.value === token;
12812
+ const disposeMapRuntime = () => {
12813
+ map.value?.destroy();
12814
+ map.value = null;
12815
+ marker.value = null;
12816
+ mapLocation.value = {
12817
+ center: [...LOCATION.center],
12818
+ zoom: LOCATION.zoom
12819
+ };
12820
+ };
12821
+ const cancelMapRuntime = () => {
12822
+ activeLoadToken.value++;
12823
+ disposeMapRuntime();
12824
+ };
12825
+ const updateMapLocation = (location) => {
12826
+ const nextLocation = {
12827
+ center: location.center ? [...location.center] : mapLocation.value.center,
12828
+ zoom: typeof location.zoom === "number" ? location.zoom : mapLocation.value.zoom
12829
+ };
12830
+ mapLocation.value = nextLocation;
12831
+ map.value?.setLocation({
12832
+ ...nextLocation,
12833
+ duration: 200,
12834
+ easing: "ease-in-out"
12835
+ });
12836
+ };
12837
+ const zoomIn = () => {
12838
+ updateMapLocation({ zoom: mapLocation.value.zoom + 1 });
12839
+ };
12840
+ const zoomOut = () => {
12841
+ updateMapLocation({ zoom: mapLocation.value.zoom - 1 });
12842
+ };
12843
+ const getMarkerDetails = (coordinates) => ({
12844
+ longitude: `Longitude: ${coordinates[0].toFixed(2)}`,
12845
+ latitude: `Latitude: ${coordinates[1].toFixed(2)}`
12846
+ });
12847
+ const updateMarker = (coordinates) => {
12848
+ const details = getMarkerDetails(coordinates);
12849
+ marker.value?.update({
12850
+ coordinates,
12851
+ title: `${details.longitude}
12852
+ ${details.latitude}`
12853
+ });
12854
+ };
12855
+ const getCurrentCoordinates = () => new Promise((resolve, reject) => {
12856
+ if (!("geolocation" in navigator)) {
12857
+ reject(new Error("Geolocation is unavailable"));
12858
+ return;
12859
+ }
12860
+ navigator.geolocation.getCurrentPosition(
12861
+ ({ coords }) => resolve([coords.longitude, coords.latitude]),
12862
+ reject,
12863
+ {
12864
+ enableHighAccuracy: true,
12865
+ timeout: 1e4
12866
+ }
12867
+ );
12868
+ });
12869
+ const isPlainObject = (value) => {
12870
+ if (Object.prototype.toString.call(value) !== "[object Object]") {
12871
+ return false;
12872
+ }
12873
+ return PLAIN_OBJECT_PROTOTYPES.includes(Object.getPrototypeOf(value));
12874
+ };
12875
+ const locatorPlugin = vue.computed(() => props.plugins.find((plugin2) => isPlainObject(plugin2) && plugin2.type === YANDEX_MAP_PLUGIN.LOCATOR && typeof plugin2.url === "string" && plugin2.url.length > 0) ?? null);
12876
+ const canUseBrowserGeolocation = vue.computed(() => "geolocation" in navigator && isSecureContext);
12877
+ const canUseLocatorFallback = vue.computed(() => locatorPlugin.value !== null);
12878
+ const canLocateCurrentPosition = vue.computed(() => canUseBrowserGeolocation.value || canUseLocatorFallback.value);
12879
+ const fetchLocatorFallbackCoordinates = async (reason, error = null) => {
12880
+ if (!locatorPlugin.value) {
12881
+ throw new Error("Locator plugin is not configured");
12882
+ }
12883
+ const response = await fetch(locatorPlugin.value.url, {
12884
+ method: "POST",
12885
+ headers: {
12886
+ "Content-Type": "application/json"
12887
+ },
12888
+ body: JSON.stringify({
12889
+ locale: apiLocale.value,
12890
+ reason,
12891
+ secureContext: isSecureContext,
12892
+ browserGeolocationAvailable: "geolocation" in navigator,
12893
+ error: error instanceof Error ? error.message : null
12894
+ })
12895
+ });
12896
+ if (!response.ok) {
12897
+ throw new Error(`Locator adapter request failed with status ${response.status}`);
12898
+ }
12899
+ const result = await response.json();
12900
+ if (!Array.isArray(result.coordinates) || result.coordinates.length !== 2) {
12901
+ throw new Error("Locator adapter returned invalid coordinates payload");
12902
+ }
12903
+ return [Number(result.coordinates[0]), Number(result.coordinates[1])];
12904
+ };
12905
+ const locateCurrentPosition = async () => {
12906
+ locating.value = true;
12907
+ try {
12908
+ const coordinates = canUseBrowserGeolocation.value ? await getCurrentCoordinates() : await fetchLocatorFallbackCoordinates("browser_geolocation_unavailable");
12909
+ updateMarker(coordinates);
12910
+ updateMapLocation({
12911
+ center: coordinates,
12912
+ zoom: Math.max(mapLocation.value.zoom, 15)
12913
+ });
12914
+ const address = await fetchAddressFromCoordinates(coordinates);
12915
+ emit("change", address);
12916
+ emit("update:address", address);
12917
+ } catch (error) {
12918
+ if (canUseLocatorFallback.value && canUseBrowserGeolocation.value) {
12919
+ try {
12920
+ const coordinates = await fetchLocatorFallbackCoordinates("browser_geolocation_failed", error);
12921
+ updateMarker(coordinates);
12922
+ updateMapLocation({
12923
+ center: coordinates,
12924
+ zoom: Math.max(mapLocation.value.zoom, 15)
12925
+ });
12926
+ const address = await fetchAddressFromCoordinates(coordinates);
12927
+ emit("change", address);
12928
+ emit("update:address", address);
12929
+ return;
12930
+ } catch (fallbackError) {
12931
+ console.error("Failed to get current location via locator fallback", fallbackError);
12932
+ }
12933
+ }
12934
+ console.error("Failed to get current location", error);
12935
+ } finally {
12936
+ locating.value = false;
12937
+ }
12938
+ };
11273
12939
  function onDragEndHandler(coordinates) {
11274
12940
  fetchAddressFromCoordinates(coordinates).then((address) => {
11275
12941
  emit("change", address);
@@ -11286,128 +12952,235 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
11286
12952
  const result = await response.json();
11287
12953
  return result.response.GeoObjectCollection.featureMember[0]?.GeoObject?.Point.pos ?? "";
11288
12954
  };
12955
+ const createMarkerRuntime = (_ymaps3, iframeDocument, coordinates, onDragMove, onDragEnd) => {
12956
+ const { YMapMarker } = _ymaps3;
12957
+ const markerElement = iframeDocument.createElement("div");
12958
+ markerElement.className = "ui-v1-yandex-map-marker";
12959
+ const pinElement = iframeDocument.createElement("div");
12960
+ pinElement.className = "ui-v1-yandex-map-marker__pin";
12961
+ const hintElement = iframeDocument.createElement("div");
12962
+ hintElement.className = "ui-v1-yandex-map-marker__hint";
12963
+ const longitudeElement = iframeDocument.createElement("div");
12964
+ const latitudeElement = iframeDocument.createElement("div");
12965
+ hintElement.append(longitudeElement, latitudeElement);
12966
+ markerElement.append(pinElement, hintElement);
12967
+ const markerRuntime = new YMapMarker({
12968
+ coordinates,
12969
+ draggable: true,
12970
+ mapFollowsOnDrag: true,
12971
+ zIndex: 2500,
12972
+ onDragMove,
12973
+ onDragEnd
12974
+ }, markerElement);
12975
+ const update = ({ coordinates: nextCoordinates }) => {
12976
+ const details = getMarkerDetails(nextCoordinates);
12977
+ longitudeElement.textContent = details.longitude;
12978
+ latitudeElement.textContent = details.latitude;
12979
+ markerRuntime.update({
12980
+ coordinates: nextCoordinates
12981
+ });
12982
+ };
12983
+ update({ coordinates });
12984
+ return {
12985
+ entity: markerRuntime,
12986
+ update
12987
+ };
12988
+ };
11289
12989
  const loadApi = async () => {
12990
+ ready.value = false;
12991
+ const loadToken = createLoadToken();
12992
+ disposeMapRuntime();
11290
12993
  await waitIFrameContentLoaded();
12994
+ if (!isCurrentLoadToken(loadToken)) {
12995
+ return;
12996
+ }
11291
12997
  const iframeDocument = getIFrameDocument();
11292
12998
  if (iframeDocument) {
11293
12999
  const style = iframeDocument.createElement("style");
11294
- style.innerHTML = "body { margin: 0; }";
13000
+ style.innerHTML = MAP_IFRAME_STYLE;
11295
13001
  iframeDocument.head.appendChild(style);
11296
13002
  await load(iframeDocument, apiUrl.value);
13003
+ if (!isCurrentLoadToken(loadToken)) return;
11297
13004
  await getIFrameYMaps()?.ready;
11298
- const el = iframeDocument.createElement("div");
11299
- el.setAttribute("id", "map");
11300
- iframeDocument.body.appendChild(el);
11301
- ready.value = true;
13005
+ if (!isCurrentLoadToken(loadToken)) return;
11302
13006
  const _ymaps3 = getIFrameYMaps();
11303
13007
  const {
11304
13008
  YMap,
11305
- YMapControls,
11306
13009
  YMapDefaultFeaturesLayer,
11307
13010
  YMapDefaultSchemeLayer
11308
13011
  } = _ymaps3;
11309
- const { YMapZoomControl, YMapGeolocationControl } = await _ymaps3.import("@yandex/ymaps3-controls@0.0.1");
11310
- const { YMapDefaultMarker } = await _ymaps3.import("@yandex/ymaps3-markers@0.0.1");
11311
13012
  if (props.address) {
11312
13013
  const pos = await fetchCoordinatesFromAddress(props.address);
13014
+ if (!isCurrentLoadToken(loadToken)) {
13015
+ return;
13016
+ }
11313
13017
  if (pos) {
11314
13018
  LOCATION.center = pos.split(" ").map((c) => Number(c));
11315
13019
  }
11316
13020
  }
11317
- const map = new YMap(el, { location: LOCATION });
11318
- map.addChild(new YMapDefaultSchemeLayer({}));
11319
- map.addChild(new YMapControls({ position: "right" }).addChild(new YMapZoomControl({})));
11320
- map.addChild(new YMapDefaultFeaturesLayer({ id: "features" }));
11321
- map.addChild(new YMapControls({ position: "left" }).addChild(new YMapGeolocationControl({})));
13021
+ const el = iframeDocument.createElement("div");
13022
+ el.setAttribute("id", "map");
13023
+ iframeDocument.body.appendChild(el);
11322
13024
  const onDragMoveHandler = (coordinates) => {
11323
- const longitude = `Longitude: ${coordinates[0].toFixed(2)}`;
11324
- const latitude = `Latitude: ${coordinates[1].toFixed(2)}`;
11325
- draggableMarker.update({ coordinates, title: `${longitude} <br> ${latitude}` });
13025
+ updateMarker(coordinates);
11326
13026
  };
11327
- const draggableMarker = new YMapDefaultMarker({
11328
- coordinates: LOCATION.center,
11329
- draggable: true,
11330
- title: `Longitude: ${LOCATION.center[0].toFixed(2)} <br>
11331
- Latitude ${LOCATION.center[1].toFixed(2)}`,
11332
- onDragMove: onDragMoveHandler,
11333
- onDragEnd: onDragEndHandler
11334
- });
11335
- map.addChild(draggableMarker);
13027
+ const markerRuntime = createMarkerRuntime(
13028
+ _ymaps3,
13029
+ iframeDocument,
13030
+ LOCATION.center,
13031
+ onDragMoveHandler,
13032
+ onDragEndHandler
13033
+ );
13034
+ marker.value = markerRuntime;
13035
+ mapLocation.value = {
13036
+ center: [...LOCATION.center],
13037
+ zoom: LOCATION.zoom
13038
+ };
13039
+ map.value = new YMap(el, { location: LOCATION }, [
13040
+ new YMapDefaultSchemeLayer({}),
13041
+ new YMapDefaultFeaturesLayer({ id: "features" }),
13042
+ markerRuntime.entity
13043
+ ]);
13044
+ if (!isCurrentLoadToken(loadToken)) {
13045
+ map.value?.destroy();
13046
+ map.value = null;
13047
+ return;
13048
+ }
13049
+ ready.value = true;
11336
13050
  }
11337
13051
  };
11338
13052
  vue.watch(apiUrl, async (newUrl, oldUrl) => {
11339
13053
  if (iframe.value && newUrl !== oldUrl) {
13054
+ cancelMapRuntime();
11340
13055
  ready.value = false;
11341
13056
  apiUrlVersion.value++;
11342
13057
  }
11343
13058
  });
13059
+ vue.onBeforeUnmount(() => {
13060
+ cancelMapRuntime();
13061
+ });
11344
13062
  return (_ctx, _cache) => {
11345
13063
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
11346
- !ready.value ? (vue.openBlock(), vue.createBlock(_sfc_main$r, { key: 0 })) : vue.createCommentVNode("", true),
11347
- vue.withDirectives((vue.openBlock(), vue.createElementBlock("iframe", {
13064
+ !ready.value ? (vue.openBlock(), vue.createBlock(_sfc_main$D, {
13065
+ key: 0,
13066
+ transition: null
13067
+ })) : vue.createCommentVNode("", true),
13068
+ (vue.openBlock(), vue.createElementBlock("iframe", {
11348
13069
  ref_key: "iframe",
11349
13070
  ref: iframe,
11350
13071
  key: apiUrlVersion.value,
13072
+ allow: "geolocation",
11351
13073
  onLoad: loadApi
11352
- }, null, 32)), [
11353
- [vue.vShow, ready.value]
11354
- ])
13074
+ }, null, 32)),
13075
+ ready.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
13076
+ vue.createVNode(_sfc_main$Y, {
13077
+ class: "ui-v1-yandex-map__control-button",
13078
+ appearance: "secondary",
13079
+ size: "sm",
13080
+ type: "button",
13081
+ "aria-label": "Определить текущее местоположение",
13082
+ disabled: locating.value || !canLocateCurrentPosition.value,
13083
+ onClick: locateCurrentPosition
13084
+ }, {
13085
+ default: vue.withCtx(() => [
13086
+ vue.createVNode(vue.unref(IconNavigate))
13087
+ ]),
13088
+ _: 1
13089
+ }, 8, ["disabled"])
13090
+ ])) : vue.createCommentVNode("", true),
13091
+ ready.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
13092
+ vue.createVNode(_sfc_main$Y, {
13093
+ class: "ui-v1-yandex-map__control-button",
13094
+ appearance: "secondary",
13095
+ size: "sm",
13096
+ type: "button",
13097
+ "aria-label": "Уменьшить масштаб",
13098
+ onClick: zoomOut
13099
+ }, {
13100
+ default: vue.withCtx(() => [
13101
+ vue.createVNode(vue.unref(IconRemove))
13102
+ ]),
13103
+ _: 1
13104
+ }),
13105
+ vue.createVNode(_sfc_main$Y, {
13106
+ class: "ui-v1-yandex-map__control-button",
13107
+ appearance: "secondary",
13108
+ size: "sm",
13109
+ type: "button",
13110
+ "aria-label": "Увеличить масштаб",
13111
+ onClick: zoomIn
13112
+ }, {
13113
+ default: vue.withCtx(() => [
13114
+ vue.createVNode(vue.unref(IconAdd))
13115
+ ]),
13116
+ _: 1
13117
+ })
13118
+ ])) : vue.createCommentVNode("", true)
11355
13119
  ]);
11356
13120
  };
11357
13121
  }
11358
13122
  });
11359
13123
  const components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11360
13124
  __proto__: null,
11361
- UiAddButton: _sfc_main$Q,
11362
- UiAlert: _sfc_main$R,
11363
- UiAvatar: _sfc_main$O,
11364
- UiAvatarList: _sfc_main$N,
11365
- UiButton: _sfc_main$M,
11366
- UiCalendar: _sfc_main$I,
11367
- UiCheckbox: _sfc_main$H,
11368
- UiCollapse: _sfc_main$G,
11369
- UiCollapseBox: _sfc_main$F,
11370
- UiCollapseGroup: _sfc_main$E,
11371
- UiCopyButton: _sfc_main$B,
11372
- UiDate: _sfc_main$A,
11373
- UiDatePicker: _sfc_main$v,
11374
- UiError: _sfc_main$u,
11375
- UiImage: _sfc_main$P,
11376
- UiInfobox: _sfc_main$t,
11377
- UiLink: _sfc_main$s,
11378
- UiLoader: _sfc_main$r,
11379
- UiMenuItem: _sfc_main$y,
13125
+ UiAddButton: _sfc_main$10,
13126
+ UiAlert: _sfc_main$11,
13127
+ UiAvatar: _sfc_main$_,
13128
+ UiAvatarList: _sfc_main$Z,
13129
+ UiButton: _sfc_main$Y,
13130
+ UiCalendar: _sfc_main$U,
13131
+ UiCheckbox: _sfc_main$T,
13132
+ UiCollapse: _sfc_main$S,
13133
+ UiCollapseBox: _sfc_main$R,
13134
+ UiCollapseGroup: _sfc_main$Q,
13135
+ UiCopyButton: _sfc_main$N,
13136
+ UiDate: _sfc_main$M,
13137
+ UiDatePicker: _sfc_main$H,
13138
+ UiError: _sfc_main$G,
13139
+ UiImage: _sfc_main$$,
13140
+ UiInfobox: _sfc_main$F,
13141
+ UiLink: _sfc_main$E,
13142
+ UiLoader: _sfc_main$D,
13143
+ UiMenuItem: _sfc_main$K,
11380
13144
  UiMenuItemGroup,
11381
- UiModalSidebar: _sfc_main$p,
11382
- UiModalWindow: _sfc_main$n,
11383
- UiModalWindowSurface: _sfc_main$o,
11384
- UiNumberStepper: _sfc_main$m,
11385
- UiPopper: _sfc_main$D,
11386
- UiPopperConnector: _sfc_main$l,
11387
- UiPopperTarget: _sfc_main$k,
11388
- UiRadio: _sfc_main$j,
11389
- UiScrollBox: _sfc_main$x,
11390
- UiSelectPopper: _sfc_main$h,
11391
- UiSelectTrigger: _sfc_main$g,
11392
- UiSlider: _sfc_main$i,
11393
- UiSwitch: _sfc_main$f,
11394
- UiTableBodyCell: _sfc_main$e,
11395
- UiTableCol: _sfc_main$d,
11396
- UiTableFooterButton: _sfc_main$c,
11397
- UiTableFooterSection: _sfc_main$b,
11398
- UiTableHeadCell: _sfc_main$a,
11399
- UiTableRoot: _sfc_main$9,
11400
- UiTableRow: _sfc_main$8,
11401
- UiTableSection: _sfc_main$7,
11402
- UiTableSorter: _sfc_main$6,
11403
- UiTag: _sfc_main$5,
11404
- UiTextbox: _sfc_main$z,
11405
- UiTimePicker: _sfc_main$4,
13145
+ UiModalSidebar: _sfc_main$B,
13146
+ UiModalWindow: _sfc_main$z,
13147
+ UiModalWindowSurface: _sfc_main$A,
13148
+ UiNumberStepper: _sfc_main$y,
13149
+ UiPageHeader: _sfc_main$v,
13150
+ UiPageHeaderLayout: _sfc_main$w,
13151
+ UiPageHeaderTitle: _sfc_main$x,
13152
+ UiPopper: _sfc_main$P,
13153
+ UiPopperConnector: _sfc_main$u,
13154
+ UiPopperTarget: _sfc_main$t,
13155
+ UiRadio: _sfc_main$s,
13156
+ UiRadioSwitchOptionShell: _sfc_main$r,
13157
+ UiRadioSwitchRoot: _sfc_main$q,
13158
+ UiScrollBox: _sfc_main$J,
13159
+ UiSelectPopper: _sfc_main$o,
13160
+ UiSelectTrigger: _sfc_main$n,
13161
+ UiSlider: _sfc_main$p,
13162
+ UiSwitch: _sfc_main$m,
13163
+ UiTab: _sfc_main$c,
13164
+ UiTabGroup: _sfc_main$8,
13165
+ UiTableBodyCell: _sfc_main$l,
13166
+ UiTableCol: _sfc_main$k,
13167
+ UiTableFooterButton: _sfc_main$j,
13168
+ UiTableFooterSection: _sfc_main$i,
13169
+ UiTableHeadCell: _sfc_main$h,
13170
+ UiTableRoot: _sfc_main$g,
13171
+ UiTableRow: _sfc_main$f,
13172
+ UiTableSection: _sfc_main$e,
13173
+ UiTableSorter: _sfc_main$d,
13174
+ UiTag: _sfc_main$7,
13175
+ UiTextbox: _sfc_main$L,
13176
+ UiTimePicker: _sfc_main$6,
13177
+ UiToggleButton: _sfc_main$5,
13178
+ UiToggleGroupRoot: _sfc_main$4,
11406
13179
  UiToolbar: _sfc_main$3,
11407
13180
  UiToolbarButton: _sfc_main$2,
11408
13181
  UiToolbarLink: _sfc_main$1,
11409
- UiTooltip: _sfc_main$C,
11410
- UiTransition: _sfc_main$S,
13182
+ UiTooltip: _sfc_main$O,
13183
+ UiTransition: _sfc_main$12,
11411
13184
  UiYandexMap: _sfc_main
11412
13185
  }, Symbol.toStringTag, { value: "Module" }));
11413
13186
  const createProvider = () => host.createProvider(components);
@@ -11417,56 +13190,69 @@ exports.DIRECTION = DIRECTION;
11417
13190
  exports.I18nPlugin = plugin$1;
11418
13191
  exports.ImageWorkersKey = ImageWorkersKey;
11419
13192
  exports.ModalPlugin = plugin;
11420
- exports.UiAddButton = _sfc_main$Q;
11421
- exports.UiAlert = _sfc_main$R;
11422
- exports.UiAvatar = _sfc_main$O;
11423
- exports.UiAvatarList = _sfc_main$N;
11424
- exports.UiButton = _sfc_main$M;
11425
- exports.UiCalendar = _sfc_main$I;
11426
- exports.UiCheckbox = _sfc_main$H;
11427
- exports.UiCollapse = _sfc_main$G;
11428
- exports.UiCollapseBox = _sfc_main$F;
11429
- exports.UiCollapseGroup = _sfc_main$E;
11430
- exports.UiCopyButton = _sfc_main$B;
11431
- exports.UiDate = _sfc_main$A;
11432
- exports.UiDatePicker = _sfc_main$v;
11433
- exports.UiError = _sfc_main$u;
11434
- exports.UiImage = _sfc_main$P;
11435
- exports.UiInfobox = _sfc_main$t;
11436
- exports.UiLink = _sfc_main$s;
11437
- exports.UiLoader = _sfc_main$r;
11438
- exports.UiMenuItem = _sfc_main$y;
13193
+ exports.RADIO_SWITCH_APPEARANCE = APPEARANCE$1;
13194
+ exports.RADIO_SWITCH_SIZE = SIZE$3;
13195
+ exports.TAB_APPEARANCE = APPEARANCE;
13196
+ exports.TAB_SIZE = SIZE$2;
13197
+ exports.UiAddButton = _sfc_main$10;
13198
+ exports.UiAlert = _sfc_main$11;
13199
+ exports.UiAvatar = _sfc_main$_;
13200
+ exports.UiAvatarList = _sfc_main$Z;
13201
+ exports.UiButton = _sfc_main$Y;
13202
+ exports.UiCalendar = _sfc_main$U;
13203
+ exports.UiCheckbox = _sfc_main$T;
13204
+ exports.UiCollapse = _sfc_main$S;
13205
+ exports.UiCollapseBox = _sfc_main$R;
13206
+ exports.UiCollapseGroup = _sfc_main$Q;
13207
+ exports.UiCopyButton = _sfc_main$N;
13208
+ exports.UiDate = _sfc_main$M;
13209
+ exports.UiDatePicker = _sfc_main$H;
13210
+ exports.UiError = _sfc_main$G;
13211
+ exports.UiImage = _sfc_main$$;
13212
+ exports.UiInfobox = _sfc_main$F;
13213
+ exports.UiLink = _sfc_main$E;
13214
+ exports.UiLoader = _sfc_main$D;
13215
+ exports.UiMenuItem = _sfc_main$K;
11439
13216
  exports.UiMenuItemGroup = UiMenuItemGroup;
11440
- exports.UiModalSidebar = _sfc_main$p;
11441
- exports.UiModalWindow = _sfc_main$n;
11442
- exports.UiModalWindowSurface = _sfc_main$o;
11443
- exports.UiNumberStepper = _sfc_main$m;
11444
- exports.UiPopper = _sfc_main$D;
11445
- exports.UiPopperConnector = _sfc_main$l;
11446
- exports.UiPopperTarget = _sfc_main$k;
11447
- exports.UiRadio = _sfc_main$j;
11448
- exports.UiScrollBox = _sfc_main$x;
11449
- exports.UiSelectPopper = _sfc_main$h;
11450
- exports.UiSelectTrigger = _sfc_main$g;
11451
- exports.UiSlider = _sfc_main$i;
11452
- exports.UiSwitch = _sfc_main$f;
11453
- exports.UiTableBodyCell = _sfc_main$e;
11454
- exports.UiTableCol = _sfc_main$d;
11455
- exports.UiTableFooterButton = _sfc_main$c;
11456
- exports.UiTableFooterSection = _sfc_main$b;
11457
- exports.UiTableHeadCell = _sfc_main$a;
11458
- exports.UiTableRoot = _sfc_main$9;
11459
- exports.UiTableRow = _sfc_main$8;
11460
- exports.UiTableSection = _sfc_main$7;
11461
- exports.UiTableSorter = _sfc_main$6;
11462
- exports.UiTag = _sfc_main$5;
11463
- exports.UiTextbox = _sfc_main$z;
11464
- exports.UiTimePicker = _sfc_main$4;
13217
+ exports.UiModalSidebar = _sfc_main$B;
13218
+ exports.UiModalWindow = _sfc_main$z;
13219
+ exports.UiModalWindowSurface = _sfc_main$A;
13220
+ exports.UiNumberStepper = _sfc_main$y;
13221
+ exports.UiPageHeader = _sfc_main$v;
13222
+ exports.UiPageHeaderLayout = _sfc_main$w;
13223
+ exports.UiPageHeaderTitle = _sfc_main$x;
13224
+ exports.UiPopper = _sfc_main$P;
13225
+ exports.UiPopperConnector = _sfc_main$u;
13226
+ exports.UiPopperTarget = _sfc_main$t;
13227
+ exports.UiRadio = _sfc_main$s;
13228
+ exports.UiRadioSwitchOptionShell = _sfc_main$r;
13229
+ exports.UiRadioSwitchRoot = _sfc_main$q;
13230
+ exports.UiScrollBox = _sfc_main$J;
13231
+ exports.UiSelectPopper = _sfc_main$o;
13232
+ exports.UiSelectTrigger = _sfc_main$n;
13233
+ exports.UiSlider = _sfc_main$p;
13234
+ exports.UiSwitch = _sfc_main$m;
13235
+ exports.UiTab = _sfc_main$c;
13236
+ exports.UiTabGroup = _sfc_main$8;
13237
+ exports.UiTableBodyCell = _sfc_main$l;
13238
+ exports.UiTableCol = _sfc_main$k;
13239
+ exports.UiTableFooterButton = _sfc_main$j;
13240
+ exports.UiTableFooterSection = _sfc_main$i;
13241
+ exports.UiTableHeadCell = _sfc_main$h;
13242
+ exports.UiTableRoot = _sfc_main$g;
13243
+ exports.UiTableRow = _sfc_main$f;
13244
+ exports.UiTableSection = _sfc_main$e;
13245
+ exports.UiTableSorter = _sfc_main$d;
13246
+ exports.UiTag = _sfc_main$7;
13247
+ exports.UiTextbox = _sfc_main$L;
13248
+ exports.UiTimePicker = _sfc_main$6;
13249
+ exports.UiToggleButton = _sfc_main$5;
13250
+ exports.UiToggleGroupRoot = _sfc_main$4;
11465
13251
  exports.UiToolbar = _sfc_main$3;
11466
13252
  exports.UiToolbarButton = _sfc_main$2;
11467
13253
  exports.UiToolbarLink = _sfc_main$1;
11468
- exports.UiTooltip = _sfc_main$C;
11469
- exports.UiTransition = _sfc_main$S;
13254
+ exports.UiTooltip = _sfc_main$O;
13255
+ exports.UiTransition = _sfc_main$12;
11470
13256
  exports.UiYandexMap = _sfc_main;
11471
13257
  exports.VALIGN = VALIGN;
11472
13258
  exports.VueI18n = VueI18n;