@react-fabric/data 1.0.0-beta.61 → 1.0.0-beta.63

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 (76) hide show
  1. package/dist/cjs/checklist/CheckList.js +1 -1
  2. package/dist/cjs/histogram/Histogram.js +1 -1
  3. package/dist/cjs/i18n/index.js +4 -4
  4. package/dist/cjs/index.js +2 -0
  5. package/dist/cjs/json/JsonViewer.js +8 -8
  6. package/dist/cjs/pagination/Pagination.js +8 -8
  7. package/dist/cjs/table/BodyCell.js +2 -2
  8. package/dist/cjs/table/EmptyCell.js +2 -2
  9. package/dist/cjs/table/HeaderCell.js +6 -6
  10. package/dist/cjs/table/HtmlTable.js +78 -0
  11. package/dist/cjs/table/{Context.js → Provider.js} +2 -6
  12. package/dist/cjs/table/Table.js +4 -4
  13. package/dist/cjs/table/context.js +34 -0
  14. package/dist/cjs/table/useResizer.js +6 -4
  15. package/dist/cjs/tree/utils.js +13 -15
  16. package/dist/cjs/virtual/Gallery.js +2 -2
  17. package/dist/cjs/virtual/List.js +3 -3
  18. package/dist/esm/checklist/CheckList.js +1 -1
  19. package/dist/esm/histogram/Histogram.js +1 -1
  20. package/dist/esm/i18n/index.js +2 -2
  21. package/dist/esm/index.js +1 -0
  22. package/dist/esm/json/JsonViewer.js +8 -8
  23. package/dist/esm/pagination/Pagination.js +8 -8
  24. package/dist/esm/table/BodyCell.js +1 -1
  25. package/dist/esm/table/EmptyCell.js +1 -1
  26. package/dist/esm/table/HeaderCell.js +5 -5
  27. package/dist/esm/table/HtmlTable.js +78 -0
  28. package/dist/esm/table/{Context.js → Provider.js} +3 -6
  29. package/dist/esm/table/Table.js +3 -3
  30. package/dist/esm/table/context.js +33 -0
  31. package/dist/esm/table/useResizer.js +6 -4
  32. package/dist/esm/tree/useTree.js +12 -12
  33. package/dist/esm/tree/utils.js +11 -13
  34. package/dist/esm/virtual/Gallery.js +2 -2
  35. package/dist/esm/virtual/List.js +3 -3
  36. package/dist/types/checklist/CheckList.d.ts +1 -1
  37. package/dist/types/histogram/Histogram.d.ts +3 -3
  38. package/dist/types/index.d.ts +1 -0
  39. package/dist/types/json/JsonViewer.d.ts +2 -2
  40. package/dist/types/pagination/Pagination.d.ts +1 -1
  41. package/dist/types/table/BodyCell.d.ts +1 -1
  42. package/dist/types/table/EmptyCell.d.ts +1 -1
  43. package/dist/types/table/HtmlTable.d.ts +21 -0
  44. package/dist/types/table/{Context.d.ts → Provider.d.ts} +0 -6
  45. package/dist/types/table/Table.d.ts +1 -1
  46. package/dist/types/table/context.d.ts +7 -0
  47. package/dist/types/table/useVirtualTable.d.ts +1 -1
  48. package/dist/types/tree/TreePanel.d.ts +1 -1
  49. package/dist/types/tree/types.d.ts +6 -6
  50. package/dist/types/virtual/Gallery.d.ts +1 -1
  51. package/dist/types/virtual/List.d.ts +1 -1
  52. package/package.json +13 -14
  53. package/src/checklist/CheckList.tsx +1 -1
  54. package/src/histogram/Histogram.tsx +3 -3
  55. package/src/i18n/index.ts +2 -2
  56. package/src/index.ts +1 -0
  57. package/src/json/JsonViewer.tsx +2 -2
  58. package/src/pagination/Pagination.tsx +8 -8
  59. package/src/table/BodyCell.tsx +6 -31
  60. package/src/table/EmptyCell.tsx +4 -17
  61. package/src/table/HeaderCell.tsx +9 -41
  62. package/src/table/HtmlTable.tsx +128 -0
  63. package/src/table/{Context.tsx → Provider.tsx} +3 -20
  64. package/src/table/Table.tsx +4 -4
  65. package/src/table/context.ts +33 -0
  66. package/src/table/useResizer.ts +6 -4
  67. package/src/tree/TreePanel.tsx +1 -1
  68. package/src/tree/types.ts +6 -6
  69. package/src/virtual/Gallery.tsx +2 -2
  70. package/src/virtual/List.tsx +3 -3
  71. /package/dist/cjs/i18n/{ar.json.js → ar/data.json.js} +0 -0
  72. /package/dist/cjs/i18n/{en.json.js → en/data.json.js} +0 -0
  73. /package/dist/esm/i18n/{ar.json.js → ar/data.json.js} +0 -0
  74. /package/dist/esm/i18n/{en.json.js → en/data.json.js} +0 -0
  75. /package/src/i18n/{ar.json → ar/data.json} +0 -0
  76. /package/src/i18n/{en.json → en/data.json} +0 -0
