@lax-wp/design-system 0.13.33 → 0.13.34

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 (157) hide show
  1. package/dist/components/button/Button.cjs.js +5 -5
  2. package/dist/components/button/Button.cjs.js.map +1 -1
  3. package/dist/components/button/Button.es.js +18 -18
  4. package/dist/components/button/Button.es.js.map +1 -1
  5. package/dist/components/button/IconButton.cjs.js +1 -1
  6. package/dist/components/button/IconButton.cjs.js.map +1 -1
  7. package/dist/components/button/IconButton.es.js +8 -8
  8. package/dist/components/button/IconButton.es.js.map +1 -1
  9. package/dist/components/buttons/option-button/OptionButton.cjs.js +1 -1
  10. package/dist/components/buttons/option-button/OptionButton.cjs.js.map +1 -1
  11. package/dist/components/buttons/option-button/OptionButton.es.js +1 -1
  12. package/dist/components/buttons/option-button/OptionButton.es.js.map +1 -1
  13. package/dist/components/data-display/comparison/components/Header.cjs.js +1 -1
  14. package/dist/components/data-display/comparison/components/Header.cjs.js.map +1 -1
  15. package/dist/components/data-display/comparison/components/Header.es.js +13 -13
  16. package/dist/components/data-display/comparison/components/Header.es.js.map +1 -1
  17. package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js +1 -1
  18. package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js.map +1 -1
  19. package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js +1 -1
  20. package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js.map +1 -1
  21. package/dist/components/data-display/infinite-table/body/rows/index.cjs.js +1 -1
  22. package/dist/components/data-display/infinite-table/body/rows/index.cjs.js.map +1 -1
  23. package/dist/components/data-display/infinite-table/body/rows/index.es.js +104 -101
  24. package/dist/components/data-display/infinite-table/body/rows/index.es.js.map +1 -1
  25. package/dist/components/data-display/infinite-table/constants.cjs.js +1 -1
  26. package/dist/components/data-display/infinite-table/constants.cjs.js.map +1 -1
  27. package/dist/components/data-display/infinite-table/constants.d.ts +6 -0
  28. package/dist/components/data-display/infinite-table/constants.es.js +17 -16
  29. package/dist/components/data-display/infinite-table/constants.es.js.map +1 -1
  30. package/dist/components/data-display/infinite-table/index.cjs.js +1 -1
  31. package/dist/components/data-display/infinite-table/index.cjs.js.map +1 -1
  32. package/dist/components/data-display/infinite-table/index.es.js +188 -187
  33. package/dist/components/data-display/infinite-table/index.es.js.map +1 -1
  34. package/dist/components/data-display/infinite-table/useRowHeight.cjs.js +2 -0
  35. package/dist/components/data-display/infinite-table/useRowHeight.cjs.js.map +1 -0
  36. package/dist/components/data-display/infinite-table/useRowHeight.d.ts +15 -0
  37. package/dist/components/data-display/infinite-table/useRowHeight.es.js +24 -0
  38. package/dist/components/data-display/infinite-table/useRowHeight.es.js.map +1 -0
  39. package/dist/components/data-display/tag/Tag.cjs.js +1 -1
  40. package/dist/components/data-display/tag/Tag.cjs.js.map +1 -1
  41. package/dist/components/data-display/tag/Tag.es.js +11 -9
  42. package/dist/components/data-display/tag/Tag.es.js.map +1 -1
  43. package/dist/components/floating-bar/FloatingBar.cjs.js +1 -1
  44. package/dist/components/floating-bar/FloatingBar.cjs.js.map +1 -1
  45. package/dist/components/floating-bar/FloatingBar.es.js +9 -9
  46. package/dist/components/floating-bar/FloatingBar.es.js.map +1 -1
  47. package/dist/components/forms/base-input-field/BaseInputField.cjs.js +2 -2
  48. package/dist/components/forms/base-input-field/BaseInputField.cjs.js.map +1 -1
  49. package/dist/components/forms/base-input-field/BaseInputField.es.js +40 -42
  50. package/dist/components/forms/base-input-field/BaseInputField.es.js.map +1 -1
  51. package/dist/components/forms/creatable-select/CreatableSelect.cjs.js +1 -1
  52. package/dist/components/forms/creatable-select/CreatableSelect.cjs.js.map +1 -1
  53. package/dist/components/forms/creatable-select/CreatableSelect.es.js +14 -15
  54. package/dist/components/forms/creatable-select/CreatableSelect.es.js.map +1 -1
  55. package/dist/components/forms/currency-input/CurrencyInputField.cjs.js +1 -1
  56. package/dist/components/forms/currency-input/CurrencyInputField.cjs.js.map +1 -1
  57. package/dist/components/forms/currency-input/CurrencyInputField.es.js +57 -65
  58. package/dist/components/forms/currency-input/CurrencyInputField.es.js.map +1 -1
  59. package/dist/components/forms/date-time-field/DateTimeField.cjs.js +1 -1
  60. package/dist/components/forms/date-time-field/DateTimeField.cjs.js.map +1 -1
  61. package/dist/components/forms/date-time-field/DateTimeField.es.js +33 -33
  62. package/dist/components/forms/date-time-field/DateTimeField.es.js.map +1 -1
  63. package/dist/components/forms/debounce-input/DebounceInputField.cjs.js +1 -1
  64. package/dist/components/forms/debounce-input/DebounceInputField.cjs.js.map +1 -1
  65. package/dist/components/forms/debounce-input/DebounceInputField.es.js +2 -2
  66. package/dist/components/forms/debounce-input/DebounceInputField.es.js.map +1 -1
  67. package/dist/components/forms/dynamic-data-input/DynamicDataInput.cjs.js +1 -1
  68. package/dist/components/forms/dynamic-data-input/DynamicDataInput.cjs.js.map +1 -1
  69. package/dist/components/forms/dynamic-data-input/DynamicDataInput.es.js +7 -7
  70. package/dist/components/forms/dynamic-data-input/DynamicDataInput.es.js.map +1 -1
  71. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.cjs.js +1 -1
  72. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.cjs.js.map +1 -1
  73. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.es.js +17 -19
  74. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.es.js.map +1 -1
  75. package/dist/components/forms/field-options/Item.cjs.js +1 -1
  76. package/dist/components/forms/field-options/Item.cjs.js.map +1 -1
  77. package/dist/components/forms/field-options/Item.es.js +5 -5
  78. package/dist/components/forms/field-options/Item.es.js.map +1 -1
  79. package/dist/components/forms/formula-input/FormulaInput.cjs.js +1 -1
  80. package/dist/components/forms/formula-input/FormulaInput.cjs.js.map +1 -1
  81. package/dist/components/forms/formula-input/FormulaInput.es.js +10 -10
  82. package/dist/components/forms/formula-input/FormulaInput.es.js.map +1 -1
  83. package/dist/components/forms/icon-picker/IconPicker.cjs.js +1 -1
  84. package/dist/components/forms/icon-picker/IconPicker.cjs.js.map +1 -1
  85. package/dist/components/forms/icon-picker/IconPicker.es.js +42 -57
  86. package/dist/components/forms/icon-picker/IconPicker.es.js.map +1 -1
  87. package/dist/components/forms/input-field/InputField.cjs.js.map +1 -1
  88. package/dist/components/forms/input-field/InputField.es.js.map +1 -1
  89. package/dist/components/forms/master-data-input/MasterDataInputField.cjs.js +1 -1
  90. package/dist/components/forms/master-data-input/MasterDataInputField.cjs.js.map +1 -1
  91. package/dist/components/forms/master-data-input/MasterDataInputField.es.js +54 -60
  92. package/dist/components/forms/master-data-input/MasterDataInputField.es.js.map +1 -1
  93. package/dist/components/forms/md-input/RichMarkdownInput.cjs.js +3 -3
  94. package/dist/components/forms/md-input/RichMarkdownInput.cjs.js.map +1 -1
  95. package/dist/components/forms/md-input/RichMarkdownInput.es.js +63 -63
  96. package/dist/components/forms/md-input/RichMarkdownInput.es.js.map +1 -1
  97. package/dist/components/forms/number-input-field/NumberInputField.cjs.js +1 -1
  98. package/dist/components/forms/number-input-field/NumberInputField.cjs.js.map +1 -1
  99. package/dist/components/forms/number-input-field/NumberInputField.es.js +5 -5
  100. package/dist/components/forms/number-input-field/NumberInputField.es.js.map +1 -1
  101. package/dist/components/forms/percentage-input/PercentageInputField.cjs.js +2 -2
  102. package/dist/components/forms/percentage-input/PercentageInputField.cjs.js.map +1 -1
  103. package/dist/components/forms/percentage-input/PercentageInputField.es.js +20 -20
  104. package/dist/components/forms/percentage-input/PercentageInputField.es.js.map +1 -1
  105. package/dist/components/forms/search-bar/SearchBar.cjs.js +1 -1
  106. package/dist/components/forms/search-bar/SearchBar.cjs.js.map +1 -1
  107. package/dist/components/forms/search-bar/SearchBar.es.js +16 -16
  108. package/dist/components/forms/search-bar/SearchBar.es.js.map +1 -1
  109. package/dist/components/forms/select-field/SelectField.cjs.js +2 -2
  110. package/dist/components/forms/select-field/SelectField.cjs.js.map +1 -1
  111. package/dist/components/forms/select-field/SelectField.d.ts +4 -0
  112. package/dist/components/forms/select-field/SelectField.es.js +202 -203
  113. package/dist/components/forms/select-field/SelectField.es.js.map +1 -1
  114. package/dist/components/forms/text-area-field/TextAreaField.cjs.js +1 -1
  115. package/dist/components/forms/text-area-field/TextAreaField.cjs.js.map +1 -1
  116. package/dist/components/forms/text-area-field/TextAreaField.es.js +14 -14
  117. package/dist/components/forms/text-area-field/TextAreaField.es.js.map +1 -1
  118. package/dist/components/forms/toggle/Toggle.cjs.js +1 -1
  119. package/dist/components/forms/toggle/Toggle.cjs.js.map +1 -1
  120. package/dist/components/forms/toggle/Toggle.es.js +65 -59
  121. package/dist/components/forms/toggle/Toggle.es.js.map +1 -1
  122. package/dist/components/navigation/accordion/Accordion.cjs.js +1 -1
  123. package/dist/components/navigation/accordion/Accordion.cjs.js.map +1 -1
  124. package/dist/components/navigation/accordion/Accordion.es.js +5 -5
  125. package/dist/components/navigation/accordion/Accordion.es.js.map +1 -1
  126. package/dist/components/navigation/stepper/Stepper.cjs.js +1 -1
  127. package/dist/components/navigation/stepper/Stepper.cjs.js.map +1 -1
  128. package/dist/components/navigation/stepper/Stepper.es.js +1 -1
  129. package/dist/components/navigation/stepper/Stepper.es.js.map +1 -1
  130. package/dist/components/navigation/tabs/TabOptions.cjs.js +1 -1
  131. package/dist/components/navigation/tabs/TabOptions.cjs.js.map +1 -1
  132. package/dist/components/navigation/tabs/TabOptions.es.js +15 -15
  133. package/dist/components/navigation/tabs/TabOptions.es.js.map +1 -1
  134. package/dist/components/navigation/tabs/TabSwitch.cjs.js +1 -1
  135. package/dist/components/navigation/tabs/TabSwitch.cjs.js.map +1 -1
  136. package/dist/components/navigation/tabs/TabSwitch.es.js +7 -7
  137. package/dist/components/navigation/tabs/TabSwitch.es.js.map +1 -1
  138. package/dist/components/navigation/tabs/Tabs.cjs.js +1 -1
  139. package/dist/components/navigation/tabs/Tabs.cjs.js.map +1 -1
  140. package/dist/components/navigation/tabs/Tabs.es.js +1 -1
  141. package/dist/components/navigation/tabs/Tabs.es.js.map +1 -1
  142. package/dist/components/tooltip/Tooltip.cjs.js +1 -1
  143. package/dist/components/tooltip/Tooltip.cjs.js.map +1 -1
  144. package/dist/components/tooltip/Tooltip.es.js +19 -19
  145. package/dist/components/tooltip/Tooltip.es.js.map +1 -1
  146. package/dist/components/user-avatar/UserAvatar.cjs.js +1 -1
  147. package/dist/components/user-avatar/UserAvatar.cjs.js.map +1 -1
  148. package/dist/components/user-avatar/UserAvatar.d.ts +1 -1
  149. package/dist/components/user-avatar/UserAvatar.es.js +40 -38
  150. package/dist/components/user-avatar/UserAvatar.es.js.map +1 -1
  151. package/dist/components/user-avatar/constants.cjs.js +1 -1
  152. package/dist/components/user-avatar/constants.cjs.js.map +1 -1
  153. package/dist/components/user-avatar/constants.d.ts +1 -0
  154. package/dist/components/user-avatar/constants.es.js +10 -9
  155. package/dist/components/user-avatar/constants.es.js.map +1 -1
  156. package/dist/design-system.css +1 -1
  157. package/package.json +2 -3
