@redis-ui/table 2.18.0 → 2.23.2

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 (83) hide show
  1. package/dist/Table/Table.cjs +30 -4
  2. package/dist/Table/Table.context.d.ts +1 -0
  3. package/dist/Table/Table.d.ts +26 -21
  4. package/dist/Table/Table.js +30 -4
  5. package/dist/Table/Table.style.cjs +37 -9
  6. package/dist/Table/Table.style.d.ts +277 -5
  7. package/dist/Table/Table.style.js +37 -9
  8. package/dist/Table/Table.types.d.ts +3 -1
  9. package/dist/Table/components/Compose/Compose.cjs +4 -1
  10. package/dist/Table/components/Compose/Compose.d.ts +1 -1
  11. package/dist/Table/components/Compose/Compose.js +4 -1
  12. package/dist/Table/components/ExpandRowButton/ExpandAllRowsButton.cjs +20 -0
  13. package/dist/Table/components/ExpandRowButton/ExpandAllRowsButton.d.ts +8 -0
  14. package/dist/Table/components/ExpandRowButton/ExpandAllRowsButton.js +20 -0
  15. package/dist/Table/components/ExpandRowButton/ExpandAllRowsButton.test.d.ts +1 -0
  16. package/dist/Table/components/ExpandRowButton/useExpanderColumn.cjs +19 -0
  17. package/dist/Table/components/ExpandRowButton/useExpanderColumn.d.ts +6 -0
  18. package/dist/Table/components/ExpandRowButton/useExpanderColumn.js +19 -0
  19. package/dist/Table/components/ExpandRowButton/useExpanderColumn.test.d.ts +1 -0
  20. package/dist/Table/components/PluggableTable/compositionComponents.d.ts +6 -6
  21. package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.cjs +1 -0
  22. package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.d.ts +1 -1
  23. package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.js +1 -0
  24. package/dist/Table/components/RowSelection/useRowSelectionColumn.cjs +26 -0
  25. package/dist/Table/components/RowSelection/useRowSelectionColumn.d.ts +8 -0
  26. package/dist/Table/components/RowSelection/useRowSelectionColumn.js +26 -0
  27. package/dist/Table/components/RowSelection/useRowSelectionColumn.test.d.ts +1 -0
  28. package/dist/Table/components/ShowOnRowHover/ShowOnRowHover.style.cjs +3 -1
  29. package/dist/Table/components/ShowOnRowHover/ShowOnRowHover.style.js +3 -1
  30. package/dist/Table/components/TableBody/TableBody.d.ts +1 -1
  31. package/dist/Table/components/TableBody/components/Compose/Compose.cjs +2 -3
  32. package/dist/Table/components/TableBody/components/Compose/Compose.js +2 -3
  33. package/dist/Table/components/TableBodyCell/TableBodyCell.cjs +1 -5
  34. package/dist/Table/components/TableBodyCell/TableBodyCell.d.ts +4 -7
  35. package/dist/Table/components/TableBodyCell/TableBodyCell.js +1 -5
  36. package/dist/Table/components/TableBodyCell/components/Compose/Compose.cjs +21 -1
  37. package/dist/Table/components/TableBodyCell/components/Compose/Compose.d.ts +8 -2
  38. package/dist/Table/components/TableBodyCell/components/Compose/Compose.js +21 -1
  39. package/dist/Table/components/TableBodyCell/components/Compose/Compose.test.d.ts +1 -0
  40. package/dist/Table/components/TableBodyRow/TableBodyRow.cjs +12 -2
  41. package/dist/Table/components/TableBodyRow/TableBodyRow.d.ts +3 -3
  42. package/dist/Table/components/TableBodyRow/TableBodyRow.js +12 -2
  43. package/dist/Table/components/TableBodyRow/components/Compose/Compose.d.ts +2 -1
  44. package/dist/Table/components/TableHeader/TableHeader.d.ts +3 -3
  45. package/dist/Table/components/TableHeader/components/Compose/Compose.d.ts +2 -1
  46. package/dist/Table/components/TableHeaderCell/SRSortingNotification.cjs +4 -5
  47. package/dist/Table/components/TableHeaderCell/SRSortingNotification.d.ts +1 -1
  48. package/dist/Table/components/TableHeaderCell/SRSortingNotification.js +4 -5
  49. package/dist/Table/components/TableHeaderCell/TableHeaderCell.cjs +2 -6
  50. package/dist/Table/components/TableHeaderCell/TableHeaderCell.d.ts +2 -2
  51. package/dist/Table/components/TableHeaderCell/TableHeaderCell.js +2 -6
  52. package/dist/Table/components/TableHeaderCell/components/Compose/Compose.cjs +13 -5
  53. package/dist/Table/components/TableHeaderCell/components/Compose/Compose.js +13 -5
  54. package/dist/Table/components/TableHeaderCell/components/Compose/Compose.test.d.ts +1 -0
  55. package/dist/Table/components/TableHeaderCell/components/Heading/Heading.cjs +6 -5
  56. package/dist/Table/components/TableHeaderCell/components/Heading/Heading.js +7 -6
  57. package/dist/Table/components/TableHeaderCell/components/SortableHeading/SortableHeading.d.ts +1 -1
  58. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/Compose/Compose.cjs +1 -0
  59. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/Compose/Compose.js +1 -0
  60. package/dist/Table/components/TablePagination/TablePagination.cjs +4 -2
  61. package/dist/Table/components/TablePagination/TablePagination.js +4 -2
  62. package/dist/Table/components/TableRoot/TableRoot.cjs +9 -1
  63. package/dist/Table/components/TableRoot/TableRoot.d.ts +2 -1
  64. package/dist/Table/components/TableRoot/TableRoot.js +9 -1
  65. package/dist/Table/plugins/ExpandableRowPlugin.cjs +11 -5
  66. package/dist/Table/plugins/ExpandableRowPlugin.d.ts +7 -1
  67. package/dist/Table/plugins/ExpandableRowPlugin.js +11 -5
  68. package/dist/Table/plugins/PaginationPlugin.cjs +2 -0
  69. package/dist/Table/plugins/PaginationPlugin.d.ts +2 -1
  70. package/dist/Table/plugins/PaginationPlugin.js +2 -0
  71. package/dist/Table/plugins/RowNavigationPlugin.cjs +139 -0
  72. package/dist/Table/plugins/RowNavigationPlugin.d.ts +44 -0
  73. package/dist/Table/plugins/RowNavigationPlugin.js +139 -0
  74. package/dist/Table/plugins/SortingPlugin.cjs +1 -1
  75. package/dist/Table/plugins/SortingPlugin.d.ts +1 -1
  76. package/dist/Table/plugins/SortingPlugin.js +1 -1
  77. package/dist/Table/tanStackExtendedTypes.d.ts +9 -0
  78. package/dist/Table/utils/plugin.utils.d.ts +1 -1
  79. package/dist/Table/utils/table.utils.cjs +13 -0
  80. package/dist/Table/utils/table.utils.d.ts +2 -0
  81. package/dist/Table/utils/table.utils.js +13 -0
  82. package/dist/Table/utils/table.utils.test.d.ts +1 -0
  83. package/package.json +5 -5
