@retailcrm/embed-ui-v1-components 0.9.15 → 0.9.17

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 (71) hide show
  1. package/assets/sprites/map-and-places/navigate.svg +3 -0
  2. package/dist/host.cjs +1229 -616
  3. package/dist/host.css +346 -0
  4. package/dist/host.d.ts +300 -118
  5. package/dist/host.js +1229 -616
  6. package/dist/remote.cjs +501 -61
  7. package/dist/remote.d.ts +667 -81
  8. package/dist/remote.js +502 -62
  9. package/docs/COMPONENTS.md +4 -0
  10. package/docs/FORMAT.md +19 -0
  11. package/docs/PROFILES.md +2 -0
  12. package/docs/profiles/UiAddButton.yml +12 -0
  13. package/docs/profiles/UiAlert.yml +12 -0
  14. package/docs/profiles/UiAvatar.yml +12 -0
  15. package/docs/profiles/UiAvatarList.yml +12 -0
  16. package/docs/profiles/UiButton.yml +8 -0
  17. package/docs/profiles/UiCalendar.yml +12 -0
  18. package/docs/profiles/UiCheckbox.yml +12 -0
  19. package/docs/profiles/UiCollapse.yml +12 -0
  20. package/docs/profiles/UiCollapseBox.yml +12 -0
  21. package/docs/profiles/UiCollapseGroup.yml +12 -0
  22. package/docs/profiles/UiCopyButton.yml +12 -0
  23. package/docs/profiles/UiDate.yml +12 -0
  24. package/docs/profiles/UiDatePicker.yml +12 -0
  25. package/docs/profiles/UiError.yml +12 -0
  26. package/docs/profiles/UiField.yml +5 -1
  27. package/docs/profiles/UiImage.yml +12 -0
  28. package/docs/profiles/UiInfobox.yml +12 -0
  29. package/docs/profiles/UiLink.yml +12 -0
  30. package/docs/profiles/UiLoader.yml +12 -0
  31. package/docs/profiles/UiMenuItem.yml +12 -0
  32. package/docs/profiles/UiMenuItemGroup.yml +12 -0
  33. package/docs/profiles/UiModalSidebar.yml +12 -0
  34. package/docs/profiles/UiModalWindow.yml +12 -0
  35. package/docs/profiles/UiModalWindowSurface.yml +12 -0
  36. package/docs/profiles/UiNumberStepper.yml +12 -0
  37. package/docs/profiles/UiPageHeader.yml +5 -1
  38. package/docs/profiles/UiPopper.yml +5 -1
  39. package/docs/profiles/UiPopperConnector.yml +6 -0
  40. package/docs/profiles/UiPopperTarget.yml +6 -0
  41. package/docs/profiles/UiRadio.yml +12 -0
  42. package/docs/profiles/UiRadioSwitch.yml +7 -0
  43. package/docs/profiles/UiRadioSwitchOption.yml +8 -0
  44. package/docs/profiles/UiScrollBox.yml +12 -0
  45. package/docs/profiles/UiSelect.yml +9 -0
  46. package/docs/profiles/UiSelectOption.yml +12 -0
  47. package/docs/profiles/UiSelectOptionGroup.yml +12 -0
  48. package/docs/profiles/UiSkeleton.yml +41 -0
  49. package/docs/profiles/UiSlider.yml +12 -0
  50. package/docs/profiles/UiSwitch.yml +12 -0
  51. package/docs/profiles/UiTab.yml +5 -0
  52. package/docs/profiles/UiTabGroup.yml +5 -0
  53. package/docs/profiles/UiTable.yml +5 -1
  54. package/docs/profiles/UiTableBodyCell.yml +12 -0
  55. package/docs/profiles/UiTableColumn.yml +12 -0
  56. package/docs/profiles/UiTableFooterButton.yml +12 -0
  57. package/docs/profiles/UiTableFooterSection.yml +12 -0
  58. package/docs/profiles/UiTableHeadCell.yml +12 -0
  59. package/docs/profiles/UiTableSorter.yml +12 -0
  60. package/docs/profiles/UiTag.yml +12 -0
  61. package/docs/profiles/UiTextbox.yml +5 -1
  62. package/docs/profiles/UiTimePicker.yml +12 -0
  63. package/docs/profiles/UiToggleButton.yml +211 -0
  64. package/docs/profiles/UiToggleGroup.yml +211 -0
  65. package/docs/profiles/UiToggleGroupOption.yml +116 -0
  66. package/docs/profiles/UiToolbarButton.yml +12 -0
  67. package/docs/profiles/UiToolbarLink.yml +12 -0
  68. package/docs/profiles/UiTooltip.yml +12 -0
  69. package/docs/profiles/UiTransition.yml +12 -0
  70. package/docs/profiles/UiYandexMap.yml +12 -0
  71. package/package.json +2 -2
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$10 = /* @__PURE__ */ vue.defineComponent({
10
+ const _sfc_main$13 = /* @__PURE__ */ vue.defineComponent({
11
11
  __name: "UiTransition",
12
12
  props: {
13
13
  /** Наименование анимации перехода */
@@ -35,13 +35,13 @@ const _sfc_main$10 = /* @__PURE__ */ vue.defineComponent({
35
35
  };
36
36
  }
37
37
  });
38
- const _hoisted_1$V = {
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$o(_ctx, _cache) {
44
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$V, [..._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$o(_ctx, _cache) {
50
50
  }, null, -1)
51
51
  ])]);
52
52
  }
53
- const IconCheckmarkCircleOutlined = { render: render$o };
54
- const _hoisted_1$U = {
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$n(_ctx, _cache) {
59
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$U, [..._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$n };
67
- const _hoisted_1$T = {
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$m(_ctx, _cache) {
72
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$T, [..._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$m(_ctx, _cache) {
78
78
  }, null, -1)
79
79
  ])]);
80
80
  }
81
- const IconClearCircleOutlined = { render: render$m };
82
- const _hoisted_1$S = {
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$l(_ctx, _cache) {
87
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$S, [..._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$l };
95
- const _hoisted_1$R = {
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$k(_ctx, _cache) {
100
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$R, [..._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$k(_ctx, _cache) {
106
106
  }, null, -1)
107
107
  ])]);
108
108
  }
109
- const IconInfoOutlined = { render: render$k };
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$Q = ["aria-hidden", "aria-live"];
118
- const _hoisted_2$o = {
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$i = { class: "ui-v1-alert__icon" };
123
- const _sfc_main$$ = /* @__PURE__ */ vue.defineComponent({
122
+ const _hoisted_3$j = { class: "ui-v1-alert__icon" };
123
+ const _sfc_main$12 = /* @__PURE__ */ vue.defineComponent({
124
124
  ...{
125
125
  inheritAttrs: false
126
126
  },
@@ -229,7 +229,7 @@ const _sfc_main$$ = /* @__PURE__ */ vue.defineComponent({
229
229
  }
230
230
  });
231
231
  return (_ctx, _cache) => {
232
- return vue.openBlock(), vue.createBlock(_sfc_main$10, {
232
+ return vue.openBlock(), vue.createBlock(_sfc_main$13, {
233
233
  name: "fade",
234
234
  onBeforeEnter,
235
235
  onBeforeLeave,
@@ -252,8 +252,8 @@ const _sfc_main$$ = /* @__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$o, [
256
- vue.createElementVNode("div", _hoisted_3$i, [
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$$ = /* @__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$Q), [
281
+ ], 16, _hoisted_1$R), [
282
282
  [vue.vShow, state.shown]
283
283
  ])
284
284
  ]),
@@ -287,12 +287,12 @@ const _sfc_main$$ = /* @__PURE__ */ vue.defineComponent({
287
287
  };
288
288
  }
289
289
  });
290
- const _hoisted_1$P = {
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$j(_ctx, _cache) {
295
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$P, [..._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$j(_ctx, _cache) {
301
301
  }, null, -1)
302
302
  ])]);
303
303
  }
304
- const IconAddCircle = { render: render$j };
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$O = ["type", "disabled"];
318
- const _hoisted_2$n = { class: "ui-v1-add-button__content" };
319
- const _hoisted_3$h = { class: "ui-v1-add-button__title" };
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
320
  const _hoisted_4$c = {
321
321
  key: 0,
322
322
  class: "ui-v1-add-button__description"
323
323
  };
324
- const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
324
+ const _sfc_main$11 = /* @__PURE__ */ vue.defineComponent({
325
325
  ...{
326
326
  inheritAttrs: false
327
327
  },
@@ -364,8 +364,8 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
364
364
  height: vue.unref(normalizeHeight)(__props.height)
365
365
  }
366
366
  }, _ctx.$attrs), [
367
- vue.createElementVNode("span", _hoisted_2$n, [
368
- vue.createElementVNode("span", _hoisted_3$h, [
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",
@@ -378,16 +378,16 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
378
378
  vue.renderSlot(_ctx.$slots, "description")
379
379
  ])) : vue.createCommentVNode("", true)
380
380
  ])
381
- ], 16, _hoisted_1$O);
381
+ ], 16, _hoisted_1$P);
382
382
  };
383
383
  }
384
384
  });
385
- const _hoisted_1$N = {
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$i(_ctx, _cache) {
390
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$N, [..._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$i(_ctx, _cache) {
396
396
  }, null, -1)
397
397
  ])]);
398
398
  }
