@elliemae/ds-data-table 3.80.0-next.64 → 3.80.0-next.65

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 (366) hide show
  1. package/dist/cjs/TruncatedTooltipText.js +1 -3
  2. package/dist/cjs/TruncatedTooltipText.js.map +2 -2
  3. package/dist/cjs/addons/Columns/ColumnAction/ColumnAction.js.map +2 -2
  4. package/dist/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +27 -19
  5. package/dist/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js.map +2 -2
  6. package/dist/cjs/addons/Columns/ColumnExpand/ColumnExpand.js +25 -17
  7. package/dist/cjs/addons/Columns/ColumnExpand/ColumnExpand.js.map +2 -2
  8. package/dist/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +24 -14
  9. package/dist/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +2 -2
  10. package/dist/cjs/addons/Filters/Components/CurrencyRangeFilter/CurrencyRangeFilterV2.js.map +2 -2
  11. package/dist/cjs/addons/Filters/Components/CurrencyRangeFilter/index.js.map +2 -2
  12. package/dist/cjs/addons/Filters/Components/DateRangeFilter/DateRangeFilterV2.js.map +2 -2
  13. package/dist/cjs/addons/Filters/Components/DateRangeFilter/index.js.map +2 -2
  14. package/dist/cjs/addons/Filters/Components/DateSwitcherFilter/DateSwitcherFilterV2.js.map +2 -2
  15. package/dist/cjs/addons/Filters/Components/DateSwitcherFilter/index.js.map +2 -2
  16. package/dist/cjs/addons/Filters/Components/NumberRangeFilter/NumberRangeFilterV2.js.map +2 -2
  17. package/dist/cjs/addons/Filters/Components/NumberRangeFilter/index.js.map +2 -2
  18. package/dist/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilter.js.map +2 -2
  19. package/dist/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilterV2.js.map +2 -2
  20. package/dist/cjs/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js.map +2 -2
  21. package/dist/cjs/addons/Filters/Components/SelectFilter/MultiCreatableFilterV2.js.map +2 -2
  22. package/dist/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilter.js.map +2 -2
  23. package/dist/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilterV2.js.map +2 -2
  24. package/dist/cjs/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js.map +2 -2
  25. package/dist/cjs/addons/Filters/Components/SelectFilter/SingleCreatableFilterV2.js.map +2 -2
  26. package/dist/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js.map +2 -2
  27. package/dist/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilterV2.js.map +2 -2
  28. package/dist/cjs/addons/Filters/Components/SingleDateFilter/SingleDateFilterV2.js.map +2 -2
  29. package/dist/cjs/addons/Filters/Components/SingleDateFilter/index.js.map +2 -2
  30. package/dist/cjs/configs/constants.js +1 -3
  31. package/dist/cjs/configs/constants.js.map +2 -2
  32. package/dist/cjs/configs/index.js +0 -1
  33. package/dist/cjs/configs/index.js.map +2 -2
  34. package/dist/cjs/configs/useStore/index.js +1 -7
  35. package/dist/cjs/configs/useStore/index.js.map +2 -2
  36. package/dist/cjs/configs/useTableColsWithAddons.js +2 -2
  37. package/dist/cjs/configs/useTableColsWithAddons.js.map +2 -2
  38. package/dist/cjs/constants/index.js +2 -1
  39. package/dist/cjs/constants/index.js.map +2 -2
  40. package/dist/cjs/exported-related/EditableCell.js +6 -4
  41. package/dist/cjs/exported-related/EditableCell.js.map +2 -2
  42. package/dist/cjs/exported-related/FilterBar/FilterBarDropdownMenu.js +16 -62
  43. package/dist/cjs/exported-related/FilterBar/FilterBarDropdownMenu.js.map +2 -2
  44. package/dist/cjs/exported-related/FilterBar/FilterMenuButton.js +15 -15
  45. package/dist/cjs/exported-related/FilterBar/FilterMenuButton.js.map +2 -2
  46. package/dist/cjs/exported-related/FilterBar/PillsFromDataTableFilters.js.map +2 -2
  47. package/dist/cjs/{parts/RowVariants/types.js → exported-related/FilterBar/dropdownMenuV2Bridge/bridgeTypes.js} +3 -3
  48. package/dist/cjs/exported-related/FilterBar/dropdownMenuV2Bridge/bridgeTypes.js.map +7 -0
  49. package/dist/cjs/exported-related/FilterBar/dropdownMenuV2Bridge/conversionHelpers.js +137 -0
  50. package/dist/cjs/exported-related/FilterBar/dropdownMenuV2Bridge/conversionHelpers.js.map +7 -0
  51. package/dist/cjs/exported-related/FilterBar/dropdownMenuV2Bridge/getHumanReadableWarnings.js +64 -0
  52. package/dist/cjs/exported-related/FilterBar/dropdownMenuV2Bridge/getHumanReadableWarnings.js.map +7 -0
  53. package/dist/cjs/exported-related/FilterBar/dropdownMenuV2Bridge/index.js +113 -0
  54. package/dist/cjs/exported-related/FilterBar/dropdownMenuV2Bridge/index.js.map +7 -0
  55. package/dist/cjs/exported-related/FilterBar/dropdownMenuV2Bridge/types.js.map +7 -0
  56. package/dist/cjs/exported-related/FilterPopover/FilterPopoverV2.js +17 -8
  57. package/dist/cjs/exported-related/FilterPopover/FilterPopoverV2.js.map +2 -2
  58. package/dist/cjs/exported-related/FilterPopover/index.js +11 -2
  59. package/dist/cjs/exported-related/FilterPopover/index.js.map +2 -2
  60. package/dist/cjs/exported-related/FilterPopover/styled.js +11 -0
  61. package/dist/cjs/exported-related/FilterPopover/styled.js.map +2 -2
  62. package/dist/cjs/exported-related/FilterPopover/useGetFilterHandlers.js.map +1 -1
  63. package/dist/cjs/exported-related/FilterTypes.js +10 -0
  64. package/dist/cjs/exported-related/FilterTypes.js.map +2 -2
  65. package/dist/cjs/exported-related/RowRenderer/DefaultRowContentRenderer.js.map +2 -2
  66. package/dist/cjs/exported-related/RowRenderer/index.js +2 -0
  67. package/dist/cjs/exported-related/RowRenderer/index.js.map +2 -2
  68. package/dist/cjs/exported-related/Toolbar/Toolbar.js +36 -22
  69. package/dist/cjs/exported-related/Toolbar/Toolbar.js.map +2 -2
  70. package/dist/cjs/helpers/getIdFromUniqueRowAccessor.js.map +1 -1
  71. package/dist/cjs/helpers/gridLayoutHelpers.js +2 -0
  72. package/dist/cjs/helpers/gridLayoutHelpers.js.map +2 -2
  73. package/dist/cjs/helpers/index.js +1 -0
  74. package/dist/cjs/helpers/index.js.map +2 -2
  75. package/dist/cjs/{parts/internal.js → helpers/smallButtonSize.js} +17 -8
  76. package/dist/cjs/helpers/smallButtonSize.js.map +7 -0
  77. package/dist/cjs/parts/Cells/CellFactory.js.map +2 -2
  78. package/dist/cjs/parts/Cells/index.js +19 -8
  79. package/dist/cjs/parts/Cells/index.js.map +2 -2
  80. package/dist/cjs/parts/DnDHandle.js +4 -2
  81. package/dist/cjs/parts/DnDHandle.js.map +2 -2
  82. package/dist/cjs/parts/DropIndicator.js.map +2 -2
  83. package/dist/cjs/parts/EmptyContent.js +2 -2
  84. package/dist/cjs/parts/EmptyContent.js.map +2 -2
  85. package/dist/cjs/parts/FilterBar/FilterBarMenuButtonAddon.js +88 -0
  86. package/dist/cjs/parts/FilterBar/FilterBarMenuButtonAddon.js.map +7 -0
  87. package/dist/cjs/parts/FilterBar/FiltersBar.js +4 -39
  88. package/dist/cjs/parts/FilterBar/FiltersBar.js.map +2 -2
  89. package/dist/cjs/parts/FilterBar/components/MultiSelectPill.js.map +2 -2
  90. package/dist/cjs/{configs/fixedSizes.js → parts/FilterBar/convertExtraOptions.js} +16 -8
  91. package/dist/cjs/parts/FilterBar/convertExtraOptions.js.map +7 -0
  92. package/dist/cjs/parts/Headers/EmptyChildrenGroup.js +4 -2
  93. package/dist/cjs/parts/Headers/EmptyChildrenGroup.js.map +2 -2
  94. package/dist/cjs/parts/Headers/HeaderCell.js +29 -11
  95. package/dist/cjs/parts/Headers/HeaderCell.js.map +2 -2
  96. package/dist/cjs/parts/Headers/HeaderCellGroup.js +3 -1
  97. package/dist/cjs/parts/Headers/HeaderCellGroup.js.map +2 -2
  98. package/dist/cjs/parts/Headers/HeaderCellTitle.js +5 -1
  99. package/dist/cjs/parts/Headers/HeaderCellTitle.js.map +2 -2
  100. package/dist/cjs/parts/Headers/HeaderResizer.js +3 -1
  101. package/dist/cjs/parts/Headers/HeaderResizer.js.map +2 -2
  102. package/dist/cjs/parts/Headers/useHeaderCellConfig.js.map +2 -2
  103. package/dist/cjs/parts/Headers/useHeaderCellHandlers.js.map +2 -2
  104. package/dist/cjs/parts/Headers/useHeaderResizer.js +2 -2
  105. package/dist/cjs/parts/Headers/useHeaderResizer.js.map +2 -2
  106. package/dist/cjs/parts/HoC/withConditionalDnDSortableContext.js.map +2 -2
  107. package/dist/cjs/parts/RowVariants/RowVariantHeader.js +6 -2
  108. package/dist/cjs/parts/RowVariants/RowVariantHeader.js.map +2 -2
  109. package/dist/cjs/parts/SkeletonTable.js +1 -1
  110. package/dist/cjs/parts/SkeletonTable.js.map +2 -2
  111. package/dist/cjs/parts/SortByCaret.js +0 -1
  112. package/dist/cjs/parts/SortByCaret.js.map +2 -2
  113. package/dist/cjs/react-desc-prop-types.js +75 -21
  114. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  115. package/dist/cjs/styled.js +7 -1
  116. package/dist/cjs/styled.js.map +2 -2
  117. package/dist/cjs/tentative-typescript-testing-for-unsafe-type/README.md +9 -0
  118. package/dist/cjs/tentative-typescript-testing-for-unsafe-type/filter-bar-props.js +71 -0
  119. package/dist/cjs/tentative-typescript-testing-for-unsafe-type/filter-bar-props.js.map +7 -0
  120. package/dist/cjs/tentative-typescript-testing-for-unsafe-type/get-row-variant.js +38 -0
  121. package/dist/cjs/tentative-typescript-testing-for-unsafe-type/get-row-variant.js.map +7 -0
  122. package/dist/cjs/{parts/FilterBar/index.js → tentative-typescript-testing-for-unsafe-type/sizes.js} +10 -12
  123. package/dist/cjs/tentative-typescript-testing-for-unsafe-type/sizes.js.map +7 -0
  124. package/dist/cjs/tentative-typescript-testing-for-unsafe-type/slot-props.js +134 -0
  125. package/dist/cjs/tentative-typescript-testing-for-unsafe-type/slot-props.js.map +7 -0
  126. package/dist/esm/TruncatedTooltipText.js +2 -8
  127. package/dist/esm/TruncatedTooltipText.js.map +2 -2
  128. package/dist/esm/addons/Columns/ColumnAction/ColumnAction.js.map +2 -2
  129. package/dist/esm/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +28 -20
  130. package/dist/esm/addons/Columns/ColumnDragHandle/ColumnDragHandle.js.map +2 -2
  131. package/dist/esm/addons/Columns/ColumnExpand/ColumnExpand.js +25 -17
  132. package/dist/esm/addons/Columns/ColumnExpand/ColumnExpand.js.map +2 -2
  133. package/dist/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +24 -14
  134. package/dist/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +2 -2
  135. package/dist/esm/addons/Filters/Components/CurrencyRangeFilter/CurrencyRangeFilterV2.js.map +2 -2
  136. package/dist/esm/addons/Filters/Components/CurrencyRangeFilter/index.js.map +2 -2
  137. package/dist/esm/addons/Filters/Components/DateRangeFilter/DateRangeFilterV2.js.map +2 -2
  138. package/dist/esm/addons/Filters/Components/DateRangeFilter/index.js.map +2 -2
  139. package/dist/esm/addons/Filters/Components/DateSwitcherFilter/DateSwitcherFilterV2.js.map +2 -2
  140. package/dist/esm/addons/Filters/Components/DateSwitcherFilter/index.js.map +2 -2
  141. package/dist/esm/addons/Filters/Components/NumberRangeFilter/NumberRangeFilterV2.js.map +2 -2
  142. package/dist/esm/addons/Filters/Components/NumberRangeFilter/index.js.map +2 -2
  143. package/dist/esm/addons/Filters/Components/SelectFilter/BaseSelectFilter.js.map +2 -2
  144. package/dist/esm/addons/Filters/Components/SelectFilter/BaseSelectFilterV2.js.map +2 -2
  145. package/dist/esm/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js.map +2 -2
  146. package/dist/esm/addons/Filters/Components/SelectFilter/MultiCreatableFilterV2.js.map +2 -2
  147. package/dist/esm/addons/Filters/Components/SelectFilter/MultiSelectFilter.js.map +2 -2
  148. package/dist/esm/addons/Filters/Components/SelectFilter/MultiSelectFilterV2.js.map +2 -2
  149. package/dist/esm/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js.map +2 -2
  150. package/dist/esm/addons/Filters/Components/SelectFilter/SingleCreatableFilterV2.js.map +2 -2
  151. package/dist/esm/addons/Filters/Components/SelectFilter/SingleSelectFilter.js.map +2 -2
  152. package/dist/esm/addons/Filters/Components/SelectFilter/SingleSelectFilterV2.js.map +2 -2
  153. package/dist/esm/addons/Filters/Components/SingleDateFilter/SingleDateFilterV2.js.map +2 -2
  154. package/dist/esm/addons/Filters/Components/SingleDateFilter/index.js.map +2 -2
  155. package/dist/esm/configs/constants.js +1 -3
  156. package/dist/esm/configs/constants.js.map +2 -2
  157. package/dist/esm/configs/index.js +0 -1
  158. package/dist/esm/configs/index.js.map +2 -2
  159. package/dist/esm/configs/useStore/index.js +2 -8
  160. package/dist/esm/configs/useStore/index.js.map +2 -2
  161. package/dist/esm/configs/useTableColsWithAddons.js +2 -2
  162. package/dist/esm/configs/useTableColsWithAddons.js.map +2 -2
  163. package/dist/esm/constants/index.js +2 -1
  164. package/dist/esm/constants/index.js.map +2 -2
  165. package/dist/esm/exported-related/EditableCell.js +6 -4
  166. package/dist/esm/exported-related/EditableCell.js.map +2 -2
  167. package/dist/esm/exported-related/FilterBar/FilterBarDropdownMenu.js +17 -63
  168. package/dist/esm/exported-related/FilterBar/FilterBarDropdownMenu.js.map +2 -2
  169. package/dist/esm/exported-related/FilterBar/FilterMenuButton.js +16 -16
  170. package/dist/esm/exported-related/FilterBar/FilterMenuButton.js.map +2 -2
  171. package/dist/esm/exported-related/FilterBar/PillsFromDataTableFilters.js.map +2 -2
  172. package/dist/esm/exported-related/FilterBar/dropdownMenuV2Bridge/bridgeTypes.js +2 -0
  173. package/dist/esm/{parts/RowVariants/types.js.map → exported-related/FilterBar/dropdownMenuV2Bridge/bridgeTypes.js.map} +1 -1
  174. package/dist/esm/exported-related/FilterBar/dropdownMenuV2Bridge/conversionHelpers.js +107 -0
  175. package/dist/esm/exported-related/FilterBar/dropdownMenuV2Bridge/conversionHelpers.js.map +7 -0
  176. package/dist/esm/exported-related/FilterBar/dropdownMenuV2Bridge/getHumanReadableWarnings.js +34 -0
  177. package/dist/esm/exported-related/FilterBar/dropdownMenuV2Bridge/getHumanReadableWarnings.js.map +7 -0
  178. package/dist/esm/exported-related/FilterBar/dropdownMenuV2Bridge/index.js +89 -0
  179. package/dist/esm/exported-related/FilterBar/dropdownMenuV2Bridge/index.js.map +7 -0
  180. package/dist/esm/exported-related/{FilterPopover → FilterBar/dropdownMenuV2Bridge}/types.js.map +1 -1
  181. package/dist/esm/exported-related/FilterPopover/FilterPopoverV2.js +17 -8
  182. package/dist/esm/exported-related/FilterPopover/FilterPopoverV2.js.map +2 -2
  183. package/dist/esm/exported-related/FilterPopover/index.js +11 -2
  184. package/dist/esm/exported-related/FilterPopover/index.js.map +2 -2
  185. package/dist/esm/exported-related/FilterPopover/styled.js +11 -0
  186. package/dist/esm/exported-related/FilterPopover/styled.js.map +2 -2
  187. package/dist/esm/exported-related/FilterPopover/useGetFilterHandlers.js.map +1 -1
  188. package/dist/esm/exported-related/FilterTypes.js +10 -0
  189. package/dist/esm/exported-related/FilterTypes.js.map +2 -2
  190. package/dist/esm/exported-related/RowRenderer/DefaultRowContentRenderer.js.map +2 -2
  191. package/dist/esm/exported-related/RowRenderer/index.js +3 -1
  192. package/dist/esm/exported-related/RowRenderer/index.js.map +2 -2
  193. package/dist/esm/exported-related/Toolbar/Toolbar.js +36 -22
  194. package/dist/esm/exported-related/Toolbar/Toolbar.js.map +2 -2
  195. package/dist/esm/helpers/getIdFromUniqueRowAccessor.js.map +1 -1
  196. package/dist/esm/helpers/gridLayoutHelpers.js +2 -0
  197. package/dist/esm/helpers/gridLayoutHelpers.js.map +2 -2
  198. package/dist/esm/helpers/index.js +1 -0
  199. package/dist/esm/helpers/index.js.map +2 -2
  200. package/dist/esm/helpers/smallButtonSize.js +17 -0
  201. package/dist/esm/helpers/smallButtonSize.js.map +7 -0
  202. package/dist/esm/parts/Cells/CellFactory.js.map +2 -2
  203. package/dist/esm/parts/Cells/index.js +19 -8
  204. package/dist/esm/parts/Cells/index.js.map +2 -2
  205. package/dist/esm/parts/DnDHandle.js +5 -3
  206. package/dist/esm/parts/DnDHandle.js.map +2 -2
  207. package/dist/esm/parts/DropIndicator.js.map +2 -2
  208. package/dist/esm/parts/EmptyContent.js +2 -2
  209. package/dist/esm/parts/EmptyContent.js.map +2 -2
  210. package/dist/esm/parts/FilterBar/FilterBarMenuButtonAddon.js +58 -0
  211. package/dist/esm/parts/FilterBar/FilterBarMenuButtonAddon.js.map +7 -0
  212. package/dist/esm/parts/FilterBar/FiltersBar.js +5 -40
  213. package/dist/esm/parts/FilterBar/FiltersBar.js.map +2 -2
  214. package/dist/esm/parts/FilterBar/components/MultiSelectPill.js.map +2 -2
  215. package/dist/esm/parts/FilterBar/convertExtraOptions.js +16 -0
  216. package/dist/esm/parts/FilterBar/convertExtraOptions.js.map +7 -0
  217. package/dist/esm/parts/Headers/EmptyChildrenGroup.js +4 -2
  218. package/dist/esm/parts/Headers/EmptyChildrenGroup.js.map +2 -2
  219. package/dist/esm/parts/Headers/HeaderCell.js +29 -11
  220. package/dist/esm/parts/Headers/HeaderCell.js.map +2 -2
  221. package/dist/esm/parts/Headers/HeaderCellGroup.js +4 -2
  222. package/dist/esm/parts/Headers/HeaderCellGroup.js.map +2 -2
  223. package/dist/esm/parts/Headers/HeaderCellTitle.js +5 -1
  224. package/dist/esm/parts/Headers/HeaderCellTitle.js.map +2 -2
  225. package/dist/esm/parts/Headers/HeaderResizer.js +4 -2
  226. package/dist/esm/parts/Headers/HeaderResizer.js.map +2 -2
  227. package/dist/esm/parts/Headers/useHeaderCellConfig.js.map +2 -2
  228. package/dist/esm/parts/Headers/useHeaderCellHandlers.js.map +2 -2
  229. package/dist/esm/parts/Headers/useHeaderResizer.js +3 -2
  230. package/dist/esm/parts/Headers/useHeaderResizer.js.map +2 -2
  231. package/dist/esm/parts/HoC/withConditionalDnDSortableContext.js.map +2 -2
  232. package/dist/esm/parts/RowVariants/RowVariantHeader.js +7 -3
  233. package/dist/esm/parts/RowVariants/RowVariantHeader.js.map +2 -2
  234. package/dist/esm/parts/SkeletonTable.js +1 -1
  235. package/dist/esm/parts/SkeletonTable.js.map +2 -2
  236. package/dist/esm/parts/SortByCaret.js +0 -1
  237. package/dist/esm/parts/SortByCaret.js.map +2 -2
  238. package/dist/esm/react-desc-prop-types.js +75 -21
  239. package/dist/esm/react-desc-prop-types.js.map +2 -2
  240. package/dist/esm/styled.js +8 -2
  241. package/dist/esm/styled.js.map +2 -2
  242. package/dist/esm/tentative-typescript-testing-for-unsafe-type/README.md +9 -0
  243. package/dist/esm/tentative-typescript-testing-for-unsafe-type/filter-bar-props.js +48 -0
  244. package/dist/esm/tentative-typescript-testing-for-unsafe-type/filter-bar-props.js.map +7 -0
  245. package/dist/esm/tentative-typescript-testing-for-unsafe-type/get-row-variant.js +15 -0
  246. package/dist/esm/tentative-typescript-testing-for-unsafe-type/get-row-variant.js.map +7 -0
  247. package/dist/esm/tentative-typescript-testing-for-unsafe-type/sizes.js +11 -0
  248. package/dist/esm/tentative-typescript-testing-for-unsafe-type/sizes.js.map +7 -0
  249. package/dist/esm/tentative-typescript-testing-for-unsafe-type/slot-props.js +111 -0
  250. package/dist/esm/tentative-typescript-testing-for-unsafe-type/slot-props.js.map +7 -0
  251. package/dist/types/TruncatedTooltipText.d.ts +2 -7
  252. package/dist/types/addons/Columns/ColumnAction/ColumnAction.d.ts +1 -3
  253. package/dist/types/addons/Filters/Components/CurrencyRangeFilter/CurrencyRangeFilterV2.d.ts +1 -6
  254. package/dist/types/addons/Filters/Components/CurrencyRangeFilter/index.d.ts +1 -6
  255. package/dist/types/addons/Filters/Components/DateRangeFilter/DateRangeFilterV2.d.ts +1 -6
  256. package/dist/types/addons/Filters/Components/DateRangeFilter/index.d.ts +1 -6
  257. package/dist/types/addons/Filters/Components/DateSwitcherFilter/DateSwitcherFilterV2.d.ts +1 -7
  258. package/dist/types/addons/Filters/Components/DateSwitcherFilter/index.d.ts +1 -7
  259. package/dist/types/addons/Filters/Components/NumberRangeFilter/NumberRangeFilterV2.d.ts +1 -6
  260. package/dist/types/addons/Filters/Components/NumberRangeFilter/index.d.ts +1 -6
  261. package/dist/types/addons/Filters/Components/SelectFilter/BaseSelectFilter.d.ts +1 -9
  262. package/dist/types/addons/Filters/Components/SelectFilter/BaseSelectFilterV2.d.ts +1 -9
  263. package/dist/types/addons/Filters/Components/SelectFilter/MultiCreatableFilter.d.ts +1 -4
  264. package/dist/types/addons/Filters/Components/SelectFilter/MultiCreatableFilterV2.d.ts +1 -4
  265. package/dist/types/addons/Filters/Components/SelectFilter/MultiSelectFilter.d.ts +1 -4
  266. package/dist/types/addons/Filters/Components/SelectFilter/MultiSelectFilterV2.d.ts +1 -4
  267. package/dist/types/addons/Filters/Components/SelectFilter/SingleCreatableFilter.d.ts +1 -4
  268. package/dist/types/addons/Filters/Components/SelectFilter/SingleCreatableFilterV2.d.ts +1 -4
  269. package/dist/types/addons/Filters/Components/SelectFilter/SingleSelectFilter.d.ts +1 -4
  270. package/dist/types/addons/Filters/Components/SelectFilter/SingleSelectFilterV2.d.ts +1 -4
  271. package/dist/types/addons/Filters/Components/SingleDateFilter/SingleDateFilterV2.d.ts +1 -3
  272. package/dist/types/addons/Filters/Components/SingleDateFilter/index.d.ts +1 -3
  273. package/dist/types/configs/constants.d.ts +0 -1
  274. package/dist/types/configs/index.d.ts +0 -1
  275. package/dist/types/configs/useStore/index.d.ts +1 -2
  276. package/dist/types/constants/index.d.ts +4 -0
  277. package/dist/types/exported-related/FilterBar/FilterBarDropdownMenu.d.ts +8 -7
  278. package/dist/types/exported-related/FilterBar/FilterMenuButton.d.ts +2 -19
  279. package/dist/types/exported-related/FilterBar/PillsFromDataTableFilters.d.ts +1 -10
  280. package/dist/types/exported-related/FilterBar/dropdownMenuV2Bridge/bridgeTypes.d.ts +22 -0
  281. package/dist/types/exported-related/FilterBar/dropdownMenuV2Bridge/conversionHelpers.d.ts +78 -0
  282. package/dist/types/exported-related/FilterBar/dropdownMenuV2Bridge/getHumanReadableWarnings.d.ts +7 -0
  283. package/dist/types/exported-related/FilterBar/dropdownMenuV2Bridge/index.d.ts +14 -0
  284. package/dist/types/exported-related/FilterBar/dropdownMenuV2Bridge/types.d.ts +60 -0
  285. package/dist/types/exported-related/FilterPopover/FilterPopoverV2.d.ts +2 -2
  286. package/dist/types/exported-related/FilterPopover/index.d.ts +2 -2
  287. package/dist/types/exported-related/FilterPopover/styled.d.ts +3 -1
  288. package/dist/types/exported-related/FilterPopover/useGetFilterHandlers.d.ts +2 -2
  289. package/dist/types/exported-related/FilterTypes.d.ts +10 -0
  290. package/dist/types/exported-related/RowRenderer/DefaultRowContentRenderer.d.ts +2 -2
  291. package/dist/types/exported-related/RowRenderer/index.d.ts +1 -16
  292. package/dist/types/exported-related/Toolbar/Toolbar.d.ts +1 -7
  293. package/dist/types/helpers/gridLayoutHelpers.d.ts +1 -0
  294. package/dist/types/helpers/index.d.ts +1 -0
  295. package/dist/types/helpers/smallButtonSize.d.ts +4 -0
  296. package/dist/types/parts/Cells/CellFactory.d.ts +1 -10
  297. package/dist/types/parts/DnDHandle.d.ts +4 -0
  298. package/dist/types/parts/DropIndicator.d.ts +1 -7
  299. package/dist/types/parts/FilterBar/FilterBarMenuButtonAddon.d.ts +14 -0
  300. package/dist/types/parts/FilterBar/components/MultiSelectPill.d.ts +1 -4
  301. package/dist/types/parts/FilterBar/convertExtraOptions.d.ts +8 -0
  302. package/dist/types/parts/Headers/EmptyChildrenGroup.d.ts +3 -1
  303. package/dist/types/parts/Headers/HeaderCell.d.ts +1 -7
  304. package/dist/types/parts/Headers/HeaderCellTitle.d.ts +1 -8
  305. package/dist/types/parts/Headers/useHeaderCellConfig.d.ts +1 -15
  306. package/dist/types/parts/Headers/useHeaderCellHandlers.d.ts +1 -22
  307. package/dist/types/parts/HoC/withConditionalDnDSortableContext.d.ts +1 -6
  308. package/dist/types/parts/SkeletonTable.d.ts +1 -1
  309. package/dist/types/react-desc-prop-types.d.ts +305 -6
  310. package/package.json +29 -31
  311. package/skills/ds-data-table-boundaries/SKILL.md +50 -43
  312. package/skills/ds-data-table-columns/SKILL.md +17 -11
  313. package/skills/ds-data-table-expandable/SKILL.md +21 -13
  314. package/skills/ds-data-table-feedback/SKILL.md +9 -9
  315. package/skills/ds-data-table-filtering/SKILL.md +32 -11
  316. package/skills/ds-data-table-health-check/SKILL.md +7 -7
  317. package/skills/ds-data-table-migration/SKILL.md +8 -7
  318. package/skills/ds-data-table-pagination/SKILL.md +6 -6
  319. package/skills/ds-data-table-row-variants/SKILL.md +34 -22
  320. package/skills/ds-data-table-selection/SKILL.md +23 -25
  321. package/skills/ds-data-table-setup/SKILL.md +31 -13
  322. package/skills/ds-data-table-slots/SKILL.md +55 -25
  323. package/dist/cjs/addons/Editables/DateEditableCell/DateEditableCell.js +0 -63
  324. package/dist/cjs/addons/Editables/DateEditableCell/DateEditableCell.js.map +0 -7
  325. package/dist/cjs/configs/fixedSizes.js.map +0 -7
  326. package/dist/cjs/configs/useInternalStateConfig.js +0 -80
  327. package/dist/cjs/configs/useInternalStateConfig.js.map +0 -7
  328. package/dist/cjs/configs/useValidateProps.js +0 -47
  329. package/dist/cjs/configs/useValidateProps.js.map +0 -7
  330. package/dist/cjs/exported-related/FilterPopover/types.js.map +0 -7
  331. package/dist/cjs/parts/Cells/Cell.js +0 -126
  332. package/dist/cjs/parts/Cells/Cell.js.map +0 -7
  333. package/dist/cjs/parts/FilterBar/DeprecatedDropdown.js +0 -85
  334. package/dist/cjs/parts/FilterBar/DeprecatedDropdown.js.map +0 -7
  335. package/dist/cjs/parts/FilterBar/index.js.map +0 -7
  336. package/dist/cjs/parts/RowVariants/types.js.map +0 -7
  337. package/dist/cjs/parts/internal.js.map +0 -7
  338. package/dist/esm/addons/Editables/DateEditableCell/DateEditableCell.js +0 -33
  339. package/dist/esm/addons/Editables/DateEditableCell/DateEditableCell.js.map +0 -7
  340. package/dist/esm/configs/fixedSizes.js +0 -8
  341. package/dist/esm/configs/fixedSizes.js.map +0 -7
  342. package/dist/esm/configs/useInternalStateConfig.js +0 -50
  343. package/dist/esm/configs/useInternalStateConfig.js.map +0 -7
  344. package/dist/esm/configs/useValidateProps.js +0 -17
  345. package/dist/esm/configs/useValidateProps.js.map +0 -7
  346. package/dist/esm/parts/Cells/Cell.js +0 -96
  347. package/dist/esm/parts/Cells/Cell.js.map +0 -7
  348. package/dist/esm/parts/FilterBar/DeprecatedDropdown.js +0 -55
  349. package/dist/esm/parts/FilterBar/DeprecatedDropdown.js.map +0 -7
  350. package/dist/esm/parts/FilterBar/index.js +0 -6
  351. package/dist/esm/parts/FilterBar/index.js.map +0 -7
  352. package/dist/esm/parts/RowVariants/types.js +0 -2
  353. package/dist/esm/parts/internal.js +0 -8
  354. package/dist/esm/parts/internal.js.map +0 -7
  355. package/dist/types/addons/Editables/DateEditableCell/DateEditableCell.d.ts +0 -7
  356. package/dist/types/configs/fixedSizes.d.ts +0 -3
  357. package/dist/types/configs/useInternalStateConfig.d.ts +0 -12
  358. package/dist/types/configs/useValidateProps.d.ts +0 -2
  359. package/dist/types/exported-related/FilterPopover/types.d.ts +0 -33
  360. package/dist/types/parts/Cells/Cell.d.ts +0 -12
  361. package/dist/types/parts/FilterBar/DeprecatedDropdown.d.ts +0 -13
  362. package/dist/types/parts/FilterBar/index.d.ts +0 -1
  363. package/dist/types/parts/RowVariants/types.d.ts +0 -19
  364. package/dist/types/parts/internal.d.ts +0 -2
  365. /package/dist/cjs/exported-related/{FilterPopover → FilterBar/dropdownMenuV2Bridge}/types.js +0 -0
  366. /package/dist/esm/exported-related/{FilterPopover → FilterBar/dropdownMenuV2Bridge}/types.js +0 -0
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  export declare const SkeletonTable: React.MemoExoticComponent<({ height }: {
3
- height: string;
3
+ height: string | number;
4
4
  }) => React.JSX.Element>;
