@redis-ui/table 2.12.0 → 2.22.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 (166) hide show
  1. package/dist/Table/Table.cjs +95 -146
  2. package/dist/Table/Table.context.cjs +16 -1
  3. package/dist/Table/Table.context.d.ts +23 -4
  4. package/dist/Table/Table.context.js +16 -1
  5. package/dist/Table/Table.d.ts +88 -5
  6. package/dist/Table/Table.js +95 -146
  7. package/dist/Table/Table.style.cjs +43 -13
  8. package/dist/Table/Table.style.d.ts +6 -6
  9. package/dist/Table/Table.style.js +43 -13
  10. package/dist/Table/Table.types.d.ts +22 -38
  11. package/dist/Table/components/Compose/Compose.cjs +45 -0
  12. package/dist/Table/components/Compose/Compose.d.ts +13 -0
  13. package/dist/Table/components/Compose/Compose.js +45 -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/ExpandAllRowsButton.cjs +20 -0
  18. package/dist/Table/components/ExpandRowButton/ExpandAllRowsButton.d.ts +8 -0
  19. package/dist/Table/components/ExpandRowButton/ExpandAllRowsButton.js +20 -0
  20. package/dist/Table/components/ExpandRowButton/ExpandAllRowsButton.test.d.ts +1 -0
  21. package/dist/Table/components/ExpandRowButton/useExpanderColumn.cjs +19 -0
  22. package/dist/Table/components/ExpandRowButton/useExpanderColumn.d.ts +6 -0
  23. package/dist/Table/components/ExpandRowButton/useExpanderColumn.js +19 -0
  24. package/dist/Table/components/ExpandRowButton/useExpanderColumn.test.d.ts +1 -0
  25. package/dist/Table/components/HiddenCaption/HiddenCaption.cjs +13 -0
  26. package/dist/Table/components/HiddenCaption/HiddenCaption.d.ts +3 -0
  27. package/dist/Table/components/HiddenCaption/HiddenCaption.js +13 -0
  28. package/dist/Table/components/PluggableTable/PluggableTable.cjs +19 -0
  29. package/dist/Table/components/PluggableTable/PluggableTable.d.ts +10 -0
  30. package/dist/Table/components/PluggableTable/PluggableTable.js +19 -0
  31. package/dist/Table/components/PluggableTable/compositionComponents.cjs +21 -0
  32. package/dist/Table/components/PluggableTable/compositionComponents.d.ts +67 -0
  33. package/dist/Table/components/PluggableTable/compositionComponents.js +21 -0
  34. package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.cjs +1 -0
  35. package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.d.ts +1 -1
  36. package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.js +1 -0
  37. package/dist/Table/components/RowSelection/useRowSelectionColumn.cjs +26 -0
  38. package/dist/Table/components/RowSelection/useRowSelectionColumn.d.ts +8 -0
  39. package/dist/Table/components/RowSelection/useRowSelectionColumn.js +26 -0
  40. package/dist/Table/components/RowSelection/useRowSelectionColumn.test.d.ts +1 -0
  41. package/dist/Table/components/ShowOnRowHover/ShowOnRowHover.style.cjs +3 -1
  42. package/dist/Table/components/ShowOnRowHover/ShowOnRowHover.style.js +3 -1
  43. package/dist/Table/components/TableBody/TableBody.cjs +33 -0
  44. package/dist/Table/components/TableBody/TableBody.d.ts +23 -0
  45. package/dist/Table/components/TableBody/TableBody.js +33 -0
  46. package/dist/Table/components/TableBody/components/Compose/Compose.cjs +8 -0
  47. package/dist/Table/components/TableBody/components/Compose/Compose.d.ts +3 -0
  48. package/dist/Table/components/TableBody/components/Compose/Compose.js +8 -0
  49. package/dist/Table/components/TableBodyCell/TableBodyCell.cjs +18 -0
  50. package/dist/Table/components/TableBodyCell/TableBodyCell.d.ts +9 -0
  51. package/dist/Table/components/TableBodyCell/TableBodyCell.js +18 -0
  52. package/dist/Table/components/TableBodyCell/components/Compose/Compose.cjs +25 -0
  53. package/dist/Table/components/TableBodyCell/components/Compose/Compose.d.ts +9 -0
  54. package/dist/Table/components/TableBodyCell/components/Compose/Compose.js +25 -0
  55. package/dist/Table/components/TableBodyCell/components/Compose/Compose.test.d.ts +1 -0
  56. package/dist/Table/components/TableBodyRow/TableBodyRow.cjs +48 -0
  57. package/dist/Table/components/TableBodyRow/TableBodyRow.d.ts +20 -0
  58. package/dist/Table/components/TableBodyRow/TableBodyRow.js +48 -0
  59. package/dist/Table/components/TableBodyRow/TableBodyRowExpandable.cjs +33 -0
  60. package/dist/Table/components/TableBodyRow/TableBodyRowExpandable.d.ts +2 -0
  61. package/dist/Table/components/TableBodyRow/TableBodyRowExpandable.js +33 -0
  62. package/dist/Table/components/TableBodyRow/components/Compose/Compose.cjs +17 -0
  63. package/dist/Table/components/TableBodyRow/components/Compose/Compose.d.ts +5 -0
  64. package/dist/Table/components/TableBodyRow/components/Compose/Compose.js +17 -0
  65. package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.cjs +3 -4
  66. package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.d.ts +1 -1
  67. package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.js +3 -4
  68. package/dist/Table/components/TableExpandedRow/TableExpandedRow.cjs +9 -4
  69. package/dist/Table/components/TableExpandedRow/TableExpandedRow.d.ts +1 -1
  70. package/dist/Table/components/TableExpandedRow/TableExpandedRow.js +9 -4
  71. package/dist/Table/components/TableExpandedRow/TableExpandedRow.types.d.ts +3 -5
  72. package/dist/Table/components/TableHeader/TableHeader.cjs +28 -0
  73. package/dist/Table/components/TableHeader/TableHeader.d.ts +21 -0
  74. package/dist/Table/components/TableHeader/TableHeader.js +28 -0
  75. package/dist/Table/components/TableHeader/components/Compose/Compose.cjs +5 -0
  76. package/dist/Table/components/TableHeader/components/Compose/Compose.d.ts +3 -0
  77. package/dist/Table/components/TableHeader/components/Compose/Compose.js +5 -0
  78. package/dist/Table/components/TableHeaderCell/SRSortingNotification.cjs +18 -0
  79. package/dist/Table/components/TableHeaderCell/SRSortingNotification.d.ts +1 -0
  80. package/dist/Table/components/TableHeaderCell/SRSortingNotification.js +18 -0
  81. package/dist/Table/components/TableHeaderCell/TableHeaderCell.cjs +15 -33
  82. package/dist/Table/components/TableHeaderCell/TableHeaderCell.context.cjs +15 -0
  83. package/dist/Table/components/TableHeaderCell/TableHeaderCell.context.d.ts +8 -0
  84. package/dist/Table/components/TableHeaderCell/TableHeaderCell.context.js +15 -0
  85. package/dist/Table/components/TableHeaderCell/TableHeaderCell.d.ts +16 -4
  86. package/dist/Table/components/TableHeaderCell/TableHeaderCell.js +15 -33
  87. package/dist/Table/components/TableHeaderCell/TableHeaderCell.test.d.ts +1 -0
  88. package/dist/Table/components/TableHeaderCell/TableHeaderCell.utils.cjs +0 -22
  89. package/dist/Table/components/TableHeaderCell/TableHeaderCell.utils.d.ts +0 -1
  90. package/dist/Table/components/TableHeaderCell/TableHeaderCell.utils.js +1 -23
  91. package/dist/Table/components/TableHeaderCell/components/Compose/Compose.cjs +48 -0
  92. package/dist/Table/components/TableHeaderCell/components/Compose/Compose.d.ts +9 -0
  93. package/dist/Table/components/TableHeaderCell/components/Compose/Compose.js +48 -0
  94. package/dist/Table/components/TableHeaderCell/components/Compose/Compose.test.d.ts +1 -0
  95. package/dist/Table/components/TableHeaderCell/components/Heading/Heading.cjs +35 -0
  96. package/dist/Table/components/TableHeaderCell/components/Heading/Heading.d.ts +5 -0
  97. package/dist/Table/components/TableHeaderCell/components/Heading/Heading.js +35 -0
  98. package/dist/Table/components/TableHeaderCell/components/SortableHeading/SortableHeading.cjs +16 -0
  99. package/dist/Table/components/TableHeaderCell/components/SortableHeading/SortableHeading.d.ts +8 -0
  100. package/dist/Table/components/TableHeaderCell/components/SortableHeading/SortableHeading.js +16 -0
  101. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/Compose/Compose.cjs +24 -0
  102. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/Compose/Compose.d.ts +5 -0
  103. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/Compose/Compose.js +24 -0
  104. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/SortIndicator/SortIndicator.cjs +6 -0
  105. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/SortIndicator/SortIndicator.d.ts +2 -0
  106. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/SortIndicator/SortIndicator.js +6 -0
  107. package/dist/Table/components/TableHeaderRow/TableHeaderRow.cjs +27 -0
  108. package/dist/Table/components/TableHeaderRow/TableHeaderRow.d.ts +12 -0
  109. package/dist/Table/components/TableHeaderRow/TableHeaderRow.js +27 -0
  110. package/dist/Table/components/TableHeaderRow/components/Compose/Compose.cjs +5 -0
  111. package/dist/Table/components/TableHeaderRow/components/Compose/Compose.d.ts +3 -0
  112. package/dist/Table/components/TableHeaderRow/components/Compose/Compose.js +5 -0
  113. package/dist/Table/components/TablePagination/TablePagination.cjs +65 -99
  114. package/dist/Table/components/TablePagination/TablePagination.d.ts +23 -3
  115. package/dist/Table/components/TablePagination/TablePagination.js +66 -100
  116. package/dist/Table/components/TablePagination/TablePagination.style.cjs +70 -50
  117. package/dist/Table/components/TablePagination/TablePagination.style.d.ts +17 -50
  118. package/dist/Table/components/TablePagination/TablePagination.style.js +72 -52
  119. package/dist/Table/components/TablePagination/components/Compose/Compose.cjs +41 -0
  120. package/dist/Table/components/TablePagination/components/Compose/Compose.d.ts +3 -0
  121. package/dist/Table/components/TablePagination/components/Compose/Compose.js +41 -0
  122. package/dist/Table/components/TableRoot/TableRoot.cjs +13 -0
  123. package/dist/Table/components/TableRoot/TableRoot.d.ts +2 -0
  124. package/dist/Table/components/TableRoot/TableRoot.js +13 -0
  125. package/dist/Table/index.d.ts +3 -6
  126. package/dist/Table/plugins/ClickableRowPlugin.cjs +48 -0
  127. package/dist/Table/plugins/ClickableRowPlugin.d.ts +25 -0
  128. package/dist/Table/plugins/ClickableRowPlugin.js +48 -0
  129. package/dist/Table/plugins/ExpandableRowPlugin.cjs +44 -0
  130. package/dist/Table/plugins/ExpandableRowPlugin.d.ts +28 -0
  131. package/dist/Table/plugins/ExpandableRowPlugin.js +44 -0
  132. package/dist/Table/plugins/PaginationPlugin.cjs +45 -0
  133. package/dist/Table/plugins/PaginationPlugin.d.ts +16 -0
  134. package/dist/Table/plugins/PaginationPlugin.js +45 -0
  135. package/dist/Table/plugins/RowNavigationPlugin.cjs +139 -0
  136. package/dist/Table/plugins/RowNavigationPlugin.d.ts +44 -0
  137. package/dist/Table/plugins/RowNavigationPlugin.js +139 -0
  138. package/dist/Table/plugins/RowSelectionPlugin.cjs +28 -0
  139. package/dist/Table/plugins/RowSelectionPlugin.d.ts +12 -0
  140. package/dist/Table/plugins/RowSelectionPlugin.js +28 -0
  141. package/dist/Table/plugins/SortingPlugin.cjs +44 -0
  142. package/dist/Table/plugins/SortingPlugin.d.ts +18 -0
  143. package/dist/Table/plugins/SortingPlugin.js +44 -0
  144. package/dist/Table/tanStackExtendedTypes.d.ts +20 -0
  145. package/dist/Table/utils/plugin.utils.cjs +49 -0
  146. package/dist/Table/utils/plugin.utils.d.ts +17 -0
  147. package/dist/Table/utils/plugin.utils.js +49 -0
  148. package/dist/Table/utils/plugin.utils.test.d.ts +1 -0
  149. package/dist/Table/utils/table.utils.cjs +13 -0
  150. package/dist/Table/utils/table.utils.d.ts +2 -0
  151. package/dist/Table/utils/table.utils.js +13 -0
  152. package/dist/Table/utils/table.utils.test.d.ts +1 -0
  153. package/dist/index.cjs +60 -0
  154. package/dist/index.js +61 -1
  155. package/dist/node_modules/@tanstack/react-table/build/lib/index.cjs +7 -0
  156. package/dist/node_modules/@tanstack/react-table/build/lib/index.js +8 -1
  157. package/dist/node_modules/@tanstack/table-core/build/lib/index.cjs +361 -4
  158. package/dist/node_modules/@tanstack/table-core/build/lib/index.js +361 -4
  159. package/package.json +6 -5
  160. package/dist/Table/components/EmptyStateRow/EmptyStateRow.cjs +0 -16
  161. package/dist/Table/components/EmptyStateRow/EmptyStateRow.d.ts +0 -8
  162. package/dist/Table/components/EmptyStateRow/EmptyStateRow.js +0 -16
  163. package/dist/node_modules/@radix-ui/react-id/dist/index.cjs +0 -32
  164. package/dist/node_modules/@radix-ui/react-id/dist/index.js +0 -14
  165. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.cjs +0 -24
  166. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +0 -6