@@ -1,71 +1,74 @@
1
- import { jsx as l, jsxs as q } from "react/jsx-runtime";
2
- import { escapeRegExp as H } from "../../../../../utils/table.es.js";
3
- import { useTableConfig as F } from "../../../../../providers/design-system-provider/hooks.es.js";
4
- import { CustomScrollbar as U } from "../../../../layout/CustomScrollbar.es.js";
5
- import { useRef as p, useContext as G, useEffect as S, useCallback as u, forwardRef as J, useState as K } from "react";
6
- import { VariableSizeList as Q } from "react-window";
7
- import { TableContext as X } from "../../context.es.js";
8
- import { Row as Z } from "./row.es.js";
9
- const ee = ({ onScroll: s, forwardedRef: c, style: a, children: g, dispatchEvent: f }) => {
10
- const [d, y] = K(null), h = u(
1
+ import { jsx as l, jsxs as G } from "react/jsx-runtime";
2
+ import { escapeRegExp as J } from "../../../../../utils/table.es.js";
3
+ import { useTableConfig as P } from "../../../../../providers/design-system-provider/hooks.es.js";
4
+ import { CustomScrollbar as K } from "../../../../layout/CustomScrollbar.es.js";
5
+ import { useRef as u, useContext as Q, useEffect as y, useCallback as p, forwardRef as X, useState as Z } from "react";
6
+ import { VariableSizeList as ee } from "react-window";
7
+ import { TableContext as te } from "../../context.es.js";
8
+ import { Row as re } from "./row.es.js";
9
+ import { useRowHeight as ne, getRowSlotHeight as se } from "../../useRowHeight.es.js";
10
+ const ce = ({ onScroll: s, forwardedRef: c, style: a, children: g, dispatchEvent: f }) => {
11
+ const [h, _] = Z(null), d = p(
11
12
  (m) => {
12
- const w = m;
13
- if (w) {
14
- const E = w.getInstance;
15
- y(E), c(E?.view ?? w.view ?? null);
13
+ const E = m;
14
+ if (E) {
15
+ const S = E.getInstance;
16
+ _(S), c(S?.view ?? E.view ?? null);
16
17
  } else
17
18
  c(null);
18
19
  },
19
20
  [c]
20
21
  );
21
- return S(() => {
22
- d && f && f("SET_SCROLLBAR_REF_FOR_INFINITY_TABLE", { scrollbarsInstance: d });
23
- }, [d, f]), /* @__PURE__ */ l(U, { ref: h, style: { ...a, overflow: "hidden" }, onScroll: s, renderViewClassName: "!h-[calc(100%+5px)]", children: g });
24
- }, te = J((s, c) => {
25
- const a = F();
26
- return /* @__PURE__ */ l(ee, { ...s, forwardedRef: c, dispatchEvent: a?.dispatchEvent });
27
- }), ue = ({ rows: s, prepareRow: c, isLoading: a, onScroll: g, columns: f, width: d, height: y, onScrolling: h, level: m = 0, allowAstarSearch: w = !1 }) => {
28
- const E = p(null), x = p(null), C = F(), {
29
- tableWrapper: P,
30
- tableBodyWrapper: V,
22
+ return y(() => {
23
+ h && f && f("SET_SCROLLBAR_REF_FOR_INFINITY_TABLE", { scrollbarsInstance: h });
24
+ }, [h, f]), /* @__PURE__ */ l(K, { ref: d, style: { ...a, overflow: "hidden" }, onScroll: s, renderViewClassName: "!h-[calc(100%+5px)]", children: g });
25
+ }, oe = X((s, c) => {
26
+ const a = P();
27
+ return /* @__PURE__ */ l(ce, { ...s, forwardedRef: c, dispatchEvent: a?.dispatchEvent });
28
+ }), me = ({ rows: s, prepareRow: c, isLoading: a, onScroll: g, columns: f, width: h, height: _, onScrolling: d, level: m = 0, allowAstarSearch: E = !1 }) => {
29
+ const S = u(null), x = u(null), C = P(), {
30
+ tableWrapper: V,
31
+ tableBodyWrapper: j,
31
32
  search: o,
32
33
  expandedRows: R,
33
- setActiveInlineEdit: v,
34
- activeInlineEdit: L,
35
- closeCurrencyDropdown: O,
36
- currencyDropdownConfig: W
37
- } = G(X), b = p(C);
38
- b.current = C, S(() => {
39
- if (b.current?.onEvent)
40
- return b.current.onEvent("SET_SCROLLBAR_REF_FOR_INFINITY_TABLE", (e) => {
34
+ setActiveInlineEdit: L,
35
+ activeInlineEdit: O,
36
+ closeCurrencyDropdown: W,
37
+ currencyDropdownConfig: $
38
+ } = Q(te), w = u(C);
39
+ w.current = C, y(() => {
40
+ if (w.current?.onEvent)
41
+ return w.current.onEvent("SET_SCROLLBAR_REF_FOR_INFINITY_TABLE", (e) => {
41
42
  const { scrollbarsInstance: t } = e;
42
- E.current = t;
43
+ S.current = t;
43
44
  });
44
45
  }, [C?.onEvent]);
45
- const I = p(null);
46
- S(() => {
47
- if (b.current?.onEvent)
48
- return b.current.onEvent("SCROLL_TO_TABLE_ROW", (e) => {
46
+ const I = u(null);
47
+ y(() => {
48
+ if (w.current?.onEvent)
49
+ return w.current.onEvent("SCROLL_TO_TABLE_ROW", (e) => {
49
50
  const { rowIndex: t } = e;
50
51
  I.current && typeof t == "number" && I.current.scrollToItem(t, "center");
51
52
  });
52
53
  }, [C?.onEvent]);
53
- const _ = p({}), $ = u((e, t) => 0, [R]), A = u(() => {
54
- const e = { ..._.current };
54
+ const T = u({}), D = ne(), b = se(D), A = u(b);
55
+ A.current = b;
56
+ const N = p((e, t) => 0, [R]), k = p(() => {
57
+ const e = { ...T.current };
55
58
  for (const t of s) {
56
- const n = t.original.id;
57
- if (R[n]?.isOpen) {
58
- const T = $(n, 0);
59
- e[t.index] = 41 * (T + 1);
59
+ const r = t.original.id;
60
+ if (R[r]?.isOpen) {
61
+ const v = N(r, 0);
62
+ e[t.index] = b * (v + 1);
60
63
  } else
61
- e[t.index] = 41;
64
+ e[t.index] = b * 1;
62
65
  }
63
- _.current = e, I.current?.resetAfterIndex(0);
64
- }, [R, s, $]);
65
- S(() => {
66
- A();
67
- }, [A]);
68
- const j = u((e) => _.current[e] || 41, []), N = u(
66
+ T.current = e, I.current?.resetAfterIndex(0);
67
+ }, [R, s, N, b]);
68
+ y(() => {
69
+ k();
70
+ }, [k]);
71
+ const M = p((e) => T.current[e] || A.current, []), z = p(
69
72
  (e) => {
70
73
  a || e && (x.current && x.current.disconnect(), x.current = new IntersectionObserver(
71
74
  (t) => {
@@ -75,93 +78,93 @@ const ee = ({ onScroll: s, forwardedRef: c, style: a, children: g, dispatchEvent
75
78
  ), x.current.observe(e));
76
79
  },
77
80
  [a, g, s.length]
78
- ), D = (e) => e.split(/(<span[^>]*>.*?<\/span>)/g).map((t, n) => {
81
+ ), Y = (e) => e.split(/(<span[^>]*>.*?<\/span>)/g).map((t, r) => {
79
82
  if (t.startsWith("<span")) {
80
- const r = t.replace(/<[^>]+>/g, "");
81
- return /* @__PURE__ */ l("span", { className: "bg-yellow-300 dark:bg-primary-100 dark:text-black-900", children: r }, n);
83
+ const n = t.replace(/<[^>]+>/g, "");
84
+ return /* @__PURE__ */ l("span", { className: "bg-yellow-300 dark:bg-primary-100 dark:text-black-900", children: n }, r);
82
85
  }
83
- return /* @__PURE__ */ l("span", { children: t }, n);
84
- }), k = u((e) => {
86
+ return /* @__PURE__ */ l("span", { children: t }, r);
87
+ }), B = p((e) => {
85
88
  if (!o || !e || typeof e != "string" && typeof e != "number") return e;
86
- const t = H(o);
89
+ const t = J(o);
87
90
  if (o.includes("*")) {
88
- const n = o.replace(/[.+?^${}()|[\]\\]/g, "\\$&");
89
- let r;
91
+ const r = o.replace(/[.+?^${}()|[\]\\]/g, "\\$&");
92
+ let n;
90
93
  if (o.startsWith("*") && o.endsWith("*")) {
91
- const i = n.slice(1, -1).replace(/\*/g, ".*");
92
- r = new RegExp(`(${i})`, "gi");
94
+ const i = r.slice(1, -1).replace(/\*/g, ".*");
95
+ n = new RegExp(`(${i})`, "gi");
93
96
  } else if (o.startsWith("*")) {
94
- const i = n.slice(1).replace(/\*/g, ".*");
95
- r = new RegExp(`(${i})$`, "gi");
97
+ const i = r.slice(1).replace(/\*/g, ".*");
98
+ n = new RegExp(`(${i})$`, "gi");
96
99
  } else if (o.endsWith("*")) {
97
- const i = n.slice(0, -1).replace(/\*/g, ".*");
98
- r = new RegExp(`^(${i})`, "gi");
100
+ const i = r.slice(0, -1).replace(/\*/g, ".*");
101
+ n = new RegExp(`^(${i})`, "gi");
99
102
  } else {
100
- const i = n.replace(/\*/g, ".*");
101
- r = new RegExp(`^(${i})$`, "gi");
103
+ const i = r.replace(/\*/g, ".*");
104
+ n = new RegExp(`^(${i})$`, "gi");
102
105
  }
103
- const T = e?.toString().replace(r, (i) => `<span class="highlight">${i}</span>`);
104
- return /* @__PURE__ */ l("span", { children: D(T) });
106
+ const v = e?.toString().replace(n, (i) => `<span class="highlight">${i}</span>`);
107
+ return /* @__PURE__ */ l("span", { children: Y(v) });
105
108
  } else {
106
- const n = new RegExp(`(${t?.trim()})`, "gi"), r = e?.toString()?.split(n);
107
- return /* @__PURE__ */ q("span", { className: "overflow-clip text-ellipsis", children: [
108
- r[0],
109
- /* @__PURE__ */ l("span", { className: "bg-yellow-300 dark:bg-primary-100 dark:text-black-900", children: r[1] }),
110
- r?.slice(2)?.join("")
109
+ const r = new RegExp(`(${t?.trim()})`, "gi"), n = e?.toString()?.split(r);
110
+ return /* @__PURE__ */ G("span", { className: "overflow-clip text-ellipsis", children: [
111
+ n[0],
112
+ /* @__PURE__ */ l("span", { className: "bg-yellow-300 dark:bg-primary-100 dark:text-black-900", children: n[1] }),
113
+ n?.slice(2)?.join("")
111
114
  ] });
112
115
  }
113
- }, [o]), M = u(
116
+ }, [o]), q = p(
114
117
  ({ index: e, style: t }) => {
115
- const n = s[e];
116
- if (!n) return /* @__PURE__ */ l("span", { children: "Loading" });
117
- const r = !a && e >= s.length - 6;
118
- return c(n), /* @__PURE__ */ l(
119
- Z,
118
+ const r = s[e];
119
+ if (!r) return /* @__PURE__ */ l("span", { children: "Loading" });
120
+ const n = !a && e >= s.length - 6;
121
+ return c(r), /* @__PURE__ */ l(
122
+ re,
120
123
  {
121
- row: n,
122
- isLastRow: r,
123
- lastRow: N,
124
+ row: r,
125
+ isLastRow: n,
126
+ lastRow: z,
124
127
  prepareRow: c,
125
- highlightSubstring: k,
128
+ highlightSubstring: B,
126
129
  index: e,
127
130
  style: t,
128
131
  rowsLength: s.length,
129
- level: m || n?.original?.__level,
132
+ level: m || r?.original?.__level,
130
133
  columns: f,
131
134
  expandedRows: R,
132
135
  rows: s
133
136
  }
134
137
  );
135
138
  },
136
- [f, s, a, N, c, R, k, m]
137
- ), z = p(L);
138
- z.current = L;
139
- const B = p(!!W);
140
- B.current = !!W;
141
- const Y = u(
139
+ [f, s, a, z, c, R, B, m]
140
+ ), F = u(O);
141
+ F.current = O;
142
+ const H = u(!!$);
143
+ H.current = !!$;
144
+ const U = p(
142
145
  (e) => {
143
- e.scrollUpdateWasRequested || (z.current && v?.(null), B.current && O?.()), h && h(e);
146
+ e.scrollUpdateWasRequested || (F.current && L?.(null), H.current && W?.()), d && d(e);
144
147
  },
145
- [h, v, O]
148
+ [d, L, W]
146
149
  );
147
150
  return /* @__PURE__ */ l(
148
- Q,
151
+ ee,
149
152
  {
150
- outerElementType: te,
151
- width: d - 2,
152
- height: y - 2,
153
+ outerElementType: oe,
154
+ width: h - 2,
155
+ height: _ - 2,
153
156
  ref: I,
154
- innerElementType: m ? V : P,
157
+ innerElementType: m ? j : V,
155
158
  itemCount: s.length,
156
- itemSize: j,
159
+ itemSize: M,
157
160
  layout: "vertical",
158
161
  overscanCount: 20,
159
- onScroll: Y,
160
- children: M
162
+ onScroll: U,
163
+ children: q
161
164
  }
162
165
  );
163
166
  };
164
167
  export {
165
- ue as Rows
168
+ me as Rows
166
169
  };
167
170
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/rows/index.tsx"],"sourcesContent":["import { escapeRegExp } from '../../../../../utils/table';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport { CustomScrollbar } from '../../../../layout/CustomScrollbar';\nimport React, { forwardRef, useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { VariableSizeList } from 'react-window';\nimport type { ListOnScrollProps } from 'react-window';\n\nimport { TableContext } from '../../context';\nimport { Row } from './row';\n\ninterface TableRow {\n original: Record<string, unknown>;\n index: number;\n [key: string]: unknown;\n}\n\ninterface CustomScrollbarsProps {\n onScroll?: (e: React.UIEvent) => void;\n forwardedRef: (node: HTMLElement | null) => void;\n style?: React.CSSProperties;\n children?: React.ReactNode;\n dispatchEvent?: (eventName: string, payload: Record<string, unknown>) => void;\n}\n\nconst CustomScrollbars = ({ onScroll, forwardedRef, style, children, dispatchEvent }: CustomScrollbarsProps) => {\n const [scrollbarsInstance, setScrollbarInstance] = useState<unknown>(null);\n const refSetter = useCallback(\n (scrollbarsRef: unknown) => {\n const ref = scrollbarsRef as { getInstance?: { view?: HTMLElement }; view?: HTMLElement } | null;\n if (ref) {\n const instance = ref.getInstance;\n setScrollbarInstance(instance);\n forwardedRef(instance?.view ?? ref.view ?? null);\n } else {\n forwardedRef(null);\n }\n },\n [forwardedRef],\n );\n\n useEffect(() => {\n if (scrollbarsInstance && dispatchEvent) {\n dispatchEvent('SET_SCROLLBAR_REF_FOR_INFINITY_TABLE', { scrollbarsInstance });\n }\n }, [scrollbarsInstance, dispatchEvent]);\n\n return (\n <CustomScrollbar ref={refSetter} style={{ ...style, overflow: 'hidden' }} onScroll={onScroll} renderViewClassName='!h-[calc(100%+5px)]'>\n {children}\n </CustomScrollbar>\n );\n};\n\nconst CustomScrollbarsVirtualList = forwardRef((props: Record<string, unknown>, ref: React.Ref<HTMLElement>) => {\n const tableConfig = useTableConfig();\n return <CustomScrollbars {...(props as unknown as CustomScrollbarsProps)} forwardedRef={ref as (node: HTMLElement | null) => void} dispatchEvent={tableConfig?.dispatchEvent} />;\n});\n\ninterface RowsProps {\n rows: TableRow[];\n prepareRow: (row: TableRow) => void;\n isLoading: boolean;\n onScroll?: () => void;\n columns: unknown[];\n width: number;\n height: number;\n onScrolling?: (value: ListOnScrollProps) => void;\n level?: number;\n allowAstarSearch?: boolean;\n}\n\nexport const Rows = ({ rows, prepareRow, isLoading, onScroll, columns, width, height, onScrolling, level = 0, allowAstarSearch = false }: RowsProps) => {\n void allowAstarSearch;\n const scrollbarRef = useRef<unknown>(null);\n const observer = useRef<IntersectionObserver | null>(null);\n const tableConfig = useTableConfig();\n const {\n tableWrapper,\n tableBodyWrapper,\n search,\n expandedRows,\n setActiveInlineEdit,\n activeInlineEdit,\n closeCurrencyDropdown,\n currencyDropdownConfig,\n } = useContext(TableContext);\n\n const tableConfigRef = useRef(tableConfig);\n tableConfigRef.current = tableConfig;\n\n useEffect(() => {\n if (!tableConfigRef.current?.onEvent) return;\n return tableConfigRef.current.onEvent('SET_SCROLLBAR_REF_FOR_INFINITY_TABLE', (payload: unknown) => {\n const { scrollbarsInstance } = payload as { scrollbarsInstance: unknown };\n scrollbarRef.current = scrollbarsInstance;\n });\n }, [tableConfig?.onEvent]);\n\n const listRef = useRef<VariableSizeList>(null);\n\n useEffect(() => {\n if (!tableConfigRef.current?.onEvent) return;\n return tableConfigRef.current.onEvent('SCROLL_TO_TABLE_ROW', (payload: unknown) => {\n const { rowIndex } = payload as { rowIndex: number };\n if (listRef.current && typeof rowIndex === 'number') {\n listRef.current.scrollToItem(rowIndex, 'center');\n }\n });\n }, [tableConfig?.onEvent]);\n\n const sizeMap = useRef<Record<number, number>>({});\n\n const calculateRowHeightWithChildren = useCallback((rowId: string | number, rowCounts: number): number => {\n return 0;\n\n const children = expandedRows[rowId];\n if (!children?.isOpen) return rowCounts;\n if (children?.isOpen) {\n rowCounts += children.data.length;\n for (const child of children.data) {\n rowCounts = calculateRowHeightWithChildren(child.id, rowCounts);\n }\n }\n return rowCounts;\n }, [expandedRows]);\n\n const setMultipleRowSize = useCallback(() => {\n const newSizeMap: Record<number, number> = { ...sizeMap.current };\n\n for (const row of rows) {\n const rowId = row.original.id as string | number;\n const children = expandedRows[rowId];\n if (children?.isOpen) {\n const additionalRowCounts = calculateRowHeightWithChildren(rowId, 0);\n newSizeMap[row.index] = (40 + 1) * (additionalRowCounts + 1);\n } else {\n newSizeMap[row.index] = (40 + 1) * 1;\n }\n }\n\n sizeMap.current = newSizeMap;\n listRef.current?.resetAfterIndex(0);\n }, [expandedRows, rows, calculateRowHeightWithChildren]);\n\n useEffect(() => {\n setMultipleRowSize();\n }, [setMultipleRowSize]);\n\n const getSize = useCallback((index: number) => {\n return sizeMap.current[index] || 40 + 1;\n }, []);\n\n const lastRow = useCallback(\n (node: HTMLElement | null) => {\n if (isLoading) return;\n if (!node) return;\n if (observer.current) observer.current.disconnect();\n observer.current = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting) {\n if (onScroll) onScroll();\n }\n },\n { threshold: 0.00001 },\n );\n observer.current.observe(node);\n },\n [isLoading, onScroll, rows.length],\n );\n\n const parseString = (input: string) =>\n input.split(/(<span[^>]*>.*?<\\/span>)/g).map((segment: string, index: number) => {\n if (segment.startsWith('<span')) {\n const value = segment.replace(/<[^>]+>/g, '');\n return (\n <span key={index} className='bg-yellow-300 dark:bg-primary-100 dark:text-black-900'>\n {value}\n </span>\n );\n }\n return <span key={index}>{segment}</span>;\n });\n\n const highlightSubstring = useCallback((value: string | number | null | undefined): JSX.Element | string | number | null | undefined => {\n if (!search) return value;\n if (!value || (typeof value !== 'string' && typeof value !== 'number')) return value;\n const escapedSearch = escapeRegExp(search);\n\n if (search.includes('*')) {\n const escapedPattern = search.replace(/[.+?^${}()|[\\]\\\\]/g, '\\\\$&');\n let regex;\n if (search.startsWith('*') && search.endsWith('*')) {\n const middlePattern = escapedPattern.slice(1, -1).replace(/\\*/g, '.*');\n regex = new RegExp(`(${middlePattern})`, 'gi');\n } else if (search.startsWith('*')) {\n const endPattern = escapedPattern.slice(1).replace(/\\*/g, '.*');\n regex = new RegExp(`(${endPattern})$`, 'gi');\n } else if (search.endsWith('*')) {\n const startPattern = escapedPattern.slice(0, -1).replace(/\\*/g, '.*');\n regex = new RegExp(`^(${startPattern})`, 'gi');\n } else {\n const exactPattern = escapedPattern.replace(/\\*/g, '.*');\n regex = new RegExp(`^(${exactPattern})$`, 'gi');\n }\n\n const highlightedText = value?.toString().replace(regex, (match) => `<span class=\"highlight\">${match}</span>`);\n return <span>{parseString(highlightedText)}</span>;\n } else {\n const regex = new RegExp(`(${escapedSearch?.trim()})`, 'gi');\n const searchValue = value?.toString()?.split(regex);\n return (\n <span className='overflow-clip text-ellipsis'>\n {searchValue[0]}\n <span className='bg-yellow-300 dark:bg-primary-100 dark:text-black-900'>{searchValue[1]}</span>\n {searchValue?.slice(2)?.join('')}\n </span>\n );\n }\n }, [search]);\n\n const RenderRow = useCallback(\n ({ index, style }: { index: number; style: React.CSSProperties }) => {\n const row = rows[index];\n if (!row) return <span>Loading</span>;\n const isLastRow = !isLoading && index >= rows.length - 6;\n prepareRow(row);\n\n return (\n <Row\n {...({\n row,\n isLastRow,\n lastRow,\n prepareRow,\n highlightSubstring,\n index,\n style,\n rowsLength: rows.length,\n level: level || row?.original?.__level,\n columns,\n expandedRows,\n rows,\n } as unknown as React.ComponentProps<typeof Row>)}\n />\n );\n },\n [columns, rows, isLoading, lastRow, prepareRow, expandedRows, highlightSubstring, level],\n );\n\n const activeInlineEditRef = useRef(activeInlineEdit);\n activeInlineEditRef.current = activeInlineEdit;\n\n const currencyDropdownOpenRef = useRef(!!currencyDropdownConfig);\n currencyDropdownOpenRef.current = !!currencyDropdownConfig;\n\n const handleScroll = useCallback(\n (value: ListOnScrollProps) => {\n if (!value.scrollUpdateWasRequested) {\n if (activeInlineEditRef.current) setActiveInlineEdit?.(null);\n if (currencyDropdownOpenRef.current) closeCurrencyDropdown?.();\n }\n if (onScrolling) onScrolling(value);\n },\n [onScrolling, setActiveInlineEdit, closeCurrencyDropdown],\n );\n\n return (\n <VariableSizeList\n outerElementType={CustomScrollbarsVirtualList}\n width={width - 2}\n height={height - 2}\n ref={listRef}\n innerElementType={level ? tableBodyWrapper : tableWrapper}\n itemCount={rows.length}\n itemSize={getSize}\n layout='vertical'\n overscanCount={20}\n onScroll={handleScroll}\n >\n {RenderRow}\n </VariableSizeList>\n );\n};\n"],"names":["CustomScrollbars","onScroll","forwardedRef","style","children","dispatchEvent","scrollbarsInstance","setScrollbarInstance","useState","refSetter","useCallback","scrollbarsRef","ref","instance","useEffect","jsx","CustomScrollbar","CustomScrollbarsVirtualList","forwardRef","props","tableConfig","useTableConfig","Rows","rows","prepareRow","isLoading","columns","width","height","onScrolling","level","allowAstarSearch","scrollbarRef","useRef","observer","tableWrapper","tableBodyWrapper","search","expandedRows","setActiveInlineEdit","activeInlineEdit","closeCurrencyDropdown","currencyDropdownConfig","useContext","TableContext","tableConfigRef","payload","listRef","rowIndex","sizeMap","calculateRowHeightWithChildren","rowId","rowCounts","setMultipleRowSize","newSizeMap","row","additionalRowCounts","getSize","index","lastRow","node","entries","parseString","input","segment","value","highlightSubstring","escapedSearch","escapeRegExp","escapedPattern","regex","middlePattern","endPattern","startPattern","exactPattern","highlightedText","match","searchValue","jsxs","RenderRow","isLastRow","Row","activeInlineEditRef","currencyDropdownOpenRef","handleScroll","VariableSizeList"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/rows/index.tsx"],"sourcesContent":["import { escapeRegExp } from '../../../../../utils/table';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport { CustomScrollbar } from '../../../../layout/CustomScrollbar';\nimport React, { forwardRef, useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { VariableSizeList } from 'react-window';\nimport type { ListOnScrollProps } from 'react-window';\n\nimport { TableContext } from '../../context';\nimport { Row } from './row';\nimport { getRowSlotHeight, useRowHeight } from '../../useRowHeight';\n\ninterface TableRow {\n original: Record<string, unknown>;\n index: number;\n [key: string]: unknown;\n}\n\ninterface CustomScrollbarsProps {\n onScroll?: (e: React.UIEvent) => void;\n forwardedRef: (node: HTMLElement | null) => void;\n style?: React.CSSProperties;\n children?: React.ReactNode;\n dispatchEvent?: (eventName: string, payload: Record<string, unknown>) => void;\n}\n\nconst CustomScrollbars = ({ onScroll, forwardedRef, style, children, dispatchEvent }: CustomScrollbarsProps) => {\n const [scrollbarsInstance, setScrollbarInstance] = useState<unknown>(null);\n const refSetter = useCallback(\n (scrollbarsRef: unknown) => {\n const ref = scrollbarsRef as { getInstance?: { view?: HTMLElement }; view?: HTMLElement } | null;\n if (ref) {\n const instance = ref.getInstance;\n setScrollbarInstance(instance);\n forwardedRef(instance?.view ?? ref.view ?? null);\n } else {\n forwardedRef(null);\n }\n },\n [forwardedRef],\n );\n\n useEffect(() => {\n if (scrollbarsInstance && dispatchEvent) {\n dispatchEvent('SET_SCROLLBAR_REF_FOR_INFINITY_TABLE', { scrollbarsInstance });\n }\n }, [scrollbarsInstance, dispatchEvent]);\n\n return (\n <CustomScrollbar ref={refSetter} style={{ ...style, overflow: 'hidden' }} onScroll={onScroll} renderViewClassName='!h-[calc(100%+5px)]'>\n {children}\n </CustomScrollbar>\n );\n};\n\nconst CustomScrollbarsVirtualList = forwardRef((props: Record<string, unknown>, ref: React.Ref<HTMLElement>) => {\n const tableConfig = useTableConfig();\n return <CustomScrollbars {...(props as unknown as CustomScrollbarsProps)} forwardedRef={ref as (node: HTMLElement | null) => void} dispatchEvent={tableConfig?.dispatchEvent} />;\n});\n\ninterface RowsProps {\n rows: TableRow[];\n prepareRow: (row: TableRow) => void;\n isLoading: boolean;\n onScroll?: () => void;\n columns: unknown[];\n width: number;\n height: number;\n onScrolling?: (value: ListOnScrollProps) => void;\n level?: number;\n allowAstarSearch?: boolean;\n}\n\nexport const Rows = ({ rows, prepareRow, isLoading, onScroll, columns, width, height, onScrolling, level = 0, allowAstarSearch = false }: RowsProps) => {\n void allowAstarSearch;\n const scrollbarRef = useRef<unknown>(null);\n const observer = useRef<IntersectionObserver | null>(null);\n const tableConfig = useTableConfig();\n const {\n tableWrapper,\n tableBodyWrapper,\n search,\n expandedRows,\n setActiveInlineEdit,\n activeInlineEdit,\n closeCurrencyDropdown,\n currencyDropdownConfig,\n } = useContext(TableContext);\n\n const tableConfigRef = useRef(tableConfig);\n tableConfigRef.current = tableConfig;\n\n useEffect(() => {\n if (!tableConfigRef.current?.onEvent) return;\n return tableConfigRef.current.onEvent('SET_SCROLLBAR_REF_FOR_INFINITY_TABLE', (payload: unknown) => {\n const { scrollbarsInstance } = payload as { scrollbarsInstance: unknown };\n scrollbarRef.current = scrollbarsInstance;\n });\n }, [tableConfig?.onEvent]);\n\n const listRef = useRef<VariableSizeList>(null);\n\n useEffect(() => {\n if (!tableConfigRef.current?.onEvent) return;\n return tableConfigRef.current.onEvent('SCROLL_TO_TABLE_ROW', (payload: unknown) => {\n const { rowIndex } = payload as { rowIndex: number };\n if (listRef.current && typeof rowIndex === 'number') {\n listRef.current.scrollToItem(rowIndex, 'center');\n }\n });\n }, [tableConfig?.onEvent]);\n\n const sizeMap = useRef<Record<number, number>>({});\n\n // Row height tracks the `h-row` viewport clamp; keep a ref so `getSize` (stable\n // identity for react-window) always reads the latest measured value.\n const rowHeight = useRowHeight();\n const rowSlotHeight = getRowSlotHeight(rowHeight);\n const rowSlotHeightRef = useRef(rowSlotHeight);\n rowSlotHeightRef.current = rowSlotHeight;\n\n const calculateRowHeightWithChildren = useCallback((rowId: string | number, rowCounts: number): number => {\n return 0;\n\n const children = expandedRows[rowId];\n if (!children?.isOpen) return rowCounts;\n if (children?.isOpen) {\n rowCounts += children.data.length;\n for (const child of children.data) {\n rowCounts = calculateRowHeightWithChildren(child.id, rowCounts);\n }\n }\n return rowCounts;\n }, [expandedRows]);\n\n const setMultipleRowSize = useCallback(() => {\n const newSizeMap: Record<number, number> = { ...sizeMap.current };\n\n for (const row of rows) {\n const rowId = row.original.id as string | number;\n const children = expandedRows[rowId];\n if (children?.isOpen) {\n const additionalRowCounts = calculateRowHeightWithChildren(rowId, 0);\n newSizeMap[row.index] = rowSlotHeight * (additionalRowCounts + 1);\n } else {\n newSizeMap[row.index] = rowSlotHeight * 1;\n }\n }\n\n sizeMap.current = newSizeMap;\n listRef.current?.resetAfterIndex(0);\n }, [expandedRows, rows, calculateRowHeightWithChildren, rowSlotHeight]);\n\n useEffect(() => {\n setMultipleRowSize();\n }, [setMultipleRowSize]);\n\n const getSize = useCallback((index: number) => {\n return sizeMap.current[index] || rowSlotHeightRef.current;\n }, []);\n\n const lastRow = useCallback(\n (node: HTMLElement | null) => {\n if (isLoading) return;\n if (!node) return;\n if (observer.current) observer.current.disconnect();\n observer.current = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting) {\n if (onScroll) onScroll();\n }\n },\n { threshold: 0.00001 },\n );\n observer.current.observe(node);\n },\n [isLoading, onScroll, rows.length],\n );\n\n const parseString = (input: string) =>\n input.split(/(<span[^>]*>.*?<\\/span>)/g).map((segment: string, index: number) => {\n if (segment.startsWith('<span')) {\n const value = segment.replace(/<[^>]+>/g, '');\n return (\n <span key={index} className='bg-yellow-300 dark:bg-primary-100 dark:text-black-900'>\n {value}\n </span>\n );\n }\n return <span key={index}>{segment}</span>;\n });\n\n const highlightSubstring = useCallback((value: string | number | null | undefined): JSX.Element | string | number | null | undefined => {\n if (!search) return value;\n if (!value || (typeof value !== 'string' && typeof value !== 'number')) return value;\n const escapedSearch = escapeRegExp(search);\n\n if (search.includes('*')) {\n const escapedPattern = search.replace(/[.+?^${}()|[\\]\\\\]/g, '\\\\$&');\n let regex;\n if (search.startsWith('*') && search.endsWith('*')) {\n const middlePattern = escapedPattern.slice(1, -1).replace(/\\*/g, '.*');\n regex = new RegExp(`(${middlePattern})`, 'gi');\n } else if (search.startsWith('*')) {\n const endPattern = escapedPattern.slice(1).replace(/\\*/g, '.*');\n regex = new RegExp(`(${endPattern})$`, 'gi');\n } else if (search.endsWith('*')) {\n const startPattern = escapedPattern.slice(0, -1).replace(/\\*/g, '.*');\n regex = new RegExp(`^(${startPattern})`, 'gi');\n } else {\n const exactPattern = escapedPattern.replace(/\\*/g, '.*');\n regex = new RegExp(`^(${exactPattern})$`, 'gi');\n }\n\n const highlightedText = value?.toString().replace(regex, (match) => `<span class=\"highlight\">${match}</span>`);\n return <span>{parseString(highlightedText)}</span>;\n } else {\n const regex = new RegExp(`(${escapedSearch?.trim()})`, 'gi');\n const searchValue = value?.toString()?.split(regex);\n return (\n <span className='overflow-clip text-ellipsis'>\n {searchValue[0]}\n <span className='bg-yellow-300 dark:bg-primary-100 dark:text-black-900'>{searchValue[1]}</span>\n {searchValue?.slice(2)?.join('')}\n </span>\n );\n }\n }, [search]);\n\n const RenderRow = useCallback(\n ({ index, style }: { index: number; style: React.CSSProperties }) => {\n const row = rows[index];\n if (!row) return <span>Loading</span>;\n const isLastRow = !isLoading && index >= rows.length - 6;\n prepareRow(row);\n\n return (\n <Row\n {...({\n row,\n isLastRow,\n lastRow,\n prepareRow,\n highlightSubstring,\n index,\n style,\n rowsLength: rows.length,\n level: level || row?.original?.__level,\n columns,\n expandedRows,\n rows,\n } as unknown as React.ComponentProps<typeof Row>)}\n />\n );\n },\n [columns, rows, isLoading, lastRow, prepareRow, expandedRows, highlightSubstring, level],\n );\n\n const activeInlineEditRef = useRef(activeInlineEdit);\n activeInlineEditRef.current = activeInlineEdit;\n\n const currencyDropdownOpenRef = useRef(!!currencyDropdownConfig);\n currencyDropdownOpenRef.current = !!currencyDropdownConfig;\n\n const handleScroll = useCallback(\n (value: ListOnScrollProps) => {\n if (!value.scrollUpdateWasRequested) {\n if (activeInlineEditRef.current) setActiveInlineEdit?.(null);\n if (currencyDropdownOpenRef.current) closeCurrencyDropdown?.();\n }\n if (onScrolling) onScrolling(value);\n },\n [onScrolling, setActiveInlineEdit, closeCurrencyDropdown],\n );\n\n return (\n <VariableSizeList\n outerElementType={CustomScrollbarsVirtualList}\n width={width - 2}\n height={height - 2}\n ref={listRef}\n innerElementType={level ? tableBodyWrapper : tableWrapper}\n itemCount={rows.length}\n itemSize={getSize}\n layout='vertical'\n overscanCount={20}\n onScroll={handleScroll}\n >\n {RenderRow}\n </VariableSizeList>\n );\n};\n"],"names":["CustomScrollbars","onScroll","forwardedRef","style","children","dispatchEvent","scrollbarsInstance","setScrollbarInstance","useState","refSetter","useCallback","scrollbarsRef","ref","instance","useEffect","jsx","CustomScrollbar","CustomScrollbarsVirtualList","forwardRef","props","tableConfig","useTableConfig","Rows","rows","prepareRow","isLoading","columns","width","height","onScrolling","level","allowAstarSearch","scrollbarRef","useRef","observer","tableWrapper","tableBodyWrapper","search","expandedRows","setActiveInlineEdit","activeInlineEdit","closeCurrencyDropdown","currencyDropdownConfig","useContext","TableContext","tableConfigRef","payload","listRef","rowIndex","sizeMap","rowHeight","useRowHeight","rowSlotHeight","getRowSlotHeight","rowSlotHeightRef","calculateRowHeightWithChildren","rowId","rowCounts","setMultipleRowSize","newSizeMap","row","additionalRowCounts","getSize","index","lastRow","node","entries","parseString","input","segment","value","highlightSubstring","escapedSearch","escapeRegExp","escapedPattern","regex","middlePattern","endPattern","startPattern","exactPattern","highlightedText","match","searchValue","jsxs","RenderRow","isLastRow","Row","activeInlineEditRef","currencyDropdownOpenRef","handleScroll","VariableSizeList"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=700,T=430,O=10,L=100,A=200,I=999999,E=5,D="cubic-bezier(0.18, 0.67, 0.6, 1.22)",N=20,C=200,R=200,S=40,F=28,t=".os-viewport",o="data-row-id",c="data-column-key",M=16,n="0px",s="-8px 0px 8px 0px rgba(255, 255, 255, 0.01)",U="-8px 0px 8px 0px rgba(0, 0, 0, 0.02)",P="28px",W="-160px",H="4px";exports.CELL_DEFAULT_RIGHT_OFFSET=n;exports.CELL_INDENT_PER_LEVEL_PX=M;exports.CELL_STICKY_SHADOW_DARK=s;exports.CELL_STICKY_SHADOW_LIGHT=U;exports.CHECKBOX_PENDING_EDITS_LEFT_OFFSET=P;exports.DATA_COLUMN_KEY_ATTR=c;exports.DATA_ROW_ID_ATTR=o;exports.DEFAULT_COLUMN_MAX_WIDTH=I;exports.DEFAULT_COLUMN_MIN_WIDTH=L;exports.DEFAULT_COLUMN_WIDTH=A;exports.DEFAULT_PAGE_SIZE=O;exports.DND_ACTIVATION_DISTANCE=E;exports.DROP_ANIMATION_DURATION=N;exports.DROP_ANIMATION_EASING=D;exports.FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM=H;exports.FLOATING_BAR_TOOLTIP_MARGIN_LEFT=W;exports.OS_VIEWPORT_SELECTOR=t;exports.ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH=S;exports.ROW_OPTIONS_COLUMN_WIDTH=F;exports.SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK=C;exports.SCROLL_TO_CELL_LEFT_OFFSET=R;exports.TOOLBAR_FIRST_BREAKPOINT=_;exports.TOOLBAR_SECOND_BREAKPOINT=T;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=700,T=430,O=10,L=1,A=100,I=200,E=999999,D=5,N="cubic-bezier(0.18, 0.67, 0.6, 1.22)",R=20,C=200,S=200,F=40,t=28,o=".os-viewport",c="data-row-id",n="data-column-key",s=16,M="0px",P="-8px 0px 8px 0px rgba(255, 255, 255, 0.01)",U="-8px 0px 8px 0px rgba(0, 0, 0, 0.02)",W="28px",H="-160px",B="4px";exports.CELL_DEFAULT_RIGHT_OFFSET=M;exports.CELL_INDENT_PER_LEVEL_PX=s;exports.CELL_STICKY_SHADOW_DARK=P;exports.CELL_STICKY_SHADOW_LIGHT=U;exports.CHECKBOX_PENDING_EDITS_LEFT_OFFSET=W;exports.DATA_COLUMN_KEY_ATTR=n;exports.DATA_ROW_ID_ATTR=c;exports.DEFAULT_COLUMN_MAX_WIDTH=E;exports.DEFAULT_COLUMN_MIN_WIDTH=A;exports.DEFAULT_COLUMN_WIDTH=I;exports.DEFAULT_PAGE_SIZE=O;exports.DND_ACTIVATION_DISTANCE=D;exports.DROP_ANIMATION_DURATION=R;exports.DROP_ANIMATION_EASING=N;exports.FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM=B;exports.FLOATING_BAR_TOOLTIP_MARGIN_LEFT=H;exports.OS_VIEWPORT_SELECTOR=o;exports.ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH=F;exports.ROW_OPTIONS_COLUMN_WIDTH=t;exports.ROW_SLOT_BORDER_PX=L;exports.SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK=C;exports.SCROLL_TO_CELL_LEFT_OFFSET=S;exports.TOOLBAR_FIRST_BREAKPOINT=_;exports.TOOLBAR_SECOND_BREAKPOINT=T;
2
2
  //# sourceMappingURL=constants.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.cjs.js","sources":["../../../../src/components/data-display/infinite-table/constants.ts"],"sourcesContent":["/**\n * Shared static values for the InfiniteTable and every component under it.\n *\n * Rule for this subtree: magic numbers, timings, sizes, and meaningful string\n * literals (DOM selectors, data-attributes, CSS values used in inline styles)\n * live here with a descriptive name. Tailwind `className` strings are NOT\n * extracted — they stay inline so JIT can see them and JSX stays readable.\n */\n\n// ---------------------------------------------------------------------------\n// Responsive toolbar breakpoints (header layout collapse thresholds, in px)\n// ---------------------------------------------------------------------------\nexport const TOOLBAR_FIRST_BREAKPOINT = 700;\nexport const TOOLBAR_SECOND_BREAKPOINT = 430;\n\n// ---------------------------------------------------------------------------\n// Table defaults\n// ---------------------------------------------------------------------------\n/** Default page size for pagination when the consumer doesn't pass `pageSize`. */\nexport const DEFAULT_PAGE_SIZE = 10;\n\n// ---------------------------------------------------------------------------\n// Column sizing defaults (react-table `defaultColumn`, in px)\n// ---------------------------------------------------------------------------\nexport const DEFAULT_COLUMN_MIN_WIDTH = 100;\nexport const DEFAULT_COLUMN_WIDTH = 200;\nexport const DEFAULT_COLUMN_MAX_WIDTH = 999999;\n\n// ---------------------------------------------------------------------------\n// Drag & drop (dnd-kit)\n// ---------------------------------------------------------------------------\n/** Pointer travel (px) before a drag starts, for both mouse and touch sensors. */\nexport const DND_ACTIVATION_DISTANCE = 5;\nexport const DROP_ANIMATION_EASING = 'cubic-bezier(0.18, 0.67, 0.6, 1.22)';\nexport const DROP_ANIMATION_DURATION = 20;\n\n// ---------------------------------------------------------------------------\n// scrollToCell — horizontal auto-scroll to a target inline-edit cell\n// ---------------------------------------------------------------------------\n/** Assumed column width (px) when a header has no explicit width, used to sum offset. */\nexport const SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK = 200;\n/** Left padding (px) kept before the target cell so it isn't flush to the edge. */\nexport const SCROLL_TO_CELL_LEFT_OFFSET = 200;\n\n// ---------------------------------------------------------------------------\n// Trailing action-column widths (px) used when summing sticky offsets\n// ---------------------------------------------------------------------------\n/** Fallback width for the row-additional-actions column when none is provided. */\nexport const ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH = 40;\n/** Width reserved for the row-options (three-dot) column. */\nexport const ROW_OPTIONS_COLUMN_WIDTH = 28;\n\n// ---------------------------------------------------------------------------\n// DOM selectors / data-attributes used to locate cells & the scroll viewport\n// ---------------------------------------------------------------------------\nexport const OS_VIEWPORT_SELECTOR = '.os-viewport';\nexport const DATA_ROW_ID_ATTR = 'data-row-id';\nexport const DATA_COLUMN_KEY_ATTR = 'data-column-key';\n\n// ---------------------------------------------------------------------------\n// DataCell — sizing / layout\n// ---------------------------------------------------------------------------\n/** Left indent (px) added per cascading nesting level. */\nexport const CELL_INDENT_PER_LEVEL_PX = 16;\n/** Fallback `right` offset for non-sticky cells. */\nexport const CELL_DEFAULT_RIGHT_OFFSET = '0px';\n\n// ---------------------------------------------------------------------------\n// DataCell — sticky first-cell drop shadow (theme-specific)\n// ---------------------------------------------------------------------------\nexport const CELL_STICKY_SHADOW_DARK = '-8px 0px 8px 0px rgba(255, 255, 255, 0.01)';\nexport const CELL_STICKY_SHADOW_LIGHT = '-8px 0px 8px 0px rgba(0, 0, 0, 0.02)';\n\n// ---------------------------------------------------------------------------\n// Inline-style pixel offsets (used in style={{…}}, not classNames)\n// ---------------------------------------------------------------------------\n/** Left offset for the checkbox cell when the pending-edits column is present. */\nexport const CHECKBOX_PENDING_EDITS_LEFT_OFFSET = '28px';\n/** Half the floating-bar tooltip width — negative margin to center it. */\nexport const FLOATING_BAR_TOOLTIP_MARGIN_LEFT = '-160px';\nexport const FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM = '4px';\n"],"names":["TOOLBAR_FIRST_BREAKPOINT","TOOLBAR_SECOND_BREAKPOINT","DEFAULT_PAGE_SIZE","DEFAULT_COLUMN_MIN_WIDTH","DEFAULT_COLUMN_WIDTH","DEFAULT_COLUMN_MAX_WIDTH","DND_ACTIVATION_DISTANCE","DROP_ANIMATION_EASING","DROP_ANIMATION_DURATION","SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK","SCROLL_TO_CELL_LEFT_OFFSET","ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH","ROW_OPTIONS_COLUMN_WIDTH","OS_VIEWPORT_SELECTOR","DATA_ROW_ID_ATTR","DATA_COLUMN_KEY_ATTR","CELL_INDENT_PER_LEVEL_PX","CELL_DEFAULT_RIGHT_OFFSET","CELL_STICKY_SHADOW_DARK","CELL_STICKY_SHADOW_LIGHT","CHECKBOX_PENDING_EDITS_LEFT_OFFSET","FLOATING_BAR_TOOLTIP_MARGIN_LEFT","FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM"],"mappings":"gFAYO,MAAMA,EAA2B,IAC3BC,EAA4B,IAM5BC,EAAoB,GAKpBC,EAA2B,IAC3BC,EAAuB,IACvBC,EAA2B,OAM3BC,EAA0B,EAC1BC,EAAwB,sCACxBC,EAA0B,GAM1BC,EAAuC,IAEvCC,EAA6B,IAM7BC,EAAuC,GAEvCC,EAA2B,GAK3BC,EAAuB,eACvBC,EAAmB,cACnBC,EAAuB,kBAMvBC,EAA2B,GAE3BC,EAA4B,MAK5BC,EAA0B,6CAC1BC,EAA2B,uCAM3BC,EAAqC,OAErCC,EAAmC,SACnCC,EAAqC"}
1
+ {"version":3,"file":"constants.cjs.js","sources":["../../../../src/components/data-display/infinite-table/constants.ts"],"sourcesContent":["/**\n * Shared static values for the InfiniteTable and every component under it.\n *\n * Rule for this subtree: magic numbers, timings, sizes, and meaningful string\n * literals (DOM selectors, data-attributes, CSS values used in inline styles)\n * live here with a descriptive name. Tailwind `className` strings are NOT\n * extracted — they stay inline so JIT can see them and JSX stays readable.\n */\n\n// ---------------------------------------------------------------------------\n// Responsive toolbar breakpoints (header layout collapse thresholds, in px)\n// ---------------------------------------------------------------------------\nexport const TOOLBAR_FIRST_BREAKPOINT = 700;\nexport const TOOLBAR_SECOND_BREAKPOINT = 430;\n\n// ---------------------------------------------------------------------------\n// Table defaults\n// ---------------------------------------------------------------------------\n/** Default page size for pagination when the consumer doesn't pass `pageSize`. */\nexport const DEFAULT_PAGE_SIZE = 10;\n\n// ---------------------------------------------------------------------------\n// Row sizing — virtualization & layout math\n// ---------------------------------------------------------------------------\n/**\n * Extra px added to the measured `h-row` content height to get a full row slot.\n * Accounts for the 1px `border-t` on each `<tr>`. The row content height itself\n * is a viewport clamp (`h-row`), measured at runtime via `useRowHeight`.\n */\nexport const ROW_SLOT_BORDER_PX = 1;\n\n// ---------------------------------------------------------------------------\n// Column sizing defaults (react-table `defaultColumn`, in px)\n// ---------------------------------------------------------------------------\nexport const DEFAULT_COLUMN_MIN_WIDTH = 100;\nexport const DEFAULT_COLUMN_WIDTH = 200;\nexport const DEFAULT_COLUMN_MAX_WIDTH = 999999;\n\n// ---------------------------------------------------------------------------\n// Drag & drop (dnd-kit)\n// ---------------------------------------------------------------------------\n/** Pointer travel (px) before a drag starts, for both mouse and touch sensors. */\nexport const DND_ACTIVATION_DISTANCE = 5;\nexport const DROP_ANIMATION_EASING = 'cubic-bezier(0.18, 0.67, 0.6, 1.22)';\nexport const DROP_ANIMATION_DURATION = 20;\n\n// ---------------------------------------------------------------------------\n// scrollToCell — horizontal auto-scroll to a target inline-edit cell\n// ---------------------------------------------------------------------------\n/** Assumed column width (px) when a header has no explicit width, used to sum offset. */\nexport const SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK = 200;\n/** Left padding (px) kept before the target cell so it isn't flush to the edge. */\nexport const SCROLL_TO_CELL_LEFT_OFFSET = 200;\n\n// ---------------------------------------------------------------------------\n// Trailing action-column widths (px) used when summing sticky offsets\n// ---------------------------------------------------------------------------\n/** Fallback width for the row-additional-actions column when none is provided. */\nexport const ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH = 40;\n/** Width reserved for the row-options (three-dot) column. */\nexport const ROW_OPTIONS_COLUMN_WIDTH = 28;\n\n// ---------------------------------------------------------------------------\n// DOM selectors / data-attributes used to locate cells & the scroll viewport\n// ---------------------------------------------------------------------------\nexport const OS_VIEWPORT_SELECTOR = '.os-viewport';\nexport const DATA_ROW_ID_ATTR = 'data-row-id';\nexport const DATA_COLUMN_KEY_ATTR = 'data-column-key';\n\n// ---------------------------------------------------------------------------\n// DataCell — sizing / layout\n// ---------------------------------------------------------------------------\n/** Left indent (px) added per cascading nesting level. */\nexport const CELL_INDENT_PER_LEVEL_PX = 16;\n/** Fallback `right` offset for non-sticky cells. */\nexport const CELL_DEFAULT_RIGHT_OFFSET = '0px';\n\n// ---------------------------------------------------------------------------\n// DataCell — sticky first-cell drop shadow (theme-specific)\n// ---------------------------------------------------------------------------\nexport const CELL_STICKY_SHADOW_DARK = '-8px 0px 8px 0px rgba(255, 255, 255, 0.01)';\nexport const CELL_STICKY_SHADOW_LIGHT = '-8px 0px 8px 0px rgba(0, 0, 0, 0.02)';\n\n// ---------------------------------------------------------------------------\n// Inline-style pixel offsets (used in style={{…}}, not classNames)\n// ---------------------------------------------------------------------------\n/** Left offset for the checkbox cell when the pending-edits column is present. */\nexport const CHECKBOX_PENDING_EDITS_LEFT_OFFSET = '28px';\n/** Half the floating-bar tooltip width — negative margin to center it. */\nexport const FLOATING_BAR_TOOLTIP_MARGIN_LEFT = '-160px';\nexport const FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM = '4px';\n"],"names":["TOOLBAR_FIRST_BREAKPOINT","TOOLBAR_SECOND_BREAKPOINT","DEFAULT_PAGE_SIZE","ROW_SLOT_BORDER_PX","DEFAULT_COLUMN_MIN_WIDTH","DEFAULT_COLUMN_WIDTH","DEFAULT_COLUMN_MAX_WIDTH","DND_ACTIVATION_DISTANCE","DROP_ANIMATION_EASING","DROP_ANIMATION_DURATION","SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK","SCROLL_TO_CELL_LEFT_OFFSET","ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH","ROW_OPTIONS_COLUMN_WIDTH","OS_VIEWPORT_SELECTOR","DATA_ROW_ID_ATTR","DATA_COLUMN_KEY_ATTR","CELL_INDENT_PER_LEVEL_PX","CELL_DEFAULT_RIGHT_OFFSET","CELL_STICKY_SHADOW_DARK","CELL_STICKY_SHADOW_LIGHT","CHECKBOX_PENDING_EDITS_LEFT_OFFSET","FLOATING_BAR_TOOLTIP_MARGIN_LEFT","FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM"],"mappings":"gFAYO,MAAMA,EAA2B,IAC3BC,EAA4B,IAM5BC,EAAoB,GAUpBC,EAAqB,EAKrBC,EAA2B,IAC3BC,EAAuB,IACvBC,EAA2B,OAM3BC,EAA0B,EAC1BC,EAAwB,sCACxBC,EAA0B,GAM1BC,EAAuC,IAEvCC,EAA6B,IAM7BC,EAAuC,GAEvCC,EAA2B,GAK3BC,EAAuB,eACvBC,EAAmB,cACnBC,EAAuB,kBAMvBC,EAA2B,GAE3BC,EAA4B,MAK5BC,EAA0B,6CAC1BC,EAA2B,uCAM3BC,EAAqC,OAErCC,EAAmC,SACnCC,EAAqC"}
@@ -10,6 +10,12 @@ export declare const TOOLBAR_FIRST_BREAKPOINT = 700;
10
10
  export declare const TOOLBAR_SECOND_BREAKPOINT = 430;
11
11
  /** Default page size for pagination when the consumer doesn't pass `pageSize`. */
12
12
  export declare const DEFAULT_PAGE_SIZE = 10;
13
+ /**
14
+ * Extra px added to the measured `h-row` content height to get a full row slot.
15
+ * Accounts for the 1px `border-t` on each `<tr>`. The row content height itself
16
+ * is a viewport clamp (`h-row`), measured at runtime via `useRowHeight`.
17
+ */
18
+ export declare const ROW_SLOT_BORDER_PX = 1;
13
19
  export declare const DEFAULT_COLUMN_MIN_WIDTH = 100;
14
20
  export declare const DEFAULT_COLUMN_WIDTH = 200;
15
21
  export declare const DEFAULT_COLUMN_MAX_WIDTH = 999999;
@@ -1,26 +1,27 @@
1
- const _ = 700, T = 430, O = 10, L = 100, A = 200, I = 999999, E = 5, D = "cubic-bezier(0.18, 0.67, 0.6, 1.22)", N = 20, o = 200, t = 200, c = 40, n = 28, s = ".os-viewport", C = "data-row-id", R = "data-column-key", F = 16, S = "0px", p = "-8px 0px 8px 0px rgba(255, 255, 255, 0.01)", x = "-8px 0px 8px 0px rgba(0, 0, 0, 0.02)", M = "28px", U = "-160px", P = "4px";
1
+ const _ = 700, T = 430, O = 10, L = 1, A = 100, I = 200, E = 999999, D = 5, N = "cubic-bezier(0.18, 0.67, 0.6, 1.22)", o = 20, t = 200, c = 200, R = 40, n = 28, s = ".os-viewport", C = "data-row-id", S = "data-column-key", F = 16, p = "0px", x = "-8px 0px 8px 0px rgba(255, 255, 255, 0.01)", M = "-8px 0px 8px 0px rgba(0, 0, 0, 0.02)", P = "28px", U = "-160px", W = "4px";
2
2
  export {
3
- S as CELL_DEFAULT_RIGHT_OFFSET,
3
+ p as CELL_DEFAULT_RIGHT_OFFSET,
4
4
  F as CELL_INDENT_PER_LEVEL_PX,
5
- p as CELL_STICKY_SHADOW_DARK,
6
- x as CELL_STICKY_SHADOW_LIGHT,
7
- M as CHECKBOX_PENDING_EDITS_LEFT_OFFSET,
8
- R as DATA_COLUMN_KEY_ATTR,
5
+ x as CELL_STICKY_SHADOW_DARK,
6
+ M as CELL_STICKY_SHADOW_LIGHT,
7
+ P as CHECKBOX_PENDING_EDITS_LEFT_OFFSET,
8
+ S as DATA_COLUMN_KEY_ATTR,
9
9
  C as DATA_ROW_ID_ATTR,
10
- I as DEFAULT_COLUMN_MAX_WIDTH,
11
- L as DEFAULT_COLUMN_MIN_WIDTH,
12
- A as DEFAULT_COLUMN_WIDTH,
10
+ E as DEFAULT_COLUMN_MAX_WIDTH,
11
+ A as DEFAULT_COLUMN_MIN_WIDTH,
12
+ I as DEFAULT_COLUMN_WIDTH,
13
13
  O as DEFAULT_PAGE_SIZE,
14
- E as DND_ACTIVATION_DISTANCE,
15
- N as DROP_ANIMATION_DURATION,
16
- D as DROP_ANIMATION_EASING,
17
- P as FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM,
14
+ D as DND_ACTIVATION_DISTANCE,
15
+ o as DROP_ANIMATION_DURATION,
16
+ N as DROP_ANIMATION_EASING,
17
+ W as FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM,
18
18
  U as FLOATING_BAR_TOOLTIP_MARGIN_LEFT,
19
19
  s as OS_VIEWPORT_SELECTOR,
20
- c as ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH,
20
+ R as ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH,
21
21
  n as ROW_OPTIONS_COLUMN_WIDTH,
22
- o as SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK,
23
- t as SCROLL_TO_CELL_LEFT_OFFSET,
22
+ L as ROW_SLOT_BORDER_PX,
23
+ t as SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK,
24
+ c as SCROLL_TO_CELL_LEFT_OFFSET,
24
25
  _ as TOOLBAR_FIRST_BREAKPOINT,
25
26
  T as TOOLBAR_SECOND_BREAKPOINT
26
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"constants.es.js","sources":["../../../../src/components/data-display/infinite-table/constants.ts"],"sourcesContent":["/**\n * Shared static values for the InfiniteTable and every component under it.\n *\n * Rule for this subtree: magic numbers, timings, sizes, and meaningful string\n * literals (DOM selectors, data-attributes, CSS values used in inline styles)\n * live here with a descriptive name. Tailwind `className` strings are NOT\n * extracted — they stay inline so JIT can see them and JSX stays readable.\n */\n\n// ---------------------------------------------------------------------------\n// Responsive toolbar breakpoints (header layout collapse thresholds, in px)\n// ---------------------------------------------------------------------------\nexport const TOOLBAR_FIRST_BREAKPOINT = 700;\nexport const TOOLBAR_SECOND_BREAKPOINT = 430;\n\n// ---------------------------------------------------------------------------\n// Table defaults\n// ---------------------------------------------------------------------------\n/** Default page size for pagination when the consumer doesn't pass `pageSize`. */\nexport const DEFAULT_PAGE_SIZE = 10;\n\n// ---------------------------------------------------------------------------\n// Column sizing defaults (react-table `defaultColumn`, in px)\n// ---------------------------------------------------------------------------\nexport const DEFAULT_COLUMN_MIN_WIDTH = 100;\nexport const DEFAULT_COLUMN_WIDTH = 200;\nexport const DEFAULT_COLUMN_MAX_WIDTH = 999999;\n\n// ---------------------------------------------------------------------------\n// Drag & drop (dnd-kit)\n// ---------------------------------------------------------------------------\n/** Pointer travel (px) before a drag starts, for both mouse and touch sensors. */\nexport const DND_ACTIVATION_DISTANCE = 5;\nexport const DROP_ANIMATION_EASING = 'cubic-bezier(0.18, 0.67, 0.6, 1.22)';\nexport const DROP_ANIMATION_DURATION = 20;\n\n// ---------------------------------------------------------------------------\n// scrollToCell — horizontal auto-scroll to a target inline-edit cell\n// ---------------------------------------------------------------------------\n/** Assumed column width (px) when a header has no explicit width, used to sum offset. */\nexport const SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK = 200;\n/** Left padding (px) kept before the target cell so it isn't flush to the edge. */\nexport const SCROLL_TO_CELL_LEFT_OFFSET = 200;\n\n// ---------------------------------------------------------------------------\n// Trailing action-column widths (px) used when summing sticky offsets\n// ---------------------------------------------------------------------------\n/** Fallback width for the row-additional-actions column when none is provided. */\nexport const ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH = 40;\n/** Width reserved for the row-options (three-dot) column. */\nexport const ROW_OPTIONS_COLUMN_WIDTH = 28;\n\n// ---------------------------------------------------------------------------\n// DOM selectors / data-attributes used to locate cells & the scroll viewport\n// ---------------------------------------------------------------------------\nexport const OS_VIEWPORT_SELECTOR = '.os-viewport';\nexport const DATA_ROW_ID_ATTR = 'data-row-id';\nexport const DATA_COLUMN_KEY_ATTR = 'data-column-key';\n\n// ---------------------------------------------------------------------------\n// DataCell — sizing / layout\n// ---------------------------------------------------------------------------\n/** Left indent (px) added per cascading nesting level. */\nexport const CELL_INDENT_PER_LEVEL_PX = 16;\n/** Fallback `right` offset for non-sticky cells. */\nexport const CELL_DEFAULT_RIGHT_OFFSET = '0px';\n\n// ---------------------------------------------------------------------------\n// DataCell — sticky first-cell drop shadow (theme-specific)\n// ---------------------------------------------------------------------------\nexport const CELL_STICKY_SHADOW_DARK = '-8px 0px 8px 0px rgba(255, 255, 255, 0.01)';\nexport const CELL_STICKY_SHADOW_LIGHT = '-8px 0px 8px 0px rgba(0, 0, 0, 0.02)';\n\n// ---------------------------------------------------------------------------\n// Inline-style pixel offsets (used in style={{…}}, not classNames)\n// ---------------------------------------------------------------------------\n/** Left offset for the checkbox cell when the pending-edits column is present. */\nexport const CHECKBOX_PENDING_EDITS_LEFT_OFFSET = '28px';\n/** Half the floating-bar tooltip width — negative margin to center it. */\nexport const FLOATING_BAR_TOOLTIP_MARGIN_LEFT = '-160px';\nexport const FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM = '4px';\n"],"names":["TOOLBAR_FIRST_BREAKPOINT","TOOLBAR_SECOND_BREAKPOINT","DEFAULT_PAGE_SIZE","DEFAULT_COLUMN_MIN_WIDTH","DEFAULT_COLUMN_WIDTH","DEFAULT_COLUMN_MAX_WIDTH","DND_ACTIVATION_DISTANCE","DROP_ANIMATION_EASING","DROP_ANIMATION_DURATION","SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK","SCROLL_TO_CELL_LEFT_OFFSET","ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH","ROW_OPTIONS_COLUMN_WIDTH","OS_VIEWPORT_SELECTOR","DATA_ROW_ID_ATTR","DATA_COLUMN_KEY_ATTR","CELL_INDENT_PER_LEVEL_PX","CELL_DEFAULT_RIGHT_OFFSET","CELL_STICKY_SHADOW_DARK","CELL_STICKY_SHADOW_LIGHT","CHECKBOX_PENDING_EDITS_LEFT_OFFSET","FLOATING_BAR_TOOLTIP_MARGIN_LEFT","FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM"],"mappings":"AAYO,MAAMA,IAA2B,KAC3BC,IAA4B,KAM5BC,IAAoB,IAKpBC,IAA2B,KAC3BC,IAAuB,KACvBC,IAA2B,QAM3BC,IAA0B,GAC1BC,IAAwB,uCACxBC,IAA0B,IAM1BC,IAAuC,KAEvCC,IAA6B,KAM7BC,IAAuC,IAEvCC,IAA2B,IAK3BC,IAAuB,gBACvBC,IAAmB,eACnBC,IAAuB,mBAMvBC,IAA2B,IAE3BC,IAA4B,OAK5BC,IAA0B,8CAC1BC,IAA2B,wCAM3BC,IAAqC,QAErCC,IAAmC,UACnCC,IAAqC;"}
1
+ {"version":3,"file":"constants.es.js","sources":["../../../../src/components/data-display/infinite-table/constants.ts"],"sourcesContent":["/**\n * Shared static values for the InfiniteTable and every component under it.\n *\n * Rule for this subtree: magic numbers, timings, sizes, and meaningful string\n * literals (DOM selectors, data-attributes, CSS values used in inline styles)\n * live here with a descriptive name. Tailwind `className` strings are NOT\n * extracted — they stay inline so JIT can see them and JSX stays readable.\n */\n\n// ---------------------------------------------------------------------------\n// Responsive toolbar breakpoints (header layout collapse thresholds, in px)\n// ---------------------------------------------------------------------------\nexport const TOOLBAR_FIRST_BREAKPOINT = 700;\nexport const TOOLBAR_SECOND_BREAKPOINT = 430;\n\n// ---------------------------------------------------------------------------\n// Table defaults\n// ---------------------------------------------------------------------------\n/** Default page size for pagination when the consumer doesn't pass `pageSize`. */\nexport const DEFAULT_PAGE_SIZE = 10;\n\n// ---------------------------------------------------------------------------\n// Row sizing — virtualization & layout math\n// ---------------------------------------------------------------------------\n/**\n * Extra px added to the measured `h-row` content height to get a full row slot.\n * Accounts for the 1px `border-t` on each `<tr>`. The row content height itself\n * is a viewport clamp (`h-row`), measured at runtime via `useRowHeight`.\n */\nexport const ROW_SLOT_BORDER_PX = 1;\n\n// ---------------------------------------------------------------------------\n// Column sizing defaults (react-table `defaultColumn`, in px)\n// ---------------------------------------------------------------------------\nexport const DEFAULT_COLUMN_MIN_WIDTH = 100;\nexport const DEFAULT_COLUMN_WIDTH = 200;\nexport const DEFAULT_COLUMN_MAX_WIDTH = 999999;\n\n// ---------------------------------------------------------------------------\n// Drag & drop (dnd-kit)\n// ---------------------------------------------------------------------------\n/** Pointer travel (px) before a drag starts, for both mouse and touch sensors. */\nexport const DND_ACTIVATION_DISTANCE = 5;\nexport const DROP_ANIMATION_EASING = 'cubic-bezier(0.18, 0.67, 0.6, 1.22)';\nexport const DROP_ANIMATION_DURATION = 20;\n\n// ---------------------------------------------------------------------------\n// scrollToCell — horizontal auto-scroll to a target inline-edit cell\n// ---------------------------------------------------------------------------\n/** Assumed column width (px) when a header has no explicit width, used to sum offset. */\nexport const SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK = 200;\n/** Left padding (px) kept before the target cell so it isn't flush to the edge. */\nexport const SCROLL_TO_CELL_LEFT_OFFSET = 200;\n\n// ---------------------------------------------------------------------------\n// Trailing action-column widths (px) used when summing sticky offsets\n// ---------------------------------------------------------------------------\n/** Fallback width for the row-additional-actions column when none is provided. */\nexport const ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH = 40;\n/** Width reserved for the row-options (three-dot) column. */\nexport const ROW_OPTIONS_COLUMN_WIDTH = 28;\n\n// ---------------------------------------------------------------------------\n// DOM selectors / data-attributes used to locate cells & the scroll viewport\n// ---------------------------------------------------------------------------\nexport const OS_VIEWPORT_SELECTOR = '.os-viewport';\nexport const DATA_ROW_ID_ATTR = 'data-row-id';\nexport const DATA_COLUMN_KEY_ATTR = 'data-column-key';\n\n// ---------------------------------------------------------------------------\n// DataCell — sizing / layout\n// ---------------------------------------------------------------------------\n/** Left indent (px) added per cascading nesting level. */\nexport const CELL_INDENT_PER_LEVEL_PX = 16;\n/** Fallback `right` offset for non-sticky cells. */\nexport const CELL_DEFAULT_RIGHT_OFFSET = '0px';\n\n// ---------------------------------------------------------------------------\n// DataCell — sticky first-cell drop shadow (theme-specific)\n// ---------------------------------------------------------------------------\nexport const CELL_STICKY_SHADOW_DARK = '-8px 0px 8px 0px rgba(255, 255, 255, 0.01)';\nexport const CELL_STICKY_SHADOW_LIGHT = '-8px 0px 8px 0px rgba(0, 0, 0, 0.02)';\n\n// ---------------------------------------------------------------------------\n// Inline-style pixel offsets (used in style={{…}}, not classNames)\n// ---------------------------------------------------------------------------\n/** Left offset for the checkbox cell when the pending-edits column is present. */\nexport const CHECKBOX_PENDING_EDITS_LEFT_OFFSET = '28px';\n/** Half the floating-bar tooltip width — negative margin to center it. */\nexport const FLOATING_BAR_TOOLTIP_MARGIN_LEFT = '-160px';\nexport const FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM = '4px';\n"],"names":["TOOLBAR_FIRST_BREAKPOINT","TOOLBAR_SECOND_BREAKPOINT","DEFAULT_PAGE_SIZE","ROW_SLOT_BORDER_PX","DEFAULT_COLUMN_MIN_WIDTH","DEFAULT_COLUMN_WIDTH","DEFAULT_COLUMN_MAX_WIDTH","DND_ACTIVATION_DISTANCE","DROP_ANIMATION_EASING","DROP_ANIMATION_DURATION","SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK","SCROLL_TO_CELL_LEFT_OFFSET","ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH","ROW_OPTIONS_COLUMN_WIDTH","OS_VIEWPORT_SELECTOR","DATA_ROW_ID_ATTR","DATA_COLUMN_KEY_ATTR","CELL_INDENT_PER_LEVEL_PX","CELL_DEFAULT_RIGHT_OFFSET","CELL_STICKY_SHADOW_DARK","CELL_STICKY_SHADOW_LIGHT","CHECKBOX_PENDING_EDITS_LEFT_OFFSET","FLOATING_BAR_TOOLTIP_MARGIN_LEFT","FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM"],"mappings":"AAYO,MAAMA,IAA2B,KAC3BC,IAA4B,KAM5BC,IAAoB,IAUpBC,IAAqB,GAKrBC,IAA2B,KAC3BC,IAAuB,KACvBC,IAA2B,QAM3BC,IAA0B,GAC1BC,IAAwB,uCACxBC,IAA0B,IAM1BC,IAAuC,KAEvCC,IAA6B,KAM7BC,IAAuC,IAEvCC,IAA2B,IAK3BC,IAAuB,gBACvBC,IAAmB,eACnBC,IAAuB,mBAMvBC,IAA2B,IAE3BC,IAA4B,OAK5BC,IAA0B,8CAC1BC,IAA2B,wCAM3BC,IAAqC,QAErCC,IAAmC,UACnCC,IAAqC;"}