@@ -21,7 +21,7 @@ var emptyIcon = "M20.84 22.73L11.11 13H3V11H9.11L6.11 8H3V6H4.11L1.11 3L2.39 1.7
21
21
  * It also provides an empty state when there are no items to display.
22
22
  *
23
23
  * @param {HistogramProps} props - The properties for the Histogram component.
24
- * @returns {JSX.Element} - The rendered Histogram component.
24
+ * @returns {React.ReactElement} - The rendered Histogram component.
25
25
  *
26
26
  * @example
27
27
  * ```jsx
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
 
3
3
  import { addTranslationBundle } from '@react-fabric/core';
4
- import ar from './ar.json.js';
5
- import en from './en.json.js';
4
+ import ar from './ar/data.json.js';
5
+ import en from './en/data.json.js';
6
6
 
7
7
  /*
8
8
  * React Fabric
package/dist/esm/index.js CHANGED
@@ -5,6 +5,7 @@ export { CheckList } from './checklist/CheckList.js';
5
5
  export { Histogram } from './histogram/Histogram.js';
6
6
  export { JsonViewer } from './json/JsonViewer.js';
7
7
  export { Pagination } from './pagination/Pagination.js';
8
+ export { HtmlTable } from './table/HtmlTable.js';
8
9
  export { Table } from './table/Table.js';
9
10
  export { TreePanel } from './tree/TreePanel.js';
10
11
  export { VirtualGallery } from './virtual/Gallery.js';
@@ -14,7 +14,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
14
14
  var _excluded = ["className", "json", "copy", "propertyScheme", "filters", "inline", "labelWidth", "formatter", "labeler", "onFilter", "emptyMessage", "showPropertyTree"];
15
15
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
16
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
- var reduceObject = function reduceObject(json) {
17
+ var _reduceObject = function reduceObject(json) {
18
18
  var keys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
19
19
  var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "";
20
20
  var ret = [];
@@ -23,7 +23,7 @@ var reduceObject = function reduceObject(json) {
23
23
  key = _ref2[0],
24
24
  value = _ref2[1];
25
25
  if (isArray(value) && isObject(value[0])) {
26
- ret.push.apply(ret, _toConsumableArray(reduceObject(value, [].concat(_toConsumableArray(keys), [key]), key)));
26
+ ret.push.apply(ret, _toConsumableArray(_reduceObject(value, [].concat(_toConsumableArray(keys), [key]), key)));
27
27
  } else {
28
28
  var obj = {
29
29
  field: prefix ? "".concat(prefix, ".").concat(key) : key,
@@ -31,14 +31,14 @@ var reduceObject = function reduceObject(json) {
31
31
  path: [].concat(_toConsumableArray(keys), [key]).join(".")
32
32
  };
33
33
  if (isObject(value) && !isEmpty(value) && !("_score_" in value)) {
34
- obj.children = reduceObject(value, [].concat(_toConsumableArray(keys), [key]));
34
+ obj.children = _reduceObject(value, [].concat(_toConsumableArray(keys), [key]));
35
35
  }
36
36
  ret.push(obj);
37
37
  }
38
38
  });
39
39
  return ret.flat(99);
40
40
  };
41
- var JsonEntry = function JsonEntry(_ref3) {
41
+ var _JsonEntry = function JsonEntry(_ref3) {
42
42
  var value = _ref3.value,
43
43
  path = _ref3.path,
44
44
  field = _ref3.field,
@@ -200,7 +200,7 @@ var JsonEntry = function JsonEntry(_ref3) {
200
200
  })]
201
201
  })]
202
202
  }), expanded && (children === null || children === void 0 ? void 0 : children.map(function (item) {
203
- return /*#__PURE__*/jsx(JsonEntry, _objectSpread(_objectSpread({}, item), {}, {
203
+ return /*#__PURE__*/jsx(_JsonEntry, _objectSpread(_objectSpread({}, item), {}, {
204
204
  level: level + 1,
205
205
  copy: copy,
206
206
  inline: inline,
@@ -223,7 +223,7 @@ var JsonEntry = function JsonEntry(_ref3) {
223
223
  * It also provides options for copying values and filtering properties.
224
224
  *
225
225
  * @param {JsonViewProps<T>} props - The properties for the JsonViewer component.
226
- * @returns {JSX.Element} The rendered JsonViewer component.
226
+ * @returns {React.ReactElement} The rendered JsonViewer component.
227
227
  *
228
228
  * @example
229
229
  * ```jsx
