@redis-ui/table 2.12.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 (140) hide show
  1. package/dist/Table/Table.cjs +70 -145
  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 -5
  6. package/dist/Table/Table.js +70 -145
  7. package/dist/Table/Table.style.cjs +10 -5
  8. package/dist/Table/Table.style.d.ts +3 -3
  9. package/dist/Table/Table.style.js +10 -5
  10. package/dist/Table/Table.types.d.ts +20 -38
  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/HiddenCaption/HiddenCaption.cjs +13 -0
  18. package/dist/Table/components/HiddenCaption/HiddenCaption.d.ts +3 -0
  19. package/dist/Table/components/HiddenCaption/HiddenCaption.js +13 -0
  20. package/dist/Table/components/PluggableTable/PluggableTable.cjs +19 -0
  21. package/dist/Table/components/PluggableTable/PluggableTable.d.ts +10 -0
  22. package/dist/Table/components/PluggableTable/PluggableTable.js +19 -0
  23. package/dist/Table/components/PluggableTable/compositionComponents.cjs +21 -0
  24. package/dist/Table/components/PluggableTable/compositionComponents.d.ts +67 -0
  25. package/dist/Table/components/PluggableTable/compositionComponents.js +21 -0
  26. package/dist/Table/components/TableBody/TableBody.cjs +33 -0
  27. package/dist/Table/components/TableBody/TableBody.d.ts +23 -0
  28. package/dist/Table/components/TableBody/TableBody.js +33 -0
  29. package/dist/Table/components/TableBody/components/Compose/Compose.cjs +10 -0
  30. package/dist/Table/components/TableBody/components/Compose/Compose.d.ts +3 -0
  31. package/dist/Table/components/TableBody/components/Compose/Compose.js +10 -0
  32. package/dist/Table/components/TableBodyCell/TableBodyCell.cjs +22 -0
  33. package/dist/Table/components/TableBodyCell/TableBodyCell.d.ts +12 -0
  34. package/dist/Table/components/TableBodyCell/TableBodyCell.js +22 -0
  35. package/dist/Table/components/TableBodyCell/components/Compose/Compose.cjs +5 -0
  36. package/dist/Table/components/TableBodyCell/components/Compose/Compose.d.ts +3 -0
  37. package/dist/Table/components/TableBodyCell/components/Compose/Compose.js +5 -0
  38. package/dist/Table/components/TableBodyRow/TableBodyRow.cjs +38 -0
  39. package/dist/Table/components/TableBodyRow/TableBodyRow.d.ts +20 -0
  40. package/dist/Table/components/TableBodyRow/TableBodyRow.js +38 -0
  41. package/dist/Table/components/TableBodyRow/TableBodyRowExpandable.cjs +33 -0
  42. package/dist/Table/components/TableBodyRow/TableBodyRowExpandable.d.ts +2 -0
  43. package/dist/Table/components/TableBodyRow/TableBodyRowExpandable.js +33 -0
  44. package/dist/Table/components/TableBodyRow/components/Compose/Compose.cjs +17 -0
  45. package/dist/Table/components/TableBodyRow/components/Compose/Compose.d.ts +4 -0
  46. package/dist/Table/components/TableBodyRow/components/Compose/Compose.js +17 -0
  47. package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.cjs +3 -4
  48. package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.d.ts +1 -1
  49. package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.js +3 -4
  50. package/dist/Table/components/TableExpandedRow/TableExpandedRow.cjs +9 -4
  51. package/dist/Table/components/TableExpandedRow/TableExpandedRow.d.ts +1 -1
  52. package/dist/Table/components/TableExpandedRow/TableExpandedRow.js +9 -4
  53. package/dist/Table/components/TableExpandedRow/TableExpandedRow.types.d.ts +3 -5
  54. package/dist/Table/components/TableHeader/TableHeader.cjs +28 -0
  55. package/dist/Table/components/TableHeader/TableHeader.d.ts +21 -0
  56. package/dist/Table/components/TableHeader/TableHeader.js +28 -0
  57. package/dist/Table/components/TableHeader/components/Compose/Compose.cjs +5 -0
  58. package/dist/Table/components/TableHeader/components/Compose/Compose.d.ts +3 -0
  59. package/dist/Table/components/TableHeader/components/Compose/Compose.js +5 -0
  60. package/dist/Table/components/TableHeaderCell/SRSortingNotification.cjs +19 -0
  61. package/dist/Table/components/TableHeaderCell/SRSortingNotification.d.ts +1 -0
  62. package/dist/Table/components/TableHeaderCell/SRSortingNotification.js +19 -0
  63. package/dist/Table/components/TableHeaderCell/TableHeaderCell.cjs +19 -33
  64. package/dist/Table/components/TableHeaderCell/TableHeaderCell.context.cjs +15 -0
  65. package/dist/Table/components/TableHeaderCell/TableHeaderCell.context.d.ts +8 -0
  66. package/dist/Table/components/TableHeaderCell/TableHeaderCell.context.js +15 -0
  67. package/dist/Table/components/TableHeaderCell/TableHeaderCell.d.ts +16 -4
  68. package/dist/Table/components/TableHeaderCell/TableHeaderCell.js +19 -33
  69. package/dist/Table/components/TableHeaderCell/TableHeaderCell.test.d.ts +1 -0
  70. package/dist/Table/components/TableHeaderCell/TableHeaderCell.utils.cjs +0 -22
  71. package/dist/Table/components/TableHeaderCell/TableHeaderCell.utils.d.ts +0 -1
  72. package/dist/Table/components/TableHeaderCell/TableHeaderCell.utils.js +1 -23
  73. package/dist/Table/components/TableHeaderCell/components/Compose/Compose.cjs +40 -0
  74. package/dist/Table/components/TableHeaderCell/components/Compose/Compose.d.ts +9 -0
  75. package/dist/Table/components/TableHeaderCell/components/Compose/Compose.js +40 -0
  76. package/dist/Table/components/TableHeaderCell/components/Heading/Heading.cjs +34 -0
  77. package/dist/Table/components/TableHeaderCell/components/Heading/Heading.d.ts +5 -0
  78. package/dist/Table/components/TableHeaderCell/components/Heading/Heading.js +34 -0
  79. package/dist/Table/components/TableHeaderCell/components/SortableHeading/SortableHeading.cjs +16 -0
  80. package/dist/Table/components/TableHeaderCell/components/SortableHeading/SortableHeading.d.ts +8 -0
  81. package/dist/Table/components/TableHeaderCell/components/SortableHeading/SortableHeading.js +16 -0
  82. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/Compose/Compose.cjs +23 -0
  83. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/Compose/Compose.d.ts +5 -0
  84. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/Compose/Compose.js +23 -0
  85. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/SortIndicator/SortIndicator.cjs +6 -0
  86. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/SortIndicator/SortIndicator.d.ts +2 -0
  87. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/SortIndicator/SortIndicator.js +6 -0
  88. package/dist/Table/components/TableHeaderRow/TableHeaderRow.cjs +27 -0
  89. package/dist/Table/components/TableHeaderRow/TableHeaderRow.d.ts +12 -0
  90. package/dist/Table/components/TableHeaderRow/TableHeaderRow.js +27 -0
  91. package/dist/Table/components/TableHeaderRow/components/Compose/Compose.cjs +5 -0
  92. package/dist/Table/components/TableHeaderRow/components/Compose/Compose.d.ts +3 -0
  93. package/dist/Table/components/TableHeaderRow/components/Compose/Compose.js +5 -0
  94. package/dist/Table/components/TablePagination/TablePagination.cjs +65 -99
  95. package/dist/Table/components/TablePagination/TablePagination.d.ts +23 -3
  96. package/dist/Table/components/TablePagination/TablePagination.js +66 -100
  97. package/dist/Table/components/TablePagination/TablePagination.style.cjs +70 -50
  98. package/dist/Table/components/TablePagination/TablePagination.style.d.ts +17 -50
  99. package/dist/Table/components/TablePagination/TablePagination.style.js +72 -52
  100. package/dist/Table/components/TablePagination/components/Compose/Compose.cjs +41 -0
  101. package/dist/Table/components/TablePagination/components/Compose/Compose.d.ts +3 -0
  102. package/dist/Table/components/TablePagination/components/Compose/Compose.js +41 -0
  103. package/dist/Table/components/TableRoot/TableRoot.cjs +5 -0
  104. package/dist/Table/components/TableRoot/TableRoot.d.ts +1 -0
  105. package/dist/Table/components/TableRoot/TableRoot.js +5 -0
  106. package/dist/Table/index.d.ts +3 -6
  107. package/dist/Table/plugins/ClickableRowPlugin.cjs +48 -0
  108. package/dist/Table/plugins/ClickableRowPlugin.d.ts +25 -0
  109. package/dist/Table/plugins/ClickableRowPlugin.js +48 -0
  110. package/dist/Table/plugins/ExpandableRowPlugin.cjs +38 -0
  111. package/dist/Table/plugins/ExpandableRowPlugin.d.ts +22 -0
  112. package/dist/Table/plugins/ExpandableRowPlugin.js +38 -0
  113. package/dist/Table/plugins/PaginationPlugin.cjs +45 -0
  114. package/dist/Table/plugins/PaginationPlugin.d.ts +16 -0
  115. package/dist/Table/plugins/PaginationPlugin.js +45 -0
  116. package/dist/Table/plugins/RowSelectionPlugin.cjs +28 -0
  117. package/dist/Table/plugins/RowSelectionPlugin.d.ts +12 -0
  118. package/dist/Table/plugins/RowSelectionPlugin.js +28 -0
  119. package/dist/Table/plugins/SortingPlugin.cjs +44 -0
  120. package/dist/Table/plugins/SortingPlugin.d.ts +18 -0
  121. package/dist/Table/plugins/SortingPlugin.js +44 -0
  122. package/dist/Table/tanStackExtendedTypes.d.ts +11 -0
  123. package/dist/Table/utils/plugin.utils.cjs +49 -0
  124. package/dist/Table/utils/plugin.utils.d.ts +17 -0
  125. package/dist/Table/utils/plugin.utils.js +49 -0
  126. package/dist/Table/utils/plugin.utils.test.d.ts +1 -0
  127. package/dist/index.cjs +60 -0
  128. package/dist/index.js +61 -1
  129. package/dist/node_modules/@tanstack/react-table/build/lib/index.cjs +7 -0
  130. package/dist/node_modules/@tanstack/react-table/build/lib/index.js +8 -1
  131. package/dist/node_modules/@tanstack/table-core/build/lib/index.cjs +361 -4
  132. package/dist/node_modules/@tanstack/table-core/build/lib/index.js +361 -4
  133. package/package.json +6 -5
  134. package/dist/Table/components/EmptyStateRow/EmptyStateRow.cjs +0 -16
  135. package/dist/Table/components/EmptyStateRow/EmptyStateRow.d.ts +0 -8
  136. package/dist/Table/components/EmptyStateRow/EmptyStateRow.js +0 -16
  137. package/dist/node_modules/@radix-ui/react-id/dist/index.cjs +0 -32
  138. package/dist/node_modules/@radix-ui/react-id/dist/index.js +0 -14
  139. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.cjs +0 -24
  140. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +0 -6
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("../../../../../node_modules/react/jsx-runtime.cjs");
4
+ const index = require("../../../../../node_modules/@tanstack/react-table/build/lib/index.cjs");
5
+ const redisUiComponents = require("@redislabsdev/redis-ui-components");
6
+ const index$1 = require("../../../../../node_modules/@radix-ui/react-visually-hidden/dist/index.cjs");
7
+ const TableHeaderCell_context = require("../../TableHeaderCell.context.cjs");
8
+ const Table_style = require("../../../../Table.style.cjs");
9
+ const DEFAULT_HIDDEN_HEADER = "Actions";
10
+ const TableHeaderCellHeading = (props) => {
11
+ var _a;
12
+ const {
13
+ header
14
+ } = TableHeaderCell_context.useTableHeaderCellContext();
15
+ const content = index.flexRender(header.column.columnDef.header, header.getContext());
16
+ if (header.column.columnDef.isHeaderCustom) return jsxRuntime.jsxRuntimeExports.jsx(jsxRuntime.jsxRuntimeExports.Fragment, {
17
+ children: content
18
+ });
19
+ const text = (_a = redisUiComponents.childrenToString(content)) == null ? void 0 : _a.trim();
20
+ if (!text || header.column.columnDef.isHeaderHidden) {
21
+ return jsxRuntime.jsxRuntimeExports.jsx(index$1.VisuallyHidden, {
22
+ children: text || DEFAULT_HIDDEN_HEADER
23
+ });
24
+ }
25
+ return jsxRuntime.jsxRuntimeExports.jsx(Table_style.HeaderTitleWrapper, {
26
+ variant: "semiBold",
27
+ ellipsis: true,
28
+ tooltipOnEllipsis: true,
29
+ ...props,
30
+ "$isTextual": redisUiComponents.isTextualNode(content),
31
+ children: content
32
+ });
33
+ };
34
+ exports.TableHeaderCellHeading = TableHeaderCellHeading;
@@ -0,0 +1,5 @@
1
+ import { ComponentProps } from 'react';
2
+ import { ChildFree, Typography } from '@redislabsdev/redis-ui-components';
3
+ export type RestTableHeaderCellHeadingProps = ChildFree<ComponentProps<typeof Typography.Body>>;
4
+ export type TableHeaderCellHeadingProps = RestTableHeaderCellHeadingProps;
5
+ export declare const TableHeaderCellHeading: (props: TableHeaderCellHeadingProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,34 @@
1
+ import { j as jsxRuntimeExports } from "../../../../../node_modules/react/jsx-runtime.js";
2
+ import { flexRender } from "../../../../../node_modules/@tanstack/react-table/build/lib/index.js";
3
+ import { childrenToString, isTextualNode } from "@redislabsdev/redis-ui-components";
4
+ import { VisuallyHidden } from "../../../../../node_modules/@radix-ui/react-visually-hidden/dist/index.js";
5
+ import { useTableHeaderCellContext } from "../../TableHeaderCell.context.js";
6
+ import { HeaderTitleWrapper } from "../../../../Table.style.js";
7
+ const DEFAULT_HIDDEN_HEADER = "Actions";
8
+ const TableHeaderCellHeading = (props) => {
9
+ var _a;
10
+ const {
11
+ header
12
+ } = useTableHeaderCellContext();
13
+ const content = flexRender(header.column.columnDef.header, header.getContext());
14
+ if (header.column.columnDef.isHeaderCustom) return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, {
15
+ children: content
16
+ });
17
+ const text = (_a = childrenToString(content)) == null ? void 0 : _a.trim();
18
+ if (!text || header.column.columnDef.isHeaderHidden) {
19
+ return jsxRuntimeExports.jsx(VisuallyHidden, {
20
+ children: text || DEFAULT_HIDDEN_HEADER
21
+ });
22
+ }
23
+ return jsxRuntimeExports.jsx(HeaderTitleWrapper, {
24
+ variant: "semiBold",
25
+ ellipsis: true,
26
+ tooltipOnEllipsis: true,
27
+ ...props,
28
+ "$isTextual": isTextualNode(content),
29
+ children: content
30
+ });
31
+ };
32
+ export {
33
+ TableHeaderCellHeading
34
+ };
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("../../../../../node_modules/react/jsx-runtime.cjs");
4
+ const SortIndicator = require("./components/SortIndicator/SortIndicator.cjs");
5
+ const Compose = require("./components/Compose/Compose.cjs");
6
+ const SortableHeading = Object.assign(({
7
+ children,
8
+ ...restProps
9
+ }) => jsxRuntime.jsxRuntimeExports.jsxs(SortableHeading.Compose, {
10
+ ...restProps,
11
+ children: [children, jsxRuntime.jsxRuntimeExports.jsx(SortableHeading.SortIndicator, {})]
12
+ }), {
13
+ Compose: Compose.SortableHeadingCompose,
14
+ SortIndicator: SortIndicator.SortIndicator
15
+ });
16
+ exports.SortableHeading = SortableHeading;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { ComposeElementProps } from '@redislabsdev/redis-ui-components';
3
+ export declare const SortableHeading: (({ children, ...restProps }: ComposeElementProps) => import("react/jsx-runtime").JSX.Element) & {
4
+ Compose: ((props: ComposeElementProps<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element) & {
5
+ SortIndicator: () => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
6
+ };
7
+ SortIndicator: () => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
8
+ };
@@ -0,0 +1,16 @@
1
+ import { j as jsxRuntimeExports } from "../../../../../node_modules/react/jsx-runtime.js";
2
+ import { SortIndicator } from "./components/SortIndicator/SortIndicator.js";
3
+ import { SortableHeadingCompose } from "./components/Compose/Compose.js";
4
+ const SortableHeading = Object.assign(({
5
+ children,
6
+ ...restProps
7
+ }) => jsxRuntimeExports.jsxs(SortableHeading.Compose, {
8
+ ...restProps,
9
+ children: [children, jsxRuntimeExports.jsx(SortableHeading.SortIndicator, {})]
10
+ }), {
11
+ Compose: SortableHeadingCompose,
12
+ SortIndicator
13
+ });
14
+ export {
15
+ SortableHeading
16
+ };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("../../../../../../../node_modules/react/jsx-runtime.cjs");
4
+ const TableHeaderCell_utils = require("../../../../TableHeaderCell.utils.cjs");
5
+ const TableHeaderCell_context = require("../../../../TableHeaderCell.context.cjs");
6
+ const SortIndicator = require("../SortIndicator/SortIndicator.cjs");
7
+ const Table_style = require("../../../../../../Table.style.cjs");
8
+ const SortableHeadingCompose = Object.assign((props) => {
9
+ const {
10
+ header
11
+ } = TableHeaderCell_context.useTableHeaderCellContext();
12
+ return jsxRuntime.jsxRuntimeExports.jsx(
13
+ Table_style.SortableHeadingCompose,
14
+ {
15
+ "aria-description": TableHeaderCell_utils.getColumnSortLabel(header, TableHeaderCell_utils.formatColumnSortNotification),
16
+ ...props,
17
+ as: header.column.getCanSort() ? void 0 : "div"
18
+ }
19
+ );
20
+ }, {
21
+ SortIndicator: SortIndicator.SortIndicator
22
+ });
23
+ exports.SortableHeadingCompose = SortableHeadingCompose;
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { ComposeElementProps } from '@redislabsdev/redis-ui-components';
3
+ export declare const SortableHeadingCompose: ((props: ComposeElementProps) => import("react/jsx-runtime").JSX.Element) & {
4
+ SortIndicator: () => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
5
+ };
@@ -0,0 +1,23 @@
1
+ import { j as jsxRuntimeExports } from "../../../../../../../node_modules/react/jsx-runtime.js";
2
+ import { getColumnSortLabel, formatColumnSortNotification } from "../../../../TableHeaderCell.utils.js";
3
+ import { useTableHeaderCellContext } from "../../../../TableHeaderCell.context.js";
4
+ import { SortIndicator } from "../SortIndicator/SortIndicator.js";
5
+ import { SortableHeadingCompose as SortableHeadingCompose$1 } from "../../../../../../Table.style.js";
6
+ const SortableHeadingCompose = Object.assign((props) => {
7
+ const {
8
+ header
9
+ } = useTableHeaderCellContext();
10
+ return jsxRuntimeExports.jsx(
11
+ SortableHeadingCompose$1,
12
+ {
13
+ "aria-description": getColumnSortLabel(header, formatColumnSortNotification),
14
+ ...props,
15
+ as: header.column.getCanSort() ? void 0 : "div"
16
+ }
17
+ );
18
+ }, {
19
+ SortIndicator
20
+ });
21
+ export {
22
+ SortableHeadingCompose
23
+ };
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const TableHeaderCell_utils = require("../../../../TableHeaderCell.utils.cjs");
4
+ const TableHeaderCell_context = require("../../../../TableHeaderCell.context.cjs");
5
+ const SortIndicator = () => TableHeaderCell_utils.getSortSign(TableHeaderCell_context.useTableHeaderCellContext().header);
6
+ exports.SortIndicator = SortIndicator;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const SortIndicator: () => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
@@ -0,0 +1,6 @@
1
+ import { getSortSign } from "../../../../TableHeaderCell.utils.js";
2
+ import { useTableHeaderCellContext } from "../../../../TableHeaderCell.context.js";
3
+ const SortIndicator = () => getSortSign(useTableHeaderCellContext().header);
4
+ export {
5
+ SortIndicator
6
+ };
@@ -0,0 +1,27 @@
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 TableHeaderCell = require("../TableHeaderCell/TableHeaderCell.cjs");
6
+ const Compose = require("./components/Compose/Compose.cjs");
7
+ const Table_context = require("../../Table.context.cjs");
8
+ const TableHeaderRow = Object.assign(redisUiComponents.forwardRefWithGenerics(({
9
+ headerGroup,
10
+ ...restProps
11
+ }, ref) => {
12
+ const {
13
+ TableHeaderCell: Cell
14
+ } = Table_context.useComposeContext({
15
+ TableHeaderCell: TableHeaderCell.TableHeaderCell
16
+ });
17
+ return jsxRuntime.jsxRuntimeExports.jsx(TableHeaderRow.Compose, {
18
+ ...restProps,
19
+ ref,
20
+ children: headerGroup.headers.map((header) => jsxRuntime.jsxRuntimeExports.jsx(Cell, {
21
+ header
22
+ }, header.id))
23
+ });
24
+ }), {
25
+ Compose: Compose.TableHeaderRowCompose
26
+ });
27
+ exports.TableHeaderRow = TableHeaderRow;
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import { HeaderGroup } from '@tanstack/react-table';
3
+ import { ChildFree } from '@redislabsdev/redis-ui-components';
4
+ import { TableHeaderRowComposeProps } from './components/Compose/Compose';
5
+ export type OwnTableHeaderRowProps<T extends object> = {
6
+ headerGroup: HeaderGroup<T>;
7
+ };
8
+ export type RestTableHeaderRowProps = ChildFree<TableHeaderRowComposeProps>;
9
+ export type TableHeaderRowProps<T extends object> = OwnTableHeaderRowProps<T> & RestTableHeaderRowProps;
10
+ export declare const TableHeaderRow: (<T extends object>(props: OwnTableHeaderRowProps<T> & RestTableHeaderRowProps & import("react").RefAttributes<HTMLTableRowElement>) => import("react").ReactElement<any, any> | null) & {
11
+ Compose: import("styled-components").StyledComponent<"tr", any, {}, never>;
12
+ };
@@ -0,0 +1,27 @@
1
+ import { j as jsxRuntimeExports } from "../../../node_modules/react/jsx-runtime.js";
2
+ import { forwardRefWithGenerics } from "@redislabsdev/redis-ui-components";
3
+ import { TableHeaderCell } from "../TableHeaderCell/TableHeaderCell.js";
4
+ import { TableHeaderRowCompose } from "./components/Compose/Compose.js";
5
+ import { useComposeContext } from "../../Table.context.js";
6
+ const TableHeaderRow = Object.assign(forwardRefWithGenerics(({
7
+ headerGroup,
8
+ ...restProps
9
+ }, ref) => {
10
+ const {
11
+ TableHeaderCell: Cell
12
+ } = useComposeContext({
13
+ TableHeaderCell
14
+ });
15
+ return jsxRuntimeExports.jsx(TableHeaderRow.Compose, {
16
+ ...restProps,
17
+ ref,
18
+ children: headerGroup.headers.map((header) => jsxRuntimeExports.jsx(Cell, {
19
+ header
20
+ }, header.id))
21
+ });
22
+ }), {
23
+ Compose: TableHeaderRowCompose
24
+ });
25
+ export {
26
+ TableHeaderRow
27
+ };
@@ -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 TableHeaderRowCompose = Table_style.TableHeaderRow;
5
+ exports.TableHeaderRowCompose = TableHeaderRowCompose;
@@ -0,0 +1,3 @@
1
+ import { ComposeElementProps } from '@redislabsdev/redis-ui-components';
2
+ export type TableHeaderRowComposeProps = ComposeElementProps<HTMLTableRowElement>;
3
+ export declare const TableHeaderRowCompose: import("styled-components").StyledComponent<"tr", any, {}, never>;
@@ -0,0 +1,5 @@
1
+ import { TableHeaderRow } from "../../../../Table.style.js";
2
+ const TableHeaderRowCompose = TableHeaderRow;
3
+ export {
4
+ TableHeaderRowCompose
5
+ };
@@ -1,112 +1,78 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const jsxRuntime = require("../../../node_modules/react/jsx-runtime.cjs");
4
- const redisUiIcons = require("@redislabsdev/redis-ui-icons");
5
- const index = require("../../../node_modules/@radix-ui/react-id/dist/index.cjs");
6
- const Table_context = require("../../Table.context.cjs");
4
+ const redisUiComponents = require("@redislabsdev/redis-ui-components");
5
+ const PaginationPlugin = require("../../plugins/PaginationPlugin.cjs");
6
+ const Compose = require("./components/Compose/Compose.cjs");
7
7
  const TablePagination_style = require("./TablePagination.style.cjs");
8
- const DEFAULT_PAGE_SIZES = [10, 25, 50, 100];
9
- const TablePagination = ({
10
- pageSizes = DEFAULT_PAGE_SIZES
11
- }) => {
12
- const {
13
- table
14
- } = Table_context.useTableContext();
15
- const perPageId = index.useId();
16
- const pageNumId = index.useId();
17
- if (!table._getPaginationRowModel) {
8
+ const renderRowCount = ({
9
+ visibleItemCount,
10
+ totalItemCount
11
+ }) => `Showing ${visibleItemCount} out of ${totalItemCount} rows`;
12
+ const renderPageCount = ({
13
+ pageIndex,
14
+ pageCount
15
+ }) => `${pageIndex + 1} of ${pageCount}`;
16
+ const renderTotalPageCount = ({
17
+ pageCount
18
+ }) => `of ${pageCount}`;
19
+ const TablePagination = Object.assign(() => {
20
+ const pagination = PaginationPlugin.usePaginationContext();
21
+ if (!pagination) {
18
22
  return null;
19
23
  }
20
- const {
21
- pageIndex,
22
- pageSize
23
- } = table.getState().pagination;
24
- const totalRowCount = table.getRowCount();
25
- const pageCount = Math.max(table.getPageCount(), 1);
26
- const handlePageSizeChange = (value) => {
27
- table.setPageSize(Number(value));
28
- };
29
- const handlePageIndexChange = (index2) => {
30
- table.setPageIndex(index2);
31
- };
32
- return jsxRuntime.jsxRuntimeExports.jsx(TablePagination_style.PaginationRow, {
33
- "data-role": "pagination",
34
- children: jsxRuntime.jsxRuntimeExports.jsxs(jsxRuntime.jsxRuntimeExports.Fragment, {
35
- children: [jsxRuntime.jsxRuntimeExports.jsxs(TablePagination_style.CountInfo, {
36
- children: ["Showing ", table.getRowModel().rows.length, " out of ", totalRowCount, " rows"]
37
- }), jsxRuntime.jsxRuntimeExports.jsxs("div", {
38
- style: {
39
- display: "flex",
40
- alignItems: "center",
41
- gap: "1rem"
42
- },
43
- children: [jsxRuntime.jsxRuntimeExports.jsx(TablePagination_style.ItemPerPageText, {
44
- children: jsxRuntime.jsxRuntimeExports.jsx(TablePagination_style.Label, {
45
- htmlFor: perPageId,
46
- children: "Items per page:"
47
- })
48
- }), jsxRuntime.jsxRuntimeExports.jsx(TablePagination_style.Select, {
49
- id: perPageId,
50
- value: pageSize.toString(),
51
- onChange: handlePageSizeChange,
52
- disabled: pageSizes[0] > totalRowCount,
53
- options: pageSizes.map(String).map((value) => ({
54
- value
55
- }))
24
+ return jsxRuntime.jsxRuntimeExports.jsx(TablePagination.Compose, {
25
+ children: jsxRuntime.jsxRuntimeExports.jsxs(TablePagination.Bar, {
26
+ "data-role": "pagination",
27
+ children: [jsxRuntime.jsxRuntimeExports.jsx(TablePagination.InfoLabel, {
28
+ renderer: renderRowCount,
29
+ ellipsis: true,
30
+ tooltipOnEllipsis: true
31
+ }), jsxRuntime.jsxRuntimeExports.jsx(TablePagination.Split, {}), jsxRuntime.jsxRuntimeExports.jsxs(TablePagination.PageSizeGroup, {
32
+ children: [jsxRuntime.jsxRuntimeExports.jsx(TablePagination.PageSizeSelect.Label, {
33
+ children: "Items per page:"
34
+ }), jsxRuntime.jsxRuntimeExports.jsx(TablePagination.PageSizeSelect, {
35
+ pageSizes: pagination.pageSizes
56
36
  })]
57
- }), jsxRuntime.jsxRuntimeExports.jsxs(TablePagination_style.PaginationActions, {
58
- children: [jsxRuntime.jsxRuntimeExports.jsx(TablePagination_style.PaginationIconButton, {
59
- icon: redisUiIcons.DoubleChevronLeftIcon,
60
- size: "S",
61
- onClick: () => handlePageIndexChange(0),
62
- disabled: pageIndex === 0,
63
- title: "First page",
64
- "aria-label": "first page"
65
- }), jsxRuntime.jsxRuntimeExports.jsx(TablePagination_style.PaginationIconButton, {
66
- icon: redisUiIcons.ChevronLeftIcon,
67
- size: "S",
68
- onClick: () => handlePageIndexChange(pageIndex - 1),
69
- disabled: pageIndex === 0,
70
- title: "Previous page",
71
- "aria-label": "previous page"
72
- }), jsxRuntime.jsxRuntimeExports.jsxs(TablePagination_style.PaginationIndexText, {
73
- size: "S",
74
- children: [pageIndex + 1, " of ", pageCount]
75
- }), jsxRuntime.jsxRuntimeExports.jsx(TablePagination_style.PaginationIconButton, {
76
- icon: redisUiIcons.ChevronRightIcon,
77
- size: "S",
78
- onClick: () => handlePageIndexChange(pageIndex + 1),
79
- disabled: pageIndex === pageCount - 1,
80
- title: "Next page",
81
- "aria-label": "next page"
82
- }), jsxRuntime.jsxRuntimeExports.jsx(TablePagination_style.PaginationIconButton, {
83
- icon: redisUiIcons.DoubleChevronRightIcon,
84
- size: "S",
85
- onClick: () => handlePageIndexChange(pageCount - 1),
86
- disabled: pageIndex === pageCount - 1,
87
- title: "Last page",
88
- "aria-label": "last page"
37
+ }), jsxRuntime.jsxRuntimeExports.jsxs(TablePagination.PageNavGroup, {
38
+ children: [jsxRuntime.jsxRuntimeExports.jsxs("div", {
39
+ children: [jsxRuntime.jsxRuntimeExports.jsx(TablePagination.NavigationButton, {
40
+ navType: "first"
41
+ }), jsxRuntime.jsxRuntimeExports.jsx(TablePagination.NavigationButton, {
42
+ navType: "prev"
43
+ })]
44
+ }), jsxRuntime.jsxRuntimeExports.jsx(TablePagination.InfoLabel, {
45
+ ellipsis: true,
46
+ tooltipOnEllipsis: true,
47
+ renderer: renderPageCount
48
+ }), jsxRuntime.jsxRuntimeExports.jsxs("div", {
49
+ children: [jsxRuntime.jsxRuntimeExports.jsx(TablePagination.NavigationButton, {
50
+ navType: "next"
51
+ }), jsxRuntime.jsxRuntimeExports.jsx(TablePagination.NavigationButton, {
52
+ navType: "last"
53
+ })]
89
54
  })]
90
- }), jsxRuntime.jsxRuntimeExports.jsxs(TablePagination_style.PaginationActions, {
91
- children: [jsxRuntime.jsxRuntimeExports.jsx(TablePagination_style.PageLabelText, {
92
- children: jsxRuntime.jsxRuntimeExports.jsx(TablePagination_style.Label, {
93
- htmlFor: pageNumId,
94
- children: "Page"
95
- })
96
- }), jsxRuntime.jsxRuntimeExports.jsx(TablePagination_style.Select, {
97
- id: pageNumId,
98
- value: (pageIndex + 1).toString(),
99
- onChange: (value) => handlePageIndexChange(Number(value) - 1),
100
- options: Array.from({
101
- length: pageCount
102
- }, (_, i) => String(i + 1)).map((value) => ({
103
- value
104
- }))
105
- }), jsxRuntime.jsxRuntimeExports.jsxs(TablePagination_style.TotalPagesText, {
106
- children: ["of ", pageCount]
55
+ }), jsxRuntime.jsxRuntimeExports.jsxs(TablePagination.PageSelectGroup, {
56
+ children: [jsxRuntime.jsxRuntimeExports.jsx(TablePagination.PageSelect.Label, {
57
+ children: "Page"
58
+ }), jsxRuntime.jsxRuntimeExports.jsx(TablePagination.PageSelect, {}), jsxRuntime.jsxRuntimeExports.jsx(TablePagination.InfoLabel, {
59
+ ellipsis: true,
60
+ tooltipOnEllipsis: true,
61
+ renderer: renderTotalPageCount
107
62
  })]
108
63
  })]
109
64
  })
110
65
  });
111
- };
66
+ }, {
67
+ Compose: Compose.TablePaginationCompose,
68
+ Bar: TablePagination_style.PaginationBar,
69
+ Split: redisUiComponents.Pagination.Split,
70
+ InfoLabel: TablePagination_style.InfoLabel,
71
+ PageSelect: TablePagination_style.PageSelect,
72
+ PageSizeSelect: TablePagination_style.PageSizeSelect,
73
+ NavigationButton: TablePagination_style.NavigationButton,
74
+ PageSizeGroup: TablePagination_style.PageSizeGroup,
75
+ PageNavGroup: TablePagination_style.PageNavGroup,
76
+ PageSelectGroup: TablePagination_style.PageSelectGroup
77
+ });
112
78
  exports.default = TablePagination;
@@ -1,4 +1,24 @@
1
- declare const TablePagination: ({ pageSizes }: {
2
- pageSizes?: number[] | undefined;
3
- }) => import("react/jsx-runtime").JSX.Element | null;
1
+ import { PaginationInfoLabelProps } from '@redislabsdev/redis-ui-components';
2
+ declare const TablePagination: (() => import("react/jsx-runtime").JSX.Element | null) & {
3
+ Compose: ({ children }: import("@redislabsdev/redis-ui-components").ComposeChildrenProps) => import("react/jsx-runtime").JSX.Element | null;
4
+ Bar: import("styled-components").StyledComponent<"nav", any, {
5
+ 'aria-label': string;
6
+ } & {
7
+ 'aria-label': string;
8
+ }, "aria-label">;
9
+ Split: import("styled-components").StyledComponent<"div", any, {}, never>;
10
+ InfoLabel: import("styled-components").StyledComponent<({ renderer, ...restProps }: PaginationInfoLabelProps) => import("react/jsx-runtime").JSX.Element, any, {}, never>;
11
+ PageSelect: import("styled-components").StyledComponent<{
12
+ ({ ...restProps }: import("@redislabsdev/redis-ui-components").PaginationPageSelectProps): import("react/jsx-runtime").JSX.Element;
13
+ Label: ({ children, ...restProps }: import("@redislabsdev/redis-ui-components").TypographyBodyProps) => import("react/jsx-runtime").JSX.Element;
14
+ }, any, {}, never>;
15
+ PageSizeSelect: import("styled-components").StyledComponent<{
16
+ ({ pageSizes, ...restProps }: import("@redislabsdev/redis-ui-components").PaginationPageSizeSelectProps): import("react/jsx-runtime").JSX.Element | null;
17
+ Label: ({ children, ...restProps }: import("@redislabsdev/redis-ui-components").TypographyBodyProps) => import("react/jsx-runtime").JSX.Element | null;
18
+ }, any, {}, never>;
19
+ NavigationButton: import("styled-components").StyledComponent<({ navType, ...restProps }: import("@redislabsdev/redis-ui-components").PaginationNavigationButtonProps) => import("react/jsx-runtime").JSX.Element, any, {}, never>;
20
+ PageSizeGroup: import("styled-components").StyledComponent<"div", any, {}, never>;
21
+ PageNavGroup: import("styled-components").StyledComponent<"div", any, {}, never>;
22
+ PageSelectGroup: import("styled-components").StyledComponent<"div", any, {}, never>;
23
+ };
4
24
  export default TablePagination;