@elliemae/ds-data-table 3.70.0-next.6 → 3.70.0-next.60

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 (159) hide show
  1. package/dist/cjs/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +15 -3
  2. package/dist/cjs/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js.map +3 -3
  3. package/dist/cjs/addons/Editables/index.js.map +1 -1
  4. package/dist/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilter.js.map +2 -2
  5. package/dist/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilterV2.js.map +2 -2
  6. package/dist/cjs/configs/constants.js +4 -0
  7. package/dist/cjs/configs/constants.js.map +2 -2
  8. package/dist/cjs/configs/useAutocalculated/index.js +15 -1
  9. package/dist/cjs/configs/useAutocalculated/index.js.map +2 -2
  10. package/dist/cjs/configs/useStore/useStore.js +46 -0
  11. package/dist/cjs/configs/useStore/useStore.js.map +2 -2
  12. package/dist/cjs/constants/index.js +1 -0
  13. package/dist/cjs/constants/index.js.map +2 -2
  14. package/dist/cjs/exported-related/FilterBar/PillsFromDataTableFilters.js +2 -1
  15. package/dist/cjs/exported-related/FilterBar/PillsFromDataTableFilters.js.map +2 -2
  16. package/dist/cjs/exported-related/FilterPopover/FilterPopoverV2.js +14 -8
  17. package/dist/cjs/exported-related/FilterPopover/FilterPopoverV2.js.map +2 -2
  18. package/dist/cjs/exported-related/FilterPopover/index.js +31 -7
  19. package/dist/cjs/exported-related/FilterPopover/index.js.map +2 -2
  20. package/dist/cjs/package.json +1 -4
  21. package/dist/cjs/parts/Cells/Cell.js +1 -1
  22. package/dist/cjs/parts/Cells/Cell.js.map +2 -2
  23. package/dist/cjs/parts/Cells/CellFactory.js +1 -1
  24. package/dist/cjs/parts/Cells/CellFactory.js.map +2 -2
  25. package/dist/cjs/parts/FilterBar/FiltersBar.js +2 -1
  26. package/dist/cjs/parts/FilterBar/FiltersBar.js.map +2 -2
  27. package/dist/cjs/parts/Headers/HeaderCell.js +13 -24
  28. package/dist/cjs/parts/Headers/HeaderCell.js.map +2 -2
  29. package/dist/cjs/parts/Headers/HeaderCellTitle.js +24 -4
  30. package/dist/cjs/parts/Headers/HeaderCellTitle.js.map +2 -2
  31. package/dist/cjs/parts/Headers/HeaderResizer.js +40 -18
  32. package/dist/cjs/parts/Headers/HeaderResizer.js.map +2 -2
  33. package/dist/cjs/{exported-related/FilterPopover/useOnClickOutside.js → parts/Headers/buildScreenReaderInstructions.js} +33 -30
  34. package/dist/cjs/parts/Headers/buildScreenReaderInstructions.js.map +7 -0
  35. package/dist/cjs/parts/Headers/index.js +15 -7
  36. package/dist/cjs/parts/Headers/index.js.map +2 -2
  37. package/dist/cjs/parts/Headers/useHeaderCellHandlers.js +44 -8
  38. package/dist/cjs/parts/Headers/useHeaderCellHandlers.js.map +2 -2
  39. package/dist/cjs/parts/Headers/useHeaderResizer.js +13 -3
  40. package/dist/cjs/parts/Headers/useHeaderResizer.js.map +2 -2
  41. package/dist/cjs/parts/HoC/withDnDSortableColumnContext.js +3 -1
  42. package/dist/cjs/parts/HoC/withDnDSortableColumnContext.js.map +2 -2
  43. package/dist/cjs/parts/VirtualRowsList.js +2 -0
  44. package/dist/cjs/parts/VirtualRowsList.js.map +2 -2
  45. package/dist/cjs/react-desc-prop-types.js +10 -3
  46. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  47. package/dist/cjs/styled.js +55 -52
  48. package/dist/cjs/styled.js.map +2 -2
  49. package/dist/esm/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +15 -3
  50. package/dist/esm/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js.map +2 -2
  51. package/dist/esm/addons/Editables/index.js.map +1 -1
  52. package/dist/esm/addons/Filters/Components/SelectFilter/BaseSelectFilter.js.map +2 -2
  53. package/dist/esm/addons/Filters/Components/SelectFilter/BaseSelectFilterV2.js.map +2 -2
  54. package/dist/esm/configs/constants.js +4 -0
  55. package/dist/esm/configs/constants.js.map +2 -2
  56. package/dist/esm/configs/useAutocalculated/index.js +15 -1
  57. package/dist/esm/configs/useAutocalculated/index.js.map +2 -2
  58. package/dist/esm/configs/useStore/useStore.js +46 -0
  59. package/dist/esm/configs/useStore/useStore.js.map +2 -2
  60. package/dist/esm/constants/index.js +1 -0
  61. package/dist/esm/constants/index.js.map +2 -2
  62. package/dist/esm/exported-related/FilterBar/PillsFromDataTableFilters.js +2 -1
  63. package/dist/esm/exported-related/FilterBar/PillsFromDataTableFilters.js.map +2 -2
  64. package/dist/esm/exported-related/FilterPopover/FilterPopoverV2.js +15 -9
  65. package/dist/esm/exported-related/FilterPopover/FilterPopoverV2.js.map +2 -2
  66. package/dist/esm/exported-related/FilterPopover/index.js +31 -7
  67. package/dist/esm/exported-related/FilterPopover/index.js.map +2 -2
  68. package/dist/esm/package.json +1 -4
  69. package/dist/esm/parts/Cells/Cell.js +1 -1
  70. package/dist/esm/parts/Cells/Cell.js.map +2 -2
  71. package/dist/esm/parts/Cells/CellFactory.js +1 -1
  72. package/dist/esm/parts/Cells/CellFactory.js.map +2 -2
  73. package/dist/esm/parts/FilterBar/FiltersBar.js +2 -1
  74. package/dist/esm/parts/FilterBar/FiltersBar.js.map +2 -2
  75. package/dist/esm/parts/Headers/HeaderCell.js +13 -24
  76. package/dist/esm/parts/Headers/HeaderCell.js.map +2 -2
  77. package/dist/esm/parts/Headers/HeaderCellTitle.js +24 -4
  78. package/dist/esm/parts/Headers/HeaderCellTitle.js.map +2 -2
  79. package/dist/esm/parts/Headers/HeaderResizer.js +41 -19
  80. package/dist/esm/parts/Headers/HeaderResizer.js.map +2 -2
  81. package/dist/esm/parts/Headers/buildScreenReaderInstructions.js +33 -0
  82. package/dist/esm/parts/Headers/buildScreenReaderInstructions.js.map +7 -0
  83. package/dist/esm/parts/Headers/index.js +15 -7
  84. package/dist/esm/parts/Headers/index.js.map +2 -2
  85. package/dist/esm/parts/Headers/useHeaderCellHandlers.js +44 -8
  86. package/dist/esm/parts/Headers/useHeaderCellHandlers.js.map +2 -2
  87. package/dist/esm/parts/Headers/useHeaderResizer.js +14 -4
  88. package/dist/esm/parts/Headers/useHeaderResizer.js.map +2 -2
  89. package/dist/esm/parts/HoC/withDnDSortableColumnContext.js +3 -1
  90. package/dist/esm/parts/HoC/withDnDSortableColumnContext.js.map +2 -2
  91. package/dist/esm/parts/VirtualRowsList.js +2 -0
  92. package/dist/esm/parts/VirtualRowsList.js.map +2 -2
  93. package/dist/esm/react-desc-prop-types.js +10 -3
  94. package/dist/esm/react-desc-prop-types.js.map +2 -2
  95. package/dist/esm/styled.js +13 -10
  96. package/dist/esm/styled.js.map +2 -2
  97. package/dist/types/TruncatedTooltipText.d.ts +1 -1
  98. package/dist/types/addons/Editables/index.d.ts +1 -1
  99. package/dist/types/configs/constants.d.ts +2 -0
  100. package/dist/types/constants/index.d.ts +4 -0
  101. package/dist/types/exported-related/Skeleton/SkeletonCell.d.ts +2 -1
  102. package/dist/types/exported-related/Skeleton/SkeletonHeaderCell.d.ts +2 -1
  103. package/dist/types/parts/Headers/HeaderCellGroup.d.ts +1 -1
  104. package/dist/types/parts/Headers/buildScreenReaderInstructions.d.ts +19 -0
  105. package/dist/types/parts/Headers/useHeaderResizer.d.ts +1 -0
  106. package/dist/types/parts/HoC/withConditionalDnDSortableContext.d.ts +1 -1
  107. package/dist/types/parts/HoC/withDnDSortableColumnContext.d.ts +1 -1
  108. package/dist/types/parts/HoC/withDnDSortableRowContext.d.ts +1 -1
  109. package/dist/types/parts/Loader.d.ts +1 -1
  110. package/dist/types/parts/Row.d.ts +1 -1
  111. package/dist/types/parts/SkeletonTable.d.ts +1 -1
  112. package/dist/types/parts/TableContent.d.ts +2 -1
  113. package/dist/types/parts/VirtualRowsList.d.ts +2 -1
  114. package/dist/types/react-desc-prop-types.d.ts +11 -0
  115. package/dist/types/styled.d.ts +2 -1
  116. package/package.json +34 -34
  117. package/skills/ds-data-table-slots/SKILL.md +11 -3
  118. package/dist/cjs/exported-related/FilterPopover/useOnClickOutside.js.map +0 -7
  119. package/dist/esm/exported-related/FilterPopover/useOnClickOutside.js +0 -30
  120. package/dist/esm/exported-related/FilterPopover/useOnClickOutside.js.map +0 -7
  121. package/dist/types/exported-related/FilterPopover/useOnClickOutside.d.ts +0 -1
  122. package/dist/types/tests/DSDataTable.exports.test.d.ts +0 -1
  123. package/dist/types/tests/DSDataTable.get-owner-props-arguments-slots.test.d.ts +0 -1
  124. package/dist/types/tests/a11y/aria-label-customization.test.d.ts +0 -1
  125. package/dist/types/tests/a11y/aria-level.test.d.ts +0 -1
  126. package/dist/types/tests/a11y/internally-printed-ids.A11y.test.d.ts +0 -1
  127. package/dist/types/tests/a11y/number-of-cells-and-columnheader.test.d.ts +0 -1
  128. package/dist/types/tests/a11y/out-of-the-box-filters.A11y.test.d.ts +0 -1
  129. package/dist/types/tests/callbacks/editableCell.events.test.d.ts +0 -1
  130. package/dist/types/tests/callbacks/header.events.test.d.ts +0 -1
  131. package/dist/types/tests/callbacks/pagination.events.test.d.ts +0 -1
  132. package/dist/types/tests/callbacks/row.events.test.d.ts +0 -1
  133. package/dist/types/tests/data-testid/DSDataTable.data-testid.test.d.ts +0 -1
  134. package/dist/types/tests/data-testid/Renderers.d.ts +0 -36
  135. package/dist/types/tests/filters/DSDatatable.PUI-17318.test.d.ts +0 -1
  136. package/dist/types/tests/filters/combobox-filter.test.d.ts +0 -1
  137. package/dist/types/tests/filters/currency-range-filter-PUI-12735.test.d.ts +0 -1
  138. package/dist/types/tests/filters/free-text-search-filter.test.d.ts +0 -1
  139. package/dist/types/tests/keyboard/dragAndDropColumns.test.d.ts +0 -1
  140. package/dist/types/tests/keyboard/dragAndDropRows.test.d.ts +0 -1
  141. package/dist/types/tests/keyboard/expandable.test.d.ts +0 -1
  142. package/dist/types/tests/keyboard/grouped.test.d.ts +0 -1
  143. package/dist/types/tests/keyboard/masterDetails.test.d.ts +0 -1
  144. package/dist/types/tests/keyboard/navigation.test.d.ts +0 -1
  145. package/dist/types/tests/keyboard/selectMultiple.test.d.ts +0 -1
  146. package/dist/types/tests/keyboard/selectSingle.test.d.ts +0 -1
  147. package/dist/types/tests/keyboard/sort.test.d.ts +0 -1
  148. package/dist/types/tests/playwright/DSDataTable.ControlledFilterTestRenderer.d.ts +0 -2
  149. package/dist/types/tests/playwright/DSDataTable.ControlledHiddenPanelTestRenderer.d.ts +0 -1
  150. package/dist/types/tests/playwright/DSDataTable.ControlledSortTestRenderer.d.ts +0 -2
  151. package/dist/types/tests/playwright/DSDataTable.slot-contracts-dynamic.test.playwright.d.ts +0 -1
  152. package/dist/types/tests/playwright/DSDataTable.test.playwright.d.ts +0 -1
  153. package/dist/types/tests/playwright/DSDataTableDropIndicatorTestRenderer.d.ts +0 -1
  154. package/dist/types/tests/playwright/GenericExampleTable.d.ts +0 -1
  155. package/dist/types/tests/render/cellStyle.test.d.ts +0 -1
  156. package/dist/types/tests/render/empty-state.test.d.ts +0 -1
  157. package/dist/types/tests/render/selectMultiple.test.d.ts +0 -1
  158. package/dist/types/tests/render/toolbar.test.d.ts +0 -1
  159. package/dist/types/tests/utils/index.d.ts +0 -65
