@dbcdk/react-components 0.0.5 → 0.0.7

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 (276) hide show
  1. package/dist/assets/logo.js +2 -85
  2. package/dist/components/__stories__/_data/table.d.ts +15 -0
  3. package/dist/components/__stories__/_data/table.js +49 -0
  4. package/dist/components/__stories__/story-components/Colors.d.ts +2 -1
  5. package/dist/components/__stories__/story-components/Colors.js +87 -142
  6. package/dist/components/__stories__/story-components/Spacing.d.ts +1 -0
  7. package/dist/components/__stories__/story-components/Spacing.js +58 -166
  8. package/dist/components/app-header/AppHeader.d.ts +4 -3
  9. package/dist/components/app-header/AppHeader.js +3 -6
  10. package/dist/components/attribute-chip/AttributeChip.d.ts +1 -0
  11. package/dist/components/attribute-chip/AttributeChip.js +3 -14
  12. package/dist/components/avatar/Avatar.d.ts +2 -2
  13. package/dist/components/avatar/Avatar.js +37 -71
  14. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +4 -4
  15. package/dist/components/breadcrumbs/Breadcrumbs.js +4 -13
  16. package/dist/components/button/Button.d.ts +3 -2
  17. package/dist/components/button/Button.js +54 -56
  18. package/dist/components/button/Button.module.css +1 -1
  19. package/dist/components/card/Card.d.ts +8 -7
  20. package/dist/components/card/Card.js +19 -60
  21. package/dist/components/card-container/CardContainer.d.ts +3 -3
  22. package/dist/components/card-container/CardContainer.js +4 -16
  23. package/dist/components/chip/Chip.d.ts +6 -5
  24. package/dist/components/chip/Chip.js +14 -38
  25. package/dist/components/chip/Chip.module.css +9 -1
  26. package/dist/components/circle/Circle.d.ts +3 -2
  27. package/dist/components/circle/Circle.js +3 -10
  28. package/dist/components/clear-button/ClearButton.d.ts +2 -1
  29. package/dist/components/clear-button/ClearButton.js +6 -17
  30. package/dist/components/code-block/CodeBlock.d.ts +1 -0
  31. package/dist/components/code-block/CodeBlock.js +4 -10
  32. package/dist/components/copy-button/CopyButton.d.ts +4 -3
  33. package/dist/components/copy-button/CopyButton.js +19 -26
  34. package/dist/components/datetime-picker/DateTimePicker.d.ts +8 -5
  35. package/dist/components/datetime-picker/DateTimePicker.js +262 -475
  36. package/dist/components/datetime-picker/dateTimeHelpers.d.ts +13 -0
  37. package/dist/components/datetime-picker/dateTimeHelpers.js +119 -0
  38. package/dist/components/filter-field/FilterField.d.ts +5 -2
  39. package/dist/components/filter-field/FilterField.js +130 -173
  40. package/dist/components/filter-field/FilterField.module.css +21 -5
  41. package/dist/components/filtering/chip-multi-toggle/ChipMultiToggle.d.ts +36 -0
  42. package/dist/components/filtering/chip-multi-toggle/ChipMultiToggle.js +53 -0
  43. package/dist/components/filtering/chip-multi-toggle/ChipMultiToggle.module.css +60 -0
  44. package/dist/components/forms/checkbox/Checkbox.d.ts +31 -0
  45. package/dist/components/forms/checkbox/Checkbox.js +27 -0
  46. package/dist/components/{checkbox → forms/checkbox}/Checkbox.module.css +0 -1
  47. package/dist/components/forms/checkbox-group/CheckboxGroup.d.ts +47 -0
  48. package/dist/components/forms/checkbox-group/CheckboxGroup.js +75 -0
  49. package/dist/components/forms/checkbox-group/CheckboxGroup.module.css +115 -0
  50. package/dist/components/{input → forms/input}/Input.d.ts +9 -5
  51. package/dist/components/forms/input/Input.js +70 -0
  52. package/dist/components/{input → forms/input}/Input.module.css +1 -0
  53. package/dist/components/forms/input-container/InputContainer.d.ts +15 -0
  54. package/dist/components/forms/input-container/InputContainer.js +15 -0
  55. package/dist/components/forms/input-container/InputContainer.module.css +34 -0
  56. package/dist/components/forms/multi-select/MultiSelect.d.ts +20 -0
  57. package/dist/components/forms/multi-select/MultiSelect.js +19 -0
  58. package/dist/components/forms/select/Select.d.ts +21 -0
  59. package/dist/components/forms/select/Select.js +94 -0
  60. package/dist/components/forms/text-area/Textarea.d.ts +17 -0
  61. package/dist/components/forms/text-area/Textarea.js +33 -0
  62. package/dist/components/forms/text-area/Textarea.module.css +26 -0
  63. package/dist/components/headline/Headline.js +18 -43
  64. package/dist/components/{link/Link.d.ts → hyperlink/Hyperlink.d.ts} +2 -2
  65. package/dist/components/hyperlink/Hyperlink.js +11 -0
  66. package/dist/components/{link/Link.module.css → hyperlink/Hyperlink.module.css} +5 -14
  67. package/dist/components/icon/Icon.d.ts +4 -3
  68. package/dist/components/icon/Icon.js +11 -17
  69. package/dist/components/interval-select/IntervalSelect.d.ts +30 -0
  70. package/dist/components/interval-select/IntervalSelect.js +82 -0
  71. package/dist/components/menu/Menu.js +25 -67
  72. package/dist/components/meta-bar/MetaBar.d.ts +4 -4
  73. package/dist/components/meta-bar/MetaBar.js +7 -20
  74. package/dist/components/nav-bar/NavBar.d.ts +5 -5
  75. package/dist/components/nav-bar/NavBar.js +15 -45
  76. package/dist/components/{modal → overlay/modal}/Modal.d.ts +4 -2
  77. package/dist/components/overlay/modal/Modal.js +92 -0
  78. package/dist/components/{modal → overlay/modal}/provider/ModalProvider.d.ts +0 -1
  79. package/dist/components/overlay/modal/provider/ModalProvider.js +70 -0
  80. package/dist/components/overlay/side-panel/SidePanel.d.ts +16 -0
  81. package/dist/components/overlay/side-panel/SidePanel.js +10 -0
  82. package/dist/components/overlay/side-panel/SidePanel.module.css +56 -0
  83. package/dist/components/overlay/side-panel/useSidePanel.d.ts +5 -0
  84. package/dist/components/overlay/side-panel/useSidePanel.js +11 -0
  85. package/dist/components/overlay/tooltip/Tooltip.d.ts +13 -0
  86. package/dist/components/overlay/tooltip/Tooltip.js +17 -0
  87. package/dist/components/overlay/tooltip/Tooltip.module.css +106 -0
  88. package/dist/components/overlay/tooltip/TooltipProvider.d.ts +20 -0
  89. package/dist/components/overlay/tooltip/TooltipProvider.js +244 -0
  90. package/dist/components/overlay/tooltip/useTooltipTrigger.d.ts +24 -0
  91. package/dist/components/overlay/tooltip/useTooltipTrigger.js +108 -0
  92. package/dist/components/page/Page.d.ts +7 -6
  93. package/dist/components/page/Page.js +4 -21
  94. package/dist/components/page-layout/PageLayout.d.ts +11 -12
  95. package/dist/components/page-layout/PageLayout.js +35 -71
  96. package/dist/components/page-layout/components/page-layout-hero/PageLayoutHero.js +4 -22
  97. package/dist/components/pagination/Pagination.d.ts +2 -1
  98. package/dist/components/pagination/Pagination.js +38 -121
  99. package/dist/components/panel/Panel.d.ts +4 -3
  100. package/dist/components/panel/Panel.js +5 -10
  101. package/dist/components/popover/Popover.d.ts +1 -0
  102. package/dist/components/popover/Popover.js +116 -141
  103. package/dist/components/search-box/SearchBox.d.ts +2 -2
  104. package/dist/components/search-box/SearchBox.js +112 -162
  105. package/dist/components/segmented-progress-bar/SegmentedProgressBar.d.ts +1 -1
  106. package/dist/components/segmented-progress-bar/SegmentedProgressBar.js +47 -94
  107. package/dist/components/sidebar/Sidebar.d.ts +1 -0
  108. package/dist/components/sidebar/Sidebar.js +5 -7
  109. package/dist/components/sidebar/components/SidebarItem.js +6 -14
  110. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.d.ts +1 -1
  111. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.js +48 -88
  112. package/dist/components/sidebar/components/sidebar-container/SidebarContainer.d.ts +3 -2
  113. package/dist/components/sidebar/components/sidebar-container/SidebarContainer.js +11 -41
  114. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.d.ts +1 -0
  115. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.js +4 -25
  116. package/dist/components/sidebar/components/sidebar-items/SidebarItems.js +9 -23
  117. package/dist/components/sidebar/components/sidenav-filteirng/SidenavFiltering.js +19 -40
  118. package/dist/components/sidebar/providers/SidebarProvider.d.ts +2 -1
  119. package/dist/components/sidebar/providers/SidebarProvider.js +182 -165
  120. package/dist/components/skeleton-loader/SkeletonLoader.js +68 -266
  121. package/dist/components/skeleton-loader/skeleton-loader-item/SkeletonLoaderItem.js +11 -34
  122. package/dist/components/split-button/SplitButton.d.ts +7 -5
  123. package/dist/components/split-button/SplitButton.js +4 -27
  124. package/dist/components/split-pane/SplitPane.js +69 -105
  125. package/dist/components/split-pane/provider/SplitPaneContext.js +77 -71
  126. package/dist/components/table/Table.d.ts +9 -7
  127. package/dist/components/table/Table.js +115 -238
  128. package/dist/components/table/Table.module.css +5 -1
  129. package/dist/components/table/components/column-resizer/ColumnResizer.js +4 -15
  130. package/dist/components/table/components/empty-state/EmptyState.d.ts +6 -5
  131. package/dist/components/table/components/empty-state/EmptyState.js +22 -41
  132. package/dist/components/table/components/table-settings/TableSettings.d.ts +2 -1
  133. package/dist/components/table/components/table-settings/TableSettings.js +9 -27
  134. package/dist/components/table/tanstack.d.ts +1 -1
  135. package/dist/components/table/tanstack.js +154 -160
  136. package/dist/components/tabs/Tabs.d.ts +1 -0
  137. package/dist/components/tabs/Tabs.js +32 -81
  138. package/dist/components/toast/Toast.d.ts +1 -1
  139. package/dist/components/toast/Toast.js +4 -37
  140. package/dist/components/toast/Toast.module.css +1 -0
  141. package/dist/components/toast/provider/ToastProvider.d.ts +1 -1
  142. package/dist/components/toast/provider/ToastProvider.js +60 -87
  143. package/dist/components/user-display/UserDisplay.d.ts +2 -1
  144. package/dist/components/user-display/UserDisplay.js +4 -20
  145. package/dist/constants/severity.d.ts +1 -1
  146. package/dist/constants/severity.js +14 -16
  147. package/dist/constants/severity.types.d.ts +1 -1
  148. package/dist/constants/severity.types.js +1 -1
  149. package/dist/constants/sizes.js +6 -8
  150. package/dist/hooks/usePagination.d.ts +1 -1
  151. package/dist/hooks/usePagination.js +75 -82
  152. package/dist/hooks/useSorting.js +112 -110
  153. package/dist/hooks/useTableData.d.ts +1 -1
  154. package/dist/hooks/useTableData.js +42 -47
  155. package/dist/hooks/useTableSelection.js +121 -121
  156. package/dist/hooks/useTableSettings.js +23 -25
  157. package/dist/hooks/useTheme.d.ts +3 -7
  158. package/dist/hooks/useTheme.js +52 -47
  159. package/dist/hooks/useTimeDuration.d.ts +2 -2
  160. package/dist/hooks/useTimeDuration.js +33 -34
  161. package/dist/hooks/useViewportFill.d.ts +3 -2
  162. package/dist/hooks/useViewportFill.js +55 -48
  163. package/dist/index.d.ts +17 -8
  164. package/dist/index.js +18 -8
  165. package/dist/src/styles/styles.css +3 -3
  166. package/dist/styles/css-helper-classes/flex.css +4 -0
  167. package/dist/styles/styles.css +3 -3
  168. package/dist/styles/themes/dbc/dark.css +1 -1
  169. package/dist/styles/themes/dbc/light.css +2 -1
  170. package/dist/styles/themes/forfatterweb/light.css +1 -1
  171. package/dist/styles/themes/types.js +1 -1
  172. package/dist/types/a11y-props.types.d.ts +5 -5
  173. package/dist/types/a11y-props.types.js +1 -1
  174. package/dist/types/sizes.types.js +1 -1
  175. package/dist/utils/arrays/nested-filtering.js +43 -33
  176. package/dist/utils/date/formatDate.js +25 -16
  177. package/package.json +18 -9
  178. package/dist/assets/logo.cjs +0 -87
  179. package/dist/components/__stories__/story-components/Colors.cjs +0 -159
  180. package/dist/components/__stories__/story-components/Spacing.cjs +0 -190
  181. package/dist/components/app-header/AppHeader.cjs +0 -14
  182. package/dist/components/attribute-chip/AttributeChip.cjs +0 -22
  183. package/dist/components/avatar/Avatar.cjs +0 -101
  184. package/dist/components/breadcrumbs/Breadcrumbs.cjs +0 -22
  185. package/dist/components/button/Button.cjs +0 -87
  186. package/dist/components/card/Card.cjs +0 -69
  187. package/dist/components/card-container/CardContainer.cjs +0 -24
  188. package/dist/components/checkbox/Checkbox.cjs +0 -42
  189. package/dist/components/checkbox/Checkbox.d.ts +0 -12
  190. package/dist/components/checkbox/Checkbox.js +0 -36
  191. package/dist/components/chip/Chip.cjs +0 -50
  192. package/dist/components/circle/Circle.cjs +0 -18
  193. package/dist/components/clear-button/ClearButton.cjs +0 -26
  194. package/dist/components/code-block/CodeBlock.cjs +0 -18
  195. package/dist/components/copy-button/CopyButton.cjs +0 -35
  196. package/dist/components/datetime-picker/DateTimePicker.cjs +0 -504
  197. package/dist/components/filter-field/FilterField.cjs +0 -189
  198. package/dist/components/headline/Headline.cjs +0 -53
  199. package/dist/components/icon/Icon.cjs +0 -27
  200. package/dist/components/input/Input.cjs +0 -89
  201. package/dist/components/input/Input.js +0 -83
  202. package/dist/components/link/Link.cjs +0 -46
  203. package/dist/components/link/Link.js +0 -21
  204. package/dist/components/menu/Menu.cjs +0 -96
  205. package/dist/components/meta-bar/MetaBar.cjs +0 -29
  206. package/dist/components/modal/Modal.cjs +0 -134
  207. package/dist/components/modal/Modal.js +0 -128
  208. package/dist/components/modal/provider/ModalProvider.cjs +0 -80
  209. package/dist/components/modal/provider/ModalProvider.js +0 -77
  210. package/dist/components/multi-select/MultiSelect.cjs +0 -59
  211. package/dist/components/multi-select/MultiSelect.d.ts +0 -18
  212. package/dist/components/multi-select/MultiSelect.js +0 -57
  213. package/dist/components/nav-bar/NavBar.cjs +0 -55
  214. package/dist/components/page/Page.cjs +0 -30
  215. package/dist/components/page-layout/PageLayout.cjs +0 -84
  216. package/dist/components/page-layout/components/page-layout-hero/PageLayoutHero.cjs +0 -32
  217. package/dist/components/pagination/Pagination.cjs +0 -133
  218. package/dist/components/panel/Panel.cjs +0 -18
  219. package/dist/components/popover/Popover.cjs +0 -149
  220. package/dist/components/search-box/SearchBox.cjs +0 -175
  221. package/dist/components/segmented-progress-bar/SegmentedProgressBar.cjs +0 -103
  222. package/dist/components/select/Select.cjs +0 -121
  223. package/dist/components/select/Select.d.ts +0 -12
  224. package/dist/components/select/Select.js +0 -119
  225. package/dist/components/sidebar/Sidebar.cjs +0 -11
  226. package/dist/components/sidebar/components/SidebarItem.cjs +0 -18
  227. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.cjs +0 -100
  228. package/dist/components/sidebar/components/sidebar-container/SidebarContainer.cjs +0 -50
  229. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.cjs +0 -34
  230. package/dist/components/sidebar/components/sidebar-items/SidebarItems.cjs +0 -29
  231. package/dist/components/sidebar/components/sidenav-filteirng/SidenavFiltering.cjs +0 -52
  232. package/dist/components/sidebar/providers/SidebarProvider.cjs +0 -179
  233. package/dist/components/skeleton-loader/SkeletonLoader.cjs +0 -270
  234. package/dist/components/skeleton-loader/skeleton-loader-item/SkeletonLoaderItem.cjs +0 -42
  235. package/dist/components/split-button/SplitButton.cjs +0 -37
  236. package/dist/components/split-pane/SplitPane.cjs +0 -123
  237. package/dist/components/split-pane/provider/SplitPaneContext.cjs +0 -87
  238. package/dist/components/table/Table.cjs +0 -249
  239. package/dist/components/table/components/column-resizer/ColumnResizer.cjs +0 -22
  240. package/dist/components/table/components/empty-state/EmptyState.cjs +0 -52
  241. package/dist/components/table/components/table-settings/TableSettings.cjs +0 -32
  242. package/dist/components/table/tanstack.cjs +0 -193
  243. package/dist/components/tabs/Tabs.cjs +0 -90
  244. package/dist/components/text-area/Textarea.cjs +0 -62
  245. package/dist/components/text-area/Textarea.d.ts +0 -14
  246. package/dist/components/text-area/Textarea.js +0 -56
  247. package/dist/components/text-area/Textarea.module.css +0 -3
  248. package/dist/components/toast/Toast.cjs +0 -47
  249. package/dist/components/toast/provider/ToastProvider.cjs +0 -98
  250. package/dist/components/tooltip/Tooltip.cjs +0 -183
  251. package/dist/components/tooltip/Tooltip.d.ts +0 -11
  252. package/dist/components/tooltip/Tooltip.js +0 -177
  253. package/dist/components/tooltip/Tooltip.module.css +0 -66
  254. package/dist/components/user-display/UserDisplay.cjs +0 -28
  255. package/dist/constants/severity.cjs +0 -21
  256. package/dist/constants/severity.types.cjs +0 -2
  257. package/dist/constants/sizes.cjs +0 -11
  258. package/dist/hooks/usePagination.cjs +0 -88
  259. package/dist/hooks/useSorting.cjs +0 -118
  260. package/dist/hooks/useTableData.cjs +0 -52
  261. package/dist/hooks/useTableSelection.cjs +0 -130
  262. package/dist/hooks/useTableSettings.cjs +0 -28
  263. package/dist/hooks/useTheme.cjs +0 -58
  264. package/dist/hooks/useTimeDuration.cjs +0 -39
  265. package/dist/hooks/useViewportFill.cjs +0 -52
  266. package/dist/index.cjs +0 -383
  267. package/dist/styles/themes/types.cjs +0 -2
  268. package/dist/types/a11y-props.types.cjs +0 -2
  269. package/dist/types/assets.d.cjs +0 -2
  270. package/dist/types/assets.d.js +0 -1
  271. package/dist/types/css.d.cjs +0 -2
  272. package/dist/types/css.d.js +0 -1
  273. package/dist/types/sizes.types.cjs +0 -2
  274. package/dist/utils/arrays/nested-filtering.cjs +0 -40
  275. package/dist/utils/date/formatDate.cjs +0 -19
  276. /package/dist/components/{modal → overlay/modal}/Modal.module.css +0 -0