@@ -5,61 +5,81 @@ const redisUiStyles = require("@redislabsdev/redis-ui-styles");
5
5
  const redisUiComponents = require("@redislabsdev/redis-ui-components");
6
6
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
7
7
  const _styled__default = /* @__PURE__ */ _interopDefault(_styled);
8
- const PaginationIconButton = _styled__default.default(redisUiComponents.IconButton).withConfig({
9
- displayName: "TablePaginationstyle__PaginationIconButton",
8
+ const NavigationButton = _styled__default.default(redisUiComponents.Pagination.NavigationButton).withConfig({
9
+ displayName: "TablePaginationstyle__NavigationButton",
10
10
  componentId: "RedisUI__sc-ccqfi0-0"
11
- })(["color:", ";&:disabled{color:", ";}"], () => redisUiStyles.useTheme().components.table.components.tablePagination.paginationIconButton.enabledColor, () => redisUiStyles.useTheme().components.table.components.tablePagination.paginationIconButton.disabledColor);
12
- const CountInfo = _styled__default.default(redisUiComponents.Typography.Body).withConfig({
13
- displayName: "TablePaginationstyle__CountInfo",
11
+ })(["", ";"], () => {
12
+ const styles = redisUiStyles.useTheme().components.table.pagination.navButton;
13
+ return _styled.css`
14
+ width: ${styles.width};
15
+ height: ${styles.height};
16
+ padding: ${styles.padding};
17
+ color: ${styles.color};
18
+
19
+ &:disabled {
20
+ color: ${styles.disabledColor};
21
+ }
22
+ `;
23
+ });
24
+ const PaginationBar = _styled__default.default(redisUiComponents.Pagination.Bar).attrs(({
25
+ "aria-label": al
26
+ }) => ({
27
+ "aria-label": al ?? "Table Pagination"
28
+ })).withConfig({
29
+ displayName: "TablePaginationstyle__PaginationBar",
14
30
  componentId: "RedisUI__sc-ccqfi0-1"
15
- })(["display:flex;margin-right:auto;font-size:1.2rem;color:", ";"], () => redisUiStyles.useTheme().components.table.components.tablePagination.countInfoText.color);
16
- const PaginationRow = _styled__default.default.div.withConfig({
17
- displayName: "TablePaginationstyle__PaginationRow",
31
+ })(["", " width:100%;overflow:auto hidden;> *{flex:none;}"], () => {
32
+ const styles = redisUiStyles.useTheme().components.table.pagination.bar;
33
+ return _styled.css`
34
+ font-size: ${styles.fontSize};
35
+ gap: ${styles.gap};
36
+ height: ${styles.height};
37
+ padding: ${styles.padding};
38
+ border: solid ${styles.borderColor};
39
+ border-width: ${styles.borderSize};
40
+ color: ${styles.textColor};
41
+ `;
42
+ });
43
+ const InfoLabel = _styled__default.default(redisUiComponents.Pagination.InfoLabel).withConfig({
44
+ displayName: "TablePaginationstyle__InfoLabel",
18
45
  componentId: "RedisUI__sc-ccqfi0-2"
19
- })(["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 ", ";"], () => redisUiStyles.useTheme().components.table.components.tablePagination.paginationRow.borderTop);
20
- const Select = _styled__default.default(redisUiComponents.Select).withConfig({
21
- displayName: "TablePaginationstyle__Select",
46
+ })(["line-height:", ";"], () => redisUiStyles.useTheme().components.table.pagination.select.height);
47
+ const useSelectStyles = () => {
48
+ const styles = redisUiStyles.useTheme().components.table.pagination.select;
49
+ return _styled.css`
50
+ gap: ${styles.gap};
51
+ height: ${styles.height};
52
+ padding: ${styles.padding};
53
+ color: ${styles.textColor};
54
+ font-size: ${styles.fontSize};
55
+ line-height: initial;
56
+ `;
57
+ };
58
+ const PageSizeSelect = _styled__default.default(redisUiComponents.Pagination.PageSizeSelect).withConfig({
59
+ displayName: "TablePaginationstyle__PageSizeSelect",
22
60
  componentId: "RedisUI__sc-ccqfi0-3"
23
- })(["height:2rem;padding:0 0.4rem;gap:0.4rem;span{font-size:1.2rem;line-height:initial;}"]);
24
- const PaginationActions = _styled__default.default.div.withConfig({
25
- displayName: "TablePaginationstyle__PaginationActions",
61
+ })(["", ""], useSelectStyles);
62
+ const PageSelect = _styled__default.default(redisUiComponents.Pagination.PageSelect).withConfig({
63
+ displayName: "TablePaginationstyle__PageSelect",
26
64
  componentId: "RedisUI__sc-ccqfi0-4"
27
- })(["display:flex;align-items:center;gap:0.4rem;"]);
28
- const ItemPerPageText = _styled__default.default(redisUiComponents.Typography.Body).attrs({
29
- size: "S"
30
- }).withConfig({
31
- displayName: "TablePaginationstyle__ItemPerPageText",
65
+ })(["", ""], useSelectStyles);
66
+ const PageSizeGroup = _styled__default.default(redisUiComponents.Pagination.Group).withConfig({
67
+ displayName: "TablePaginationstyle__PageSizeGroup",
32
68
  componentId: "RedisUI__sc-ccqfi0-5"
33
- })(["color:", ";flex-shrink:0;"], () => redisUiStyles.useTheme().components.table.components.tablePagination.itemPerPageText.color);
34
- const PaginationIndexText = _styled__default.default(redisUiComponents.Typography.Body).attrs({
35
- size: "S"
36
- }).withConfig({
37
- displayName: "TablePaginationstyle__PaginationIndexText",
69
+ })(["gap:1rem;"]);
70
+ const PageNavGroup = _styled__default.default(redisUiComponents.Pagination.Group).withConfig({
71
+ displayName: "TablePaginationstyle__PageNavGroup",
38
72
  componentId: "RedisUI__sc-ccqfi0-6"
39
- })(["color:", ";"], () => redisUiStyles.useTheme().components.table.components.tablePagination.paginationIndexText.color);
40
- const PageLabelText = _styled__default.default(redisUiComponents.Typography.Body).attrs({
41
- size: "S"
42
- }).withConfig({
43
- displayName: "TablePaginationstyle__PageLabelText",
73
+ })(["gap:0.4rem;"]);
74
+ const PageSelectGroup = _styled__default.default(redisUiComponents.Pagination.Group).withConfig({
75
+ displayName: "TablePaginationstyle__PageSelectGroup",
44
76
  componentId: "RedisUI__sc-ccqfi0-7"
45
- })(["color:", ";flex-shrink:0;"], () => redisUiStyles.useTheme().components.table.components.tablePagination.pageLabelText.color);
46
- const Label = _styled__default.default.label.withConfig({
47
- displayName: "TablePaginationstyle__Label",
48
- componentId: "RedisUI__sc-ccqfi0-8"
49
- })(["all:unset;"]);
50
- const TotalPagesText = _styled__default.default(redisUiComponents.Typography.Body).attrs({
51
- size: "S"
52
- }).withConfig({
53
- displayName: "TablePaginationstyle__TotalPagesText",
54
- componentId: "RedisUI__sc-ccqfi0-9"
55
- })(["color:", ";flex-shrink:0;"], () => redisUiStyles.useTheme().components.table.components.tablePagination.totalPagesText.color);
56
- exports.CountInfo = CountInfo;
57
- exports.ItemPerPageText = ItemPerPageText;
58
- exports.Label = Label;
59
- exports.PageLabelText = PageLabelText;
60
- exports.PaginationActions = PaginationActions;
61
- exports.PaginationIconButton = PaginationIconButton;
62
- exports.PaginationIndexText = PaginationIndexText;
63
- exports.PaginationRow = PaginationRow;
64
- exports.Select = Select;
65
- exports.TotalPagesText = TotalPagesText;
77
+ })(["gap:0.4rem;"]);
78
+ exports.InfoLabel = InfoLabel;
79
+ exports.NavigationButton = NavigationButton;
80
+ exports.PageNavGroup = PageNavGroup;
81
+ exports.PageSelect = PageSelect;
82
+ exports.PageSelectGroup = PageSelectGroup;
83
+ exports.PageSizeGroup = PageSizeGroup;
84
+ exports.PageSizeSelect = PageSizeSelect;
85
+ exports.PaginationBar = PaginationBar;
@@ -1,51 +1,18 @@
1
- /// <reference types="react" />
2
- export declare const PaginationIconButton: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@redislabsdev/redis-ui-components").IconButtonProps & import("react").RefAttributes<HTMLButtonElement>>, any, {}, never>;
3
- export declare const CountInfo: import("styled-components").StyledComponent<({ size, variant, color, component, ellipsis, ...restProps }: import("@redislabsdev/redis-ui-components/dist/Typography/components/Body/Body.types").BodyProps) => import("react/jsx-runtime").JSX.Element, any, {}, never>;
4
- export declare const PaginationRow: import("styled-components").StyledComponent<"div", any, {}, never>;
5
- export declare const Select: import("styled-components").StyledComponent<(<TValue extends string = string, TOption extends import("@redislabsdev/redis-ui-components").SelectOption<TValue> = import("@redislabsdev/redis-ui-components").SelectOption<TValue>>({ options, disabled, defaultOpen, open, onOpenChange, defaultValue, value, onChange, customCompare, error, valid, valueRender, searchable, placement, maxVisibleItems, placeholder, virtualized, contentWidth, ...restProps }: import("@redislabsdev/redis-ui-components/dist/Select/components/Compose/Compose.types").SelectComposeProps<TValue, TOption> & Omit<import("@redislabsdev/redis-ui-components/dist/Select/components/Trigger/components/Compose/Compose.types").SelectTriggerComposeProps, "customContainer"> & import("@redislabsdev/redis-ui-components/dist/Select/components/Trigger/components/Value/Value.types").SelectTriggerValueProps<TOption> & {
6
- allowReset?: boolean | undefined;
7
- loading?: boolean | undefined;
8
- } & Omit<import("@redislabsdev/redis-ui-components/dist/Select/components/Content/Content.types").SelectContentProps<TOption>, "optionComponent" | "optionValueRender"> & import("@redislabsdev/redis-ui-components/dist/Select/components/Trigger/components/Compose/Compose.types").RestSelectTriggerComposeProps) => import("react/jsx-runtime").JSX.Element) & {
9
- Compose: <TValue_1 extends string = string, TOption_1 extends import("@redislabsdev/redis-ui-components").SelectOption<TValue_1> = import("@redislabsdev/redis-ui-components").SelectOption<TValue_1>>({ options, children, onOpenChange, defaultValue, value, onChange, customCompare, error, valid, disabled, ...restProps }: import("@redislabsdev/redis-ui-components/dist/Select/components/Compose/Compose.types").SelectComposeProps<TValue_1, TOption_1> & import("@redislabsdev/redis-ui-components/dist/Helpers/common.types").ComposeChildrenProps) => import("react/jsx-runtime").JSX.Element;
10
- Trigger: (<TOption_2 extends import("@redislabsdev/redis-ui-components").SelectOption<string> = import("@redislabsdev/redis-ui-components").SelectOption<string>>({ placeholder, valueRender, allowReset, loading, ...props }: Omit<import("@redislabsdev/redis-ui-components/dist/Select/components/Trigger/components/Compose/Compose.types").SelectTriggerComposeProps, "customContainer"> & import("@redislabsdev/redis-ui-components/dist/Select/components/Trigger/components/Value/Value.types").SelectTriggerValueProps<TOption_2> & {
11
- allowReset?: boolean | undefined;
12
- loading?: boolean | undefined;
13
- } & import("@redislabsdev/redis-ui-components/dist/Select/components/Trigger/components/Compose/Compose.types").RestSelectTriggerComposeProps) => import("react/jsx-runtime").JSX.Element) & {
14
- Compose: ({ customContainer, id, ...restProps }: import("@redislabsdev/redis-ui-components/dist/Select/components/Trigger/components/Compose/Compose.types").SelectTriggerComposeProps & import("@redislabsdev/redis-ui-components/dist/Select/components/Trigger/components/Compose/Compose.types").RestSelectTriggerComposeProps & import("@redislabsdev/redis-ui-components/dist/Helpers/common.types").ComposeChildrenProps) => import("react/jsx-runtime").JSX.Element;
15
- Value: <TOption_3 extends import("@redislabsdev/redis-ui-components").SelectOption<string> = import("@redislabsdev/redis-ui-components").SelectOption<string>>({ placeholder, valueRender, ...restProps }: import("@redislabsdev/redis-ui-components/dist/Select/components/Trigger/components/Value/Value.types").SelectTriggerValueProps<TOption_3> & import("@redislabsdev/redis-ui-components/dist/Select/components/Trigger/components/Value/Value.types").RestSelectTriggerValueProps) => import("react/jsx-runtime").JSX.Element;
16
- ResetButton: ({ children, title, ...restProps }: import("react").HTMLAttributes<HTMLButtonElement>) => import("react/jsx-runtime").JSX.Element | null;
17
- StatusIndicator: ({ className, style, size, ...restProps }: import("@redislabsdev/redis-ui-icons/monochrome").MonochromeIconProps & Pick<import("react").HTMLAttributes<unknown>, "style" | "className">) => import("react/jsx-runtime").JSX.Element | null;
18
- LoadingIndicator: ({ loading, ...restProps }: import("@redislabsdev/redis-ui-components/dist/Inputs/components/LoadingIndicator/LoadingIndicator.types").LoadingIndicatorProps & import("@redislabsdev/redis-ui-components/dist/Inputs/components/LoadingIndicator/LoadingIndicator.types").RestLoadingIndicatorProps) => import("react/jsx-runtime").JSX.Element | null;
19
- Arrow: ({ icon, ...restProps }: import("@redislabsdev/redis-ui-components/dist/Select/components/Trigger/components/Arrow/Arrow.types").TriggerArrowProps) => import("react/jsx-runtime").JSX.Element;
20
- ErrorIcon: ({ className, style, size, ...restProps }: import("@redislabsdev/redis-ui-icons/monochrome").MonochromeIconProps & Pick<import("react").HTMLAttributes<unknown>, "style" | "className">) => import("react/jsx-runtime").JSX.Element | null;
21
- };
22
- Content: (<TOption_4 extends import("@redislabsdev/redis-ui-components").SelectOption<string> = import("@redislabsdev/redis-ui-components").SelectOption<string>>({ searchable, optionValueRender, optionComponent, maxVisibleItems, virtualized, ...restProps }: import("@redislabsdev/redis-ui-components/dist/Select/components/Content/components/Compose/Compose.types").SelectContentComposeProps & import("@redislabsdev/redis-ui-components/dist/Select/components/Content/components/OptionList/OptionList.types").OptionListProps<TOption_4> & {
23
- searchable?: boolean | undefined;
24
- } & import("@redislabsdev/redis-ui-components/dist/Select/components/Content/components/Compose/Compose.types").RestSelectContentComposeProps) => import("react/jsx-runtime").JSX.Element) & {
25
- Compose: ({ children, placement, contentWidth, ...restProps }: import("@redislabsdev/redis-ui-components/dist/Select/components/Content/components/Compose/Compose.types").SelectContentComposeProps & import("@redislabsdev/redis-ui-components/dist/Select/components/Content/components/Compose/Compose.types").RestSelectContentComposeProps & import("@redislabsdev/redis-ui-components/dist/Helpers/common.types").ComposeChildrenProps) => import("react/jsx-runtime").JSX.Element;
26
- OptionList: <TOption_5 extends import("@redislabsdev/redis-ui-components").SelectOption<string> = import("@redislabsdev/redis-ui-components").SelectOption<string>>({ optionValueRender, optionComponent: OptionComponent, maxVisibleItems, virtualized, ...restProps }: import("@redislabsdev/redis-ui-components/dist/Select/components/Content/components/OptionList/OptionList.types").OptionListProps<TOption_5> & import("@redislabsdev/redis-ui-components/dist/Select/components/Content/components/OptionList/OptionList.types").RestOptionListProps) => import("react/jsx-runtime").JSX.Element;
27
- Search: import("react").ForwardRefExoticComponent<Omit<import("@redislabsdev/redis-ui-components/dist/Inputs/components/Compose/TextCompose.types").TextInputComposeProps, "readOnly" | "parser" | "formatter"> & import("@redislabsdev/redis-ui-components/dist/Inputs/components/InputTag/InputTag.types").InputTagProps & import("@redislabsdev/redis-ui-components/dist/Inputs/components/LoadingIndicator/LoadingIndicator.types").LoadingIndicatorProps & import("@redislabsdev/redis-ui-components/dist/Inputs/components/ResetButton/ResetButton.types").ResetButtonProps & import("@redislabsdev/redis-ui-components").RestInputProps & import("react").RefAttributes<HTMLInputElement>>;
28
- Footer: import("styled-components").StyledComponent<"div", any, {}, never>;
29
- };
30
- Option: (<TOption_6 extends import("@redislabsdev/redis-ui-components").SelectOption<string> = import("@redislabsdev/redis-ui-components").SelectOption<string>>({ option, content, ...restProps }: import("@redislabsdev/redis-ui-components/dist/Select/components/Content/components/Option/components/Compose/Compose.types").SelectOptionComposeProps<TOption_6> & {
31
- content?: import("react").ReactNode;
32
- } & import("@redislabsdev/redis-ui-components/dist/Select/components/Content/components/Option/components/Compose/Compose.types").RestSelectOptionComposeProps) => import("react/jsx-runtime").JSX.Element) & {
33
- Compose: import("react").ForwardRefExoticComponent<import("@redislabsdev/redis-ui-components/dist/Select/components/Content/components/Option/components/Compose/Compose.types").SelectOptionComposeProps<import("@redislabsdev/redis-ui-components").SelectOption<string>> & import("@redislabsdev/redis-ui-components/dist/Select/components/Content/components/Option/components/Compose/Compose.types").RestSelectOptionComposeProps & import("@redislabsdev/redis-ui-components/dist/Helpers/common.types").ComposeChildrenProps & import("react").RefAttributes<HTMLDivElement>>;
34
- Content: (props: import("@redislabsdev/redis-ui-components/dist/Helpers/common.types").ComposeChildrenProps & import("@redislabsdev/redis-ui-components/dist/Select/components/Content/components/Option/components/Content/Content.types").RestSelectOptionContentProps) => import("react/jsx-runtime").JSX.Element;
35
- Indicator: ({ children, ...restProps }: import("@radix-ui/react-select").SelectItemIndicatorProps) => import("react/jsx-runtime").JSX.Element;
36
- };
1
+ export declare const NavigationButton: import("styled-components").StyledComponent<({ navType, ...restProps }: import("@redislabsdev/redis-ui-components").PaginationNavigationButtonProps) => import("react/jsx-runtime").JSX.Element, any, {}, never>;
2
+ export declare const PaginationBar: import("styled-components").StyledComponent<"nav", any, {
3
+ 'aria-label': string;
4
+ } & {
5
+ 'aria-label': string;
6
+ }, "aria-label">;
7
+ export declare const InfoLabel: import("styled-components").StyledComponent<({ renderer, ...restProps }: import("@redislabsdev/redis-ui-components").PaginationInfoLabelProps) => import("react/jsx-runtime").JSX.Element, any, {}, never>;
8
+ export declare const PageSizeSelect: import("styled-components").StyledComponent<{
9
+ ({ pageSizes, ...restProps }: import("@redislabsdev/redis-ui-components").PaginationPageSizeSelectProps): import("react/jsx-runtime").JSX.Element | null;
10
+ Label: ({ children, ...restProps }: import("@redislabsdev/redis-ui-components").TypographyBodyProps) => import("react/jsx-runtime").JSX.Element | null;
37
11
  }, any, {}, never>;
38
- export declare const PaginationActions: import("styled-components").StyledComponent<"div", any, {}, never>;
39
- export declare const ItemPerPageText: import("styled-components").StyledComponent<({ size, variant, color, component, ellipsis, ...restProps }: import("@redislabsdev/redis-ui-components/dist/Typography/components/Body/Body.types").BodyProps) => import("react/jsx-runtime").JSX.Element, any, {
40
- size: "S";
41
- }, "size">;
42
- export declare const PaginationIndexText: import("styled-components").StyledComponent<({ size, variant, color, component, ellipsis, ...restProps }: import("@redislabsdev/redis-ui-components/dist/Typography/components/Body/Body.types").BodyProps) => import("react/jsx-runtime").JSX.Element, any, {
43
- size: "S";
44
- }, "size">;
45
- export declare const PageLabelText: import("styled-components").StyledComponent<({ size, variant, color, component, ellipsis, ...restProps }: import("@redislabsdev/redis-ui-components/dist/Typography/components/Body/Body.types").BodyProps) => import("react/jsx-runtime").JSX.Element, any, {
46
- size: "S";
47
- }, "size">;
48
- export declare const Label: import("styled-components").StyledComponent<"label", any, {}, never>;
49
- export declare const TotalPagesText: import("styled-components").StyledComponent<({ size, variant, color, component, ellipsis, ...restProps }: import("@redislabsdev/redis-ui-components/dist/Typography/components/Body/Body.types").BodyProps) => import("react/jsx-runtime").JSX.Element, any, {
50
- size: "S";
51
- }, "size">;
12
+ export declare const PageSelect: import("styled-components").StyledComponent<{
13
+ ({ ...restProps }: import("@redislabsdev/redis-ui-components").PaginationPageSelectProps): import("react/jsx-runtime").JSX.Element;
14
+ Label: ({ children, ...restProps }: import("@redislabsdev/redis-ui-components").TypographyBodyProps) => import("react/jsx-runtime").JSX.Element;
15
+ }, any, {}, never>;
16
+ export declare const PageSizeGroup: import("styled-components").StyledComponent<"div", any, {}, never>;
17
+ export declare const PageNavGroup: import("styled-components").StyledComponent<"div", any, {}, never>;
18
+ export declare const PageSelectGroup: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -1,63 +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",
3
+ import { Pagination } from "@redislabsdev/redis-ui-components";
4
+ const NavigationButton = _styled(Pagination.NavigationButton).withConfig({
5
+ displayName: "TablePaginationstyle__NavigationButton",
6
6
  componentId: "RedisUI__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",
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",
10
26
  componentId: "RedisUI__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",
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",
14
41
  componentId: "RedisUI__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",
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",
18
56
  componentId: "RedisUI__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",
57
+ })(["", ""], useSelectStyles);
58
+ const PageSelect = _styled(Pagination.PageSelect).withConfig({
59
+ displayName: "TablePaginationstyle__PageSelect",
22
60
  componentId: "RedisUI__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",
61
+ })(["", ""], useSelectStyles);
62
+ const PageSizeGroup = _styled(Pagination.Group).withConfig({
63
+ displayName: "TablePaginationstyle__PageSizeGroup",
28
64
  componentId: "RedisUI__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",
65
+ })(["gap:1rem;"]);
66
+ const PageNavGroup = _styled(Pagination.Group).withConfig({
67
+ displayName: "TablePaginationstyle__PageNavGroup",
34
68
  componentId: "RedisUI__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",
69
+ })(["gap:0.4rem;"]);
70
+ const PageSelectGroup = _styled(Pagination.Group).withConfig({
71
+ displayName: "TablePaginationstyle__PageSelectGroup",
40
72
  componentId: "RedisUI__sc-ccqfi0-7"
41
- })(["color:", ";flex-shrink:0;"], () => useTheme().components.table.components.tablePagination.pageLabelText.color);
42
- const Label = _styled.label.withConfig({
43
- displayName: "TablePaginationstyle__Label",
44
- componentId: "RedisUI__sc-ccqfi0-8"
45
- })(["all:unset;"]);
46
- const TotalPagesText = _styled(Typography.Body).attrs({
47
- size: "S"
48
- }).withConfig({
49
- displayName: "TablePaginationstyle__TotalPagesText",
50
- componentId: "RedisUI__sc-ccqfi0-9"
51
- })(["color:", ";flex-shrink:0;"], () => useTheme().components.table.components.tablePagination.totalPagesText.color);
73
+ })(["gap:0.4rem;"]);
52
74
  export {
53
- CountInfo,
54
- ItemPerPageText,
55
- Label,
56
- PageLabelText,
57
- PaginationActions,
58
- PaginationIconButton,
59
- PaginationIndexText,
60
- PaginationRow,
61
- Select,
62
- TotalPagesText
75
+ InfoLabel,
76
+ NavigationButton,
77
+ PageNavGroup,
78
+ PageSelect,
79
+ PageSelectGroup,
80
+ PageSizeGroup,
81
+ PageSizeSelect,
82
+ PaginationBar
63
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,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("../../../node_modules/react/jsx-runtime.cjs");
4
+ const Table_style = require("../../Table.style.cjs");
5
+ const RowNavigationPlugin = require("../../plugins/RowNavigationPlugin.cjs");
6
+ const TableRoot = (props) => {
7
+ const navigationProps = RowNavigationPlugin.useHandleRowNavigationOnTable(props);
8
+ return jsxRuntime.jsxRuntimeExports.jsx(Table_style.Table, {
9
+ ...props,
10
+ ...navigationProps
11
+ });
12
+ };
13
+ exports.TableRoot = TableRoot;
@@ -0,0 +1,2 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export declare const TableRoot: (props: HTMLAttributes<HTMLTableElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { j as jsxRuntimeExports } from "../../../node_modules/react/jsx-runtime.js";
2
+ import { Table } from "../../Table.style.js";
3
+ import { useHandleRowNavigationOnTable } from "../../plugins/RowNavigationPlugin.js";
4
+ const TableRoot = (props) => {
5
+ const navigationProps = useHandleRowNavigationOnTable(props);
6
+ return jsxRuntimeExports.jsx(Table, {
7
+ ...props,
8
+ ...navigationProps
9
+ });
10
+ };
11
+ export {
12
+ TableRoot
13
+ };
@@ -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
+ };