@@ -9,6 +9,8 @@ export declare const DropIndicatorPosition: {
9
9
  readonly After: "after";
10
10
  readonly Inside: "inside";
11
11
  };
12
+ export declare const DEFAULT_MIN_COLUMN_WIDTH = 30;
13
+ export declare const DEFAULT_MAX_COLUMN_WIDTH = 600;
12
14
  export declare const DATA_TESTID: {
13
15
  readonly DATA_TABLE_WRAPPER: "data-table-wrapper";
14
16
  readonly DATA_TABLE_GLOBAL_EXPAND_CELL: "data-table-global-expand-cell";
@@ -15,6 +15,7 @@ export declare const DATA_TABLE_SLOTS: {
15
15
  readonly RESIZER: "resizer";
16
16
  readonly ACTION_CELL: "action-cell";
17
17
  readonly EXPAND_CELL_CONTAINER: "expand-cell-container";
18
+ readonly GLOBAL_CHECKBOX_CONTAINER: "global-checkbox-container";
18
19
  readonly SINGLE_CELL_CONTAINER: "single-cell-container";
19
20
  readonly DRAG_AND_DROP_GRIPPER: "drag-and-drop-gripper";
20
21
  readonly TEXT_EDITABLE_CELL_INPUT: "text-editable-cell-input";
@@ -112,6 +113,7 @@ export declare const DATA_TABLE_DATA_TESTID: {
112
113
  EMPTY_HEADER: "ds-datatable-empty-header";
113
114
  RESIZER: "ds-datatable-resizer";
114
115
  ACTION_CELL: "ds-datatable-action-cell";
116
+ GLOBAL_CHECKBOX_CONTAINER: "ds-datatable-global-checkbox-container";
115
117
  SINGLE_CELL_CONTAINER: "ds-datatable-single-cell-container";
116
118
  TEXT_EDITABLE_CELL_INPUT: "ds-datatable-text-editable-cell-input";
117
119
  FILTER_POPOVER_CONTENT: "ds-datatable-filter-popover-content";
@@ -153,6 +155,7 @@ export declare const DSDataTableSlots: {
153
155
  readonly RESIZER: "resizer";
154
156
  readonly ACTION_CELL: "action-cell";
155
157
  readonly EXPAND_CELL_CONTAINER: "expand-cell-container";
158
+ readonly GLOBAL_CHECKBOX_CONTAINER: "global-checkbox-container";
156
159
  readonly SINGLE_CELL_CONTAINER: "single-cell-container";
157
160
  readonly DRAG_AND_DROP_GRIPPER: "drag-and-drop-gripper";
158
161
  readonly TEXT_EDITABLE_CELL_INPUT: "text-editable-cell-input";
@@ -250,6 +253,7 @@ export declare const DSDataTableDataTestIds: {
250
253
  EMPTY_HEADER: "ds-datatable-empty-header";
251
254
  RESIZER: "ds-datatable-resizer";
252
255
  ACTION_CELL: "ds-datatable-action-cell";
256
+ GLOBAL_CHECKBOX_CONTAINER: "ds-datatable-global-checkbox-container";
253
257
  SINGLE_CELL_CONTAINER: "ds-datatable-single-cell-container";
254
258
  TEXT_EDITABLE_CELL_INPUT: "ds-datatable-text-editable-cell-input";
255
259
  FILTER_POPOVER_CONTENT: "ds-datatable-filter-popover-content";
@@ -1 +1,2 @@
1
- export declare const SkeletonCell: () => import("react/jsx-runtime").JSX.Element;
1
+ import React from 'react';
2
+ export declare const SkeletonCell: () => React.JSX.Element;
@@ -1 +1,2 @@
1
- export declare const SkeletonHeaderCell: () => import("react/jsx-runtime").JSX.Element;
1
+ import React from 'react';
2
+ export declare const SkeletonHeaderCell: () => React.JSX.Element;
@@ -9,5 +9,5 @@ interface HeaderCellGroupCompProps {
9
9
  level?: number;
10
10
  }
11
11
  export declare const HeaderCellGroup: React.FunctionComponent<HeaderCellGroupCompProps>;
12
- export declare const HeaderCellGroupSortable: (props: HeaderCellGroupCompProps) => import("react/jsx-runtime.js").JSX.Element;
12
+ export declare const HeaderCellGroupSortable: (props: HeaderCellGroupCompProps) => React.JSX.Element;
13
13
  export {};
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Builds the screen-reader instructions announced for a column header (via the header's
3
+ * aria-describedby).
4
+ *
5
+ * Draggable, filterable and resizable share the SAME activation — pressing Enter on the focused
6
+ * header reveals and focuses those controls (see useHeaderCellHandlers onKeyDown) — so they are
7
+ * announced together as a single grammatical list with ONE "press the enter key" instruction, for
8
+ * any combination/permutation, instead of repeating the instruction per affordance.
9
+ *
10
+ * Sorting is a distinct interaction (Up / Down arrow keys directly on the header, no Enter), so it
11
+ * gets its own sentence. Wording pending a11y SME review.
12
+ */
13
+ export declare const buildScreenReaderInstructions: ({ colSpan, draggable, filterable, sortable, resizable, }: {
14
+ colSpan: number;
15
+ draggable: boolean;
16
+ filterable: boolean;
17
+ sortable: boolean;
18
+ resizable: boolean;
19
+ }) => string;
@@ -4,6 +4,7 @@ export declare const useHeaderResizer: ({ columnId, innerRef, }: {
4
4
  innerRef: React.MutableRefObject<HTMLInputElement | null>;
5
5
  }) => {
6
6
  isResizing: boolean;
7
+ columnWidth: number | undefined;
7
8
  onResizeStart: () => void;
8
9
  onResizeEnd: () => void;
9
10
  onResizeHandler: (e: MouseEvent | TouchEvent) => void;
@@ -4,5 +4,5 @@ interface Props {
4
4
  items: DSDataTableT.InternalColumn[];
5
5
  isDragOverlay: boolean;
6
6
  }
7
- export declare const withConditionalDnDSortableContext: <T>(Component: React.ComponentType<T>) => (props: T & React.JSX.IntrinsicAttributes & Props) => import("react/jsx-runtime.js").JSX.Element;
7
+ export declare const withConditionalDnDSortableContext: <T>(Component: React.ComponentType<T>) => (props: T & React.JSX.IntrinsicAttributes & Props) => React.JSX.Element;
8
8
  export {};
@@ -2,4 +2,4 @@ import React from 'react';
2
2
  import type { DSDataTableT } from '../../react-desc-prop-types.js';
3
3
  export declare const withDnDSortableColumnContext: <T extends {
4
4
  header: DSDataTableT.InternalColumn;
5
- }>(Component: React.ComponentType<T>) => (props: T) => import("react/jsx-runtime.js").JSX.Element;
5
+ }>(Component: React.ComponentType<T>) => (props: T) => React.JSX.Element;
@@ -2,4 +2,4 @@ import React from 'react';
2
2
  import type { DSDataTableT } from '../../react-desc-prop-types.js';
3
3
  export declare const withDnDSortableRowContext: <T extends {
4
4
  row: DSDataTableT.InternalRow;
5
- }>(Component: React.ComponentType<T>) => (props: T) => import("react/jsx-runtime.js").JSX.Element;
5
+ }>(Component: React.ComponentType<T>) => (props: T) => React.JSX.Element;
@@ -1 +1 @@
1
- export declare const MemoizedLoader: import("react").MemoExoticComponent<() => import("react/jsx-runtime.js").JSX.Element>;
1
+ export declare const MemoizedLoader: import("react").MemoExoticComponent<() => import("react").JSX.Element>;
@@ -11,5 +11,5 @@ declare const RowWithContext: (props: {
11
11
  measureRef?: (el: HTMLElement | null) => void;
12
12
  itemWrapperStyle?: React.CSSProperties;
13
13
  isDragOverlay: boolean;
14
- }) => import("react/jsx-runtime.js").JSX.Element;
14
+ }) => React.JSX.Element;
15
15
  export { RowWithContext };
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  export declare const SkeletonTable: React.MemoExoticComponent<({ height }: {
3
3
  height: string;
4
- }) => import("react/jsx-runtime").JSX.Element>;
4
+ }) => React.JSX.Element>;
@@ -1 +1,2 @@
1
- export declare const TableContent: () => import("react/jsx-runtime.js").JSX.Element;
1
+ import React from 'react';
2
+ export declare const TableContent: () => React.JSX.Element;
@@ -1 +1,2 @@
1
- export declare const VirtualRowsList: () => import("react/jsx-runtime.js").JSX.Element;
1
+ import React from 'react';
2
+ export declare const VirtualRowsList: () => React.JSX.Element;
@@ -16,6 +16,7 @@ export declare namespace DSDataTableT {
16
16
  focusedRowId: string | null;
17
17
  isShiftPressed: boolean;
18
18
  reduxHeaders: Record<string, ReduxHeader>;
19
+ hoveredColumnId: string | null;
19
20
  isHeaderCellDragging: boolean;
20
21
  };