@@ -1,87 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var React = require('react');
5
-
6
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
-
8
- var React__default = /*#__PURE__*/_interopDefault(React);
9
-
10
- const SplitPaneContext = React__default.default.createContext(null);
11
- function clamp(n, min, max) {
12
- return Math.max(min, Math.min(max, n));
13
- }
14
- function readStoredSize(key) {
15
- try {
16
- const raw = localStorage.getItem(key);
17
- if (!raw) return null;
18
- const num = Number(raw);
19
- return Number.isFinite(num) ? num : null;
20
- } catch {
21
- return null;
22
- }
23
- }
24
- function writeStoredSize(key, value) {
25
- try {
26
- localStorage.setItem(key, String(Math.round(value)));
27
- } catch {
28
- }
29
- }
30
- function useSplitPaneContext() {
31
- const ctx = React__default.default.useContext(SplitPaneContext);
32
- if (!ctx) throw new Error("SplitPane components must be used within <SplitPane />");
33
- return ctx;
34
- }
35
- function SplitPaneProvider({
36
- children,
37
- direction,
38
- initialPrimarySize,
39
- minPrimarySize,
40
- minSecondarySize,
41
- storageKey
42
- }) {
43
- const containerRef = React.useRef(null);
44
- const [primarySize, setPrimarySize] = React.useState(initialPrimarySize);
45
- React.useEffect(() => {
46
- if (!storageKey) return;
47
- const stored = readStoredSize(storageKey);
48
- if (stored === null) return;
49
- setPrimarySize(stored);
50
- }, [storageKey]);
51
- React.useEffect(() => {
52
- const el = containerRef.current;
53
- if (!el) return;
54
- const clampToContainer = () => {
55
- const rect = el.getBoundingClientRect();
56
- const total = direction === "horizontal" ? rect.width : rect.height;
57
- if (!Number.isFinite(total) || total <= 0) return;
58
- const maxPrimary = Math.max(minPrimarySize, total - minSecondarySize);
59
- setPrimarySize((prev) => clamp(prev, minPrimarySize, maxPrimary));
60
- };
61
- clampToContainer();
62
- const ro = new ResizeObserver(() => clampToContainer());
63
- ro.observe(el);
64
- return () => ro.disconnect();
65
- }, [direction, minPrimarySize, minSecondarySize]);
66
- React.useEffect(() => {
67
- if (!storageKey) return;
68
- writeStoredSize(storageKey, primarySize);
69
- }, [storageKey, primarySize]);
70
- const value = React.useMemo(
71
- () => ({
72
- direction,
73
- primarySize,
74
- setPrimarySize,
75
- minPrimarySize,
76
- minSecondarySize,
77
- containerRef,
78
- storageKey
79
- }),
80
- [direction, primarySize, minPrimarySize, minSecondarySize, storageKey]
81
- );
82
- return /* @__PURE__ */ jsxRuntime.jsx(SplitPaneContext.Provider, { value, children });
83
- }
84
-
85
- exports.SplitPaneContext = SplitPaneContext;
86
- exports.SplitPaneProvider = SplitPaneProvider;
87
- exports.useSplitPaneContext = useSplitPaneContext;
@@ -1,249 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react = require('react');
5
- var lucideReact = require('lucide-react');
6
- var Checkbox = require('../checkbox/Checkbox');
7
- var styles = require('./Table.module.css');
8
- var useViewportFill = require('../../hooks/useViewportFill');
9
- var Pagination = require('../pagination/Pagination');
10
- var SkeletonLoaderItem = require('../skeleton-loader/skeleton-loader-item/SkeletonLoaderItem');
11
- var severity = require('../../constants/severity');
12
- var EmptyState = require('./components/empty-state/EmptyState');
13
-
14
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
15
-
16
- var styles__default = /*#__PURE__*/_interopDefault(styles);
17
-
18
- function Table({
19
- data,
20
- columns,
21
- selectedRows,
22
- onRowSelect,
23
- selectionMode = "single",
24
- onSortChange,
25
- onRowClick,
26
- sortById,
27
- sortDirection,
28
- dataKey,
29
- headerExtras,
30
- columnStyles,
31
- headerBelowRow,
32
- striped,
33
- fillViewport = false,
34
- viewportBottomOffset = 0,
35
- viewportMin = 120,
36
- viewportIncludeMarginTop = false,
37
- take,
38
- skip,
39
- paginationPlacement = "bottom",
40
- totalItemsCount,
41
- onPageChange,
42
- loading,
43
- variant = "primary",
44
- size = "md",
45
- getRowSeverity,
46
- showFirstLast = false,
47
- allRowsSelected,
48
- onSelectAllRows,
49
- viewMode,
50
- emptyConfig
51
- }) {
52
- const filteredColumns = react.useMemo(() => columns.filter((c) => !c.hidden), [columns]);
53
- const handlePageChange = react.useCallback(
54
- (e) => {
55
- onPageChange == null ? void 0 : onPageChange(e);
56
- },
57
- [onPageChange]
58
- );
59
- const getColStyle = (columnId, alignment, verticalAlignment) => {
60
- const baseStyle = columnStyles == null ? void 0 : columnStyles[columnId];
61
- return {
62
- ...baseStyle != null ? baseStyle : {},
63
- ...alignment === "right" && { fontVariantNumeric: "tabular-nums" },
64
- verticalAlign: verticalAlignment != null ? verticalAlignment : "top",
65
- textAlign: alignment != null ? alignment : "left"
66
- };
67
- };
68
- const scrollRef = react.useRef(null);
69
- const { style: viewportStyle } = useViewportFill.useViewportFill(scrollRef, {
70
- bottomOffset: viewportBottomOffset + 60,
71
- min: viewportMin,
72
- includeMarginTop: viewportIncludeMarginTop
73
- });
74
- const tableEl = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
75
- /* @__PURE__ */ jsxRuntime.jsxs("table", { className: `${styles__default.default.table} ${styles__default.default[variant]} ${styles__default.default[size]}`, children: [
76
- /* @__PURE__ */ jsxRuntime.jsxs("thead", { children: [
77
- /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
78
- selectedRows && dataKey && /* @__PURE__ */ jsxRuntime.jsx("th", { className: `${styles__default.default.fitContent} ${styles__default.default.th}`, children: selectionMode === "multiple" ? /* @__PURE__ */ jsxRuntime.jsx(
79
- Checkbox.Checkbox,
80
- {
81
- size: "sm",
82
- variant: "primary",
83
- checked: allRowsSelected,
84
- onChange: (checked) => onSelectAllRows == null ? void 0 : onSelectAllRows(checked)
85
- }
86
- ) : null }),
87
- filteredColumns.map((column, index) => {
88
- const isActiveSort = sortById === column.id;
89
- const ariaSort = column.sortable && isActiveSort ? sortDirection === "asc" ? "ascending" : "descending" : "none";
90
- const toggleSort = () => {
91
- if (!onSortChange || !column.sortable) return;
92
- const nextDir = !isActiveSort ? "asc" : sortDirection === "asc" ? "desc" : null;
93
- onSortChange(column, nextDir);
94
- };
95
- return /* @__PURE__ */ jsxRuntime.jsx(
96
- "th",
97
- {
98
- style: getColStyle(column.id, column.align, "middle"),
99
- "aria-sort": ariaSort,
100
- className: `${styles__default.default.th} ${column.sortable ? styles__default.default.sortable : ""} `,
101
- onClick: (e) => {
102
- if (!column.sortable) return;
103
- if (e.target instanceof HTMLElement && e.target.closest(".resizer")) return;
104
- toggleSort();
105
- },
106
- role: column.sortable ? "button" : void 0,
107
- tabIndex: column.sortable ? 0 : void 0,
108
- onKeyDown: (e) => {
109
- if (!column.sortable) return;
110
- if (e.key === "Enter" || e.key === " ") {
111
- e.preventDefault();
112
- toggleSort();
113
- }
114
- },
115
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles__default.default.thInner, children: /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
116
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles__default.default.thLabel, children: typeof column.header === "function" ? column.header() : column.header }),
117
- column.sortable && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: styles__default.default.sortIndicator, "aria-hidden": "true", children: [
118
- isActiveSort && sortDirection === "asc" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowUp, {}),
119
- isActiveSort && sortDirection === "desc" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowDown, { className: styles__default.default.descending }),
120
- !isActiveSort && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowDown, { className: `${styles__default.default.descending} ${styles__default.default.inActiveSort}` })
121
- ] }),
122
- headerExtras == null ? void 0 : headerExtras({ column, index })
123
- ] }) })
124
- },
125
- column.id
126
- );
127
- })
128
- ] }),
129
- headerBelowRow ? /* @__PURE__ */ jsxRuntime.jsx("tr", { className: styles__default.default.headerBelowRow, children: /* @__PURE__ */ jsxRuntime.jsx("th", { colSpan: filteredColumns.length, children: headerBelowRow }) }) : null
130
- ] }),
131
- loading && !data.length ? /* @__PURE__ */ jsxRuntime.jsx("tbody", { className: `${styles__default.default.tBody} ${striped ? styles__default.default.striped : ""}`, children: Array.from({ length: take != null ? take : 5 }).map((_, rowIndex) => /* @__PURE__ */ jsxRuntime.jsx("tr", { children: filteredColumns.map((column, colIndex) => /* @__PURE__ */ jsxRuntime.jsx(
132
- "td",
133
- {
134
- style: getColStyle(column.id, column.align),
135
- className: `${styles__default.default.tableCell} ${column.fitContent ? "fitContent" : ""}`,
136
- children: /* @__PURE__ */ jsxRuntime.jsx(SkeletonLoaderItem.SkeletonLoaderItem, { height: 20, width: "100%" })
137
- },
138
- `${column.id}-${colIndex}`
139
- )) }, `loading-row-${rowIndex}`)) }) : /* @__PURE__ */ jsxRuntime.jsx("tbody", { className: `${styles__default.default.tBody} ${striped ? styles__default.default.striped : ""}`, children: data == null ? void 0 : data.map((row, rowIndex) => {
140
- const rowSeverity = getRowSeverity == null ? void 0 : getRowSeverity(row);
141
- return /* @__PURE__ */ jsxRuntime.jsxs(
142
- "tr",
143
- {
144
- tabIndex: onRowClick ? 0 : -1,
145
- onClick: (e) => {
146
- const rowId = row[dataKey];
147
- const isModifierClick = e.metaKey || e.ctrlKey;
148
- const canSelect = Boolean(selectedRows && onRowSelect && dataKey);
149
- if (isModifierClick && canSelect) {
150
- e.preventDefault();
151
- e.stopPropagation();
152
- const isSelected = selectedRows.has(rowId);
153
- if (selectionMode === "single") {
154
- onRowSelect(rowId, !isSelected);
155
- } else {
156
- onRowSelect(rowId, !isSelected);
157
- }
158
- return;
159
- }
160
- onRowClick == null ? void 0 : onRowClick(row);
161
- },
162
- style: {
163
- ["--row-severity-color"]: rowSeverity ? severity.SeverityBgColor[rowSeverity] : void 0
164
- },
165
- className: `${onRowClick ? styles__default.default.clickableRow : ""} ${(selectedRows == null ? void 0 : selectedRows.has(row[dataKey])) ? styles__default.default.selectedRow : ""} ${rowSeverity ? styles__default.default.severity : ""}`,
166
- children: [
167
- selectedRows && dataKey && /* @__PURE__ */ jsxRuntime.jsx("td", { className: "fitContent", onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsxRuntime.jsx(
168
- Checkbox.Checkbox,
169
- {
170
- variant: "primary",
171
- checked: selectedRows.has(row[dataKey]),
172
- size: "sm",
173
- onChange: () => onRowSelect == null ? void 0 : onRowSelect(row[dataKey], !selectedRows.has(row[dataKey]))
174
- }
175
- ) }),
176
- filteredColumns.map((column) => {
177
- var _a, _b;
178
- return /* @__PURE__ */ jsxRuntime.jsx(
179
- "td",
180
- {
181
- style: getColStyle(column.id, column.align, column.verticalAlign),
182
- className: `${styles__default.default.tableCell} ${column.fitContent ? "fitContent" : ""} ${column.allowWrap || (selectedRows == null ? void 0 : selectedRows.has(row[dataKey])) || viewMode === "comfortable" ? "" : styles__default.default.nowrap} `,
183
- children: column.render ? column.render(row) || ((_a = column.emptyPlaceholder) != null ? _a : "") : column.accessor ? row[column.accessor] || ((_b = column.emptyPlaceholder) != null ? _b : "") : null
184
- },
185
- column.id
186
- );
187
- })
188
- ]
189
- },
190
- `tableRow-${String(row[dataKey])}-${rowIndex}`
191
- );
192
- }) })
193
- ] }),
194
- !data.length && /* @__PURE__ */ jsxRuntime.jsx(EmptyState.TableEmptyState, { config: emptyConfig })
195
- ] });
196
- if (fillViewport) {
197
- return /* @__PURE__ */ jsxRuntime.jsxs(
198
- "div",
199
- {
200
- style: {
201
- display: "flex",
202
- flexDirection: "column",
203
- gap: "20px",
204
- flexFlow: paginationPlacement === "top" ? "column-reverse" : "column",
205
- position: "relative"
206
- },
207
- children: [
208
- /* @__PURE__ */ jsxRuntime.jsx("div", { ref: scrollRef, style: viewportStyle, className: styles__default.default.tableScroll, children: tableEl }),
209
- onPageChange && /* @__PURE__ */ jsxRuntime.jsx(
210
- Pagination.Pagination,
211
- {
212
- itemsCount: totalItemsCount,
213
- take,
214
- skip,
215
- onPageChange: handlePageChange,
216
- showFirstLast
217
- }
218
- )
219
- ]
220
- }
221
- );
222
- }
223
- return /* @__PURE__ */ jsxRuntime.jsxs(
224
- "div",
225
- {
226
- style: {
227
- display: "flex",
228
- flexDirection: "column",
229
- gap: "20px",
230
- flexFlow: paginationPlacement === "top" ? "column-reverse" : "column",
231
- position: "relative"
232
- },
233
- children: [
234
- tableEl,
235
- onPageChange && /* @__PURE__ */ jsxRuntime.jsx(
236
- Pagination.Pagination,
237
- {
238
- itemsCount: totalItemsCount,
239
- take,
240
- skip,
241
- onPageChange: handlePageChange
242
- }
243
- )
244
- ]
245
- }
246
- );
247
- }
248
-
249
- exports.Table = Table;
@@ -1,22 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var styles = require('./ColumnResizer.module.css');
5
-
6
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
-
8
- var styles__default = /*#__PURE__*/_interopDefault(styles);
9
-
10
- const ColumnResizer = ({ id, handler }) => /* @__PURE__ */ jsxRuntime.jsx(
11
- "span",
12
- {
13
- className: styles__default.default.resizer,
14
- onMouseDown: handler,
15
- onTouchStart: handler,
16
- role: "separator",
17
- "aria-label": `Resize ${id}`
18
- }
19
- );
20
- var ColumnResizer_default = ColumnResizer;
21
-
22
- module.exports = ColumnResizer_default;
@@ -1,52 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var Button = require('../../../button/Button');
5
- var Headline = require('../../../headline/Headline');
6
- var lucideReact = require('lucide-react');
7
- var styles = require('./EmptyState.module.css');
8
-
9
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
-
11
- var styles__default = /*#__PURE__*/_interopDefault(styles);
12
-
13
- const defaultEmptyConfig = {
14
- enabled: true,
15
- title: /* @__PURE__ */ jsxRuntime.jsx(Headline.Headline, { disableMargin: true, size: 3, children: "Hov, der er ingen data" }),
16
- description: /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Pr\xF8v at \xE6ndre dine filtre eller tilf\xF8je data." }),
17
- showBack: true,
18
- showRefresh: true,
19
- backLabel: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
20
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeft, {}),
21
- "Tilbage"
22
- ] }),
23
- refreshLabel: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
24
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RefreshCw, {}),
25
- "Indl\xE6s igen"
26
- ] }),
27
- className: "dbc-flex dbc-flex-column dbc-justify-center dbc-items-center dbc-flex-grow "
28
- };
29
- function TableEmptyState({ config }) {
30
- const merged = {
31
- ...defaultEmptyConfig,
32
- ...config != null ? config : {}
33
- };
34
- if (!merged.enabled) return null;
35
- const showBack = merged.showBack && typeof merged.onBack === "function";
36
- const showRefresh = merged.showRefresh && typeof merged.onRefresh === "function";
37
- const hasAnyActions = Boolean(merged.actions) || showBack || showRefresh;
38
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `${merged.className} ${styles__default.default.container}`, children: [
39
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "dbc-flex dbc-flex-column dbc-gap-sm dbc-items-center", children: [
40
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SearchX, { className: styles__default.default.icon }),
41
- merged.title,
42
- merged.description
43
- ] }),
44
- hasAnyActions && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "dbc-flex dbc-gap-sm", children: [
45
- merged.actions,
46
- showBack && /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { onClick: merged.onBack, className: "dbc-mr-xxs", children: merged.backLabel }),
47
- showRefresh && /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { onClick: merged.onRefresh, children: merged.refreshLabel })
48
- ] })
49
- ] });
50
- }
51
-
52
- exports.TableEmptyState = TableEmptyState;
@@ -1,32 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var Button = require('../../../button/Button');
5
- var Popover = require('../../../popover/Popover');
6
- var Menu = require('../../../menu/Menu');
7
- var lucideReact = require('lucide-react');
8
-
9
- function TableSettings({
10
- viewMode,
11
- handleChangeViewMode
12
- }) {
13
- const handleViewModeChange = (mode, close) => {
14
- handleChangeViewMode("compact" );
15
- close == null ? void 0 : close();
16
- };
17
- return /* @__PURE__ */ jsxRuntime.jsx(
18
- Popover.Popover,
19
- {
20
- trigger: (onClick, icon) => /* @__PURE__ */ jsxRuntime.jsxs(Button.Button, { onClick, children: [
21
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Settings, {}),
22
- icon
23
- ] }),
24
- children: (close) => /* @__PURE__ */ jsxRuntime.jsx(Menu.Menu, { children: /* @__PURE__ */ jsxRuntime.jsx(Menu.Menu.Item, { active: viewMode === "compact", children: /* @__PURE__ */ jsxRuntime.jsxs("button", { onClick: () => handleViewModeChange("compact", close), children: [
25
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ListChevronsDownUp, {}),
26
- "Kompakt"
27
- ] }) }) })
28
- }
29
- );
30
- }
31
-
32
- exports.TableSettings = TableSettings;
@@ -1,193 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var React = require('react');
5
- var reactTable = require('@tanstack/react-table');
6
- var Table = require('./Table');
7
- var ColumnResizer = require('./components/column-resizer/ColumnResizer');
8
-
9
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
-
11
- function _interopNamespace(e) {
12
- if (e && e.__esModule) return e;
13
- var n = Object.create(null);
14
- if (e) {
15
- Object.keys(e).forEach(function (k) {
16
- if (k !== 'default') {
17
- var d = Object.getOwnPropertyDescriptor(e, k);
18
- Object.defineProperty(n, k, d.get ? d : {
19
- enumerable: true,
20
- get: function () { return e[k]; }
21
- });
22
- }
23
- });
24
- }
25
- n.default = e;
26
- return Object.freeze(n);
27
- }
28
-
29
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
30
- var ColumnResizer__default = /*#__PURE__*/_interopDefault(ColumnResizer);
31
-
32
- function getColumnId(def, index) {
33
- const d = def;
34
- if (d.id != null && String(d.id).length) return String(d.id);
35
- if (d.accessorKey != null && String(d.accessorKey).length) return String(d.accessorKey);
36
- return `col_${index}`;
37
- }
38
- function mapDefsToColumnItems(defs) {
39
- return defs.map((def, index) => {
40
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;
41
- const id = getColumnId(def, index);
42
- const accessorKey = def.accessorKey;
43
- const accessorFn = def.accessorFn;
44
- const cell = def.cell;
45
- let render;
46
- if (typeof cell === "function") {
47
- render = (row) => cell({
48
- row: { original: row },
49
- getValue: () => accessorKey != null ? row[accessorKey] : accessorFn ? accessorFn(row) : void 0
50
- });
51
- } else if (accessorFn) {
52
- render = (row) => accessorFn(row);
53
- } else if (accessorKey != null) {
54
- render = (row) => row[accessorKey];
55
- } else {
56
- render = () => null;
57
- }
58
- return {
59
- id,
60
- header: def.header,
61
- accessor: accessorKey,
62
- sortable: (_a = def.enableSorting) != null ? _a : !!accessorKey,
63
- render,
64
- hidden: (_c = (_b = def.meta) == null ? void 0 : _b.hidden) != null ? _c : false,
65
- align: (_e = (_d = def.meta) == null ? void 0 : _d.align) != null ? _e : void 0,
66
- verticalAlign: (_g = (_f = def.meta) == null ? void 0 : _f.verticalAlign) != null ? _g : void 0,
67
- fitContent: (_i = (_h = def.meta) == null ? void 0 : _h.fitContent) != null ? _i : false,
68
- emptyPlaceholder: (_k = (_j = def.meta) == null ? void 0 : _j.emptyPlaceholder) != null ? _k : "-",
69
- allowWrap: (_m = (_l = def.meta) == null ? void 0 : _l.allowWrap) != null ? _m : false,
70
- fillWidth: (_o = (_n = def.meta) == null ? void 0 : _n.fillWidth) != null ? _o : false,
71
- severity: (_q = (_p = def.meta) == null ? void 0 : _p.severity) != null ? _q : void 0
72
- };
73
- });
74
- }
75
- function TanstackTable(props) {
76
- var _a, _b;
77
- const { data, dataKey, columns, filterable = [], onSortingChange, ...tableProps } = props;
78
- const [sorting, setSorting] = React__namespace.useState([]);
79
- const [columnFilters, setColumnFilters] = React__namespace.useState([]);
80
- const [columnSizing, setColumnSizing] = React__namespace.useState({});
81
- const table = reactTable.useReactTable({
82
- data,
83
- columns,
84
- state: { sorting, columnFilters, columnSizing },
85
- onSortingChange: setSorting,
86
- onColumnFiltersChange: setColumnFilters,
87
- onColumnSizingChange: setColumnSizing,
88
- getCoreRowModel: reactTable.getCoreRowModel(),
89
- getSortedRowModel: reactTable.getSortedRowModel(),
90
- getFilteredRowModel: reactTable.getFilteredRowModel(),
91
- enableColumnResizing: true,
92
- columnResizeMode: "onChange",
93
- defaultColumn: {
94
- enableResizing: true,
95
- minSize: 80,
96
- size: 180,
97
- maxSize: 800
98
- }
99
- });
100
- const columnItems = React__namespace.useMemo(() => mapDefsToColumnItems(columns), [columns]);
101
- const visibleData = React__namespace.useMemo(
102
- () => table.getRowModel().rows.map((r) => r.original),
103
- [table, data]
104
- );
105
- const s = (_a = table.getState().sorting) == null ? void 0 : _a[0];
106
- const sortById = (_b = s == null ? void 0 : s.id) != null ? _b : void 0;
107
- const sortDirection = s ? s.desc ? "desc" : "asc" : null;
108
- const gridTemplateColumns = React__namespace.useMemo(() => {
109
- return columnItems.filter((ci) => !ci.hidden).map((ci) => {
110
- var _a2;
111
- const col = table.getColumn(ci.id);
112
- const w = (_a2 = col == null ? void 0 : col.getSize) == null ? void 0 : _a2.call(col);
113
- if (ci.fillWidth) return "1fr";
114
- if (ci.fitContent) return "1%";
115
- return `${w != null ? w : 180}px`;
116
- }).join(" ");
117
- }, [columnItems, table, table.getState().columnSizing]);
118
- const columnStyles = React__namespace.useMemo(() => {
119
- const styles = {};
120
- for (const c of table.getAllLeafColumns()) {
121
- const id = c.id;
122
- const ci = columnItems.find((x) => x.id === id);
123
- if (ci == null ? void 0 : ci.fillWidth) {
124
- styles[id] = { width: "auto", minWidth: 0 };
125
- } else if (ci == null ? void 0 : ci.fitContent) {
126
- styles[id] = { width: "1%", whiteSpace: "nowrap" };
127
- } else {
128
- const w = c.getSize();
129
- styles[id] = { width: w, minWidth: w, maxWidth: w };
130
- }
131
- }
132
- return styles;
133
- }, [table, table.getState().columnSizing, columnItems]);
134
- const headerExtras = React__namespace.useCallback(
135
- ({ index }) => {
136
- var _a2, _b2, _c, _d;
137
- const headerGroups = table.getHeaderGroups();
138
- const leafHeaders = headerGroups.length > 0 ? headerGroups[headerGroups.length - 1].headers : [];
139
- const header = leafHeaders[index];
140
- if (!header) return null;
141
- const canResize = (_c = (_b2 = (_a2 = header.column).getCanResize) == null ? void 0 : _b2.call(_a2)) != null ? _c : false;
142
- const handler = (_d = header.getResizeHandler) == null ? void 0 : _d.call(header);
143
- if (!canResize || !handler) return null;
144
- return /* @__PURE__ */ jsxRuntime.jsx(ColumnResizer__default.default, { id: header.column.id, handler });
145
- },
146
- [table]
147
- );
148
- const headerBelowRow = React__namespace.useMemo(() => {
149
- if (!(filterable == null ? void 0 : filterable.length)) return null;
150
- return /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "grid", gridTemplateColumns, gap: 8 }, children: columnItems.filter((ci) => !ci.hidden).map((ci) => {
151
- var _a2;
152
- const id = ci.id;
153
- const isFilterable = filterable.includes(id);
154
- if (!isFilterable) return /* @__PURE__ */ jsxRuntime.jsx("div", {}, id);
155
- const col = table.getColumn(id);
156
- const value = (_a2 = col == null ? void 0 : col.getFilterValue()) != null ? _a2 : "";
157
- return /* @__PURE__ */ jsxRuntime.jsx(
158
- "input",
159
- {
160
- value,
161
- placeholder: `Filter ${String(ci.header)}`,
162
- onChange: (e) => col == null ? void 0 : col.setFilterValue(e.target.value),
163
- style: { width: "100%", padding: "4px 6px" }
164
- },
165
- id
166
- );
167
- }) });
168
- }, [columnItems, filterable, table, table.getState().columnFilters, gridTemplateColumns]);
169
- return /* @__PURE__ */ jsxRuntime.jsx(
170
- Table.Table,
171
- {
172
- ...tableProps,
173
- dataKey,
174
- data: visibleData,
175
- columns: columnItems,
176
- sortById,
177
- sortDirection,
178
- onSortChange: (col, dir) => {
179
- var _a2, _b2, _c;
180
- const id = String(col.id);
181
- if (!id) return;
182
- if (!dir) table.setSorting([]);
183
- else table.setSorting([{ id, desc: dir === "desc" }]);
184
- onSortingChange == null ? void 0 : onSortingChange((_c = (_b2 = (_a2 = table.getState().sorting) == null ? void 0 : _a2[0]) == null ? void 0 : _b2.id) != null ? _c : null, dir);
185
- },
186
- headerExtras,
187
- columnStyles,
188
- headerBelowRow
189
- }
190
- );
191
- }
192
-
193
- exports.TanstackTable = TanstackTable;