@@ -7,6 +7,7 @@ const HeaderMultiRowSelectionButton = ({
7
7
  managePage,
8
8
  ...restProps
9
9
  }) => {
10
+ if (!table.options.enableMultiRowSelection) return null;
10
11
  const props = {
11
12
  checked: false,
12
13
  label: "unselected all rows",
@@ -4,4 +4,4 @@ export interface HeaderMultiRowSelectionButtonProps<T extends object> extends Om
4
4
  table: Table<T>;
5
5
  managePage?: boolean;
6
6
  }
7
- export declare const HeaderMultiRowSelectionButton: <T extends object>({ table, managePage, ...restProps }: HeaderMultiRowSelectionButtonProps<T>) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const HeaderMultiRowSelectionButton: <T extends object>({ table, managePage, ...restProps }: HeaderMultiRowSelectionButtonProps<T>) => import("react/jsx-runtime").JSX.Element | null;
@@ -5,6 +5,7 @@ const HeaderMultiRowSelectionButton = ({
5
5
  managePage,
6
6
  ...restProps
7
7
  }) => {
8
+ if (!table.options.enableMultiRowSelection) return null;
8
9
  const props = {
9
10
  checked: false,
10
11
  label: "unselected all rows",
@@ -0,0 +1,26 @@
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 HeaderMultiRowSelectionButton = require("./HeaderMultiRowSelectionButton.cjs");
6
+ const RowSelectionButton = require("./RowSelectionButton.cjs");
7
+ const useRowSelectionColumn = ({
8
+ disableSelectAll,
9
+ managePage,
10
+ ...colDef
11
+ } = {}) => ({
12
+ id: "row-selection",
13
+ size: 4.2,
14
+ minSize: 4.2,
15
+ sizeUnit: "rem",
16
+ header: (props) => !disableSelectAll && props.table.options.enableMultiRowSelection ? jsxRuntime.jsxRuntimeExports.jsx(HeaderMultiRowSelectionButton.HeaderMultiRowSelectionButton, {
17
+ ...props,
18
+ managePage
19
+ }) : jsxRuntime.jsxRuntimeExports.jsx(index.VisuallyHidden, {
20
+ children: "row selection"
21
+ }),
22
+ isHeaderCustom: true,
23
+ cell: RowSelectionButton.RowSelectionButton,
24
+ ...colDef
25
+ });
26
+ exports.useRowSelectionColumn = useRowSelectionColumn;
@@ -0,0 +1,8 @@
1
+ import { ColumnDef } from '@tanstack/react-table';
2
+ export type UseRowSelectionColumnParams<T extends object> = Partial<ColumnDef<T>> & {
3
+ /** Disable Select All checkbox in header, even if multi-select is enabled */
4
+ disableSelectAll?: boolean;
5
+ /** Force Select All checkbox toggle selection on current page only, if pagination is enabled */
6
+ managePage?: boolean;
7
+ };
8
+ export declare const useRowSelectionColumn: <T extends object>({ disableSelectAll, managePage, ...colDef }?: UseRowSelectionColumnParams<T>) => ColumnDef<T, unknown>;
@@ -0,0 +1,26 @@
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 { HeaderMultiRowSelectionButton } from "./HeaderMultiRowSelectionButton.js";
4
+ import { RowSelectionButton } from "./RowSelectionButton.js";
5
+ const useRowSelectionColumn = ({
6
+ disableSelectAll,
7
+ managePage,
8
+ ...colDef
9
+ } = {}) => ({
10
+ id: "row-selection",
11
+ size: 4.2,
12
+ minSize: 4.2,
13
+ sizeUnit: "rem",
14
+ header: (props) => !disableSelectAll && props.table.options.enableMultiRowSelection ? jsxRuntimeExports.jsx(HeaderMultiRowSelectionButton, {
15
+ ...props,
16
+ managePage
17
+ }) : jsxRuntimeExports.jsx(VisuallyHidden, {
18
+ children: "row selection"
19
+ }),
20
+ isHeaderCustom: true,
21
+ cell: RowSelectionButton,
22
+ ...colDef
23
+ });
24
+ export {
25
+ useRowSelectionColumn
26
+ };
@@ -4,8 +4,10 @@ const _styled = require("styled-components");
4
4
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
5
5
  const _styled__default = /* @__PURE__ */ _interopDefault(_styled);
6
6
  const ShowOnRowHover = _styled__default.default.div`
7
+ table:where([tabindex='0']) & {
8
+ visibility: hidden;
9
+ }
7
10
  opacity: 0;
8
- visibility: hidden;
9
11
  transition: opacity 0.3s ease-in-out;
10
12
  `;
11
13
  exports.ShowOnRowHover = ShowOnRowHover;
@@ -1,7 +1,9 @@
1
1
  import _styled from "styled-components";
2
2
  const ShowOnRowHover = _styled.div`
3
+ table:where([tabindex='0']) & {
4
+ visibility: hidden;
5
+ }
3
6
  opacity: 0;
4
- visibility: hidden;
5
7
  transition: opacity 0.3s ease-in-out;
6
8
  `;
7
9
  export {
@@ -18,6 +18,6 @@ export declare const TableBody: (<T extends object>(props: TableBodyProps) => im
18
18
  };
19
19
  ExpandableRow: <T_3 extends object>(props: import("../TableBodyRow/TableBodyRow").OwnTableBodyRowProps<T_3> & import("../TableBodyRow/TableBodyRow").RestTableBodyRowProps & import("react").RefAttributes<HTMLTableRowElement>) => import("react").ReactElement<any, any> | null;
20
20
  Cell: (<T_4 extends object>(props: import("../TableBodyCell/TableBodyCell").OwnTableBodyCellProps<T_4> & import("../TableBodyCell/TableBodyCell").RestTableBodyCellProps & import("react").RefAttributes<HTMLTableCellElement>) => import("react").ReactElement<any, any> | null) & {
21
- Compose: import("styled-components").StyledComponent<"td", any, {}, never>;
21
+ Compose: <T_5 extends object>(props: import("@redislabsdev/redis-ui-components").ComposeChildrenProps & Omit<import("react").HTMLAttributes<HTMLTableCellElement>, "content" | "children"> & import("../TableBodyCell/components/Compose/Compose").OwnTableBodyCellComposeProps<T_5> & import("react").RefAttributes<HTMLTableCellElement>) => import("react").ReactElement<any, any> | null;
22
22
  };
23
23
  };
@@ -2,9 +2,8 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("../../../../../node_modules/react/jsx-runtime.cjs");
4
4
  const Table_style = require("../../../../Table.style.cjs");
5
- const Table_context = require("../../../../Table.context.cjs");
6
5
  const TableBodyCompose = (props) => jsxRuntime.jsxRuntimeExports.jsx(Table_style.TableBody, {
7
- ...props,
8
- maxHeight: Table_context.useTableContext().maxHeight
6
+ "data-role": "table-body",
7
+ ...props
9
8
  });
10
9
  exports.TableBodyCompose = TableBodyCompose;
@@ -1,9 +1,8 @@
1
1
  import { j as jsxRuntimeExports } from "../../../../../node_modules/react/jsx-runtime.js";
2
2
  import { TableBody } from "../../../../Table.style.js";
3
- import { useTableContext } from "../../../../Table.context.js";
4
3
  const TableBodyCompose = (props) => jsxRuntimeExports.jsx(TableBody, {
5
- ...props,
6
- maxHeight: useTableContext().maxHeight
4
+ "data-role": "table-body",
5
+ ...props
7
6
  });
8
7
  export {
9
8
  TableBodyCompose
@@ -6,15 +6,11 @@ const redisUiComponents = require("@redislabsdev/redis-ui-components");
6
6
  const Compose = require("./components/Compose/Compose.cjs");
7
7
  const TableBodyCell = Object.assign(redisUiComponents.forwardRefWithGenerics(({
8
8
  cell,
9
- style,
10
9
  ...restProps
11
10
  }, ref) => jsxRuntime.jsxRuntimeExports.jsx(TableBodyCell.Compose, {
12
11
  ...restProps,
12
+ cell,
13
13
  ref,
14
- style: {
15
- width: cell.column.getSize(),
16
- ...style
17
- },
18
14
  children: index.flexRender(cell.column.columnDef.cell, cell.getContext())
19
15
  })), {
20
16
  Compose: Compose.TableBodyCellCompose
@@ -1,12 +1,9 @@
1
1
  /// <reference types="react" />
2
- import { Cell } from '@tanstack/react-table';
3
2
  import { ChildFree } from '@redislabsdev/redis-ui-components';
4
- import { TableBodyCellComposeProps } from './components/Compose/Compose';
5
- export type OwnTableBodyCellProps<T extends object> = {
6
- cell: Cell<T, unknown>;
7
- };
8
- export type RestTableBodyCellProps = ChildFree<TableBodyCellComposeProps>;
3
+ import { OwnTableBodyCellComposeProps, RestTableBodyCellComposeProps } from './components/Compose/Compose';
4
+ export type OwnTableBodyCellProps<T extends object> = OwnTableBodyCellComposeProps<T>;
5
+ export type RestTableBodyCellProps = ChildFree<RestTableBodyCellComposeProps>;
9
6
  export type TableBodyCellProps<T extends object> = OwnTableBodyCellProps<T> & RestTableBodyCellProps;
10
7
  export declare const TableBodyCell: (<T extends object>(props: OwnTableBodyCellProps<T> & RestTableBodyCellProps & import("react").RefAttributes<HTMLTableCellElement>) => import("react").ReactElement<any, any> | null) & {
11
- Compose: import("styled-components").StyledComponent<"td", any, {}, never>;
8
+ Compose: <T_1 extends object>(props: import("@redislabsdev/redis-ui-components").ComposeChildrenProps & Omit<import("react").HTMLAttributes<HTMLTableCellElement>, "content" | "children"> & OwnTableBodyCellComposeProps<T_1> & import("react").RefAttributes<HTMLTableCellElement>) => import("react").ReactElement<any, any> | null;
12
9
  };
@@ -4,15 +4,11 @@ import { forwardRefWithGenerics } from "@redislabsdev/redis-ui-components";
4
4
  import { TableBodyCellCompose } from "./components/Compose/Compose.js";
5
5
  const TableBodyCell = Object.assign(forwardRefWithGenerics(({
6
6
  cell,
7
- style,
8
7
  ...restProps
9
8
  }, ref) => jsxRuntimeExports.jsx(TableBodyCell.Compose, {
10
9
  ...restProps,
10
+ cell,
11
11
  ref,
12
- style: {
13
- width: cell.column.getSize(),
14
- ...style
15
- },
16
12
  children: flexRender(cell.column.columnDef.cell, cell.getContext())
17
13
  })), {
18
14
  Compose: TableBodyCellCompose
@@ -1,5 +1,25 @@
1
1
  "use strict";
2
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 table_utils = require("../../../../utils/table.utils.cjs");
3
6
  const Table_style = require("../../../../Table.style.cjs");
4
- const TableBodyCellCompose = Table_style.TableBodyCell;
7
+ const TableBodyCellCompose = redisUiComponents.forwardRefWithGenerics(({
8
+ cell,
9
+ style,
10
+ ...restProps
11
+ }, ref) => {
12
+ var _a, _b;
13
+ const columnCellProps = (_b = (_a = cell.column.columnDef).getCellProps) == null ? void 0 : _b.call(_a, cell.row.original, cell);
14
+ return jsxRuntime.jsxRuntimeExports.jsx(Table_style.TableBodyCell, {
15
+ ...restProps,
16
+ ...columnCellProps,
17
+ ref,
18
+ style: {
19
+ width: table_utils.getWidth(cell.column),
20
+ ...style,
21
+ ...columnCellProps == null ? void 0 : columnCellProps.style
22
+ }
23
+ });
24
+ });
5
25
  exports.TableBodyCellCompose = TableBodyCellCompose;
@@ -1,3 +1,9 @@
1
+ /// <reference types="react" />
1
2
  import { ComposeElementProps } from '@redislabsdev/redis-ui-components';
2
- export type TableBodyCellComposeProps = ComposeElementProps<HTMLTableCellElement>;
3
- export declare const TableBodyCellCompose: import("styled-components").StyledComponent<"td", any, {}, never>;
3
+ import { Cell } from '@tanstack/react-table';
4
+ export type OwnTableBodyCellComposeProps<T extends object> = {
5
+ cell: Cell<T, unknown>;
6
+ };
7
+ export type RestTableBodyCellComposeProps = ComposeElementProps<HTMLTableCellElement>;
8
+ export type TableBodyCellComposeProps<T extends object> = RestTableBodyCellComposeProps & OwnTableBodyCellComposeProps<T>;
9
+ export declare const TableBodyCellCompose: <T extends object>(props: import("@redislabsdev/redis-ui-components").ComposeChildrenProps & Omit<import("react").HTMLAttributes<HTMLTableCellElement>, "content" | "children"> & OwnTableBodyCellComposeProps<T> & import("react").RefAttributes<HTMLTableCellElement>) => import("react").ReactElement<any, any> | null;
@@ -1,5 +1,25 @@
1
+ import { j as jsxRuntimeExports } from "../../../../../node_modules/react/jsx-runtime.js";
2
+ import { forwardRefWithGenerics } from "@redislabsdev/redis-ui-components";
3
+ import { getWidth } from "../../../../utils/table.utils.js";
1
4
  import { TableBodyCell } from "../../../../Table.style.js";
2
- const TableBodyCellCompose = TableBodyCell;
5
+ const TableBodyCellCompose = forwardRefWithGenerics(({
6
+ cell,
7
+ style,
8
+ ...restProps
9
+ }, ref) => {
10
+ var _a, _b;
11
+ const columnCellProps = (_b = (_a = cell.column.columnDef).getCellProps) == null ? void 0 : _b.call(_a, cell.row.original, cell);
12
+ return jsxRuntimeExports.jsx(TableBodyCell, {
13
+ ...restProps,
14
+ ...columnCellProps,
15
+ ref,
16
+ style: {
17
+ width: getWidth(cell.column),
18
+ ...style,
19
+ ...columnCellProps == null ? void 0 : columnCellProps.style
20
+ }
21
+ });
22
+ });
3
23
  export {
4
24
  TableBodyCellCompose
5
25
  };
@@ -6,10 +6,12 @@ const Table_context = require("../../Table.context.cjs");
6
6
  const TableBodyCell = require("../TableBodyCell/TableBodyCell.cjs");
7
7
  const Compose = require("./components/Compose/Compose.cjs");
8
8
  const ClickableRowPlugin = require("../../plugins/ClickableRowPlugin.cjs");
9
+ const RowNavigationPlugin = require("../../plugins/RowNavigationPlugin.cjs");
9
10
  const TableBodyRow = Object.assign(redisUiComponents.forwardRefWithGenerics(({
10
11
  row,
11
12
  onClick,
12
13
  onKeyDown,
14
+ onFocus,
13
15
  ...restProps
14
16
  }, ref) => {
15
17
  const {
@@ -22,11 +24,19 @@ const TableBodyRow = Object.assign(redisUiComponents.forwardRefWithGenerics(({
22
24
  onClick,
23
25
  onKeyDown
24
26
  });
27
+ const {
28
+ ref: comboRef,
29
+ ...navigationProps
30
+ } = RowNavigationPlugin.useHandleRowNavigationOnRow({
31
+ row,
32
+ ref,
33
+ onFocus
34
+ });
25
35
  return jsxRuntime.jsxRuntimeExports.jsx(TableBodyRow.Compose, {
26
- tabIndex: 0,
27
36
  ...restProps,
28
37
  ...clickableProps,
29
- ref,
38
+ ...navigationProps,
39
+ ref: comboRef,
30
40
  children: row.getVisibleCells().map((cell) => jsxRuntime.jsxRuntimeExports.jsx(Cell, {
31
41
  cell
32
42
  }, cell.id))
@@ -1,11 +1,11 @@
1
1
  /// <reference types="react" />
2
- import { Row } from '@tanstack/react-table';
3
2
  import { ChildFree } from '@redislabsdev/redis-ui-components';
4
- import { TableBodyRowComposeProps } from './components/Compose/Compose';
3
+ import { Row } from '@tanstack/react-table';
4
+ import { RestTableBodyRowComposeProps } from './components/Compose/Compose';
5
5
  export type OwnTableBodyRowProps<T extends object> = {
6
6
  row: Row<T>;
7
7
  };
8
- export type RestTableBodyRowProps = ChildFree<TableBodyRowComposeProps>;
8
+ export type RestTableBodyRowProps = ChildFree<RestTableBodyRowComposeProps>;
9
9
  export type TableBodyRowProps<T extends object> = OwnTableBodyRowProps<T> & RestTableBodyRowProps;
10
10
  export declare const TableBodyRow: (<T extends object>(props: OwnTableBodyRowProps<T> & RestTableBodyRowProps & import("react").RefAttributes<HTMLTableRowElement>) => import("react").ReactElement<any, any> | null) & {
11
11
  Compose: (props: import("@redislabsdev/redis-ui-components").ComposeChildrenProps & Omit<import("react").HTMLAttributes<HTMLTableRowElement>, "content" | "children"> & import("react").RefAttributes<HTMLTableRowElement>) => import("react").ReactElement<any, any> | null;
@@ -4,10 +4,12 @@ import { useComposeContext } from "../../Table.context.js";
4
4
  import { TableBodyCell } from "../TableBodyCell/TableBodyCell.js";
5
5
  import { TableBodyRowCompose } from "./components/Compose/Compose.js";
6
6
  import { useHandleClickableRow } from "../../plugins/ClickableRowPlugin.js";
7
+ import { useHandleRowNavigationOnRow } from "../../plugins/RowNavigationPlugin.js";
7
8
  const TableBodyRow = Object.assign(forwardRefWithGenerics(({
8
9
  row,
9
10
  onClick,
10
11
  onKeyDown,
12
+ onFocus,
11
13
  ...restProps
12
14
  }, ref) => {
13
15
  const {
@@ -20,11 +22,19 @@ const TableBodyRow = Object.assign(forwardRefWithGenerics(({
20
22
  onClick,
21
23
  onKeyDown
22
24
  });
25
+ const {
26
+ ref: comboRef,
27
+ ...navigationProps
28
+ } = useHandleRowNavigationOnRow({
29
+ row,
30
+ ref,
31
+ onFocus
32
+ });
23
33
  return jsxRuntimeExports.jsx(TableBodyRow.Compose, {
24
- tabIndex: 0,
25
34
  ...restProps,
26
35
  ...clickableProps,
27
- ref,
36
+ ...navigationProps,
37
+ ref: comboRef,
28
38
  children: row.getVisibleCells().map((cell) => jsxRuntimeExports.jsx(Cell, {
29
39
  cell
30
40
  }, cell.id))
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import { ComposeElementProps } from '@redislabsdev/redis-ui-components';
3
- export type TableBodyRowComposeProps = ComposeElementProps<HTMLTableRowElement>;
3
+ export type RestTableBodyRowComposeProps = ComposeElementProps<HTMLTableRowElement>;
4
+ export type TableBodyRowComposeProps = RestTableBodyRowComposeProps;
4
5
  export declare const TableBodyRowCompose: (props: import("@redislabsdev/redis-ui-components").ComposeChildrenProps & Omit<import("react").HTMLAttributes<HTMLTableRowElement>, "content" | "children"> & import("react").RefAttributes<HTMLTableRowElement>) => import("react").ReactElement<any, any> | null;
@@ -4,14 +4,14 @@ import { TableHeaderComposeProps } from './components/Compose/Compose';
4
4
  export type RestTableHeaderProps = ChildFree<TableHeaderComposeProps>;
5
5
  export type TableHeaderProps = RestTableHeaderProps;
6
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>;
7
+ Compose: import("react").FC<TableHeaderComposeProps>;
8
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
9
  Compose: import("styled-components").StyledComponent<"tr", any, {}, never>;
10
10
  };
11
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
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) & {
13
+ SortableHeading: (({ children, ...restProps }: import("@redislabsdev/redis-ui-components").ComposeElementProps<HTMLElement>) => import("react/jsx-runtime").JSX.Element) & {
14
+ Compose: ((props: import("@redislabsdev/redis-ui-components").ComposeElementProps<HTMLElement>) => import("react/jsx-runtime").JSX.Element) & {
15
15
  SortIndicator: () => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
16
16
  };
17
17
  SortIndicator: () => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
@@ -1,3 +1,4 @@
1
+ import { FC } from 'react';
1
2
  import { ComposeElementProps } from '@redislabsdev/redis-ui-components';
2
3
  export type TableHeaderComposeProps = ComposeElementProps<HTMLTableSectionElement>;
3
- export declare const TableHeaderCompose: import("styled-components").StyledComponent<"thead", any, {}, never>;
4
+ export declare const TableHeaderCompose: FC<TableHeaderComposeProps>;
@@ -1,7 +1,7 @@
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");
4
+ const redisUiComponents = require("@redislabsdev/redis-ui-components");
5
5
  const Table_context = require("../../Table.context.cjs");
6
6
  const SortingPlugin = require("../../plugins/SortingPlugin.cjs");
7
7
  const TableHeaderCell_utils = require("./TableHeaderCell.utils.cjs");
@@ -10,10 +10,9 @@ function SRSortingNotification() {
10
10
  table
11
11
  } = Table_context.useTableContext();
12
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)
13
+ return jsxRuntime.jsxRuntimeExports.jsx(redisUiComponents.ScreenReaderAnnounce, {
14
+ text: TableHeaderCell_utils.getTableSortLabel(table, TableHeaderCell_utils.formatTableSortNotification),
15
+ allowAnnounce: sorting == null ? void 0 : sorting.sortedByUser
17
16
  });
18
17
  }
19
18
  exports.SRSortingNotification = SRSortingNotification;
@@ -1 +1 @@
1
- export declare function SRSortingNotification(): import("react/jsx-runtime").JSX.Element | null;
1
+ export declare function SRSortingNotification(): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
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";
2
+ import { ScreenReaderAnnounce } from "@redislabsdev/redis-ui-components";
3
3
  import { useTableContext } from "../../Table.context.js";
4
4
  import { useSortingContext } from "../../plugins/SortingPlugin.js";
5
5
  import { getTableSortLabel, formatTableSortNotification } from "./TableHeaderCell.utils.js";
@@ -8,10 +8,9 @@ function SRSortingNotification() {
8
8
  table
9
9
  } = useTableContext();
10
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)
11
+ return jsxRuntimeExports.jsx(ScreenReaderAnnounce, {
12
+ text: getTableSortLabel(table, formatTableSortNotification),
13
+ allowAnnounce: sorting == null ? void 0 : sorting.sortedByUser
15
14
  });
16
15
  }
17
16
  export {
@@ -5,12 +5,8 @@ const redisUiComponents = require("@redislabsdev/redis-ui-components");
5
5
  const Compose = require("./components/Compose/Compose.cjs");
6
6
  const SortableHeading = require("./components/SortableHeading/SortableHeading.cjs");
7
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,
8
+ const TableHeaderCell = Object.assign(redisUiComponents.forwardRefWithGenerics((props, ref) => jsxRuntime.jsxRuntimeExports.jsx(TableHeaderCell.Compose, {
9
+ ...props,
14
10
  ref,
15
11
  children: jsxRuntime.jsxRuntimeExports.jsx(TableHeaderCell.SortableHeading, {
16
12
  children: jsxRuntime.jsxRuntimeExports.jsx(TableHeaderCell.Heading, {})
@@ -6,8 +6,8 @@ export type RestTableHeaderCellProps = ChildFree<RestTableHeaderCellComposeProps
6
6
  export type TableHeaderCellProps<T extends object> = OwnTableHeaderCellProps<T> & RestTableHeaderCellProps;
7
7
  export declare const TableHeaderCell: (<T extends object>(props: OwnTableHeaderCellProps<T> & RestTableHeaderCellProps & import("react").RefAttributes<HTMLTableCellElement>) => import("react").ReactElement<any, any> | null) & {
8
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) & {
9
+ SortableHeading: (({ children, ...restProps }: import("@redislabsdev/redis-ui-components").ComposeElementProps<HTMLElement>) => import("react/jsx-runtime").JSX.Element) & {
10
+ Compose: ((props: import("@redislabsdev/redis-ui-components").ComposeElementProps<HTMLElement>) => import("react/jsx-runtime").JSX.Element) & {
11
11
  SortIndicator: () => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
12
12
  };
13
13
  SortIndicator: () => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
@@ -3,12 +3,8 @@ import { forwardRefWithGenerics } from "@redislabsdev/redis-ui-components";
3
3
  import { TableHeaderCellCompose } from "./components/Compose/Compose.js";
4
4
  import { SortableHeading } from "./components/SortableHeading/SortableHeading.js";
5
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,
6
+ const TableHeaderCell = Object.assign(forwardRefWithGenerics((props, ref) => jsxRuntimeExports.jsx(TableHeaderCell.Compose, {
7
+ ...props,
12
8
  ref,
13
9
  children: jsxRuntimeExports.jsx(TableHeaderCell.SortableHeading, {
14
10
  children: jsxRuntimeExports.jsx(TableHeaderCell.Heading, {})
@@ -6,30 +6,38 @@ const index = require("../../../../../node_modules/@radix-ui/react-visually-hidd
6
6
  const React = require("react");
7
7
  const TableHeaderCell_utils = require("../../TableHeaderCell.utils.cjs");
8
8
  const TableHeaderCell_context = require("../../TableHeaderCell.context.cjs");
9
+ const table_utils = require("../../../../utils/table.utils.cjs");
9
10
  const Table_style = require("../../../../Table.style.cjs");
10
11
  const TableHeaderCellCompose = redisUiComponents.forwardRefWithGenerics(({
11
12
  header,
12
13
  children,
13
14
  ...restProps
14
15
  }, ref) => {
16
+ var _a, _b;
15
17
  const colSpan = TableHeaderCell_utils.normalizeCellSpan(header.colSpan);
16
18
  const rowSpan = TableHeaderCell_utils.normalizeCellSpan(header.rowSpan);
19
+ const {
20
+ column
21
+ } = header;
22
+ const columnCellProps = (_b = (_a = column.columnDef).getHeaderCellProps) == null ? void 0 : _b.call(_a, header);
17
23
  return jsxRuntime.jsxRuntimeExports.jsx(TableHeaderCell_context.TableHeaderCellContextProvider, {
18
24
  value: React.useMemo(() => ({
19
25
  header
20
26
  }), [header]),
21
27
  children: jsxRuntime.jsxRuntimeExports.jsx(Table_style.TableTh, {
22
28
  ...restProps,
29
+ ...columnCellProps,
23
30
  ref,
24
31
  colSpan,
25
32
  rowSpan,
26
33
  style: {
27
- width: header.column.getSize(),
28
- ...restProps.style
34
+ width: table_utils.getWidth(column),
35
+ ...restProps.style,
36
+ ...columnCellProps == null ? void 0 : columnCellProps.style
29
37
  },
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,
38
+ "aria-hidden": header.isPlaceholder ? true : void 0,
39
+ onClick: column.getCanSort() ? column.getToggleSortingHandler() : void 0,
40
+ "aria-sort": column.getCanSort() ? TableHeaderCell_utils.getCurrentAriaSort(header) : void 0,
33
41
  scope: "col",
34
42
  children: header.isPlaceholder ? jsxRuntime.jsxRuntimeExports.jsx(index.VisuallyHidden, {
35
43
  children: "Placeholder"
@@ -4,30 +4,38 @@ import { VisuallyHidden } from "../../../../../node_modules/@radix-ui/react-visu
4
4
  import { useMemo } from "react";
5
5
  import { normalizeCellSpan, getCurrentAriaSort } from "../../TableHeaderCell.utils.js";
6
6
  import { TableHeaderCellContextProvider } from "../../TableHeaderCell.context.js";
7
+ import { getWidth } from "../../../../utils/table.utils.js";
7
8
  import { TableTh } from "../../../../Table.style.js";
8
9
  const TableHeaderCellCompose = forwardRefWithGenerics(({
9
10
  header,
10
11
  children,
11
12
  ...restProps
12
13
  }, ref) => {
14
+ var _a, _b;
13
15
  const colSpan = normalizeCellSpan(header.colSpan);
14
16
  const rowSpan = normalizeCellSpan(header.rowSpan);
17
+ const {
18
+ column
19
+ } = header;
20
+ const columnCellProps = (_b = (_a = column.columnDef).getHeaderCellProps) == null ? void 0 : _b.call(_a, header);
15
21
  return jsxRuntimeExports.jsx(TableHeaderCellContextProvider, {
16
22
  value: useMemo(() => ({
17
23
  header
18
24
  }), [header]),
19
25
  children: jsxRuntimeExports.jsx(TableTh, {
20
26
  ...restProps,
27
+ ...columnCellProps,
21
28
  ref,
22
29
  colSpan,
23
30
  rowSpan,
24
31
  style: {
25
- width: header.column.getSize(),
26
- ...restProps.style
32
+ width: getWidth(column),
33
+ ...restProps.style,
34
+ ...columnCellProps == null ? void 0 : columnCellProps.style
27
35
  },
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,
36
+ "aria-hidden": header.isPlaceholder ? true : void 0,
37
+ onClick: column.getCanSort() ? column.getToggleSortingHandler() : void 0,
38
+ "aria-sort": column.getCanSort() ? getCurrentAriaSort(header) : void 0,
31
39
  scope: "col",
32
40
  children: header.isPlaceholder ? jsxRuntimeExports.jsx(VisuallyHidden, {
33
41
  children: "Placeholder"
@@ -8,15 +8,16 @@ const TableHeaderCell_context = require("../../TableHeaderCell.context.cjs");
8
8
  const Table_style = require("../../../../Table.style.cjs");
9
9
  const DEFAULT_HIDDEN_HEADER = "Actions";
10
10
  const TableHeaderCellHeading = (props) => {
11
- var _a;
12
11
  const {
13
12
  header
14
13
  } = TableHeaderCell_context.useTableHeaderCellContext();
15
14
  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();
15
+ if (header.column.columnDef.isHeaderCustom) {
16
+ return jsxRuntime.jsxRuntimeExports.jsx(jsxRuntime.jsxRuntimeExports.Fragment, {
17
+ children: content
18
+ });
19
+ }
20
+ const text = typeof content === "string" ? content.trim() : content;
20
21
  if (!text || header.column.columnDef.isHeaderHidden) {
21
22
  return jsxRuntime.jsxRuntimeExports.jsx(index$1.VisuallyHidden, {
22
23
  children: text || DEFAULT_HIDDEN_HEADER