@redis-ui/table 2.4.0 → 2.18.0

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 (154) hide show
  1. package/dist/Table/Table.cjs +85 -136
  2. package/dist/Table/Table.context.cjs +16 -1
  3. package/dist/Table/Table.context.d.ts +22 -4
  4. package/dist/Table/Table.context.js +16 -1
  5. package/dist/Table/Table.d.ts +83 -3
  6. package/dist/Table/Table.js +86 -137
  7. package/dist/Table/Table.style.cjs +33 -17
  8. package/dist/Table/Table.style.d.ts +5 -2
  9. package/dist/Table/Table.style.js +34 -18
  10. package/dist/Table/Table.types.d.ts +21 -22
  11. package/dist/Table/components/Compose/Compose.cjs +42 -0
  12. package/dist/Table/components/Compose/Compose.d.ts +13 -0
  13. package/dist/Table/components/Compose/Compose.js +42 -0
  14. package/dist/Table/components/EmptyState/EmptyState.cjs +31 -0
  15. package/dist/Table/components/EmptyState/EmptyState.d.ts +6 -0
  16. package/dist/Table/components/EmptyState/EmptyState.js +31 -0
  17. package/dist/Table/components/ExpandRowButton/ExpandRowButton.cjs +1 -0
  18. package/dist/Table/components/ExpandRowButton/ExpandRowButton.js +1 -0
  19. package/dist/Table/components/HiddenCaption/HiddenCaption.cjs +13 -0
  20. package/dist/Table/components/HiddenCaption/HiddenCaption.d.ts +3 -0
  21. package/dist/Table/components/HiddenCaption/HiddenCaption.js +13 -0
  22. package/dist/Table/components/PluggableTable/PluggableTable.cjs +19 -0
  23. package/dist/Table/components/PluggableTable/PluggableTable.d.ts +10 -0
  24. package/dist/Table/components/PluggableTable/PluggableTable.js +19 -0
  25. package/dist/Table/components/PluggableTable/compositionComponents.cjs +21 -0
  26. package/dist/Table/components/PluggableTable/compositionComponents.d.ts +67 -0
  27. package/dist/Table/components/PluggableTable/compositionComponents.js +21 -0
  28. package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.cjs +29 -0
  29. package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.d.ts +7 -0
  30. package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.js +29 -0
  31. package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.test.d.ts +1 -0
  32. package/dist/Table/components/RowSelection/RowSelectionButton.cjs +15 -0
  33. package/dist/Table/components/RowSelection/RowSelectionButton.d.ts +6 -0
  34. package/dist/Table/components/RowSelection/RowSelectionButton.js +15 -0
  35. package/dist/Table/components/RowSelection/RowSelectionButton.test.d.ts +1 -0
  36. package/dist/Table/components/TableBody/TableBody.cjs +33 -0
  37. package/dist/Table/components/TableBody/TableBody.d.ts +23 -0
  38. package/dist/Table/components/TableBody/TableBody.js +33 -0
  39. package/dist/Table/components/TableBody/components/Compose/Compose.cjs +10 -0
  40. package/dist/Table/components/TableBody/components/Compose/Compose.d.ts +3 -0
  41. package/dist/Table/components/TableBody/components/Compose/Compose.js +10 -0
  42. package/dist/Table/components/TableBodyCell/TableBodyCell.cjs +22 -0
  43. package/dist/Table/components/TableBodyCell/TableBodyCell.d.ts +12 -0
  44. package/dist/Table/components/TableBodyCell/TableBodyCell.js +22 -0
  45. package/dist/Table/components/TableBodyCell/components/Compose/Compose.cjs +5 -0
  46. package/dist/Table/components/TableBodyCell/components/Compose/Compose.d.ts +3 -0
  47. package/dist/Table/components/TableBodyCell/components/Compose/Compose.js +5 -0
  48. package/dist/Table/components/TableBodyRow/TableBodyRow.cjs +38 -0
  49. package/dist/Table/components/TableBodyRow/TableBodyRow.d.ts +20 -0
  50. package/dist/Table/components/TableBodyRow/TableBodyRow.js +38 -0
  51. package/dist/Table/components/TableBodyRow/TableBodyRowExpandable.cjs +33 -0
  52. package/dist/Table/components/TableBodyRow/TableBodyRowExpandable.d.ts +2 -0
  53. package/dist/Table/components/TableBodyRow/TableBodyRowExpandable.js +33 -0
  54. package/dist/Table/components/TableBodyRow/components/Compose/Compose.cjs +17 -0
  55. package/dist/Table/components/TableBodyRow/components/Compose/Compose.d.ts +4 -0
  56. package/dist/Table/components/TableBodyRow/components/Compose/Compose.js +17 -0
  57. package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.cjs +3 -4
  58. package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.d.ts +1 -1
  59. package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.js +3 -4
  60. package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.style.cjs +1 -1
  61. package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.style.js +1 -1
  62. package/dist/Table/components/TableExpandedRow/TableExpandedRow.cjs +9 -4
  63. package/dist/Table/components/TableExpandedRow/TableExpandedRow.d.ts +1 -1
  64. package/dist/Table/components/TableExpandedRow/TableExpandedRow.js +9 -4
  65. package/dist/Table/components/TableExpandedRow/TableExpandedRow.style.cjs +2 -2
  66. package/dist/Table/components/TableExpandedRow/TableExpandedRow.style.js +2 -2
  67. package/dist/Table/components/TableExpandedRow/TableExpandedRow.types.d.ts +3 -5
  68. package/dist/Table/components/TableHeader/TableHeader.cjs +28 -0
  69. package/dist/Table/components/TableHeader/TableHeader.d.ts +21 -0
  70. package/dist/Table/components/TableHeader/TableHeader.js +28 -0
  71. package/dist/Table/components/TableHeader/components/Compose/Compose.cjs +5 -0
  72. package/dist/Table/components/TableHeader/components/Compose/Compose.d.ts +3 -0
  73. package/dist/Table/components/TableHeader/components/Compose/Compose.js +5 -0
  74. package/dist/Table/components/TableHeaderCell/SRSortingNotification.cjs +19 -0
  75. package/dist/Table/components/TableHeaderCell/SRSortingNotification.d.ts +1 -0
  76. package/dist/Table/components/TableHeaderCell/SRSortingNotification.js +19 -0
  77. package/dist/Table/components/TableHeaderCell/TableHeaderCell.cjs +23 -0
  78. package/dist/Table/components/TableHeaderCell/TableHeaderCell.context.cjs +15 -0
  79. package/dist/Table/components/TableHeaderCell/TableHeaderCell.context.d.ts +8 -0
  80. package/dist/Table/components/TableHeaderCell/TableHeaderCell.context.js +15 -0
  81. package/dist/Table/components/TableHeaderCell/TableHeaderCell.d.ts +16 -0
  82. package/dist/Table/components/TableHeaderCell/TableHeaderCell.js +23 -0
  83. package/dist/Table/components/TableHeaderCell/TableHeaderCell.test.d.ts +1 -0
  84. package/dist/Table/components/TableHeaderCell/TableHeaderCell.types.d.ts +13 -0
  85. package/dist/Table/components/TableHeaderCell/TableHeaderCell.utils.cjs +79 -0
  86. package/dist/Table/components/TableHeaderCell/TableHeaderCell.utils.d.ts +10 -0
  87. package/dist/Table/components/TableHeaderCell/TableHeaderCell.utils.js +79 -0
  88. package/dist/Table/components/TableHeaderCell/components/Compose/Compose.cjs +40 -0
  89. package/dist/Table/components/TableHeaderCell/components/Compose/Compose.d.ts +9 -0
  90. package/dist/Table/components/TableHeaderCell/components/Compose/Compose.js +40 -0
  91. package/dist/Table/components/TableHeaderCell/components/Heading/Heading.cjs +34 -0
  92. package/dist/Table/components/TableHeaderCell/components/Heading/Heading.d.ts +5 -0
  93. package/dist/Table/components/TableHeaderCell/components/Heading/Heading.js +34 -0
  94. package/dist/Table/components/TableHeaderCell/components/SortableHeading/SortableHeading.cjs +16 -0
  95. package/dist/Table/components/TableHeaderCell/components/SortableHeading/SortableHeading.d.ts +8 -0
  96. package/dist/Table/components/TableHeaderCell/components/SortableHeading/SortableHeading.js +16 -0
  97. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/Compose/Compose.cjs +23 -0
  98. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/Compose/Compose.d.ts +5 -0
  99. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/Compose/Compose.js +23 -0
  100. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/SortIndicator/SortIndicator.cjs +6 -0
  101. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/SortIndicator/SortIndicator.d.ts +2 -0
  102. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/SortIndicator/SortIndicator.js +6 -0
  103. package/dist/Table/components/TableHeaderRow/TableHeaderRow.cjs +27 -0
  104. package/dist/Table/components/TableHeaderRow/TableHeaderRow.d.ts +12 -0
  105. package/dist/Table/components/TableHeaderRow/TableHeaderRow.js +27 -0
  106. package/dist/Table/components/TableHeaderRow/components/Compose/Compose.cjs +5 -0
  107. package/dist/Table/components/TableHeaderRow/components/Compose/Compose.d.ts +3 -0
  108. package/dist/Table/components/TableHeaderRow/components/Compose/Compose.js +5 -0
  109. package/dist/Table/components/TablePagination/TablePagination.cjs +63 -78
  110. package/dist/Table/components/TablePagination/TablePagination.d.ts +23 -3
  111. package/dist/Table/components/TablePagination/TablePagination.js +64 -79
  112. package/dist/Table/components/TablePagination/TablePagination.style.cjs +78 -53
  113. package/dist/Table/components/TablePagination/TablePagination.style.d.ts +17 -49
  114. package/dist/Table/components/TablePagination/TablePagination.style.js +80 -55
  115. package/dist/Table/components/TablePagination/components/Compose/Compose.cjs +41 -0
  116. package/dist/Table/components/TablePagination/components/Compose/Compose.d.ts +3 -0
  117. package/dist/Table/components/TablePagination/components/Compose/Compose.js +41 -0
  118. package/dist/Table/components/TableRoot/TableRoot.cjs +5 -0
  119. package/dist/Table/components/TableRoot/TableRoot.d.ts +1 -0
  120. package/dist/Table/components/TableRoot/TableRoot.js +5 -0
  121. package/dist/Table/index.d.ts +3 -6
  122. package/dist/Table/plugins/ClickableRowPlugin.cjs +48 -0
  123. package/dist/Table/plugins/ClickableRowPlugin.d.ts +25 -0
  124. package/dist/Table/plugins/ClickableRowPlugin.js +48 -0
  125. package/dist/Table/plugins/ExpandableRowPlugin.cjs +38 -0
  126. package/dist/Table/plugins/ExpandableRowPlugin.d.ts +22 -0
  127. package/dist/Table/plugins/ExpandableRowPlugin.js +38 -0
  128. package/dist/Table/plugins/PaginationPlugin.cjs +45 -0
  129. package/dist/Table/plugins/PaginationPlugin.d.ts +16 -0
  130. package/dist/Table/plugins/PaginationPlugin.js +45 -0
  131. package/dist/Table/plugins/RowSelectionPlugin.cjs +28 -0
  132. package/dist/Table/plugins/RowSelectionPlugin.d.ts +12 -0
  133. package/dist/Table/plugins/RowSelectionPlugin.js +28 -0
  134. package/dist/Table/plugins/SortingPlugin.cjs +44 -0
  135. package/dist/Table/plugins/SortingPlugin.d.ts +18 -0
  136. package/dist/Table/plugins/SortingPlugin.js +44 -0
  137. package/dist/Table/tanStackExtendedTypes.d.ts +11 -0
  138. package/dist/Table/utils/plugin.utils.cjs +49 -0
  139. package/dist/Table/utils/plugin.utils.d.ts +17 -0
  140. package/dist/Table/utils/plugin.utils.js +49 -0
  141. package/dist/Table/utils/plugin.utils.test.d.ts +1 -0
  142. package/dist/index.cjs +60 -0
  143. package/dist/index.js +61 -1
  144. package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs +55 -0
  145. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +37 -0
  146. package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs +100 -0
  147. package/dist/node_modules/@radix-ui/react-slot/dist/index.js +82 -0
  148. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.cjs +51 -0
  149. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js +33 -0
  150. package/dist/node_modules/@tanstack/react-table/build/lib/index.cjs +7 -0
  151. package/dist/node_modules/@tanstack/react-table/build/lib/index.js +8 -1
  152. package/dist/node_modules/@tanstack/table-core/build/lib/index.cjs +361 -4
  153. package/dist/node_modules/@tanstack/table-core/build/lib/index.js +361 -4
  154. package/package.json +7 -5
