@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
@@ -3,18 +3,20 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("../../../node_modules/react/jsx-runtime.cjs");
4
4
  const React = require("react");
5
5
  const index = require("../../../node_modules/@radix-ui/react-compose-refs/dist/index.cjs");
6
+ const ExpandableRowPlugin = require("../../plugins/ExpandableRowPlugin.cjs");
6
7
  const TableExpandedRow_style = require("./TableExpandedRow.style.cjs");
7
8
  const TableExpandedRow = ({
8
9
  row,
9
- renderExpandedRow,
10
10
  keepInDom,
11
- expanded,
12
11
  rowRef,
13
12
  ...restProps
14
13
  }) => {
15
14
  const innerRowRef = React.useRef(null);
16
15
  const composedRowRef = index.useComposedRefs(rowRef, innerRowRef);
17
- const isExpanded = expanded ?? row.getIsExpanded();
16
+ const {
17
+ renderExpandedRow
18
+ } = ExpandableRowPlugin.useExpandableRowContext() || {};
19
+ const isExpanded = row.getIsExpanded();
18
20
  React.useEffect(() => {
19
21
  var _a;
20
22
  if (isExpanded) {
@@ -24,8 +26,11 @@ const TableExpandedRow = ({
24
26
  });
25
27
  }
26
28
  }, [isExpanded]);
27
- return keepInDom || isExpanded ? jsxRuntime.jsxRuntimeExports.jsx(TableExpandedRow_style.ExpandedRow, {
29
+ return renderExpandedRow && (keepInDom || isExpanded) ? jsxRuntime.jsxRuntimeExports.jsx(TableExpandedRow_style.ExpandedRow, {
28
30
  ref: composedRowRef,
31
+ "data-row-type": "expanded",
32
+ "data-expanded": isExpanded,
33
+ "aria-hidden": !isExpanded,
29
34
  ...restProps,
30
35
  children: jsxRuntime.jsxRuntimeExports.jsx(TableExpandedRow_style.ExpandedCell, {
31
36
  colSpan: row.getVisibleCells().length,
@@ -1,2 +1,2 @@
1
1
  import { TableExpandedRowProps } from './TableExpandedRow.types';
2
- export declare const TableExpandedRow: <T extends object>({ row, renderExpandedRow, keepInDom, expanded, rowRef, ...restProps }: TableExpandedRowProps<T>) => import("react/jsx-runtime").JSX.Element | null;
2
+ export declare const TableExpandedRow: <T extends object>({ row, keepInDom, rowRef, ...restProps }: TableExpandedRowProps<T>) => import("react/jsx-runtime").JSX.Element | null;
@@ -1,18 +1,20 @@
1
1
  import { j as jsxRuntimeExports } from "../../../node_modules/react/jsx-runtime.js";
2
2
  import { useRef, useEffect } from "react";
3
3
  import { useComposedRefs } from "../../../node_modules/@radix-ui/react-compose-refs/dist/index.js";
4
+ import { useExpandableRowContext } from "../../plugins/ExpandableRowPlugin.js";
4
5
  import { ExpandedRow, ExpandedCell } from "./TableExpandedRow.style.js";
5
6
  const TableExpandedRow = ({
6
7
  row,
7
- renderExpandedRow,
8
8
  keepInDom,
9
- expanded,
10
9
  rowRef,
11
10
  ...restProps
12
11
  }) => {
13
12
  const innerRowRef = useRef(null);
14
13
  const composedRowRef = useComposedRefs(rowRef, innerRowRef);
15
- const isExpanded = expanded ?? row.getIsExpanded();
14
+ const {
15
+ renderExpandedRow
16
+ } = useExpandableRowContext() || {};
17
+ const isExpanded = row.getIsExpanded();
16
18
  useEffect(() => {
17
19
  var _a;
18
20
  if (isExpanded) {
@@ -22,8 +24,11 @@ const TableExpandedRow = ({
22
24
  });
23
25
  }
24
26
  }, [isExpanded]);
25
- return keepInDom || isExpanded ? jsxRuntimeExports.jsx(ExpandedRow, {
27
+ return renderExpandedRow && (keepInDom || isExpanded) ? jsxRuntimeExports.jsx(ExpandedRow, {
26
28
  ref: composedRowRef,
29
+ "data-row-type": "expanded",
30
+ "data-expanded": isExpanded,
31
+ "aria-hidden": !isExpanded,
27
32
  ...restProps,
28
33
  children: jsxRuntimeExports.jsx(ExpandedCell, {
29
34
  colSpan: row.getVisibleCells().length,
@@ -1,9 +1,7 @@
1
- import { HTMLAttributes, ReactNode, Ref } from 'react';
2
- import { RowDefinition } from '../../Table.types';
1
+ import { HTMLAttributes, Ref } from 'react';
2
+ import { Row } from '@tanstack/react-table';
3
3
  export type TableExpandedRowProps<T extends object> = {
4
- row: RowDefinition<T>;
5
- renderExpandedRow: (row: RowDefinition<T>) => ReactNode;
4
+ row: Row<T>;
6
5
  keepInDom?: boolean;
7
- expanded?: boolean;
8
6
  rowRef?: Ref<HTMLTableRowElement>;
9
7
  } & HTMLAttributes<HTMLTableRowElement>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("../../../node_modules/react/jsx-runtime.cjs");
4
+ const TableHeaderCell = require("../TableHeaderCell/TableHeaderCell.cjs");
5
+ const Table_context = require("../../Table.context.cjs");
6
+ const TableHeaderRow = require("../TableHeaderRow/TableHeaderRow.cjs");
7
+ const Compose = require("./components/Compose/Compose.cjs");
8
+ const TableHeader = Object.assign((props) => {
9
+ const {
10
+ table
11
+ } = Table_context.useTableContext();
12
+ const {
13
+ TableHeaderRow: Row
14
+ } = Table_context.useComposeContext({
15
+ TableHeaderRow: TableHeaderRow.TableHeaderRow
16
+ });
17
+ return jsxRuntime.jsxRuntimeExports.jsx(TableHeader.Compose, {
18
+ ...props,
19
+ children: table.getHeaderGroups().map((headerGroup) => jsxRuntime.jsxRuntimeExports.jsx(Row, {
20
+ headerGroup
21
+ }, headerGroup.id))
22
+ });
23
+ }, {
24
+ Compose: Compose.TableHeaderCompose,
25
+ Row: TableHeaderRow.TableHeaderRow,
26
+ Cell: TableHeaderCell.TableHeaderCell
27
+ });
28
+ exports.TableHeader = TableHeader;
@@ -0,0 +1,21 @@
1
+ /// <reference types="react" />
2
+ import { ChildFree } from '@redislabsdev/redis-ui-components';
3
+ import { TableHeaderComposeProps } from './components/Compose/Compose';
4
+ export type RestTableHeaderProps = ChildFree<TableHeaderComposeProps>;
5
+ export type TableHeaderProps = RestTableHeaderProps;
6
+ export declare const TableHeader: (<T extends object>(props: TableHeaderProps) => import("react/jsx-runtime").JSX.Element) & {
7
+ Compose: import("styled-components").StyledComponent<"thead", any, {}, never>;
8
+ Row: (<T_1 extends object>(props: import("../TableHeaderRow/TableHeaderRow").OwnTableHeaderRowProps<T_1> & import("../TableHeaderRow/TableHeaderRow").RestTableHeaderRowProps & import("react").RefAttributes<HTMLTableRowElement>) => import("react").ReactElement<any, any> | null) & {
9
+ Compose: import("styled-components").StyledComponent<"tr", any, {}, never>;
10
+ };
11
+ Cell: (<T_2 extends object>(props: import("../TableHeaderCell/TableHeaderCell").OwnTableHeaderCellProps<T_2> & import("../TableHeaderCell/TableHeaderCell").RestTableHeaderCellProps & import("react").RefAttributes<HTMLTableCellElement>) => import("react").ReactElement<any, any> | null) & {
12
+ Compose: <T_3 extends object>(props: import("../TableHeaderCell/components/Compose/Compose").OwnTableHeaderCellComposeProps<T_3> & import("@redislabsdev/redis-ui-components").ComposeChildrenProps & Omit<import("react").HTMLAttributes<HTMLTableCellElement>, "content" | "children"> & import("react").RefAttributes<HTMLTableCellElement>) => import("react").ReactElement<any, any> | null;
13
+ SortableHeading: (({ children, ...restProps }: import("@redislabsdev/redis-ui-components").ComposeElementProps<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element) & {
14
+ Compose: ((props: import("@redislabsdev/redis-ui-components").ComposeElementProps<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element) & {
15
+ SortIndicator: () => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
16
+ };
17
+ SortIndicator: () => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
18
+ };
19
+ Heading: (props: import("../TableHeaderCell/components/Heading/Heading").RestTableHeaderCellHeadingProps) => import("react/jsx-runtime").JSX.Element;
20
+ };
21
+ };
@@ -0,0 +1,28 @@
1
+ import { j as jsxRuntimeExports } from "../../../node_modules/react/jsx-runtime.js";
2
+ import { TableHeaderCell } from "../TableHeaderCell/TableHeaderCell.js";
3
+ import { useTableContext, useComposeContext } from "../../Table.context.js";
4
+ import { TableHeaderRow } from "../TableHeaderRow/TableHeaderRow.js";
5
+ import { TableHeaderCompose } from "./components/Compose/Compose.js";
6
+ const TableHeader = Object.assign((props) => {
7
+ const {
8
+ table
9
+ } = useTableContext();
10
+ const {
11
+ TableHeaderRow: Row
12
+ } = useComposeContext({
13
+ TableHeaderRow
14
+ });
15
+ return jsxRuntimeExports.jsx(TableHeader.Compose, {
16
+ ...props,
17
+ children: table.getHeaderGroups().map((headerGroup) => jsxRuntimeExports.jsx(Row, {
18
+ headerGroup
19
+ }, headerGroup.id))
20
+ });
21
+ }, {
22
+ Compose: TableHeaderCompose,
23
+ Row: TableHeaderRow,
24
+ Cell: TableHeaderCell
25
+ });
26
+ export {
27
+ TableHeader
28
+ };
@@ -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 TableHeaderCompose = Table_style.TableHead;
5
+ exports.TableHeaderCompose = TableHeaderCompose;
@@ -0,0 +1,3 @@
1
+ import { ComposeElementProps } from '@redislabsdev/redis-ui-components';
2
+ export type TableHeaderComposeProps = ComposeElementProps<HTMLTableSectionElement>;
3
+ export declare const TableHeaderCompose: import("styled-components").StyledComponent<"thead", any, {}, never>;
@@ -0,0 +1,5 @@
1
+ import { TableHead } from "../../../../Table.style.js";
2
+ const TableHeaderCompose = TableHead;
3
+ export {
4
+ TableHeaderCompose
5
+ };
@@ -0,0 +1,19 @@
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/@radix-ui/react-visually-hidden/dist/index.cjs");
5
+ const Table_context = require("../../Table.context.cjs");
6
+ const SortingPlugin = require("../../plugins/SortingPlugin.cjs");
7
+ const TableHeaderCell_utils = require("./TableHeaderCell.utils.cjs");
8
+ function SRSortingNotification() {
9
+ const {
10
+ table
11
+ } = Table_context.useTableContext();
12
+ const sorting = SortingPlugin.useSortingContext();
13
+ if (!(sorting == null ? void 0 : sorting.sortedByUser)) return null;
14
+ return jsxRuntime.jsxRuntimeExports.jsx(index.VisuallyHidden, {
15
+ "aria-live": "polite",
16
+ children: TableHeaderCell_utils.getTableSortLabel(table, TableHeaderCell_utils.formatTableSortNotification)
17
+ });
18
+ }
19
+ exports.SRSortingNotification = SRSortingNotification;
@@ -0,0 +1 @@
1
+ export declare function SRSortingNotification(): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,19 @@
1
+ import { j as jsxRuntimeExports } from "../../../node_modules/react/jsx-runtime.js";
2
+ import { VisuallyHidden } from "../../../node_modules/@radix-ui/react-visually-hidden/dist/index.js";
3
+ import { useTableContext } from "../../Table.context.js";
4
+ import { useSortingContext } from "../../plugins/SortingPlugin.js";
5
+ import { getTableSortLabel, formatTableSortNotification } from "./TableHeaderCell.utils.js";
6
+ function SRSortingNotification() {
7
+ const {
8
+ table
9
+ } = useTableContext();
10
+ const sorting = useSortingContext();
11
+ if (!(sorting == null ? void 0 : sorting.sortedByUser)) return null;
12
+ return jsxRuntimeExports.jsx(VisuallyHidden, {
13
+ "aria-live": "polite",
14
+ children: getTableSortLabel(table, formatTableSortNotification)
15
+ });
16
+ }
17
+ export {
18
+ SRSortingNotification
19
+ };
@@ -1,37 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("../../../node_modules/react/jsx-runtime.cjs");
4
- const index = require("../../../node_modules/@radix-ui/react-visually-hidden/dist/index.cjs");
5
- const TableHeaderCell_utils = require("./TableHeaderCell.utils.cjs");
6
- const Table_style = require("../../Table.style.cjs");
7
- const TableHeaderCell = ({
8
- header
9
- }) => {
10
- const colSpan = TableHeaderCell_utils.normalizeCellSpan(header.colSpan);
11
- const rowSpan = TableHeaderCell_utils.normalizeCellSpan(header.rowSpan);
12
- return header.isPlaceholder ? jsxRuntime.jsxRuntimeExports.jsx(Table_style.TableTh, {
13
- colSpan,
14
- rowSpan,
15
- style: {
16
- width: header.column.getSize()
17
- },
18
- "aria-hidden": true,
19
- children: jsxRuntime.jsxRuntimeExports.jsx(index.VisuallyHidden, {
20
- children: "Placeholder"
21
- })
22
- }, header.placeholderId) : jsxRuntime.jsxRuntimeExports.jsx(Table_style.TableTh, {
23
- colSpan,
24
- rowSpan,
25
- onClick: header.column.getToggleSortingHandler(),
26
- style: {
27
- width: header.column.getSize()
28
- },
29
- "aria-sort": TableHeaderCell_utils.getCurrentAriaSort(header),
30
- children: jsxRuntime.jsxRuntimeExports.jsxs(Table_style.HeaderCellInnerWrapper, {
31
- as: header.column.getCanSort() ? void 0 : "div",
32
- "aria-description": TableHeaderCell_utils.getColumnSortLabel(header, TableHeaderCell_utils.formatColumnSortNotification),
33
- children: [TableHeaderCell_utils.getHeaderContent(header), TableHeaderCell_utils.getSortSign(header)]
34
- })
35
- }, header.id);
36
- };
4
+ const redisUiComponents = require("@redislabsdev/redis-ui-components");
5
+ const Compose = require("./components/Compose/Compose.cjs");
6
+ const SortableHeading = require("./components/SortableHeading/SortableHeading.cjs");
7
+ const Heading = require("./components/Heading/Heading.cjs");
8
+ const TableHeaderCell = Object.assign(redisUiComponents.forwardRefWithGenerics(({
9
+ header,
10
+ ...restProps
11
+ }, ref) => jsxRuntime.jsxRuntimeExports.jsx(TableHeaderCell.Compose, {
12
+ header,
13
+ ...restProps,
14
+ ref,
15
+ children: jsxRuntime.jsxRuntimeExports.jsx(TableHeaderCell.SortableHeading, {
16
+ children: jsxRuntime.jsxRuntimeExports.jsx(TableHeaderCell.Heading, {})
17
+ })
18
+ })), {
19
+ Compose: Compose.TableHeaderCellCompose,
20
+ SortableHeading: SortableHeading.SortableHeading,
21
+ Heading: Heading.TableHeaderCellHeading
22
+ });
37
23
  exports.TableHeaderCell = TableHeaderCell;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const React = require("react");
4
+ const TableHeaderCellContext = React.createContext(null);
5
+ const useTableHeaderCellContext = () => {
6
+ const context = React.useContext(TableHeaderCellContext);
7
+ if (!context) {
8
+ throw new Error(`TableHeaderCell compound components cannot be rendered outside the TableHeaderCell component`);
9
+ }
10
+ return context;
11
+ };
12
+ const TableHeaderCellContextProvider = TableHeaderCellContext.Provider;
13
+ exports.TableHeaderCellContext = TableHeaderCellContext;
14
+ exports.TableHeaderCellContextProvider = TableHeaderCellContextProvider;
15
+ exports.useTableHeaderCellContext = useTableHeaderCellContext;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { Header } from '@tanstack/react-table';
3
+ export type TableHeaderCellContextProps<T extends object> = {
4
+ header: Header<T, unknown>;
5
+ };
6
+ export declare const TableHeaderCellContext: import("react").Context<TableHeaderCellContextProps<any> | null>;
7
+ export declare const useTableHeaderCellContext: <T extends object>() => TableHeaderCellContextProps<T>;
8
+ export declare const TableHeaderCellContextProvider: import("react").Provider<TableHeaderCellContextProps<any> | null>;
@@ -0,0 +1,15 @@
1
+ import { createContext, useContext } from "react";
2
+ const TableHeaderCellContext = createContext(null);
3
+ const useTableHeaderCellContext = () => {
4
+ const context = useContext(TableHeaderCellContext);
5
+ if (!context) {
6
+ throw new Error(`TableHeaderCell compound components cannot be rendered outside the TableHeaderCell component`);
7
+ }
8
+ return context;
9
+ };
10
+ const TableHeaderCellContextProvider = TableHeaderCellContext.Provider;
11
+ export {
12
+ TableHeaderCellContext,
13
+ TableHeaderCellContextProvider,
14
+ useTableHeaderCellContext
15
+ };
@@ -1,4 +1,16 @@
1
- import { Header } from '@tanstack/react-table';
2
- export declare const TableHeaderCell: <T extends object>({ header }: {
3
- header: Header<T, unknown>;
4
- }) => import("react/jsx-runtime").JSX.Element;
1
+ /// <reference types="react" />
2
+ import { ChildFree } from '@redislabsdev/redis-ui-components';
3
+ import { OwnTableHeaderCellComposeProps, RestTableHeaderCellComposeProps } from './components/Compose/Compose';
4
+ export type OwnTableHeaderCellProps<T extends object> = OwnTableHeaderCellComposeProps<T>;
5
+ export type RestTableHeaderCellProps = ChildFree<RestTableHeaderCellComposeProps>;
6
+ export type TableHeaderCellProps<T extends object> = OwnTableHeaderCellProps<T> & RestTableHeaderCellProps;
7
+ export declare const TableHeaderCell: (<T extends object>(props: OwnTableHeaderCellProps<T> & RestTableHeaderCellProps & import("react").RefAttributes<HTMLTableCellElement>) => import("react").ReactElement<any, any> | null) & {
8
+ Compose: <T_1 extends object>(props: OwnTableHeaderCellComposeProps<T_1> & import("@redislabsdev/redis-ui-components").ComposeChildrenProps & Omit<import("react").HTMLAttributes<HTMLTableCellElement>, "content" | "children"> & import("react").RefAttributes<HTMLTableCellElement>) => import("react").ReactElement<any, any> | null;
9
+ SortableHeading: (({ children, ...restProps }: import("@redislabsdev/redis-ui-components").ComposeElementProps<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element) & {
10
+ Compose: ((props: import("@redislabsdev/redis-ui-components").ComposeElementProps<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element) & {
11
+ SortIndicator: () => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
12
+ };
13
+ SortIndicator: () => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
14
+ };
15
+ Heading: (props: import("./components/Heading/Heading").RestTableHeaderCellHeadingProps) => import("react/jsx-runtime").JSX.Element;
16
+ };
@@ -1,37 +1,23 @@
1
1
  import { j as jsxRuntimeExports } from "../../../node_modules/react/jsx-runtime.js";
2
- import { VisuallyHidden } from "../../../node_modules/@radix-ui/react-visually-hidden/dist/index.js";
3
- import { normalizeCellSpan, getCurrentAriaSort, getColumnSortLabel, getHeaderContent, getSortSign, formatColumnSortNotification } from "./TableHeaderCell.utils.js";
4
- import { TableTh, HeaderCellInnerWrapper } from "../../Table.style.js";
5
- const TableHeaderCell = ({
6
- header
7
- }) => {
8
- const colSpan = normalizeCellSpan(header.colSpan);
9
- const rowSpan = normalizeCellSpan(header.rowSpan);
10
- return header.isPlaceholder ? jsxRuntimeExports.jsx(TableTh, {
11
- colSpan,
12
- rowSpan,
13
- style: {
14
- width: header.column.getSize()
15
- },
16
- "aria-hidden": true,
17
- children: jsxRuntimeExports.jsx(VisuallyHidden, {
18
- children: "Placeholder"
19
- })
20
- }, header.placeholderId) : jsxRuntimeExports.jsx(TableTh, {
21
- colSpan,
22
- rowSpan,
23
- onClick: header.column.getToggleSortingHandler(),
24
- style: {
25
- width: header.column.getSize()
26
- },
27
- "aria-sort": getCurrentAriaSort(header),
28
- children: jsxRuntimeExports.jsxs(HeaderCellInnerWrapper, {
29
- as: header.column.getCanSort() ? void 0 : "div",
30
- "aria-description": getColumnSortLabel(header, formatColumnSortNotification),
31
- children: [getHeaderContent(header), getSortSign(header)]
32
- })
33
- }, header.id);
34
- };
2
+ import { forwardRefWithGenerics } from "@redislabsdev/redis-ui-components";
3
+ import { TableHeaderCellCompose } from "./components/Compose/Compose.js";
4
+ import { SortableHeading } from "./components/SortableHeading/SortableHeading.js";
5
+ import { TableHeaderCellHeading } from "./components/Heading/Heading.js";
6
+ const TableHeaderCell = Object.assign(forwardRefWithGenerics(({
7
+ header,
8
+ ...restProps
9
+ }, ref) => jsxRuntimeExports.jsx(TableHeaderCell.Compose, {
10
+ header,
11
+ ...restProps,
12
+ ref,
13
+ children: jsxRuntimeExports.jsx(TableHeaderCell.SortableHeading, {
14
+ children: jsxRuntimeExports.jsx(TableHeaderCell.Heading, {})
15
+ })
16
+ })), {
17
+ Compose: TableHeaderCellCompose,
18
+ SortableHeading,
19
+ Heading: TableHeaderCellHeading
20
+ });
35
21
  export {
36
22
  TableHeaderCell
37
23
  };
@@ -4,8 +4,6 @@ const jsxRuntime = require("../../../node_modules/react/jsx-runtime.cjs");
4
4
  const index = require("../../../node_modules/@tanstack/react-table/build/lib/index.cjs");
5
5
  const redisUiComponents = require("@redislabsdev/redis-ui-components");
6
6
  const redisUiIcons = require("@redislabsdev/redis-ui-icons");
7
- const index$1 = require("../../../node_modules/@radix-ui/react-visually-hidden/dist/index.cjs");
8
- const Table_style = require("../../Table.style.cjs");
9
7
  const sortSign = {
10
8
  asc: jsxRuntime.jsxRuntimeExports.jsx(redisUiIcons.ArrowUpIcon, {
11
9
  size: "S",
@@ -42,25 +40,6 @@ const getColumnSortLabel = (header, formatLabel) => {
42
40
  }
43
41
  return void 0;
44
42
  };
45
- const DEFAULT_HIDDEN_HEADER = "Actions";
46
- const getHeaderContent = (header) => {
47
- var _a;
48
- const content = index.flexRender(header.column.columnDef.header, header.getContext());
49
- if (header.column.columnDef.isHeaderCustom) return content;
50
- const text = (_a = redisUiComponents.childrenToString(content)) == null ? void 0 : _a.trim();
51
- if (!text || header.column.columnDef.isHeaderHidden) {
52
- return jsxRuntime.jsxRuntimeExports.jsx(index$1.VisuallyHidden, {
53
- children: text || DEFAULT_HIDDEN_HEADER
54
- });
55
- }
56
- return jsxRuntime.jsxRuntimeExports.jsx(Table_style.HeaderTitleWrapper, {
57
- variant: "semiBold",
58
- ellipsis: true,
59
- tooltipOnEllipsis: true,
60
- "$isTextual": redisUiComponents.isTextualNode(content),
61
- children: content
62
- });
63
- };
64
43
  const formatTableSortNotification = (sortings) => {
65
44
  if (!(sortings == null ? void 0 : sortings.length)) {
66
45
  return "Unsorted";
@@ -95,7 +74,6 @@ exports.formatColumnSortNotification = formatColumnSortNotification;
95
74
  exports.formatTableSortNotification = formatTableSortNotification;
96
75
  exports.getColumnSortLabel = getColumnSortLabel;
97
76
  exports.getCurrentAriaSort = getCurrentAriaSort;
98
- exports.getHeaderContent = getHeaderContent;
99
77
  exports.getSortSign = getSortSign;
100
78
  exports.getTableSortLabel = getTableSortLabel;
101
79
  exports.normalizeCellSpan = normalizeCellSpan;
@@ -5,7 +5,6 @@ export declare const getSortSign: (header: CommonHeader) => ReactElement<any, st
5
5
  export declare const getCurrentAriaSort: (header: CommonHeader) => AllowedAriaSort;
6
6
  export declare const formatColumnSortNotification: FormatColumnSortNotification;
7
7
  export declare const getColumnSortLabel: (header: CommonHeader, formatLabel: FormatColumnSortNotification) => string | undefined;
8
- export declare const getHeaderContent: (header: CommonHeader) => string | number | boolean | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
9
8
  export declare const formatTableSortNotification: FormatTableSortNotification;
10
9
  export declare const getTableSortLabel: <T extends object>(table: Table<T>, formatLabel: FormatTableSortNotification) => string;
11
10
  export declare const normalizeCellSpan: (span: number) => number | undefined;
@@ -1,9 +1,7 @@
1
1
  import { j as jsxRuntimeExports } from "../../../node_modules/react/jsx-runtime.js";
2
2
  import { flexRender } from "../../../node_modules/@tanstack/react-table/build/lib/index.js";
3
- import { childrenToString, isTextualNode } from "@redislabsdev/redis-ui-components";
3
+ import { childrenToString } from "@redislabsdev/redis-ui-components";
4
4
  import { ArrowUpIcon, ArrowDownIcon } from "@redislabsdev/redis-ui-icons";
5
- import { VisuallyHidden } from "../../../node_modules/@radix-ui/react-visually-hidden/dist/index.js";
6
- import { HeaderTitleWrapper } from "../../Table.style.js";
7
5
  const sortSign = {
8
6
  asc: jsxRuntimeExports.jsx(ArrowUpIcon, {
9
7
  size: "S",
@@ -40,25 +38,6 @@ const getColumnSortLabel = (header, formatLabel) => {
40
38
  }
41
39
  return void 0;
42
40
  };
43
- const DEFAULT_HIDDEN_HEADER = "Actions";
44
- const getHeaderContent = (header) => {
45
- var _a;
46
- const content = flexRender(header.column.columnDef.header, header.getContext());
47
- if (header.column.columnDef.isHeaderCustom) return content;
48
- const text = (_a = childrenToString(content)) == null ? void 0 : _a.trim();
49
- if (!text || header.column.columnDef.isHeaderHidden) {
50
- return jsxRuntimeExports.jsx(VisuallyHidden, {
51
- children: text || DEFAULT_HIDDEN_HEADER
52
- });
53
- }
54
- return jsxRuntimeExports.jsx(HeaderTitleWrapper, {
55
- variant: "semiBold",
56
- ellipsis: true,
57
- tooltipOnEllipsis: true,
58
- "$isTextual": isTextualNode(content),
59
- children: content
60
- });
61
- };
62
41
  const formatTableSortNotification = (sortings) => {
63
42
  if (!(sortings == null ? void 0 : sortings.length)) {
64
43
  return "Unsorted";
@@ -94,7 +73,6 @@ export {
94
73
  formatTableSortNotification,
95
74
  getColumnSortLabel,
96
75
  getCurrentAriaSort,
97
- getHeaderContent,
98
76
  getSortSign,
99
77
  getTableSortLabel,
100
78
  normalizeCellSpan
@@ -0,0 +1,40 @@
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 index = require("../../../../../node_modules/@radix-ui/react-visually-hidden/dist/index.cjs");
6
+ const React = require("react");
7
+ const TableHeaderCell_utils = require("../../TableHeaderCell.utils.cjs");
8
+ const TableHeaderCell_context = require("../../TableHeaderCell.context.cjs");
9
+ const Table_style = require("../../../../Table.style.cjs");
10
+ const TableHeaderCellCompose = redisUiComponents.forwardRefWithGenerics(({
11
+ header,
12
+ children,
13
+ ...restProps
14
+ }, ref) => {
15
+ const colSpan = TableHeaderCell_utils.normalizeCellSpan(header.colSpan);
16
+ const rowSpan = TableHeaderCell_utils.normalizeCellSpan(header.rowSpan);
17
+ return jsxRuntime.jsxRuntimeExports.jsx(TableHeaderCell_context.TableHeaderCellContextProvider, {
18
+ value: React.useMemo(() => ({
19
+ header
20
+ }), [header]),
21
+ children: jsxRuntime.jsxRuntimeExports.jsx(Table_style.TableTh, {
22
+ ...restProps,
23
+ ref,
24
+ colSpan,
25
+ rowSpan,
26
+ style: {
27
+ width: header.column.getSize(),
28
+ ...restProps.style
29
+ },
30
+ "aria-hidden": header.isPlaceholder,
31
+ onClick: header.column.getCanSort() ? header.column.getToggleSortingHandler() : void 0,
32
+ "aria-sort": header.column.getCanSort() ? TableHeaderCell_utils.getCurrentAriaSort(header) : void 0,
33
+ scope: "col",
34
+ children: header.isPlaceholder ? jsxRuntime.jsxRuntimeExports.jsx(index.VisuallyHidden, {
35
+ children: "Placeholder"
36
+ }) : children
37
+ })
38
+ });
39
+ });
40
+ exports.TableHeaderCellCompose = TableHeaderCellCompose;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { ComposeElementProps } from '@redislabsdev/redis-ui-components';
3
+ import { Header } from '@tanstack/react-table';
4
+ export type OwnTableHeaderCellComposeProps<T extends object> = {
5
+ header: Header<T, unknown>;
6
+ };
7
+ export type RestTableHeaderCellComposeProps = ComposeElementProps<HTMLTableCellElement>;
8
+ export type TableHeaderCellComposeProps<T extends object> = OwnTableHeaderCellComposeProps<T> & RestTableHeaderCellComposeProps;
9
+ export declare const TableHeaderCellCompose: <T extends object>(props: OwnTableHeaderCellComposeProps<T> & import("@redislabsdev/redis-ui-components").ComposeChildrenProps & Omit<import("react").HTMLAttributes<HTMLTableCellElement>, "content" | "children"> & import("react").RefAttributes<HTMLTableCellElement>) => import("react").ReactElement<any, any> | null;
@@ -0,0 +1,40 @@
1
+ import { j as jsxRuntimeExports } from "../../../../../node_modules/react/jsx-runtime.js";
2
+ import { forwardRefWithGenerics } from "@redislabsdev/redis-ui-components";
3
+ import { VisuallyHidden } from "../../../../../node_modules/@radix-ui/react-visually-hidden/dist/index.js";
4
+ import { useMemo } from "react";
5
+ import { normalizeCellSpan, getCurrentAriaSort } from "../../TableHeaderCell.utils.js";
6
+ import { TableHeaderCellContextProvider } from "../../TableHeaderCell.context.js";
7
+ import { TableTh } from "../../../../Table.style.js";
8
+ const TableHeaderCellCompose = forwardRefWithGenerics(({
9
+ header,
10
+ children,
11
+ ...restProps
12
+ }, ref) => {
13
+ const colSpan = normalizeCellSpan(header.colSpan);
14
+ const rowSpan = normalizeCellSpan(header.rowSpan);
15
+ return jsxRuntimeExports.jsx(TableHeaderCellContextProvider, {
16
+ value: useMemo(() => ({
17
+ header
18
+ }), [header]),
19
+ children: jsxRuntimeExports.jsx(TableTh, {
20
+ ...restProps,
21
+ ref,
22
+ colSpan,
23
+ rowSpan,
24
+ style: {
25
+ width: header.column.getSize(),
26
+ ...restProps.style
27
+ },
28
+ "aria-hidden": header.isPlaceholder,
29
+ onClick: header.column.getCanSort() ? header.column.getToggleSortingHandler() : void 0,
30
+ "aria-sort": header.column.getCanSort() ? getCurrentAriaSort(header) : void 0,
31
+ scope: "col",
32
+ children: header.isPlaceholder ? jsxRuntimeExports.jsx(VisuallyHidden, {
33
+ children: "Placeholder"
34
+ }) : children
35
+ })
36
+ });
37
+ });
38
+ export {
39
+ TableHeaderCellCompose
40
+ };