urfu-ui-kit-react 2.1.7-next.3 → 2.1.7-next.5

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 (165) hide show
  1. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  2. package/dist/components/Accordion/Accordion.js +16 -15
  3. package/dist/components/BreadCrumbs/BreadCrumbs.d.ts.map +1 -1
  4. package/dist/components/BreadCrumbs/BreadCrumbs.js +23 -22
  5. package/dist/components/Button/Button.d.ts.map +1 -1
  6. package/dist/components/Button/Button.js +51 -50
  7. package/dist/components/Button/ButtonRefreshIcon.d.ts.map +1 -1
  8. package/dist/components/Button/ButtonRefreshIcon.js +9 -8
  9. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  10. package/dist/components/Calendar/Calendar.js +237 -216
  11. package/dist/components/Calendar/Calendar.types.d.ts +19 -0
  12. package/dist/components/Calendar/Calendar.types.d.ts.map +1 -1
  13. package/dist/components/Calendar/CalendarSelect.d.ts.map +1 -1
  14. package/dist/components/Calendar/CalendarSelect.js +41 -40
  15. package/dist/components/Card/Card.d.ts.map +1 -1
  16. package/dist/components/Card/Card.js +59 -58
  17. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  18. package/dist/components/Checkbox/Checkbox.js +20 -19
  19. package/dist/components/ColumnSettings/ColumnSettings.d.ts.map +1 -1
  20. package/dist/components/ColumnSettings/ColumnSettings.js +112 -111
  21. package/dist/components/ConfirmModal/ConfirmModal.d.ts.map +1 -1
  22. package/dist/components/ConfirmModal/ConfirmModal.js +30 -29
  23. package/dist/components/Drawer/Drawer.js +57 -57
  24. package/dist/components/ErrorScreen/ErrorScreen.d.ts.map +1 -1
  25. package/dist/components/ErrorScreen/ErrorScreen.js +151 -150
  26. package/dist/components/ErrorScreen/ErrorScreenIllustration.d.ts.map +1 -1
  27. package/dist/components/ErrorScreen/ErrorScreenIllustration.js +35 -34
  28. package/dist/components/FormField/FormField.d.ts.map +1 -1
  29. package/dist/components/FormField/FormField.js +30 -29
  30. package/dist/components/Icon/Icon.d.ts.map +1 -1
  31. package/dist/components/Icon/Icon.js +17 -16
  32. package/dist/components/InfiniteScroll/InfiniteScroll.d.ts.map +1 -1
  33. package/dist/components/InfiniteScroll/InfiniteScroll.js +23 -22
  34. package/dist/components/InputExpandTextarea/InputExpandTextarea.d.ts.map +1 -1
  35. package/dist/components/InputExpandTextarea/InputExpandTextarea.js +88 -87
  36. package/dist/components/InputFile/InputFile.d.ts.map +1 -1
  37. package/dist/components/InputFile/InputFile.js +99 -98
  38. package/dist/components/InputNumber/InputNumber.d.ts.map +1 -1
  39. package/dist/components/InputNumber/InputNumber.js +112 -111
  40. package/dist/components/InputText/InputAffix.d.ts.map +1 -1
  41. package/dist/components/InputText/InputAffix.js +69 -68
  42. package/dist/components/InputText/InputText.d.ts.map +1 -1
  43. package/dist/components/InputText/InputText.js +108 -107
  44. package/dist/components/InputTime/InputTime.d.ts.map +1 -1
  45. package/dist/components/InputTime/InputTime.js +202 -201
  46. package/dist/components/InputTime/InputTimeDropdown.d.ts.map +1 -1
  47. package/dist/components/InputTime/InputTimeDropdown.js +21 -20
  48. package/dist/components/Menu/Menu.d.ts.map +1 -1
  49. package/dist/components/Menu/Menu.js +58 -57
  50. package/dist/components/Message/Message.d.ts.map +1 -1
  51. package/dist/components/Message/Message.js +19 -18
  52. package/dist/components/Modal/Modal.js +66 -66
  53. package/dist/components/Modal/useModalTitleClearance.d.ts.map +1 -1
  54. package/dist/components/Modal/useModalTitleClearance.js +34 -33
  55. package/dist/components/Multiselect/Multiselect.js +222 -222
  56. package/dist/components/Notification/Notification.js +90 -90
  57. package/dist/components/OfflineBanner/OfflineBanner.d.ts.map +1 -1
  58. package/dist/components/OfflineBanner/OfflineBanner.js +40 -37
  59. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  60. package/dist/components/Pagination/Pagination.js +59 -58
  61. package/dist/components/Preloader/Preloader.d.ts.map +1 -1
  62. package/dist/components/Preloader/Preloader.js +28 -27
  63. package/dist/components/Radio/Radio.d.ts.map +1 -1
  64. package/dist/components/Radio/Radio.js +21 -20
  65. package/dist/components/Search/Search.d.ts.map +1 -1
  66. package/dist/components/Search/Search.js +33 -32
  67. package/dist/components/SearchSelect/SearchSelect.d.ts.map +1 -1
  68. package/dist/components/SearchSelect/SearchSelect.js +176 -166
  69. package/dist/components/SearchSelect/SearchSelectOption.d.ts.map +1 -1
  70. package/dist/components/SearchSelect/SearchSelectOption.js +21 -20
  71. package/dist/components/Select/MobileOptionSheet.d.ts.map +1 -1
  72. package/dist/components/Select/MobileOptionSheet.js +65 -64
  73. package/dist/components/Select/Select.js +184 -184
  74. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  75. package/dist/components/Skeleton/Skeleton.js +26 -25
  76. package/dist/components/Status/Status.d.ts.map +1 -1
  77. package/dist/components/Status/Status.js +36 -35
  78. package/dist/components/StickyActionBar/StickyActionBar.d.ts.map +1 -1
  79. package/dist/components/StickyActionBar/StickyActionBar.js +36 -35
  80. package/dist/components/Switch/Switch.d.ts.map +1 -1
  81. package/dist/components/Switch/Switch.js +19 -18
  82. package/dist/components/Table/Filter/DefaultInput.d.ts.map +1 -1
  83. package/dist/components/Table/Filter/DefaultInput.js +12 -11
  84. package/dist/components/Table/Filter/Filter.d.ts.map +1 -1
  85. package/dist/components/Table/Filter/Filter.js +99 -98
  86. package/dist/components/Table/Filter/FilterBooleanBox.d.ts.map +1 -1
  87. package/dist/components/Table/Filter/FilterBooleanBox.js +7 -6
  88. package/dist/components/Table/Filter/FilterBoxShell.js +48 -48
  89. package/dist/components/Table/Filter/FilterDateBox.d.ts.map +1 -1
  90. package/dist/components/Table/Filter/FilterDateBox.js +65 -64
  91. package/dist/components/Table/Filter/FilterSortIndicator.d.ts.map +1 -1
  92. package/dist/components/Table/Filter/FilterSortIndicator.js +8 -7
  93. package/dist/components/Table/Filter/SelectFilter.js +53 -53
  94. package/dist/components/Table/Filter/TableFilterOptions.d.ts.map +1 -1
  95. package/dist/components/Table/Filter/TableFilterOptions.js +141 -140
  96. package/dist/components/Table/Filter/TableFilterSortButton.d.ts.map +1 -1
  97. package/dist/components/Table/Filter/TableFilterSortButton.js +10 -9
  98. package/dist/components/Table/Filter/useVirtualOptionWindow.d.ts.map +1 -1
  99. package/dist/components/Table/Filter/useVirtualOptionWindow.js +9 -8
  100. package/dist/components/Table/Skeleton/createSkeletonColumns.d.ts.map +1 -1
  101. package/dist/components/Table/Skeleton/createSkeletonColumns.js +9 -8
  102. package/dist/components/Table/Table.d.ts.map +1 -1
  103. package/dist/components/Table/Table.helpers.d.ts.map +1 -1
  104. package/dist/components/Table/Table.helpers.js +31 -30
  105. package/dist/components/Table/Table.js +253 -252
  106. package/dist/components/Table/TableHead.d.ts.map +1 -1
  107. package/dist/components/Table/TableHead.js +92 -91
  108. package/dist/components/Table/TableMobileCard.d.ts.map +1 -1
  109. package/dist/components/Table/TableMobileCard.js +121 -120
  110. package/dist/components/Table/TableMobileFilters.d.ts.map +1 -1
  111. package/dist/components/Table/TableMobileFilters.js +28 -27
  112. package/dist/components/Table/TableMobileView.d.ts.map +1 -1
  113. package/dist/components/Table/TableMobileView.js +178 -177
  114. package/dist/components/Table/TableRow.d.ts.map +1 -1
  115. package/dist/components/Table/TableRow.js +59 -58
  116. package/dist/components/Table/useTableColumnPinning.d.ts +2 -917
  117. package/dist/components/Table/useTableColumnPinning.d.ts.map +1 -1
  118. package/dist/components/Table/useTableColumnPinning.js +21 -20
  119. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  120. package/dist/components/Tabs/Tabs.js +101 -99
  121. package/dist/components/Tabs/distributeTabs.d.ts +7 -3
  122. package/dist/components/Tabs/distributeTabs.d.ts.map +1 -1
  123. package/dist/components/Tabs/useTabsOverflow.d.ts +4 -0
  124. package/dist/components/Tabs/useTabsOverflow.d.ts.map +1 -1
  125. package/dist/components/Tabs/useTabsOverflow.js +40 -41
  126. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  127. package/dist/components/Textarea/Textarea.js +70 -69
  128. package/dist/components/Tooltip/Tooltip.js +106 -106
  129. package/dist/components/TreeView/TreeView.js +183 -183
  130. package/dist/components/VirtualList/VirtualList.d.ts.map +1 -1
  131. package/dist/components/VirtualList/VirtualList.js +42 -41
  132. package/dist/dev/index.js +2 -2
  133. package/dist/hooks/useAutoId.d.ts.map +1 -1
  134. package/dist/hooks/useAutoId.js +7 -6
  135. package/dist/hooks/useSelectEngine.d.ts.map +1 -1
  136. package/dist/hooks/useSelectEngine.js +31 -30
  137. package/dist/index.d.ts +4 -1
  138. package/dist/index.d.ts.map +1 -1
  139. package/dist/responsive/uiKitResponsive.d.ts +6 -0
  140. package/dist/responsive/uiKitResponsive.d.ts.map +1 -1
  141. package/dist/responsive/uiKitResponsive.js +27 -26
  142. package/dist/shared/kitCopy.js +1 -1
  143. package/dist/shared/optionStateColors.d.ts +3 -2
  144. package/dist/shared/optionStateColors.d.ts.map +1 -1
  145. package/dist/shared/optionStateColors.js +9 -4
  146. package/dist/shared/popupTransition.d.ts.map +1 -1
  147. package/dist/shared/popupTransition.js +7 -6
  148. package/dist/shared/sheetTitle.d.ts +2 -1
  149. package/dist/shared/sheetTitle.d.ts.map +1 -1
  150. package/dist/shared/size.d.ts.map +1 -1
  151. package/dist/shared/size.js +3 -2
  152. package/dist/shared/uiKitDefaults.d.ts +21 -0
  153. package/dist/shared/uiKitDefaults.d.ts.map +1 -1
  154. package/dist/shared/uiKitDefaults.js +32 -18
  155. package/dist/style-no-fonts.css +1 -1
  156. package/dist/style.css +1 -1
  157. package/dist/style.layer.css +2 -2
  158. package/dist/style.shell.css +2 -2
  159. package/dist/style.shell.lk.css +53 -0
  160. package/dist/urfu-ui-kit-react.js +29 -27
  161. package/dist/vanilla/core/dateLimits.js +21 -0
  162. package/dist/vanilla/core/describeError.js +1 -1
  163. package/dist/vanilla/core/distributeTabs.js +36 -23
  164. package/dist/vanilla/core/sheetTitle.js +7 -7
  165. package/package.json +3 -1