399
- const IconHelpOutlined = { render: render$i };
400
- const _hoisted_1$M = {
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$h(_ctx, _cache) {
405
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$M, [..._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$h };
412
- const _hoisted_1$L = {
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$g(_ctx, _cache) {
417
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$L, [..._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$g };
423
+ const SpriteVIP = { render: render$h };
424
424
  const ImageWorkersKey = Symbol("$image.workers");
425
- const _hoisted_1$K = ["alt", "src"];
426
- const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
425
+ const _hoisted_1$L = ["alt", "src"];
426
+ const _sfc_main$10 = /* @__PURE__ */ vue.defineComponent({
427
427
  __name: "UiImage",
428
428
  props: {
429
429
  alt: {
@@ -459,7 +459,7 @@ const _sfc_main$Z = /* @__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$K);
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$a = /* @__PURE__ */ ((SIZE2) => {
481
+ var SIZE$b = /* @__PURE__ */ ((SIZE2) => {
482
482
  SIZE2["XS"] = "xs";
483
483
  SIZE2["SM"] = "sm";
484
484
  SIZE2["LG"] = "lg";
485
485
  return SIZE2;
486
- })(SIZE$a || {});
486
+ })(SIZE$b || {});
487
487
  var STATUS = /* @__PURE__ */ ((STATUS2) => {
488
488
  STATUS2["NONE"] = "";
489
489
  STATUS2["BUSY"] = "busy";
@@ -493,15 +493,15 @@ var STATUS = /* @__PURE__ */ ((STATUS2) => {
493
493
  return STATUS2;
494
494
  })(STATUS || {});
495
495
  const AvatarSizeKey = Symbol("UiAvatarSize");
496
- const _hoisted_1$J = {
496
+ const _hoisted_1$K = {
497
497
  key: 1,
498
498
  class: "ui-v1-avatar__unresolved"
499
499
  };
500
- const _hoisted_2$m = {
500
+ const _hoisted_2$n = {
501
501
  key: 3,
502
502
  class: "ui-v1-avatar__initials"
503
503
  };
504
- const _hoisted_3$g = {
504
+ const _hoisted_3$h = {
505
505
  key: 4,
506
506
  class: "ui-v1-avatar__labels"
507
507
  };
@@ -513,7 +513,7 @@ 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$Y = /* @__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$Y = /* @__PURE__ */ vue.defineComponent({
552
552
  /** Размер изображения */
553
553
  size: {
554
554
  type: String,
555
- validator: (size) => Object.values(SIZE$a).includes(size),
556
- default: SIZE$a.SM
555
+ validator: (size) => Object.values(SIZE$b).includes(size),
556
+ default: SIZE$b.SM
557
557
  },
558
558
  optimize: {
559
559
  type: [Boolean, Object],
@@ -581,9 +581,9 @@ const _sfc_main$Y = /* @__PURE__ */ vue.defineComponent({
581
581
  const processing = typeof props.optimize === "object" ? props.optimize : {};
582
582
  return {
583
583
  resize: processing.resize ?? {
584
- [SIZE$a.XS]: "48x-",
585
- [SIZE$a.SM]: "72x-",
586
- [SIZE$a.LG]: "104x-"
584
+ [SIZE$b.XS]: "48x-",
585
+ [SIZE$b.SM]: "72x-",
586
+ [SIZE$b.LG]: "104x-"
587
587
  }[size.value],
588
588
  crop: processing.crop
589
589
  };
@@ -600,7 +600,7 @@ const _sfc_main$Y = /* @__PURE__ */ vue.defineComponent({
600
600
  }
601
601
  }, _ctx.$attrs), {
602
602
  default: vue.withCtx(() => [
603
- __props.src ? (vue.openBlock(), vue.createBlock(_sfc_main$Z, {
603
+ __props.src ? (vue.openBlock(), vue.createBlock(_sfc_main$10, {
604
604
  key: 0,
605
605
  src: __props.src,
606
606
  resize: optimization.value.resize,
@@ -609,7 +609,7 @@ const _sfc_main$Y = /* @__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$J, [
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,12 +620,12 @@ const _sfc_main$Y = /* @__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$m, [
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$g, [
628
+ __props.vip || __props.bad ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$h, [
629
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),
@@ -639,7 +639,7 @@ const _sfc_main$Y = /* @__PURE__ */ vue.defineComponent({
639
639
  };
640
640
  }
641
641
  });
642
- const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
642
+ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
643
643
  __name: "UiAvatarList",
644
644
  props: {
645
645
  /** Список аватарок пользователей */
@@ -650,8 +650,8 @@ const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
650
650
  /** Размер аватарок */
651
651
  size: {
652
652
  type: String,
653
- validator: (size) => Object.values(SIZE$a).includes(size),
654
- default: SIZE$a.SM
653
+ validator: (size) => Object.values(SIZE$b).includes(size),
654
+ default: SIZE$b.SM
655
655
  }
656
656
  },
657
657
  setup(__props) {
@@ -666,7 +666,7 @@ const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
666
666
  key: index,
667
667
  class: "ui-v1-avatar-list__item"
668
668
  }, [
669
- vue.createVNode(_sfc_main$Y, {
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$5 = /* @__PURE__ */ ((APPEARANCE2) => {
716
+ var APPEARANCE$6 = /* @__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$5 || {});
723
- var SIZE$9 = /* @__PURE__ */ ((SIZE2) => {
722
+ })(APPEARANCE$6 || {});
723
+ var SIZE$a = /* @__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$9 || {});
729
+ })(SIZE$a || {});
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$W = vue.defineComponent({
736
+ const _sfc_main$Z = vue.defineComponent({
737
737
  props: {
738
738
  /** Устанавливает тип кнопки */
739
739
  type: {
@@ -749,7 +749,7 @@ const _sfc_main$W = vue.defineComponent({
749
749
  /** Регулирует внешний вид кнопки: primary, secondary, tertiary or outlined */
750
750
  appearance: {
751
751
  type: String,
752
- default: APPEARANCE$5.PRIMARY
752
+ default: APPEARANCE$6.PRIMARY
753
753
  },
754
754
  /** Регулирует цветовую схему кнопки: default, success or danger */
755
755
  variant: {
@@ -759,7 +759,7 @@ const _sfc_main$W = vue.defineComponent({
759
759
  /** Размер */
760
760
  size: {
761
761
  type: String,
762
- default: SIZE$9.SM
762
+ default: SIZE$a.SM
763
763
  },
764
764
  /** Если кнопка активна */
765
765
  active: {
@@ -819,8 +819,8 @@ const _sfc_main$W = vue.defineComponent({
819
819
  };
820
820
  }
821
821
  });
822
- const _hoisted_1$I = { class: "ui-v1-calendar-cell__content" };
823
- const _sfc_main$V = /* @__PURE__ */ vue.defineComponent({
822
+ const _hoisted_1$J = { class: "ui-v1-calendar-cell__content" };
823
+ const _sfc_main$Y = /* @__PURE__ */ vue.defineComponent({
824
824
  __name: "UiCalendarCell",
825
825
  props: {
826
826
  current: {
@@ -865,32 +865,32 @@ const _sfc_main$V = /* @__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$I, [
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$H = {
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$f(_ctx, _cache) {
880
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$H, [..._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$f };
888
- const _hoisted_1$G = {
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$U = /* @__PURE__ */ vue.defineComponent({
893
+ const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
894
894
  __name: "UiCalendarDirectionButton",
895
895
  props: {
896
896
  label: {
@@ -910,7 +910,7 @@ const _sfc_main$U = /* @__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$W, {
913
+ return !__props.absent ? (vue.openBlock(), vue.createBlock(_sfc_main$Z, {
914
914
  key: 0,
915
915
  "aria-label": __props.label,
916
916
  appearance: "tertiary",
@@ -927,15 +927,15 @@ const _sfc_main$U = /* @__PURE__ */ vue.defineComponent({
927
927
  }, null, 8, ["class"])
928
928
  ]),
929
929
  _: 1
930
- }, 8, ["aria-label"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$G));
930
+ }, 8, ["aria-label"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$H));
931
931
  };
932
932
  }
933
933
  });
934
- const _hoisted_1$F = {
934
+ const _hoisted_1$G = {
935
935
  key: 1,
936
936
  class: "ui-v1-calendar-navigation__text"
937
937
  };
938
- const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
938
+ const _sfc_main$W = /* @__PURE__ */ vue.defineComponent({
939
939
  __name: "UiCalendarSwitchButton",
940
940
  props: {
941
941
  locked: {
@@ -946,7 +946,7 @@ const _sfc_main$T = /* @__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$W, {
949
+ return !__props.locked ? (vue.openBlock(), vue.createBlock(_sfc_main$Z, {
950
950
  key: 0,
951
951
  appearance: "tertiary",
952
952
  class: "ui-v1-calendar-navigation__switch-button",
@@ -956,17 +956,17 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
956
956
  vue.renderSlot(_ctx.$slots, "default")
957
957
  ]),
958
958
  _: 3
959
- })) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$F, [
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$4 = /* @__PURE__ */ ((APPEARANCE2) => {
965
+ var APPEARANCE$5 = /* @__PURE__ */ ((APPEARANCE2) => {
966
966
  APPEARANCE2["SINGLE"] = "single";
967
967
  APPEARANCE2["DOUBLE"] = "double";
968
968
  return APPEARANCE2;
969
- })(APPEARANCE$4 || {});
969
+ })(APPEARANCE$5 || {});
970
970
  var TYPE$2 = /* @__PURE__ */ ((TYPE2) => {
971
971
  TYPE2["SINGLE"] = "single";
972
972
  TYPE2["RANGE"] = "range";
@@ -1381,9 +1381,9 @@ const _i18n$6 = define({
1381
1381
  "ru-RU": messages_ru_RU$6
1382
1382
  }
1383
1383
  });
1384
- const _hoisted_1$E = { class: "ui-v1-calendar-wrapper" };
1385
- const _hoisted_2$l = ["aria-label"];
1386
- const _hoisted_3$f = ["id"];
1384
+ const _hoisted_1$F = { class: "ui-v1-calendar-wrapper" };
1385
+ const _hoisted_2$m = ["aria-label"];
1386
+ const _hoisted_3$g = ["id"];
1387
1387
  const _hoisted_4$a = ["aria-labelledby", "aria-multiselectable"];
1388
1388
  const _hoisted_5$8 = {
1389
1389
  class: "ui-v1-calendar__row",
@@ -1404,7 +1404,7 @@ const _hoisted_16 = {
1404
1404
  "aria-atomic": "true",
1405
1405
  "aria-live": "polite"
1406
1406
  };
1407
- const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
1407
+ const _sfc_main$V = /* @__PURE__ */ vue.defineComponent({
1408
1408
  __name: "UiCalendar",
1409
1409
  props: {
1410
1410
  /** Текущая дата */
@@ -1422,8 +1422,8 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
1422
1422
  /** Одиночный или двойной вид */
1423
1423
  appearance: {
1424
1424
  type: String,
1425
- validator: (appearance) => Object.values(APPEARANCE$4).includes(appearance),
1426
- default: APPEARANCE$4.SINGLE
1425
+ validator: (appearance) => Object.values(APPEARANCE$5).includes(appearance),
1426
+ default: APPEARANCE$5.SINGLE
1427
1427
  },
1428
1428
  /** Первый день недели */
1429
1429
  firstDayOfWeek: {
@@ -1563,7 +1563,7 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
1563
1563
  });
1564
1564
  const viewsComputed = vue.computed(() => {
1565
1565
  const view = [views[0]];
1566
- if (props.appearance === APPEARANCE$4.DOUBLE) {
1566
+ if (props.appearance === APPEARANCE$5.DOUBLE) {
1567
1567
  view.push(views[1]);
1568
1568
  }
1569
1569
  return view.map(({ date, decade, mode }) => ({
@@ -1575,7 +1575,7 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
1575
1575
  });
1576
1576
  const viewsIsSynchronized = vue.computed(() => {
1577
1577
  const [first, last] = views;
1578
- return props.appearance === APPEARANCE$4.DOUBLE && first.mode === last.mode && first.date.inSameMonth(new CalendarDay(last.date.year, last.date.month - 1));
1578
+ return props.appearance === APPEARANCE$5.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$S = /* @__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$4.DOUBLE;
2002
+ return inSelectedMonth(date, 0) || inSelectedMonth(date, 1) && props.appearance === APPEARANCE$5.DOUBLE;
2003
2003
  };
2004
2004
  const inRangeDate = (date) => {
2005
2005
  const [min2, max2] = range.value;
@@ -2022,7 +2022,7 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
2022
2022
  ));
2023
2023
  };
2024
2024
  return (_ctx, _cache) => {
2025
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$E, [
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$S = /* @__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$U, {
2036
+ vue.createVNode(_sfc_main$X, {
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$T, {
2041
+ vue.createVNode(_sfc_main$W, {
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$S = /* @__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$f)
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$U, {
2053
+ vue.createVNode(_sfc_main$X, {
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$l),
2059
+ ], 8, _hoisted_2$m),
2060
2060
  vue.createElementVNode("div", {
2061
2061
  class: "ui-v1-calendar__table",
2062
2062
  role: "grid",
@@ -2084,7 +2084,7 @@ const _sfc_main$S = /* @__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$V, {
2087
+ return vue.openBlock(), vue.createBlock(_sfc_main$Y, {
2088
2088
  key: "day-" + index + "-" + day,
2089
2089
  class: vue.normalizeClass({
2090
2090
  "ui-v1-calendar__cell-day": true,
@@ -2128,11 +2128,11 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
2128
2128
  class: "ui-v1-calendar-navigation",
2129
2129
  "aria-label": i18n.value.t("yearNavigation")
2130
2130
  }, [
2131
- vue.createVNode(_sfc_main$U, {
2131
+ vue.createVNode(_sfc_main$X, {
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$T, {
2135
+ vue.createVNode(_sfc_main$W, {
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$S = /* @__PURE__ */ vue.defineComponent({
2144
2144
  ]),
2145
2145
  _: 2
2146
2146
  }, 1032, ["onClick"]),
2147
- vue.createVNode(_sfc_main$U, {
2147
+ vue.createVNode(_sfc_main$X, {
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$S = /* @__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$V, {
2165
+ return vue.openBlock(), vue.createBlock(_sfc_main$Y, {
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$S = /* @__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$U, {
2196
+ vue.createVNode(_sfc_main$X, {
2197
2197
  label: i18n.value.t("prevDecade"),
2198
2198
  onClick: ($event) => showPrevDecade(index)
2199
2199
  }, null, 8, ["label", "onClick"]),
2200
- vue.createVNode(_sfc_main$T, {
2200
+ vue.createVNode(_sfc_main$W, {
2201
2201
  locked: "",
2202
2202
  onClick: ($event) => views[index].mode = vue.unref(VIEW_MODE).MONTHS
2203
2203
  }, {
@@ -2210,7 +2210,7 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
2210
2210
  ]),
2211
2211
  _: 2
2212
2212
  }, 1032, ["onClick"]),
2213
- vue.createVNode(_sfc_main$U, {
2213
+ vue.createVNode(_sfc_main$X, {
2214
2214
  label: i18n.value.t("nextDecade"),
2215
2215
  direction: "next",
2216
2216
  onClick: ($event) => showNextDecade(index)
@@ -2228,7 +2228,7 @@ const _sfc_main$S = /* @__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$V, {
2231
+ return vue.openBlock(), vue.createBlock(_sfc_main$Y, {
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$S = /* @__PURE__ */ vue.defineComponent({
2263
2263
  };
2264
2264
  }
2265
2265
  });
2266
- const _hoisted_1$D = {
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$e(_ctx, _cache) {
2271
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$D, [..._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$e(_ctx, _cache) {
2277
2277
  }, null, -1)
2278
2278
  ])]);
2279
2279
  }
2280
- const IconDone = { render: render$e };
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$C = ["id", "value", "name", "disabled", "checked"];
2309
- const _hoisted_2$k = { class: "ui-v1-checkbox__checkmark" };
2308
+ const _hoisted_1$D = ["id", "value", "name", "disabled", "checked"];
2309
+ const _hoisted_2$l = { class: "ui-v1-checkbox__checkmark" };
2310
2310
  let counter$3 = 0;
2311
2311
  const __default__$2 = {};
2312
- const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
2312
+ const _sfc_main$U = /* @__PURE__ */ vue.defineComponent({
2313
2313
  ...__default__$2,
2314
2314
  __name: "UiCheckbox",
2315
2315
  props: {
@@ -2416,8 +2416,8 @@ const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
2416
2416
  type: "checkbox",
2417
2417
  class: "ui-v1-checkbox__input",
2418
2418
  onChange
2419
- }), null, 16, _hoisted_1$C),
2420
- vue.createElementVNode("span", _hoisted_2$k, [
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$B = {
2435
+ const _hoisted_1$C = {
2436
2436
  key: 0,
2437
2437
  class: "ui-v1-collapse"
2438
2438
  };
2439
- const _hoisted_2$j = {
2439
+ const _hoisted_2$k = {
2440
2440
  key: 1,
2441
2441
  class: "ui-v1-collapse"
2442
2442
  };
2443
- const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
2443
+ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
2444
2444
  __name: "UiCollapse",
2445
2445
  props: {
2446
2446
  /** Свёрнут/Развёрнут */
@@ -2558,12 +2558,12 @@ const _sfc_main$Q = /* @__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$B, [
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$j, [
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,18 +2586,18 @@ var COLOR = /* @__PURE__ */ ((COLOR2) => {
2586
2586
  COLOR2["YELLOW"] = "yellow";
2587
2587
  return COLOR2;
2588
2588
  })(COLOR || {});
2589
- var SIZE$8 = /* @__PURE__ */ ((SIZE2) => {
2589
+ var SIZE$9 = /* @__PURE__ */ ((SIZE2) => {
2590
2590
  SIZE2["SM"] = "sm";
2591
2591
  SIZE2["MD"] = "md";
2592
2592
  return SIZE2;
2593
- })(SIZE$8 || {});
2593
+ })(SIZE$9 || {});
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$A = ["id", "aria-labelledby"];
2599
- const _hoisted_2$i = ["id", "disabled", "aria-controls", "aria-expanded", "aria-disabled"];
2600
- const _hoisted_3$e = { class: "ui-v1-collapse-box__icon-sprite" };
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
2601
  const _hoisted_4$9 = { class: "ui-v1-collapse-box__header-content" };
2602
2602
  const _hoisted_5$7 = ["id"];
2603
2603
  const _hoisted_6$5 = ["id"];
@@ -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$P = /* @__PURE__ */ vue.defineComponent({
2614
+ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
2615
2615
  ...{
2616
2616
  inheritAttrs: false
2617
2617
  },
@@ -2667,8 +2667,8 @@ const _sfc_main$P = /* @__PURE__ */ vue.defineComponent({
2667
2667
  /** Размер иконки */
2668
2668
  iconSize: {
2669
2669
  type: String,
2670
- default: SIZE$8.SM,
2671
- validator: (value) => Object.values(SIZE$8).includes(value)
2670
+ default: SIZE$9.SM,
2671
+ validator: (value) => Object.values(SIZE$9).includes(value)
2672
2672
  },
2673
2673
  /** Рамка вместо тени */
2674
2674
  bordered: {
@@ -2834,7 +2834,7 @@ const _sfc_main$P = /* @__PURE__ */ vue.defineComponent({
2834
2834
  [`ui-v1-collapse-box__icon_${__props.iconSize}`]: __props.iconSize
2835
2835
  })
2836
2836
  }, [
2837
- vue.createElementVNode("span", _hoisted_3$e, [
2837
+ vue.createElementVNode("span", _hoisted_3$f, [
2838
2838
  vue.renderSlot(_ctx.$slots, "icon")
2839
2839
  ])
2840
2840
  ], 2)) : vue.createCommentVNode("", true),
@@ -2856,9 +2856,9 @@ const _sfc_main$P = /* @__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$i)
2859
+ ], 8, _hoisted_2$j)
2860
2860
  ], 2),
2861
- vue.createVNode(_sfc_main$Q, {
2861
+ vue.createVNode(_sfc_main$T, {
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$P = /* @__PURE__ */ vue.defineComponent({
2893
2893
  ]),
2894
2894
  _: 3
2895
2895
  }, 8, ["id", "aria-hidden", "aria-labelledby", "duration", "expanded", "collapse-behaviour"])
2896
- ], 16, _hoisted_1$A);
2896
+ ], 16, _hoisted_1$B);
2897
2897
  };
2898
2898
  }
2899
2899
  });
2900
- const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
2900
+ const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
2901
2901
  __name: "UiCollapseGroup",
2902
2902
  props: {
2903
2903
  /**
@@ -3015,19 +3015,19 @@ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
3015
3015
  };
3016
3016
  }
3017
3017
  });
3018
- const _hoisted_1$z = {
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$d(_ctx, _cache) {
3023
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$z, [..._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$d };
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$y = { class: "ui-v1-popper__content" };
4698
- const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
4697
+ const _hoisted_1$z = { class: "ui-v1-popper__content" };
4698
+ const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
4699
4699
  __name: "UiPopper",
4700
4700
  props: {
4701
4701
  /** Флаг для ручного переключения видимости */
@@ -5041,7 +5041,7 @@ const _sfc_main$N = /* @__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$y, [
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$N = /* @__PURE__ */ vue.defineComponent({
5049
5049
  };
5050
5050
  }
5051
5051
  });
5052
- const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
5052
+ const _sfc_main$P = /* @__PURE__ */ vue.defineComponent({
5053
5053
  __name: "UiTooltip",
5054
5054
  props: {
5055
5055
  /** Флаг для ручного переключения видимости */
@@ -5160,7 +5160,7 @@ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
5160
5160
  hide: () => popper.value?.hide()
5161
5161
  });
5162
5162
  return (_ctx, _cache) => {
5163
- return vue.openBlock(), vue.createBlock(_sfc_main$N, vue.mergeProps({
5163
+ return vue.openBlock(), vue.createBlock(_sfc_main$Q, vue.mergeProps({
5164
5164
  ref_key: "popper",
5165
5165
  ref: popper,
5166
5166
  visible: __props.visible,
@@ -5194,11 +5194,11 @@ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
5194
5194
  };
5195
5195
  }
5196
5196
  });
5197
- const _hoisted_1$x = { class: "ui-v1-copy-button__tooltip" };
5198
- const _hoisted_2$h = { class: "ui-v1-copy-button__icon" };
5199
- const _hoisted_3$d = { class: "ui-v1-copy-button__text" };
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
5200
  const _hoisted_4$8 = ["value"];
5201
- const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
5201
+ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
5202
5202
  __name: "UiCopyButton",
5203
5203
  props: {
5204
5204
  /** Текст для копирования в буфер обмена */
@@ -5209,7 +5209,7 @@ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
5209
5209
  /** Размер кнопки */
5210
5210
  size: {
5211
5211
  type: String,
5212
- default: SIZE$9.XS
5212
+ default: SIZE$a.XS
5213
5213
  },
5214
5214
  /** Объект, содержащий параметры настройки Tooltip */
5215
5215
  tooltipOptions: {
@@ -5270,7 +5270,7 @@ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
5270
5270
  onClick: copy
5271
5271
  }, [
5272
5272
  vue.renderSlot(_ctx.$slots, "trigger", {}, () => [
5273
- vue.createVNode(_sfc_main$W, {
5273
+ vue.createVNode(_sfc_main$Z, {
5274
5274
  size: __props.size,
5275
5275
  appearance: "tertiary"
5276
5276
  }, {
@@ -5280,7 +5280,7 @@ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
5280
5280
  _: 1
5281
5281
  }, 8, ["size"])
5282
5282
  ]),
5283
- vue.createVNode(_sfc_main$M, vue.mergeProps({
5283
+ vue.createVNode(_sfc_main$P, 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$L = /* @__PURE__ */ vue.defineComponent({
5290
5290
  ...__props.tooltipOptions
5291
5291
  }), {
5292
5292
  default: vue.withCtx(() => [
5293
- vue.createElementVNode("div", _hoisted_1$x, [
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$h, [
5295
+ vue.createElementVNode("div", _hoisted_2$i, [
5296
5296
  vue.createVNode(vue.unref(IconCheckmarkCircleOutlined))
5297
5297
  ]),
5298
- vue.createElementVNode("div", _hoisted_3$d, [
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 })
@@ -5350,7 +5350,7 @@ function detectLocale() {
5350
5350
  }
5351
5351
  return "en-GB";
5352
5352
  }
5353
- const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
5353
+ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
5354
5354
  __name: "UiDate",
5355
5355
  props: {
5356
5356
  date: {
@@ -5377,12 +5377,12 @@ const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
5377
5377
  };
5378
5378
  }
5379
5379
  });
5380
- const _hoisted_1$w = {
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$c(_ctx, _cache) {
5385
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$w, [..._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$c(_ctx, _cache) {
5391
5391
  }, null, -1)
5392
5392
  ])]);
5393
5393
  }
5394
- const IconCalendar = { render: render$c };
5395
- const _hoisted_1$v = {
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$b(_ctx, _cache) {
5400
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$v, [..._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,35 @@ function render$b(_ctx, _cache) {
5406
5406
  }, null, -1)
5407
5407
  ])]);
5408
5408
  }
5409
- const IconClearCircle = { render: render$b };
5409
+ const IconClearCircle = { render: render$c };
5410
+ var WIDTH = /* @__PURE__ */ ((WIDTH2) => {
5411
+ WIDTH2["FIT"] = "fit";
5412
+ WIDTH2["FLUID"] = "fluid";
5413
+ return WIDTH2;
5414
+ })(WIDTH || {});
5415
+ const NUMERIC_PATTERN = /^(?:\d+|\d*\.\d+)$/;
5416
+ const UNIT_PATTERN = /^(?:\d+|\d*\.\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|Q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw)$/i;
5417
+ const isWidthNumeric = (value) => {
5418
+ return typeof value === "number" ? Number.isFinite(value) && value >= 0 : typeof value === "string" && NUMERIC_PATTERN.test(value.trim());
5419
+ };
5420
+ const isWidthToken = (value) => {
5421
+ return typeof value === "string" && Object.values(WIDTH).includes(value);
5422
+ };
5423
+ const isWidth = (value) => {
5424
+ return value === null || value === void 0 || isWidthToken(value) || isWidthNumeric(value) || typeof value === "string" && UNIT_PATTERN.test(value.trim());
5425
+ };
5426
+ const isWidthExact = (value) => {
5427
+ return value !== null && value !== void 0 && !isWidthToken(value);
5428
+ };
5429
+ const normalizeWidth = (value) => {
5430
+ if (value === null || value === void 0 || value === "fit") {
5431
+ return null;
5432
+ }
5433
+ if (value === "fluid") {
5434
+ return "100%";
5435
+ }
5436
+ return isWidthNumeric(value) ? `${String(value).trim()}px` : String(value).trim();
5437
+ };
5410
5438
  var TYPE$1 = /* @__PURE__ */ ((TYPE2) => {
5411
5439
  TYPE2["EMAIL"] = "email";
5412
5440
  TYPE2["PASSWORD"] = "password";
@@ -5427,14 +5455,14 @@ var INPUTMODE = /* @__PURE__ */ ((INPUTMODE2) => {
5427
5455
  INPUTMODE2["URL"] = "url";
5428
5456
  return INPUTMODE2;
5429
5457
  })(INPUTMODE || {});
5430
- var SIZE$7 = /* @__PURE__ */ ((SIZE2) => {
5458
+ var SIZE$8 = /* @__PURE__ */ ((SIZE2) => {
5431
5459
  SIZE2["XS"] = "xs";
5432
5460
  SIZE2["SM"] = "sm";
5433
5461
  SIZE2["MD"] = "md";
5434
5462
  SIZE2["LG"] = "lg";
5435
5463
  SIZE2["XL"] = "xl";
5436
5464
  return SIZE2;
5437
- })(SIZE$7 || {});
5465
+ })(SIZE$8 || {});
5438
5466
  const decimalsOf = (value) => {
5439
5467
  const [, fraction] = String(value).replace(",", ".").split(".");
5440
5468
  return fraction ? fraction.length : 0;
@@ -5506,19 +5534,19 @@ const _i18n$5 = define({
5506
5534
  "ru-RU": messages_ru_RU$5
5507
5535
  }
5508
5536
  });
5509
- const _hoisted_1$u = ["id"];
5510
- const _hoisted_2$g = {
5537
+ const _hoisted_1$v = ["id"];
5538
+ const _hoisted_2$h = {
5511
5539
  key: 0,
5512
5540
  class: "ui-v1-textbox__prefix"
5513
5541
  };
5514
- const _hoisted_3$c = ["id", "type", "value", "max", "min", "step", "aria-invalid", "autocomplete", "inputmode", "maxlength", "placeholder", "readonly", "required", "disabled"];
5542
+ const _hoisted_3$d = ["id", "type", "value", "max", "min", "step", "aria-invalid", "autocomplete", "inputmode", "maxlength", "placeholder", "readonly", "required", "disabled"];
5515
5543
  const _hoisted_4$7 = ["id", "value", "aria-invalid", "autocomplete", "inputmode", "maxlength", "placeholder", "rows", "cols", "readonly", "required", "disabled"];
5516
5544
  const _hoisted_5$6 = ["disabled", "aria-controls", "aria-label"];
5517
5545
  const _hoisted_6$4 = {
5518
5546
  key: 7,
5519
5547
  class: "ui-v1-textbox__suffix"
5520
5548
  };
5521
- const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
5549
+ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
5522
5550
  __name: "UiTextbox",
5523
5551
  props: {
5524
5552
  /** Уникальный идентификатор поля */
@@ -5581,7 +5609,13 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
5581
5609
  /** Размер поля ввода */
5582
5610
  size: {
5583
5611
  type: String,
5584
- default: SIZE$7.SM
5612
+ default: SIZE$8.SM
5613
+ },
5614
+ /** Ширина поля. fit — по содержимому, fluid — на всю ширину контейнера */
5615
+ width: {
5616
+ type: [Number, String],
5617
+ validator: isWidth,
5618
+ default: WIDTH.FIT
5585
5619
  },
5586
5620
  /** Нативный атрибут input|textarea */
5587
5621
  placeholder: {
@@ -5680,6 +5714,10 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
5680
5714
  const emit = __emit;
5681
5715
  const uid2 = vue.useId();
5682
5716
  const i18n = vue.computed(() => _i18n$5.init(vue.inject(I18nInjectKey, null)?.locale ?? _i18n$5.fallback));
5717
+ const style = vue.computed(() => {
5718
+ const width = normalizeWidth(props.width);
5719
+ return isWidthExact(props.width) && width ? { width } : {};
5720
+ });
5683
5721
  const decimalsParsed = vue.computed(() => {
5684
5722
  if (props.decimals === "*" || props.decimals === void 0) return "*";
5685
5723
  const n = Number(props.decimals);
@@ -5804,9 +5842,9 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
5804
5842
  }
5805
5843
  let width = el.scrollWidth;
5806
5844
  if (IS_DESKTOP_SAFARI) {
5807
- const style = getComputedStyle(el);
5808
- const pl = parseFloat(style.paddingLeft) || 0;
5809
- const pr = parseFloat(style.paddingRight) || 0;
5845
+ const style2 = getComputedStyle(el);
5846
+ const pl = parseFloat(style2.paddingLeft) || 0;
5847
+ const pr = parseFloat(style2.paddingRight) || 0;
5810
5848
  width += pl + pr;
5811
5849
  }
5812
5850
  return width + 1;
@@ -5934,15 +5972,18 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
5934
5972
  "ui-v1-textbox": true,
5935
5973
  "ui-v1-textbox_active": __props.active,
5936
5974
  "ui-v1-textbox_autofit": __props.autofit,
5975
+ "ui-v1-textbox_fit": __props.width === vue.unref(WIDTH).FIT,
5976
+ "ui-v1-textbox_fluid": __props.width === vue.unref(WIDTH).FLUID,
5937
5977
  "ui-v1-textbox_invalid": __props.invalid,
5938
5978
  "ui-v1-textbox_outlined": __props.outlined,
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
- }
5979
+ "ui-v1-textbox_xs": __props.size === vue.unref(SIZE$8).XS,
5980
+ "ui-v1-textbox_md": __props.size === vue.unref(SIZE$8).MD,
5981
+ "ui-v1-textbox_lg": __props.size === vue.unref(SIZE$8).LG,
5982
+ "ui-v1-textbox_xl": __props.size === vue.unref(SIZE$8).XL
5983
+ },
5984
+ style: style.value
5944
5985
  }, _ctx.$attrs), [
5945
- __props.prefix || "prefix" in _ctx.$slots ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$g, [
5986
+ __props.prefix || "prefix" in _ctx.$slots ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$h, [
5946
5987
  vue.renderSlot(_ctx.$slots, "prefix", {}, () => [
5947
5988
  vue.createTextVNode(vue.toDisplayString(__props.prefix), 1)
5948
5989
  ])
@@ -5979,7 +6020,7 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
5979
6020
  onChange,
5980
6021
  onFocus,
5981
6022
  onBlur
5982
- }), null, 16, _hoisted_3$c)) : (vue.openBlock(), vue.createElementBlock("textarea", vue.mergeProps({
6023
+ }), null, 16, _hoisted_3$d)) : (vue.openBlock(), vue.createElementBlock("textarea", vue.mergeProps({
5983
6024
  key: 3,
5984
6025
  id: __props.id ?? vue.unref(uid2),
5985
6026
  ref_key: "textbox",
@@ -6032,17 +6073,17 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
6032
6073
  vue.createTextVNode(vue.toDisplayString(__props.suffix), 1)
6033
6074
  ])
6034
6075
  ])) : vue.createCommentVNode("", true)
6035
- ], 16, _hoisted_1$u);
6076
+ ], 16, _hoisted_1$v);
6036
6077
  };
6037
6078
  }
6038
6079
  });
6039
- var SIZE$6 = /* @__PURE__ */ ((SIZE2) => {
6080
+ var SIZE$7 = /* @__PURE__ */ ((SIZE2) => {
6040
6081
  SIZE2["XS"] = "xs";
6041
6082
  SIZE2["SM"] = "sm";
6042
6083
  SIZE2["MD"] = "md";
6043
6084
  SIZE2["LG"] = "lg";
6044
6085
  return SIZE2;
6045
- })(SIZE$6 || {});
6086
+ })(SIZE$7 || {});
6046
6087
  const deltaTransition$1 = (el) => {
6047
6088
  const delta = el.scrollWidth - el.clientWidth;
6048
6089
  return delta !== 0 ? {
@@ -6050,15 +6091,15 @@ const deltaTransition$1 = (el) => {
6050
6091
  animationDuration: `${delta * 15}ms`
6051
6092
  } : {};
6052
6093
  };
6053
- const _hoisted_1$t = {
6094
+ const _hoisted_1$u = {
6054
6095
  key: 0,
6055
6096
  class: "ui-v1-menu-item__avatar"
6056
6097
  };
6057
- const _hoisted_2$f = {
6098
+ const _hoisted_2$g = {
6058
6099
  key: 1,
6059
6100
  class: "ui-v1-menu-item__icon ui-v1-menu-item__icon_leading"
6060
6101
  };
6061
- const _hoisted_3$b = { class: "ui-v1-menu-item__content" };
6102
+ const _hoisted_3$c = { class: "ui-v1-menu-item__content" };
6062
6103
  const _hoisted_4$6 = { class: "ui-v1-menu-item__text" };
6063
6104
  const _hoisted_5$5 = {
6064
6105
  key: 0,
@@ -6072,13 +6113,13 @@ const _hoisted_7$2 = {
6072
6113
  key: 3,
6073
6114
  class: "ui-v1-menu-item__icon ui-v1-menu-item__icon_trailing"
6074
6115
  };
6075
- const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
6116
+ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
6076
6117
  __name: "UiMenuItem",
6077
6118
  props: {
6078
6119
  /** Размер */
6079
6120
  size: {
6080
6121
  type: String,
6081
- default: SIZE$6.MD
6122
+ default: SIZE$7.MD
6082
6123
  },
6083
6124
  /** Описание */
6084
6125
  description: {
@@ -6151,12 +6192,12 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
6151
6192
  }),
6152
6193
  onMouseoverOnce: onHover
6153
6194
  }, [
6154
- _ctx.$slots["avatar"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$t, [
6195
+ _ctx.$slots["avatar"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$u, [
6155
6196
  vue.renderSlot(_ctx.$slots, "avatar")
6156
- ])) : _ctx.$slots["leading-icon"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$f, [
6197
+ ])) : _ctx.$slots["leading-icon"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$g, [
6157
6198
  vue.renderSlot(_ctx.$slots, "leading-icon")
6158
6199
  ])) : vue.createCommentVNode("", true),
6159
- vue.createElementVNode("div", _hoisted_3$b, [
6200
+ vue.createElementVNode("div", _hoisted_3$c, [
6160
6201
  vue.createElementVNode("div", _hoisted_4$6, [
6161
6202
  __props.ticker ? (vue.openBlock(), vue.createElementBlock("div", {
6162
6203
  key: 0,
@@ -6183,7 +6224,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
6183
6224
  };
6184
6225
  }
6185
6226
  });
6186
- const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
6227
+ const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
6187
6228
  __name: "UiScrollBox",
6188
6229
  props: {
6189
6230
  /** Наименование тэга-обёртки для нативного скролла */
@@ -6361,7 +6402,7 @@ const isQuickDateEqual = (first, second) => {
6361
6402
  }
6362
6403
  return false;
6363
6404
  };
6364
- const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
6405
+ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
6365
6406
  __name: "UiDatePickerQuickMenu",
6366
6407
  props: {
6367
6408
  value: {
@@ -6387,18 +6428,18 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
6387
6428
  emit("change", props.nullable && isActive(date) ? null : date);
6388
6429
  };
6389
6430
  return (_ctx, _cache) => {
6390
- return vue.openBlock(), vue.createBlock(_sfc_main$H, {
6431
+ return vue.openBlock(), vue.createBlock(_sfc_main$K, {
6391
6432
  class: "ui-v1-date-picker__quick-menu",
6392
6433
  role: "menu",
6393
6434
  native: ""
6394
6435
  }, {
6395
6436
  default: vue.withCtx(() => [
6396
6437
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.items, (item, index) => {
6397
- return vue.openBlock(), vue.createBlock(_sfc_main$I, {
6438
+ return vue.openBlock(), vue.createBlock(_sfc_main$L, {
6398
6439
  key: "quick-item-" + index,
6399
6440
  active: isActive(item.value),
6400
6441
  "aria-current": isActive(item.value) ? "true" : "false",
6401
- size: vue.unref(SIZE$6).SM,
6442
+ size: vue.unref(SIZE$7).SM,
6402
6443
  role: "menuitem",
6403
6444
  onClick: ($event) => onClick(item.value)
6404
6445
  }, {
@@ -6439,11 +6480,11 @@ const _i18n$4 = define({
6439
6480
  "ru-RU": messages_ru_RU$4
6440
6481
  }
6441
6482
  });
6442
- const _hoisted_1$s = ["id", "aria-controls", "aria-disabled", "aria-expanded", "aria-readonly"];
6443
- const _hoisted_2$e = ["id"];
6444
- const _hoisted_3$a = { class: "ui-v1-date-picker__workspace" };
6483
+ const _hoisted_1$t = ["id", "aria-controls", "aria-disabled", "aria-expanded", "aria-readonly"];
6484
+ const _hoisted_2$f = ["id"];
6485
+ const _hoisted_3$b = { class: "ui-v1-date-picker__workspace" };
6445
6486
  const _hoisted_4$5 = { class: "ui-v1-date-picker__action" };
6446
- const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
6487
+ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
6447
6488
  ...{
6448
6489
  inheritAttrs: false
6449
6490
  },
@@ -6488,8 +6529,8 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
6488
6529
  },
6489
6530
  appearance: {
6490
6531
  type: String,
6491
- validator: (appearance) => Object.values(APPEARANCE$4).includes(appearance),
6492
- default: APPEARANCE$4.SINGLE
6532
+ validator: (appearance) => Object.values(APPEARANCE$5).includes(appearance),
6533
+ default: APPEARANCE$5.SINGLE
6493
6534
  },
6494
6535
  synchronization: {
6495
6536
  type: String,
@@ -6810,7 +6851,7 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
6810
6851
  onClick: toggle
6811
6852
  }, [
6812
6853
  vue.renderSlot(_ctx.$slots, "trigger")
6813
- ])) : (vue.openBlock(), vue.createBlock(_sfc_main$J, vue.mergeProps({
6854
+ ])) : (vue.openBlock(), vue.createBlock(_sfc_main$M, vue.mergeProps({
6814
6855
  key: 1,
6815
6856
  id: inputId.value,
6816
6857
  ref_key: "textbox",
@@ -6845,7 +6886,7 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
6845
6886
  key: "0"
6846
6887
  } : void 0
6847
6888
  ]), 1040, ["id", "clearable", "value", "placeholder", "active", "disabled", "readonly"])),
6848
- vue.createVNode(_sfc_main$N, vue.mergeProps({
6889
+ vue.createVNode(_sfc_main$Q, vue.mergeProps({
6849
6890
  id: `${inputId.value}-popper`,
6850
6891
  visible: showCalendar.value,
6851
6892
  target: triggerTarget.value,
@@ -6868,15 +6909,15 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
6868
6909
  onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
6869
6910
  }, ["stop"]))
6870
6911
  }, [
6871
- __props.quickOptions.length > 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
6912
+ __props.quickOptions.length > 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$J, {
6872
6913
  key: 0,
6873
6914
  value: view.value,
6874
6915
  items: __props.quickOptions,
6875
6916
  nullable: __props.nullable,
6876
6917
  onChange: onQuickChange
6877
6918
  }, null, 8, ["value", "items", "nullable"])) : vue.createCommentVNode("", true),
6878
- vue.createElementVNode("div", _hoisted_3$a, [
6879
- vue.createVNode(_sfc_main$S, {
6919
+ vue.createElementVNode("div", _hoisted_3$b, [
6920
+ vue.createVNode(_sfc_main$V, {
6880
6921
  ref_key: "calendar",
6881
6922
  ref: calendar,
6882
6923
  value: view.value,
@@ -6893,11 +6934,11 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
6893
6934
  key: 0,
6894
6935
  class: vue.normalizeClass({
6895
6936
  "ui-v1-date-picker__footer": true,
6896
- "ui-v1-date-picker__footer_horizontal": __props.appearance === vue.unref(APPEARANCE$4).DOUBLE
6937
+ "ui-v1-date-picker__footer_horizontal": __props.appearance === vue.unref(APPEARANCE$5).DOUBLE
6897
6938
  })
6898
6939
  }, [
6899
6940
  vue.createElementVNode("div", _hoisted_4$5, [
6900
- vue.createVNode(_sfc_main$W, {
6941
+ vue.createVNode(_sfc_main$Z, {
6901
6942
  appearance: "tertiary",
6902
6943
  class: "ui-v1-date-picker__button",
6903
6944
  onClick: reset
@@ -6907,7 +6948,7 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
6907
6948
  ]),
6908
6949
  _: 1
6909
6950
  }),
6910
- vue.createVNode(_sfc_main$W, {
6951
+ vue.createVNode(_sfc_main$Z, {
6911
6952
  class: "ui-v1-date-picker__button",
6912
6953
  onClick: apply2
6913
6954
  }, {
@@ -6919,11 +6960,11 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
6919
6960
  ])
6920
6961
  ], 2)) : vue.createCommentVNode("", true)
6921
6962
  ])
6922
- ], 8, _hoisted_2$e)
6963
+ ], 8, _hoisted_2$f)
6923
6964
  ]),
6924
6965
  _: 1
6925
6966
  }, 16, ["id", "visible", "target", "container", "placement", "aria-hidden", "class", "disabled"])
6926
- ], 16, _hoisted_1$s);
6967
+ ], 16, _hoisted_1$t);
6927
6968
  };
6928
6969
  }
6929
6970
  });
@@ -6932,7 +6973,7 @@ var ALIGN$1 = /* @__PURE__ */ ((ALIGN2) => {
6932
6973
  ALIGN2["RIGHT"] = "right";
6933
6974
  return ALIGN2;
6934
6975
  })(ALIGN$1 || {});
6935
- const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
6976
+ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
6936
6977
  __name: "UiError",
6937
6978
  props: {
6938
6979
  /** Тест, разметка ошибки */
@@ -6971,38 +7012,38 @@ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
6971
7012
  };
6972
7013
  }
6973
7014
  });
6974
- const _hoisted_1$r = {
7015
+ const _hoisted_1$s = {
6975
7016
  xmlns: "http://www.w3.org/2000/svg",
6976
7017
  viewBox: "0 0 24 24"
6977
7018
  };
6978
- function render$a(_ctx, _cache) {
6979
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$r, [..._cache[0] || (_cache[0] = [
7019
+ function render$b(_ctx, _cache) {
7020
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$s, [..._cache[0] || (_cache[0] = [
6980
7021
  vue.createElementVNode("path", {
6981
7022
  fill: "currentColor",
6982
7023
  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
7024
  }, null, -1)
6984
7025
  ])]);
6985
7026
  }
6986
- const IconChevronDown = { render: render$a };
6987
- const _hoisted_1$q = {
7027
+ const IconChevronDown = { render: render$b };
7028
+ const _hoisted_1$r = {
6988
7029
  xmlns: "http://www.w3.org/2000/svg",
6989
7030
  viewBox: "0 0 24 24"
6990
7031
  };
6991
- function render$9(_ctx, _cache) {
6992
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$q, [..._cache[0] || (_cache[0] = [
7032
+ function render$a(_ctx, _cache) {
7033
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$r, [..._cache[0] || (_cache[0] = [
6993
7034
  vue.createElementVNode("path", {
6994
7035
  fill: "currentColor",
6995
7036
  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
7037
  }, null, -1)
6997
7038
  ])]);
6998
7039
  }
6999
- const IconChevronUp = { render: render$9 };
7000
- const _hoisted_1$p = ["id", "aria-expanded", "aria-hidden"];
7001
- const _hoisted_2$d = {
7040
+ const IconChevronUp = { render: render$a };
7041
+ const _hoisted_1$q = ["id", "aria-expanded", "aria-hidden"];
7042
+ const _hoisted_2$e = {
7002
7043
  "aria-hidden": "true",
7003
7044
  class: "ui-v1-infobox__media"
7004
7045
  };
7005
- const _hoisted_3$9 = { class: "ui-v1-infobox__icon" };
7046
+ const _hoisted_3$a = { class: "ui-v1-infobox__icon" };
7006
7047
  const _hoisted_4$4 = { class: "ui-v1-infobox__content" };
7007
7048
  const _hoisted_5$4 = {
7008
7049
  key: 0,
@@ -7010,7 +7051,7 @@ const _hoisted_5$4 = {
7010
7051
  };
7011
7052
  const _hoisted_6$2 = ["id"];
7012
7053
  const _hoisted_7$1 = ["aria-controls", "aria-expanded"];
7013
- const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
7054
+ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
7014
7055
  ...{
7015
7056
  inheritAttrs: false
7016
7057
  },
@@ -7147,7 +7188,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
7147
7188
  syncExpandedFromProps();
7148
7189
  });
7149
7190
  return (_ctx, _cache) => {
7150
- return vue.openBlock(), vue.createBlock(_sfc_main$10, {
7191
+ return vue.openBlock(), vue.createBlock(_sfc_main$13, {
7151
7192
  name: "fade",
7152
7193
  onAfterEnter,
7153
7194
  onAfterLeave,
@@ -7167,8 +7208,8 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
7167
7208
  },
7168
7209
  role: "alert"
7169
7210
  }, rootAttrs.value), [
7170
- vue.createElementVNode("div", _hoisted_2$d, [
7171
- vue.createElementVNode("div", _hoisted_3$9, [
7211
+ vue.createElementVNode("div", _hoisted_2$e, [
7212
+ vue.createElementVNode("div", _hoisted_3$a, [
7172
7213
  vue.renderSlot(_ctx.$slots, "icon", {
7173
7214
  expanded: state.shouldBeExpanded
7174
7215
  }, () => [
@@ -7213,7 +7254,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
7213
7254
  }))
7214
7255
  ], 8, _hoisted_7$1)) : vue.createCommentVNode("", true)
7215
7256
  ])) : vue.createCommentVNode("", true),
7216
- vue.createVNode(_sfc_main$Q, {
7257
+ vue.createVNode(_sfc_main$T, {
7217
7258
  id: bodyId.value,
7218
7259
  "aria-labelledby": hasTitle.value ? titleId.value : void 0,
7219
7260
  expanded: bodyExpanded.value,
@@ -7241,7 +7282,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
7241
7282
  }, [
7242
7283
  vue.createVNode(vue.unref(IconClear), { class: "ui-v1-infobox__closer-icon" })
7243
7284
  ])) : vue.createCommentVNode("", true)
7244
- ], 16, _hoisted_1$p), [
7285
+ ], 16, _hoisted_1$q), [
7245
7286
  [vue.vShow, state.shouldBeShown]
7246
7287
  ])
7247
7288
  ]),
@@ -7250,28 +7291,28 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
7250
7291
  };
7251
7292
  }
7252
7293
  });
7253
- const _hoisted_1$o = {
7294
+ const _hoisted_1$p = {
7254
7295
  xmlns: "http://www.w3.org/2000/svg",
7255
7296
  viewBox: "0 0 24 24"
7256
7297
  };
7257
- function render$8(_ctx, _cache) {
7258
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$o, [..._cache[0] || (_cache[0] = [
7298
+ function render$9(_ctx, _cache) {
7299
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$p, [..._cache[0] || (_cache[0] = [
7259
7300
  vue.createElementVNode("path", {
7260
7301
  fill: "currentColor",
7261
7302
  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
7303
  }, null, -1)
7263
7304
  ])]);
7264
7305
  }
7265
- const IconOpenInNew = { render: render$8 };
7266
- var APPEARANCE$3 = /* @__PURE__ */ ((APPEARANCE2) => {
7306
+ const IconOpenInNew = { render: render$9 };
7307
+ var APPEARANCE$4 = /* @__PURE__ */ ((APPEARANCE2) => {
7267
7308
  APPEARANCE2["BREADCRUMBS"] = "breadcrumbs";
7268
7309
  APPEARANCE2["DEFAULT"] = "default";
7269
7310
  APPEARANCE2["NAVIGATION"] = "navigation";
7270
7311
  APPEARANCE2["NAVIGATION_ANCHOR"] = "navigation-anchor";
7271
7312
  APPEARANCE2["TITLE"] = "title";
7272
7313
  return APPEARANCE2;
7273
- })(APPEARANCE$3 || {});
7274
- var SIZE$5 = /* @__PURE__ */ ((SIZE2) => {
7314
+ })(APPEARANCE$4 || {});
7315
+ var SIZE$6 = /* @__PURE__ */ ((SIZE2) => {
7275
7316
  SIZE2["ARTICLE"] = "article";
7276
7317
  SIZE2["BODY"] = "body";
7277
7318
  SIZE2["PARAGRAPH"] = "paragraph";
@@ -7280,17 +7321,17 @@ var SIZE$5 = /* @__PURE__ */ ((SIZE2) => {
7280
7321
  SIZE2["TITLE01"] = "title-01";
7281
7322
  SIZE2["TITLE02"] = "title-02";
7282
7323
  return SIZE2;
7283
- })(SIZE$5 || {});
7284
- const _hoisted_1$n = ["href", "target"];
7285
- const _hoisted_2$c = {
7324
+ })(SIZE$6 || {});
7325
+ const _hoisted_1$o = ["href", "target"];
7326
+ const _hoisted_2$d = {
7286
7327
  key: 0,
7287
7328
  class: "ui-v1-link__inner"
7288
7329
  };
7289
- const _hoisted_3$8 = {
7330
+ const _hoisted_3$9 = {
7290
7331
  key: 2,
7291
7332
  class: "ui-v1-link__icon"
7292
7333
  };
7293
- const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
7334
+ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
7294
7335
  __name: "UiLink",
7295
7336
  props: {
7296
7337
  /** Атрибут ссылки */
@@ -7310,14 +7351,14 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
7310
7351
  /** Тип ссылок */
7311
7352
  appearance: {
7312
7353
  type: String,
7313
- validator: (appearance) => Object.values(APPEARANCE$3).includes(appearance),
7314
- default: APPEARANCE$3.DEFAULT
7354
+ validator: (appearance) => Object.values(APPEARANCE$4).includes(appearance),
7355
+ default: APPEARANCE$4.DEFAULT
7315
7356
  },
7316
7357
  /** Размер текста */
7317
7358
  size: {
7318
7359
  type: String,
7319
- validator: (size) => Object.values(SIZE$5).includes(size),
7320
- default: SIZE$5.BODY
7360
+ validator: (size) => Object.values(SIZE$6).includes(size),
7361
+ default: SIZE$6.BODY
7321
7362
  },
7322
7363
  /** Инвертированный цвет ссылок для тёмного фона */
7323
7364
  light: {
@@ -7359,19 +7400,19 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
7359
7400
  },
7360
7401
  target: __props.external ? "_blank" : "_self"
7361
7402
  }, _ctx.$attrs), [
7362
- __props.dotted ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$c, [
7403
+ __props.dotted ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$d, [
7363
7404
  vue.renderSlot(_ctx.$slots, "default")
7364
7405
  ])) : vue.renderSlot(_ctx.$slots, "default", { key: 1 }),
7365
- _ctx.$slots.icon || __props.external ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$8, [
7406
+ _ctx.$slots.icon || __props.external ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$9, [
7366
7407
  vue.renderSlot(_ctx.$slots, "icon", {}, () => [
7367
7408
  vue.createVNode(vue.unref(IconOpenInNew), { class: "ui-v1-link__icon-sprite" })
7368
7409
  ])
7369
7410
  ])) : vue.createCommentVNode("", true)
7370
- ], 16, _hoisted_1$n);
7411
+ ], 16, _hoisted_1$o);
7371
7412
  };
7372
7413
  }
7373
7414
  });
7374
- const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
7415
+ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
7375
7416
  __name: "UiLoader",
7376
7417
  props: {
7377
7418
  /** Диаметр (размер) окружности индикатора */
@@ -7403,7 +7444,7 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
7403
7444
  },
7404
7445
  setup(__props) {
7405
7446
  return (_ctx, _cache) => {
7406
- return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(__props.transition ? _sfc_main$10 : "div"), vue.normalizeProps(vue.guardReactiveProps(__props.transition ? {
7447
+ return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(__props.transition ? _sfc_main$13 : "div"), vue.normalizeProps(vue.guardReactiveProps(__props.transition ? {
7407
7448
  appear: true,
7408
7449
  class: "ui-v1-loader-wrapper",
7409
7450
  name: __props.transition
@@ -7437,10 +7478,10 @@ const _export_sfc = (sfc, props) => {
7437
7478
  }
7438
7479
  return target;
7439
7480
  };
7440
- const _sfc_main$A = {};
7441
- const _hoisted_1$m = { class: "ui-v1-menu-item-group" };
7442
- const _hoisted_2$b = { class: "ui-v1-menu-item-group__head" };
7443
- const _hoisted_3$7 = {
7481
+ const _sfc_main$D = {};
7482
+ const _hoisted_1$n = { class: "ui-v1-menu-item-group" };
7483
+ const _hoisted_2$c = { class: "ui-v1-menu-item-group__head" };
7484
+ const _hoisted_3$8 = {
7444
7485
  key: 0,
7445
7486
  class: "ui-v1-menu-item-group__head-option"
7446
7487
  };
@@ -7453,9 +7494,9 @@ const _hoisted_5$3 = {
7453
7494
  class: "ui-v1-menu-item-group__count"
7454
7495
  };
7455
7496
  function _sfc_render(_ctx, _cache) {
7456
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$m, [
7457
- vue.createElementVNode("div", _hoisted_2$b, [
7458
- _ctx.$slots.option ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$7, [
7497
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$n, [
7498
+ vue.createElementVNode("div", _hoisted_2$c, [
7499
+ _ctx.$slots.option ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$8, [
7459
7500
  vue.renderSlot(_ctx.$slots, "option")
7460
7501
  ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$3, [
7461
7502
  vue.createElementVNode("div", {
@@ -7474,7 +7515,7 @@ function _sfc_render(_ctx, _cache) {
7474
7515
  vue.renderSlot(_ctx.$slots, "default")
7475
7516
  ]);
7476
7517
  }
7477
- const UiMenuItemGroup = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["render", _sfc_render]]);
7518
+ const UiMenuItemGroup = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["render", _sfc_render]]);
7478
7519
  class LayerRegistry {
7479
7520
  registry;
7480
7521
  started = false;
@@ -7565,14 +7606,14 @@ var SCROLLING$1 = /* @__PURE__ */ ((SCROLLING2) => {
7565
7606
  SCROLLING2["NONE"] = "none";
7566
7607
  return SCROLLING2;
7567
7608
  })(SCROLLING$1 || {});
7568
- var SIZE$4 = /* @__PURE__ */ ((SIZE2) => {
7609
+ var SIZE$5 = /* @__PURE__ */ ((SIZE2) => {
7569
7610
  SIZE2["LG"] = "lg";
7570
7611
  SIZE2["SM"] = "sm";
7571
7612
  return SIZE2;
7572
- })(SIZE$4 || {});
7573
- const _hoisted_1$l = ["id", "aria-hidden", "role"];
7574
- const _hoisted_2$a = ["id"];
7575
- const _hoisted_3$6 = { class: "ui-v1-modal-sidebar__header" };
7613
+ })(SIZE$5 || {});
7614
+ const _hoisted_1$m = ["id", "aria-hidden", "role"];
7615
+ const _hoisted_2$b = ["id"];
7616
+ const _hoisted_3$7 = { class: "ui-v1-modal-sidebar__header" };
7576
7617
  const _hoisted_4$2 = { class: "ui-v1-modal-sidebar__header-inner" };
7577
7618
  const _hoisted_5$2 = {
7578
7619
  "aria-level": "1",
@@ -7588,7 +7629,7 @@ const _hoisted_8 = {
7588
7629
  key: 2,
7589
7630
  class: "ui-v1-modal-sidebar__footer"
7590
7631
  };
7591
- const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
7632
+ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
7592
7633
  ...{
7593
7634
  inheritAttrs: false
7594
7635
  },
@@ -7634,7 +7675,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
7634
7675
  /** Размер панели */
7635
7676
  size: {
7636
7677
  type: String,
7637
- default: SIZE$4.SM
7678
+ default: SIZE$5.SM
7638
7679
  },
7639
7680
  /** ARIA-роль модального контейнера */
7640
7681
  role: {
@@ -7814,7 +7855,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
7814
7855
  key: 0,
7815
7856
  to: vue.unref(globals)?.container || "body"
7816
7857
  }, [
7817
- vue.createVNode(_sfc_main$10, {
7858
+ vue.createVNode(_sfc_main$13, {
7818
7859
  name: "fade-2",
7819
7860
  onBeforeEnter: _cache[5] || (_cache[5] = ($event) => visibilityOfOverlay.value = "showing"),
7820
7861
  onAfterEnter: _cache[6] || (_cache[6] = ($event) => visibilityOfOverlay.value = "shown"),
@@ -7835,7 +7876,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
7835
7876
  "aria-modal": "true",
7836
7877
  role: __props.role
7837
7878
  }, _ctx.$attrs, { onClick: onBackdropClick }), [
7838
- vue.createVNode(_sfc_main$10, {
7879
+ vue.createVNode(_sfc_main$13, {
7839
7880
  name: `slide-${__props.direction}`,
7840
7881
  onBeforeEnter: _cache[1] || (_cache[1] = ($event) => visibilityOfSidebar.value = "showing"),
7841
7882
  onAfterEnter: _cache[2] || (_cache[2] = ($event) => visibilityOfSidebar.value = "shown"),
@@ -7850,11 +7891,11 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
7850
7891
  "ui-v1-modal-sidebar": true,
7851
7892
  "ui-v1-modal-sidebar_fixed": __props.fixed,
7852
7893
  "ui-v1-modal-sidebar_left": __props.direction === vue.unref(DIRECTION$2).LEFT,
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
7894
+ "ui-v1-modal-sidebar_size_sm": __props.size === vue.unref(SIZE$5).SM,
7895
+ "ui-v1-modal-sidebar_size_lg": __props.size === vue.unref(SIZE$5).LG
7855
7896
  })
7856
7897
  }, [
7857
- vue.createElementVNode("header", _hoisted_3$6, [
7898
+ vue.createElementVNode("header", _hoisted_3$7, [
7858
7899
  vue.createElementVNode("div", _hoisted_4$2, [
7859
7900
  vue.createElementVNode("div", _hoisted_5$2, [
7860
7901
  vue.renderSlot(_ctx.$slots, "title", {
@@ -7876,7 +7917,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
7876
7917
  "aria-hidden": "true",
7877
7918
  width: "32"
7878
7919
  }),
7879
- vue.createVNode(_sfc_main$M, {
7920
+ vue.createVNode(_sfc_main$P, {
7880
7921
  target: closerTarget.value,
7881
7922
  "offset-main-axis": 0
7882
7923
  }, {
@@ -7891,7 +7932,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
7891
7932
  vue.renderSlot(_ctx.$slots, "default", {
7892
7933
  overlapped: state.overlapped
7893
7934
  })
7894
- ])) : (vue.openBlock(), vue.createBlock(_sfc_main$H, {
7935
+ ])) : (vue.openBlock(), vue.createBlock(_sfc_main$K, {
7895
7936
  key: 1,
7896
7937
  native: __props.scrolling === vue.unref(SCROLLING$1).NATIVE,
7897
7938
  class: "ui-v1-modal-sidebar__body",
@@ -7910,11 +7951,11 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
7910
7951
  overlapped: state.overlapped
7911
7952
  })
7912
7953
  ])) : vue.createCommentVNode("", true)
7913
- ], 10, _hoisted_2$a)) : vue.createCommentVNode("", true)
7954
+ ], 10, _hoisted_2$b)) : vue.createCommentVNode("", true)
7914
7955
  ]),
7915
7956
  _: 3
7916
7957
  }, 8, ["name"])
7917
- ], 16, _hoisted_1$l), [
7958
+ ], 16, _hoisted_1$m), [
7918
7959
  [vue.vShow, state.shown]
7919
7960
  ])
7920
7961
  ]),
@@ -7924,19 +7965,19 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
7924
7965
  };
7925
7966
  }
7926
7967
  });
7927
- var APPEARANCE$2 = /* @__PURE__ */ ((APPEARANCE2) => {
7968
+ var APPEARANCE$3 = /* @__PURE__ */ ((APPEARANCE2) => {
7928
7969
  APPEARANCE2["ALERT"] = "alert";
7929
7970
  APPEARANCE2["DIALOG"] = "dialog";
7930
7971
  APPEARANCE2["POPUP"] = "popup";
7931
7972
  APPEARANCE2["HINT"] = "hint";
7932
7973
  return APPEARANCE2;
7933
- })(APPEARANCE$2 || {});
7974
+ })(APPEARANCE$3 || {});
7934
7975
  var SCROLLING = /* @__PURE__ */ ((SCROLLING2) => {
7935
7976
  SCROLLING2["NORMAL"] = "normal";
7936
7977
  SCROLLING2["NATIVE"] = "native";
7937
7978
  return SCROLLING2;
7938
7979
  })(SCROLLING || {});
7939
- const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
7980
+ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
7940
7981
  __name: "UiModalWindowSurface",
7941
7982
  props: {
7942
7983
  /** Атрибут id корневого элемента модального окна. Должен быть уникальным на странице */
@@ -7957,8 +7998,8 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
7957
7998
  /** Внешний вид */
7958
7999
  appearance: {
7959
8000
  type: String,
7960
- validator: (appearance) => expect(appearance).toBeOneOf(APPEARANCE$2),
7961
- default: APPEARANCE$2.POPUP
8001
+ validator: (appearance) => expect(appearance).toBeOneOf(APPEARANCE$3),
8002
+ default: APPEARANCE$3.POPUP
7962
8003
  },
7963
8004
  /** Вывод на весь экран */
7964
8005
  fullscreen: {
@@ -8156,7 +8197,7 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
8156
8197
  const slots = vue.useSlots();
8157
8198
  const renderBody = () => {
8158
8199
  const appearance = props.appearance;
8159
- return vue.h(_sfc_main$10, {
8200
+ return vue.h(_sfc_main$13, {
8160
8201
  name: "zoom",
8161
8202
  onBeforeEnter: () => visibilityOfBody.value = "showing",
8162
8203
  onAfterEnter: () => visibilityOfBody.value = "shown",
@@ -8166,10 +8207,10 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
8166
8207
  ref: body,
8167
8208
  class: {
8168
8209
  "ui-v1-modal-window": true,
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,
8210
+ "ui-v1-modal-window_alert": appearance === APPEARANCE$3.ALERT,
8211
+ "ui-v1-modal-window_dialog": appearance === APPEARANCE$3.DIALOG,
8212
+ "ui-v1-modal-window_popup": appearance === APPEARANCE$3.POPUP,
8213
+ "ui-v1-modal-window_hint": appearance === APPEARANCE$3.HINT,
8173
8214
  "ui-v1-popper-container": true
8174
8215
  }
8175
8216
  }, slots) : []);
@@ -8181,7 +8222,7 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
8181
8222
  };
8182
8223
  const EmbedModalWindowSurface = () => !state.attached ? void 0 : vue.h(vue.Teleport, {
8183
8224
  to: globals?.container ?? document.body
8184
- }, vue.h(_sfc_main$10, {
8225
+ }, vue.h(_sfc_main$13, {
8185
8226
  name: "fade-2",
8186
8227
  onBeforeEnter: () => visibilityOfOverlay.value = "showing",
8187
8228
  onAfterEnter: () => visibilityOfOverlay.value = "shown",
@@ -8199,11 +8240,11 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
8199
8240
  "ui-v1-modal_overlapped": state.overlapped
8200
8241
  }],
8201
8242
  onClick: onOverlayClick
8202
- }, vue.h(_sfc_main$H, {
8243
+ }, vue.h(_sfc_main$K, {
8203
8244
  class: {
8204
8245
  "ui-v1-modal-window-container": true,
8205
8246
  "ui-v1-modal-window-container_fullscreen": props.fullscreen,
8206
- "ui-v1-modal-window-container_responsive": props.responsive && props.appearance === APPEARANCE$2.POPUP
8247
+ "ui-v1-modal-window-container_responsive": props.responsive && props.appearance === APPEARANCE$3.POPUP
8207
8248
  },
8208
8249
  showOnMac: true,
8209
8250
  native: props.scrolling === SCROLLING.NATIVE,
@@ -8223,12 +8264,12 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
8223
8264
  };
8224
8265
  }
8225
8266
  });
8226
- const _hoisted_1$k = {
8267
+ const _hoisted_1$l = {
8227
8268
  xmlns: "http://www.w3.org/2000/svg",
8228
8269
  viewBox: "0 0 24 24"
8229
8270
  };
8230
- function render$7(_ctx, _cache) {
8231
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$k, [..._cache[0] || (_cache[0] = [
8271
+ function render$8(_ctx, _cache) {
8272
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$l, [..._cache[0] || (_cache[0] = [
8232
8273
  vue.createElementVNode("path", {
8233
8274
  fill: "currentColor",
8234
8275
  "fill-rule": "evenodd",
@@ -8237,13 +8278,13 @@ function render$7(_ctx, _cache) {
8237
8278
  }, null, -1)
8238
8279
  ])]);
8239
8280
  }
8240
- const IconWarning = { render: render$7 };
8241
- const _hoisted_1$j = {
8281
+ const IconWarning = { render: render$8 };
8282
+ const _hoisted_1$k = {
8242
8283
  key: 0,
8243
8284
  class: "ui-v1-modal-window__icon"
8244
8285
  };
8245
- const _hoisted_2$9 = ["id"];
8246
- const _hoisted_3$5 = ["disabled"];
8286
+ const _hoisted_2$a = ["id"];
8287
+ const _hoisted_3$6 = ["disabled"];
8247
8288
  const _hoisted_4$1 = {
8248
8289
  key: 1,
8249
8290
  class: "ui-v1-modal-window__content"
@@ -8256,7 +8297,7 @@ const _hoisted_6 = {
8256
8297
  key: 0,
8257
8298
  class: "ui-v1-modal-window__footer-text"
8258
8299
  };
8259
- const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
8300
+ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
8260
8301
  __name: "UiModalWindow",
8261
8302
  props: {
8262
8303
  /** Атрибут id корневого элемента модального окна. Должен быть уникальным на странице */
@@ -8277,8 +8318,8 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
8277
8318
  /** Внешний вид: алерт, диалог, popup, hint */
8278
8319
  appearance: {
8279
8320
  type: String,
8280
- validator: (value) => expect(value).toBeOneOf(APPEARANCE$2),
8281
- default: APPEARANCE$2.POPUP
8321
+ validator: (value) => expect(value).toBeOneOf(APPEARANCE$3),
8322
+ default: APPEARANCE$3.POPUP
8282
8323
  },
8283
8324
  /** Время, через которое плавающий элемент удаляется со страницы, если был скрыт */
8284
8325
  disposeTimeout: {
@@ -8376,7 +8417,7 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
8376
8417
  });
8377
8418
  vue.watch(() => props.opened, toggle);
8378
8419
  return (_ctx, _cache) => {
8379
- return vue.openBlock(), vue.createBlock(_sfc_main$y, vue.mergeProps({
8420
+ return vue.openBlock(), vue.createBlock(_sfc_main$B, vue.mergeProps({
8380
8421
  id: __props.id,
8381
8422
  opened: state.opened,
8382
8423
  closable: __props.closable,
@@ -8402,10 +8443,10 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
8402
8443
  vue.createElementVNode("div", {
8403
8444
  class: vue.normalizeClass({
8404
8445
  "ui-v1-modal-window__header": true,
8405
- "ui-v1-modal-window__header_pinned": _ctx.$slots.title && state.scrolled && __props.appearance === vue.unref(APPEARANCE$2).POPUP && !__props.responsive
8446
+ "ui-v1-modal-window__header_pinned": _ctx.$slots.title && state.scrolled && __props.appearance === vue.unref(APPEARANCE$3).POPUP && !__props.responsive
8406
8447
  })
8407
8448
  }, [
8408
- __props.appearance === vue.unref(APPEARANCE$2).ALERT ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$j, [
8449
+ __props.appearance === vue.unref(APPEARANCE$3).ALERT ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$k, [
8409
8450
  vue.renderSlot(_ctx.$slots, "icon", {
8410
8451
  overlapped: state.overlapped
8411
8452
  }, () => [
@@ -8420,8 +8461,8 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
8420
8461
  vue.renderSlot(_ctx.$slots, "title", {
8421
8462
  overlapped: state.overlapped
8422
8463
  })
8423
- ], 8, _hoisted_2$9)) : vue.createCommentVNode("", true),
8424
- __props.appearance !== vue.unref(APPEARANCE$2).ALERT ? (vue.openBlock(), vue.createElementBlock("button", {
8464
+ ], 8, _hoisted_2$a)) : vue.createCommentVNode("", true),
8465
+ __props.appearance !== vue.unref(APPEARANCE$3).ALERT ? (vue.openBlock(), vue.createElementBlock("button", {
8425
8466
  key: 2,
8426
8467
  "aria-keyshortcuts": "Esc",
8427
8468
  "aria-label": "Close dialog",
@@ -8434,9 +8475,9 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
8434
8475
  title: "Close dialog",
8435
8476
  style: { "width": "100%" }
8436
8477
  })
8437
- ], 8, _hoisted_3$5)) : vue.createCommentVNode("", true)
8478
+ ], 8, _hoisted_3$6)) : vue.createCommentVNode("", true)
8438
8479
  ], 2),
8439
- __props.responsive ? (vue.openBlock(), vue.createBlock(_sfc_main$H, {
8480
+ __props.responsive ? (vue.openBlock(), vue.createBlock(_sfc_main$K, {
8440
8481
  key: 0,
8441
8482
  class: "ui-v1-modal-window__content",
8442
8483
  "show-on-mac": "",
@@ -8454,7 +8495,7 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
8454
8495
  })
8455
8496
  ])),
8456
8497
  _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, [
8498
+ __props.appearance === vue.unref(APPEARANCE$3).HINT ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6, [
8458
8499
  vue.renderSlot(_ctx.$slots, "footer", {
8459
8500
  overlapped: state.overlapped
8460
8501
  })
@@ -8469,58 +8510,58 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
8469
8510
  };
8470
8511
  }
8471
8512
  });
8472
- const _hoisted_1$i = {
8513
+ const _hoisted_1$j = {
8473
8514
  xmlns: "http://www.w3.org/2000/svg",
8474
8515
  viewBox: "0 0 24 24"
8475
8516
  };
8476
- function render$6(_ctx, _cache) {
8477
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$i, [..._cache[0] || (_cache[0] = [
8517
+ function render$7(_ctx, _cache) {
8518
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$j, [..._cache[0] || (_cache[0] = [
8478
8519
  vue.createElementVNode("path", {
8479
8520
  fill: "currentColor",
8480
8521
  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
8522
  }, null, -1)
8482
8523
  ])]);
8483
8524
  }
8484
- const IconAdd = { render: render$6 };
8485
- const _hoisted_1$h = {
8525
+ const IconAdd = { render: render$7 };
8526
+ const _hoisted_1$i = {
8486
8527
  xmlns: "http://www.w3.org/2000/svg",
8487
8528
  viewBox: "0 0 24 24"
8488
8529
  };
8489
- function render$5(_ctx, _cache) {
8490
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$h, [..._cache[0] || (_cache[0] = [
8530
+ function render$6(_ctx, _cache) {
8531
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$i, [..._cache[0] || (_cache[0] = [
8491
8532
  vue.createElementVNode("path", {
8492
8533
  fill: "currentColor",
8493
8534
  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
8535
  }, null, -1)
8495
8536
  ])]);
8496
8537
  }
8497
- const IconCaret = { render: render$5 };
8498
- const _hoisted_1$g = {
8538
+ const IconCaret = { render: render$6 };
8539
+ const _hoisted_1$h = {
8499
8540
  xmlns: "http://www.w3.org/2000/svg",
8500
8541
  viewBox: "0 0 24 24"
8501
8542
  };
8502
- function render$4(_ctx, _cache) {
8503
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$g, [..._cache[0] || (_cache[0] = [
8543
+ function render$5(_ctx, _cache) {
8544
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$h, [..._cache[0] || (_cache[0] = [
8504
8545
  vue.createElementVNode("path", {
8505
8546
  fill: "currentColor",
8506
8547
  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
8548
  }, null, -1)
8508
8549
  ])]);
8509
8550
  }
8510
- const IconCaretUp = { render: render$4 };
8511
- const _hoisted_1$f = {
8551
+ const IconCaretUp = { render: render$5 };
8552
+ const _hoisted_1$g = {
8512
8553
  xmlns: "http://www.w3.org/2000/svg",
8513
8554
  viewBox: "0 0 24 24"
8514
8555
  };
8515
- function render$3(_ctx, _cache) {
8516
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$f, [..._cache[0] || (_cache[0] = [
8556
+ function render$4(_ctx, _cache) {
8557
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$g, [..._cache[0] || (_cache[0] = [
8517
8558
  vue.createElementVNode("path", {
8518
8559
  fill: "currentColor",
8519
8560
  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
8561
  }, null, -1)
8521
8562
  ])]);
8522
8563
  }
8523
- const IconRemove = { render: render$3 };
8564
+ const IconRemove = { render: render$4 };
8524
8565
  var DIRECTION$1 = /* @__PURE__ */ ((DIRECTION2) => {
8525
8566
  DIRECTION2["HORIZONTAL"] = "horizontal";
8526
8567
  DIRECTION2["VERTICAL"] = "vertical";
@@ -8623,10 +8664,10 @@ const _i18n$3 = define({
8623
8664
  "ru-RU": messages_ru_RU$3
8624
8665
  }
8625
8666
  });
8626
- const _hoisted_1$e = ["id", "aria-disabled", "aria-readonly"];
8627
- const _hoisted_2$8 = ["id", "aria-controls", "aria-label", "disabled"];
8628
- const _hoisted_3$4 = ["id", "aria-controls", "aria-label", "disabled"];
8629
- const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
8667
+ const _hoisted_1$f = ["id", "aria-disabled", "aria-readonly"];
8668
+ const _hoisted_2$9 = ["id", "aria-controls", "aria-label", "disabled"];
8669
+ const _hoisted_3$5 = ["id", "aria-controls", "aria-label", "disabled"];
8670
+ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
8630
8671
  ...{
8631
8672
  inheritAttrs: false
8632
8673
  },
@@ -8688,8 +8729,8 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
8688
8729
  },
8689
8730
  size: {
8690
8731
  type: String,
8691
- validator: (value) => Object.values(SIZE$7).includes(value),
8692
- default: SIZE$7.SM
8732
+ validator: (value) => Object.values(SIZE$8).includes(value),
8733
+ default: SIZE$8.SM
8693
8734
  },
8694
8735
  outlined: {
8695
8736
  type: Boolean,
@@ -8974,8 +9015,8 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
8974
9015
  "aria-hidden": "true",
8975
9016
  class: "ui-v1-number-stepper__icon"
8976
9017
  }))
8977
- ], 8, _hoisted_2$8),
8978
- vue.createVNode(_sfc_main$J, vue.mergeProps(resolvedTextboxOptions.value, {
9018
+ ], 8, _hoisted_2$9),
9019
+ vue.createVNode(_sfc_main$M, vue.mergeProps(resolvedTextboxOptions.value, {
8979
9020
  id: stepperId.value,
8980
9021
  ref_key: "textbox",
8981
9022
  ref: textbox,
@@ -9014,13 +9055,13 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
9014
9055
  "aria-hidden": "true",
9015
9056
  class: "ui-v1-number-stepper__icon"
9016
9057
  }))
9017
- ], 8, _hoisted_3$4)
9018
- ], 16, _hoisted_1$e);
9058
+ ], 8, _hoisted_3$5)
9059
+ ], 16, _hoisted_1$f);
9019
9060
  };
9020
9061
  }
9021
9062
  });
9022
- const _hoisted_1$d = ["id", "aria-label", "role", "tabindex", "onKeydown"];
9023
- const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
9063
+ const _hoisted_1$e = ["id", "aria-label", "role", "tabindex", "onKeydown"];
9064
+ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
9024
9065
  __name: "UiPageHeaderTitle",
9025
9066
  props: {
9026
9067
  /** Уникальный идентификатор корневого элемента */
@@ -9180,7 +9221,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
9180
9221
  vue.withKeys(vue.withModifiers(startEditing, ["prevent"]), ["enter"]),
9181
9222
  vue.withKeys(vue.withModifiers(startEditing, ["prevent"]), ["space"])
9182
9223
  ]
9183
- }, vue.toDisplayString(currentValue.value || displayPlaceholder.value), 43, _hoisted_1$d)) : (vue.openBlock(), vue.createBlock(_sfc_main$J, {
9224
+ }, vue.toDisplayString(currentValue.value || displayPlaceholder.value), 43, _hoisted_1$e)) : (vue.openBlock(), vue.createBlock(_sfc_main$M, {
9184
9225
  key: 1,
9185
9226
  id: textboxId.value,
9186
9227
  ref_key: "textbox",
@@ -9206,9 +9247,9 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
9206
9247
  };
9207
9248
  }
9208
9249
  });
9209
- const _hoisted_1$c = ["id"];
9210
- const _hoisted_2$7 = { class: "ui-v1-page-header__main" };
9211
- const _hoisted_3$3 = { class: "ui-v1-page-header__title" };
9250
+ const _hoisted_1$d = ["id"];
9251
+ const _hoisted_2$8 = { class: "ui-v1-page-header__main" };
9252
+ const _hoisted_3$4 = { class: "ui-v1-page-header__title" };
9212
9253
  const _hoisted_4 = {
9213
9254
  key: 0,
9214
9255
  class: "ui-v1-page-header__addon"
@@ -9217,7 +9258,7 @@ const _hoisted_5 = {
9217
9258
  key: 0,
9218
9259
  class: "ui-v1-page-header__actions"
9219
9260
  };
9220
- const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
9261
+ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
9221
9262
  ...{
9222
9263
  inheritAttrs: false
9223
9264
  },
@@ -9298,9 +9339,9 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
9298
9339
  "ui-v1-page-header_readonly": __props.readonly
9299
9340
  }
9300
9341
  }, _ctx.$attrs), [
9301
- vue.createElementVNode("div", _hoisted_2$7, [
9302
- vue.createElementVNode("div", _hoisted_3$3, [
9303
- vue.createVNode(_sfc_main$v, {
9342
+ vue.createElementVNode("div", _hoisted_2$8, [
9343
+ vue.createElementVNode("div", _hoisted_3$4, [
9344
+ vue.createVNode(_sfc_main$y, {
9304
9345
  id: __props.id,
9305
9346
  ref_key: "main",
9306
9347
  ref: main,
@@ -9327,11 +9368,11 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
9327
9368
  "actions" in _ctx.$slots ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [
9328
9369
  vue.renderSlot(_ctx.$slots, "actions")
9329
9370
  ])) : vue.createCommentVNode("", true)
9330
- ], 16, _hoisted_1$c);
9371
+ ], 16, _hoisted_1$d);
9331
9372
  };
9332
9373
  }
9333
9374
  });
9334
- const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
9375
+ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
9335
9376
  ...{
9336
9377
  inheritAttrs: false
9337
9378
  },
@@ -9371,7 +9412,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
9371
9412
  blur: () => base.value?.blur()
9372
9413
  });
9373
9414
  return (_ctx, _cache) => {
9374
- return vue.openBlock(), vue.createBlock(_sfc_main$u, vue.mergeProps({
9415
+ return vue.openBlock(), vue.createBlock(_sfc_main$x, vue.mergeProps({
9375
9416
  ref_key: "base",
9376
9417
  ref: base
9377
9418
  }, baseProps.value, {
@@ -9399,7 +9440,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
9399
9440
  };
9400
9441
  }
9401
9442
  });
9402
- const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
9443
+ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
9403
9444
  __name: "UiPopperConnector",
9404
9445
  setup(__props) {
9405
9446
  const target = vue.ref(null);
@@ -9410,7 +9451,7 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
9410
9451
  };
9411
9452
  }
9412
9453
  });
9413
- const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
9454
+ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
9414
9455
  ...{
9415
9456
  inheritAttrs: false
9416
9457
  },
@@ -9436,11 +9477,11 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
9436
9477
  };
9437
9478
  }
9438
9479
  });
9439
- const _hoisted_1$b = ["id", "name", "value", "checked", "required", "disabled"];
9480
+ const _hoisted_1$c = ["id", "name", "value", "checked", "required", "disabled"];
9440
9481
  let nameCounter = 0;
9441
9482
  let idCounter = 0;
9442
9483
  const __default__$1 = {};
9443
- const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
9484
+ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
9444
9485
  ...__default__$1,
9445
9486
  ...{
9446
9487
  inheritAttrs: false
@@ -9529,24 +9570,24 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
9529
9570
  type: "radio",
9530
9571
  class: "ui-v1-radio__input",
9531
9572
  onChange
9532
- }), null, 16, _hoisted_1$b),
9573
+ }), null, 16, _hoisted_1$c),
9533
9574
  _cache[0] || (_cache[0] = vue.createElementVNode("span", { class: "ui-v1-radio__checkmark" }, null, -1))
9534
9575
  ], 16);
9535
9576
  };
9536
9577
  }
9537
9578
  });
9538
- var APPEARANCE$1 = /* @__PURE__ */ ((APPEARANCE2) => {
9579
+ var APPEARANCE$2 = /* @__PURE__ */ ((APPEARANCE2) => {
9539
9580
  APPEARANCE2["DEFAULT"] = "default";
9540
9581
  APPEARANCE2["SECTION"] = "section";
9541
9582
  return APPEARANCE2;
9542
- })(APPEARANCE$1 || {});
9543
- var SIZE$3 = /* @__PURE__ */ ((SIZE2) => {
9583
+ })(APPEARANCE$2 || {});
9584
+ var SIZE$4 = /* @__PURE__ */ ((SIZE2) => {
9544
9585
  SIZE2["SM"] = "sm";
9545
9586
  SIZE2["MD"] = "md";
9546
9587
  SIZE2["LG"] = "lg";
9547
9588
  return SIZE2;
9548
- })(SIZE$3 || {});
9549
- const _sfc_main$p = vue.defineComponent({
9589
+ })(SIZE$4 || {});
9590
+ const _sfc_main$s = vue.defineComponent({
9550
9591
  name: "UiRadioSwitchOptionShell",
9551
9592
  inheritAttrs: false,
9552
9593
  props: {
@@ -9556,13 +9597,13 @@ const _sfc_main$p = vue.defineComponent({
9556
9597
  },
9557
9598
  appearance: {
9558
9599
  type: String,
9559
- default: APPEARANCE$1.DEFAULT,
9560
- validator: (appearance) => Object.values(APPEARANCE$1).includes(appearance)
9600
+ default: APPEARANCE$2.DEFAULT,
9601
+ validator: (appearance) => Object.values(APPEARANCE$2).includes(appearance)
9561
9602
  },
9562
9603
  size: {
9563
9604
  type: String,
9564
- default: SIZE$3.MD,
9565
- validator: (size) => Object.values(SIZE$3).includes(size)
9605
+ default: SIZE$4.MD,
9606
+ validator: (size) => Object.values(SIZE$4).includes(size)
9566
9607
  },
9567
9608
  checked: {
9568
9609
  type: Boolean,
@@ -9588,27 +9629,27 @@ const _sfc_main$p = vue.defineComponent({
9588
9629
  "aria-disabled": `${props.disabled}`,
9589
9630
  class: [attrs.class, {
9590
9631
  "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,
9632
+ "ui-v1-radio-switch-option_standalone": props.appearance === APPEARANCE$2.SECTION,
9633
+ "ui-v1-radio-switch-option_default": props.appearance === APPEARANCE$2.DEFAULT,
9634
+ [`ui-v1-radio-switch-option_${props.size}`]: props.appearance === APPEARANCE$2.DEFAULT,
9594
9635
  "ui-v1-radio-switch-option_active": props.checked,
9595
9636
  "ui-v1-radio-switch-option_disabled": props.disabled
9596
9637
  }]
9597
9638
  }, slots.default?.());
9598
9639
  }
9599
9640
  });
9600
- const _sfc_main$o = vue.defineComponent({
9641
+ const _sfc_main$r = vue.defineComponent({
9601
9642
  name: "UiRadioSwitchRoot",
9602
9643
  props: {
9603
9644
  appearance: {
9604
9645
  type: String,
9605
- default: APPEARANCE$1.DEFAULT,
9606
- validator: (appearance) => Object.values(APPEARANCE$1).includes(appearance)
9646
+ default: APPEARANCE$2.DEFAULT,
9647
+ validator: (appearance) => Object.values(APPEARANCE$2).includes(appearance)
9607
9648
  },
9608
9649
  size: {
9609
9650
  type: String,
9610
- default: SIZE$3.MD,
9611
- validator: (size) => Object.values(SIZE$3).includes(size)
9651
+ default: SIZE$4.MD,
9652
+ validator: (size) => Object.values(SIZE$4).includes(size)
9612
9653
  },
9613
9654
  rubber: {
9614
9655
  type: Boolean,
@@ -9621,13 +9662,89 @@ const _sfc_main$o = vue.defineComponent({
9621
9662
  role: attrs.role ?? "radiogroup",
9622
9663
  class: [attrs.class, {
9623
9664
  "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,
9665
+ [`ui-v1-radio-switch_${props.size}`]: props.appearance === APPEARANCE$2.DEFAULT,
9666
+ "ui-v1-radio-switch_borderless": props.appearance === APPEARANCE$2.SECTION,
9626
9667
  "ui-v1-radio-switch_rubber": props.rubber
9627
9668
  }]
9628
9669
  }, slots.default?.());
9629
9670
  }
9630
9671
  });
9672
+ var ANIMATION = /* @__PURE__ */ ((ANIMATION2) => {
9673
+ ANIMATION2["PULSE"] = "pulse";
9674
+ ANIMATION2["SHIMMER"] = "shimmer";
9675
+ return ANIMATION2;
9676
+ })(ANIMATION || {});
9677
+ var APPEARANCE$1 = /* @__PURE__ */ ((APPEARANCE2) => {
9678
+ APPEARANCE2["CIRCLE"] = "circle";
9679
+ APPEARANCE2["RECTANGLE"] = "rectangle";
9680
+ APPEARANCE2["TEXT"] = "text";
9681
+ return APPEARANCE2;
9682
+ })(APPEARANCE$1 || {});
9683
+ var SIZE$3 = /* @__PURE__ */ ((SIZE2) => {
9684
+ SIZE2["SM"] = "sm";
9685
+ SIZE2["MD"] = "md";
9686
+ SIZE2["LG"] = "lg";
9687
+ return SIZE2;
9688
+ })(SIZE$3 || {});
9689
+ function guessDimensionStyleValue(value) {
9690
+ return typeof value === "number" || typeof value === "string" && /^\d*$/.test(value) ? `${value}px` : value;
9691
+ }
9692
+ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
9693
+ __name: "UiSkeleton",
9694
+ props: {
9695
+ /** Визуальная форма скелетона */
9696
+ appearance: {
9697
+ type: String,
9698
+ validator: (value) => Object.values(APPEARANCE$1).includes(value),
9699
+ default: APPEARANCE$1.RECTANGLE
9700
+ },
9701
+ /** Преднастроенный размер */
9702
+ size: {
9703
+ type: String,
9704
+ validator: (value) => Object.values(SIZE$3).includes(value),
9705
+ default: SIZE$3.MD
9706
+ },
9707
+ /** Тип анимации */
9708
+ animation: {
9709
+ type: String,
9710
+ validator: (value) => Object.values(ANIMATION).includes(value),
9711
+ default: ANIMATION.SHIMMER
9712
+ },
9713
+ /** Явная ширина. Числовые значения интерпретируются как px */
9714
+ width: {
9715
+ type: [Number, String],
9716
+ default: null
9717
+ },
9718
+ /** Явная высота. Числовые значения интерпретируются как px */
9719
+ height: {
9720
+ type: [Number, String],
9721
+ default: null
9722
+ }
9723
+ },
9724
+ setup(__props) {
9725
+ const props = __props;
9726
+ const style = vue.computed(() => {
9727
+ const width = guessDimensionStyleValue(props.width);
9728
+ const height = guessDimensionStyleValue(props.height);
9729
+ return {
9730
+ ...width ? { width } : {},
9731
+ ...height ? { height } : {}
9732
+ };
9733
+ });
9734
+ return (_ctx, _cache) => {
9735
+ return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
9736
+ class: {
9737
+ "ui-v1-skeleton": true,
9738
+ [`ui-v1-skeleton_${__props.appearance}`]: true,
9739
+ [`ui-v1-skeleton_${__props.size}`]: true,
9740
+ [`ui-v1-skeleton_${__props.animation}`]: true
9741
+ },
9742
+ style: style.value,
9743
+ "aria-hidden": "true"
9744
+ }, _ctx.$attrs), null, 16);
9745
+ };
9746
+ }
9747
+ });
9631
9748
  var TYPE = /* @__PURE__ */ ((TYPE2) => {
9632
9749
  TYPE2["SINGLE"] = "single";
9633
9750
  TYPE2["RANGE"] = "range";
@@ -9728,16 +9845,16 @@ const createManipulator = (options) => {
9728
9845
  onDragEnd
9729
9846
  };
9730
9847
  };
9731
- const _hoisted_1$a = {
9848
+ const _hoisted_1$b = {
9732
9849
  key: 0,
9733
9850
  class: "ui-v1-slider__label"
9734
9851
  };
9735
- const _hoisted_2$6 = ["onMousedown", "onKeydown", "onFocus"];
9736
- const _hoisted_3$2 = {
9852
+ const _hoisted_2$7 = ["onMousedown", "onKeydown", "onFocus"];
9853
+ const _hoisted_3$3 = {
9737
9854
  key: 1,
9738
9855
  class: "ui-v1-slider__label"
9739
9856
  };
9740
- const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
9857
+ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
9741
9858
  __name: "UiSlider",
9742
9859
  props: {
9743
9860
  type: {
@@ -9900,7 +10017,7 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
9900
10017
  onClick: _cache[2] || (_cache[2] = ($event) => vue.unref(onClick)($event)),
9901
10018
  onKeydown: _cache[3] || (_cache[3] = ($event) => onRootKeydown($event))
9902
10019
  }), [
9903
- props.labelled ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [
10020
+ props.labelled ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [
9904
10021
  vue.renderSlot(_ctx.$slots, "label", {
9905
10022
  boundary: props.min
9906
10023
  })
@@ -9941,10 +10058,10 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
9941
10058
  key: 0,
9942
10059
  boundary: handle.value
9943
10060
  }) : vue.createCommentVNode("", true)
9944
- ], 16, _hoisted_2$6);
10061
+ ], 16, _hoisted_2$7);
9945
10062
  }), 128))
9946
10063
  ], 512),
9947
- props.labelled ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$2, [
10064
+ props.labelled ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$3, [
9948
10065
  vue.renderSlot(_ctx.$slots, "label", {
9949
10066
  boundary: props.max
9950
10067
  })
@@ -9964,7 +10081,7 @@ var PLACEMENT = /* @__PURE__ */ ((PLACEMENT2) => {
9964
10081
  PLACEMENT2["LEFT_START"] = "left-start";
9965
10082
  return PLACEMENT2;
9966
10083
  })(PLACEMENT || {});
9967
- const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
10084
+ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
9968
10085
  __name: "UiSelectPopper",
9969
10086
  props: {
9970
10087
  /** Атрибут id корневого элемента выпадающего списка. Должен быть уникальным на странице */
@@ -10078,7 +10195,9 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
10078
10195
  __expose({
10079
10196
  autoScroll,
10080
10197
  updateWidth,
10081
- adjust: () => popper.value?.adjust(),
10198
+ adjust: async () => {
10199
+ await popper.value?.adjust();
10200
+ },
10082
10201
  dispose: () => popper.value?.dispose(),
10083
10202
  show: () => popper.value?.show(),
10084
10203
  hide: () => popper.value?.hide()
@@ -10087,7 +10206,7 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
10087
10206
  vue.onMounted(() => {
10088
10207
  });
10089
10208
  return (_ctx, _cache) => {
10090
- return vue.openBlock(), vue.createBlock(_sfc_main$N, vue.mergeProps({
10209
+ return vue.openBlock(), vue.createBlock(_sfc_main$Q, vue.mergeProps({
10091
10210
  id: __props.id + "-popper",
10092
10211
  ref_key: "popper",
10093
10212
  ref: popper,
@@ -10155,7 +10274,7 @@ const _i18n$2 = define({
10155
10274
  "ru-RU": messages_ru_RU$2
10156
10275
  }
10157
10276
  });
10158
- const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
10277
+ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
10159
10278
  __name: "UiSelectTrigger",
10160
10279
  props: {
10161
10280
  /** Атрибут id корневого элемента выпадающего списка. Должен быть уникальным на странице */
@@ -10216,8 +10335,14 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
10216
10335
  /** Размер поля ввода */
10217
10336
  textboxSize: {
10218
10337
  type: String,
10219
- validator: (size) => Object.values(SIZE$7).includes(size),
10220
- default: SIZE$7.SM
10338
+ validator: (size) => Object.values(SIZE$8).includes(size),
10339
+ default: SIZE$8.SM
10340
+ },
10341
+ /** Ширина. fit — по содержимому, fluid — на всю ширину контейнера */
10342
+ width: {
10343
+ type: [Number, String],
10344
+ validator: isWidth,
10345
+ default: WIDTH.FIT
10221
10346
  },
10222
10347
  /** Состояние открытия выпадающего списка */
10223
10348
  expanded: {
@@ -10255,6 +10380,10 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
10255
10380
  const props = __props;
10256
10381
  const emit = __emit;
10257
10382
  const i18n = vue.computed(() => _i18n$2.init(vue.inject(I18nInjectKey, null)?.locale ?? _i18n$2.fallback));
10383
+ const style = vue.computed(() => {
10384
+ const width = normalizeWidth(props.width);
10385
+ return isWidthExact(props.width) && width ? { width } : {};
10386
+ });
10258
10387
  const input = vue.ref(null);
10259
10388
  const inputReadonly = vue.computed(() => props.readonly || !props.filterable);
10260
10389
  const trigger = vue.ref(null);
@@ -10370,8 +10499,11 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
10370
10499
  "ui-v1-select": true,
10371
10500
  "ui-v1-select_active": __props.expanded,
10372
10501
  "ui-v1-select_disabled": __props.disabled,
10373
- "ui-v1-select_filterable": __props.filterable
10502
+ "ui-v1-select_fit": __props.width === vue.unref(WIDTH).FIT,
10503
+ "ui-v1-select_filterable": __props.filterable,
10504
+ "ui-v1-select_fluid": __props.width === vue.unref(WIDTH).FLUID
10374
10505
  }),
10506
+ style: vue.normalizeStyle(style.value),
10375
10507
  onClick
10376
10508
  }, [
10377
10509
  __props.multiple && !_ctx.$slots.trigger ? (vue.openBlock(), vue.createElementBlock("div", {
@@ -10381,7 +10513,7 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
10381
10513
  class: "ui-v1-select__touchstone"
10382
10514
  }, vue.toDisplayString(selectionLabels.value), 513)) : vue.createCommentVNode("", true),
10383
10515
  vue.renderSlot(_ctx.$slots, "trigger", {}, () => [
10384
- vue.createVNode(_sfc_main$J, {
10516
+ vue.createVNode(_sfc_main$M, {
10385
10517
  id: __props.id,
10386
10518
  value: inputValue.value,
10387
10519
  placeholder: !inputReadonly.value && __props.expanded ? i18n.value.t("search.placeholder") : __props.placeholder,
@@ -10418,16 +10550,16 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
10418
10550
  } : void 0
10419
10551
  ]), 1032, ["id", "value", "placeholder", "active", "clearable", "invalid", "readonly", "size", "disabled", "input-attributes"])
10420
10552
  ])
10421
- ], 2);
10553
+ ], 6);
10422
10554
  };
10423
10555
  }
10424
10556
  });
10425
- const _hoisted_1$9 = ["id", "checked", "disabled", "aria-checked", "aria-disabled"];
10426
- const _hoisted_2$5 = { class: "ui-v1-switch__track" };
10427
- const _hoisted_3$1 = { class: "ui-v1-switch__handle" };
10557
+ const _hoisted_1$a = ["id", "checked", "disabled", "aria-checked", "aria-disabled"];
10558
+ const _hoisted_2$6 = { class: "ui-v1-switch__track" };
10559
+ const _hoisted_3$2 = { class: "ui-v1-switch__handle" };
10428
10560
  let counter$1 = 0;
10429
10561
  const __default__ = {};
10430
- const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
10562
+ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
10431
10563
  ...__default__,
10432
10564
  __name: "UiSwitch",
10433
10565
  props: {
@@ -10500,9 +10632,9 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
10500
10632
  role: "switch",
10501
10633
  class: "ui-v1-switch__input",
10502
10634
  onChange
10503
- }), null, 16, _hoisted_1$9),
10504
- vue.createElementVNode("span", _hoisted_2$5, [
10505
- vue.createElementVNode("span", _hoisted_3$1, [
10635
+ }), null, 16, _hoisted_1$a),
10636
+ vue.createElementVNode("span", _hoisted_2$6, [
10637
+ vue.createElementVNode("span", _hoisted_3$2, [
10506
10638
  !__props.square ? (vue.openBlock(), vue.createBlock(vue.unref(IconDone), {
10507
10639
  key: 0,
10508
10640
  class: "ui-v1-switch__icon"
@@ -10535,7 +10667,7 @@ const byRowKey = (key) => {
10535
10667
  };
10536
10668
  const asRowClass = (value) => value;
10537
10669
  const asRowAttrs = (value) => value;
10538
- const _sfc_main$j = vue.defineComponent({
10670
+ const _sfc_main$l = vue.defineComponent({
10539
10671
  name: "UiTableBodyCell",
10540
10672
  props: {
10541
10673
  align: {
@@ -10587,7 +10719,7 @@ const toCssSize = (value) => {
10587
10719
  }
10588
10720
  return value;
10589
10721
  };
10590
- const _sfc_main$i = vue.defineComponent({
10722
+ const _sfc_main$k = vue.defineComponent({
10591
10723
  name: "UiTableCol",
10592
10724
  props: {
10593
10725
  width: {
@@ -10618,9 +10750,9 @@ const _sfc_main$i = vue.defineComponent({
10618
10750
  });
10619
10751
  }
10620
10752
  });
10621
- const _hoisted_1$8 = ["type"];
10622
- const _hoisted_2$4 = { class: "ui-v1-table__footer-button-content" };
10623
- const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
10753
+ const _hoisted_1$9 = ["type"];
10754
+ const _hoisted_2$5 = { class: "ui-v1-table__footer-button-content" };
10755
+ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
10624
10756
  ...{
10625
10757
  inheritAttrs: false
10626
10758
  },
@@ -10638,14 +10770,14 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
10638
10770
  type: __props.type,
10639
10771
  class: "ui-v1-table__footer-button"
10640
10772
  }, _ctx.$attrs), [
10641
- vue.createElementVNode("span", _hoisted_2$4, [
10773
+ vue.createElementVNode("span", _hoisted_2$5, [
10642
10774
  vue.renderSlot(_ctx.$slots, "default")
10643
10775
  ])
10644
- ], 16, _hoisted_1$8);
10776
+ ], 16, _hoisted_1$9);
10645
10777
  };
10646
10778
  }
10647
10779
  });
10648
- const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
10780
+ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
10649
10781
  ...{
10650
10782
  inheritAttrs: false
10651
10783
  },
@@ -10658,7 +10790,7 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
10658
10790
  };
10659
10791
  }
10660
10792
  });
10661
- const _sfc_main$f = vue.defineComponent({
10793
+ const _sfc_main$h = vue.defineComponent({
10662
10794
  name: "UiTableHeadCell",
10663
10795
  props: {
10664
10796
  align: {
@@ -10683,7 +10815,7 @@ const _sfc_main$f = vue.defineComponent({
10683
10815
  }, slots.default?.());
10684
10816
  }
10685
10817
  });
10686
- const _sfc_main$e = vue.defineComponent({
10818
+ const _sfc_main$g = vue.defineComponent({
10687
10819
  name: "UiTableRoot",
10688
10820
  props: {
10689
10821
  bordered: {
@@ -10706,7 +10838,7 @@ const _sfc_main$e = vue.defineComponent({
10706
10838
  }, slots.default?.());
10707
10839
  }
10708
10840
  });
10709
- const _sfc_main$d = vue.defineComponent({
10841
+ const _sfc_main$f = vue.defineComponent({
10710
10842
  name: "UiTableRow",
10711
10843
  props: {
10712
10844
  interactive: {
@@ -10734,7 +10866,7 @@ const sectionTagByKind = {
10734
10866
  body: "tbody",
10735
10867
  foot: "tfoot"
10736
10868
  };
10737
- const _sfc_main$c = vue.defineComponent({
10869
+ const _sfc_main$e = vue.defineComponent({
10738
10870
  name: "UiTableSection",
10739
10871
  props: {
10740
10872
  kind: {
@@ -10753,14 +10885,14 @@ const _sfc_main$c = vue.defineComponent({
10753
10885
  }, slots.default?.());
10754
10886
  }
10755
10887
  });
10756
- const _hoisted_1$7 = {
10888
+ const _hoisted_1$8 = {
10757
10889
  "aria-hidden": "true",
10758
10890
  class: "ui-v1-table__sorter-icon",
10759
10891
  xmlns: "http://www.w3.org/2000/svg",
10760
10892
  viewBox: "0 0 24 24"
10761
10893
  };
10762
- const _hoisted_2$3 = { class: "ui-v1-table__sorter-label" };
10763
- const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
10894
+ const _hoisted_2$4 = { class: "ui-v1-table__sorter-label" };
10895
+ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
10764
10896
  ...{
10765
10897
  inheritAttrs: false
10766
10898
  },
@@ -10778,7 +10910,7 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
10778
10910
  type: "button",
10779
10911
  class: "ui-v1-table__sorter"
10780
10912
  }, _ctx.$attrs), [
10781
- (vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$7, [
10913
+ (vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$8, [
10782
10914
  vue.createElementVNode("path", {
10783
10915
  class: vue.normalizeClass({
10784
10916
  "ui-v1-table__sorter-path": true,
@@ -10794,14 +10926,14 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
10794
10926
  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"
10795
10927
  }, null, 2)
10796
10928
  ])),
10797
- vue.createElementVNode("span", _hoisted_2$3, [
10929
+ vue.createElementVNode("span", _hoisted_2$4, [
10798
10930
  vue.renderSlot(_ctx.$slots, "default")
10799
10931
  ])
10800
10932
  ], 16);
10801
10933
  };
10802
10934
  }
10803
10935
  });
10804
- const _sfc_main$a = vue.defineComponent({
10936
+ const _sfc_main$c = vue.defineComponent({
10805
10937
  name: "UiTab",
10806
10938
  inheritAttrs: false,
10807
10939
  props: {
@@ -10826,12 +10958,12 @@ const _sfc_main$a = vue.defineComponent({
10826
10958
  return () => null;
10827
10959
  }
10828
10960
  });
10829
- const _hoisted_1$6 = {
10961
+ const _hoisted_1$7 = {
10830
10962
  xmlns: "http://www.w3.org/2000/svg",
10831
10963
  viewBox: "0 0 24 24"
10832
10964
  };
10833
- function render$2(_ctx, _cache) {
10834
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$6, [..._cache[0] || (_cache[0] = [
10965
+ function render$3(_ctx, _cache) {
10966
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$7, [..._cache[0] || (_cache[0] = [
10835
10967
  vue.createElementVNode("path", {
10836
10968
  fill: "currentColor",
10837
10969
  "fill-rule": "evenodd",
@@ -10840,7 +10972,7 @@ function render$2(_ctx, _cache) {
10840
10972
  }, null, -1)
10841
10973
  ])]);
10842
10974
  }
10843
- const IconMoreHorizontal = { render: render$2 };
10975
+ const IconMoreHorizontal = { render: render$3 };
10844
10976
  var SIZE$2 = /* @__PURE__ */ ((SIZE2) => {
10845
10977
  SIZE2["SM"] = "sm";
10846
10978
  SIZE2["MD"] = "md";
@@ -10855,7 +10987,7 @@ var APPEARANCE = /* @__PURE__ */ ((APPEARANCE2) => {
10855
10987
  const hasCounter = (value) => {
10856
10988
  return value !== null && typeof value !== "undefined";
10857
10989
  };
10858
- const _sfc_main$9 = vue.defineComponent({
10990
+ const _sfc_main$b = vue.defineComponent({
10859
10991
  name: "UiTabButton",
10860
10992
  inheritAttrs: false,
10861
10993
  props: {
@@ -10913,12 +11045,12 @@ const _sfc_main$9 = vue.defineComponent({
10913
11045
  ]);
10914
11046
  }
10915
11047
  });
10916
- const _hoisted_1$5 = {
11048
+ const _hoisted_1$6 = {
10917
11049
  "aria-hidden": "true",
10918
11050
  class: "ui-v1-tab-group__measure"
10919
11051
  };
10920
- const _hoisted_2$2 = { class: "ui-v1-tab-group__content" };
10921
- const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
11052
+ const _hoisted_2$3 = { class: "ui-v1-tab-group__content" };
11053
+ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
10922
11054
  __name: "UiTabGroupHead",
10923
11055
  props: {
10924
11056
  groupId: {
@@ -11029,9 +11161,9 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
11029
11161
  });
11030
11162
  return (_ctx, _cache) => {
11031
11163
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
11032
- vue.createElementVNode("div", _hoisted_1$5, [
11164
+ vue.createElementVNode("div", _hoisted_1$6, [
11033
11165
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.items, (item) => {
11034
- return vue.openBlock(), vue.createBlock(_sfc_main$9, {
11166
+ return vue.openBlock(), vue.createBlock(_sfc_main$b, {
11035
11167
  id: `${item.id}-measure`,
11036
11168
  key: `measure-${item.id}`,
11037
11169
  ref_for: true,
@@ -11051,9 +11183,9 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
11051
11183
  class: "ui-v1-tab-group__head",
11052
11184
  role: "tablist"
11053
11185
  }, [
11054
- vue.createElementVNode("div", _hoisted_2$2, [
11186
+ vue.createElementVNode("div", _hoisted_2$3, [
11055
11187
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.headItems, (item) => {
11056
- return vue.openBlock(), vue.createBlock(_sfc_main$9, {
11188
+ return vue.openBlock(), vue.createBlock(_sfc_main$b, {
11057
11189
  id: `${props.groupId}-tab-${item.id}`,
11058
11190
  key: `head-${item.id}`,
11059
11191
  ref_for: true,
@@ -11073,7 +11205,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
11073
11205
  }, null, 8, ["id", "active", "aria-disabled", "aria-selected", "aria-controls", "appearance", "item", "size", "tabindex", "onClick", "onFocus", "onKeydown"]);
11074
11206
  }), 128))
11075
11207
  ]),
11076
- __props.hasMenuItems ? (vue.openBlock(), vue.createBlock(_sfc_main$W, {
11208
+ __props.hasMenuItems ? (vue.openBlock(), vue.createBlock(_sfc_main$Z, {
11077
11209
  key: 0,
11078
11210
  active: __props.menuExpanded,
11079
11211
  "aria-expanded": __props.menuExpanded ? "true" : "false",
@@ -11097,7 +11229,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
11097
11229
  };
11098
11230
  }
11099
11231
  });
11100
- const _sfc_main$7 = vue.defineComponent({
11232
+ const _sfc_main$9 = vue.defineComponent({
11101
11233
  name: "UiTabGroupMenu",
11102
11234
  props: {
11103
11235
  items: {
@@ -11128,7 +11260,7 @@ const _sfc_main$7 = vue.defineComponent({
11128
11260
  },
11129
11261
  setup(props, { emit }) {
11130
11262
  const resolvedMenuItemSize = vue.computed(() => {
11131
- return props.size === SIZE$2.SM ? SIZE$6.SM : SIZE$6.MD;
11263
+ return props.size === SIZE$2.SM ? SIZE$7.SM : SIZE$7.MD;
11132
11264
  });
11133
11265
  const onMenuItemKeydown = (id, event) => {
11134
11266
  switch (event.key) {
@@ -11147,7 +11279,7 @@ const _sfc_main$7 = vue.defineComponent({
11147
11279
  if (!props.items.length) {
11148
11280
  return null;
11149
11281
  }
11150
- return vue.h(_sfc_main$N, {
11282
+ return vue.h(_sfc_main$Q, {
11151
11283
  visible: props.menuExpanded,
11152
11284
  targetTriggers: {
11153
11285
  hide: ["click"],
@@ -11161,7 +11293,7 @@ const _sfc_main$7 = vue.defineComponent({
11161
11293
  default: () => vue.h("div", {
11162
11294
  class: "ui-v1-tab-group__menu",
11163
11295
  role: "menu"
11164
- }, props.items.map((item) => vue.h(_sfc_main$I, {
11296
+ }, props.items.map((item) => vue.h(_sfc_main$L, {
11165
11297
  key: `menu-${item.id}`,
11166
11298
  active: props.activeId === item.id,
11167
11299
  "aria-checked": props.activeId === item.id ? "true" : "false",
@@ -11364,7 +11496,7 @@ const resolveTabLayout = (options) => {
11364
11496
  };
11365
11497
  };
11366
11498
  let counter = 0;
11367
- const _sfc_main$6 = vue.defineComponent({
11499
+ const _sfc_main$8 = vue.defineComponent({
11368
11500
  name: "UiTabGroup",
11369
11501
  inheritAttrs: false,
11370
11502
  props: {
@@ -11573,9 +11705,9 @@ const _sfc_main$6 = vue.defineComponent({
11573
11705
  [`ui-v1-tab-group_${props.size}`]: true
11574
11706
  }]
11575
11707
  }, [
11576
- vue.h(_sfc_main$s, null, {
11708
+ vue.h(_sfc_main$v, null, {
11577
11709
  default: () => [
11578
- vue.h(_sfc_main$8, {
11710
+ vue.h(_sfc_main$a, {
11579
11711
  ref: headView,
11580
11712
  activeId: resolvedActiveId,
11581
11713
  appearance: props.appearance,
@@ -11596,7 +11728,7 @@ const _sfc_main$6 = vue.defineComponent({
11596
11728
  selectTab(id);
11597
11729
  }
11598
11730
  }),
11599
- vue.h(_sfc_main$7, {
11731
+ vue.h(_sfc_main$9, {
11600
11732
  activeId: resolvedActiveId,
11601
11733
  items: menuItems,
11602
11734
  menuExpanded: resolvedMenuExpanded.value,
@@ -11620,19 +11752,19 @@ const _sfc_main$6 = vue.defineComponent({
11620
11752
  };
11621
11753
  }
11622
11754
  });
11623
- const _hoisted_1$4 = {
11755
+ const _hoisted_1$5 = {
11624
11756
  xmlns: "http://www.w3.org/2000/svg",
11625
11757
  viewBox: "0 0 24 24"
11626
11758
  };
11627
- function render$1(_ctx, _cache) {
11628
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$4, [..._cache[0] || (_cache[0] = [
11759
+ function render$2(_ctx, _cache) {
11760
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$5, [..._cache[0] || (_cache[0] = [
11629
11761
  vue.createElementVNode("path", {
11630
11762
  fill: "currentColor",
11631
11763
  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"
11632
11764
  }, null, -1)
11633
11765
  ])]);
11634
11766
  }
11635
- const IconPinned = { render: render$1 };
11767
+ const IconPinned = { render: render$2 };
11636
11768
  var SIZE$1 = /* @__PURE__ */ ((SIZE2) => {
11637
11769
  SIZE2["LG"] = "lg";
11638
11770
  SIZE2["MD"] = "md";
@@ -11664,13 +11796,13 @@ const _i18n$1 = define({
11664
11796
  "ru-RU": messages_ru_RU$1
11665
11797
  }
11666
11798
  });
11667
- const _hoisted_1$3 = {
11799
+ const _hoisted_1$4 = {
11668
11800
  key: 0,
11669
11801
  class: "ui-v1-tag__icon"
11670
11802
  };
11671
- const _hoisted_2$1 = { class: "ui-v1-tag__content-inner" };
11672
- const _hoisted_3 = ["aria-label"];
11673
- const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
11803
+ const _hoisted_2$2 = { class: "ui-v1-tag__content-inner" };
11804
+ const _hoisted_3$1 = ["aria-label"];
11805
+ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
11674
11806
  __name: "UiTag",
11675
11807
  props: {
11676
11808
  /** Размер */
@@ -11732,7 +11864,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
11732
11864
  style: vue.normalizeStyle(__props.background ? { background: __props.background } : {}),
11733
11865
  onMouseoverOnce: onHover
11734
11866
  }, [
11735
- _ctx.$slots["icon"] || __props.pinned ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [
11867
+ _ctx.$slots["icon"] || __props.pinned ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
11736
11868
  vue.renderSlot(_ctx.$slots, "icon", {}, () => [
11737
11869
  vue.createVNode(vue.unref(IconPinned))
11738
11870
  ])
@@ -11743,7 +11875,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
11743
11875
  style: vue.normalizeStyle(textStyle.value),
11744
11876
  class: "ui-v1-tag__content"
11745
11877
  }, [
11746
- vue.createElementVNode("div", _hoisted_2$1, [
11878
+ vue.createElementVNode("div", _hoisted_2$2, [
11747
11879
  vue.renderSlot(_ctx.$slots, "default")
11748
11880
  ])
11749
11881
  ], 4),
@@ -11757,25 +11889,25 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
11757
11889
  vue.renderSlot(_ctx.$slots, "remove-icon", {}, () => [
11758
11890
  vue.createVNode(vue.unref(IconClear))
11759
11891
  ])
11760
- ], 8, _hoisted_3)) : vue.createCommentVNode("", true)
11892
+ ], 8, _hoisted_3$1)) : vue.createCommentVNode("", true)
11761
11893
  ], 38)
11762
11894
  ], 16);
11763
11895
  };
11764
11896
  }
11765
11897
  });
11766
- const _hoisted_1$2 = {
11898
+ const _hoisted_1$3 = {
11767
11899
  xmlns: "http://www.w3.org/2000/svg",
11768
11900
  viewBox: "0 0 24 24"
11769
11901
  };
11770
- function render(_ctx, _cache) {
11771
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$2, [..._cache[0] || (_cache[0] = [
11902
+ function render$1(_ctx, _cache) {
11903
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$3, [..._cache[0] || (_cache[0] = [
11772
11904
  vue.createElementVNode("path", {
11773
11905
  fill: "currentColor",
11774
11906
  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"
11775
11907
  }, null, -1)
11776
11908
  ])]);
11777
11909
  }
11778
- const IconTime = { render };
11910
+ const IconTime = { render: render$1 };
11779
11911
  const pad = (time2) => time2 < 10 ? `0${time2}` : String(time2);
11780
11912
  const milliseconds = (time2) => {
11781
11913
  const [hours, minutes] = parse(time2).split(":").map((value) => parseInt(value, 10));
@@ -11874,14 +12006,14 @@ const _i18n = define({
11874
12006
  "ru-RU": messages_ru_RU
11875
12007
  }
11876
12008
  });
11877
- const _hoisted_1$1 = ["id", "aria-activedescendant", "aria-controls", "aria-disabled", "aria-expanded", "aria-label", "aria-readonly"];
11878
- const _hoisted_2 = {
12009
+ const _hoisted_1$2 = ["id", "aria-activedescendant", "aria-controls", "aria-disabled", "aria-expanded", "aria-label", "aria-readonly"];
12010
+ const _hoisted_2$1 = {
11879
12011
  key: 0,
11880
12012
  "aria-disabled": "true",
11881
12013
  class: "ui-v1-time-picker__empty",
11882
12014
  role: "option"
11883
12015
  };
11884
- const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
12016
+ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
11885
12017
  ...{
11886
12018
  inheritAttrs: false
11887
12019
  },
@@ -12231,7 +12363,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
12231
12363
  },
12232
12364
  role: "combobox"
12233
12365
  }, _ctx.$attrs, { onMousedown: onRootMouseDown }), [
12234
- vue.createVNode(_sfc_main$J, vue.mergeProps({
12366
+ vue.createVNode(_sfc_main$M, vue.mergeProps({
12235
12367
  id: inputId.value,
12236
12368
  ref_key: "textbox",
12237
12369
  ref: textbox,
@@ -12258,7 +12390,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
12258
12390
  ]),
12259
12391
  _: 3
12260
12392
  }, 16, ["id", "value", "placeholder", "clearable", "disabled", "readonly"]),
12261
- vue.createVNode(_sfc_main$N, {
12393
+ vue.createVNode(_sfc_main$Q, {
12262
12394
  id: `${inputId.value}-listbox`,
12263
12395
  visible: expanded.value,
12264
12396
  target: rootTarget.value,
@@ -12273,14 +12405,14 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
12273
12405
  onAttached: onPopperAttached
12274
12406
  }, {
12275
12407
  default: vue.withCtx(() => [
12276
- vue.createVNode(_sfc_main$H, {
12408
+ vue.createVNode(_sfc_main$K, {
12277
12409
  ref_key: "scrollable",
12278
12410
  ref: scrollable,
12279
12411
  class: "ui-v1-time-picker__list"
12280
12412
  }, {
12281
12413
  default: vue.withCtx(() => [
12282
12414
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(variants.value, (time2, index) => {
12283
- return vue.openBlock(), vue.createBlock(_sfc_main$I, {
12415
+ return vue.openBlock(), vue.createBlock(_sfc_main$L, {
12284
12416
  id: optionId(index),
12285
12417
  key: `${time2}-${index}`,
12286
12418
  ref_for: true,
@@ -12302,17 +12434,148 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
12302
12434
  _: 2
12303
12435
  }, 1032, ["id", "active", "aria-selected", "data-time", "class", "onMouseenter", "onMousedown"]);
12304
12436
  }), 128)),
12305
- !variants.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, vue.toDisplayString(i18n.value.t("empty")), 1)) : vue.createCommentVNode("", true)
12437
+ !variants.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$1, vue.toDisplayString(i18n.value.t("empty")), 1)) : vue.createCommentVNode("", true)
12306
12438
  ]),
12307
12439
  _: 1
12308
12440
  }, 512)
12309
12441
  ]),
12310
12442
  _: 1
12311
12443
  }, 8, ["id", "visible", "target", "container", "aria-hidden", "disabled", "style"])
12312
- ], 16, _hoisted_1$1);
12444
+ ], 16, _hoisted_1$2);
12313
12445
  };
12314
12446
  }
12315
12447
  });
12448
+ var UiToggleButtonSize = /* @__PURE__ */ ((UiToggleButtonSize2) => {
12449
+ UiToggleButtonSize2["LG"] = "lg";
12450
+ UiToggleButtonSize2["MD"] = "md";
12451
+ UiToggleButtonSize2["SM"] = "sm";
12452
+ UiToggleButtonSize2["XS"] = "xs";
12453
+ return UiToggleButtonSize2;
12454
+ })(UiToggleButtonSize || {});
12455
+ const _sfc_main$5 = vue.defineComponent({
12456
+ name: "UiToggleButton",
12457
+ props: {
12458
+ id: {
12459
+ type: String,
12460
+ default: void 0
12461
+ },
12462
+ type: {
12463
+ type: String,
12464
+ default: "button"
12465
+ },
12466
+ pressed: {
12467
+ type: Boolean,
12468
+ default: false
12469
+ },
12470
+ disabled: {
12471
+ type: Boolean,
12472
+ default: false
12473
+ },
12474
+ focused: {
12475
+ type: Boolean,
12476
+ default: false
12477
+ },
12478
+ grouped: {
12479
+ type: Boolean,
12480
+ default: false
12481
+ },
12482
+ size: {
12483
+ type: String,
12484
+ default: UiToggleButtonSize.SM,
12485
+ validator: (size) => {
12486
+ return Object.values(UiToggleButtonSize).includes(size);
12487
+ }
12488
+ }
12489
+ },
12490
+ setup(props, { attrs, expose, slots }) {
12491
+ const root = useElementRef();
12492
+ expose({
12493
+ click: () => root.value?.click(),
12494
+ focus: () => root.value?.focus(),
12495
+ blur: () => root.value?.blur()
12496
+ });
12497
+ return () => {
12498
+ const content = normalize$3("default" in slots ? slots.default?.() ?? [] : []);
12499
+ return vue.h("button", {
12500
+ ref: root,
12501
+ ...attrs,
12502
+ id: props.id,
12503
+ type: props.type,
12504
+ disabled: props.disabled,
12505
+ class: [attrs.class, {
12506
+ "ui-v1-toggle-button": true,
12507
+ [`ui-v1-toggle-button_${props.size}`]: true,
12508
+ "ui-v1-toggle-button_pressed": props.pressed,
12509
+ "ui-v1-toggle-button_disabled": props.disabled,
12510
+ "ui-v1-toggle-button_focused": props.focused,
12511
+ "ui-v1-toggle-button_grouped": props.grouped
12512
+ }]
12513
+ }, vue.h("span", { class: "ui-v1-toggle-button__content" }, content.map(([node, isIcon]) => {
12514
+ const nodeProps = node.props ?? {};
12515
+ return vue.h("span", {
12516
+ class: {
12517
+ "ui-v1-toggle-button__icon": isIcon,
12518
+ "ui-v1-toggle-button__text": !isIcon
12519
+ },
12520
+ ..."aria-hidden" in nodeProps ? { "aria-hidden": nodeProps["aria-hidden"] } : {}
12521
+ }, node);
12522
+ })));
12523
+ };
12524
+ }
12525
+ });
12526
+ const _sfc_main$4 = vue.defineComponent({
12527
+ name: "UiToggleGroupRoot",
12528
+ props: {
12529
+ size: {
12530
+ type: String,
12531
+ default: UiToggleButtonSize.SM,
12532
+ validator: (size) => {
12533
+ return Object.values(UiToggleButtonSize).includes(size);
12534
+ }
12535
+ },
12536
+ rubber: {
12537
+ type: Boolean,
12538
+ default: false
12539
+ },
12540
+ disabled: {
12541
+ type: Boolean,
12542
+ default: false
12543
+ },
12544
+ ariaLabel: {
12545
+ type: String,
12546
+ default: void 0
12547
+ },
12548
+ ariaLabelledby: {
12549
+ type: String,
12550
+ default: void 0
12551
+ },
12552
+ ariaDescribedby: {
12553
+ type: String,
12554
+ default: void 0
12555
+ },
12556
+ ariaOrientation: {
12557
+ type: String,
12558
+ default: "horizontal"
12559
+ }
12560
+ },
12561
+ setup(props, { attrs, slots }) {
12562
+ return () => vue.h("span", {
12563
+ ...attrs,
12564
+ role: attrs.role ?? "toolbar",
12565
+ "aria-label": attrs["aria-label"] ?? props.ariaLabel,
12566
+ "aria-labelledby": attrs["aria-labelledby"] ?? props.ariaLabelledby,
12567
+ "aria-describedby": attrs["aria-describedby"] ?? props.ariaDescribedby,
12568
+ "aria-disabled": attrs["aria-disabled"] ?? `${props.disabled}`,
12569
+ "aria-orientation": attrs["aria-orientation"] ?? props.ariaOrientation,
12570
+ class: [attrs.class, {
12571
+ "ui-v1-toggle-group": true,
12572
+ [`ui-v1-toggle-group_${props.size}`]: true,
12573
+ "ui-v1-toggle-group_rubber": props.rubber,
12574
+ "ui-v1-toggle-group_disabled": props.disabled
12575
+ }]
12576
+ }, slots.default?.());
12577
+ }
12578
+ });
12316
12579
  var SIZE = /* @__PURE__ */ ((SIZE2) => {
12317
12580
  SIZE2["SM"] = "sm";
12318
12581
  SIZE2["MD"] = "md";
@@ -12387,12 +12650,12 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
12387
12650
  const toolbarSize = useToolbarSize();
12388
12651
  const size = vue.computed(() => {
12389
12652
  if (toolbarSize.value === SIZE.SM) {
12390
- return SIZE$9.XS;
12653
+ return SIZE$a.XS;
12391
12654
  }
12392
- return SIZE$9.SM;
12655
+ return SIZE$a.SM;
12393
12656
  });
12394
12657
  return (_ctx, _cache) => {
12395
- return vue.openBlock(), vue.createBlock(_sfc_main$W, vue.mergeProps({
12658
+ return vue.openBlock(), vue.createBlock(_sfc_main$Z, vue.mergeProps({
12396
12659
  ref_key: "root",
12397
12660
  ref: root,
12398
12661
  href: __props.href,
@@ -12439,8 +12702,8 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
12439
12702
  /** Тип ссылок */
12440
12703
  appearance: {
12441
12704
  type: String,
12442
- validator: (appearance) => Object.values(APPEARANCE$3).includes(appearance),
12443
- default: APPEARANCE$3.DEFAULT
12705
+ validator: (appearance) => Object.values(APPEARANCE$4).includes(appearance),
12706
+ default: APPEARANCE$4.DEFAULT
12444
12707
  },
12445
12708
  /** Инвертированный цвет ссылок для тёмного фона */
12446
12709
  light: {
@@ -12465,7 +12728,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
12465
12728
  },
12466
12729
  setup(__props) {
12467
12730
  return (_ctx, _cache) => {
12468
- return vue.openBlock(), vue.createBlock(_sfc_main$C, vue.mergeProps({
12731
+ return vue.openBlock(), vue.createBlock(_sfc_main$F, vue.mergeProps({
12469
12732
  href: __props.href,
12470
12733
  external: __props.external,
12471
12734
  appearance: __props.appearance,
@@ -12491,6 +12754,22 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
12491
12754
  };
12492
12755
  }
12493
12756
  });
12757
+ const _hoisted_1$1 = {
12758
+ xmlns: "http://www.w3.org/2000/svg",
12759
+ viewBox: "0 0 24 24"
12760
+ };
12761
+ function render(_ctx, _cache) {
12762
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$1, [..._cache[0] || (_cache[0] = [
12763
+ vue.createElementVNode("path", {
12764
+ fill: "currentColor",
12765
+ 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"
12766
+ }, null, -1)
12767
+ ])]);
12768
+ }
12769
+ const IconNavigate = { render };
12770
+ const YANDEX_MAP_PLUGIN = {
12771
+ LOCATOR: "locator"
12772
+ };
12494
12773
  const load = (document2, src) => new Promise((resolve, reject) => {
12495
12774
  const script = document2.createElement("script");
12496
12775
  script.async = true;
@@ -12510,6 +12789,83 @@ const load = (document2, src) => new Promise((resolve, reject) => {
12510
12789
  head.appendChild(script);
12511
12790
  });
12512
12791
  const _hoisted_1 = { class: "ui-v1-yandex-map" };
12792
+ const _hoisted_2 = {
12793
+ key: 1,
12794
+ class: "ui-v1-yandex-map__control-group ui-v1-yandex-map__control-group_left"
12795
+ };
12796
+ const _hoisted_3 = {
12797
+ key: 2,
12798
+ class: "ui-v1-yandex-map__control-group ui-v1-yandex-map__control-group_right"
12799
+ };
12800
+ const MAP_IFRAME_STYLE = `
12801
+ html, body, #map {
12802
+ width: 100%;
12803
+ height: 100%;
12804
+ margin: 0;
12805
+ }
12806
+
12807
+ .ui-v1-yandex-map-marker {
12808
+ position: relative;
12809
+ transform: translate(-10px, -76px);
12810
+ width: 0;
12811
+ height: 0;
12812
+ cursor: grab;
12813
+ user-select: none;
12814
+ }
12815
+
12816
+ .ui-v1-yandex-map-marker:active {
12817
+ cursor: grabbing;
12818
+ }
12819
+
12820
+ .ui-v1-yandex-map-marker__pin {
12821
+ position: absolute;
12822
+ left: 0;
12823
+ top: 0;
12824
+ width: 44px;
12825
+ height: 44px;
12826
+ border-radius: 50%;
12827
+ background: #ff5547;
12828
+ box-shadow: 0 12px 24px rgba(255, 85, 71, 0.28);
12829
+ }
12830
+
12831
+ .ui-v1-yandex-map-marker__pin::before {
12832
+ content: '';
12833
+ position: absolute;
12834
+ left: 16px;
12835
+ bottom: -13px;
12836
+ width: 12px;
12837
+ height: 16px;
12838
+ background: #ff5547;
12839
+ clip-path: polygon(50% 100%, 0 0, 100% 0);
12840
+ }
12841
+
12842
+ .ui-v1-yandex-map-marker__pin::after {
12843
+ content: '';
12844
+ position: absolute;
12845
+ left: 14px;
12846
+ bottom: -26px;
12847
+ width: 16px;
12848
+ height: 16px;
12849
+ border: 2px solid #ffffff;
12850
+ border-radius: 50%;
12851
+ background: #ff5547;
12852
+ box-sizing: border-box;
12853
+ }
12854
+
12855
+ .ui-v1-yandex-map-marker__hint {
12856
+ position: absolute;
12857
+ left: 56px;
12858
+ top: 4px;
12859
+ min-width: 152px;
12860
+ padding: 7px 12px;
12861
+ border-radius: 4px;
12862
+ background: rgba(255, 255, 255, 0.96);
12863
+ box-shadow: 0 8px 24px rgba(36, 48, 77, 0.16);
12864
+ color: #24304d;
12865
+ font: 400 14px/20px Arial, sans-serif;
12866
+ white-space: nowrap;
12867
+ }
12868
+ `;
12513
12869
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
12514
12870
  __name: "UiYandexMap",
12515
12871
  props: {
@@ -12520,6 +12876,10 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
12520
12876
  address: {
12521
12877
  type: String,
12522
12878
  default: ""
12879
+ },
12880
+ plugins: {
12881
+ type: Array,
12882
+ default: () => []
12523
12883
  }
12524
12884
  },
12525
12885
  emits: [
@@ -12527,10 +12887,23 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
12527
12887
  "update:address"
12528
12888
  ],
12529
12889
  setup(__props, { emit: __emit }) {
12890
+ const PLAIN_OBJECT_PROTOTYPES = [Object.prototype, null];
12530
12891
  const props = __props;
12531
12892
  const emit = __emit;
12532
12893
  const i18nBus = vue.inject(I18nInjectKey, null);
12894
+ const LOCATION = {
12895
+ center: [37.64, 55.76],
12896
+ zoom: 10
12897
+ };
12533
12898
  const iframe = vue.ref(null);
12899
+ const map = vue.shallowRef(null);
12900
+ const marker = vue.shallowRef(null);
12901
+ const mapLocation = vue.ref({
12902
+ center: [...LOCATION.center],
12903
+ zoom: LOCATION.zoom
12904
+ });
12905
+ const activeLoadToken = vue.ref(0);
12906
+ const locating = vue.ref(false);
12534
12907
  const getIFrameDocument = () => iframe.value?.contentDocument ?? null;
12535
12908
  const getIFrameWindow = () => iframe.value?.contentWindow ?? null;
12536
12909
  const getIFrameYMaps = () => {
@@ -12540,10 +12913,6 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
12540
12913
  }
12541
12914
  return null;
12542
12915
  };
12543
- const LOCATION = {
12544
- center: [37.64, 55.76],
12545
- zoom: 10
12546
- };
12547
12916
  const waitIFrameContentLoaded = (retry = 5) => {
12548
12917
  if (iframe.value?.contentDocument) {
12549
12918
  return Promise.resolve();
@@ -12552,7 +12921,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
12552
12921
  throw new Error("iframe contentDocument wasn't loaded");
12553
12922
  }
12554
12923
  return new Promise((resolve) => setTimeout(async () => {
12555
- await waitIFrameContentLoaded(retry--);
12924
+ await waitIFrameContentLoaded(retry - 1);
12556
12925
  resolve(0);
12557
12926
  }, 100));
12558
12927
  };
@@ -12565,6 +12934,138 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
12565
12934
  const apiUrl = vue.computed(() => `https://api-maps.yandex.ru/v3/?apikey=${props.apiKey}&lang=${apiLocale.value}`);
12566
12935
  const apiUrlVersion = vue.ref(0);
12567
12936
  const getGeocodeApiUrl = (geocode) => `https://geocode-maps.yandex.ru/1.x/?apikey=${props.apiKey}&geocode=${geocode}&lang=${apiLocale.value}&format=json`;
12937
+ const createLoadToken = () => {
12938
+ activeLoadToken.value++;
12939
+ return activeLoadToken.value;
12940
+ };
12941
+ const isCurrentLoadToken = (token) => activeLoadToken.value === token;
12942
+ const disposeMapRuntime = () => {
12943
+ map.value?.destroy();
12944
+ map.value = null;
12945
+ marker.value = null;
12946
+ mapLocation.value = {
12947
+ center: [...LOCATION.center],
12948
+ zoom: LOCATION.zoom
12949
+ };
12950
+ };
12951
+ const cancelMapRuntime = () => {
12952
+ activeLoadToken.value++;
12953
+ disposeMapRuntime();
12954
+ };
12955
+ const updateMapLocation = (location) => {
12956
+ const nextLocation = {
12957
+ center: location.center ? [...location.center] : mapLocation.value.center,
12958
+ zoom: typeof location.zoom === "number" ? location.zoom : mapLocation.value.zoom
12959
+ };
12960
+ mapLocation.value = nextLocation;
12961
+ map.value?.setLocation({
12962
+ ...nextLocation,
12963
+ duration: 200,
12964
+ easing: "ease-in-out"
12965
+ });
12966
+ };
12967
+ const zoomIn = () => {
12968
+ updateMapLocation({ zoom: mapLocation.value.zoom + 1 });
12969
+ };
12970
+ const zoomOut = () => {
12971
+ updateMapLocation({ zoom: mapLocation.value.zoom - 1 });
12972
+ };
12973
+ const getMarkerDetails = (coordinates) => ({
12974
+ longitude: `Longitude: ${coordinates[0].toFixed(2)}`,
12975
+ latitude: `Latitude: ${coordinates[1].toFixed(2)}`
12976
+ });
12977
+ const updateMarker = (coordinates) => {
12978
+ const details = getMarkerDetails(coordinates);
12979
+ marker.value?.update({
12980
+ coordinates,
12981
+ title: `${details.longitude}
12982
+ ${details.latitude}`
12983
+ });
12984
+ };
12985
+ const getCurrentCoordinates = () => new Promise((resolve, reject) => {
12986
+ if (!("geolocation" in navigator)) {
12987
+ reject(new Error("Geolocation is unavailable"));
12988
+ return;
12989
+ }
12990
+ navigator.geolocation.getCurrentPosition(
12991
+ ({ coords }) => resolve([coords.longitude, coords.latitude]),
12992
+ reject,
12993
+ {
12994
+ enableHighAccuracy: true,
12995
+ timeout: 1e4
12996
+ }
12997
+ );
12998
+ });
12999
+ const isPlainObject = (value) => {
13000
+ if (Object.prototype.toString.call(value) !== "[object Object]") {
13001
+ return false;
13002
+ }
13003
+ return PLAIN_OBJECT_PROTOTYPES.includes(Object.getPrototypeOf(value));
13004
+ };
13005
+ 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);
13006
+ const canUseBrowserGeolocation = vue.computed(() => "geolocation" in navigator && isSecureContext);
13007
+ const canUseLocatorFallback = vue.computed(() => locatorPlugin.value !== null);
13008
+ const canLocateCurrentPosition = vue.computed(() => canUseBrowserGeolocation.value || canUseLocatorFallback.value);
13009
+ const fetchLocatorFallbackCoordinates = async (reason, error = null) => {
13010
+ if (!locatorPlugin.value) {
13011
+ throw new Error("Locator plugin is not configured");
13012
+ }
13013
+ const response = await fetch(locatorPlugin.value.url, {
13014
+ method: "POST",
13015
+ headers: {
13016
+ "Content-Type": "application/json"
13017
+ },
13018
+ body: JSON.stringify({
13019
+ locale: apiLocale.value,
13020
+ reason,
13021
+ secureContext: isSecureContext,
13022
+ browserGeolocationAvailable: "geolocation" in navigator,
13023
+ error: error instanceof Error ? error.message : null
13024
+ })
13025
+ });
13026
+ if (!response.ok) {
13027
+ throw new Error(`Locator adapter request failed with status ${response.status}`);
13028
+ }
13029
+ const result = await response.json();
13030
+ if (!Array.isArray(result.coordinates) || result.coordinates.length !== 2) {
13031
+ throw new Error("Locator adapter returned invalid coordinates payload");
13032
+ }
13033
+ return [Number(result.coordinates[0]), Number(result.coordinates[1])];
13034
+ };
13035
+ const locateCurrentPosition = async () => {
13036
+ locating.value = true;
13037
+ try {
13038
+ const coordinates = canUseBrowserGeolocation.value ? await getCurrentCoordinates() : await fetchLocatorFallbackCoordinates("browser_geolocation_unavailable");
13039
+ updateMarker(coordinates);
13040
+ updateMapLocation({
13041
+ center: coordinates,
13042
+ zoom: Math.max(mapLocation.value.zoom, 15)
13043
+ });
13044
+ const address = await fetchAddressFromCoordinates(coordinates);
13045
+ emit("change", address);
13046
+ emit("update:address", address);
13047
+ } catch (error) {
13048
+ if (canUseLocatorFallback.value && canUseBrowserGeolocation.value) {
13049
+ try {
13050
+ const coordinates = await fetchLocatorFallbackCoordinates("browser_geolocation_failed", error);
13051
+ updateMarker(coordinates);
13052
+ updateMapLocation({
13053
+ center: coordinates,
13054
+ zoom: Math.max(mapLocation.value.zoom, 15)
13055
+ });
13056
+ const address = await fetchAddressFromCoordinates(coordinates);
13057
+ emit("change", address);
13058
+ emit("update:address", address);
13059
+ return;
13060
+ } catch (fallbackError) {
13061
+ console.error("Failed to get current location via locator fallback", fallbackError);
13062
+ }
13063
+ }
13064
+ console.error("Failed to get current location", error);
13065
+ } finally {
13066
+ locating.value = false;
13067
+ }
13068
+ };
12568
13069
  function onDragEndHandler(coordinates) {
12569
13070
  fetchAddressFromCoordinates(coordinates).then((address) => {
12570
13071
  emit("change", address);
@@ -12581,135 +13082,236 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
12581
13082
  const result = await response.json();
12582
13083
  return result.response.GeoObjectCollection.featureMember[0]?.GeoObject?.Point.pos ?? "";
12583
13084
  };
13085
+ const createMarkerRuntime = (_ymaps3, iframeDocument, coordinates, onDragMove, onDragEnd) => {
13086
+ const { YMapMarker } = _ymaps3;
13087
+ const markerElement = iframeDocument.createElement("div");
13088
+ markerElement.className = "ui-v1-yandex-map-marker";
13089
+ const pinElement = iframeDocument.createElement("div");
13090
+ pinElement.className = "ui-v1-yandex-map-marker__pin";
13091
+ const hintElement = iframeDocument.createElement("div");
13092
+ hintElement.className = "ui-v1-yandex-map-marker__hint";
13093
+ const longitudeElement = iframeDocument.createElement("div");
13094
+ const latitudeElement = iframeDocument.createElement("div");
13095
+ hintElement.append(longitudeElement, latitudeElement);
13096
+ markerElement.append(pinElement, hintElement);
13097
+ const markerRuntime = new YMapMarker({
13098
+ coordinates,
13099
+ draggable: true,
13100
+ mapFollowsOnDrag: true,
13101
+ zIndex: 2500,
13102
+ onDragMove,
13103
+ onDragEnd
13104
+ }, markerElement);
13105
+ const update = ({ coordinates: nextCoordinates }) => {
13106
+ const details = getMarkerDetails(nextCoordinates);
13107
+ longitudeElement.textContent = details.longitude;
13108
+ latitudeElement.textContent = details.latitude;
13109
+ markerRuntime.update({
13110
+ coordinates: nextCoordinates
13111
+ });
13112
+ };
13113
+ update({ coordinates });
13114
+ return {
13115
+ entity: markerRuntime,
13116
+ update
13117
+ };
13118
+ };
12584
13119
  const loadApi = async () => {
13120
+ ready.value = false;
13121
+ const loadToken = createLoadToken();
13122
+ disposeMapRuntime();
12585
13123
  await waitIFrameContentLoaded();
13124
+ if (!isCurrentLoadToken(loadToken)) {
13125
+ return;
13126
+ }
12586
13127
  const iframeDocument = getIFrameDocument();
12587
13128
  if (iframeDocument) {
12588
13129
  const style = iframeDocument.createElement("style");
12589
- style.innerHTML = "body { margin: 0; }";
13130
+ style.innerHTML = MAP_IFRAME_STYLE;
12590
13131
  iframeDocument.head.appendChild(style);
12591
13132
  await load(iframeDocument, apiUrl.value);
13133
+ if (!isCurrentLoadToken(loadToken)) return;
12592
13134
  await getIFrameYMaps()?.ready;
12593
- const el = iframeDocument.createElement("div");
12594
- el.setAttribute("id", "map");
12595
- iframeDocument.body.appendChild(el);
12596
- ready.value = true;
13135
+ if (!isCurrentLoadToken(loadToken)) return;
12597
13136
  const _ymaps3 = getIFrameYMaps();
12598
13137
  const {
12599
13138
  YMap,
12600
- YMapControls,
12601
13139
  YMapDefaultFeaturesLayer,
12602
13140
  YMapDefaultSchemeLayer
12603
13141
  } = _ymaps3;
12604
- const { YMapZoomControl, YMapGeolocationControl } = await _ymaps3.import("@yandex/ymaps3-controls@0.0.1");
12605
- const { YMapDefaultMarker } = await _ymaps3.import("@yandex/ymaps3-markers@0.0.1");
12606
13142
  if (props.address) {
12607
13143
  const pos = await fetchCoordinatesFromAddress(props.address);
13144
+ if (!isCurrentLoadToken(loadToken)) {
13145
+ return;
13146
+ }
12608
13147
  if (pos) {
12609
13148
  LOCATION.center = pos.split(" ").map((c) => Number(c));
12610
13149
  }
12611
13150
  }
12612
- const map = new YMap(el, { location: LOCATION });
12613
- map.addChild(new YMapDefaultSchemeLayer({}));
12614
- map.addChild(new YMapControls({ position: "right" }).addChild(new YMapZoomControl({})));
12615
- map.addChild(new YMapDefaultFeaturesLayer({ id: "features" }));
12616
- map.addChild(new YMapControls({ position: "left" }).addChild(new YMapGeolocationControl({})));
13151
+ const el = iframeDocument.createElement("div");
13152
+ el.setAttribute("id", "map");
13153
+ iframeDocument.body.appendChild(el);
12617
13154
  const onDragMoveHandler = (coordinates) => {
12618
- const longitude = `Longitude: ${coordinates[0].toFixed(2)}`;
12619
- const latitude = `Latitude: ${coordinates[1].toFixed(2)}`;
12620
- draggableMarker.update({ coordinates, title: `${longitude} <br> ${latitude}` });
13155
+ updateMarker(coordinates);
12621
13156
  };
12622
- const draggableMarker = new YMapDefaultMarker({
12623
- coordinates: LOCATION.center,
12624
- draggable: true,
12625
- title: `Longitude: ${LOCATION.center[0].toFixed(2)} <br>
12626
- Latitude ${LOCATION.center[1].toFixed(2)}`,
12627
- onDragMove: onDragMoveHandler,
12628
- onDragEnd: onDragEndHandler
12629
- });
12630
- map.addChild(draggableMarker);
13157
+ const markerRuntime = createMarkerRuntime(
13158
+ _ymaps3,
13159
+ iframeDocument,
13160
+ LOCATION.center,
13161
+ onDragMoveHandler,
13162
+ onDragEndHandler
13163
+ );
13164
+ marker.value = markerRuntime;
13165
+ mapLocation.value = {
13166
+ center: [...LOCATION.center],
13167
+ zoom: LOCATION.zoom
13168
+ };
13169
+ map.value = new YMap(el, { location: LOCATION }, [
13170
+ new YMapDefaultSchemeLayer({}),
13171
+ new YMapDefaultFeaturesLayer({ id: "features" }),
13172
+ markerRuntime.entity
13173
+ ]);
13174
+ if (!isCurrentLoadToken(loadToken)) {
13175
+ map.value?.destroy();
13176
+ map.value = null;
13177
+ return;
13178
+ }
13179
+ ready.value = true;
12631
13180
  }
12632
13181
  };
12633
13182
  vue.watch(apiUrl, async (newUrl, oldUrl) => {
12634
13183
  if (iframe.value && newUrl !== oldUrl) {
13184
+ cancelMapRuntime();
12635
13185
  ready.value = false;
12636
13186
  apiUrlVersion.value++;
12637
13187
  }
12638
13188
  });
13189
+ vue.onBeforeUnmount(() => {
13190
+ cancelMapRuntime();
13191
+ });
12639
13192
  return (_ctx, _cache) => {
12640
13193
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
12641
- !ready.value ? (vue.openBlock(), vue.createBlock(_sfc_main$B, { key: 0 })) : vue.createCommentVNode("", true),
12642
- vue.withDirectives((vue.openBlock(), vue.createElementBlock("iframe", {
13194
+ !ready.value ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
13195
+ key: 0,
13196
+ transition: null
13197
+ })) : vue.createCommentVNode("", true),
13198
+ (vue.openBlock(), vue.createElementBlock("iframe", {
12643
13199
  ref_key: "iframe",
12644
13200
  ref: iframe,
12645
13201
  key: apiUrlVersion.value,
13202
+ allow: "geolocation",
12646
13203
  onLoad: loadApi
12647
- }, null, 32)), [
12648
- [vue.vShow, ready.value]
12649
- ])
13204
+ }, null, 32)),
13205
+ ready.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
13206
+ vue.createVNode(_sfc_main$Z, {
13207
+ class: "ui-v1-yandex-map__control-button",
13208
+ appearance: "secondary",
13209
+ size: "sm",
13210
+ type: "button",
13211
+ "aria-label": "Определить текущее местоположение",
13212
+ disabled: locating.value || !canLocateCurrentPosition.value,
13213
+ onClick: locateCurrentPosition
13214
+ }, {
13215
+ default: vue.withCtx(() => [
13216
+ vue.createVNode(vue.unref(IconNavigate))
13217
+ ]),
13218
+ _: 1
13219
+ }, 8, ["disabled"])
13220
+ ])) : vue.createCommentVNode("", true),
13221
+ ready.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
13222
+ vue.createVNode(_sfc_main$Z, {
13223
+ class: "ui-v1-yandex-map__control-button",
13224
+ appearance: "secondary",
13225
+ size: "sm",
13226
+ type: "button",
13227
+ "aria-label": "Уменьшить масштаб",
13228
+ onClick: zoomOut
13229
+ }, {
13230
+ default: vue.withCtx(() => [
13231
+ vue.createVNode(vue.unref(IconRemove))
13232
+ ]),
13233
+ _: 1
13234
+ }),
13235
+ vue.createVNode(_sfc_main$Z, {
13236
+ class: "ui-v1-yandex-map__control-button",
13237
+ appearance: "secondary",
13238
+ size: "sm",
13239
+ type: "button",
13240
+ "aria-label": "Увеличить масштаб",
13241
+ onClick: zoomIn
13242
+ }, {
13243
+ default: vue.withCtx(() => [
13244
+ vue.createVNode(vue.unref(IconAdd))
13245
+ ]),
13246
+ _: 1
13247
+ })
13248
+ ])) : vue.createCommentVNode("", true)
12650
13249
  ]);
12651
13250
  };
12652
13251
  }
12653
13252
  });
12654
13253
  const components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12655
13254
  __proto__: null,
12656
- UiAddButton: _sfc_main$_,
12657
- UiAlert: _sfc_main$$,
12658
- UiAvatar: _sfc_main$Y,
12659
- UiAvatarList: _sfc_main$X,
12660
- UiButton: _sfc_main$W,
12661
- UiCalendar: _sfc_main$S,
12662
- UiCheckbox: _sfc_main$R,
12663
- UiCollapse: _sfc_main$Q,
12664
- UiCollapseBox: _sfc_main$P,
12665
- UiCollapseGroup: _sfc_main$O,
12666
- UiCopyButton: _sfc_main$L,
12667
- UiDate: _sfc_main$K,
12668
- UiDatePicker: _sfc_main$F,
12669
- UiError: _sfc_main$E,
12670
- UiImage: _sfc_main$Z,
12671
- UiInfobox: _sfc_main$D,
12672
- UiLink: _sfc_main$C,
12673
- UiLoader: _sfc_main$B,
12674
- UiMenuItem: _sfc_main$I,
13255
+ UiAddButton: _sfc_main$11,
13256
+ UiAlert: _sfc_main$12,
13257
+ UiAvatar: _sfc_main$$,
13258
+ UiAvatarList: _sfc_main$_,
13259
+ UiButton: _sfc_main$Z,
13260
+ UiCalendar: _sfc_main$V,
13261
+ UiCheckbox: _sfc_main$U,
13262
+ UiCollapse: _sfc_main$T,
13263
+ UiCollapseBox: _sfc_main$S,
13264
+ UiCollapseGroup: _sfc_main$R,
13265
+ UiCopyButton: _sfc_main$O,
13266
+ UiDate: _sfc_main$N,
13267
+ UiDatePicker: _sfc_main$I,
13268
+ UiError: _sfc_main$H,
13269
+ UiImage: _sfc_main$10,
13270
+ UiInfobox: _sfc_main$G,
13271
+ UiLink: _sfc_main$F,
13272
+ UiLoader: _sfc_main$E,
13273
+ UiMenuItem: _sfc_main$L,
12675
13274
  UiMenuItemGroup,
12676
- UiModalSidebar: _sfc_main$z,
12677
- UiModalWindow: _sfc_main$x,
12678
- UiModalWindowSurface: _sfc_main$y,
12679
- UiNumberStepper: _sfc_main$w,
12680
- UiPageHeader: _sfc_main$t,
12681
- UiPageHeaderLayout: _sfc_main$u,
12682
- UiPageHeaderTitle: _sfc_main$v,
12683
- UiPopper: _sfc_main$N,
12684
- UiPopperConnector: _sfc_main$s,
12685
- UiPopperTarget: _sfc_main$r,
12686
- UiRadio: _sfc_main$q,
12687
- UiRadioSwitchOptionShell: _sfc_main$p,
12688
- UiRadioSwitchRoot: _sfc_main$o,
12689
- UiScrollBox: _sfc_main$H,
12690
- UiSelectPopper: _sfc_main$m,
12691
- UiSelectTrigger: _sfc_main$l,
12692
- UiSlider: _sfc_main$n,
12693
- UiSwitch: _sfc_main$k,
12694
- UiTab: _sfc_main$a,
12695
- UiTabGroup: _sfc_main$6,
12696
- UiTableBodyCell: _sfc_main$j,
12697
- UiTableCol: _sfc_main$i,
12698
- UiTableFooterButton: _sfc_main$h,
12699
- UiTableFooterSection: _sfc_main$g,
12700
- UiTableHeadCell: _sfc_main$f,
12701
- UiTableRoot: _sfc_main$e,
12702
- UiTableRow: _sfc_main$d,
12703
- UiTableSection: _sfc_main$c,
12704
- UiTableSorter: _sfc_main$b,
12705
- UiTag: _sfc_main$5,
12706
- UiTextbox: _sfc_main$J,
12707
- UiTimePicker: _sfc_main$4,
13275
+ UiModalSidebar: _sfc_main$C,
13276
+ UiModalWindow: _sfc_main$A,
13277
+ UiModalWindowSurface: _sfc_main$B,
13278
+ UiNumberStepper: _sfc_main$z,
13279
+ UiPageHeader: _sfc_main$w,
13280
+ UiPageHeaderLayout: _sfc_main$x,
13281
+ UiPageHeaderTitle: _sfc_main$y,
13282
+ UiPopper: _sfc_main$Q,
13283
+ UiPopperConnector: _sfc_main$v,
13284
+ UiPopperTarget: _sfc_main$u,
13285
+ UiRadio: _sfc_main$t,
13286
+ UiRadioSwitchOptionShell: _sfc_main$s,
13287
+ UiRadioSwitchRoot: _sfc_main$r,
13288
+ UiScrollBox: _sfc_main$K,
13289
+ UiSelectPopper: _sfc_main$o,
13290
+ UiSelectTrigger: _sfc_main$n,
13291
+ UiSkeleton: _sfc_main$q,
13292
+ UiSlider: _sfc_main$p,
13293
+ UiSwitch: _sfc_main$m,
13294
+ UiTab: _sfc_main$c,
13295
+ UiTabGroup: _sfc_main$8,
13296
+ UiTableBodyCell: _sfc_main$l,
13297
+ UiTableCol: _sfc_main$k,
13298
+ UiTableFooterButton: _sfc_main$j,
13299
+ UiTableFooterSection: _sfc_main$i,
13300
+ UiTableHeadCell: _sfc_main$h,
13301
+ UiTableRoot: _sfc_main$g,
13302
+ UiTableRow: _sfc_main$f,
13303
+ UiTableSection: _sfc_main$e,
13304
+ UiTableSorter: _sfc_main$d,
13305
+ UiTag: _sfc_main$7,
13306
+ UiTextbox: _sfc_main$M,
13307
+ UiTimePicker: _sfc_main$6,
13308
+ UiToggleButton: _sfc_main$5,
13309
+ UiToggleGroupRoot: _sfc_main$4,
12708
13310
  UiToolbar: _sfc_main$3,
12709
13311
  UiToolbarButton: _sfc_main$2,
12710
13312
  UiToolbarLink: _sfc_main$1,
12711
- UiTooltip: _sfc_main$M,
12712
- UiTransition: _sfc_main$10,
13313
+ UiTooltip: _sfc_main$P,
13314
+ UiTransition: _sfc_main$13,
12713
13315
  UiYandexMap: _sfc_main
12714
13316
  }, Symbol.toStringTag, { value: "Module" }));
12715
13317
  const createProvider = () => host.createProvider(components);
@@ -12719,63 +13321,73 @@ exports.DIRECTION = DIRECTION;
12719
13321
  exports.I18nPlugin = plugin$1;
12720
13322
  exports.ImageWorkersKey = ImageWorkersKey;
12721
13323
  exports.ModalPlugin = plugin;
12722
- exports.UiAddButton = _sfc_main$_;
12723
- exports.UiAlert = _sfc_main$$;
12724
- exports.UiAvatar = _sfc_main$Y;
12725
- exports.UiAvatarList = _sfc_main$X;
12726
- exports.UiButton = _sfc_main$W;
12727
- exports.UiCalendar = _sfc_main$S;
12728
- exports.UiCheckbox = _sfc_main$R;
12729
- exports.UiCollapse = _sfc_main$Q;
12730
- exports.UiCollapseBox = _sfc_main$P;
12731
- exports.UiCollapseGroup = _sfc_main$O;
12732
- exports.UiCopyButton = _sfc_main$L;
12733
- exports.UiDate = _sfc_main$K;
12734
- exports.UiDatePicker = _sfc_main$F;
12735
- exports.UiError = _sfc_main$E;
12736
- exports.UiImage = _sfc_main$Z;
12737
- exports.UiInfobox = _sfc_main$D;
12738
- exports.UiLink = _sfc_main$C;
12739
- exports.UiLoader = _sfc_main$B;
12740
- exports.UiMenuItem = _sfc_main$I;
13324
+ exports.RADIO_SWITCH_APPEARANCE = APPEARANCE$2;
13325
+ exports.RADIO_SWITCH_SIZE = SIZE$4;
13326
+ exports.SKELETON_ANIMATION = ANIMATION;
13327
+ exports.SKELETON_APPEARANCE = APPEARANCE$1;
13328
+ exports.SKELETON_SIZE = SIZE$3;
13329
+ exports.TAB_APPEARANCE = APPEARANCE;
13330
+ exports.TAB_SIZE = SIZE$2;
13331
+ exports.UiAddButton = _sfc_main$11;
13332
+ exports.UiAlert = _sfc_main$12;
13333
+ exports.UiAvatar = _sfc_main$$;
13334
+ exports.UiAvatarList = _sfc_main$_;
13335
+ exports.UiButton = _sfc_main$Z;
13336
+ exports.UiCalendar = _sfc_main$V;
13337
+ exports.UiCheckbox = _sfc_main$U;
13338
+ exports.UiCollapse = _sfc_main$T;
13339
+ exports.UiCollapseBox = _sfc_main$S;
13340
+ exports.UiCollapseGroup = _sfc_main$R;
13341
+ exports.UiCopyButton = _sfc_main$O;
13342
+ exports.UiDate = _sfc_main$N;
13343
+ exports.UiDatePicker = _sfc_main$I;
13344
+ exports.UiError = _sfc_main$H;
13345
+ exports.UiImage = _sfc_main$10;
13346
+ exports.UiInfobox = _sfc_main$G;
13347
+ exports.UiLink = _sfc_main$F;
13348
+ exports.UiLoader = _sfc_main$E;
13349
+ exports.UiMenuItem = _sfc_main$L;
12741
13350
  exports.UiMenuItemGroup = UiMenuItemGroup;
12742
- exports.UiModalSidebar = _sfc_main$z;
12743
- exports.UiModalWindow = _sfc_main$x;
12744
- exports.UiModalWindowSurface = _sfc_main$y;
12745
- exports.UiNumberStepper = _sfc_main$w;
12746
- exports.UiPageHeader = _sfc_main$t;
12747
- exports.UiPageHeaderLayout = _sfc_main$u;
12748
- exports.UiPageHeaderTitle = _sfc_main$v;
12749
- exports.UiPopper = _sfc_main$N;
12750
- exports.UiPopperConnector = _sfc_main$s;
12751
- exports.UiPopperTarget = _sfc_main$r;
12752
- exports.UiRadio = _sfc_main$q;
12753
- exports.UiRadioSwitchOptionShell = _sfc_main$p;
12754
- exports.UiRadioSwitchRoot = _sfc_main$o;
12755
- exports.UiScrollBox = _sfc_main$H;
12756
- exports.UiSelectPopper = _sfc_main$m;
12757
- exports.UiSelectTrigger = _sfc_main$l;
12758
- exports.UiSlider = _sfc_main$n;
12759
- exports.UiSwitch = _sfc_main$k;
12760
- exports.UiTab = _sfc_main$a;
12761
- exports.UiTabGroup = _sfc_main$6;
12762
- exports.UiTableBodyCell = _sfc_main$j;
12763
- exports.UiTableCol = _sfc_main$i;
12764
- exports.UiTableFooterButton = _sfc_main$h;
12765
- exports.UiTableFooterSection = _sfc_main$g;
12766
- exports.UiTableHeadCell = _sfc_main$f;
12767
- exports.UiTableRoot = _sfc_main$e;
12768
- exports.UiTableRow = _sfc_main$d;
12769
- exports.UiTableSection = _sfc_main$c;
12770
- exports.UiTableSorter = _sfc_main$b;
12771
- exports.UiTag = _sfc_main$5;
12772
- exports.UiTextbox = _sfc_main$J;
12773
- exports.UiTimePicker = _sfc_main$4;
13351
+ exports.UiModalSidebar = _sfc_main$C;
13352
+ exports.UiModalWindow = _sfc_main$A;
13353
+ exports.UiModalWindowSurface = _sfc_main$B;
13354
+ exports.UiNumberStepper = _sfc_main$z;
13355
+ exports.UiPageHeader = _sfc_main$w;
13356
+ exports.UiPageHeaderLayout = _sfc_main$x;
13357
+ exports.UiPageHeaderTitle = _sfc_main$y;
13358
+ exports.UiPopper = _sfc_main$Q;
13359
+ exports.UiPopperConnector = _sfc_main$v;
13360
+ exports.UiPopperTarget = _sfc_main$u;
13361
+ exports.UiRadio = _sfc_main$t;
13362
+ exports.UiRadioSwitchOptionShell = _sfc_main$s;
13363
+ exports.UiRadioSwitchRoot = _sfc_main$r;
13364
+ exports.UiScrollBox = _sfc_main$K;
13365
+ exports.UiSelectPopper = _sfc_main$o;
13366
+ exports.UiSelectTrigger = _sfc_main$n;
13367
+ exports.UiSkeleton = _sfc_main$q;
13368
+ exports.UiSlider = _sfc_main$p;
13369
+ exports.UiSwitch = _sfc_main$m;
13370
+ exports.UiTab = _sfc_main$c;
13371
+ exports.UiTabGroup = _sfc_main$8;
13372
+ exports.UiTableBodyCell = _sfc_main$l;
13373
+ exports.UiTableCol = _sfc_main$k;
13374
+ exports.UiTableFooterButton = _sfc_main$j;
13375
+ exports.UiTableFooterSection = _sfc_main$i;
13376
+ exports.UiTableHeadCell = _sfc_main$h;
13377
+ exports.UiTableRoot = _sfc_main$g;
13378
+ exports.UiTableRow = _sfc_main$f;
13379
+ exports.UiTableSection = _sfc_main$e;
13380
+ exports.UiTableSorter = _sfc_main$d;
13381
+ exports.UiTag = _sfc_main$7;
13382
+ exports.UiTextbox = _sfc_main$M;
13383
+ exports.UiTimePicker = _sfc_main$6;
13384
+ exports.UiToggleButton = _sfc_main$5;
13385
+ exports.UiToggleGroupRoot = _sfc_main$4;
12774
13386
  exports.UiToolbar = _sfc_main$3;
12775
13387
  exports.UiToolbarButton = _sfc_main$2;
12776
13388
  exports.UiToolbarLink = _sfc_main$1;
12777
- exports.UiTooltip = _sfc_main$M;
12778
- exports.UiTransition = _sfc_main$10;
13389
+ exports.UiTooltip = _sfc_main$P;
13390
+ exports.UiTransition = _sfc_main$13;
12779
13391
  exports.UiYandexMap = _sfc_main;
12780
13392
  exports.VALIGN = VALIGN;
12781
13393
  exports.VueI18n = VueI18n;
@@ -12783,4 +13395,5 @@ exports.asRowAttrs = asRowAttrs;
12783
13395
  exports.asRowClass = asRowClass;
12784
13396
  exports.byRowKey = byRowKey;
12785
13397
  exports.createProvider = createProvider;
13398
+ exports.guessSkeletonDimensionStyleValue = guessDimensionStyleValue;
12786
13399
  exports.provider = provider;