@@ -260,12 +260,12 @@ var JsonViewer = function JsonViewer(_ref5) {
260
260
  var _useTranslation2 = useTranslation("data"),
261
261
  t = _useTranslation2.t;
262
262
  var list = useMemo(function () {
263
- return reduceObject(json);
263
+ return _reduceObject(json);
264
264
  }, [json]);
265
265
  return /*#__PURE__*/jsx("div", _objectSpread(_objectSpread({}, rest), {}, {
266
266
  className: classNames(className, "bg-alternate"),
267
267
  children: !isEmpty(json) ? list.map(function (item) {
268
- return /*#__PURE__*/jsx(JsonEntry, _objectSpread(_objectSpread({}, item), {}, {
268
+ return /*#__PURE__*/jsx(_JsonEntry, _objectSpread(_objectSpread({}, item), {}, {
269
269
  copy: copy,
270
270
  inline: inline,
271
271
  showPropertyTree: showPropertyTree,
@@ -14,7 +14,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
14
14
  * It uses memoization to optimize rendering performance.
15
15
  *
16
16
  * @param {PaginationProps} props - The properties for the Pagination component.
17
- * @returns {JSX.Element} The rendered Pagination component.
17
+ * @returns {React.ReactElement} The rendered Pagination component.
18
18
  */
19
19
  var Pagination = /*#__PURE__*/memo(function (_ref) {
20
20
  var page = _ref.page,
@@ -33,7 +33,7 @@ var Pagination = /*#__PURE__*/memo(function (_ref) {
33
33
  onClick: function onClick() {
34
34
  return onPageChange(pg);
35
35
  },
36
- className: classNames("leading-none text-sm hover:bg-primary-200 w-8 h-6 rounded-full", page === pg && "bg-primary-500 text-white pointer-events-none"),
36
+ className: classNames("leading-none text-sm hover:bg-primary-200 w-8 h-6 rounded-full cursor-pointer", page === pg && "bg-primary-500 text-white pointer-events-none"),
37
37
  children: pg + 1
38
38
  }, pg);
39
39
  }), mid && /*#__PURE__*/jsx("span", {
@@ -44,7 +44,7 @@ var Pagination = /*#__PURE__*/memo(function (_ref) {
44
44
  onClick: function onClick() {
45
45
  return onPageChange(pg);
46
46
  },
47
- className: classNames("leading-none text-sm hover:bg-primary-200 w-8 h-6 rounded-full", page === pg && "bg-primary-500 text-white pointer-events-none"),
47
+ className: classNames("leading-none text-sm hover:bg-primary-200 w-8 h-6 rounded-full cursor-pointer", page === pg && "bg-primary-500 text-white pointer-events-none"),
48
48
  children: pg + 1
49
49
  }, pg);
50
50
  }), last && /*#__PURE__*/jsx("span", {
@@ -55,7 +55,7 @@ var Pagination = /*#__PURE__*/memo(function (_ref) {
55
55
  onClick: function onClick() {
56
56
  return onPageChange(pg);
57
57
  },
58
- className: classNames("leading-none text-sm hover:bg-primary-200 w-8 h-6 rounded-full", page === pg && "bg-primary-500 text-white pointer-events-none"),
58
+ className: classNames("leading-none text-sm hover:bg-primary-200 w-8 h-6 rounded-full cursor-pointer", page === pg && "bg-primary-500 text-white pointer-events-none"),
59
59
  children: pg + 1
60
60
  }, pg);
61
61
  })]
@@ -67,7 +67,7 @@ var Pagination = /*#__PURE__*/memo(function (_ref) {
67
67
  onClick: function onClick() {
68
68
  return onPageChange(0);
69
69
  },
70
- className: classNames("leading-none text-sm hover:bg-primary-200 w-8 h-6 rounded-full", page === 0 && "pointer-events-none text-tint-300"),
70
+ className: classNames("leading-none text-sm hover:bg-primary-200 w-8 h-6 rounded-full cursor-pointer", page === 0 && "pointer-events-none text-tint-300"),
71
71
  children: /*#__PURE__*/jsx(Icon, {
72
72
  icon: "icon-[mdi--chevron-double-left]",
73
73
  rtlFlip: true
@@ -76,7 +76,7 @@ var Pagination = /*#__PURE__*/memo(function (_ref) {
76
76
  onClick: function onClick() {
77
77
  return onPageChange(page - 1);
78
78
  },
79
- className: classNames("leading-none text-sm hover:bg-primary-200 w-8 h-6 rounded-full", page === 0 && "pointer-events-none text-tint-300"),
79
+ className: classNames("leading-none text-sm hover:bg-primary-200 w-8 h-6 rounded-full cursor-pointer", page === 0 && "pointer-events-none text-tint-300"),
80
80
  children: /*#__PURE__*/jsx(Icon, {
81
81
  icon: "icon-[mdi--chevron-left]",
82
82
  rtlFlip: true
@@ -88,7 +88,7 @@ var Pagination = /*#__PURE__*/memo(function (_ref) {
88
88
  onClick: function onClick() {
89
89
  return onPageChange(page + 1);
90
90
  },
91
- className: classNames("leading-none text-sm hover:bg-primary-200 w-8 h-6 rounded-full", page + 1 >= totalPages && "pointer-events-none text-tint-300"),
91
+ className: classNames("leading-none text-sm hover:bg-primary-200 w-8 h-6 rounded-full cursor-pointer", page + 1 >= totalPages && "pointer-events-none text-tint-300"),
92
92
  children: /*#__PURE__*/jsx(Icon, {
93
93
  icon: "icon-[mdi--chevron-right]",
94
94
  rtlFlip: true
@@ -97,7 +97,7 @@ var Pagination = /*#__PURE__*/memo(function (_ref) {
97
97
  onClick: function onClick() {
98
98
  return onPageChange(totalPages - 1);
99
99
  },
100
- className: classNames("leading-none text-sm hover:bg-primary-200 w-8 h-6 rounded-full", page + 1 >= totalPages && "pointer-events-none text-tint-300"),
100
+ className: classNames("leading-none text-sm hover:bg-primary-200 w-8 h-6 rounded-full cursor-pointer", page + 1 >= totalPages && "pointer-events-none text-tint-300"),
101
101
  children: /*#__PURE__*/jsx(Icon, {
102
102
  icon: "icon-[mdi--chevron-double-right]",
103
103
  rtlFlip: true
@@ -4,7 +4,7 @@ import { DateDisplay } from '@react-fabric/date';
4
4
  import { getByPath, isTrue, Format, isObject, isArray } from '@react-fabric/utilities';
5
5
  import classNames from 'classnames';
6
6
  import { useMemo } from 'react';
7
- import { useTableContext } from './Context.js';
7
+ import { useTableContext } from './context.js';
8
8
  import { COL_DEFAULT_WIDTH, COL_MIN_WIDTH, COL_MAX_WIDTH } from './types.js';
9
9
  import { jsx } from 'react/jsx-runtime';
10
10
 
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import { useMemo } from 'react';
4
- import { useTableContext } from './Context.js';
4
+ import { useTableContext } from './context.js';
5
5
  import { COL_DEFAULT_WIDTH, COL_MIN_WIDTH, COL_MAX_WIDTH } from './types.js';
6
6
  import { jsx } from 'react/jsx-runtime';
7
7
 
@@ -6,7 +6,7 @@ import { Menu, MenuItem, Divider, Tooltip, Icon, getIconProps, DropdownTool, But
6
6
  import { isEmpty } from '@react-fabric/utilities';
7
7
  import { useMemo, useCallback } from 'react';
8
8
  import { ColumnFilters } from './ColumnFilters.js';
9
- import { useTableContext } from './Context.js';
9
+ import { useTableContext } from './context.js';
10
10
  import { COL_DEFAULT_WIDTH, COL_MIN_WIDTH, COL_MAX_WIDTH } from './types.js';
11
11
  import { jsx, jsxs } from 'react/jsx-runtime';
12
12
 
@@ -48,7 +48,7 @@ var HeaderCell = function HeaderCell(_ref) {
48
48
  var menus = useMemo(function () {
49
49
  var ret = [];
50
50
  if (filterable && (dataType !== null && dataType !== void 0 ? dataType : filterOptions)) {
51
- ret.push( /*#__PURE__*/jsx(Menu, {
51
+ ret.push(/*#__PURE__*/jsx(Menu, {
52
52
  label: "Filter",
53
53
  icon: filter ? "icon-[mdi--check]" : "",
54
54
  trigger: "click",
@@ -63,7 +63,7 @@ var HeaderCell = function HeaderCell(_ref) {
63
63
  }, "filters"));
64
64
  }
65
65
  if (sortable) {
66
- ret.push( /*#__PURE__*/jsx(MenuItem, {
66
+ ret.push(/*#__PURE__*/jsx(MenuItem, {
67
67
  label: "Sort ascending",
68
68
  icon: "icon-[mdi--sort-ascending]",
69
69
  onClick: function onClick() {
@@ -79,7 +79,7 @@ var HeaderCell = function HeaderCell(_ref) {
79
79
  }
80
80
  if (actions) {
81
81
  var _ret;
82
- ret.push( /*#__PURE__*/jsx(Divider, {}, "div"));
82
+ ret.push(/*#__PURE__*/jsx(Divider, {}, "div"));
83
83
  (_ret = ret).push.apply(_ret, _toConsumableArray(actions));
84
84
  }
85
85
  if (ret.length === 1) {
@@ -110,7 +110,7 @@ var HeaderCell = function HeaderCell(_ref) {
110
110
  content: tooltip !== null && tooltip !== void 0 ? tooltip : label,
111
111
  disabled: !(tooltip !== null && tooltip !== void 0 ? tooltip : label),
112
112
  children: /*#__PURE__*/jsxs("div", {
113
- className: "flex-initial px-2 py-1 text-sm truncate sticky start-0",
113
+ className: "flex-initial px-2 py-1 text-sm truncate sticky inset-s-0",
114
114
  children: [icon && /*#__PURE__*/jsx(Icon, _objectSpread({}, getIconProps(icon))), /*#__PURE__*/jsx("span", {
115
115
  children: label !== null && label !== void 0 ? label : " "
116
116
  })]
@@ -0,0 +1,78 @@
1
+ 'use client';
2
+
3
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
+ import { Footer } from '@react-fabric/core';
5
+ import { getByPath } from '@react-fabric/utilities';
6
+ import classNames from 'classnames';
7
+ import { useMemo } from 'react';
8
+ import { usePagination } from '../hooks/usePagination.js';
9
+ import { Pagination } from '../pagination/Pagination.js';
10
+ import { jsxs, jsx } from 'react/jsx-runtime';
11
+
12
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
+ var HtmlTable = function HtmlTable(_ref) {
15
+ var data = _ref.data,
16
+ columns = _ref.columns,
17
+ _ref$paginationSize = _ref.paginationSize,
18
+ paginationSize = _ref$paginationSize === void 0 ? 25 : _ref$paginationSize,
19
+ className = _ref.className;
20
+ var paginator = usePagination({
21
+ totalRecords: data.length,
22
+ perPage: paginationSize
23
+ });
24
+ var startIndex = useMemo(function () {
25
+ return paginator.page * paginationSize;
26
+ }, [paginator.page, paginationSize]);
27
+ var dataPage = useMemo(function () {
28
+ return paginationSize > 0 ? data.slice(startIndex, startIndex + paginationSize) : data;
29
+ }, [data, paginationSize, startIndex]);
30
+ return /*#__PURE__*/jsxs("div", {
31
+ className: className,
32
+ children: [/*#__PURE__*/jsxs("table", {
33
+ className: "table-fixed border-spacing-1 border-separate w-full text-sm",
34
+ children: [/*#__PURE__*/jsx("thead", {
35
+ className: "sticky top-0 z-1",
36
+ children: /*#__PURE__*/jsx("tr", {
37
+ children: columns.map(function (col, idx) {
38
+ var _ref2, _col$headRenderer;
39
+ return /*#__PURE__*/jsx("th", {
40
+ className: "text-start truncate bg-accent-100 px-2 py-1 font-medium text-accent-800",
41
+ style: {
42
+ width: col.width,
43
+ maxWidth: col.maxWidth
44
+ },
45
+ children: (_ref2 = (_col$headRenderer = col.headRenderer) !== null && _col$headRenderer !== void 0 ? _col$headRenderer : col.label) !== null && _ref2 !== void 0 ? _ref2 : " "
46
+ }, idx);
47
+ })
48
+ })
49
+ }), /*#__PURE__*/jsx("tbody", {
50
+ className: "bg-alternate",
51
+ children: dataPage.map(function (row, idx) {
52
+ return /*#__PURE__*/jsx("tr", {
53
+ children: columns.map(function (col, cidx) {
54
+ var _col$renderer, _col$renderer2;
55
+ return /*#__PURE__*/jsx("td", {
56
+ className: classNames("px-2 py-1 truncate", col.align === "center" && "text-center", col.align === "end" && "text-end", col.className),
57
+ style: {
58
+ width: col.width,
59
+ maxWidth: col.maxWidth
60
+ },
61
+ children: (_col$renderer = (_col$renderer2 = col.renderer) === null || _col$renderer2 === void 0 ? void 0 : _col$renderer2.call(col, getByPath(row, col.id.toString()), row, startIndex + idx)) !== null && _col$renderer !== void 0 ? _col$renderer : getByPath(row, col.id.toString())
62
+ }, "".concat(idx, "-").concat(cidx));
63
+ })
64
+ }, idx);
65
+ })
66
+ })]
67
+ }), paginationSize > 0 && /*#__PURE__*/jsx(Footer, {
68
+ flex: true,
69
+ justify: "end",
70
+ className: "px-2 py-1 sticky bottom-0 bg-tint-50",
71
+ children: /*#__PURE__*/jsx(Pagination, _objectSpread({
72
+ minimal: true
73
+ }, paginator))
74
+ })]
75
+ });
76
+ };
77
+
78
+ export { HtmlTable };
@@ -1,11 +1,11 @@
1
1
  'use client';
2
2
 
3
3
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
- import { useRef, useState, useCallback, createContext, useContext } from 'react';
4
+ import { useRef, useState, useCallback } from 'react';
5
+ import { TableContext } from './context.js';
5
6
  import { useResizer } from './useResizer.js';
6
7
  import { jsxs, jsx } from 'react/jsx-runtime';
7
8
 
8
- var TableContext = /*#__PURE__*/createContext({});
9
9
  var TableProvider = function TableProvider(_ref) {
10
10
  var children = _ref.children;
11
11
  var ghostRef = useRef(null);
@@ -35,8 +35,5 @@ var TableProvider = function TableProvider(_ref) {
35
35
  })]
36
36
  });
37
37
  };
38
- var useTableContext = function useTableContext() {
39
- return useContext(TableContext);
40
- };
41
38
 
42
- export { TableProvider, useTableContext };
39
+ export { TableProvider };
@@ -9,7 +9,7 @@ import { useTranslation } from 'react-i18next';
9
9
  import { AddColumn } from './AddColumn.js';
10
10
  import { BodyRow } from './BodyRow.js';
11
11
  import { CheckboxCell } from './CheckboxCell.js';
12
- import { TableProvider } from './Context.js';
12
+ import { TableProvider } from './Provider.js';
13
13
  import { EmptyCell } from './EmptyCell.js';
14
14
  import { HeaderCell } from './HeaderCell.js';
15
15
  import { useTableColumns } from './useTableColumns.js';
@@ -132,7 +132,7 @@ var Table = function Table(_ref) {
132
132
  ref: scrollerRef,
133
133
  children: [/*#__PURE__*/jsxs("div", {
134
134
  "data-ref": "tableHeader",
135
- className: "bg-base font-medium sticky top-0 h-8 area-head border-b select-none flex flex-nowrap z-3",
135
+ className: "bg-default font-medium sticky top-0 h-8 area-head border-b select-none flex flex-nowrap z-3",
136
136
  children: [/*#__PURE__*/jsxs("div", {
137
137
  className: wrapperStart,
138
138
  children: [canExpand && /*#__PURE__*/jsx("div", {
@@ -186,7 +186,7 @@ var Table = function Table(_ref) {
186
186
  return "__GROUP__" in data ? /*#__PURE__*/jsx("div", {
187
187
  ref: measureElement,
188
188
  "data-index": index,
189
- className: classNames("text-md bg-base border-y border-tint-100 border-t-0 cursor-pointer flex items-center justify-start gap-1 z-2", isActiveSticky(index) && "sticky top-8"),
189
+ className: classNames("text-md bg-default border-y border-tint-100 border-t-0 cursor-pointer flex items-center justify-start gap-1 z-2", isActiveSticky(index) && "sticky top-8"),
190
190
  role: "none",
191
191
  onClick: function onClick() {
192
192
  return toggleGroupExpand(data.key);
@@ -0,0 +1,33 @@
1
+ 'use client';
2
+
3
+ import { createContext, useContext } from 'react';
4
+
5
+ /*
6
+ * React Fabric
7
+ * @version: 1.0.0
8
+ *
9
+ *
10
+ * The MIT License (MIT)
11
+ * Copyright (c) 2026 Adarsh Pastakia
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
14
+ * and associated documentation files (the "Software"), to deal in the Software without restriction,
15
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
16
+ * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
17
+ * subject to the following conditions:
18
+ *
19
+ * The above copyright notice and this permission notice shall be included in all copies or substantial
20
+ * portions of the Software.
21
+ *
22
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
23
+ * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
24
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26
+ */
27
+
28
+ var TableContext = /*#__PURE__*/createContext({});
29
+ var useTableContext = function useTableContext() {
30
+ return useContext(TableContext);
31
+ };
32
+
33
+ export { TableContext, useTableContext };
@@ -1,5 +1,7 @@
1
1
  'use client';
2
2
 
3
+ import { useCallback } from 'react';
4
+
3
5
  /*
4
6
  * React Fabric
5
7
  * @version: 1.0.0
@@ -26,20 +28,20 @@
26
28
  var useResizer = function useResizer(colEl, ghostEl, callback) {
27
29
  var placeholder = ghostEl.firstElementChild;
28
30
  var isRtl = getComputedStyle(colEl).direction === "rtl";
29
- var onResize = function onResize(evt) {
31
+ var onResize = useCallback(function (evt) {
30
32
  /** ***************** check if reverse enabled of RTL *******************/
31
33
  var box = colEl.getBoundingClientRect();
32
34
  var x = isRtl ? box.left - evt.clientX : evt.clientX - box.right;
33
35
  placeholder.style.width = "".concat(colEl.offsetWidth + x, "px");
34
- };
36
+ }, [colEl, isRtl, placeholder]);
35
37
 
36
38
  /** ***************** dettach handlers on mouseup *******************/
37
- var onResizeEnd = function onResizeEnd() {
39
+ var onResizeEnd = useCallback(function () {
38
40
  callback(placeholder.offsetWidth);
39
41
  ghostEl.style.display = "none";
40
42
  document.removeEventListener("mousemove", onResize);
41
43
  document.removeEventListener("mouseup", onResizeEnd);
42
- };
44
+ }, [callback, placeholder, ghostEl]);
43
45
 
44
46
  /** ***************** attach handlers *******************/
45
47
  var box = colEl.getBoundingClientRect();
@@ -7,7 +7,7 @@ import { useDebounce } from '@react-fabric/core';
7
7
  import { EMPTY_ARRAY, isEmpty } from '@react-fabric/utilities';
8
8
  import memoizeOne from 'memoize-one';
9
9
  import { useEffectEvent, useRef, useCallback, useReducer, useEffect } from 'react';
10
- import { refactorTree, makeTreeMap, flattenTree, updateSelection, updateChecked, filterTree } from './utils.js';
10
+ import { refactorTree as _refactorTree, makeTreeMap as _makeTreeMap, flattenTree as _flattenTree, updateSelection, updateChecked, filterTree } from './utils.js';
11
11
 
12
12
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
13
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -55,7 +55,7 @@ var useTree = function useTree(_ref) {
55
55
  setTimeout(function () {
56
56
  void Promise.resolve(onLoad === null || onLoad === void 0 ? void 0 : onLoad(node.id)).then(function () {
57
57
  var resp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ARRAY;
58
- node.children = refactorTree(resp, {
58
+ node.children = _refactorTree(resp, {
59
59
  sorter: sorter,
60
60
  defaultExpanded: defaultExpanded
61
61
  }, {
@@ -96,12 +96,12 @@ var useTree = function useTree(_ref) {
96
96
  }, [onQuery]);
97
97
  var _useReducer = useReducer(function (state, action) {
98
98
  if (action.type === "load") {
99
- state.items = refactorTree(action.items, {
99
+ state.items = _refactorTree(action.items, {
100
100
  sorter: sorter,
101
101
  defaultExpanded: defaultExpanded
102
102
  });
103
- state.itemMap = makeTreeMap(state.items);
104
- state.tree = flattenTree(state.items);
103
+ state.itemMap = _makeTreeMap(state.items);
104
+ state.tree = _flattenTree(state.items);
105
105
  state.selected = undefined;
106
106
  state.checked = undefined;
107
107
  state.query = "";
@@ -117,9 +117,9 @@ var useTree = function useTree(_ref) {
117
117
  }
118
118
  if (action.type === "loaded") {
119
119
  var _state$checked;
120
- state.itemMap = makeTreeMap(state.items);
120
+ state.itemMap = _makeTreeMap(state.items);
121
121
  fireExpandToggle(Array.from(state.itemMap.values()));
122
- state.tree = flattenTree(state.items);
122
+ state.tree = _flattenTree(state.items);
123
123
  state.selected = selected;
124
124
  updateSelection({
125
125
  nodes: state.itemMap,
@@ -151,7 +151,7 @@ var useTree = function useTree(_ref) {
151
151
  !node.leaf && ((_node$children2 = node.children) === null || _node$children2 === void 0 ? void 0 : _node$children2.length) && (node.open = true);
152
152
  });
153
153
  fireExpandToggle(Array.from(state.itemMap.values()));
154
- state.tree = flattenTree(state.items);
154
+ state.tree = _flattenTree(state.items);
155
155
  return _objectSpread({}, state);
156
156
  }
157
157
  if (action.type === "collapseAll") {
@@ -159,7 +159,7 @@ var useTree = function useTree(_ref) {
159
159
  !node.leaf && (node.open = false);
160
160
  });
161
161
  fireExpandToggle([]);
162
- state.tree = flattenTree(state.items);
162
+ state.tree = _flattenTree(state.items);
163
163
  return _objectSpread({}, state);
164
164
  }
165
165
  if (action.type === "filter") {
@@ -173,7 +173,7 @@ var useTree = function useTree(_ref) {
173
173
  }
174
174
  } else {
175
175
  filterTree(state.itemMap, action.query, matcher);
176
- state.tree = flattenTree(state.items);
176
+ state.tree = _flattenTree(state.items);
177
177
  }
178
178
  return _objectSpread(_objectSpread({}, state), {}, {
179
179
  query: action.query
@@ -195,7 +195,7 @@ var useTree = function useTree(_ref) {
195
195
  selected: state.selected,
196
196
  multiple: multiple
197
197
  });
198
- state.tree = flattenTree(state.items);
198
+ state.tree = _flattenTree(state.items);
199
199
  fireSelected(state.selected, (_state$itemMap$get = state.itemMap.get(action.id)) === null || _state$itemMap$get === void 0 ? void 0 : _state$itemMap$get.data);
200
200
  return _objectSpread({}, state);
201
201
  }
@@ -206,7 +206,7 @@ var useTree = function useTree(_ref) {
206
206
  multiple: multiple,
207
207
  selected: action.id
208
208
  });
209
- state.tree = flattenTree(state.items);
209
+ state.tree = _flattenTree(state.items);
210
210
  return _objectSpread({}, state);
211
211
  }
212
212
  if (action.type === "toggleCheck") {
@@ -10,10 +10,10 @@ var defaultSorter = function defaultSorter(a, b) {
10
10
  if (!!a.leaf !== !!b.leaf) return a.leaf ? 1 : -1;
11
11
  return compareValues()(a.label, b.label);
12
12
  };
13
- var getChildren = function getChildren() {
13
+ var _getChildren = function getChildren() {
14
14
  var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
15
15
  return list.map(function (item) {
16
- return [item].concat(_toConsumableArray(getChildren(item.children)));
16
+ return [item].concat(_toConsumableArray(_getChildren(item.children)));
17
17
  }).flat(99).filter(Boolean);
18
18
  };
19
19
  var getIntermediate = function getIntermediate() {
@@ -28,7 +28,7 @@ var getIntermediate = function getIntermediate() {
28
28
  };
29
29
 
30
30
  // convert node item to internal node used by the tree
31
- var refactorTree = function refactorTree(nodes, _ref) {
31
+ var _refactorTree = function refactorTree(nodes, _ref) {
32
32
  var _ref$sorter = _ref.sorter,
33
33
  sorter = _ref$sorter === void 0 ? defaultSorter : _ref$sorter,
34
34
  _ref$defaultExpanded = _ref.defaultExpanded,
@@ -52,7 +52,7 @@ var refactorTree = function refactorTree(nodes, _ref) {
52
52
  lines: []
53
53
  }, node), {}, {
54
54
  leaf: !!node.leaf,
55
- children: node.children && refactorTree(node.children, {
55
+ children: node.children && _refactorTree(node.children, {
56
56
  sorter: sorter,
57
57
  defaultExpanded: defaultExpanded
58
58
  }, {
@@ -63,18 +63,16 @@ var refactorTree = function refactorTree(nodes, _ref) {
63
63
  });
64
64
  return list;
65
65
  };
66
- var makeTreeMap = function makeTreeMap(nodes) {
66
+ var _makeTreeMap = function makeTreeMap(nodes) {
67
67
  var map = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Map();
68
68
  nodes.forEach(function (node) {
69
69
  if (map.has(node.id)) throw new Error("Node with id [".concat(node.id, "] already exists, please make sure all ids are unique"));
70
70
  map.set(node.id, node);
71
- node.children && makeTreeMap(node.children, map);
71
+ node.children && _makeTreeMap(node.children, map);
72
72
  });
73
73
  return map;
74
74
  };
75
-
76
- // make flat list to be rendered by virtual list
77
- var flattenTree = function flattenTree(nodes) {
75
+ var _flattenTree = function flattenTree(nodes) {
78
76
  var lines = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
79
77
  var list = [];
80
78
  var filtered = nodes.filter(function (node) {
@@ -84,7 +82,7 @@ var flattenTree = function flattenTree(nodes) {
84
82
  var _node$children2;
85
83
  node.lines = [].concat(_toConsumableArray(lines), [idx === filtered.length - 1 ? 2 : 3]);
86
84
  list.push(node);
87
- (node.open || node.childFiltered) && node.children && list.push.apply(list, _toConsumableArray(flattenTree(node.children.filter(function (child) {
85
+ (node.open || node.childFiltered) && node.children && list.push.apply(list, _toConsumableArray(_flattenTree(node.children.filter(function (child) {
88
86
  return !child.filtered;
89
87
  }), [].concat(_toConsumableArray(lines), [idx === filtered.length - 1 ? 0 : 1]))));
90
88
  node.open && ((_node$children2 = node.children) === null || _node$children2 === void 0 ? void 0 : _node$children2.length) === 0 && list.push({
@@ -127,7 +125,7 @@ var updateChecked = function updateChecked(list, id, checked) {
127
125
  if (node) {
128
126
  node.checked = (checked !== null && checked !== void 0 ? checked : node.checked === 0) ? 1 : 0;
129
127
  // check all children
130
- node.children && getChildren(node.children).forEach(function (child) {
128
+ node.children && _getChildren(node.children).forEach(function (child) {
131
129
  return child.checked = node.checked;
132
130
  });
133
131
  var parent = node.parent;
@@ -151,7 +149,7 @@ var filterTree = function filterTree(nodes, query, matcher) {
151
149
  parentNode && (parentNode.childFiltered = true);
152
150
  parent = parentNode === null || parentNode === void 0 ? void 0 : parentNode.parent;
153
151
  }
154
- node.children && getChildren(node.children).forEach(function (child) {
152
+ node.children && _getChildren(node.children).forEach(function (child) {
155
153
  child.parentFiltered = true;
156
154
  child.filtered = false;
157
155
  });
@@ -164,4 +162,4 @@ var filterTree = function filterTree(nodes, query, matcher) {
164
162
  });
165
163
  };
166
164
 
167
- export { filterTree, flattenTree, makeTreeMap, refactorTree, updateChecked, updateSelection };
165
+ export { filterTree, _flattenTree as flattenTree, _makeTreeMap as makeTreeMap, _refactorTree as refactorTree, updateChecked, updateSelection };
@@ -182,7 +182,7 @@ var _VirtualGallery = function _VirtualGallery(_ref) {
182
182
  return /*#__PURE__*/jsx("div", _objectSpread(_objectSpread({
183
183
  ref: scrollerRef,
184
184
  onScroll: handleScroll,
185
- className: classNames("area-content bg-base overflow-auto")
185
+ className: classNames("area-content bg-default overflow-auto")
186
186
  }, aria), {}, {
187
187
  children: /*#__PURE__*/jsxs("div", {
188
188
  className: classNames("flex flex-nowrap justify-center gap-2 min-h-full"),
@@ -258,7 +258,7 @@ var GenericMemo = memo;
258
258
  * It also provides a scroller for easy navigation through the items.
259
259
  *
260
260
  * @param {VirtualGalleryProps<T>} props - The properties for the VirtualGallery component.
261
- * @returns {JSX.Element} The rendered VirtualGallery component.
261
+ * @returns {React.ReactElement} The rendered VirtualGallery component.
262
262
  *
263
263
  * @example
264
264
  * ```jsx