@@ -1,58 +1,83 @@
1
- import _styled from "styled-components";
1
+ import _styled, { css } from "styled-components";
2
2
  import { useTheme } from "@redislabsdev/redis-ui-styles";
3
- import { IconButton, Typography, Select as Select$1 } from "@redislabsdev/redis-ui-components";
4
- const PaginationIconButton = _styled(IconButton).withConfig({
5
- displayName: "TablePaginationstyle__PaginationIconButton",
6
- componentId: "sc-ccqfi0-0"
7
- })(["color:", ";&:disabled{color:", ";}"], () => useTheme().components.table.components.tablePagination.paginationIconButton.enabledColor, () => useTheme().components.table.components.tablePagination.paginationIconButton.disabledColor);
8
- const CountInfo = _styled(Typography.Body).withConfig({
9
- displayName: "TablePaginationstyle__CountInfo",
10
- componentId: "sc-ccqfi0-1"
11
- })(["display:flex;margin-right:auto;font-size:1.2rem;color:", ";"], () => useTheme().components.table.components.tablePagination.countInfoText.color);
12
- const PaginationRow = _styled.div.withConfig({
13
- displayName: "TablePaginationstyle__PaginationRow",
14
- componentId: "sc-ccqfi0-2"
15
- })(["display:flex;align-items:center;gap:3.2rem;width:100%;height:4.8rem;padding:0 1.2rem;justify-content:flex-end;border-top:1px solid ", ";"], () => useTheme().components.table.components.tablePagination.paginationRow.borderTop);
16
- const Select = _styled(Select$1).withConfig({
17
- displayName: "TablePaginationstyle__Select",
18
- componentId: "sc-ccqfi0-3"
19
- })(["height:2rem;padding:0 0.4rem;gap:0.4rem;span{font-size:1.2rem;line-height:initial;}"]);
20
- const PaginationActions = _styled.div.withConfig({
21
- displayName: "TablePaginationstyle__PaginationActions",
22
- componentId: "sc-ccqfi0-4"
23
- })(["display:flex;align-items:center;gap:0.4rem;"]);
24
- const ItemPerPageText = _styled(Typography.Body).attrs({
25
- size: "S"
26
- }).withConfig({
27
- displayName: "TablePaginationstyle__ItemPerPageText",
28
- componentId: "sc-ccqfi0-5"
29
- })(["color:", ";flex-shrink:0;"], () => useTheme().components.table.components.tablePagination.itemPerPageText.color);
30
- const PaginationIndexText = _styled(Typography.Body).attrs({
31
- size: "S"
32
- }).withConfig({
33
- displayName: "TablePaginationstyle__PaginationIndexText",
34
- componentId: "sc-ccqfi0-6"
35
- })(["color:", ";"], () => useTheme().components.table.components.tablePagination.paginationIndexText.color);
36
- const PageLabelText = _styled(Typography.Body).attrs({
37
- size: "S"
38
- }).withConfig({
39
- displayName: "TablePaginationstyle__PageLabelText",
40
- componentId: "sc-ccqfi0-7"
41
- })(["color:", ";flex-shrink:0;"], () => useTheme().components.table.components.tablePagination.pageLabelText.color);
42
- const TotalPagesText = _styled(Typography.Body).attrs({
43
- size: "S"
44
- }).withConfig({
45
- displayName: "TablePaginationstyle__TotalPagesText",
46
- componentId: "sc-ccqfi0-8"
47
- })(["color:", ";flex-shrink:0;"], () => useTheme().components.table.components.tablePagination.totalPagesText.color);
3
+ import { Pagination } from "@redislabsdev/redis-ui-components";
4
+ const NavigationButton = _styled(Pagination.NavigationButton).withConfig({
5
+ displayName: "TablePaginationstyle__NavigationButton",
6
+ componentId: "RedisUI__sc-ccqfi0-0"
7
+ })(["", ";"], () => {
8
+ const styles = useTheme().components.table.pagination.navButton;
9
+ return css`
10
+ width: ${styles.width};
11
+ height: ${styles.height};
12
+ padding: ${styles.padding};
13
+ color: ${styles.color};
14
+
15
+ &:disabled {
16
+ color: ${styles.disabledColor};
17
+ }
18
+ `;
19
+ });
20
+ const PaginationBar = _styled(Pagination.Bar).attrs(({
21
+ "aria-label": al
22
+ }) => ({
23
+ "aria-label": al ?? "Table Pagination"
24
+ })).withConfig({
25
+ displayName: "TablePaginationstyle__PaginationBar",
26
+ componentId: "RedisUI__sc-ccqfi0-1"
27
+ })(["", " width:100%;overflow:auto hidden;> *{flex:none;}"], () => {
28
+ const styles = useTheme().components.table.pagination.bar;
29
+ return css`
30
+ font-size: ${styles.fontSize};
31
+ gap: ${styles.gap};
32
+ height: ${styles.height};
33
+ padding: ${styles.padding};
34
+ border: solid ${styles.borderColor};
35
+ border-width: ${styles.borderSize};
36
+ color: ${styles.textColor};
37
+ `;
38
+ });
39
+ const InfoLabel = _styled(Pagination.InfoLabel).withConfig({
40
+ displayName: "TablePaginationstyle__InfoLabel",
41
+ componentId: "RedisUI__sc-ccqfi0-2"
42
+ })(["line-height:", ";"], () => useTheme().components.table.pagination.select.height);
43
+ const useSelectStyles = () => {
44
+ const styles = useTheme().components.table.pagination.select;
45
+ return css`
46
+ gap: ${styles.gap};
47
+ height: ${styles.height};
48
+ padding: ${styles.padding};
49
+ color: ${styles.textColor};
50
+ font-size: ${styles.fontSize};
51
+ line-height: initial;
52
+ `;
53
+ };
54
+ const PageSizeSelect = _styled(Pagination.PageSizeSelect).withConfig({
55
+ displayName: "TablePaginationstyle__PageSizeSelect",
56
+ componentId: "RedisUI__sc-ccqfi0-3"
57
+ })(["", ""], useSelectStyles);
58
+ const PageSelect = _styled(Pagination.PageSelect).withConfig({
59
+ displayName: "TablePaginationstyle__PageSelect",
60
+ componentId: "RedisUI__sc-ccqfi0-4"
61
+ })(["", ""], useSelectStyles);
62
+ const PageSizeGroup = _styled(Pagination.Group).withConfig({
63
+ displayName: "TablePaginationstyle__PageSizeGroup",
64
+ componentId: "RedisUI__sc-ccqfi0-5"
65
+ })(["gap:1rem;"]);
66
+ const PageNavGroup = _styled(Pagination.Group).withConfig({
67
+ displayName: "TablePaginationstyle__PageNavGroup",
68
+ componentId: "RedisUI__sc-ccqfi0-6"
69
+ })(["gap:0.4rem;"]);
70
+ const PageSelectGroup = _styled(Pagination.Group).withConfig({
71
+ displayName: "TablePaginationstyle__PageSelectGroup",
72
+ componentId: "RedisUI__sc-ccqfi0-7"
73
+ })(["gap:0.4rem;"]);
48
74
  export {
49
- CountInfo,
50
- ItemPerPageText,
51
- PageLabelText,
52
- PaginationActions,
53
- PaginationIconButton,
54
- PaginationIndexText,
55
- PaginationRow,
56
- Select,
57
- TotalPagesText
75
+ InfoLabel,
76
+ NavigationButton,
77
+ PageNavGroup,
78
+ PageSelect,
79
+ PageSelectGroup,
80
+ PageSizeGroup,
81
+ PageSizeSelect,
82
+ PaginationBar
58
83
  };
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("../../../../../node_modules/react/jsx-runtime.cjs");
4
+ const redisUiComponents = require("@redislabsdev/redis-ui-components");
5
+ const React = require("react");
6
+ const Table_context = require("../../../../Table.context.cjs");
7
+ const PaginationPlugin = require("../../../../plugins/PaginationPlugin.cjs");
8
+ const TablePaginationCompose = ({
9
+ children
10
+ }) => {
11
+ const {
12
+ table
13
+ } = Table_context.useTableContext();
14
+ const pagination = PaginationPlugin.usePaginationContext();
15
+ const paginationEnabled = !!pagination;
16
+ const {
17
+ pageIndex,
18
+ pageSize
19
+ } = table.getState().pagination;
20
+ const pageCount = Math.max(table.getPageCount(), 1);
21
+ React.useEffect(() => {
22
+ if (paginationEnabled) {
23
+ const fixedIndex = Math.min(pageIndex, pageCount - 1);
24
+ if (fixedIndex !== pageIndex) table.setPageIndex(fixedIndex);
25
+ }
26
+ }, [pageCount, pageIndex, table, paginationEnabled]);
27
+ if (!paginationEnabled) {
28
+ return null;
29
+ }
30
+ return jsxRuntime.jsxRuntimeExports.jsx(redisUiComponents.Pagination.Compose, {
31
+ onPageChange: table.setPageIndex,
32
+ pageIndex,
33
+ pageSize,
34
+ pageCount,
35
+ onPageSizeChange: table.setPageSize,
36
+ totalItemCount: table.getRowCount(),
37
+ visibleItemCount: table.getRowModel().rows.length,
38
+ children
39
+ });
40
+ };
41
+ exports.TablePaginationCompose = TablePaginationCompose;
@@ -0,0 +1,3 @@
1
+ import { ComposeChildrenProps } from '@redislabsdev/redis-ui-components';
2
+ export type PaginationComposeProps = ComposeChildrenProps;
3
+ export declare const TablePaginationCompose: ({ children }: PaginationComposeProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,41 @@
1
+ import { j as jsxRuntimeExports } from "../../../../../node_modules/react/jsx-runtime.js";
2
+ import { Pagination } from "@redislabsdev/redis-ui-components";
3
+ import { useEffect } from "react";
4
+ import { useTableContext } from "../../../../Table.context.js";
5
+ import { usePaginationContext } from "../../../../plugins/PaginationPlugin.js";
6
+ const TablePaginationCompose = ({
7
+ children
8
+ }) => {
9
+ const {
10
+ table
11
+ } = useTableContext();
12
+ const pagination = usePaginationContext();
13
+ const paginationEnabled = !!pagination;
14
+ const {
15
+ pageIndex,
16
+ pageSize
17
+ } = table.getState().pagination;
18
+ const pageCount = Math.max(table.getPageCount(), 1);
19
+ useEffect(() => {
20
+ if (paginationEnabled) {
21
+ const fixedIndex = Math.min(pageIndex, pageCount - 1);
22
+ if (fixedIndex !== pageIndex) table.setPageIndex(fixedIndex);
23
+ }
24
+ }, [pageCount, pageIndex, table, paginationEnabled]);
25
+ if (!paginationEnabled) {
26
+ return null;
27
+ }
28
+ return jsxRuntimeExports.jsx(Pagination.Compose, {
29
+ onPageChange: table.setPageIndex,
30
+ pageIndex,
31
+ pageSize,
32
+ pageCount,
33
+ onPageSizeChange: table.setPageSize,
34
+ totalItemCount: table.getRowCount(),
35
+ visibleItemCount: table.getRowModel().rows.length,
36
+ children
37
+ });
38
+ };
39
+ export {
40
+ TablePaginationCompose
41
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const Table_style = require("../../Table.style.cjs");
4
+ const TableRoot = Table_style.Table;
5
+ exports.TableRoot = TableRoot;
@@ -0,0 +1 @@
1
+ export declare const TableRoot: import("styled-components").StyledComponent<"table", any, {}, never>;
@@ -0,0 +1,5 @@
1
+ import { Table } from "../../Table.style.js";
2
+ const TableRoot = Table;
3
+ export {
4
+ TableRoot
5
+ };
@@ -1,8 +1,5 @@
1
1
  export { default as Table } from './Table';
2
2
  export { ShowOnRowHover } from './components/ShowOnRowHover/ShowOnRowHover.style';
3
- export type { ColumnDefinition } from './Table.types';
4
- export type { RowDefinition } from './Table.types';
5
- export type { CellDefinition } from './Table.types';
6
- export type { PaginationTypes } from './Table.types';
7
- export type { SortingTypes } from './Table.types';
8
- export { useTableContext } from './Table.context';
3
+ export * from './Table.types';
4
+ export * from './Table.context';
5
+ export { type TablePluginData, buildPluginContext } from './utils/plugin.utils';
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const redisUiComponents = require("@redislabsdev/redis-ui-components");
4
+ const plugin_utils = require("../utils/plugin.utils.cjs");
5
+ const Table_context = require("../Table.context.cjs");
6
+ const getTrue = () => true;
7
+ const TableClickableRowContextKey = "clickableRow";
8
+ const useClickableRowPlugin = ({
9
+ getCanRowClick = getTrue,
10
+ onRowClick,
11
+ shouldClickOnEnter = false
12
+ }) => {
13
+ return onRowClick ? {
14
+ tableOptions: {},
15
+ context: plugin_utils.buildPluginContext(TableClickableRowContextKey, {
16
+ getCanRowClick,
17
+ onRowClick,
18
+ shouldClickOnEnter
19
+ })
20
+ } : void 0;
21
+ };
22
+ const useClickableRowContext = () => Table_context.usePluginContext(TableClickableRowContextKey);
23
+ const useHandleClickableRow = ({
24
+ row,
25
+ onClick,
26
+ onKeyDown
27
+ }) => {
28
+ const {
29
+ getCanRowClick,
30
+ onRowClick,
31
+ shouldClickOnEnter
32
+ } = useClickableRowContext() || {};
33
+ const handleClick = redisUiComponents.combineHandlers(onRowClick && (getCanRowClick == null ? void 0 : getCanRowClick(row)) ? () => onRowClick(row) : void 0, onClick);
34
+ const handleKeyDown = redisUiComponents.combineHandlers(shouldClickOnEnter && handleClick ? (event) => {
35
+ var _a;
36
+ if (event.key === "Enter" && event.target === event.currentTarget) {
37
+ (_a = event.currentTarget) == null ? void 0 : _a.click();
38
+ }
39
+ } : void 0, onKeyDown);
40
+ return {
41
+ onClick: handleClick,
42
+ onKeyDown: handleKeyDown
43
+ };
44
+ };
45
+ exports.TableClickableRowContextKey = TableClickableRowContextKey;
46
+ exports.useClickableRowContext = useClickableRowContext;
47
+ exports.useClickableRowPlugin = useClickableRowPlugin;
48
+ exports.useHandleClickableRow = useHandleClickableRow;
@@ -0,0 +1,25 @@
1
+ import { KeyboardEventHandler, MouseEventHandler } from 'react';
2
+ import { type Row } from '@tanstack/react-table';
3
+ import { TablePluginData } from '../utils/plugin.utils';
4
+ export declare const TableClickableRowContextKey = "clickableRow";
5
+ export type TableClickableRowContext<T extends object> = {
6
+ /** Allows individual rows to be clickable */
7
+ getCanRowClick: (row: Row<T>) => boolean;
8
+ /** Handles click on the row */
9
+ onRowClick: (row: Row<T>) => void;
10
+ /** Allows simulating click on the row, when pressing Enter key */
11
+ shouldClickOnEnter: boolean;
12
+ };
13
+ export type TableClickableRowParams<T extends object> = Partial<TableClickableRowContext<T>>;
14
+ export declare const useClickableRowPlugin: <T extends object>({ getCanRowClick, onRowClick, shouldClickOnEnter }: Partial<TableClickableRowContext<T>>) => TablePluginData<T>;
15
+ export declare const useClickableRowContext: <T extends object>() => TableClickableRowContext<T> | undefined;
16
+ type UseHandleClickableRowParams<T extends object> = {
17
+ row: Row<T>;
18
+ onClick?: MouseEventHandler<HTMLTableRowElement>;
19
+ onKeyDown?: KeyboardEventHandler<HTMLTableRowElement>;
20
+ };
21
+ export declare const useHandleClickableRow: <T extends object>({ row, onClick, onKeyDown }: UseHandleClickableRowParams<T>) => {
22
+ onClick: MouseEventHandler<HTMLTableRowElement> | undefined;
23
+ onKeyDown: ((event: import("react").KeyboardEvent<HTMLTableRowElement>) => void) | undefined;
24
+ };
25
+ export {};
@@ -0,0 +1,48 @@
1
+ import { combineHandlers } from "@redislabsdev/redis-ui-components";
2
+ import { buildPluginContext } from "../utils/plugin.utils.js";
3
+ import { usePluginContext } from "../Table.context.js";
4
+ const getTrue = () => true;
5
+ const TableClickableRowContextKey = "clickableRow";
6
+ const useClickableRowPlugin = ({
7
+ getCanRowClick = getTrue,
8
+ onRowClick,
9
+ shouldClickOnEnter = false
10
+ }) => {
11
+ return onRowClick ? {
12
+ tableOptions: {},
13
+ context: buildPluginContext(TableClickableRowContextKey, {
14
+ getCanRowClick,
15
+ onRowClick,
16
+ shouldClickOnEnter
17
+ })
18
+ } : void 0;
19
+ };
20
+ const useClickableRowContext = () => usePluginContext(TableClickableRowContextKey);
21
+ const useHandleClickableRow = ({
22
+ row,
23
+ onClick,
24
+ onKeyDown
25
+ }) => {
26
+ const {
27
+ getCanRowClick,
28
+ onRowClick,
29
+ shouldClickOnEnter
30
+ } = useClickableRowContext() || {};
31
+ const handleClick = combineHandlers(onRowClick && (getCanRowClick == null ? void 0 : getCanRowClick(row)) ? () => onRowClick(row) : void 0, onClick);
32
+ const handleKeyDown = combineHandlers(shouldClickOnEnter && handleClick ? (event) => {
33
+ var _a;
34
+ if (event.key === "Enter" && event.target === event.currentTarget) {
35
+ (_a = event.currentTarget) == null ? void 0 : _a.click();
36
+ }
37
+ } : void 0, onKeyDown);
38
+ return {
39
+ onClick: handleClick,
40
+ onKeyDown: handleKeyDown
41
+ };
42
+ };
43
+ export {
44
+ TableClickableRowContextKey,
45
+ useClickableRowContext,
46
+ useClickableRowPlugin,
47
+ useHandleClickableRow
48
+ };
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const plugin_utils = require("../utils/plugin.utils.cjs");
4
+ const ClickableRowPlugin = require("./ClickableRowPlugin.cjs");
5
+ const Table_context = require("../Table.context.cjs");
6
+ const index = require("../../node_modules/@tanstack/table-core/build/lib/index.cjs");
7
+ const getTrue = () => true;
8
+ const TableExpandableRowContextKey = "expandableRow";
9
+ const useExpandableRowPlugin = ({
10
+ getRowCanExpand,
11
+ renderExpandedRow,
12
+ expandRowOnClick,
13
+ expandedRowComponent
14
+ }) => {
15
+ const clickablePluginData = ClickableRowPlugin.useClickableRowPlugin({
16
+ getCanRowClick: (row) => !!(expandRowOnClick && row.getCanExpand()),
17
+ onRowClick: (row) => row.toggleExpanded(),
18
+ shouldClickOnEnter: true
19
+ });
20
+ const isExpandable = !!renderExpandedRow;
21
+ return isExpandable ? {
22
+ tableOptions: {
23
+ getExpandedRowModel: index.getExpandedRowModel(),
24
+ getRowCanExpand: getRowCanExpand || getTrue
25
+ },
26
+ context: {
27
+ ...plugin_utils.buildPluginContext(TableExpandableRowContextKey, {
28
+ renderExpandedRow,
29
+ expandedRowComponent
30
+ }),
31
+ ...expandRowOnClick ? clickablePluginData == null ? void 0 : clickablePluginData.context : null
32
+ }
33
+ } : void 0;
34
+ };
35
+ const useExpandableRowContext = () => Table_context.usePluginContext(TableExpandableRowContextKey);
36
+ exports.TableExpandableRowContextKey = TableExpandableRowContextKey;
37
+ exports.useExpandableRowContext = useExpandableRowContext;
38
+ exports.useExpandableRowPlugin = useExpandableRowPlugin;
@@ -0,0 +1,22 @@
1
+ import { ComponentType, ReactNode } from 'react';
2
+ import { type Row } from '@tanstack/react-table';
3
+ import { TablePluginData } from '../utils/plugin.utils';
4
+ import type { TableExpandedRowProps } from '../components/TableExpandedRow';
5
+ export declare const TableExpandableRowContextKey = "expandableRow";
6
+ export type TableExpandableRowContext<T extends object> = {
7
+ /** Renders content of expanded part */
8
+ renderExpandedRow?: (row: Row<T>) => ReactNode;
9
+ /**
10
+ * Overrides whole expanded part component.<br/>
11
+ * There are 2 predefined components `Table.ExpandedRow` (default) and `Table.AnimatedExpandedRow`
12
+ */
13
+ expandedRowComponent?: ComponentType<TableExpandedRowProps<T>>;
14
+ };
15
+ export interface TableExpandableRowParams<T extends object> extends TableExpandableRowContext<T> {
16
+ /** Allows expanding row by Click on whole row and by pressing Enter, when row is focused */
17
+ expandRowOnClick?: boolean;
18
+ /** Allows individual rows to be expandable */
19
+ getRowCanExpand?: (row: Row<T>) => boolean;
20
+ }
21
+ export declare const useExpandableRowPlugin: <T extends object>({ getRowCanExpand, renderExpandedRow, expandRowOnClick, expandedRowComponent }: TableExpandableRowParams<T>) => TablePluginData<T>;
22
+ export declare const useExpandableRowContext: <T extends object>() => TableExpandableRowContext<T> | undefined;
@@ -0,0 +1,38 @@
1
+ import { buildPluginContext } from "../utils/plugin.utils.js";
2
+ import { useClickableRowPlugin } from "./ClickableRowPlugin.js";
3
+ import { usePluginContext } from "../Table.context.js";
4
+ import { getExpandedRowModel } from "../../node_modules/@tanstack/table-core/build/lib/index.js";
5
+ const getTrue = () => true;
6
+ const TableExpandableRowContextKey = "expandableRow";
7
+ const useExpandableRowPlugin = ({
8
+ getRowCanExpand,
9
+ renderExpandedRow,
10
+ expandRowOnClick,
11
+ expandedRowComponent
12
+ }) => {
13
+ const clickablePluginData = useClickableRowPlugin({
14
+ getCanRowClick: (row) => !!(expandRowOnClick && row.getCanExpand()),
15
+ onRowClick: (row) => row.toggleExpanded(),
16
+ shouldClickOnEnter: true
17
+ });
18
+ const isExpandable = !!renderExpandedRow;
19
+ return isExpandable ? {
20
+ tableOptions: {
21
+ getExpandedRowModel: getExpandedRowModel(),
22
+ getRowCanExpand: getRowCanExpand || getTrue
23
+ },
24
+ context: {
25
+ ...buildPluginContext(TableExpandableRowContextKey, {
26
+ renderExpandedRow,
27
+ expandedRowComponent
28
+ }),
29
+ ...expandRowOnClick ? clickablePluginData == null ? void 0 : clickablePluginData.context : null
30
+ }
31
+ } : void 0;
32
+ };
33
+ const useExpandableRowContext = () => usePluginContext(TableExpandableRowContextKey);
34
+ export {
35
+ TableExpandableRowContextKey,
36
+ useExpandableRowContext,
37
+ useExpandableRowPlugin
38
+ };
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const index = require("../../node_modules/@radix-ui/react-use-controllable-state/dist/index.cjs");
4
+ const plugin_utils = require("../utils/plugin.utils.cjs");
5
+ const Table_context = require("../Table.context.cjs");
6
+ const index$1 = require("../../node_modules/@tanstack/table-core/build/lib/index.cjs");
7
+ const DEFAULT_PAGINATION = {
8
+ pageIndex: 0,
9
+ pageSize: 10
10
+ };
11
+ const TablePaginationContextKey = "pagination";
12
+ const usePaginationPlugin = ({
13
+ pagination,
14
+ defaultPagination,
15
+ onPaginationChange,
16
+ manualPagination,
17
+ totalRowCount,
18
+ pageSizes,
19
+ paginationEnabled = (pagination || defaultPagination || onPaginationChange || pageSizes) !== void 0 || manualPagination !== void 0
20
+ }) => {
21
+ const [paginationState, setPaginationState] = index.useControllableState({
22
+ prop: pagination,
23
+ defaultProp: defaultPagination ?? DEFAULT_PAGINATION,
24
+ onChange: onPaginationChange
25
+ });
26
+ return paginationEnabled ? {
27
+ tableOptions: {
28
+ state: {
29
+ pagination: paginationState
30
+ },
31
+ getPaginationRowModel: index$1.getPaginationRowModel(),
32
+ onPaginationChange: setPaginationState,
33
+ manualPagination,
34
+ rowCount: totalRowCount,
35
+ autoResetPageIndex: false
36
+ },
37
+ context: plugin_utils.buildPluginContext(TablePaginationContextKey, {
38
+ pageSizes
39
+ })
40
+ } : void 0;
41
+ };
42
+ const usePaginationContext = () => Table_context.usePluginContext(TablePaginationContextKey);
43
+ exports.TablePaginationContextKey = TablePaginationContextKey;
44
+ exports.usePaginationContext = usePaginationContext;
45
+ exports.usePaginationPlugin = usePaginationPlugin;
@@ -0,0 +1,16 @@
1
+ import { PaginationState } from '@tanstack/react-table';
2
+ import { TablePluginData } from '../utils/plugin.utils';
3
+ export declare const TablePaginationContextKey = "pagination";
4
+ export interface TablePaginationContext {
5
+ pageSizes?: number[];
6
+ paginationEnabled?: boolean;
7
+ }
8
+ export interface TablePaginationParams extends TablePaginationContext {
9
+ pagination?: PaginationState;
10
+ defaultPagination?: PaginationState;
11
+ onPaginationChange?: (state: PaginationState) => void;
12
+ manualPagination?: boolean;
13
+ totalRowCount?: number;
14
+ }
15
+ export declare const usePaginationPlugin: <T extends object>({ pagination, defaultPagination, onPaginationChange, manualPagination, totalRowCount, pageSizes, paginationEnabled }: TablePaginationParams) => TablePluginData<T>;
16
+ export declare const usePaginationContext: () => TablePaginationContext | undefined;
@@ -0,0 +1,45 @@
1
+ import { useControllableState } from "../../node_modules/@radix-ui/react-use-controllable-state/dist/index.js";
2
+ import { buildPluginContext } from "../utils/plugin.utils.js";
3
+ import { usePluginContext } from "../Table.context.js";
4
+ import { getPaginationRowModel } from "../../node_modules/@tanstack/table-core/build/lib/index.js";
5
+ const DEFAULT_PAGINATION = {
6
+ pageIndex: 0,
7
+ pageSize: 10
8
+ };
9
+ const TablePaginationContextKey = "pagination";
10
+ const usePaginationPlugin = ({
11
+ pagination,
12
+ defaultPagination,
13
+ onPaginationChange,
14
+ manualPagination,
15
+ totalRowCount,
16
+ pageSizes,
17
+ paginationEnabled = (pagination || defaultPagination || onPaginationChange || pageSizes) !== void 0 || manualPagination !== void 0
18
+ }) => {
19
+ const [paginationState, setPaginationState] = useControllableState({
20
+ prop: pagination,
21
+ defaultProp: defaultPagination ?? DEFAULT_PAGINATION,
22
+ onChange: onPaginationChange
23
+ });
24
+ return paginationEnabled ? {
25
+ tableOptions: {
26
+ state: {
27
+ pagination: paginationState
28
+ },
29
+ getPaginationRowModel: getPaginationRowModel(),
30
+ onPaginationChange: setPaginationState,
31
+ manualPagination,
32
+ rowCount: totalRowCount,
33
+ autoResetPageIndex: false
34
+ },
35
+ context: buildPluginContext(TablePaginationContextKey, {
36
+ pageSizes
37
+ })
38
+ } : void 0;
39
+ };
40
+ const usePaginationContext = () => usePluginContext(TablePaginationContextKey);
41
+ export {
42
+ TablePaginationContextKey,
43
+ usePaginationContext,
44
+ usePaginationPlugin
45
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const index = require("../../node_modules/@radix-ui/react-use-controllable-state/dist/index.cjs");
4
+ const DEFAULT_ROW_SELECTION = {};
5
+ const useRowSelectionPlugin = ({
6
+ rowSelection,
7
+ defaultRowSelection,
8
+ onRowSelectionChange,
9
+ rowSelectionMode,
10
+ getRowCanSelect
11
+ }) => {
12
+ const [rowSelectionState = DEFAULT_ROW_SELECTION, setRowSelectionState] = index.useControllableState({
13
+ prop: rowSelection,
14
+ defaultProp: defaultRowSelection,
15
+ onChange: onRowSelectionChange
16
+ });
17
+ return rowSelectionMode && {
18
+ tableOptions: {
19
+ state: {
20
+ rowSelection: rowSelectionState
21
+ },
22
+ enableRowSelection: getRowCanSelect ?? true,
23
+ enableMultiRowSelection: rowSelectionMode === "multiple",
24
+ onRowSelectionChange: setRowSelectionState
25
+ }
26
+ };
27
+ };
28
+ exports.useRowSelectionPlugin = useRowSelectionPlugin;
@@ -0,0 +1,12 @@
1
+ import type { Row, RowSelectionState } from '@tanstack/react-table';
2
+ import { TablePluginData } from '../utils/plugin.utils';
3
+ export interface TableRowSelectionParams<T extends object> {
4
+ rowSelection?: RowSelectionState;
5
+ defaultRowSelection?: RowSelectionState;
6
+ onRowSelectionChange?: (state: RowSelectionState) => void;
7
+ /** Enables row selection sets selection mode */
8
+ rowSelectionMode?: 'single' | 'multiple';
9
+ /** Allows individual rows to be selectable */
10
+ getRowCanSelect?: (row: Row<T>) => boolean;
11
+ }
12
+ export declare const useRowSelectionPlugin: <T extends object>({ rowSelection, defaultRowSelection, onRowSelectionChange, rowSelectionMode, getRowCanSelect }: TableRowSelectionParams<T>) => TablePluginData<T>;