@@ -1,107 +1,108 @@
1
- import { jsxs as d, jsx as l } from "react/jsx-runtime";
1
+ import { jsxs as m, jsx as o } from "react/jsx-runtime";
2
2
  /* empty css */
3
- import { forwardRef as F } from "react";
4
- import { useAutoId$u as G } from "../../hooks/useAutoId.js";
5
- import { getFieldAccessibility$u as k } from "../../shared/fieldAccessibility.js";
6
- import { sizeClassName$u as q } from "../../shared/size.js";
7
- import { resolveValidation$u as D } from "../../vanilla/core/validation.js";
8
- const H = F(({
9
- "aria-label": u,
10
- "aria-labelledby": p,
11
- "aria-describedby": x,
12
- title: r = "",
13
- placeholder: m = "",
14
- defaultValue: b,
15
- value: f,
16
- id: h,
17
- name: v = "",
18
- onChange: y,
19
- onBlur: g,
20
- required: o = !1,
21
- disabled: $ = !1,
22
- lineUp: i = !1,
23
- rowGap: w = 4,
24
- columnGap: N = 20,
25
- styleInputContainer: T,
26
- styleTitle: j,
27
- styleInput: z,
28
- className: E = "",
29
- size: A,
30
- validationText: B = "Заполните поле",
31
- validationOn: O
32
- }, S) => {
33
- const a = G(h, "u-textarea"), s = q(A), e = D({ validationOn: O, validationText: B }), c = e.showText && !!e.text, C = k(a, r, o, { ...e, showText: c }, {
34
- "aria-label": u,
35
- "aria-labelledby": p,
36
- "aria-describedby": x
37
- }), n = (t) => typeof t == "number" ? `calc(${t} * var(--u-preset-unit, 1px))` : String(t);
38
- return /* @__PURE__ */ d(
3
+ import { forwardRef as G } from "react";
4
+ import { useAutoId$u as q } from "../../hooks/useAutoId.js";
5
+ import { getFieldAccessibility$u as D } from "../../shared/fieldAccessibility.js";
6
+ import { sizeClassName$u as H } from "../../shared/size.js";
7
+ import { getUiKitPrefix$u as e, kitCls$u as p } from "../../shared/uiKitDefaults.js";
8
+ import { resolveValidation$u as I } from "../../vanilla/core/validation.js";
9
+ const K = G(({
10
+ "aria-label": x,
11
+ "aria-labelledby": u,
12
+ "aria-describedby": f,
13
+ title: i = "",
14
+ placeholder: b = "",
15
+ defaultValue: $,
16
+ value: h,
17
+ id: v,
18
+ name: y = "",
19
+ onChange: g,
20
+ onBlur: w,
21
+ required: s = !1,
22
+ disabled: N = !1,
23
+ lineUp: t = !1,
24
+ rowGap: T = 4,
25
+ columnGap: j = 20,
26
+ styleInputContainer: z,
27
+ styleTitle: E,
28
+ styleInput: A,
29
+ className: B = "",
30
+ size: C,
31
+ validationText: O = "Заполните поле",
32
+ validationOn: S
33
+ }, k) => {
34
+ const r = q(v, p("textarea")), c = H(C), a = I({ validationOn: S, validationText: O }), n = a.showText && !!a.text, F = D(r, i, s, { ...a, showText: n }, {
35
+ "aria-label": x,
36
+ "aria-labelledby": u,
37
+ "aria-describedby": f
38
+ }), d = (l) => typeof l == "number" ? `calc(${l} * var(--${e()}-preset-unit, 1px))` : String(l);
39
+ return /* @__PURE__ */ m(
39
40
  "div",
40
41
  {
41
- className: `u-react-input-container${s ? ` ${s}` : ""} ${E}`,
42
+ className: `${e()}-react-input-container${c ? ` ${c}` : ""} ${B}`,
42
43
  children: [
43
- /* @__PURE__ */ d(
44
+ /* @__PURE__ */ m(
44
45
  "div",
45
46
  {
46
47
  style: Object.assign(
47
48
  {
48
49
  display: "flex",
49
- flexDirection: i ? "row" : "column",
50
- rowGap: i ? null : n(w),
51
- columnGap: i ? n(N) : null
50
+ flexDirection: t ? "row" : "column",
51
+ rowGap: t ? null : d(T),
52
+ columnGap: t ? d(j) : null
52
53
  },
53
- T
54
+ z
54
55
  ),
55
56
  children: [
56
- r && /* @__PURE__ */ l(
57
+ i && /* @__PURE__ */ o(
57
58
  "div",
58
59
  {
59
- id: `${a}-label`,
60
- className: `${o ? "u-required" : ""} u-react-input-title`,
60
+ id: `${r}-label`,
61
+ className: `${s ? p("required") : ""} ${e()}-react-input-title`,
61
62
  style: Object.assign(
62
63
  {
63
- color: "var(--u-field-title-color, #545454)",
64
- fontSize: "var(--u-field-label-size-main, calc(14 * var(--u-unit, 1px)))"
64
+ color: `var(--${e()}-field-title-color, #545454)`,
65
+ fontSize: `var(--${e()}-field-label-size-main, calc(14 * var(--u-unit, 1px)))`
65
66
  },
66
- j
67
+ E
67
68
  ),
68
- children: r
69
+ children: i
69
70
  }
70
71
  ),
71
- /* @__PURE__ */ l(
72
+ /* @__PURE__ */ o(
72
73
  "textarea",
73
74
  {
74
- ...C,
75
- ref: S,
76
- className: `u-textarea${e.hasError ? " u-textarea-required" : ""}`,
77
- id: a,
78
- name: v,
79
- placeholder: m,
80
- value: f,
81
- defaultValue: b,
82
- disabled: $,
83
- onChange: y,
84
- onBlur: g,
75
+ ...F,
76
+ ref: k,
77
+ className: `${e()}-textarea${a.hasError ? ` ${e()}-textarea-required` : ""}`,
78
+ id: r,
79
+ name: y,
80
+ placeholder: b,
81
+ value: h,
82
+ defaultValue: $,
83
+ disabled: N,
84
+ onChange: g,
85
+ onBlur: w,
85
86
  style: Object.assign(
86
87
  {
87
- minHeight: "max(var(--u-textarea-min-height, 48px), calc(20 * var(--u-unit, 1px) + 2px))",
88
+ minHeight: `max(var(--${e()}-textarea-min-height, 48px), calc(20 * var(--u-unit, 1px) + 2px))`,
88
89
  // Строка, рамка и отступы должны помещаться при минимальной высоте.
89
- paddingBlock: "clamp(0px, calc((var(--u-textarea-min-height, 48px) - 20 * var(--u-unit, 1px) - 2px) / 2), var(--u-input-padding-y, 14px))"
90
+ paddingBlock: `clamp(0px, calc((var(--${e()}-textarea-min-height, 48px) - 20 * var(--u-unit, 1px) - 2px) / 2), var(--${e()}-input-padding-y, 14px))`
90
91
  },
91
- e.hasError && { border: "1px solid var(--u-color-error, #EF302B)" },
92
+ a.hasError && { border: `1px solid var(--${e()}-color-error, #EF302B)` },
92
93
  // `styleInput` идёт последним: как и в остальных полях,
93
94
  // потребитель может перекрыть стили компонента.
94
- z
95
+ A
95
96
  )
96
97
  }
97
98
  )
98
99
  ]
99
100
  }
100
101
  ),
101
- c && /* @__PURE__ */ l("h5", { id: `${a}-error`, className: "h5 clr-red-main", style: { position: "relative", marginTop: "calc(4 * var(--u-unit, 1px))" }, children: e.text })
102
+ n && /* @__PURE__ */ o("h5", { id: `${r}-error`, className: "h5 clr-red-main", style: { position: "relative", marginTop: "calc(4 * var(--u-unit, 1px))" }, children: a.text })
102
103
  ]
103
104
  }
104
105
  );
105
106
  });
106
- H.displayName = "Textarea";
107
- export { H as Textarea$u };
107
+ K.displayName = "Textarea";
108
+ export { K as Textarea$u };
@@ -1,175 +1,175 @@
1
- import { jsxs as X, jsx as N } from "react/jsx-runtime";
2
- import { useRef as z, useState as Y, useCallback as B, useEffect as v, useLayoutEffect as W } from "react";
1
+ import { jsxs as V, jsx as P } from "react/jsx-runtime";
2
+ import { useRef as z, useState as Y, useCallback as B, useEffect as $, useLayoutEffect as tt } from "react";
3
3
  /* empty css */
4
- import { createPortal as q } from "react-dom";
4
+ import { createPortal as et } from "react-dom";
5
5
  /* empty css */
6
6
  /* empty css */
7
- import { getPortalScopeProps$u as tt } from "../../shared/uiKitDefaults.js";
8
- import { useMountTransition$u as et } from "../../hooks/useMountTransition.js";
9
- import { useAutoId$u as nt } from "../../hooks/useAutoId.js";
10
- import { MOTION_EASE$u as C, motionMs$u as L, MOTION_MS$u as rt } from "../../vanilla/core/motion.js";
11
- const ot = 100, it = {
12
- top: "0 var(--u-motion-shift-sm, 4px)",
13
- bottom: "0 calc(-1 * var(--u-motion-shift-sm, 4px))",
14
- left: "var(--u-motion-shift-sm, 4px) 0",
15
- right: "calc(-1 * var(--u-motion-shift-sm, 4px)) 0"
16
- }, st = (r, t, n, a) => {
17
- const u = J(V), y = t.x + t.width / 2, m = t.y + t.height / 2 - a / 2 + t.scrollY;
18
- return r === "bottom" ? { x: y, y: t.y + t.height + t.scrollY + u } : r === "right" ? { x: t.x + t.width + u + n / 2, y: m } : r === "left" ? { x: t.x - u - n / 2, y: m } : { x: y, y: t.y + t.scrollY - u - a };
19
- }, R = 8, V = 10, ct = 14, J = (r) => {
20
- if (typeof window > "u" || typeof document > "u") return r;
7
+ import { getUiKitPrefix$u as S, kitCls$u as H, getPortalScopeProps$u as nt, kitVarRef$u as rt } from "../../shared/uiKitDefaults.js";
8
+ import { useMountTransition$u as ot } from "../../hooks/useMountTransition.js";
9
+ import { useAutoId$u as it } from "../../hooks/useAutoId.js";
10
+ import { MOTION_EASE$u as L, motionMs$u as k, MOTION_MS$u as st } from "../../vanilla/core/motion.js";
11
+ const ct = 100;
12
+ function lt(n) {
13
+ const t = rt("motion-shift-sm", "4px");
14
+ return n === "top" ? `0 ${t}` : n === "bottom" ? `0 calc(-1 * ${t})` : n === "left" ? `${t} 0` : `calc(-1 * ${t}) 0`;
15
+ }
16
+ const ut = (n, t, r, a) => {
17
+ const l = Z(Q), y = t.x + t.width / 2, m = t.y + t.height / 2 - a / 2 + t.scrollY;
18
+ return n === "bottom" ? { x: y, y: t.y + t.height + t.scrollY + l } : n === "right" ? { x: t.x + t.width + l + r / 2, y: m } : n === "left" ? { x: t.x - l - r / 2, y: m } : { x: y, y: t.y + t.scrollY - l - a };
19
+ }, R = 8, Q = 10, ft = 14, Z = (n) => {
20
+ if (typeof window > "u" || typeof document > "u") return n;
21
21
  const t = Number.parseFloat(getComputedStyle(document.documentElement).fontSize);
22
- return !Number.isFinite(t) || t <= 0 ? r : r * (t / 16);
23
- }, ut = {
22
+ return !Number.isFinite(t) || t <= 0 ? n : n * (t / 16);
23
+ }, dt = {
24
24
  top: "bottom",
25
25
  bottom: "top",
26
26
  left: "right",
27
27
  right: "left"
28
- }, lt = (r, t, n, a) => {
29
- const u = J(V), y = t.x + t.width / 2, m = t.y + t.height / 2 - a / 2 + t.scrollY;
30
- return r === "top" ? { x: y, y: t.y + t.scrollY - u - a } : r === "bottom" ? { x: y, y: t.y + t.height + t.scrollY + u } : r === "right" ? { x: t.x + t.width + u + n / 2, y: m } : { x: t.x - u - n / 2, y: m };
31
- }, ft = (r, t, n, a) => {
28
+ }, at = (n, t, r, a) => {
29
+ const l = Z(Q), y = t.x + t.width / 2, m = t.y + t.height / 2 - a / 2 + t.scrollY;
30
+ return n === "top" ? { x: y, y: t.y + t.scrollY - l - a } : n === "bottom" ? { x: y, y: t.y + t.height + t.scrollY + l } : n === "right" ? { x: t.x + t.width + l + r / 2, y: m } : { x: t.x - l - r / 2, y: m };
31
+ }, mt = (n, t, r, a) => {
32
32
  var _, I;
33
- const u = st(r, t, n, a);
33
+ const l = ut(n, t, r, a);
34
34
  if (typeof window > "u")
35
- return { placement: r, ...u, arrowShift: 0 };
36
- const y = ((_ = document.documentElement) == null ? void 0 : _.clientHeight) || window.innerHeight, m = ((I = document.documentElement) == null ? void 0 : I.clientWidth) || window.innerWidth, w = [r, ut[r]];
35
+ return { placement: n, ...l, arrowShift: 0 };
36
+ const y = ((_ = document.documentElement) == null ? void 0 : _.clientHeight) || window.innerHeight, m = ((I = document.documentElement) == null ? void 0 : I.clientWidth) || window.innerWidth, w = [n, dt[n]];
37
37
  for (const o of ["top", "bottom", "left", "right"])
38
38
  w.includes(o) || w.push(o);
39
39
  const g = (o) => {
40
- const p = o.y - t.scrollY, b = o.x - n / 2;
41
- return Math.max(0, R - p) + Math.max(0, p + a - (y - R)) + Math.max(0, R - b) + Math.max(0, b + n - (m - R));
40
+ const p = o.y - t.scrollY, b = o.x - r / 2;
41
+ return Math.max(0, R - p) + Math.max(0, p + a - (y - R)) + Math.max(0, R - b) + Math.max(0, b + r - (m - R));
42
42
  };
43
43
  let d = null;
44
44
  for (const o of w) {
45
- const p = o === r ? u : lt(o, t, n, a), b = g(p);
45
+ const p = o === n ? l : at(o, t, r, a), b = g(p);
46
46
  if (b === 0)
47
47
  return { placement: o, x: p.x, y: p.y, arrowShift: 0 };
48
48
  (!d || b < d.overflow) && (d = { placement: o, x: p.x, y: p.y, overflow: b });
49
49
  }
50
50
  const M = d;
51
51
  let f = M.x;
52
- const x = n / 2;
52
+ const x = r / 2;
53
53
  f - x < R ? f = x + R : f + x > m - R && (f = m - R - x);
54
- const T = t.x + t.width / 2, s = Math.max(0, x - ct), $ = Math.max(-s, Math.min(s, T - f));
55
- return { placement: M.placement, x: f, y: M.y, arrowShift: $ };
56
- }, K = (r) => {
54
+ const T = t.x + t.width / 2, s = Math.max(0, x - ft), N = Math.max(-s, Math.min(s, T - f));
55
+ return { placement: M.placement, x: f, y: M.y, arrowShift: N };
56
+ }, X = (n) => {
57
57
  const t = document.activeElement;
58
- if (!r || !t || !r.contains(t)) return !1;
59
- const n = document.documentElement.getAttribute("data-input-mode");
60
- if (n) return n === "keyboard";
58
+ if (!n || !t || !n.contains(t)) return !1;
59
+ const r = document.documentElement.getAttribute("data-input-mode");
60
+ if (r) return r === "keyboard";
61
61
  try {
62
62
  return t.matches(":focus-visible");
63
63
  } catch {
64
64
  return !0;
65
65
  }
66
- }, dt = 1e3;
67
- let Q = -1 / 0, U = !1;
68
- const at = () => {
69
- U || typeof document > "u" || (U = !0, document.addEventListener("pointerdown", () => {
70
- Q = Date.now();
66
+ }, pt = 1e3;
67
+ let W = -1 / 0, J = !1;
68
+ const yt = () => {
69
+ J || typeof document > "u" || (J = !0, document.addEventListener("pointerdown", () => {
70
+ W = Date.now();
71
71
  }, { capture: !0, passive: !0 }));
72
- }, mt = () => document.documentElement.getAttribute("data-input-mode") !== "keyboard" && Date.now() - Q < dt, Rt = ({
73
- children: r = /* @__PURE__ */ N("div", {}),
72
+ }, wt = () => document.documentElement.getAttribute("data-input-mode") !== "keyboard" && Date.now() - W < pt, Tt = ({
73
+ children: n = /* @__PURE__ */ P("div", {}),
74
74
  className: t = "",
75
- portalOn: n = !1,
75
+ portalOn: r = !1,
76
76
  id: a = "",
77
- tooltipText: u = /* @__PURE__ */ N("div", {}),
77
+ tooltipText: l = /* @__PURE__ */ P("div", {}),
78
78
  style: y,
79
79
  tooltipStyle: m,
80
80
  position: w = "top",
81
81
  isActive: g = !0,
82
82
  showWhenActive: d = !1,
83
- showDelay: M = ot
83
+ showDelay: M = ct
84
84
  }) => {
85
- const f = z(null), x = z(null), T = z(null), [s, $] = Y(!1), [_, I] = Y(null), [o, p] = Y(null), [b, H] = Y(w), [k, G] = Y(!1), P = () => {
85
+ const f = z(null), x = z(null), T = z(null), [s, N] = Y(!1), [_, I] = Y(null), [o, p] = Y(null), [b, G] = Y(w), [j, K] = Y(!1), A = () => {
86
86
  T.current && (clearTimeout(T.current), T.current = null);
87
87
  }, h = B(() => {
88
- P(), $(!1), I(null), G(!1);
89
- }, []), { shouldRender: D, isAnimated: j } = et({ isOpen: s, duration: rt.instant });
90
- v(() => {
91
- D || (p(null), H(w));
88
+ A(), N(!1), I(null), K(!1);
89
+ }, []), { shouldRender: D, isAnimated: U } = ot({ isOpen: s, duration: st.instant });
90
+ $(() => {
91
+ D || (p(null), G(w));
92
92
  }, [D, w]);
93
- const A = B((e) => {
94
- P();
95
- const { x: c, y: i, width: l, height: E } = e.getBoundingClientRect();
96
- I({ x: c, y: i, width: l, height: E, scrollY: window.scrollY }), $(!0);
97
- }, []), F = B((e) => {
98
- const { x: c, y: i, width: l, height: E } = e.getBoundingClientRect();
99
- I((S) => S && { x: c, y: i, width: l, height: E, scrollY: window.scrollY });
93
+ const C = B((e) => {
94
+ A();
95
+ const { x: c, y: i, width: u, height: E } = e.getBoundingClientRect();
96
+ I({ x: c, y: i, width: u, height: E, scrollY: window.scrollY }), N(!0);
97
+ }, []), O = B((e) => {
98
+ const { x: c, y: i, width: u, height: E } = e.getBoundingClientRect();
99
+ I((v) => v && { x: c, y: i, width: u, height: E, scrollY: window.scrollY });
100
100
  }, []);
101
- W(() => {
102
- if (!n || !s || !_) return;
101
+ tt(() => {
102
+ if (!r || !s || !_) return;
103
103
  const e = x.current;
104
104
  if (!e) return;
105
- const { width: c, height: i } = e.getBoundingClientRect(), l = ft(w, _, c, i);
106
- H(l.placement), p({ x: l.x, y: l.y, arrowShift: l.arrowShift });
107
- }, [n, s, _, w, u]), v(() => {
105
+ const { width: c, height: i } = e.getBoundingClientRect(), u = mt(w, _, c, i);
106
+ G(u.placement), p({ x: u.x, y: u.y, arrowShift: u.arrowShift });
107
+ }, [r, s, _, w, l]), $(() => {
108
108
  if (o && s)
109
- return T.current = setTimeout(() => G(!0), M), P;
110
- }, [o, s, M]), v(() => {
109
+ return T.current = setTimeout(() => K(!0), M), A;
110
+ }, [o, s, M]), $(() => {
111
111
  g || h();
112
- }, [g, h]), v(() => {
112
+ }, [g, h]), $(() => {
113
113
  if (!s) return;
114
114
  const e = () => {
115
115
  if (d && g) return;
116
116
  const c = f.current;
117
- if (c && K(c)) {
118
- F(c);
117
+ if (c && X(c)) {
118
+ O(c);
119
119
  return;
120
120
  }
121
121
  h();
122
122
  };
123
123
  return window.addEventListener("scroll", e, !0), () => window.removeEventListener("scroll", e, !0);
124
- }, [s, d, g, h, F]), v(() => {
125
- if (!n || !s) return;
124
+ }, [s, d, g, h, O]), $(() => {
125
+ if (!r || !s) return;
126
126
  let e;
127
127
  const c = () => {
128
128
  e !== void 0 && window.cancelAnimationFrame(e), e = window.requestAnimationFrame(() => {
129
- const S = f.current;
130
- S && F(S);
129
+ const v = f.current;
130
+ v && O(v);
131
131
  });
132
132
  };
133
133
  window.addEventListener("resize", c);
134
134
  const i = typeof ResizeObserver > "u" ? null : new ResizeObserver(c);
135
- let l = f.current;
136
- for (; l; )
137
- i == null || i.observe(l), l = l.parentElement;
135
+ let u = f.current;
136
+ for (; u; )
137
+ i == null || i.observe(u), u = u.parentElement;
138
138
  const E = x.current;
139
139
  return E && (i == null || i.observe(E)), () => {
140
140
  window.removeEventListener("resize", c), i == null || i.disconnect(), e !== void 0 && window.cancelAnimationFrame(e);
141
141
  };
142
- }, [n, s, F]), v(() => {
143
- if (!d || !n) return;
142
+ }, [r, s, O]), $(() => {
143
+ if (!d || !r) return;
144
144
  if (!g) {
145
145
  h();
146
146
  return;
147
147
  }
148
148
  const e = f.current;
149
- e && A(e);
150
- }, [d, n, g, h, A]), v(() => P, []), v(at, []);
151
- const Z = nt(void 0, "u-tooltip"), O = a ? `u-tooltip${a}` : Z;
152
- return v(() => {
149
+ e && C(e);
150
+ }, [d, r, g, h, C]), $(() => A, []), $(yt, []);
151
+ const q = it(void 0, H("tooltip")), F = a ? `${S()}-tooltip${a}` : q;
152
+ return $(() => {
153
153
  const e = f.current;
154
- if (!n || !s || !e) return;
155
- const c = document.activeElement, i = c instanceof HTMLElement && e.contains(c) ? c : e, l = new Set((i.getAttribute("aria-describedby") ?? "").split(/\s+/).filter(Boolean));
156
- return l.add(O), i.setAttribute("aria-describedby", [...l].join(" ")), () => {
157
- const E = (i.getAttribute("aria-describedby") ?? "").split(/\s+/).filter((S) => S && S !== O);
154
+ if (!r || !s || !e) return;
155
+ const c = document.activeElement, i = c instanceof HTMLElement && e.contains(c) ? c : e, u = new Set((i.getAttribute("aria-describedby") ?? "").split(/\s+/).filter(Boolean));
156
+ return u.add(F), i.setAttribute("aria-describedby", [...u].join(" ")), () => {
157
+ const E = (i.getAttribute("aria-describedby") ?? "").split(/\s+/).filter((v) => v && v !== F);
158
158
  E.length ? i.setAttribute("aria-describedby", E.join(" ")) : i.removeAttribute("aria-describedby");
159
159
  };
160
- }, [n, s, O]), n ? /* @__PURE__ */ X(
160
+ }, [r, s, F]), r ? /* @__PURE__ */ V(
161
161
  "div",
162
162
  {
163
163
  ref: f,
164
164
  style: y,
165
165
  onMouseEnter: d ? void 0 : (e) => {
166
- g && A(e.currentTarget);
166
+ g && C(e.currentTarget);
167
167
  },
168
168
  onMouseLeave: d ? void 0 : () => {
169
- K(f.current) || h();
169
+ X(f.current) || h();
170
170
  },
171
171
  onFocus: d ? void 0 : (e) => {
172
- g && !mt() && A(e.currentTarget);
172
+ g && !wt() && C(e.currentTarget);
173
173
  },
174
174
  onBlur: d ? void 0 : (e) => {
175
175
  e.currentTarget.contains(e.relatedTarget) || h();
@@ -177,18 +177,18 @@ const at = () => {
177
177
  onKeyDown: (e) => {
178
178
  e.key !== "Escape" || !s || (e.preventDefault(), h());
179
179
  },
180
- className: `u-help ${t}`,
180
+ className: `${S()}-help ${t}`,
181
181
  children: [
182
- D && q(
183
- /* @__PURE__ */ N(
182
+ D && et(
183
+ /* @__PURE__ */ P(
184
184
  "div",
185
185
  {
186
186
  ref: x,
187
- ...tt(),
187
+ ...nt(),
188
188
  style: {
189
189
  left: (o == null ? void 0 : o.x) ?? 0,
190
190
  top: (o == null ? void 0 : o.y) ?? 0,
191
- opacity: k ? 1 : 0,
191
+ opacity: j ? 1 : 0,
192
192
  /**
193
193
  * До первого замера подсказка скрыта, но занимает место —
194
194
  * `visibility` сохраняет размеры, поэтому её есть чем измерить.
@@ -197,7 +197,7 @@ const at = () => {
197
197
  /**
198
198
  * Сдвиг — свойством `translate`: `transform` уже занят центровкой.
199
199
  */
200
- translate: j && !k ? it[b] : void 0,
200
+ translate: U && !j ? lt(b) : void 0,
201
201
  /**
202
202
  * Переход только по прозрачности и сдвигу. В vanilla у `.u-help-tooltip`
203
203
  * стоит `transition: 0.3s` — на все свойства сразу, включая
@@ -206,33 +206,33 @@ const at = () => {
206
206
  * вперёд — ещё и от начальной точки.
207
207
  * Вход — `fast` + `ease-enter`, выход короче — `instant` + `ease-exit`.
208
208
  */
209
- transition: j ? s ? `opacity ${L("fast")}ms ${C.enter}, translate ${L("fast")}ms ${C.enter}` : `opacity ${L("instant")}ms ${C.exit}, translate ${L("instant")}ms ${C.exit}` : "none",
209
+ transition: U ? s ? `opacity ${k("fast")}ms ${L.enter}, translate ${k("fast")}ms ${L.enter}` : `opacity ${k("instant")}ms ${L.exit}, translate ${k("instant")}ms ${L.exit}` : "none",
210
210
  height: "fit-content",
211
211
  /**
212
212
  * Как во Vue-ките: над окнами (1000), фильтрами таблицы (9999) и выпадающими
213
213
  * списками (10010). Одно значение у обоих китов — на странице с оболочкой и
214
214
  * сервисом слой подсказки не зависит от того, чей кит объявил токен на :root.
215
215
  */
216
- zIndex: "var(--u-tooltip-z, 10020)",
217
- "--u-tooltip-arrow-shift": `${(o == null ? void 0 : o.arrowShift) ?? 0}px`,
216
+ zIndex: `var(--${S()}-tooltip-z, 10020)`,
217
+ [`--${S()}-tooltip-arrow-shift`]: `${(o == null ? void 0 : o.arrowShift) ?? 0}px`,
218
218
  ...m,
219
219
  // Гаснущая подсказка не ловит курсор, даже если сервис включил ей pointer-events.
220
220
  ...s ? null : { pointerEvents: "none" }
221
221
  },
222
- className: `u-help-tooltip u-help-tooltip-portal--${b}`,
223
- id: O,
222
+ className: `${S()}-help-tooltip ${S()}-help-tooltip-portal--${b}`,
223
+ id: F,
224
224
  role: "tooltip",
225
- children: u
225
+ children: l
226
226
  }
227
227
  ),
228
228
  document.body
229
229
  ),
230
- /* @__PURE__ */ N("div", { className: "u-help__content", children: r })
230
+ /* @__PURE__ */ P("div", { className: H("help__content"), children: n })
231
231
  ]
232
232
  }
233
- ) : /* @__PURE__ */ X("div", { style: y, className: `u-help ${t}`, children: [
234
- /* @__PURE__ */ N("div", { className: `u-help-tooltip u-help-tooltip--${w}`, children: u }),
235
- /* @__PURE__ */ N("div", { className: "u-help__content", children: r })
233
+ ) : /* @__PURE__ */ V("div", { style: y, className: `${S()}-help ${t}`, children: [
234
+ /* @__PURE__ */ P("div", { className: `${S()}-help-tooltip ${S()}-help-tooltip--${w}`, children: l }),
235
+ /* @__PURE__ */ P("div", { className: H("help__content"), children: n })
236
236
  ] });
237
237
  };
238
- export { Rt as Tooltip$u };
238
+ export { Tt as Tooltip$u };