21
22
  export type UseAutoCalculatedT = {
@@ -26,6 +27,9 @@ export declare namespace DSDataTableT {
26
27
  */
27
28
  visibleRangeRef: React.MutableRefObject<Range>;
28
29
  columnHeaderRef: React.MutableRefObject<HTMLDivElement | null>;
30
+ columnHeaderCallbackRef: (node: HTMLDivElement | null) => void;
31
+ /** Sticky header height (px) — drives both useVirtual paddingStart and the scroll container's scroll-padding-top (PUI-18626). */
32
+ headerHeightPx: number;
29
33
  virtualListRef: React.MutableRefObject<HTMLDivElement | null>;
30
34
  flattenedData: InternalRow[];
31
35
  allDataFlattened: InternalRow[];
@@ -46,6 +50,8 @@ export declare namespace DSDataTableT {
46
50
  export type Reducers = {
47
51
  patchHeader: (headerId: string, newHeader: Partial<ReduxHeader>) => void;
48
52
  patchHeaderFilterButtonAndMenu: (headerId: string, value: boolean) => void;
53
+ resetAllHeadersExcept: (exceptHeaderId: string) => void;
54
+ closeFilterMenuIfOpen: (headerId: string) => void;
49
55
  };
50
56
  export type ShuttleInternalStore = ZustandT.InternalStore<InternalAtoms, Selectors, Reducers>;
51
57
  export interface Filter {
@@ -194,6 +200,7 @@ export declare namespace DSDataTableT {
194
200
  canResize?: boolean;
195
201
  isFocuseable?: boolean;
196
202
  textWrap?: 'wrap' | 'wrap-all' | 'truncate';
203
+ pillLabel?: string;
197
204
  ref?: React.MutableRefObject<HTMLTableColElement | null>;
198
205
  required?: boolean;
199
206
  cellStyle?: React.CSSProperties;
@@ -288,9 +295,13 @@ export declare namespace DSDataTableT {
288
295
  setDrilldownRowId: React.Dispatch<React.SetStateAction<string | null>>;
289
296
  focusedRowId: string | null;
290
297
  setFocusedRowId: React.Dispatch<React.SetStateAction<string | null>>;
298
+ hoveredColumnId: string | null;
299
+ setHoveredColumnId: React.Dispatch<React.SetStateAction<string | null>>;
291
300
  reduxHeaders: Record<string, ReduxHeader>;
292
301
  patchHeader: (headerId: string, newHeader: ReduxHeader) => void;
293
302
  patchHeaderFilterButtonAndMenu: (headerId: string, value: boolean) => void;
303
+ resetAllHeadersExcept: (exceptHeaderId: string) => void;
304
+ closeFilterMenuIfOpen: (headerId: string) => void;
294
305
  isShiftPressed: boolean;
295
306
  setIsShiftPressed: React.Dispatch<React.SetStateAction<boolean>>;
296
307
  lastSelected: React.MutableRefObject<number>;
@@ -19,6 +19,7 @@ export declare const StyledTableContentWrapper: import("styled-components").Styl
19
19
  export declare const StyledVirtualListWrapper: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid").DSGridT.Props & import("react").RefAttributes<HTMLDivElement>>, Theme, {
20
20
  gridLayout: string[];
21
21
  totalColumnsWidth: string | number;
22
+ headerHeightPx: number;
22
23
  } & import("@elliemae/ds-system").OwnerInterface & import("@elliemae/ds-system").InnerRefInterface<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid").DSGridT.Props & import("react").RefAttributes<HTMLDivElement>>>, never>;
23
24
  export declare const StyledHeadWrapper: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid").DSGridT.Props & import("react").RefAttributes<HTMLDivElement>>, Theme, {
24
25
  colsLayoutStyle: string;
@@ -40,7 +41,7 @@ export declare const StyledCell: import("styled-components").StyledComponent<"di
40
41
  column: DSDataTableT.InternalColumn;
41
42
  } & import("@elliemae/ds-system").OwnerInterface & import("@elliemae/ds-system").InnerRefInterface<"div">, never>;
42
43
  export declare const StyledCellContent: import("styled-components").StyledComponent<"div", Theme, object & import("@elliemae/ds-system").OwnerInterface & import("@elliemae/ds-system").InnerRefInterface<"div">, never>;
43
- export declare const StyledPencilIcon: import("styled-components").StyledComponent<(rest: import("@elliemae/ds-icons").SvgIconT.Props) => import("react/jsx-runtime.js").JSX.Element, Theme, object & import("@elliemae/ds-system").OwnerInterface & import("@elliemae/ds-system").InnerRefInterface<(rest: import("@elliemae/ds-icons").SvgIconT.Props) => import("react/jsx-runtime.js").JSX.Element>, never>;
44
+ export declare const StyledPencilIcon: import("styled-components").StyledComponent<(rest: import("@elliemae/ds-icons").SvgIconT.Props) => import("react").JSX.Element, Theme, object & import("@elliemae/ds-system").OwnerInterface & import("@elliemae/ds-system").InnerRefInterface<(rest: import("@elliemae/ds-icons").SvgIconT.Props) => import("react").JSX.Element>, never>;
44
45
  export declare const StyledEditableContainer: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid").DSGridT.Props & import("react").RefAttributes<HTMLDivElement>>, Theme, {
45
46
  shouldDisplayEditIcon?: boolean;
46
47
  } & import("@elliemae/ds-system").OwnerInterface & import("@elliemae/ds-system").InnerRefInterface<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid").DSGridT.Props & import("react").RefAttributes<HTMLDivElement>>>, never>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-data-table",
3
- "version": "3.70.0-next.6",
3
+ "version": "3.70.0-next.60",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Data Table",
6
6
  "files": [
@@ -41,46 +41,46 @@
41
41
  "react-virtual": "~2.10.4",
42
42
  "uid": "^2.0.2",
43
43
  "use-onclickoutside": "0.4.1",
44
- "@elliemae/ds-button-v2": "3.70.0-next.6",
45
- "@elliemae/ds-circular-progress-indicator": "3.70.0-next.6",
46
- "@elliemae/ds-drag-and-drop": "3.70.0-next.6",
47
- "@elliemae/ds-dialog": "3.70.0-next.6",
48
- "@elliemae/ds-dropdownmenu-v2": "3.70.0-next.6",
49
- "@elliemae/ds-floating-context": "3.70.0-next.6",
50
- "@elliemae/ds-form-checkbox": "3.70.0-next.6",
51
- "@elliemae/ds-form-date-range-picker": "3.70.0-next.6",
52
- "@elliemae/ds-form-combobox": "3.70.0-next.6",
53
- "@elliemae/ds-form-date-time-picker": "3.70.0-next.6",
54
- "@elliemae/ds-form-helpers-mask-hooks": "3.70.0-next.6",
55
- "@elliemae/ds-form-radio": "3.70.0-next.6",
56
- "@elliemae/ds-grid": "3.70.0-next.6",
57
- "@elliemae/ds-hooks-focus-trap": "3.70.0-next.6",
58
- "@elliemae/ds-menu-button": "3.70.0-next.6",
59
- "@elliemae/ds-form-input-text": "3.70.0-next.6",
60
- "@elliemae/ds-form-layout-blocks": "3.70.0-next.6",
61
- "@elliemae/ds-icons": "3.70.0-next.6",
62
- "@elliemae/ds-pagination": "3.70.0-next.6",
63
- "@elliemae/ds-pills-v2": "3.70.0-next.6",
64
- "@elliemae/ds-props-helpers": "3.70.0-next.6",
65
- "@elliemae/ds-skeleton": "3.70.0-next.6",
66
- "@elliemae/ds-system": "3.70.0-next.6",
67
- "@elliemae/ds-zustand-helpers": "3.70.0-next.6",
68
- "@elliemae/ds-typescript-helpers": "3.70.0-next.6"
44
+ "@elliemae/ds-button-v2": "3.70.0-next.60",
45
+ "@elliemae/ds-circular-progress-indicator": "3.70.0-next.60",
46
+ "@elliemae/ds-drag-and-drop": "3.70.0-next.60",
47
+ "@elliemae/ds-dialog": "3.70.0-next.60",
48
+ "@elliemae/ds-floating-context": "3.70.0-next.60",
49
+ "@elliemae/ds-dropdownmenu-v2": "3.70.0-next.60",
50
+ "@elliemae/ds-form-checkbox": "3.70.0-next.60",
51
+ "@elliemae/ds-form-combobox": "3.70.0-next.60",
52
+ "@elliemae/ds-form-date-range-picker": "3.70.0-next.60",
53
+ "@elliemae/ds-form-date-time-picker": "3.70.0-next.60",
54
+ "@elliemae/ds-form-input-text": "3.70.0-next.60",
55
+ "@elliemae/ds-form-helpers-mask-hooks": "3.70.0-next.60",
56
+ "@elliemae/ds-form-radio": "3.70.0-next.60",
57
+ "@elliemae/ds-form-layout-blocks": "3.70.0-next.60",
58
+ "@elliemae/ds-grid": "3.70.0-next.60",
59
+ "@elliemae/ds-menu-button": "3.70.0-next.60",
60
+ "@elliemae/ds-hooks-focus-trap": "3.70.0-next.60",
61
+ "@elliemae/ds-pagination": "3.70.0-next.60",
62
+ "@elliemae/ds-icons": "3.70.0-next.60",
63
+ "@elliemae/ds-props-helpers": "3.70.0-next.60",
64
+ "@elliemae/ds-pills-v2": "3.70.0-next.60",
65
+ "@elliemae/ds-system": "3.70.0-next.60",
66
+ "@elliemae/ds-skeleton": "3.70.0-next.60",
67
+ "@elliemae/ds-typescript-helpers": "3.70.0-next.60",
68
+ "@elliemae/ds-zustand-helpers": "3.70.0-next.60"
69
69
  },
70
70
  "devDependencies": {
71
71
  "jest": "^30.0.0",
72
- "styled-components": "~5.3.9",
72
+ "styled-components": "~5.3.11",
73
73
  "styled-system": "^5.1.5",
74
- "@elliemae/ds-monorepo-devops": "3.70.0-next.6",
75
- "@elliemae/ds-tabs": "3.70.0-next.6",
76
- "@elliemae/ds-test-utils": "3.70.0-next.6",
77
- "@elliemae/ds-toolbar-v2": "3.70.0-next.6"
74
+ "@elliemae/ds-monorepo-devops": "3.70.0-next.60",
75
+ "@elliemae/ds-tabs": "3.70.0-next.60",
76
+ "@elliemae/ds-toolbar-v2": "3.70.0-next.60",
77
+ "@elliemae/ds-test-utils": "3.70.0-next.60"
78
78
  },
79
79
  "peerDependencies": {
80
- "lodash-es": "^4.17.21",
80
+ "lodash-es": "^4.18.1",
81
81
  "react": "^18.3.1",
82
82
  "react-dom": "^18.3.1",
83
- "styled-components": "~5.3.9",
83
+ "styled-components": "~5.3.11",
84
84
  "styled-system": "^5.1.5"
85
85
  },
86
86
  "publishConfig": {
@@ -96,4 +96,4 @@
96
96
  "build": "cross-env NODE_ENV=production node ../../../scripts/build/build.mjs",
97
97
  "checkDeps": "npx -yes ../../util/ds-codemods check-missing-packages --projectFolderPath=\"./\" --ignorePackagesGlobPattern=\"\" --ignoreFilesGlobPattern=\"**/test-ables/*,**/tests/*\""
98
98
  }
99
- }
99
+ }
@@ -50,9 +50,17 @@ ROOT (dsDatatableRoot) · div
50
50
  │ │ ├── EXPAND_CELL_CONTAINER (dsDatatableExpandCellContainer) · span[role="button"]
51
51
  │ │ │ present in: the expand column header cell only
52
52
  │ │ └── RESIZER (dsDatatableResizer) ← isResizeable=true only
53
- │ │ prop: dsDatatableResizer · wraps DSInputText
54
- │ │ DSInputText root shows dsInputtextRoot · data-dimsum-slot="dsDatatableResizer"
55
- │ │ and data-testid="ds-datatable-resizer" land on the inner input element
53
+ │ │ styled(DSInputText, { slot: RESIZER }) — DSInputText consumes the
54
+ │ │ slot prop internally and does NOT emit data-dimsum-slot="dsDatatableResizer"
55
+ │ │ on any wrapper element. Only the inner <input type="range"> is visible:
56
+ │ │ • inner <input> → data-testid="ds-datatable-resizer"
57
+ │ │ data-dimsum-slot="dsInputtextInput"
58
+ │ │ data-dimsum-parent-slot="dsDatatableResizer"
59
+ │ │ Bounded aria-valuenow/valuemin/valuemax/valuetext + native value/min/max
60
+ │ │ (minWidth/maxWidth, default 30/600px); name via aria-labelledby (sr-only
61
+ │ │ span); operating instruction via aria-describedby. aria-hidden until the
62
+ │ │ header is entered (aria-hidden ⟺ tabIndex -1) so it stays out of the header's
63
+ │ │ announcement. Supports keyboard resizing via arrow keys. See docs → "DataTable — Column Resizer Accessibility".
56
64
  │ │
57
65
  │ ├── LOADER_WRAPPER (dsDatatableLoaderWrapper) · div[role="row"]
58
66
  │ │ present when: isLoading=true (sibling of HEAD_WRAPPER)
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/exported-related/FilterPopover/useOnClickOutside.ts", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useEffect } from 'react';\n\nexport function useOnClickOutside<T extends Node>(ref: T | null, cb: (event: Event) => void): void {\n const cbRef = React.useRef(cb);\n\n useEffect(() => {\n cbRef.current = cb;\n }, [cb]);\n\n useEffect(() => {\n if (!ref) {\n return () => {};\n }\n\n const listener = (event: MouseEvent | TouchEvent) => {\n const target = event.target as Node | null;\n if (!target) return;\n\n if (ref.contains(target)) return;\n\n cbRef.current(event);\n };\n\n document.addEventListener('mousedown', listener, true);\n document.addEventListener('touchstart', listener, true);\n\n return () => {\n document.removeEventListener('mousedown', listener, true);\n document.removeEventListener('touchstart', listener, true);\n };\n }, [ref]);\n}\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAiC;AAE1B,SAAS,kBAAkC,KAAe,IAAkC;AACjG,QAAM,QAAQ,aAAAA,QAAM,OAAO,EAAE;AAE7B,8BAAU,MAAM;AACd,UAAM,UAAU;AAAA,EAClB,GAAG,CAAC,EAAE,CAAC;AAEP,8BAAU,MAAM;AACd,QAAI,CAAC,KAAK;AACR,aAAO,MAAM;AAAA,MAAC;AAAA,IAChB;AAEA,UAAM,WAAW,CAAC,UAAmC;AACnD,YAAM,SAAS,MAAM;AACrB,UAAI,CAAC,OAAQ;AAEb,UAAI,IAAI,SAAS,MAAM,EAAG;AAE1B,YAAM,QAAQ,KAAK;AAAA,IACrB;AAEA,aAAS,iBAAiB,aAAa,UAAU,IAAI;AACrD,aAAS,iBAAiB,cAAc,UAAU,IAAI;AAEtD,WAAO,MAAM;AACX,eAAS,oBAAoB,aAAa,UAAU,IAAI;AACxD,eAAS,oBAAoB,cAAc,UAAU,IAAI;AAAA,IAC3D;AAAA,EACF,GAAG,CAAC,GAAG,CAAC;AACV;",
6
- "names": ["React"]
7
- }
@@ -1,30 +0,0 @@
1
- import * as React from "react";
2
- import React2, { useEffect } from "react";
3
- function useOnClickOutside(ref, cb) {
4
- const cbRef = React2.useRef(cb);
5
- useEffect(() => {
6
- cbRef.current = cb;
7
- }, [cb]);
8
- useEffect(() => {
9
- if (!ref) {
10
- return () => {
11
- };
12
- }
13
- const listener = (event) => {
14
- const target = event.target;
15
- if (!target) return;
16
- if (ref.contains(target)) return;
17
- cbRef.current(event);
18
- };
19
- document.addEventListener("mousedown", listener, true);
20
- document.addEventListener("touchstart", listener, true);
21
- return () => {
22
- document.removeEventListener("mousedown", listener, true);
23
- document.removeEventListener("touchstart", listener, true);
24
- };
25
- }, [ref]);
26
- }
27
- export {
28
- useOnClickOutside
29
- };
30
- //# sourceMappingURL=useOnClickOutside.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/exported-related/FilterPopover/useOnClickOutside.ts"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useEffect } from 'react';\n\nexport function useOnClickOutside<T extends Node>(ref: T | null, cb: (event: Event) => void): void {\n const cbRef = React.useRef(cb);\n\n useEffect(() => {\n cbRef.current = cb;\n }, [cb]);\n\n useEffect(() => {\n if (!ref) {\n return () => {};\n }\n\n const listener = (event: MouseEvent | TouchEvent) => {\n const target = event.target as Node | null;\n if (!target) return;\n\n if (ref.contains(target)) return;\n\n cbRef.current(event);\n };\n\n document.addEventListener('mousedown', listener, true);\n document.addEventListener('touchstart', listener, true);\n\n return () => {\n document.removeEventListener('mousedown', listener, true);\n document.removeEventListener('touchstart', listener, true);\n };\n }, [ref]);\n}\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB,OAAOA,UAAS,iBAAiB;AAE1B,SAAS,kBAAkC,KAAe,IAAkC;AACjG,QAAM,QAAQA,OAAM,OAAO,EAAE;AAE7B,YAAU,MAAM;AACd,UAAM,UAAU;AAAA,EAClB,GAAG,CAAC,EAAE,CAAC;AAEP,YAAU,MAAM;AACd,QAAI,CAAC,KAAK;AACR,aAAO,MAAM;AAAA,MAAC;AAAA,IAChB;AAEA,UAAM,WAAW,CAAC,UAAmC;AACnD,YAAM,SAAS,MAAM;AACrB,UAAI,CAAC,OAAQ;AAEb,UAAI,IAAI,SAAS,MAAM,EAAG;AAE1B,YAAM,QAAQ,KAAK;AAAA,IACrB;AAEA,aAAS,iBAAiB,aAAa,UAAU,IAAI;AACrD,aAAS,iBAAiB,cAAc,UAAU,IAAI;AAEtD,WAAO,MAAM;AACX,eAAS,oBAAoB,aAAa,UAAU,IAAI;AACxD,eAAS,oBAAoB,cAAc,UAAU,IAAI;AAAA,IAC3D;AAAA,EACF,GAAG,CAAC,GAAG,CAAC;AACV;",
6
- "names": ["React"]
7
- }
@@ -1 +0,0 @@
1
- export declare function useOnClickOutside<T extends Node>(ref: T | null, cb: (event: Event) => void): void;
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,36 +0,0 @@
1
- export function Basic({ isResizable }: {
2
- isResizable?: boolean | undefined;
3
- }): import("react/jsx-runtime").JSX.Element;
4
- export function DND(): import("react/jsx-runtime").JSX.Element;
5
- export function EmptyState(): import("react/jsx-runtime").JSX.Element;
6
- export function Expandable(): import("react/jsx-runtime").JSX.Element;
7
- export function Paginated(): import("react/jsx-runtime").JSX.Element;
8
- export function WithToolbar(): import("react/jsx-runtime").JSX.Element;
9
- export function FilterBarDropdownMenuWithProps(props: any): import("react/jsx-runtime").JSX.Element;
10
- export namespace filterBarPropsConfig {
11
- export { FilterBarDropdownMenuWithProps as filterBarAddonRenderer };
12
- }
13
- export const mockColumnsFiltered: ({
14
- Header: string;
15
- accessor: string;
16
- filter: any;
17
- filterOptions?: undefined;
18
- } | {
19
- Header: string;
20
- accessor: string;
21
- filter: any;
22
- filterOptions: {
23
- dsId: string;
24
- type: string;
25
- value: string;
26
- label: string;
27
- }[];
28
- } | {
29
- Header: string;
30
- accessor: string;
31
- filter?: undefined;
32
- filterOptions?: undefined;
33
- })[];
34
- export function Filtered({ customAttributes }: {
35
- customAttributes: any;
36
- }): import("react/jsx-runtime").JSX.Element;
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- export const ControlledFilterTestRenderer: React.FunctionComponent<React.JSX.IntrinsicAttributes>;
2
- import React from 'react';
@@ -1 +0,0 @@
1
- export const HiddenPanelTestRenderer: import("react").FunctionComponent<import("react").JSX.IntrinsicAttributes>;
@@ -1,2 +0,0 @@
1
- export const ControlledSortTestRenderer: React.FunctionComponent<React.JSX.IntrinsicAttributes>;
2
- import React from 'react';
@@ -1 +0,0 @@
1
- export function DropIndicatorTestRenderer(): import("react/jsx-runtime.js").JSX.Element;
@@ -1 +0,0 @@
1
- export function GenericExampleTable(): import("react/jsx-runtime").JSX.Element;
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,65 +0,0 @@
1
- export function genColumns(canSort?: boolean): ({
2
- Header: string;
3
- accessor: string;
4
- canSort: boolean;
5
- } | {
6
- Header: string;
7
- accessor: string;
8
- canSort?: undefined;
9
- })[];
10
- export function genRowsFixId(n: any): {
11
- id: any;
12
- name: string;
13
- position: string;
14
- country: string;
15
- salary: string;
16
- singleDate: string;
17
- dateRange: string;
18
- uid: string;
19
- }[];
20
- export function genRows(n: any): {
21
- id: any;
22
- name: string;
23
- position: string;
24
- country: string;
25
- salary: string;
26
- singleDate: string;
27
- dateRange: string;
28
- uid: string;
29
- }[];
30
- export function genExpandableRows(n: any): {
31
- id: any;
32
- name: string;
33
- position: string;
34
- country: string;
35
- salary: string;
36
- singleDate: string;
37
- dateRange: string;
38
- myUniqueRowAccessor: string;
39
- }[];
40
- export function genMasterDetailRows(n: any): {
41
- id: any;
42
- name: string;
43
- position: string;
44
- country: string;
45
- salary: string;
46
- singleDate: string;
47
- dateRange: string;
48
- myUniqueRowAccessor: string;
49
- tableRowDetails: () => string;
50
- }[];
51
- export function genGroupedRows(n: any): {
52
- dimsumHeaderValue: any;
53
- row_variant_type: string;
54
- subRows: {
55
- id: any;
56
- name: string;
57
- position: string;
58
- country: string;
59
- salary: string;
60
- singleDate: string;
61
- dateRange: string;
62
- uid: string;
63
- }[];
64
- uid: string;
65
- }[];