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 +1 @@
1
- {"version":3,"file":"useTableColumnPinning.d.ts","sourceRoot":"","sources":["../../../src/components/Table/useTableColumnPinning.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAa5D,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,cAAc,CAAC,EAC3E,OAAO,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO;;;;;;;;;;;;;;;;;;;sBAyB3B,GAAG;6BAG9C,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAHwC,GAAG;8BAG9C,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiCf"}
1
+ {"version":3,"file":"useTableColumnPinning.d.ts","sourceRoot":"","sources":["../../../src/components/Table/useTableColumnPinning.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAc5D,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,cAAc,CAAC,EAC3E,OAAO,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO;;;;;;;;;;;;;;;;;;;sBAwB1D,GAAG;6BACU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAoCxC"}
@@ -1,51 +1,52 @@
1
- import { useMemo as b, useState as L, useLayoutEffect as z } from "react";
1
+ import { useMemo as L, useState as $, useLayoutEffect as z } from "react";
2
+ import { getUiKitPrefix$u as g } from "../../shared/uiKitDefaults.js";
2
3
  const u = (i) => i.sticky === !0 || i.sticky === "left" ? "left" : i.sticky === "right" ? "right" : void 0;
3
- function q(i) {
4
+ function P(i) {
4
5
  return i.some((n) => typeof n.sticky == "string") ? [
5
6
  ...i.filter((n) => u(n) === "left"),
6
7
  ...i.filter((n) => !u(n)),
7
8
  ...i.filter((n) => u(n) === "right")
8
9
  ] : i;
9
10
  }
10
- function C(i, n, h, m) {
11
- const o = b(() => h ? q(n) : n, [n, h]), p = o.some((t) => !!u(t)), [y, E] = L({ overflow: !1, widths: [] });
11
+ function C(i, n, h, E) {
12
+ const o = L(() => h ? P(n) : n, [n, h]), v = o.some((t) => !!u(t)), [p, S] = $({ overflow: !1, widths: [] });
12
13
  z(() => {
13
- var v;
14
+ var k;
14
15
  const t = i.current, e = t == null ? void 0 : t.querySelector("table");
15
- if (!h || !p || !t || !e) return;
16
+ if (!h || !v || !t || !e) return;
16
17
  let s = !1;
17
18
  const f = Array.from(e.querySelectorAll("thead > tr:first-child > th"));
18
- f.length || f.push(...e.querySelectorAll("tbody > tr:not(.u-empty-table-row) > td"));
19
+ f.length || f.push(...e.querySelectorAll(`tbody > tr:not(.${g()}-empty-table-row) > td`));
19
20
  const c = () => {
20
21
  if (s) return;
21
- const l = f.slice(0, o.length).map((d) => d.getBoundingClientRect().width), k = t.clientWidth > 0 && t.scrollWidth > t.clientWidth + 1;
22
- E((d) => d.overflow === k && d.widths.length === l.length && d.widths.every((S, O) => S === l[O]) ? d : { overflow: k, widths: l });
22
+ const l = f.slice(0, o.length).map((d) => d.getBoundingClientRect().width), m = t.clientWidth > 0 && t.scrollWidth > t.clientWidth + 1;
23
+ S((d) => d.overflow === m && d.widths.length === l.length && d.widths.every((O, b) => O === l[b]) ? d : { overflow: m, widths: l });
23
24
  };
24
25
  c();
25
26
  const r = typeof ResizeObserver > "u" ? null : new ResizeObserver(c);
26
- return r == null || r.observe(t), r == null || r.observe(e), f.slice(0, o.length).forEach((l) => r == null ? void 0 : r.observe(l)), window.addEventListener("resize", c), (v = document.fonts) == null || v.addEventListener("loadingdone", c), () => {
27
+ return r == null || r.observe(t), r == null || r.observe(e), f.slice(0, o.length).forEach((l) => r == null ? void 0 : r.observe(l)), window.addEventListener("resize", c), (k = document.fonts) == null || k.addEventListener("loadingdone", c), () => {
27
28
  var l;
28
29
  s = !0, r == null || r.disconnect(), window.removeEventListener("resize", c), (l = document.fonts) == null || l.removeEventListener("loadingdone", c);
29
30
  };
30
- }, [i, o, h, p, m]);
31
- const a = o.map((t) => h && (!t.stickyOverflowOnly || y.overflow) ? u(t) : void 0), g = { left: 0, right: 0 }, w = [];
31
+ }, [i, o, h, v, E]);
32
+ const a = o.map((t) => h && (!t.stickyOverflowOnly || p.overflow) ? u(t) : void 0), w = { left: 0, right: 0 }, y = [];
32
33
  o.forEach((t, e) => {
33
- a[e] === "left" && (w[e] = g.left, g.left += y.widths[e] || t.width || 0);
34
+ a[e] === "left" && (y[e] = w.left, w.left += p.widths[e] || t.width || 0);
34
35
  });
35
36
  for (let t = o.length - 1; t >= 0; t--)
36
- a[t] === "right" && (w[t] = g.right, g.right += y.widths[t] || o[t].width || 0);
37
+ a[t] === "right" && (y[t] = w.right, w.right += p.widths[t] || o[t].width || 0);
37
38
  return o.map((t, e) => {
38
39
  const s = a[e];
39
40
  if (!s) return t.sticky ? { ...t, sticky: !1 } : t;
40
41
  const f = s === "left" ? a.lastIndexOf("left") === e : a.indexOf("right") === e;
41
42
  return { ...t, sticky: !0, cellStyle: {
42
43
  ...t.cellStyle,
43
- left: s === "left" ? w[e] : "auto",
44
- right: s === "right" ? w[e] : "auto",
45
- "--u-table-pin-shadow-left": s === "right" ? "calc(-4 * var(--u-unit, 1px))" : "auto",
46
- "--u-table-pin-shadow-right": s === "left" ? "calc(-4 * var(--u-unit, 1px))" : "auto",
47
- "--u-table-pin-shadow-transform": s === "right" ? "none" : "matrix(-1, 0, 0, 1, 0, 0)",
48
- "--u-table-pin-shadow-display": f ? "block" : "none"
44
+ left: s === "left" ? y[e] : "auto",
45
+ right: s === "right" ? y[e] : "auto",
46
+ [`--${g()}-table-pin-shadow-left`]: s === "right" ? "calc(-4 * var(--u-unit, 1px))" : "auto",
47
+ [`--${g()}-table-pin-shadow-right`]: s === "left" ? "calc(-4 * var(--u-unit, 1px))" : "auto",
48
+ [`--${g()}-table-pin-shadow-transform`]: s === "right" ? "none" : "matrix(-1, 0, 0, 1, 0, 0)",
49
+ [`--${g()}-table-pin-shadow-display`]: f ? "block" : "none"
49
50
  } };
50
51
  });
51
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAC1C,OAAO,mDAAmD,CAAC;AAC3D,OAAO,aAAa,CAAC;AACrB,OAAO,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,cAAc,CAAC;AA2BvE,eAAO,MAAM,IAAI,GAAI,wHAWlB,cAAc,4CA6LhB,CAAC"}
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAC1C,OAAO,mDAAmD,CAAC;AAC3D,OAAO,aAAa,CAAC;AACrB,OAAO,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,cAAc,CAAC;AA4BvE,eAAO,MAAM,IAAI,GAAI,wHAWlB,cAAc,4CA8LhB,CAAC"}
@@ -1,147 +1,149 @@
1
- import { jsxs as a, jsx as r } from "react/jsx-runtime";
1
+ import { jsxs as m, jsx as n } from "react/jsx-runtime";
2
2
  /* empty css */
3
3
  /* empty css */
4
4
  /* empty css */
5
5
  /* empty css */
6
- import { useState as x, useRef as p, useEffect as D, Fragment as ee } from "react";
7
- import { Icon$u as b } from "../Icon/Icon.js";
8
- import { Tooltip$u as oe } from "../Tooltip/Tooltip.js";
9
- import { useDismiss$u as te } from "../../hooks/useDismiss.js";
10
- import { useMountTransition$u as re } from "../../hooks/useMountTransition.js";
11
- import { getPopupTransitionStyle$u as ne, POPUP_TRANSITION_MS$u as se } from "../../shared/popupTransition.js";
12
- import { useTabsOverflow$u as ie } from "./useTabsOverflow.js";
13
- import { useTabsIndicator$u as le } from "./useTabsIndicator.js";
14
- import { useTabsScroll$u as ae } from "./useTabsScroll.js";
15
- import { useAutoId$u as ce } from "../../hooks/useAutoId.js";
6
+ import { useState as oe, useRef as h, useEffect as te, Fragment as re } from "react";
7
+ import { Icon$u as $ } from "../Icon/Icon.js";
8
+ import { Tooltip$u as ne } from "../Tooltip/Tooltip.js";
9
+ import { useDismiss$u as se } from "../../hooks/useDismiss.js";
10
+ import { useMountTransition$u as ie } from "../../hooks/useMountTransition.js";
11
+ import { getPopupTransitionStyle$u as le, POPUP_TRANSITION_MS$u as ae } from "../../shared/popupTransition.js";
12
+ import { useTabsOverflow$u as ce } from "./useTabsOverflow.js";
13
+ import { useTabsIndicator$u as me } from "./useTabsIndicator.js";
14
+ import { useTabsScroll$u as de } from "./useTabsScroll.js";
15
+ import { useAutoId$u as fe } from "../../hooks/useAutoId.js";
16
+ import { kitCls$u as r, getUiKitPrefix$u as l } from "../../shared/uiKitDefaults.js";
16
17
  import { isPlainLeftClick$u as ue } from "../../vanilla/core/linkClick.js";
17
- const me = [], Se = ({
18
- onClick: h,
19
- tabsData: n = me,
20
- activeTab: m,
21
- className: w = "",
22
- variant: g = "line",
23
- fullWidth: y = !1,
24
- tooltipOn: U = !1,
25
- tooltipDisabled: _ = !1,
26
- LinkComponent: $,
27
- ariaLabel: B
18
+ const pe = [], Ee = ({
19
+ onClick: g,
20
+ tabsData: s = pe,
21
+ activeTab: u,
22
+ className: k = "",
23
+ variant: y = "line",
24
+ fullWidth: N = !1,
25
+ tooltipOn: _ = !1,
26
+ tooltipDisabled: B = !1,
27
+ LinkComponent: R,
28
+ ariaLabel: j
28
29
  }) => {
29
- const { containerRef: K, measureRef: j, moreMeasureRef: q, visible: z, overflow: u, paddingOf: F, promote: L } = ie(n, m, y, g !== "segment"), [d, c] = x(!1), R = p(null), N = p(null), k = p(null), A = ce(void 0, "u-tabs-menu"), { shouldRender: H, status: J, isAnimated: Y } = re({ isOpen: d, duration: se }), O = p(u);
30
- d && (O.current = u);
31
- const f = g === "segment", T = n.some((e) => e.url), v = f ? "u-tab-segment" : "u-tab-line", G = f ? "u-tab-segment-active" : "u-tab-active", { trackRef: I, indicatorRef: Q } = le(m, `${g}|${y}|${JSON.stringify(n.map((e) => e.id))}`);
32
- ae(I, !f, m), te({ refs: [R], enabled: d, onDismiss: () => c(!1) }), D(() => {
33
- u.length || c(!1);
34
- }, [u.length]);
35
- const S = (e) => {
36
- var t, s;
37
- if ((t = n[e]) != null && t.disabled) return;
38
- const o = u.includes(e);
39
- L(e), c(!1), h == null || h(n[e]), o && ((s = N.current) == null || s.focus({ preventScroll: !0 }));
40
- }, P = () => {
30
+ const { containerRef: q, measureRef: z, moreMeasureRef: F, visible: L, overflow: f, paddingOf: H, morePadding: J, promote: Y } = ce(s, u, N, y !== "segment"), [p, d] = oe(!1), A = h(null), v = h(null), O = h(null), T = fe(void 0, r("tabs-menu")), { shouldRender: G, status: Q, isAnimated: V } = ie({ isOpen: p, duration: ae }), I = h(f);
31
+ p && (I.current = f);
32
+ const b = y === "segment", P = s.some((e) => e.url), w = b ? r("tab-segment") : r("tab-line"), X = b ? r("tab-segment-active") : r("tab-active"), { trackRef: S, indicatorRef: Z } = me(u, `${y}|${N}|${JSON.stringify(s.map((e) => e.id))}`);
33
+ de(S, !b, u), se({ refs: [A], enabled: p, onDismiss: () => d(!1) }), te(() => {
34
+ f.length || d(!1);
35
+ }, [f.length]);
36
+ const M = (e) => {
37
+ var t, i;
38
+ if ((t = s[e]) != null && t.disabled) return;
39
+ const o = f.includes(e);
40
+ Y(e), d(!1), g == null || g(s[e]), o && ((i = v.current) == null || i.focus({ preventScroll: !0 }));
41
+ }, C = () => {
41
42
  var e;
42
- return Array.from(((e = k.current) == null ? void 0 : e.querySelectorAll('[role="menuitem"]:not([aria-disabled="true"])')) || []);
43
- }, V = (e) => {
43
+ return Array.from(((e = O.current) == null ? void 0 : e.querySelectorAll('[role="menuitem"]:not([aria-disabled="true"])')) || []);
44
+ }, W = (e) => {
44
45
  var t;
45
- const o = P();
46
+ const o = C();
46
47
  (t = o[e < 0 ? o.length - 1 : e]) == null || t.focus();
47
- }, X = (e) => {
48
- var i, l;
49
- const o = P(), t = o.indexOf(document.activeElement), s = e.key === "ArrowDown" ? (t + 1) % o.length : e.key === "ArrowUp" ? (t - 1 + o.length) % o.length : e.key === "Home" ? 0 : e.key === "End" ? o.length - 1 : -1;
50
- s >= 0 ? (e.preventDefault(), (i = o[s]) == null || i.focus()) : e.key === "Escape" && (e.preventDefault(), c(!1), (l = N.current) == null || l.focus());
51
- }, M = (e) => /* @__PURE__ */ r("span", { className: "u-tabs-title", "data-label": e.title, children: e.title }), Z = (e) => {
52
- if (!e.icon) return M(e);
48
+ }, x = (e) => {
49
+ var a, c;
50
+ const o = C(), t = o.indexOf(document.activeElement), i = e.key === "ArrowDown" ? (t + 1) % o.length : e.key === "ArrowUp" ? (t - 1 + o.length) % o.length : e.key === "Home" ? 0 : e.key === "End" ? o.length - 1 : -1;
51
+ i >= 0 ? (e.preventDefault(), (a = o[i]) == null || a.focus()) : e.key === "Escape" && (e.preventDefault(), d(!1), (c = v.current) == null || c.focus());
52
+ }, E = (e) => /* @__PURE__ */ n("span", { className: r("tabs-title"), "data-label": e.title, children: e.title }), D = (e) => {
53
+ if (!e.icon) return E(e);
53
54
  const o = e.iconPosition === "right";
54
- return /* @__PURE__ */ a("span", { className: `u-tabs-content${o ? " u-tabs-content-reverse" : ""}`, children: [
55
- /* @__PURE__ */ r(b, { name: e.icon, className: "u-tabs-icon" }),
56
- !e.iconOnly && M(e)
55
+ return /* @__PURE__ */ m("span", { className: `${l()}-tabs-content${o ? ` ${l()}-tabs-content-reverse` : ""}`, children: [
56
+ /* @__PURE__ */ n($, { name: e.icon, className: r("tabs-icon") }),
57
+ !e.iconOnly && E(e)
57
58
  ] });
58
- }, C = (e, o, t, s = !1) => {
59
- const i = n[e];
60
- if (!i.url)
61
- return /* @__PURE__ */ r("button", { type: "button", ...o, onClick: s ? void 0 : () => S(e), children: t });
62
- if (s || i.disabled)
63
- return /* @__PURE__ */ r("a", { ...o, role: o.role ?? (s ? void 0 : "link"), children: t });
64
- const l = (W) => {
65
- ue(W) && S(e);
59
+ }, U = (e, o, t, i = !1) => {
60
+ const a = s[e];
61
+ if (!a.url)
62
+ return /* @__PURE__ */ n("button", { type: "button", ...o, onClick: i ? void 0 : () => M(e), children: t });
63
+ if (i || a.disabled)
64
+ return /* @__PURE__ */ n("a", { ...o, role: o.role ?? (i ? void 0 : "link"), children: t });
65
+ const c = (ee) => {
66
+ ue(ee) && M(e);
66
67
  };
67
- return $ ? /* @__PURE__ */ r($, { to: i.url, ...o, onClick: l, children: t }) : /* @__PURE__ */ r("a", { href: i.url, ...o, onClick: l, children: t });
68
- }, E = (e, o = !1) => {
69
- const t = n[e], s = !!(t.icon && t.iconOnly), i = t.icon ? s ? " u-tab-icon-only" : ` u-tab-with-icon${t.iconPosition === "right" ? " u-tab-icon-right" : ""}` : "", l = C(e, {
70
- className: `${v}${i}${t.id === m ? ` ${G}` : ""}${t.disabled ? " u-tab--disabled" : ""}`,
71
- "data-label": s ? void 0 : t.title,
72
- "aria-label": s ? t.title : void 0,
68
+ return R ? /* @__PURE__ */ n(R, { to: a.url, ...o, onClick: c, children: t }) : /* @__PURE__ */ n("a", { href: a.url, ...o, onClick: c, children: t });
69
+ }, K = (e, o = !1) => {
70
+ const t = s[e], i = !!(t.icon && t.iconOnly), a = t.icon ? i ? ` ${l()}-tab-icon-only` : ` ${l()}-tab-with-icon${t.iconPosition === "right" ? ` ${l()}-tab-icon-right` : ""}` : "", c = U(e, {
71
+ className: `${w}${a}${t.id === u ? ` ${X}` : ""}${t.disabled ? ` ${l()}-tab--disabled` : ""}`,
72
+ "data-label": i ? void 0 : t.title,
73
+ "aria-label": i ? t.title : void 0,
73
74
  "data-measure-tab": o ? "" : void 0,
74
75
  // Не хватает места — сначала ужимаются отступы вкладок, подпись остаётся целой.
75
- style: o ? void 0 : F(e),
76
+ style: o ? void 0 : H(e),
76
77
  // Отключённая вкладка не попадает в обход по Tab; нативный disabled не ставим —
77
78
  // он гасит события мыши, и подсказка с объяснением не показалась бы.
78
79
  tabIndex: o || t.disabled ? -1 : void 0,
79
- "aria-current": !o && t.id === m ? "page" : void 0,
80
+ "aria-current": !o && t.id === u ? "page" : void 0,
80
81
  "aria-disabled": !o && t.disabled ? "true" : void 0
81
- }, Z(t), o);
82
- return /* @__PURE__ */ r("div", { className: "u-tabs-item", children: U && !_ && !o ? /* @__PURE__ */ r(oe, { tooltipText: t.title, portalOn: !0, className: "u-tabs-tooltip", children: l }) : l }, e);
82
+ }, D(t), o);
83
+ return /* @__PURE__ */ n("div", { className: r("tabs-item"), children: _ && !B && !o ? /* @__PURE__ */ n(ne, { tooltipText: t.title, portalOn: !0, className: r("tabs-tooltip"), children: c }) : c }, e);
83
84
  };
84
- return /* @__PURE__ */ a(
85
- T ? "nav" : "div",
85
+ return /* @__PURE__ */ m(
86
+ P ? "nav" : "div",
86
87
  {
87
- ref: K,
88
- className: `u-tabs ${f ? "u-tabs-segment" : "u-tabs-line"}${y ? " u-tabs-full-width" : ""}${w ? ` ${w}` : ""}`,
89
- "aria-label": T ? B : void 0,
88
+ ref: q,
89
+ className: `${l()}-tabs ${b ? r("tabs-segment") : r("tabs-line")}${N ? ` ${l()}-tabs-full-width` : ""}${k ? ` ${k}` : ""}`,
90
+ "aria-label": P ? j : void 0,
90
91
  children: [
91
- /* @__PURE__ */ a("div", { className: "u-tabs-track", ref: I, children: [
92
- /* @__PURE__ */ r("span", { className: "u-tabs-indicator", ref: Q, "aria-hidden": "true" }),
93
- z.map((e) => E(e)),
94
- u.length > 0 && /* @__PURE__ */ a(
92
+ /* @__PURE__ */ m("div", { className: r("tabs-track"), ref: S, children: [
93
+ /* @__PURE__ */ n("span", { className: r("tabs-indicator"), ref: Z, "aria-hidden": "true" }),
94
+ L.map((e) => K(e)),
95
+ f.length > 0 && /* @__PURE__ */ m(
95
96
  "div",
96
97
  {
97
- className: "u-tabs-more",
98
- ref: R,
99
- onKeyDown: X,
98
+ className: r("tabs-more"),
99
+ ref: A,
100
+ onKeyDown: x,
100
101
  onBlur: (e) => {
101
102
  const o = e.relatedTarget;
102
- o && !e.currentTarget.contains(o) && c(!1);
103
+ o && !e.currentTarget.contains(o) && d(!1);
103
104
  },
104
105
  children: [
105
- /* @__PURE__ */ a(
106
+ /* @__PURE__ */ m(
106
107
  "button",
107
108
  {
108
109
  type: "button",
109
- ref: N,
110
- className: `${v} u-tabs-more-trigger`,
111
- "aria-expanded": d,
110
+ ref: v,
111
+ className: `${w} ${l()}-tabs-more-trigger`,
112
+ style: J(),
113
+ "aria-expanded": p,
112
114
  "aria-haspopup": "menu",
113
- "aria-controls": A,
114
- onClick: () => c((e) => !e),
115
+ "aria-controls": T,
116
+ onClick: () => d((e) => !e),
115
117
  onKeyDown: (e) => {
116
- (e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), e.stopPropagation(), c(!0), requestAnimationFrame(() => V(e.key === "ArrowUp" ? -1 : 0)));
118
+ (e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), e.stopPropagation(), d(!0), requestAnimationFrame(() => W(e.key === "ArrowUp" ? -1 : 0)));
117
119
  },
118
120
  children: [
119
- /* @__PURE__ */ r("span", { children: "Ещё" }),
120
- /* @__PURE__ */ r(b, { name: "down", size: 14, rotate: d ? 180 : 0 })
121
+ /* @__PURE__ */ n("span", { children: "Ещё" }),
122
+ /* @__PURE__ */ n($, { name: "down", size: 14, rotate: p ? 180 : 0 })
121
123
  ]
122
124
  }
123
125
  ),
124
- H && /* @__PURE__ */ r("div", { className: "u-tabs-more-menu", role: "menu", id: A, ref: k, style: ne(J, Y), children: O.current.filter((e) => n[e]).map((e) => /* @__PURE__ */ r(ee, { children: C(e, {
126
+ G && /* @__PURE__ */ n("div", { className: r("tabs-more-menu"), role: "menu", id: T, ref: O, style: le(Q, V), children: I.current.filter((e) => s[e]).map((e) => /* @__PURE__ */ n(re, { children: U(e, {
125
127
  role: "menuitem",
126
- "aria-disabled": n[e].disabled ? "true" : void 0,
127
- tabIndex: n[e].disabled ? -1 : void 0
128
- }, n[e].icon ? /* @__PURE__ */ a("span", { className: "u-tabs-content", children: [
129
- /* @__PURE__ */ r(b, { name: n[e].icon, className: "u-tabs-icon" }),
130
- /* @__PURE__ */ r("span", { children: n[e].title })
131
- ] }) : n[e].title) }, e)) })
128
+ "aria-disabled": s[e].disabled ? "true" : void 0,
129
+ tabIndex: s[e].disabled ? -1 : void 0
130
+ }, s[e].icon ? /* @__PURE__ */ m("span", { className: r("tabs-content"), children: [
131
+ /* @__PURE__ */ n($, { name: s[e].icon, className: r("tabs-icon") }),
132
+ /* @__PURE__ */ n("span", { children: s[e].title })
133
+ ] }) : s[e].title) }, e)) })
132
134
  ]
133
135
  }
134
136
  )
135
137
  ] }),
136
- /* @__PURE__ */ a("div", { ref: j, className: "u-tabs-measure", "aria-hidden": "true", children: [
137
- n.map((e, o) => E(o, !0)),
138
- f && /* @__PURE__ */ a("button", { ref: q, type: "button", tabIndex: -1, className: `${v} u-tabs-more-trigger u-tabs-more-measure`, children: [
139
- /* @__PURE__ */ r("span", { children: "Ещё" }),
140
- /* @__PURE__ */ r(b, { name: "down", size: 14 })
138
+ /* @__PURE__ */ m("div", { ref: z, className: r("tabs-measure"), "aria-hidden": "true", children: [
139
+ s.map((e, o) => K(o, !0)),
140
+ b && /* @__PURE__ */ m("button", { ref: F, type: "button", tabIndex: -1, className: `${w} ${l()}-tabs-more-trigger ${l()}-tabs-more-measure`, children: [
141
+ /* @__PURE__ */ n("span", { children: "Ещё" }),
142
+ /* @__PURE__ */ n($, { name: "down", size: 14 })
141
143
  ] })
142
144
  ] })
143
145
  ]
144
146
  }
145
147
  );
146
148
  };
147
- export { Se as Tabs$u };
149
+ export { Ee as Tabs$u };
@@ -3,8 +3,11 @@ export declare const TAB_PADDING_MIN_RATIO = 0.4;
3
3
  /**
4
4
  * Насколько ужать отступы видимых вкладок: 0 — не ужимать, 1 — до предела.
5
5
  * Ровно столько, чтобы вкладки вместе с «Ещё» поместились в контейнер.
6
+ * `moreCut` — на сколько можно сузить кнопку «Ещё» за счёт её боковых отступов: она ужимается так же,
7
+ * как вкладки, иначе в ряду вкладки с узкими отступами, а «Ещё» с полными.
8
+ * `fullWidth` — колонки равные по самой широкой вкладке; ужимаем, пока она не влезает в колонку.
6
9
  */
7
- export declare const tabsSqueeze: (visible: number[], widths: number[], cuts: number[], availableWidth: number, gap: number, moreWidth: number, withMore: boolean) => number;
10
+ export declare const tabsSqueeze: (visible: number[], widths: number[], cuts: number[], availableWidth: number, gap: number, moreWidth: number, withMore: boolean, moreCut?: number, fullWidth?: boolean) => number;
8
11
  /**
9
12
  * Ужатие отступов линейных вкладок: они не прячутся в «Ещё», а прокручиваются (tabsScroll.ts).
10
13
  * Ужимаем, только если так помещаются все; не помещаются и ужатыми — обычные отступы и прокрутка,
@@ -13,11 +16,12 @@ export declare const tabsSqueeze: (visible: number[], widths: number[], cuts: nu
13
16
  export declare const lineTabsSqueeze: (order: number[], widths: number[], cuts: number[], availableWidth: number, gap: number) => number;
14
17
  /**
15
18
  * Индексы сохраняют порядок и исходные объекты tabsData, включая дополнительные поля.
16
- * `cuts` — на сколько каждую вкладку можно сузить за счёт боковых отступов. Прежде чем прятать
19
+ * `cuts` — на сколько каждую вкладку можно сузить за счёт боковых отступов, `moreCut` — то же для кнопки «Ещё».
20
+ * В fullWidth колонки равные: их ширина — по самой широкой вкладке с ужатыми отступами. Прежде чем прятать
17
21
  * вкладку в «Ещё», проверяем, не помещаются ли все с ужатыми отступами: иначе «Ещё» появлялась,
18
22
  * когда не хватало пары пикселей, а в меню оказывалась одна вкладка.
19
23
  */
20
- export declare const distributeTabs: (order: number[], widths: number[], availableWidth: number, gap: number, moreWidth: number, activeIndex: number, fullWidth?: boolean, cuts?: number[]) => {
24
+ export declare const distributeTabs: (order: number[], widths: number[], availableWidth: number, gap: number, moreWidth: number, activeIndex: number, fullWidth?: boolean, cuts?: number[], moreCut?: number) => {
21
25
  visible: number[];
22
26
  overflow: number[];
23
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"distributeTabs.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/distributeTabs.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,SAAS,MAAM,EAAE,EACjB,QAAQ,MAAM,EAAE,EAChB,MAAM,MAAM,EAAE,EACd,gBAAgB,MAAM,EACtB,KAAK,MAAM,EACX,WAAW,MAAM,EACjB,UAAU,OAAO,WAUlB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,EAAE,EAAE,QAAQ,MAAM,EAAE,EAAE,MAAM,MAAM,EAAE,EAAE,gBAAgB,MAAM,EAAE,KAAK,MAAM,WAGrH,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EAAE,EACf,QAAQ,MAAM,EAAE,EAChB,gBAAgB,MAAM,EACtB,KAAK,MAAM,EACX,WAAW,MAAM,EACjB,aAAa,MAAM,EACnB,mBAAiB,EACjB,OAAM,MAAM,EAAO;;cAcwB,MAAM,EAAE;CAsBpD,CAAC"}
1
+ {"version":3,"file":"distributeTabs.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/distributeTabs.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACtB,SAAS,MAAM,EAAE,EACjB,QAAQ,MAAM,EAAE,EAChB,MAAM,MAAM,EAAE,EACd,gBAAgB,MAAM,EACtB,KAAK,MAAM,EACX,WAAW,MAAM,EACjB,UAAU,OAAO,EACjB,gBAAW,EACX,mBAAiB,WA4BlB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,EAAE,EAAE,QAAQ,MAAM,EAAE,EAAE,MAAM,MAAM,EAAE,EAAE,gBAAgB,MAAM,EAAE,KAAK,MAAM,WAGrH,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EAAE,EACf,QAAQ,MAAM,EAAE,EAChB,gBAAgB,MAAM,EACtB,KAAK,MAAM,EACX,WAAW,MAAM,EACjB,aAAa,MAAM,EACnB,mBAAiB,EACjB,OAAM,MAAM,EAAO,EACnB,gBAAW;;cAegC,MAAM,EAAE;CAsBpD,CAAC"}
@@ -6,6 +6,10 @@ scroll: boolean) => {
6
6
  paddingLeft: number;
7
7
  paddingRight: number;
8
8
  };
9
+ morePadding: () => {
10
+ paddingLeft: number;
11
+ paddingRight: number;
12
+ };
9
13
  promote: (index: number) => void;
10
14
  visible: number[];
11
15
  overflow: number[];
@@ -1 +1 @@
1
- {"version":3,"file":"useTabsOverflow.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/useTabsOverflow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,eAAO,MAAM,eAAe,GAC1B,MAAM,kBAAkB,EAAE,EAC1B,WAAW,MAAM,GAAG,MAAM,GAAG,SAAS,EACtC,WAAW,OAAO;AAClB,+GAA+G;AAC/G,QAAQ,OAAO;uBAoEW,MAAM;;;;qBAOR,MAAM;;;;;;CAY/B,CAAC"}
1
+ {"version":3,"file":"useTabsOverflow.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/useTabsOverflow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,eAAO,MAAM,eAAe,GAC1B,MAAM,kBAAkB,EAAE,EAC1B,WAAW,MAAM,GAAG,MAAM,GAAG,SAAS,EACtC,WAAW,OAAO;AAClB,+GAA+G;AAC/G,QAAQ,OAAO;uBA+EW,MAAM;;;;;;;;qBAIR,MAAM;;;;;;CAY/B,CAAC"}
@@ -1,49 +1,48 @@
1
- import { useRef as O, useState as q, useCallback as P, useLayoutEffect as D } from "react";
2
- import { TAB_PADDING_MIN_RATIO$u as B, distributeTabs$u as G, lineTabsSqueeze$u as k, tabsSqueeze$u as J } from "../../vanilla/core/distributeTabs.js";
3
- const U = (l, N, u, b) => {
4
- const g = O(null), m = O(null), L = O(null), h = JSON.stringify(l.map((t) => t.id)), S = l.map((t, e) => e), [z, T] = q({ signature: h, order: S }), p = z.signature === h ? z.order : S, [r, _] = q({ widths: [], paddings: [], available: 0, gap: 0, more: 0 }), o = P(() => {
5
- var x;
6
- const t = g.current, e = m.current;
7
- if (!t || !e) return;
8
- const n = getComputedStyle(t), a = t.getBoundingClientRect().width - (Number.parseFloat(n.borderLeftWidth) || 0) - (Number.parseFloat(n.borderRightWidth) || 0) - (Number.parseFloat(n.paddingLeft) || 0) - (Number.parseFloat(n.paddingRight) || 0), s = Array.from(e.querySelectorAll("[data-measure-tab]")), v = s.map((i) => i.getBoundingClientRect().width), R = s.map((i) => {
9
- const c = getComputedStyle(i);
10
- return [Number.parseFloat(c.paddingLeft) || 0, Number.parseFloat(c.paddingRight) || 0];
11
- }), f = {
12
- widths: v,
13
- paddings: R,
1
+ import { useRef as O, useState as _, useCallback as k, useLayoutEffect as J } from "react";
2
+ import { TAB_PADDING_MIN_RATIO$u as L, distributeTabs$u as j, lineTabsSqueeze$u as H, tabsSqueeze$u as K } from "../../vanilla/core/distributeTabs.js";
3
+ const Z = (u, F, p, f) => {
4
+ const b = O(null), h = O(null), z = O(null), v = JSON.stringify(u.map((e) => e.id)), C = u.map((e, t) => t), [S, M] = _({ signature: v, order: C }), w = S.signature === v ? S.order : C, [n, D] = _({ widths: [], paddings: [], available: 0, gap: 0, more: 0, morePadding: [0, 0] }), o = k(() => {
5
+ const e = b.current, t = h.current;
6
+ if (!e || !t) return;
7
+ const r = getComputedStyle(e), a = e.getBoundingClientRect().width - (Number.parseFloat(r.borderLeftWidth) || 0) - (Number.parseFloat(r.borderRightWidth) || 0) - (Number.parseFloat(r.paddingLeft) || 0) - (Number.parseFloat(r.paddingRight) || 0), i = Array.from(t.querySelectorAll("[data-measure-tab]")), P = i.map((d) => d.getBoundingClientRect().width), N = i.map((d) => {
8
+ const l = getComputedStyle(d);
9
+ return [Number.parseFloat(l.paddingLeft) || 0, Number.parseFloat(l.paddingRight) || 0];
10
+ }), m = z.current, c = m ? getComputedStyle(m) : null, g = {
11
+ widths: P,
12
+ paddings: N,
14
13
  available: a,
15
- gap: Number.parseFloat(n.columnGap || "0") || 0,
16
- more: ((x = L.current) == null ? void 0 : x.getBoundingClientRect().width) || 0
14
+ gap: Number.parseFloat(r.columnGap || "0") || 0,
15
+ more: (m == null ? void 0 : m.getBoundingClientRect().width) || 0,
16
+ morePadding: [Number.parseFloat((c == null ? void 0 : c.paddingLeft) ?? "") || 0, Number.parseFloat((c == null ? void 0 : c.paddingRight) ?? "") || 0]
17
17
  };
18
- _((i) => i.available === f.available && i.gap === f.gap && i.more === f.more && i.widths.length === v.length && i.widths.every((c, y) => c === v[y]) && i.paddings.every(([c, y], A) => {
19
- var E, I;
20
- return c === ((E = R[A]) == null ? void 0 : E[0]) && y === ((I = R[A]) == null ? void 0 : I[1]);
21
- }) ? i : f);
18
+ D((d) => d.available === g.available && d.gap === g.gap && d.more === g.more && d.morePadding[0] === g.morePadding[0] && d.morePadding[1] === g.morePadding[1] && d.widths.length === P.length && d.widths.every((l, y) => l === P[y]) && d.paddings.every(([l, y], B) => {
19
+ var E, T;
20
+ return l === ((E = N[B]) == null ? void 0 : E[0]) && y === ((T = N[B]) == null ? void 0 : T[1]);
21
+ }) ? d : g);
22
22
  }, []);
23
- D(() => {
24
- var n, a;
23
+ J(() => {
24
+ var r, a;
25
25
  o();
26
- let t = !1;
27
- const e = typeof ResizeObserver > "u" ? null : new ResizeObserver(o);
28
- return g.current && (e == null || e.observe(g.current)), m.current && (e == null || e.observe(m.current)), window.addEventListener("resize", o), (n = document.fonts) == null || n.addEventListener("loadingdone", o), (a = document.fonts) == null || a.ready.then(() => {
29
- t || o();
26
+ let e = !1;
27
+ const t = typeof ResizeObserver > "u" ? null : new ResizeObserver(o);
28
+ return b.current && (t == null || t.observe(b.current)), h.current && (t == null || t.observe(h.current)), window.addEventListener("resize", o), (r = document.fonts) == null || r.addEventListener("loadingdone", o), (a = document.fonts) == null || a.ready.then(() => {
29
+ e || o();
30
30
  }), () => {
31
- var s;
32
- t = !0, e == null || e.disconnect(), window.removeEventListener("resize", o), (s = document.fonts) == null || s.removeEventListener("loadingdone", o);
31
+ var i;
32
+ e = !0, t == null || t.disconnect(), window.removeEventListener("resize", o), (i = document.fonts) == null || i.removeEventListener("loadingdone", o);
33
33
  };
34
- }, [o, l, u, b]);
35
- const M = N === void 0 ? -1 : l.findIndex((t) => t.id === N), F = r.widths.length === l.length && r.widths.every((t) => t > 0), w = u ? [] : r.paddings.map(([t, e]) => (t + e) * (1 - B)), d = F && !b ? G(p, r.widths, r.available, r.gap, r.more, M, u, w) : { visible: p, overflow: [] }, C = !F || u ? 0 : b ? k(p, r.widths, w, r.available, r.gap) : J(d.visible, r.widths, w, r.available, r.gap, r.more, d.overflow.length > 0);
36
- return { containerRef: g, measureRef: m, moreMeasureRef: L, ...d, paddingOf: (t) => {
37
- const e = r.paddings[t];
38
- if (!C || !e) return;
39
- const n = 1 - C * (1 - B);
40
- return { paddingLeft: e[0] * n, paddingRight: e[1] * n };
41
- }, promote: (t) => {
42
- if (!d.overflow.includes(t)) return;
43
- const e = d.visible[d.visible.length - 1];
44
- if (e === void 0) return;
45
- const n = [...p], a = n.indexOf(t), s = n.indexOf(e);
46
- [n[a], n[s]] = [n[s], n[a]], T({ signature: h, order: n });
34
+ }, [o, u, p, f]);
35
+ const G = F === void 0 ? -1 : u.findIndex((e) => e.id === F), q = n.widths.length === u.length && n.widths.every((e) => e > 0), R = n.paddings.map(([e, t]) => (e + t) * (1 - L)), x = (n.morePadding[0] + n.morePadding[1]) * (1 - L), s = q && !f ? j(w, n.widths, n.available, n.gap, n.more, G, p, R, x) : { visible: w, overflow: [] }, A = !q || p && f ? 0 : f ? H(w, n.widths, R, n.available, n.gap) : K(s.visible, n.widths, R, n.available, n.gap, n.more, s.overflow.length > 0, x, p), I = (e) => {
36
+ if (!A || !e) return;
37
+ const t = 1 - A * (1 - L);
38
+ return { paddingLeft: e[0] * t, paddingRight: e[1] * t };
39
+ };
40
+ return { containerRef: b, measureRef: h, moreMeasureRef: z, ...s, paddingOf: (e) => I(n.paddings[e]), morePadding: () => I(n.morePadding), promote: (e) => {
41
+ if (!s.overflow.includes(e)) return;
42
+ const t = s.visible[s.visible.length - 1];
43
+ if (t === void 0) return;
44
+ const r = [...w], a = r.indexOf(e), i = r.indexOf(t);
45
+ [r[a], r[i]] = [r[i], r[a]], M({ signature: v, order: r });
47
46
  } };
48
47
  };
49
- export { U as useTabsOverflow$u };
48
+ export { Z as useTabsOverflow$u };
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea/Textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAQ1C,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;wDA+GnB,CAAC"}
1
+ {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea/Textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAS1C,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;wDA+GnB,CAAC"}