@@ -5,7 +5,10 @@ import { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';
5
5
  import type { DnDKitTree, useSortable } from '@elliemae/ds-drag-and-drop';
6
6
  import type { DSControlledCheckboxT } from '@elliemae/ds-form-checkbox';
7
7
  import type { DSComboboxT } from '@elliemae/ds-form-combobox';
8
- import { type DSPropTypesSchema, type ValidationMap } from '@elliemae/ds-props-helpers';
8
+ import type { DSHookFloatingContextT } from '@elliemae/ds-floating-context';
9
+ import type { DSMenuButtonT } from '@elliemae/ds-menu-button';
10
+ import { type DSPropTypesSchema, type ValidationMap, type XstyledProps } from '@elliemae/ds-props-helpers';
11
+ import type { DSDropdownMenuT } from './exported-related/FilterBar/dropdownMenuV2Bridge/types.js';
9
12
  import { type DropIndicatorPosition, ColsLayoutStyle } from './configs/constants.js';
10
13
  import { DSDataTableName, DSDataTableSlots } from './constants/index.js';
11
14
  export declare namespace DSDataTableT {
@@ -171,7 +174,7 @@ export declare namespace DSDataTableT {
171
174
  pageDetails?: string[];
172
175
  pageDetailsTitle?: string;
173
176
  }
174
- export type RowVariant = 'ds-header-group-row' | 'ds-primary-row' | 'ds-secondary-row';
177
+ export type RowVariant = 'ds-header-group-row' | 'ds-primary-row' | 'ds-secondary-row' | 'ds-compact-primary-row' | 'ds-compact-secondary-row' | 'ds-skeleton-row';
175
178
  export interface RenderRowActionsConfig {
176
179
  columnWidth: number;
177
180
  renderer: React.ComponentType<CellProps>;
@@ -190,12 +193,22 @@ export declare namespace DSDataTableT {
190
193
  [key: string]: unknown;
191
194
  id: string;
192
195
  subRows?: Row[];
196
+ /**
197
+ * @deprecated Master-detail is officially deprecated: do not use it in new code.
198
+ */
193
199
  tableRowDetails?: React.ComponentType<DetailsProps>;
194
200
  dimsumHeaderValue?: string;
195
201
  }
196
202
  export interface EditableCellProps<T extends HTMLElement = HTMLElement> extends CellProps<T> {
197
203
  DefaultCellRender: JSX.Element;
198
204
  }
205
+ /**
206
+ * The resizer works in pixels: a column `width` is a number of pixels or a px string (`'200px'`). Any other string
207
+ * (`'20%'`, `'12rem'`) is a CSS size the table renders, but the resizer does not support it. The types do not
208
+ * enforce it: the documentation states it.
209
+ */
210
+ export type ResizeableColumnWidth = number | `${number}px` | undefined;
211
+ export type NonResizeableColumnWidth = number | string | undefined;
199
212
  export interface Column {
200
213
  id?: string;
201
214
  Header: string | React.ComponentType<HeaderProps>;
@@ -209,7 +222,7 @@ export declare namespace DSDataTableT {
209
222
  Cell?: React.ComponentType<CellRendererProps>;
210
223
  editable?: string | React.ComponentType<EditableCellProps>;
211
224
  disableDnD?: boolean;
212
- width?: number;
225
+ width?: NonResizeableColumnWidth | ResizeableColumnWidth;
213
226
  minWidth?: number;
214
227
  maxWidth?: number;
215
228
  padding?: number;
@@ -330,8 +343,8 @@ export declare namespace DSDataTableT {
330
343
  setIsHeaderCellDragging: React.Dispatch<React.SetStateAction<boolean>>;
331
344
  }
332
345
  export interface DefaultProps {
333
- height: string;
334
- width: string;
346
+ height: string | number;
347
+ width: string | number;
335
348
  renderRowActions: false | RenderRowActionsConfig;
336
349
  getRowVariant: (row: InternalRow, defaultCellRenderer: React.ComponentType<{
337
350
  row: DSDataTableT.InternalRow;
@@ -392,7 +405,7 @@ export declare namespace DSDataTableT {
392
405
  uniqueRowAccessor?: UniqueRowAccessorType;
393
406
  cellRendererProps?: Record<string, unknown>;
394
407
  selection?: Selection;
395
- groupedRowsRenderHeader?: ((dimsumHeaderValue: string | undefined, subRows: Row[] | undefined) => JSX.Element) | string;
408
+ groupedRowsRenderHeader?: (dimsumHeaderValue: string | undefined, subRows: Row[] | undefined) => React.ReactNode;
396
409
  filterBarProps?: {
397
410
  filterBarAddonRenderer?: React.ComponentType<{
398
411
  innerRef: React.MutableRefObject<HTMLButtonElement | null>;
@@ -435,7 +448,293 @@ export declare namespace DSDataTableT {
435
448
  }
436
449
  export type Props = PropsT<DefaultProps, RequiredProps, OptionalProps>;
437
450
  export type InternalProps = InternalPropsT<DefaultProps, RequiredProps, OptionalProps>;
451
+ /**
452
+ * Arguments the DataTable hands to the function form of a slot prop (`dsDatatableXxx={(args) => ({ ... })}`).
453
+ * Slots that repeat per row, cell or column receive that instance; the other slots receive no arguments.
454
+ *
455
+ * Arguments are objects whose shape we own, with named keys (`{ row }`, `{ cell }`, `{ columnId }`): we own the fact
456
+ * that `row` is there, not the shape of the row, and new keys can be added later without breaking anyone.
457
+ * Legacy exception: `dsDatatableRow` and `dsDatatableCellsContainer` receive the row itself, and `dsDatatableCell`,
458
+ * `dsDatatableCellContent`, `dsDatatableEditableContainer` and `dsDatatableTextEditableCellInput` receive the cell
459
+ * itself. They shipped before this rule; moving them to `{ row }` / `{ cell }` is a breaking change.
460
+ */
461
+ export interface HeaderSlotArguments {
462
+ columnId: string;
463
+ firstFocuseableColumnHeaderId: string | undefined;
464
+ }
465
+ export interface RowSlotArguments {
466
+ row: InternalRow;
467
+ }
468
+ export interface CellSlotArguments {
469
+ cell: Cell;
470
+ }
471
+ export interface ColumnSlotArguments {
472
+ columnId: string;
473
+ }
474
+ export interface ExpandSlotArguments {
475
+ isGlobal: boolean;
476
+ }
477
+ /**
478
+ * One shape for a slot that wraps several kinds of control: the keys that describe the control at the render site
479
+ * are filled, the others are not there. `dsDatatableDragAndDropGripper` is a row handle (`row`) or a column header
480
+ * handle (`columnId`).
481
+ */
482
+ export interface DragAndDropGripperSlotArguments {
483
+ row?: InternalRow;
484
+ columnId?: string;
485
+ }
486
+ /**
487
+ * One shape for the focus wrapper of the controls of the table. At the header drag handle `columnId` and
488
+ * `firstFocuseableColumnHeaderId` are filled, at the expand carets `isGlobal`, at the row drag handle `row`.
489
+ */
490
+ export interface FocusWithinSlotArguments {
491
+ row?: InternalRow;
492
+ columnId?: string;
493
+ firstFocuseableColumnHeaderId?: string;
494
+ isGlobal?: boolean;
495
+ }
496
+ export type SlotFunctionArguments = {
497
+ dsDatatableRoot: () => object;
498
+ dsDatatableContentWrapper: () => object;
499
+ dsDatatableTableWrapper: () => object;
500
+ dsDatatablePaginationWrapper: () => object;
501
+ dsDatatableTableContentWrapper: () => object;
502
+ dsDatatableVirtualListWrapper: () => object;
503
+ dsDatatableHeadWrapper: () => object;
504
+ dsDatatableHeadTr: () => object;
505
+ dsDatatableHeadTh: (args: HeaderSlotArguments) => object;
506
+ dsDatatableHeadRightIconsWrapper: (args: HeaderSlotArguments) => object;
507
+ dsDatatableHeaderCellWrapper: (args: ColumnSlotArguments) => object;
508
+ dsDatatableEmptyHeader: (args: ColumnSlotArguments) => object;
509
+ dsDatatableResizer: (args: ColumnSlotArguments) => object;
510
+ dsDatatableActionCell: (args: RowSlotArguments) => object;
511
+ dsDatatableExpandCellContainer: (args: ExpandSlotArguments) => object;
512
+ dsDatatableGlobalCheckboxContainer: () => object;
513
+ dsDatatableSingleCellContainer: (args: RowSlotArguments) => object;
514
+ dsDatatableDragAndDropGripper: (args: DragAndDropGripperSlotArguments) => object;
515
+ dsDatatableTextEditableCellInput: (args: Cell) => object;
516
+ dsDatatableFilterPopoverButton: (args: ColumnSlotArguments) => object;
517
+ dsDatatableFilterPopoverContent: (args: ColumnSlotArguments) => object;
518
+ dsDatatableDropIndicator: () => object;
519
+ dsDatatableCell: (args: Cell) => object;
520
+ dsDatatableCellContent: (args: Cell) => object;
521
+ dsDatatablePencilIcon: (args: CellSlotArguments) => object;
522
+ dsDatatableEditableContainer: (args: Cell) => object;
523
+ dsDatatableFullsizeGrid: (args: RowSlotArguments) => object;
524
+ dsDatatableRow: (args: InternalRow) => object;
525
+ dsDatatableGroupHeaderContainer: (args: RowSlotArguments) => object;
526
+ dsDatatableHeaderTitle: (args: RowSlotArguments) => object;
527
+ dsDatatableCellsContainer: (args: InternalRow) => object;
528
+ dsDatatableToolbarWrapper: (args: RowSlotArguments) => object;
529
+ dsDatatableToolbarButtonsWrapper: (args: RowSlotArguments) => object;
530
+ dsDatatableToolbarButton: (args: RowSlotArguments) => object;
531
+ dsDatatableToolbarPosition: (args: RowSlotArguments) => object;
532
+ dsDatatableEmptyStateWrapper: () => object;
533
+ dsDatatableWarningIcon: () => object;
534
+ dsDatatableEmptyPrimaryMessage: () => object;
535
+ dsDatatableEmptySecondaryMessage: () => object;
536
+ dsDatatableEmptyButton: () => object;
537
+ dsDatatableCenterContentFlexWrapper: () => object;
538
+ dsDatatableLoaderWrapper: () => object;
539
+ dsDatatableFilterBarWrapper: () => object;
540
+ dsDatatableFreeTextSearchFilter: (args: ColumnSlotArguments) => object;
541
+ dsDatatableFreeTextSearchWrapper: (args: ColumnSlotArguments) => object;
542
+ dsDatatableFilterPopover: (args: ColumnSlotArguments) => object;
543
+ dsDatatableFilterBarMenuButton: () => object;
544
+ dsDatatableFilterPopoverFooter: (args: ColumnSlotArguments) => object;
545
+ dsDatatableFocusWithin: (args: FocusWithinSlotArguments) => object;
546
+ };
438
547
  export type GetOwnerPropsT = () => ZustandT.PropsStore<DefaultProps & RequiredProps & OptionalProps & UseAutoCalculatedT>;
548
+ export interface RowContentRendererProps {
549
+ row: DSDataTableT.InternalRow;
550
+ compact?: boolean;
551
+ focusedRowId: string | null;
552
+ drilldownRowId: string | null;
553
+ itemIndex: number;
554
+ draggableProps: DraggablePropsT;
555
+ backgroundColor?: XstyledProps['backgroundColor'];
556
+ isDragOverlay: boolean;
557
+ minHeight: string;
558
+ height: string;
559
+ rowsLayout?: (string | number)[];
560
+ dropIndicatorPosition: false | DropIndicatorPositionValues;
561
+ isDropValid: boolean;
562
+ CustomRowContentRenderer?: React.ComponentType<RowContentRendererProps>;
563
+ }
564
+ export interface TruncatedTooltipTextProps {
565
+ value?: React.ReactNode;
566
+ placement?: DSHookFloatingContextT.PopperPlacementsT;
567
+ }
568
+ export type ConfigurableColumn = (renderRowActions: DSDataTableT.RenderRowActionsConfig) => DSDataTableT.InternalColumn;
569
+ export interface CurrentRangeFilterValue {
570
+ from: string | null;
571
+ to: string | null;
572
+ }
573
+ export interface DateRangeFilterValue {
574
+ startDate: string | null;
575
+ endDate: string | null;
576
+ }
577
+ export interface DateSwitcherFilterValue {
578
+ startDate: string | null;
579
+ endDate: string | null;
580
+ isDateRange: boolean;
581
+ }
582
+ export interface NumberRangeFilterValue {
583
+ from: number | '' | null;
584
+ to: number | '' | null;
585
+ }
586
+ export type BaseSelectFilterValue = DSComboboxT.SelectedOptionsT;
587
+ export interface BaseSelectProps {
588
+ isMulti?: boolean;
589
+ creatable?: boolean;
590
+ type: string;
591
+ }
592
+ export type MultiCreatableFilterValue = DSComboboxT.SelectedOptionsT;
593
+ export type MultiSelectFilterValue = DSComboboxT.SelectedOptionsT;
594
+ export type SingleCreatableFilterValue = DSComboboxT.SelectedOptionsT;
595
+ export type SingleSelectFilterValue = DSComboboxT.SelectedOptionsT;
596
+ export type SingleDataFilterValue = string | null;
597
+ export interface FilterBarDropdownMenuProps {
598
+ options?: DSDropdownMenuT.Item[] | readonly DSDropdownMenuT.Item[];
599
+ innerRef?: React.RefObject<HTMLButtonElement>;
600
+ }
601
+ export interface FilterPopoverProps {
602
+ column: InternalColumn;
603
+ columnId: string;
604
+ columnReference?: HTMLElement | null;
605
+ triggerIcon: JSX.Element;
606
+ menuContent: JSX.Element;
607
+ onTriggerClick?: (id: string, e: React.MouseEvent | React.KeyboardEvent) => void;
608
+ onClickOutsideMenu?: (id: string) => void;
609
+ reduxHeader: ReduxHeader;
610
+ innerRef: React.MutableRefObject<HTMLButtonElement | null>;
611
+ ariaLabel: string;
612
+ customStyles?: React.CSSProperties;
613
+ firstElementRef: React.RefObject<HTMLElement>;
614
+ lastElementRef: React.RefObject<HTMLElement>;
615
+ }
616
+ export interface FilterPopoverV2Props {
617
+ column: InternalColumn;
618
+ columnId: string;
619
+ columnReference?: HTMLElement | null;
620
+ triggerIcon: JSX.Element;
621
+ menuContent: JSX.Element;
622
+ onTriggerClick?: (id: string, e: React.MouseEvent | React.KeyboardEvent) => void;
623
+ onClickOutsideMenu?: (id: string) => void;
624
+ reduxHeader: ReduxHeader;
625
+ innerRef: React.MutableRefObject<HTMLButtonElement | null>;
626
+ ariaLabel: string;
627
+ customStyles?: React.CSSProperties;
628
+ firstElementRef: React.RefObject<HTMLElement>;
629
+ onFilterSubmit: (e: React.SyntheticEvent) => void;
630
+ onFilterReset: () => void;
631
+ }
632
+ export interface FilterMenuButtonProps {
633
+ options?: DSMenuButtonT.MenuItemInterface[];
634
+ innerRef?: React.RefObject<HTMLButtonElement>;
635
+ onClearFilters: TypescriptHelpersT.GenericFunc;
636
+ onItemSelected?: (newSelection: DSMenuButtonT.SelectionableMenuNodes[], metainfo: {
637
+ itemNode: DSMenuButtonT.SelectionableMenuNodes;
638
+ event?: React.SyntheticEvent;
639
+ }) => void | TypescriptHelpersT.StateSetter<DSMenuButtonT.SelectionableMenuNodes[]>;
640
+ onActivateItem?: (itemNode: DSMenuButtonT.PseudoFocusableMenuNodes, metainfo: {
641
+ itemNode: DSMenuButtonT.PseudoFocusableMenuNodes;
642
+ event?: React.SyntheticEvent;
643
+ }) => void;
644
+ onOpen?: (metainfo: DSMenuButtonT.MenuOpenMetainfo) => void;
645
+ onClose?: (metainfo: DSMenuButtonT.MenuCloseMetainfo) => void;
646
+ [key: string]: unknown;
647
+ selectedItems?: DSMenuButtonT.SelectionableMenuNodes[] | DSMenuButtonT.SelectionableMenuItemInterface[];
648
+ }
649
+ export interface PillsFromDataTableFiltersProps {
650
+ filters: DSDataTableT.Filter[];
651
+ columns: DSDataTableT.Column[];
652
+ onFiltersChange: (filters: DSDataTableT.Filter[]) => void;
653
+ onPillRemove?: (remove: () => void) => void;
654
+ customPillRenderers?: Record<string, React.ComponentType<DSDataTableT.FilterPillProps<unknown>>>;
655
+ customPillRenderer?: React.ComponentType<DSDataTableT.FilterPillProps<unknown>>;
656
+ }
657
+ export interface RowRendererProps {
658
+ row: DSDataTableT.InternalRow;
659
+ compact?: boolean;
660
+ itemIndex: number;
661
+ isDragOverlay: boolean;
662
+ minHeight: string;
663
+ height: string;
664
+ rowsLayout?: string[] | number[];
665
+ CustomRowContentRenderer?: React.ComponentType<RowContentRendererProps>;
666
+ focusedRowId: string | null;
667
+ drilldownRowId: string | null;
668
+ backgroundColor?: XstyledProps['backgroundColor'];
669
+ }
670
+ export interface ToolbarProps {
671
+ isRowSelected?: boolean;
672
+ cell: DSDataTableT.Cell;
673
+ children: React.ReactNode;
674
+ }
675
+ export interface CellFactoryProps {
676
+ cell: DSDataTableT.Cell;
677
+ column: DSDataTableT.InternalColumn;
678
+ row: DSDataTableT.InternalRow;
679
+ isRowSelected: boolean;
680
+ shouldAddExpandCell: boolean;
681
+ cellIsNextToExpander: boolean;
682
+ isDragOverlay: boolean;
683
+ }
684
+ export interface DropIndicatorProps {
685
+ vertical: boolean;
686
+ dropIndicatorPosition: false | DSDataTableT.DropIndicatorPositionValues;
687
+ isDropValid: boolean;
688
+ isLast?: boolean;
689
+ }
690
+ export type MultiSelectPillValues = DSComboboxT.ItemOption[];
691
+ export interface HeaderCellCompProps {
692
+ column: DSDataTableT.InternalColumn;
693
+ isDragOverlay?: boolean;
694
+ colSpan: number;
695
+ }
696
+ export interface HeaderCellTitleProps {
697
+ column: DSDataTableT.InternalColumn;
698
+ draggableProps: DraggablePropsT;
699
+ textWrap: 'wrap' | 'wrap-all' | 'truncate';
700
+ }
701
+ export type UseHeaderCellConfigType = (args: {
702
+ column: DSDataTableT.InternalColumn;
703
+ isDragOverlay?: boolean;
704
+ }) => {
705
+ hasFilter: boolean;
706
+ hasDnD: boolean;
707
+ hasSortingCaret: boolean;
708
+ hasRightIcons: boolean;
709
+ isDragging: boolean;
710
+ shouldShowDnD: boolean;
711
+ shouldShowResize: boolean;
712
+ hCols: string[];
713
+ };
714
+ export type UseHeaderCellHandlersType = (args: {
715
+ hasFilter: boolean;
716
+ column: DSDataTableT.InternalColumn;
717
+ hasDnD: boolean;
718
+ dragHandleRef: React.MutableRefObject<HTMLDivElement | null>;
719
+ sortRef: React.MutableRefObject<HTMLButtonElement | null>;
720
+ filterIconRef: React.MutableRefObject<HTMLButtonElement | null>;
721
+ resizeHandlerRef: React.MutableRefObject<HTMLInputElement | null>;
722
+ hasSortingCaret: boolean;
723
+ isDragOverlay?: boolean;
724
+ draggableProps: DSDataTableT.DraggablePropsT;
725
+ referenceColumn: React.MutableRefObject<HTMLDivElement | null>;
726
+ }) => {
727
+ onMouseEnter: React.MouseEventHandler;
728
+ onMouseLeave: React.MouseEventHandler;
729
+ handleSort: React.MouseEventHandler;
730
+ onKeyDown: React.KeyboardEventHandler;
731
+ onFocus: React.FocusEventHandler;
732
+ onBlur: React.FocusEventHandler;
733
+ };
734
+ export interface WithConditionalDnDSortableContextProps {
735
+ items: DSDataTableT.InternalColumn[];
736
+ isDragOverlay: boolean;
737
+ }
439
738
  export {};
440
739
  }
441
740
  export declare const defaultProps: () => DSDataTableT.DefaultProps;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-data-table",
3
- "version": "3.80.0-next.64",
3
+ "version": "3.80.0-next.65",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Data Table",
6
6
  "files": [
@@ -37,41 +37,39 @@
37
37
  "indent": 4
38
38
  },
39
39
  "dependencies": {
40
- "@elliemae/ds-button-v2": "3.80.0-next.64",
41
- "@elliemae/ds-circular-progress-indicator": "3.80.0-next.64",
42
- "@elliemae/ds-dialog": "3.80.0-next.64",
43
- "@elliemae/ds-drag-and-drop": "3.80.0-next.64",
44
- "@elliemae/ds-dropdownmenu-v2": "3.80.0-next.64",
45
- "@elliemae/ds-floating-context": "3.80.0-next.64",
46
- "@elliemae/ds-form-checkbox": "3.80.0-next.64",
47
- "@elliemae/ds-form-combobox": "3.80.0-next.64",
48
- "@elliemae/ds-form-date-range-picker": "3.80.0-next.64",
49
- "@elliemae/ds-form-date-time-picker": "3.80.0-next.64",
50
- "@elliemae/ds-form-helpers-mask-hooks": "3.80.0-next.64",
51
- "@elliemae/ds-form-input-text": "3.80.0-next.64",
52
- "@elliemae/ds-form-layout-blocks": "3.80.0-next.64",
53
- "@elliemae/ds-form-radio": "3.80.0-next.64",
54
- "@elliemae/ds-grid": "3.80.0-next.64",
55
- "@elliemae/ds-hooks-focus-trap": "3.80.0-next.64",
56
- "@elliemae/ds-icons": "3.80.0-next.64",
57
- "@elliemae/ds-legacy-dropdownmenu": "^1.0.0",
58
- "@elliemae/ds-menu-button": "3.80.0-next.64",
59
- "@elliemae/ds-pagination": "3.80.0-next.64",
60
- "@elliemae/ds-pills-v2": "3.80.0-next.64",
61
- "@elliemae/ds-props-helpers": "3.80.0-next.64",
62
- "@elliemae/ds-skeleton": "3.80.0-next.64",
63
- "@elliemae/ds-system": "3.80.0-next.64",
64
- "@elliemae/ds-typescript-helpers": "3.80.0-next.64",
65
- "@elliemae/ds-zustand-helpers": "3.80.0-next.64",
40
+ "@elliemae/ds-button-v2": "3.80.0-next.65",
41
+ "@elliemae/ds-circular-progress-indicator": "3.80.0-next.65",
42
+ "@elliemae/ds-dialog": "3.80.0-next.65",
43
+ "@elliemae/ds-drag-and-drop": "3.80.0-next.65",
44
+ "@elliemae/ds-floating-context": "3.80.0-next.65",
45
+ "@elliemae/ds-form-checkbox": "3.80.0-next.65",
46
+ "@elliemae/ds-form-combobox": "3.80.0-next.65",
47
+ "@elliemae/ds-form-date-range-picker": "3.80.0-next.65",
48
+ "@elliemae/ds-form-date-time-picker": "3.80.0-next.65",
49
+ "@elliemae/ds-form-helpers-mask-hooks": "3.80.0-next.65",
50
+ "@elliemae/ds-form-input-text": "3.80.0-next.65",
51
+ "@elliemae/ds-form-layout-blocks": "3.80.0-next.65",
52
+ "@elliemae/ds-form-radio": "3.80.0-next.65",
53
+ "@elliemae/ds-grid": "3.80.0-next.65",
54
+ "@elliemae/ds-hooks-focus-trap": "3.80.0-next.65",
55
+ "@elliemae/ds-icons": "3.80.0-next.65",
56
+ "@elliemae/ds-menu-button": "3.80.0-next.65",
57
+ "@elliemae/ds-pagination": "3.80.0-next.65",
58
+ "@elliemae/ds-pills-v2": "3.80.0-next.65",
59
+ "@elliemae/ds-props-helpers": "3.80.0-next.65",
60
+ "@elliemae/ds-skeleton": "3.80.0-next.65",
61
+ "@elliemae/ds-system": "3.80.0-next.65",
62
+ "@elliemae/ds-typescript-helpers": "3.80.0-next.65",
63
+ "@elliemae/ds-zustand-helpers": "3.80.0-next.65",
66
64
  "@tanstack/react-virtual": "3.13.18",
67
65
  "uid": "^2.0.2",
68
66
  "use-onclickoutside": "0.4.1"
69
67
  },
70
68
  "devDependencies": {
71
- "@elliemae/ds-monorepo-devops": "3.80.0-next.64",
72
- "@elliemae/ds-tabs": "3.80.0-next.64",
73
- "@elliemae/ds-test-utils": "3.80.0-next.64",
74
- "@elliemae/ds-toolbar-v2": "3.80.0-next.64",
69
+ "@elliemae/ds-monorepo-devops": "3.80.0-next.65",
70
+ "@elliemae/ds-tabs": "3.80.0-next.65",
71
+ "@elliemae/ds-test-utils": "3.80.0-next.65",
72
+ "@elliemae/ds-toolbar-v2": "3.80.0-next.65",
75
73
  "jest": "^30.0.0",
76
74
  "styled-components": "~5.3.11",
77
75
  "styled-system": "^5.1.5"
@@ -9,7 +9,7 @@ description: >
9
9
  DataTable cell. DataTable-as-form forbidden — use @elliemae/ds-grid.
10
10
  type: core
11
11
  library: ds-data-table
12
- library_version: '3.60.0'
12
+ library_version: '3.80.0'
13
13
  sources:
14
14
  - '@elliemae/ds-data-table:dist/types/react-desc-prop-types.d.ts'
15
15
  ---
@@ -71,18 +71,26 @@ When a column is needed exclusively for per-row action buttons, use the dedicate
71
71
 
72
72
  Use when each action is a direct button (delete, print, copy, edit) with no sub-menus.
73
73
 
74
- ```jsx
75
- import { DataTable, Toolbar } from '@elliemae/ds-data-table';
74
+ ```tsx
75
+ import { DataTable, Toolbar, type DSDataTableT } from '@elliemae/ds-data-table';
76
76
  import { DSToolbarV2, DSToolbarItemV2 } from '@elliemae/ds-toolbar-v2';
77
77
  import { DSButtonV3 } from '@elliemae/ds-button-v2';
78
+ import { Delete } from '@elliemae/ds-icons';
78
79
 
79
- const RowActionsRenderer = React.memo((props) => (
80
+ const RowActionsRenderer = React.memo((props: DSDataTableT.CellProps) => (
80
81
  <Toolbar {...props}>
81
82
  <DSToolbarV2 withDepth={false}>
82
83
  <DSToolbarItemV2
83
84
  render={(itemProps) => (
84
- <DSButtonV3 autoFocus buttonType="icon" {...itemProps} aria-label="Delete">
85
- {/* icon */}
85
+ <DSButtonV3
86
+ autoFocus
87
+ buttonType="icon"
88
+ {...itemProps}
89
+ // the toolbar types the ref as any HTMLElement; you know it is rendered on a button
90
+ innerRef={itemProps.innerRef as React.MutableRefObject<HTMLButtonElement | null>}
91
+ aria-label="Delete"
92
+ >
93
+ <Delete />
86
94
  </DSButtonV3>
87
95
  )}
88
96
  />
@@ -109,39 +117,42 @@ import { Grid } from '@elliemae/ds-grid';
109
117
  import { MoreOptionsVert } from '@elliemae/ds-icons';
110
118
  import { DSMenuButton } from '@elliemae/ds-menu-button';
111
119
 
112
- const RowActionsRenderer: DSDataTableT.RenderRowActionsConfig['renderer'] = React.memo(
113
- ({ isRowSelected, cell }) => {
114
- const { ref } = cell as unknown as { ref: React.MutableRefObject<HTMLButtonElement> };
115
-
116
- const handleConflictingKeyPresses = React.useCallback<React.KeyboardEventHandler<HTMLDivElement>>(
117
- (event) => {
118
- if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
119
- event.stopPropagation();
120
- event.preventDefault();
120
+ const RowActionsRenderer: DSDataTableT.RenderRowActionsConfig['renderer'] = React.memo(({ isRowSelected, cell }) => {
121
+ const { ref } = cell as unknown as { ref: React.MutableRefObject<HTMLButtonElement> };
122
+
123
+ const handleConflictingKeyPresses = React.useCallback<React.KeyboardEventHandler<HTMLDivElement>>((event) => {
124
+ if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
125
+ event.stopPropagation();
126
+ event.preventDefault();
127
+ }
128
+ }, []);
129
+
130
+ return (
131
+ <Grid
132
+ minHeight="100%"
133
+ minWidth="100%"
134
+ justifyContent="center"
135
+ alignItems="center"
136
+ onKeyDown={handleConflictingKeyPresses}
137
+ >
138
+ <DSMenuButton
139
+ innerRef={ref}
140
+ tabIndex={isRowSelected ? 0 : -1}
141
+ buttonType={BUTTON_TYPES.ICON}
142
+ aria-label="Show row actions, to resume table row navigation press tab"
143
+ {
144
+ ...menuButtonProps /* options, onActivateItem, etc. per scenario */
121
145
  }
122
- },
123
- [],
124
- );
125
-
126
- return (
127
- <Grid minHeight="100%" minWidth="100%" justifyContent="center" alignItems="center" onKeyDown={handleConflictingKeyPresses}>
128
- <DSMenuButton
129
- innerRef={ref}
130
- tabIndex={isRowSelected ? 0 : -1}
131
- buttonType={BUTTON_TYPES.ICON}
132
- aria-label="Show row actions, to resume table row navigation press tab"
133
- {/* ...DSMenuButton props per scenario (options, onActivateItem, etc.) */}
134
- >
135
- <MoreOptionsVert />
136
- </DSMenuButton>
137
- </Grid>
138
- );
139
- },
140
- );
146
+ >
147
+ <MoreOptionsVert />
148
+ </DSMenuButton>
149
+ </Grid>
150
+ );
151
+ });
141
152
 
142
153
  const renderRowActions: DSDataTableT.RenderRowActionsConfig = { columnWidth: 32, renderer: RowActionsRenderer };
143
154
 
144
- <DataTable columns={columns} data={rows} height={500} renderRowActions={renderRowActions} />
155
+ <DataTable columns={columns} data={rows} height={500} renderRowActions={renderRowActions} />;
145
156
  ```
146
157
 
147
158
  **`onKeyDown` on the Grid wrapper is required.** `DSMenuButton` uses ArrowUp/ArrowDown to navigate menu items. Without `stopPropagation`, those keystrokes also move the DataTable's row focus — the two navigation models conflict silently.
@@ -266,14 +277,14 @@ Cell: ({ row, cell, isRowSelected }) => (
266
277
  ),
267
278
  ```
268
279
 
269
- The DataTable uses an Enter-to-enter-row keyboard model: Tab moves between rows; Enter "enters" a row to navigate its interactive elements; Escape exits back to row navigation. An interactive element with `tabIndex={0}` unconditionally is permanently tabbable from outside the row — it intercepts Tab focus and breaks the row navigation model entirely.
280
+ The DataTable uses an Enter-to-enter-row keyboard model: Tab moves between rows; Enter "enters" a row to navigate its interactive elements; moving focus back onto the row element exits back to row navigation (Escape is not handled at row level). An interactive element with `tabIndex={0}` unconditionally is permanently tabbable from outside the row — it intercepts Tab focus and breaks the row navigation model entirely.
270
281
 
271
282
  Two props from `CellRendererProps` are required:
272
283
 
273
284
  - `tabIndex={isRowSelected ? 0 : -1}` — makes the element focusable only when the row is entered
274
285
  - `cell.ref` — registers the element as the row's focusable target so Enter moves focus to it
275
286
 
276
- For components that accept `innerRef`: pass `innerRef={cell.ref}`. For components that wrap the element: pass `containerProps={{ ref: cell.ref }}`. For standard DOM elements: pass `ref={cell.ref}`.
287
+ For components that accept `innerRef`: pass `innerRef={cell.ref}`. For standard DOM elements: pass `ref={cell.ref}`. Do not pass `cell.ref` through `containerProps`: it lands on the component's wrapper element, not on the focusable control, so Enter has nothing to focus.
277
288
 
278
289
  Source: https://dimsum.mortgagetech.ice.com/iframe.html?id=components-datatable-features-cell--custom-cell-row-and-header
279
290
 
@@ -313,7 +324,7 @@ const renderRowActions: DSDataTableT.RenderRowActionsConfig = {
313
324
  <DataTable columns={columns} data={rows} height={500} renderRowActions={renderRowActions} />;
314
325
  ```
315
326
 
316
- `renderRowActions` is the dedicated first-class API for per-row action columns. `Column.Cell` misses the arrow key conflict handler and loses built-in column width management for the actions column.
327
+ `renderRowActions` is the dedicated first-class API for per-row action columns. `Column.Cell` loses built-in column width management for the actions column: the table adds the `renderRowActions` column with a fixed width (`columnWidth`), not resizable, not draggable and not focusable as a header. Neither API adds the arrow key conflict handler — the renderer adds it (see the multi-level pattern above).
317
328
 
318
329
  Source: https://dimsum.mortgagetech.ice.com/iframe.html?id=components-datatable-advanced--with-multilevel-menu-button
319
330
 
@@ -328,11 +339,7 @@ Wrong:
328
339
  const RowActionsRenderer = React.memo((props) => (
329
340
  <Toolbar {...props}>
330
341
  <DSToolbarV2 withDepth={false}>
331
- <DSToolbarItemV2
332
- render={(itemProps) => (
333
- <DSMenuButton {...itemProps} {/* ...options, onActivateItem, etc. */} />
334
- )}
335
- />
342
+ <DSToolbarItemV2 render={(itemProps) => <DSMenuButton {...itemProps} /* ...options, onActivateItem, etc. */ />} />
336
343
  </DSToolbarV2>
337
344
  </Toolbar>
338
345
  ));