@osdk/react-components 0.2.0-beta.2 → 0.2.0-beta.21

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 (976) hide show
  1. package/AGENTS.md +105 -0
  2. package/CHANGELOG.md +245 -0
  3. package/README.md +129 -24
  4. package/build/browser/action-form/ActionForm.js +113 -0
  5. package/build/browser/action-form/ActionForm.js.map +1 -0
  6. package/build/browser/action-form/ActionFormApi.js.map +1 -1
  7. package/build/browser/action-form/BaseForm.js +70 -0
  8. package/build/browser/action-form/BaseForm.js.map +1 -0
  9. package/build/browser/action-form/FormFieldApi.js.map +1 -1
  10. package/build/browser/action-form/fields/DropdownField.js +104 -0
  11. package/build/browser/action-form/fields/DropdownField.js.map +1 -0
  12. package/build/browser/action-form/fields/FieldBridge.js +45 -0
  13. package/build/browser/action-form/fields/FieldBridge.js.map +1 -0
  14. package/build/browser/action-form/fields/FormFieldRenderer.js +79 -0
  15. package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -0
  16. package/build/browser/action-form/fields/TextInputField.js +37 -0
  17. package/build/browser/action-form/fields/TextInputField.js.map +1 -0
  18. package/build/browser/action-form/utils/coerceFieldValue.js +93 -0
  19. package/build/browser/action-form/utils/coerceFieldValue.js.map +1 -0
  20. package/build/browser/action-form/utils/getDefaultFieldComponent.js +56 -0
  21. package/build/browser/action-form/utils/getDefaultFieldComponent.js.map +1 -0
  22. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js +33 -0
  23. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js.map +1 -0
  24. package/build/browser/base-components/action-button/ActionButton.js +31 -0
  25. package/build/browser/base-components/action-button/ActionButton.js.map +1 -0
  26. package/build/browser/base-components/action-button/ActionButton.module.css +66 -0
  27. package/build/browser/base-components/action-button/ActionButton.module.css.js +8 -0
  28. package/build/browser/base-components/checkbox/Checkbox.module.css +1 -5
  29. package/build/browser/base-components/combobox/Combobox.js +146 -0
  30. package/build/browser/base-components/combobox/Combobox.js.map +1 -0
  31. package/build/browser/base-components/combobox/Combobox.module.css +357 -0
  32. package/build/browser/base-components/combobox/Combobox.module.css.js +17 -0
  33. package/build/browser/base-components/dialog/Dialog.js +52 -0
  34. package/build/browser/base-components/dialog/Dialog.js.map +1 -0
  35. package/build/browser/base-components/dialog/Dialog.module.css +93 -0
  36. package/build/browser/base-components/dialog/Dialog.module.css.js +13 -0
  37. package/build/browser/base-components/draggable-list/DraggableList.js +157 -0
  38. package/build/browser/base-components/draggable-list/DraggableList.js.map +1 -0
  39. package/build/browser/base-components/draggable-list/DraggableList.module.css +100 -0
  40. package/build/browser/base-components/draggable-list/DraggableList.module.css.js +11 -0
  41. package/build/browser/base-components/search-bar/SearchBar.js +44 -0
  42. package/build/browser/base-components/search-bar/SearchBar.js.map +1 -0
  43. package/build/browser/base-components/search-bar/SearchBar.module.css +53 -0
  44. package/build/browser/base-components/search-bar/SearchBar.module.css.js +8 -0
  45. package/build/browser/base-components/select/Select.js +95 -0
  46. package/build/browser/base-components/select/Select.js.map +1 -0
  47. package/build/browser/base-components/select/Select.module.css +235 -0
  48. package/build/browser/base-components/select/Select.module.css.js +13 -0
  49. package/build/browser/base-components/skeleton/SkeletonBar.js +36 -0
  50. package/build/browser/base-components/skeleton/SkeletonBar.js.map +1 -0
  51. package/build/browser/base-components/skeleton/SkeletonBar.module.css +39 -0
  52. package/build/browser/base-components/skeleton/SkeletonBar.module.css.js +7 -0
  53. package/build/browser/base-components/switch/Switch.js +33 -0
  54. package/build/browser/base-components/switch/Switch.js.map +1 -0
  55. package/build/browser/base-components/switch/Switch.module.css +91 -0
  56. package/build/browser/base-components/switch/Switch.module.css.js +7 -0
  57. package/build/browser/base-components/tooltip/Tooltip.js +91 -0
  58. package/build/browser/base-components/tooltip/Tooltip.js.map +1 -0
  59. package/build/browser/base-components/tooltip/Tooltip.module.css +70 -0
  60. package/build/browser/base-components/tooltip/Tooltip.module.css.js +11 -0
  61. package/build/browser/base-components/tooltip/index.js +18 -0
  62. package/build/browser/base-components/tooltip/index.js.map +1 -0
  63. package/build/browser/filter-list/FilterInput.js +132 -0
  64. package/build/browser/filter-list/FilterInput.js.map +1 -0
  65. package/build/browser/filter-list/FilterList.js +128 -0
  66. package/build/browser/filter-list/FilterList.js.map +1 -0
  67. package/build/browser/filter-list/FilterListApi.js.map +1 -1
  68. package/build/browser/filter-list/FilterListItemApi.js.map +1 -1
  69. package/build/browser/filter-list/base/AddFilterPopover.js +45 -0
  70. package/build/browser/filter-list/base/AddFilterPopover.js.map +1 -0
  71. package/build/browser/filter-list/base/AddFilterPopover.module.css +83 -0
  72. package/build/browser/filter-list/base/AddFilterPopover.module.css.js +9 -0
  73. package/build/browser/filter-list/base/BaseFilterList.js +90 -0
  74. package/build/browser/filter-list/base/BaseFilterList.js.map +1 -0
  75. package/build/browser/filter-list/base/BaseFilterListApi.js +2 -0
  76. package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -0
  77. package/build/browser/filter-list/base/DragHandleIcon.js +51 -0
  78. package/build/browser/filter-list/base/DragHandleIcon.js.map +1 -0
  79. package/build/browser/filter-list/base/FilterIcons.js +98 -0
  80. package/build/browser/filter-list/base/FilterIcons.js.map +1 -0
  81. package/build/browser/filter-list/base/FilterList.module.css +132 -0
  82. package/build/browser/filter-list/base/FilterList.module.css.js +13 -0
  83. package/build/browser/filter-list/base/FilterListContent.js +198 -0
  84. package/build/browser/filter-list/base/FilterListContent.js.map +1 -0
  85. package/build/browser/filter-list/base/FilterListContent.module.css +33 -0
  86. package/build/browser/filter-list/base/FilterListContent.module.css.js +8 -0
  87. package/build/browser/filter-list/base/FilterListHeader.js +58 -0
  88. package/build/browser/filter-list/base/FilterListHeader.js.map +1 -0
  89. package/build/browser/filter-list/base/FilterListHeader.module.css +123 -0
  90. package/build/browser/filter-list/base/FilterListHeader.module.css.js +13 -0
  91. package/build/browser/filter-list/base/FilterListItem.js +87 -0
  92. package/build/browser/filter-list/base/FilterListItem.js.map +1 -0
  93. package/build/browser/filter-list/base/FilterListItem.module.css +126 -0
  94. package/build/browser/filter-list/base/FilterListItem.module.css.js +13 -0
  95. package/build/browser/filter-list/base/SortableFilterListItem.js +63 -0
  96. package/build/browser/filter-list/base/SortableFilterListItem.js.map +1 -0
  97. package/build/browser/filter-list/base/index.js +21 -0
  98. package/build/browser/filter-list/base/index.js.map +1 -0
  99. package/build/browser/filter-list/base/inputs/CheckboxListInput.js +83 -0
  100. package/build/browser/filter-list/base/inputs/CheckboxListInput.js.map +1 -0
  101. package/build/browser/filter-list/base/inputs/CheckboxListInput.module.css +65 -0
  102. package/build/browser/filter-list/base/inputs/CheckboxListInput.module.css.js +10 -0
  103. package/build/browser/filter-list/base/inputs/CheckboxListSkeleton.js +46 -0
  104. package/build/browser/filter-list/base/inputs/CheckboxListSkeleton.js.map +1 -0
  105. package/build/browser/filter-list/base/inputs/CheckboxListSkeleton.module.css +32 -0
  106. package/build/browser/filter-list/base/inputs/CheckboxListSkeleton.module.css.js +8 -0
  107. package/build/browser/filter-list/base/inputs/ContainsTextInput.js +85 -0
  108. package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -0
  109. package/build/browser/filter-list/base/inputs/ContainsTextInput.module.css +91 -0
  110. package/build/browser/filter-list/base/inputs/ContainsTextInput.module.css.js +10 -0
  111. package/build/browser/filter-list/base/inputs/DateRangeInput.js +37 -0
  112. package/build/browser/filter-list/base/inputs/DateRangeInput.js.map +1 -0
  113. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
  114. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css.js +6 -0
  115. package/build/browser/filter-list/base/inputs/ListogramInput.js +103 -0
  116. package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -0
  117. package/build/browser/filter-list/base/inputs/ListogramInput.module.css +106 -0
  118. package/build/browser/filter-list/base/inputs/ListogramInput.module.css.js +12 -0
  119. package/build/browser/filter-list/base/inputs/ListogramSkeleton.js +45 -0
  120. package/build/browser/filter-list/base/inputs/ListogramSkeleton.js.map +1 -0
  121. package/build/browser/filter-list/base/inputs/ListogramSkeleton.module.css +32 -0
  122. package/build/browser/filter-list/base/inputs/ListogramSkeleton.module.css.js +8 -0
  123. package/build/browser/filter-list/base/inputs/MultiDateInput.js +82 -0
  124. package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -0
  125. package/build/browser/filter-list/base/inputs/MultiDateInput.module.css +56 -0
  126. package/build/browser/filter-list/base/inputs/MultiDateInput.module.css.js +9 -0
  127. package/build/browser/filter-list/base/inputs/MultiSelectInput.js +93 -0
  128. package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
  129. package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css +38 -0
  130. package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css.js +9 -0
  131. package/build/browser/filter-list/base/inputs/NullValueWrapper.js +57 -0
  132. package/build/browser/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
  133. package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css +50 -0
  134. package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css.js +10 -0
  135. package/build/browser/filter-list/base/inputs/NumberRangeInput.js +48 -0
  136. package/build/browser/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
  137. package/build/browser/filter-list/base/inputs/RangeInput.js +157 -0
  138. package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -0
  139. package/build/browser/filter-list/base/inputs/RangeInput.module.css +106 -0
  140. package/build/browser/filter-list/base/inputs/RangeInput.module.css.js +13 -0
  141. package/build/browser/filter-list/base/inputs/SingleDateInput.js +61 -0
  142. package/build/browser/filter-list/base/inputs/SingleDateInput.js.map +1 -0
  143. package/build/browser/filter-list/base/inputs/SingleDateInput.module.css +64 -0
  144. package/build/browser/filter-list/base/inputs/SingleDateInput.module.css.js +9 -0
  145. package/build/browser/filter-list/base/inputs/SingleSelectInput.js +88 -0
  146. package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
  147. package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css +55 -0
  148. package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css.js +8 -0
  149. package/build/browser/filter-list/base/inputs/TextTagsInput.js +133 -0
  150. package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -0
  151. package/build/browser/filter-list/base/inputs/TextTagsInput.module.css +25 -0
  152. package/build/browser/filter-list/base/inputs/TextTagsInput.module.css.js +7 -0
  153. package/build/browser/filter-list/base/inputs/TimelineInput.js +74 -0
  154. package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -0
  155. package/build/browser/filter-list/base/inputs/TimelineInput.module.css +75 -0
  156. package/build/browser/filter-list/base/inputs/TimelineInput.module.css.js +10 -0
  157. package/build/browser/filter-list/base/inputs/ToggleInput.js +43 -0
  158. package/build/browser/filter-list/base/inputs/ToggleInput.js.map +1 -0
  159. package/build/browser/filter-list/base/inputs/ToggleInput.module.css +34 -0
  160. package/build/browser/filter-list/base/inputs/ToggleInput.module.css.js +8 -0
  161. package/build/browser/filter-list/base/inputs/createHistogramBuckets.js +53 -0
  162. package/build/browser/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
  163. package/build/browser/filter-list/base/inputs/dateUtils.js +57 -0
  164. package/build/browser/filter-list/base/inputs/dateUtils.js.map +1 -0
  165. package/build/browser/filter-list/base/inputs/index.js +25 -0
  166. package/build/browser/filter-list/base/inputs/index.js.map +1 -0
  167. package/build/browser/filter-list/base/inputs/shared.module.css +80 -0
  168. package/build/browser/filter-list/base/inputs/shared.module.css.js +11 -0
  169. package/build/browser/filter-list/base/inputs/useStaleData.js +29 -0
  170. package/build/browser/filter-list/base/inputs/useStaleData.js.map +1 -0
  171. package/build/browser/filter-list/hooks/useFilterListState.js +158 -0
  172. package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -0
  173. package/build/browser/filter-list/hooks/useFilterVisibility.js +68 -0
  174. package/build/browser/filter-list/hooks/useFilterVisibility.js.map +1 -0
  175. package/build/browser/filter-list/hooks/usePropertyAggregation.js +92 -0
  176. package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -0
  177. package/build/browser/filter-list/inputs/CheckboxListFilterInput.js +56 -0
  178. package/build/browser/filter-list/inputs/CheckboxListFilterInput.js.map +1 -0
  179. package/build/browser/filter-list/inputs/ContainsTextFilterInput.js +38 -0
  180. package/build/browser/filter-list/inputs/ContainsTextFilterInput.js.map +1 -0
  181. package/build/browser/filter-list/inputs/DateRangeFilterInput.js +105 -0
  182. package/build/browser/filter-list/inputs/DateRangeFilterInput.js.map +1 -0
  183. package/build/browser/filter-list/inputs/LinkedPropertyInput.js +508 -0
  184. package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -0
  185. package/build/browser/filter-list/inputs/ListogramFilterInput.js +62 -0
  186. package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -0
  187. package/build/browser/filter-list/inputs/MultiDateFilterInput.js +38 -0
  188. package/build/browser/filter-list/inputs/MultiDateFilterInput.js.map +1 -0
  189. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js +55 -0
  190. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -0
  191. package/build/browser/filter-list/inputs/NumberRangeFilterInput.js +105 -0
  192. package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -0
  193. package/build/browser/filter-list/inputs/PropertyFilterInput.js +129 -0
  194. package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -0
  195. package/build/browser/filter-list/inputs/SingleDateFilterInput.js +38 -0
  196. package/build/browser/filter-list/inputs/SingleDateFilterInput.js.map +1 -0
  197. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js +55 -0
  198. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -0
  199. package/build/browser/filter-list/inputs/TextTagsFilterInput.js +54 -0
  200. package/build/browser/filter-list/inputs/TextTagsFilterInput.js.map +1 -0
  201. package/build/browser/filter-list/inputs/TimelineFilterInput.js +49 -0
  202. package/build/browser/filter-list/inputs/TimelineFilterInput.js.map +1 -0
  203. package/build/browser/filter-list/inputs/ToggleFilterInput.js +36 -0
  204. package/build/browser/filter-list/inputs/ToggleFilterInput.js.map +1 -0
  205. package/build/browser/filter-list/types/AggregationTypes.js +2 -0
  206. package/build/browser/filter-list/types/AggregationTypes.js.map +1 -0
  207. package/build/browser/filter-list/types/CustomRendererTypes.js +2 -0
  208. package/build/browser/filter-list/types/CustomRendererTypes.js.map +1 -0
  209. package/build/browser/filter-list/types/KeywordSearchTypes.js +2 -0
  210. package/build/browser/filter-list/types/KeywordSearchTypes.js.map +1 -0
  211. package/build/browser/filter-list/types/LinkedFilterTypes.js +2 -0
  212. package/build/browser/filter-list/types/LinkedFilterTypes.js.map +1 -0
  213. package/build/browser/filter-list/types/index.js +20 -0
  214. package/build/browser/filter-list/types/index.js.map +1 -0
  215. package/build/browser/filter-list/utils/aggregationHelpers.js +44 -0
  216. package/build/browser/filter-list/utils/aggregationHelpers.js.map +1 -0
  217. package/build/browser/filter-list/utils/coerceFilterValue.js +33 -0
  218. package/build/browser/filter-list/utils/coerceFilterValue.js.map +1 -0
  219. package/build/browser/filter-list/utils/filterStateSerialization.js +42 -0
  220. package/build/browser/filter-list/utils/filterStateSerialization.js.map +1 -0
  221. package/build/browser/filter-list/utils/filterStateToWhereClause.js +375 -0
  222. package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -0
  223. package/build/browser/filter-list/utils/filterValues.js +81 -0
  224. package/build/browser/filter-list/utils/filterValues.js.map +1 -0
  225. package/build/browser/filter-list/utils/getFilterKey.js +34 -0
  226. package/build/browser/filter-list/utils/getFilterKey.js.map +1 -0
  227. package/build/browser/filter-list/utils/getFilterLabel.js +36 -0
  228. package/build/browser/filter-list/utils/getFilterLabel.js.map +1 -0
  229. package/build/browser/object-table/ColumnConfigDialog.js +259 -0
  230. package/build/browser/object-table/ColumnConfigDialog.js.map +1 -0
  231. package/build/browser/object-table/ColumnConfigDialog.module.css +238 -0
  232. package/build/browser/object-table/ColumnConfigDialog.module.css.js +29 -0
  233. package/build/browser/object-table/DefaultCellRenderer.js +61 -0
  234. package/build/browser/object-table/DefaultCellRenderer.js.map +1 -0
  235. package/build/browser/object-table/EditableCell.js +168 -0
  236. package/build/browser/object-table/EditableCell.js.map +1 -0
  237. package/build/browser/object-table/EditableCell.module.css +70 -0
  238. package/build/browser/object-table/EditableCell.module.css.js +11 -0
  239. package/build/browser/object-table/LoadingCell.js +6 -3
  240. package/build/browser/object-table/LoadingCell.js.map +1 -1
  241. package/build/browser/object-table/LoadingRow.js +2 -1
  242. package/build/browser/object-table/LoadingRow.js.map +1 -1
  243. package/build/browser/object-table/LoadingStateTable.js +4 -4
  244. package/build/browser/object-table/LoadingStateTable.js.map +1 -1
  245. package/build/browser/object-table/MultiColumnSortDialog.js +181 -0
  246. package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -0
  247. package/build/browser/object-table/MultiColumnSortDialog.module.css +191 -0
  248. package/build/browser/object-table/MultiColumnSortDialog.module.css.js +22 -0
  249. package/build/browser/object-table/NonIdealState.module.css +2 -3
  250. package/build/browser/object-table/ObjectTable.js +69 -17
  251. package/build/browser/object-table/ObjectTable.js.map +1 -1
  252. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  253. package/build/browser/object-table/SelectionCells.js +16 -4
  254. package/build/browser/object-table/SelectionCells.js.map +1 -1
  255. package/build/browser/object-table/SortableItemsList.js +35 -0
  256. package/build/browser/object-table/SortableItemsList.js.map +1 -0
  257. package/build/browser/object-table/Table.js +29 -4
  258. package/build/browser/object-table/Table.js.map +1 -1
  259. package/build/browser/object-table/Table.module.css +18 -3
  260. package/build/browser/object-table/Table.module.css.js +1 -0
  261. package/build/browser/object-table/TableBody.js +8 -2
  262. package/build/browser/object-table/TableBody.js.map +1 -1
  263. package/build/browser/object-table/TableBody.module.css +2 -0
  264. package/build/browser/object-table/TableCell.module.css +15 -1
  265. package/build/browser/object-table/TableCell.module.css.js +2 -1
  266. package/build/browser/object-table/TableEditContainer.js +90 -0
  267. package/build/browser/object-table/TableEditContainer.js.map +1 -0
  268. package/build/browser/object-table/TableEditContainer.module.css +71 -0
  269. package/build/browser/object-table/TableEditContainer.module.css.js +13 -0
  270. package/build/browser/object-table/TableHeader.js +97 -7
  271. package/build/browser/object-table/TableHeader.js.map +1 -1
  272. package/build/browser/object-table/TableHeader.module.css +11 -3
  273. package/build/browser/object-table/TableHeader.module.css.js +1 -0
  274. package/build/browser/object-table/TableHeaderWithPopover.js +53 -22
  275. package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
  276. package/build/browser/object-table/TableHeaderWithPopover.module.css +44 -25
  277. package/build/browser/object-table/TableHeaderWithPopover.module.css.js +3 -1
  278. package/build/browser/object-table/TableRow.js +10 -3
  279. package/build/browser/object-table/TableRow.js.map +1 -1
  280. package/build/browser/object-table/TableRow.module.css +4 -1
  281. package/build/browser/object-table/components/AsyncValueCell.js +35 -0
  282. package/build/browser/object-table/components/AsyncValueCell.js.map +1 -0
  283. package/build/browser/object-table/hooks/useColumnDefs.js +20 -4
  284. package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
  285. package/build/browser/object-table/hooks/useColumnResize.js +45 -0
  286. package/build/browser/object-table/hooks/useColumnResize.js.map +1 -0
  287. package/build/browser/object-table/hooks/useColumnVisibility.js +52 -20
  288. package/build/browser/object-table/hooks/useColumnVisibility.js.map +1 -1
  289. package/build/browser/object-table/hooks/useEditableTable.js +85 -0
  290. package/build/browser/object-table/hooks/useEditableTable.js.map +1 -0
  291. package/build/browser/object-table/hooks/useFunctionColumnsData.js +270 -0
  292. package/build/browser/object-table/hooks/useFunctionColumnsData.js.map +1 -0
  293. package/build/browser/object-table/hooks/useObjectTableData.js +58 -7
  294. package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
  295. package/build/browser/object-table/hooks/useRowSelection.js +40 -16
  296. package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
  297. package/build/browser/object-table/hooks/useSelectionColumn.js +15 -6
  298. package/build/browser/object-table/hooks/useSelectionColumn.js.map +1 -1
  299. package/build/browser/object-table/utils/AsyncCellData.js +30 -0
  300. package/build/browser/object-table/utils/AsyncCellData.js.map +1 -0
  301. package/build/browser/object-table/utils/constants.js +1 -0
  302. package/build/browser/object-table/utils/constants.js.map +1 -1
  303. package/build/browser/object-table/utils/getCellId.js +20 -0
  304. package/build/browser/object-table/utils/getCellId.js.map +1 -0
  305. package/build/browser/object-table/utils/types.js +2 -0
  306. package/build/browser/object-table/utils/types.js.map +1 -0
  307. package/build/browser/pdf-viewer/PdfRenderer.js +88 -0
  308. package/build/browser/pdf-viewer/PdfRenderer.js.map +1 -0
  309. package/build/browser/pdf-viewer/PdfViewer.js +197 -0
  310. package/build/browser/pdf-viewer/PdfViewer.js.map +1 -0
  311. package/build/browser/pdf-viewer/PdfViewer.module.css +95 -0
  312. package/build/browser/pdf-viewer/PdfViewer.module.css.js +16 -0
  313. package/build/browser/pdf-viewer/PdfViewerAnnotationLayer.js +74 -0
  314. package/build/browser/pdf-viewer/PdfViewerAnnotationLayer.js.map +1 -0
  315. package/build/browser/pdf-viewer/PdfViewerAnnotationLayer.module.css +65 -0
  316. package/build/browser/pdf-viewer/PdfViewerAnnotationLayer.module.css.js +11 -0
  317. package/build/browser/pdf-viewer/PdfViewerSearchBar.js +84 -0
  318. package/build/browser/pdf-viewer/PdfViewerSearchBar.js.map +1 -0
  319. package/build/browser/pdf-viewer/PdfViewerSearchBar.module.css +65 -0
  320. package/build/browser/pdf-viewer/PdfViewerSearchBar.module.css.js +10 -0
  321. package/build/browser/pdf-viewer/PdfViewerSidebar.js +74 -0
  322. package/build/browser/pdf-viewer/PdfViewerSidebar.js.map +1 -0
  323. package/build/browser/pdf-viewer/PdfViewerSidebar.module.css +46 -0
  324. package/build/browser/pdf-viewer/PdfViewerSidebar.module.css.js +11 -0
  325. package/build/browser/pdf-viewer/PdfViewerThumbnail.js +100 -0
  326. package/build/browser/pdf-viewer/PdfViewerThumbnail.js.map +1 -0
  327. package/build/browser/pdf-viewer/PdfViewerThumbnail.module.css +26 -0
  328. package/build/browser/pdf-viewer/PdfViewerThumbnail.module.css.js +8 -0
  329. package/build/browser/pdf-viewer/PdfViewerToolbar.js +167 -0
  330. package/build/browser/pdf-viewer/PdfViewerToolbar.js.map +1 -0
  331. package/build/browser/pdf-viewer/PdfViewerToolbar.module.css +86 -0
  332. package/build/browser/pdf-viewer/PdfViewerToolbar.module.css.js +12 -0
  333. package/build/browser/pdf-viewer/constants.js +43 -0
  334. package/build/browser/pdf-viewer/constants.js.map +1 -0
  335. package/build/browser/pdf-viewer/hooks/usePdfAnnotationPortals.js +54 -0
  336. package/build/browser/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -0
  337. package/build/browser/pdf-viewer/hooks/usePdfDocument.js +67 -0
  338. package/build/browser/pdf-viewer/hooks/usePdfDocument.js.map +1 -0
  339. package/build/browser/pdf-viewer/hooks/usePdfViewer.js +69 -0
  340. package/build/browser/pdf-viewer/hooks/usePdfViewer.js.map +1 -0
  341. package/build/browser/pdf-viewer/hooks/usePdfViewerSearch.js +106 -0
  342. package/build/browser/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -0
  343. package/build/browser/pdf-viewer/hooks/usePdfViewerSync.js +71 -0
  344. package/build/browser/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -0
  345. package/build/browser/pdf-viewer/types.js +2 -0
  346. package/build/browser/pdf-viewer/types.js.map +1 -0
  347. package/build/browser/public/experimental.js +9 -0
  348. package/build/browser/public/experimental.js.map +1 -1
  349. package/build/browser/shared/ErrorBoundary.js +62 -0
  350. package/build/browser/shared/ErrorBoundary.js.map +1 -0
  351. package/build/browser/shared/ErrorBoundary.module.css +55 -0
  352. package/build/browser/shared/ErrorBoundary.module.css.js +8 -0
  353. package/build/browser/shared/assertUnreachable.js +25 -0
  354. package/build/browser/shared/assertUnreachable.js.map +1 -0
  355. package/build/browser/shared/typedMemo.js +25 -0
  356. package/build/browser/shared/typedMemo.js.map +1 -0
  357. package/build/browser/styles.css +3936 -220
  358. package/build/cjs/public/experimental.cjs +6675 -312
  359. package/build/cjs/public/experimental.cjs.map +1 -1
  360. package/build/cjs/public/experimental.css +2573 -107
  361. package/build/cjs/public/experimental.css.map +1 -1
  362. package/build/cjs/public/experimental.d.cts +673 -68
  363. package/build/esm/action-form/ActionForm.js +113 -0
  364. package/build/esm/action-form/ActionForm.js.map +1 -0
  365. package/build/esm/action-form/ActionFormApi.js.map +1 -1
  366. package/build/esm/action-form/BaseForm.js +70 -0
  367. package/build/esm/action-form/BaseForm.js.map +1 -0
  368. package/build/esm/action-form/FormFieldApi.js.map +1 -1
  369. package/build/esm/action-form/fields/DropdownField.js +104 -0
  370. package/build/esm/action-form/fields/DropdownField.js.map +1 -0
  371. package/build/esm/action-form/fields/FieldBridge.js +45 -0
  372. package/build/esm/action-form/fields/FieldBridge.js.map +1 -0
  373. package/build/esm/action-form/fields/FormFieldRenderer.js +79 -0
  374. package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -0
  375. package/build/esm/action-form/fields/TextInputField.js +37 -0
  376. package/build/esm/action-form/fields/TextInputField.js.map +1 -0
  377. package/build/esm/action-form/utils/coerceFieldValue.js +93 -0
  378. package/build/esm/action-form/utils/coerceFieldValue.js.map +1 -0
  379. package/build/esm/action-form/utils/getDefaultFieldComponent.js +56 -0
  380. package/build/esm/action-form/utils/getDefaultFieldComponent.js.map +1 -0
  381. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js +33 -0
  382. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js.map +1 -0
  383. package/build/esm/base-components/action-button/ActionButton.js +31 -0
  384. package/build/esm/base-components/action-button/ActionButton.js.map +1 -0
  385. package/build/esm/base-components/action-button/ActionButton.module.css +66 -0
  386. package/build/esm/base-components/checkbox/Checkbox.module.css +1 -5
  387. package/build/esm/base-components/combobox/Combobox.js +146 -0
  388. package/build/esm/base-components/combobox/Combobox.js.map +1 -0
  389. package/build/esm/base-components/combobox/Combobox.module.css +357 -0
  390. package/build/esm/base-components/dialog/Dialog.js +52 -0
  391. package/build/esm/base-components/dialog/Dialog.js.map +1 -0
  392. package/build/esm/base-components/dialog/Dialog.module.css +93 -0
  393. package/build/esm/base-components/draggable-list/DraggableList.js +157 -0
  394. package/build/esm/base-components/draggable-list/DraggableList.js.map +1 -0
  395. package/build/esm/base-components/draggable-list/DraggableList.module.css +100 -0
  396. package/build/esm/base-components/search-bar/SearchBar.js +44 -0
  397. package/build/esm/base-components/search-bar/SearchBar.js.map +1 -0
  398. package/build/esm/base-components/search-bar/SearchBar.module.css +53 -0
  399. package/build/esm/base-components/select/Select.js +95 -0
  400. package/build/esm/base-components/select/Select.js.map +1 -0
  401. package/build/esm/base-components/select/Select.module.css +235 -0
  402. package/build/esm/base-components/skeleton/SkeletonBar.js +36 -0
  403. package/build/esm/base-components/skeleton/SkeletonBar.js.map +1 -0
  404. package/build/esm/base-components/skeleton/SkeletonBar.module.css +39 -0
  405. package/build/esm/base-components/switch/Switch.js +33 -0
  406. package/build/esm/base-components/switch/Switch.js.map +1 -0
  407. package/build/esm/base-components/switch/Switch.module.css +91 -0
  408. package/build/esm/base-components/tooltip/Tooltip.js +91 -0
  409. package/build/esm/base-components/tooltip/Tooltip.js.map +1 -0
  410. package/build/esm/base-components/tooltip/Tooltip.module.css +70 -0
  411. package/build/esm/base-components/tooltip/index.js +18 -0
  412. package/build/esm/base-components/tooltip/index.js.map +1 -0
  413. package/build/esm/filter-list/FilterInput.js +132 -0
  414. package/build/esm/filter-list/FilterInput.js.map +1 -0
  415. package/build/esm/filter-list/FilterList.js +128 -0
  416. package/build/esm/filter-list/FilterList.js.map +1 -0
  417. package/build/esm/filter-list/FilterListApi.js.map +1 -1
  418. package/build/esm/filter-list/FilterListItemApi.js.map +1 -1
  419. package/build/esm/filter-list/base/AddFilterPopover.js +45 -0
  420. package/build/esm/filter-list/base/AddFilterPopover.js.map +1 -0
  421. package/build/esm/filter-list/base/AddFilterPopover.module.css +83 -0
  422. package/build/esm/filter-list/base/BaseFilterList.js +90 -0
  423. package/build/esm/filter-list/base/BaseFilterList.js.map +1 -0
  424. package/build/esm/filter-list/base/BaseFilterListApi.js +2 -0
  425. package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -0
  426. package/build/esm/filter-list/base/DragHandleIcon.js +51 -0
  427. package/build/esm/filter-list/base/DragHandleIcon.js.map +1 -0
  428. package/build/esm/filter-list/base/FilterIcons.js +98 -0
  429. package/build/esm/filter-list/base/FilterIcons.js.map +1 -0
  430. package/build/esm/filter-list/base/FilterList.module.css +132 -0
  431. package/build/esm/filter-list/base/FilterListContent.js +198 -0
  432. package/build/esm/filter-list/base/FilterListContent.js.map +1 -0
  433. package/build/esm/filter-list/base/FilterListContent.module.css +33 -0
  434. package/build/esm/filter-list/base/FilterListHeader.js +58 -0
  435. package/build/esm/filter-list/base/FilterListHeader.js.map +1 -0
  436. package/build/esm/filter-list/base/FilterListHeader.module.css +123 -0
  437. package/build/esm/filter-list/base/FilterListItem.js +87 -0
  438. package/build/esm/filter-list/base/FilterListItem.js.map +1 -0
  439. package/build/esm/filter-list/base/FilterListItem.module.css +126 -0
  440. package/build/esm/filter-list/base/SortableFilterListItem.js +63 -0
  441. package/build/esm/filter-list/base/SortableFilterListItem.js.map +1 -0
  442. package/build/esm/filter-list/base/index.js +21 -0
  443. package/build/esm/filter-list/base/index.js.map +1 -0
  444. package/build/esm/filter-list/base/inputs/CheckboxListInput.js +83 -0
  445. package/build/esm/filter-list/base/inputs/CheckboxListInput.js.map +1 -0
  446. package/build/esm/filter-list/base/inputs/CheckboxListInput.module.css +65 -0
  447. package/build/esm/filter-list/base/inputs/CheckboxListSkeleton.js +46 -0
  448. package/build/esm/filter-list/base/inputs/CheckboxListSkeleton.js.map +1 -0
  449. package/build/esm/filter-list/base/inputs/CheckboxListSkeleton.module.css +32 -0
  450. package/build/esm/filter-list/base/inputs/ContainsTextInput.js +85 -0
  451. package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -0
  452. package/build/esm/filter-list/base/inputs/ContainsTextInput.module.css +91 -0
  453. package/build/esm/filter-list/base/inputs/DateRangeInput.js +37 -0
  454. package/build/esm/filter-list/base/inputs/DateRangeInput.js.map +1 -0
  455. package/build/esm/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
  456. package/build/esm/filter-list/base/inputs/ListogramInput.js +103 -0
  457. package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -0
  458. package/build/esm/filter-list/base/inputs/ListogramInput.module.css +106 -0
  459. package/build/esm/filter-list/base/inputs/ListogramSkeleton.js +45 -0
  460. package/build/esm/filter-list/base/inputs/ListogramSkeleton.js.map +1 -0
  461. package/build/esm/filter-list/base/inputs/ListogramSkeleton.module.css +32 -0
  462. package/build/esm/filter-list/base/inputs/MultiDateInput.js +82 -0
  463. package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -0
  464. package/build/esm/filter-list/base/inputs/MultiDateInput.module.css +56 -0
  465. package/build/esm/filter-list/base/inputs/MultiSelectInput.js +93 -0
  466. package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
  467. package/build/esm/filter-list/base/inputs/MultiSelectInput.module.css +38 -0
  468. package/build/esm/filter-list/base/inputs/NullValueWrapper.js +57 -0
  469. package/build/esm/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
  470. package/build/esm/filter-list/base/inputs/NullValueWrapper.module.css +50 -0
  471. package/build/esm/filter-list/base/inputs/NumberRangeInput.js +48 -0
  472. package/build/esm/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
  473. package/build/esm/filter-list/base/inputs/RangeInput.js +157 -0
  474. package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -0
  475. package/build/esm/filter-list/base/inputs/RangeInput.module.css +106 -0
  476. package/build/esm/filter-list/base/inputs/SingleDateInput.js +61 -0
  477. package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -0
  478. package/build/esm/filter-list/base/inputs/SingleDateInput.module.css +64 -0
  479. package/build/esm/filter-list/base/inputs/SingleSelectInput.js +88 -0
  480. package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
  481. package/build/esm/filter-list/base/inputs/SingleSelectInput.module.css +55 -0
  482. package/build/esm/filter-list/base/inputs/TextTagsInput.js +133 -0
  483. package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -0
  484. package/build/esm/filter-list/base/inputs/TextTagsInput.module.css +25 -0
  485. package/build/esm/filter-list/base/inputs/TimelineInput.js +74 -0
  486. package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -0
  487. package/build/esm/filter-list/base/inputs/TimelineInput.module.css +75 -0
  488. package/build/esm/filter-list/base/inputs/ToggleInput.js +43 -0
  489. package/build/esm/filter-list/base/inputs/ToggleInput.js.map +1 -0
  490. package/build/esm/filter-list/base/inputs/ToggleInput.module.css +34 -0
  491. package/build/esm/filter-list/base/inputs/createHistogramBuckets.js +53 -0
  492. package/build/esm/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
  493. package/build/esm/filter-list/base/inputs/dateUtils.js +57 -0
  494. package/build/esm/filter-list/base/inputs/dateUtils.js.map +1 -0
  495. package/build/esm/filter-list/base/inputs/index.js +25 -0
  496. package/build/esm/filter-list/base/inputs/index.js.map +1 -0
  497. package/build/esm/filter-list/base/inputs/shared.module.css +80 -0
  498. package/build/esm/filter-list/base/inputs/useStaleData.js +29 -0
  499. package/build/esm/filter-list/base/inputs/useStaleData.js.map +1 -0
  500. package/build/esm/filter-list/hooks/useFilterListState.js +158 -0
  501. package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -0
  502. package/build/esm/filter-list/hooks/useFilterVisibility.js +68 -0
  503. package/build/esm/filter-list/hooks/useFilterVisibility.js.map +1 -0
  504. package/build/esm/filter-list/hooks/usePropertyAggregation.js +92 -0
  505. package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -0
  506. package/build/esm/filter-list/inputs/CheckboxListFilterInput.js +56 -0
  507. package/build/esm/filter-list/inputs/CheckboxListFilterInput.js.map +1 -0
  508. package/build/esm/filter-list/inputs/ContainsTextFilterInput.js +38 -0
  509. package/build/esm/filter-list/inputs/ContainsTextFilterInput.js.map +1 -0
  510. package/build/esm/filter-list/inputs/DateRangeFilterInput.js +105 -0
  511. package/build/esm/filter-list/inputs/DateRangeFilterInput.js.map +1 -0
  512. package/build/esm/filter-list/inputs/LinkedPropertyInput.js +508 -0
  513. package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -0
  514. package/build/esm/filter-list/inputs/ListogramFilterInput.js +62 -0
  515. package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -0
  516. package/build/esm/filter-list/inputs/MultiDateFilterInput.js +38 -0
  517. package/build/esm/filter-list/inputs/MultiDateFilterInput.js.map +1 -0
  518. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js +55 -0
  519. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -0
  520. package/build/esm/filter-list/inputs/NumberRangeFilterInput.js +105 -0
  521. package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -0
  522. package/build/esm/filter-list/inputs/PropertyFilterInput.js +129 -0
  523. package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -0
  524. package/build/esm/filter-list/inputs/SingleDateFilterInput.js +38 -0
  525. package/build/esm/filter-list/inputs/SingleDateFilterInput.js.map +1 -0
  526. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js +55 -0
  527. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -0
  528. package/build/esm/filter-list/inputs/TextTagsFilterInput.js +54 -0
  529. package/build/esm/filter-list/inputs/TextTagsFilterInput.js.map +1 -0
  530. package/build/esm/filter-list/inputs/TimelineFilterInput.js +49 -0
  531. package/build/esm/filter-list/inputs/TimelineFilterInput.js.map +1 -0
  532. package/build/esm/filter-list/inputs/ToggleFilterInput.js +36 -0
  533. package/build/esm/filter-list/inputs/ToggleFilterInput.js.map +1 -0
  534. package/build/esm/filter-list/types/AggregationTypes.js +2 -0
  535. package/build/esm/filter-list/types/AggregationTypes.js.map +1 -0
  536. package/build/esm/filter-list/types/CustomRendererTypes.js +2 -0
  537. package/build/esm/filter-list/types/CustomRendererTypes.js.map +1 -0
  538. package/build/esm/filter-list/types/KeywordSearchTypes.js +2 -0
  539. package/build/esm/filter-list/types/KeywordSearchTypes.js.map +1 -0
  540. package/build/esm/filter-list/types/LinkedFilterTypes.js +2 -0
  541. package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -0
  542. package/build/esm/filter-list/types/index.js +20 -0
  543. package/build/esm/filter-list/types/index.js.map +1 -0
  544. package/build/esm/filter-list/utils/aggregationHelpers.js +44 -0
  545. package/build/esm/filter-list/utils/aggregationHelpers.js.map +1 -0
  546. package/build/esm/filter-list/utils/coerceFilterValue.js +33 -0
  547. package/build/esm/filter-list/utils/coerceFilterValue.js.map +1 -0
  548. package/build/esm/filter-list/utils/filterStateSerialization.js +42 -0
  549. package/build/esm/filter-list/utils/filterStateSerialization.js.map +1 -0
  550. package/build/esm/filter-list/utils/filterStateToWhereClause.js +375 -0
  551. package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -0
  552. package/build/esm/filter-list/utils/filterValues.js +81 -0
  553. package/build/esm/filter-list/utils/filterValues.js.map +1 -0
  554. package/build/esm/filter-list/utils/getFilterKey.js +34 -0
  555. package/build/esm/filter-list/utils/getFilterKey.js.map +1 -0
  556. package/build/esm/filter-list/utils/getFilterLabel.js +36 -0
  557. package/build/esm/filter-list/utils/getFilterLabel.js.map +1 -0
  558. package/build/esm/object-table/ColumnConfigDialog.js +259 -0
  559. package/build/esm/object-table/ColumnConfigDialog.js.map +1 -0
  560. package/build/esm/object-table/ColumnConfigDialog.module.css +238 -0
  561. package/build/esm/object-table/DefaultCellRenderer.js +61 -0
  562. package/build/esm/object-table/DefaultCellRenderer.js.map +1 -0
  563. package/build/esm/object-table/EditableCell.js +168 -0
  564. package/build/esm/object-table/EditableCell.js.map +1 -0
  565. package/build/esm/object-table/EditableCell.module.css +70 -0
  566. package/build/esm/object-table/LoadingCell.js +6 -3
  567. package/build/esm/object-table/LoadingCell.js.map +1 -1
  568. package/build/esm/object-table/LoadingRow.js +2 -1
  569. package/build/esm/object-table/LoadingRow.js.map +1 -1
  570. package/build/esm/object-table/LoadingStateTable.js +4 -4
  571. package/build/esm/object-table/LoadingStateTable.js.map +1 -1
  572. package/build/esm/object-table/MultiColumnSortDialog.js +181 -0
  573. package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -0
  574. package/build/esm/object-table/MultiColumnSortDialog.module.css +191 -0
  575. package/build/esm/object-table/NonIdealState.module.css +2 -3
  576. package/build/esm/object-table/ObjectTable.js +69 -17
  577. package/build/esm/object-table/ObjectTable.js.map +1 -1
  578. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  579. package/build/esm/object-table/SelectionCells.js +16 -4
  580. package/build/esm/object-table/SelectionCells.js.map +1 -1
  581. package/build/esm/object-table/SortableItemsList.js +35 -0
  582. package/build/esm/object-table/SortableItemsList.js.map +1 -0
  583. package/build/esm/object-table/Table.js +29 -4
  584. package/build/esm/object-table/Table.js.map +1 -1
  585. package/build/esm/object-table/Table.module.css +18 -3
  586. package/build/esm/object-table/TableBody.js +8 -2
  587. package/build/esm/object-table/TableBody.js.map +1 -1
  588. package/build/esm/object-table/TableBody.module.css +2 -0
  589. package/build/esm/object-table/TableCell.module.css +15 -1
  590. package/build/esm/object-table/TableEditContainer.js +90 -0
  591. package/build/esm/object-table/TableEditContainer.js.map +1 -0
  592. package/build/esm/object-table/TableEditContainer.module.css +71 -0
  593. package/build/esm/object-table/TableHeader.js +97 -7
  594. package/build/esm/object-table/TableHeader.js.map +1 -1
  595. package/build/esm/object-table/TableHeader.module.css +11 -3
  596. package/build/esm/object-table/TableHeaderWithPopover.js +53 -22
  597. package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
  598. package/build/esm/object-table/TableHeaderWithPopover.module.css +44 -25
  599. package/build/esm/object-table/TableRow.js +10 -3
  600. package/build/esm/object-table/TableRow.js.map +1 -1
  601. package/build/esm/object-table/TableRow.module.css +4 -1
  602. package/build/esm/object-table/components/AsyncValueCell.js +35 -0
  603. package/build/esm/object-table/components/AsyncValueCell.js.map +1 -0
  604. package/build/esm/object-table/hooks/useColumnDefs.js +20 -4
  605. package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
  606. package/build/esm/object-table/hooks/useColumnResize.js +45 -0
  607. package/build/esm/object-table/hooks/useColumnResize.js.map +1 -0
  608. package/build/esm/object-table/hooks/useColumnVisibility.js +52 -20
  609. package/build/esm/object-table/hooks/useColumnVisibility.js.map +1 -1
  610. package/build/esm/object-table/hooks/useEditableTable.js +85 -0
  611. package/build/esm/object-table/hooks/useEditableTable.js.map +1 -0
  612. package/build/esm/object-table/hooks/useFunctionColumnsData.js +270 -0
  613. package/build/esm/object-table/hooks/useFunctionColumnsData.js.map +1 -0
  614. package/build/esm/object-table/hooks/useObjectTableData.js +58 -7
  615. package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
  616. package/build/esm/object-table/hooks/useRowSelection.js +40 -16
  617. package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
  618. package/build/esm/object-table/hooks/useSelectionColumn.js +15 -6
  619. package/build/esm/object-table/hooks/useSelectionColumn.js.map +1 -1
  620. package/build/esm/object-table/utils/AsyncCellData.js +30 -0
  621. package/build/esm/object-table/utils/AsyncCellData.js.map +1 -0
  622. package/build/esm/object-table/utils/constants.js +1 -0
  623. package/build/esm/object-table/utils/constants.js.map +1 -1
  624. package/build/esm/object-table/utils/getCellId.js +20 -0
  625. package/build/esm/object-table/utils/getCellId.js.map +1 -0
  626. package/build/esm/object-table/utils/types.js +2 -0
  627. package/build/esm/object-table/utils/types.js.map +1 -0
  628. package/build/esm/pdf-viewer/PdfRenderer.js +88 -0
  629. package/build/esm/pdf-viewer/PdfRenderer.js.map +1 -0
  630. package/build/esm/pdf-viewer/PdfViewer.js +197 -0
  631. package/build/esm/pdf-viewer/PdfViewer.js.map +1 -0
  632. package/build/esm/pdf-viewer/PdfViewer.module.css +95 -0
  633. package/build/esm/pdf-viewer/PdfViewerAnnotationLayer.js +74 -0
  634. package/build/esm/pdf-viewer/PdfViewerAnnotationLayer.js.map +1 -0
  635. package/build/esm/pdf-viewer/PdfViewerAnnotationLayer.module.css +65 -0
  636. package/build/esm/pdf-viewer/PdfViewerSearchBar.js +84 -0
  637. package/build/esm/pdf-viewer/PdfViewerSearchBar.js.map +1 -0
  638. package/build/esm/pdf-viewer/PdfViewerSearchBar.module.css +65 -0
  639. package/build/esm/pdf-viewer/PdfViewerSidebar.js +74 -0
  640. package/build/esm/pdf-viewer/PdfViewerSidebar.js.map +1 -0
  641. package/build/esm/pdf-viewer/PdfViewerSidebar.module.css +46 -0
  642. package/build/esm/pdf-viewer/PdfViewerThumbnail.js +100 -0
  643. package/build/esm/pdf-viewer/PdfViewerThumbnail.js.map +1 -0
  644. package/build/esm/pdf-viewer/PdfViewerThumbnail.module.css +26 -0
  645. package/build/esm/pdf-viewer/PdfViewerToolbar.js +167 -0
  646. package/build/esm/pdf-viewer/PdfViewerToolbar.js.map +1 -0
  647. package/build/esm/pdf-viewer/PdfViewerToolbar.module.css +86 -0
  648. package/build/esm/pdf-viewer/constants.js +43 -0
  649. package/build/esm/pdf-viewer/constants.js.map +1 -0
  650. package/build/esm/pdf-viewer/hooks/usePdfAnnotationPortals.js +54 -0
  651. package/build/esm/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -0
  652. package/build/esm/pdf-viewer/hooks/usePdfDocument.js +67 -0
  653. package/build/esm/pdf-viewer/hooks/usePdfDocument.js.map +1 -0
  654. package/build/esm/pdf-viewer/hooks/usePdfViewer.js +69 -0
  655. package/build/esm/pdf-viewer/hooks/usePdfViewer.js.map +1 -0
  656. package/build/esm/pdf-viewer/hooks/usePdfViewerSearch.js +106 -0
  657. package/build/esm/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -0
  658. package/build/esm/pdf-viewer/hooks/usePdfViewerSync.js +71 -0
  659. package/build/esm/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -0
  660. package/build/esm/pdf-viewer/types.js +2 -0
  661. package/build/esm/pdf-viewer/types.js.map +1 -0
  662. package/build/esm/public/experimental.js +9 -0
  663. package/build/esm/public/experimental.js.map +1 -1
  664. package/build/esm/shared/ErrorBoundary.js +62 -0
  665. package/build/esm/shared/ErrorBoundary.js.map +1 -0
  666. package/build/esm/shared/ErrorBoundary.module.css +55 -0
  667. package/build/esm/shared/assertUnreachable.js +25 -0
  668. package/build/esm/shared/assertUnreachable.js.map +1 -0
  669. package/build/esm/shared/typedMemo.js +25 -0
  670. package/build/esm/shared/typedMemo.js.map +1 -0
  671. package/build/types/action-form/ActionForm.d.ts +4 -0
  672. package/build/types/action-form/ActionForm.d.ts.map +1 -0
  673. package/build/types/action-form/ActionFormApi.d.ts +48 -32
  674. package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
  675. package/build/types/action-form/BaseForm.d.ts +3 -0
  676. package/build/types/action-form/BaseForm.d.ts.map +1 -0
  677. package/build/types/action-form/FormFieldApi.d.ts +93 -42
  678. package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
  679. package/build/types/action-form/fields/DropdownField.d.ts +6 -0
  680. package/build/types/action-form/fields/DropdownField.d.ts.map +1 -0
  681. package/build/types/action-form/fields/FieldBridge.d.ts +9 -0
  682. package/build/types/action-form/fields/FieldBridge.d.ts.map +1 -0
  683. package/build/types/action-form/fields/FormFieldRenderer.d.ts +8 -0
  684. package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -0
  685. package/build/types/action-form/fields/TextInputField.d.ts +5 -0
  686. package/build/types/action-form/fields/TextInputField.d.ts.map +1 -0
  687. package/build/types/action-form/utils/coerceFieldValue.d.ts +10 -0
  688. package/build/types/action-form/utils/coerceFieldValue.d.ts.map +1 -0
  689. package/build/types/action-form/utils/getDefaultFieldComponent.d.ts +6 -0
  690. package/build/types/action-form/utils/getDefaultFieldComponent.d.ts.map +1 -0
  691. package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts +6 -0
  692. package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts.map +1 -0
  693. package/build/types/base-components/action-button/ActionButton.d.ts +5 -0
  694. package/build/types/base-components/action-button/ActionButton.d.ts.map +1 -0
  695. package/build/types/base-components/combobox/Combobox.d.ts +60 -0
  696. package/build/types/base-components/combobox/Combobox.d.ts.map +1 -0
  697. package/build/types/base-components/dialog/Dialog.d.ts +10 -0
  698. package/build/types/base-components/dialog/Dialog.d.ts.map +1 -0
  699. package/build/types/base-components/draggable-list/DraggableList.d.ts +17 -0
  700. package/build/types/base-components/draggable-list/DraggableList.d.ts.map +1 -0
  701. package/build/types/base-components/search-bar/SearchBar.d.ts +11 -0
  702. package/build/types/base-components/search-bar/SearchBar.d.ts.map +1 -0
  703. package/build/types/base-components/select/Select.d.ts +40 -0
  704. package/build/types/base-components/select/Select.d.ts.map +1 -0
  705. package/build/types/base-components/skeleton/SkeletonBar.d.ts +9 -0
  706. package/build/types/base-components/skeleton/SkeletonBar.d.ts.map +1 -0
  707. package/build/types/base-components/switch/Switch.d.ts +10 -0
  708. package/build/types/base-components/switch/Switch.d.ts.map +1 -0
  709. package/build/types/base-components/tooltip/Tooltip.d.ts +31 -0
  710. package/build/types/base-components/tooltip/Tooltip.d.ts.map +1 -0
  711. package/build/types/base-components/tooltip/index.d.ts +1 -0
  712. package/build/types/base-components/tooltip/index.d.ts.map +1 -0
  713. package/build/types/filter-list/FilterInput.d.ts +15 -0
  714. package/build/types/filter-list/FilterInput.d.ts.map +1 -0
  715. package/build/types/filter-list/FilterList.d.ts +4 -0
  716. package/build/types/filter-list/FilterList.d.ts.map +1 -0
  717. package/build/types/filter-list/FilterListApi.d.ts +106 -22
  718. package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
  719. package/build/types/filter-list/FilterListItemApi.d.ts +114 -53
  720. package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
  721. package/build/types/filter-list/base/AddFilterPopover.d.ts +12 -0
  722. package/build/types/filter-list/base/AddFilterPopover.d.ts.map +1 -0
  723. package/build/types/filter-list/base/BaseFilterList.d.ts +3 -0
  724. package/build/types/filter-list/base/BaseFilterList.d.ts.map +1 -0
  725. package/build/types/filter-list/base/BaseFilterListApi.d.ts +29 -0
  726. package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -0
  727. package/build/types/filter-list/base/DragHandleIcon.d.ts +2 -0
  728. package/build/types/filter-list/base/DragHandleIcon.d.ts.map +1 -0
  729. package/build/types/filter-list/base/FilterIcons.d.ts +11 -0
  730. package/build/types/filter-list/base/FilterIcons.d.ts.map +1 -0
  731. package/build/types/filter-list/base/FilterListContent.d.ts +17 -0
  732. package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -0
  733. package/build/types/filter-list/base/FilterListHeader.d.ts +14 -0
  734. package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -0
  735. package/build/types/filter-list/base/FilterListItem.d.ts +20 -0
  736. package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -0
  737. package/build/types/filter-list/base/SortableFilterListItem.d.ts +15 -0
  738. package/build/types/filter-list/base/SortableFilterListItem.d.ts.map +1 -0
  739. package/build/types/filter-list/base/index.d.ts +5 -0
  740. package/build/types/filter-list/base/index.d.ts.map +1 -0
  741. package/build/types/filter-list/base/inputs/CheckboxListInput.d.ts +16 -0
  742. package/build/types/filter-list/base/inputs/CheckboxListInput.d.ts.map +1 -0
  743. package/build/types/filter-list/base/inputs/CheckboxListSkeleton.d.ts +2 -0
  744. package/build/types/filter-list/base/inputs/CheckboxListSkeleton.d.ts.map +1 -0
  745. package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts +13 -0
  746. package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts.map +1 -0
  747. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts +17 -0
  748. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts.map +1 -0
  749. package/build/types/filter-list/base/inputs/ListogramInput.d.ts +20 -0
  750. package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -0
  751. package/build/types/filter-list/base/inputs/ListogramSkeleton.d.ts +2 -0
  752. package/build/types/filter-list/base/inputs/ListogramSkeleton.d.ts.map +1 -0
  753. package/build/types/filter-list/base/inputs/MultiDateInput.d.ts +12 -0
  754. package/build/types/filter-list/base/inputs/MultiDateInput.d.ts.map +1 -0
  755. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts +18 -0
  756. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -0
  757. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts +15 -0
  758. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts.map +1 -0
  759. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts +17 -0
  760. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts.map +1 -0
  761. package/build/types/filter-list/base/inputs/RangeInput.d.ts +30 -0
  762. package/build/types/filter-list/base/inputs/RangeInput.d.ts.map +1 -0
  763. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts +13 -0
  764. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -0
  765. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts +18 -0
  766. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts.map +1 -0
  767. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts +18 -0
  768. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts.map +1 -0
  769. package/build/types/filter-list/base/inputs/TimelineInput.d.ts +11 -0
  770. package/build/types/filter-list/base/inputs/TimelineInput.d.ts.map +1 -0
  771. package/build/types/filter-list/base/inputs/ToggleInput.d.ts +10 -0
  772. package/build/types/filter-list/base/inputs/ToggleInput.d.ts.map +1 -0
  773. package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts +16 -0
  774. package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts.map +1 -0
  775. package/build/types/filter-list/base/inputs/dateUtils.d.ts +17 -0
  776. package/build/types/filter-list/base/inputs/dateUtils.d.ts.map +1 -0
  777. package/build/types/filter-list/base/inputs/index.d.ts +8 -0
  778. package/build/types/filter-list/base/inputs/index.d.ts.map +1 -0
  779. package/build/types/filter-list/base/inputs/useStaleData.d.ts +1 -0
  780. package/build/types/filter-list/base/inputs/useStaleData.d.ts.map +1 -0
  781. package/build/types/filter-list/hooks/useFilterListState.d.ts +12 -0
  782. package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -0
  783. package/build/types/filter-list/hooks/useFilterVisibility.d.ts +8 -0
  784. package/build/types/filter-list/hooks/useFilterVisibility.d.ts.map +1 -0
  785. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +17 -0
  786. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -0
  787. package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts +14 -0
  788. package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts.map +1 -0
  789. package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts +10 -0
  790. package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts.map +1 -0
  791. package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts +12 -0
  792. package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts.map +1 -0
  793. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts +21 -0
  794. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -0
  795. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts +16 -0
  796. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -0
  797. package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts +9 -0
  798. package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts.map +1 -0
  799. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts +13 -0
  800. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -0
  801. package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts +12 -0
  802. package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -0
  803. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts +17 -0
  804. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -0
  805. package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts +9 -0
  806. package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts.map +1 -0
  807. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts +13 -0
  808. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -0
  809. package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts +13 -0
  810. package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts.map +1 -0
  811. package/build/types/filter-list/inputs/TimelineFilterInput.d.ts +9 -0
  812. package/build/types/filter-list/inputs/TimelineFilterInput.d.ts.map +1 -0
  813. package/build/types/filter-list/inputs/ToggleFilterInput.d.ts +9 -0
  814. package/build/types/filter-list/inputs/ToggleFilterInput.d.ts.map +1 -0
  815. package/build/types/filter-list/types/AggregationTypes.d.ts +5 -0
  816. package/build/types/filter-list/types/AggregationTypes.d.ts.map +1 -0
  817. package/build/types/filter-list/types/CustomRendererTypes.d.ts +76 -0
  818. package/build/types/filter-list/types/CustomRendererTypes.d.ts.map +1 -0
  819. package/build/types/filter-list/types/KeywordSearchTypes.d.ts +56 -0
  820. package/build/types/filter-list/types/KeywordSearchTypes.d.ts.map +1 -0
  821. package/build/types/filter-list/types/LinkedFilterTypes.d.ts +70 -0
  822. package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -0
  823. package/build/types/filter-list/types/index.d.ts +3 -0
  824. package/build/types/filter-list/types/index.d.ts.map +1 -0
  825. package/build/types/filter-list/utils/aggregationHelpers.d.ts +9 -0
  826. package/build/types/filter-list/utils/aggregationHelpers.d.ts.map +1 -0
  827. package/build/types/filter-list/utils/coerceFilterValue.d.ts +11 -0
  828. package/build/types/filter-list/utils/coerceFilterValue.d.ts.map +1 -0
  829. package/build/types/filter-list/utils/filterStateSerialization.d.ts +3 -0
  830. package/build/types/filter-list/utils/filterStateSerialization.d.ts.map +1 -0
  831. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts +20 -0
  832. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -0
  833. package/build/types/filter-list/utils/filterValues.d.ts +7 -0
  834. package/build/types/filter-list/utils/filterValues.d.ts.map +1 -0
  835. package/build/types/filter-list/utils/getFilterKey.d.ts +3 -0
  836. package/build/types/filter-list/utils/getFilterKey.d.ts.map +1 -0
  837. package/build/types/filter-list/utils/getFilterLabel.d.ts +3 -0
  838. package/build/types/filter-list/utils/getFilterLabel.d.ts.map +1 -0
  839. package/build/types/object-table/ColumnConfigDialog.d.ts +18 -0
  840. package/build/types/object-table/ColumnConfigDialog.d.ts.map +1 -0
  841. package/build/types/object-table/DefaultCellRenderer.d.ts +3 -0
  842. package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -0
  843. package/build/types/object-table/EditableCell.d.ts +26 -0
  844. package/build/types/object-table/EditableCell.d.ts.map +1 -0
  845. package/build/types/object-table/LoadingCell.d.ts +1 -0
  846. package/build/types/object-table/LoadingCell.d.ts.map +1 -1
  847. package/build/types/object-table/LoadingRow.d.ts.map +1 -1
  848. package/build/types/object-table/LoadingStateTable.d.ts.map +1 -1
  849. package/build/types/object-table/MultiColumnSortDialog.d.ts +15 -0
  850. package/build/types/object-table/MultiColumnSortDialog.d.ts.map +1 -0
  851. package/build/types/object-table/ObjectTable.d.ts +1 -9
  852. package/build/types/object-table/ObjectTable.d.ts.map +1 -1
  853. package/build/types/object-table/ObjectTableApi.d.ts +150 -20
  854. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  855. package/build/types/object-table/SortableItemsList.d.ts +13 -0
  856. package/build/types/object-table/SortableItemsList.d.ts.map +1 -0
  857. package/build/types/object-table/Table.d.ts +26 -1
  858. package/build/types/object-table/Table.d.ts.map +1 -1
  859. package/build/types/object-table/TableBody.d.ts +4 -1
  860. package/build/types/object-table/TableBody.d.ts.map +1 -1
  861. package/build/types/object-table/TableEditContainer.d.ts +9 -0
  862. package/build/types/object-table/TableEditContainer.d.ts.map +1 -0
  863. package/build/types/object-table/TableHeader.d.ts +3 -1
  864. package/build/types/object-table/TableHeader.d.ts.map +1 -1
  865. package/build/types/object-table/TableHeaderWithPopover.d.ts +30 -6
  866. package/build/types/object-table/TableHeaderWithPopover.d.ts.map +1 -1
  867. package/build/types/object-table/TableRow.d.ts +4 -1
  868. package/build/types/object-table/TableRow.d.ts.map +1 -1
  869. package/build/types/object-table/components/AsyncValueCell.d.ts +5 -0
  870. package/build/types/object-table/components/AsyncValueCell.d.ts.map +1 -0
  871. package/build/types/object-table/hooks/useColumnDefs.d.ts.map +1 -1
  872. package/build/types/object-table/hooks/useColumnResize.d.ts +10 -0
  873. package/build/types/object-table/hooks/useColumnResize.d.ts.map +1 -0
  874. package/build/types/object-table/hooks/useColumnVisibility.d.ts +18 -7
  875. package/build/types/object-table/hooks/useColumnVisibility.d.ts.map +1 -1
  876. package/build/types/object-table/hooks/useEditableTable.d.ts +17 -0
  877. package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -0
  878. package/build/types/object-table/hooks/useFunctionColumnsData.d.ts +13 -0
  879. package/build/types/object-table/hooks/useFunctionColumnsData.d.ts.map +1 -0
  880. package/build/types/object-table/hooks/useObjectTableData.d.ts +13 -5
  881. package/build/types/object-table/hooks/useObjectTableData.d.ts.map +1 -1
  882. package/build/types/object-table/hooks/useRowSelection.d.ts +8 -6
  883. package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
  884. package/build/types/object-table/utils/AsyncCellData.d.ts +8 -0
  885. package/build/types/object-table/utils/AsyncCellData.d.ts.map +1 -0
  886. package/build/types/object-table/utils/constants.d.ts +1 -0
  887. package/build/types/object-table/utils/constants.d.ts.map +1 -1
  888. package/build/types/object-table/utils/getCellId.d.ts +2 -0
  889. package/build/types/object-table/utils/getCellId.d.ts.map +1 -0
  890. package/build/types/object-table/utils/types.d.ts +39 -0
  891. package/build/types/object-table/utils/types.d.ts.map +1 -0
  892. package/build/types/pdf-viewer/PdfRenderer.d.ts +8 -0
  893. package/build/types/pdf-viewer/PdfRenderer.d.ts.map +1 -0
  894. package/build/types/pdf-viewer/PdfViewer.d.ts +4 -0
  895. package/build/types/pdf-viewer/PdfViewer.d.ts.map +1 -0
  896. package/build/types/pdf-viewer/PdfViewerAnnotationLayer.d.ts +10 -0
  897. package/build/types/pdf-viewer/PdfViewerAnnotationLayer.d.ts.map +1 -0
  898. package/build/types/pdf-viewer/PdfViewerSearchBar.d.ts +12 -0
  899. package/build/types/pdf-viewer/PdfViewerSearchBar.d.ts.map +1 -0
  900. package/build/types/pdf-viewer/PdfViewerSidebar.d.ts +10 -0
  901. package/build/types/pdf-viewer/PdfViewerSidebar.d.ts.map +1 -0
  902. package/build/types/pdf-viewer/PdfViewerThumbnail.d.ts +10 -0
  903. package/build/types/pdf-viewer/PdfViewerThumbnail.d.ts.map +1 -0
  904. package/build/types/pdf-viewer/PdfViewerToolbar.d.ts +14 -0
  905. package/build/types/pdf-viewer/PdfViewerToolbar.d.ts.map +1 -0
  906. package/build/types/pdf-viewer/constants.d.ts +17 -0
  907. package/build/types/pdf-viewer/constants.d.ts.map +1 -0
  908. package/build/types/pdf-viewer/hooks/usePdfAnnotationPortals.d.ts +10 -0
  909. package/build/types/pdf-viewer/hooks/usePdfAnnotationPortals.d.ts.map +1 -0
  910. package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts +9 -0
  911. package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts.map +1 -0
  912. package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts +9 -0
  913. package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts.map +1 -0
  914. package/build/types/pdf-viewer/hooks/usePdfViewerSearch.d.ts +15 -0
  915. package/build/types/pdf-viewer/hooks/usePdfViewerSearch.d.ts.map +1 -0
  916. package/build/types/pdf-viewer/hooks/usePdfViewerSync.d.ts +15 -0
  917. package/build/types/pdf-viewer/hooks/usePdfViewerSync.d.ts.map +1 -0
  918. package/build/types/pdf-viewer/types.d.ts +44 -0
  919. package/build/types/pdf-viewer/types.d.ts.map +1 -0
  920. package/build/types/public/experimental.d.ts +13 -3
  921. package/build/types/public/experimental.d.ts.map +1 -1
  922. package/build/types/shared/ErrorBoundary.d.ts +19 -0
  923. package/build/types/shared/ErrorBoundary.d.ts.map +1 -0
  924. package/build/types/shared/assertUnreachable.d.ts +6 -0
  925. package/build/types/shared/assertUnreachable.d.ts.map +1 -0
  926. package/build/types/shared/typedMemo.d.ts +6 -0
  927. package/build/types/shared/typedMemo.d.ts.map +1 -0
  928. package/package.json +13 -5
  929. package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js +0 -147
  930. package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js.map +0 -1
  931. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js +0 -508
  932. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js.map +0 -1
  933. package/build/browser/object-table/hooks/__tests__/useColumnPinning.test.js +0 -266
  934. package/build/browser/object-table/hooks/__tests__/useColumnPinning.test.js.map +0 -1
  935. package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js +0 -178
  936. package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js.map +0 -1
  937. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js +0 -227
  938. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js.map +0 -1
  939. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js +0 -548
  940. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js.map +0 -1
  941. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js +0 -275
  942. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js.map +0 -1
  943. package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js +0 -211
  944. package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js.map +0 -1
  945. package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js +0 -147
  946. package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js.map +0 -1
  947. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js +0 -508
  948. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js.map +0 -1
  949. package/build/esm/object-table/hooks/__tests__/useColumnPinning.test.js +0 -266
  950. package/build/esm/object-table/hooks/__tests__/useColumnPinning.test.js.map +0 -1
  951. package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js +0 -178
  952. package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js.map +0 -1
  953. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js +0 -227
  954. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js.map +0 -1
  955. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js +0 -548
  956. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js.map +0 -1
  957. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js +0 -275
  958. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js.map +0 -1
  959. package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js +0 -211
  960. package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js.map +0 -1
  961. package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts +0 -1
  962. package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts.map +0 -1
  963. package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts +0 -1
  964. package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts.map +0 -1
  965. package/build/types/object-table/hooks/__tests__/useColumnPinning.test.d.ts +0 -1
  966. package/build/types/object-table/hooks/__tests__/useColumnPinning.test.d.ts.map +0 -1
  967. package/build/types/object-table/hooks/__tests__/useColumnVisibility.test.d.ts +0 -1
  968. package/build/types/object-table/hooks/__tests__/useColumnVisibility.test.d.ts.map +0 -1
  969. package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts +0 -1
  970. package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts.map +0 -1
  971. package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts +0 -1
  972. package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts.map +0 -1
  973. package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts +0 -1
  974. package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts.map +0 -1
  975. package/build/types/object-table/hooks/__tests__/useTableSorting.test.d.ts +0 -1
  976. package/build/types/object-table/hooks/__tests__/useTableSorting.test.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiColumnSortDialog.js","names":["Button","Menu","Add","CaretDown","Cog","SortAlphabetical","SortAlphabeticalDesc","arrayMove","classNames","React","useCallback","useEffect","useMemo","useState","ActionButton","Dialog","SearchBar","styles","SortableItemsList","MultiColumnSortDialog","isOpen","onClose","onApply","currentSorting","columnOptions","selectedSortColumns","setSelectedSortColumns","menuSearchQuery","setMenuSearchQuery","selectedColumns","sort","column","find","col","id","push","direction","desc","handleAddColumn","prev","handleRemoveSortColumn","filter","item","handleReorderSortColumns","fromIndex","toIndex","items","handleToggleSortDirection","map","handleApply","sortingState","availableColumns","canSort","some","selected","filteredAvailableColumns","query","toLowerCase","trim","name","includes","handleMenuSearchChange","event","target","value","handleMenuOpenChange","open","sortableItems","label","content","createElement","className","sortColumnItem","sortColumnName","truncate","sortDirectionButton","onClick","sortIcon","footer","Fragment","variant","handleKeyDown","stopPropagation","onOpenChange","title","DialogTitle","sortColumnsList","onReorder","onRemove","sortableList","Root","Trigger","addColumnButton","disabled","length","addIcon","addColumnText","color","Portal","Positioner","menuPositioner","sideOffset","Popup","dropdownMenu","onChange","placeholder","menuSearchContainer","onKeyDown","AvailableColumnMenuItem","key","onAddColumn","menuEmptyState","Item","dropdownItem"],"sources":["MultiColumnSortDialog.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Menu } from \"@base-ui/react/menu\";\nimport {\n Add,\n CaretDown,\n Cog,\n SortAlphabetical,\n SortAlphabeticalDesc,\n} from \"@blueprintjs/icons\";\nimport { arrayMove } from \"@dnd-kit/sortable\";\nimport type { SortingState } from \"@tanstack/react-table\";\nimport classNames from \"classnames\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { ActionButton } from \"../base-components/action-button/ActionButton.js\";\nimport { Dialog } from \"../base-components/dialog/Dialog.js\";\nimport { SearchBar } from \"../base-components/search-bar/SearchBar.js\";\nimport styles from \"./MultiColumnSortDialog.module.css\";\nimport { type SortableItem, SortableItemsList } from \"./SortableItemsList.js\";\nimport type { ColumnOption } from \"./utils/types.js\";\n\nexport interface SortColumnItem extends ColumnOption {\n direction: \"asc\" | \"desc\";\n}\n\ninterface MultiColumnSortDialogProps {\n isOpen: boolean;\n onClose: () => void;\n onApply: (sortColumns: SortingState) => void;\n currentSorting: SortingState;\n columnOptions: ColumnOption[];\n}\n\nexport function MultiColumnSortDialog({\n isOpen,\n onClose,\n onApply,\n currentSorting,\n columnOptions,\n}: MultiColumnSortDialogProps): React.ReactElement {\n const [selectedSortColumns, setSelectedSortColumns] = useState<\n SortColumnItem[]\n >([]);\n const [menuSearchQuery, setMenuSearchQuery] = useState(\"\");\n\n // Initialize selected sort columns from current sorting\n useEffect(() => {\n if (isOpen) {\n const selectedColumns: SortColumnItem[] = [];\n for (const sort of currentSorting) {\n const column = columnOptions.find((col) => col.id === sort.id);\n if (column) {\n selectedColumns.push({\n ...column,\n direction: sort.desc ? \"desc\" : \"asc\",\n });\n }\n }\n setSelectedSortColumns(selectedColumns);\n }\n }, [isOpen, currentSorting, columnOptions]);\n\n const handleAddColumn = useCallback((column: ColumnOption) => {\n setSelectedSortColumns((prev) => [\n ...prev,\n { ...column, direction: \"asc\" },\n ]);\n }, []);\n\n const handleRemoveSortColumn = useCallback((id: string) => {\n setSelectedSortColumns((prev) => prev.filter((item) => item.id !== id));\n }, []);\n\n const handleReorderSortColumns = useCallback(\n (fromIndex: number, toIndex: number) => {\n setSelectedSortColumns((items) => arrayMove(items, fromIndex, toIndex));\n },\n [],\n );\n\n const handleToggleSortDirection = useCallback((id: string) => {\n setSelectedSortColumns((prev) =>\n prev.map((item) =>\n item.id === id\n ? { ...item, direction: item.direction === \"asc\" ? \"desc\" : \"asc\" }\n : item\n )\n );\n }, []);\n\n const handleApply = useCallback(() => {\n const sortingState: SortingState = selectedSortColumns.map((col) => ({\n id: col.id,\n desc: col.direction === \"desc\",\n }));\n onApply(sortingState);\n onClose();\n }, [selectedSortColumns, onApply, onClose]);\n\n const availableColumns = useMemo(\n () =>\n columnOptions.filter(\n (col) =>\n col.canSort\n && !selectedSortColumns.some((selected) => selected.id === col.id),\n ),\n [columnOptions, selectedSortColumns],\n );\n\n const filteredAvailableColumns = useMemo(() => {\n const query = menuSearchQuery.toLowerCase().trim();\n if (!query) {\n return availableColumns;\n }\n return availableColumns.filter((col) =>\n col.name.toLowerCase().includes(query)\n );\n }, [availableColumns, menuSearchQuery]);\n\n const handleMenuSearchChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setMenuSearchQuery(event.target.value);\n },\n [],\n );\n\n const handleMenuOpenChange = useCallback((open: boolean) => {\n if (open) {\n setMenuSearchQuery(\"\");\n }\n }, []);\n\n const sortableItems: SortableItem[] = useMemo(() => {\n return selectedSortColumns.map((item) => ({\n id: item.id,\n label: item.name,\n content: (\n <div className={styles.sortColumnItem}>\n <span className={classNames(styles.sortColumnName, styles.truncate)}>\n {item.name}\n </span>\n <Button\n className={styles.sortDirectionButton}\n onClick={() => handleToggleSortDirection(item.id)}\n aria-label={`Toggle sort direction for ${item.name}`}\n >\n {item.direction === \"asc\"\n ? <SortAlphabetical className={styles.sortIcon} />\n : <SortAlphabeticalDesc className={styles.sortIcon} />}\n </Button>\n </div>\n ),\n }));\n }, [selectedSortColumns, handleToggleSortDirection]);\n\n const footer = useMemo(() => (\n <>\n <ActionButton onClick={onClose}>Cancel</ActionButton>\n <ActionButton variant=\"primary\" onClick={handleApply}>\n Apply\n </ActionButton>\n </>\n ), [handleApply, onClose]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n event.stopPropagation();\n },\n [],\n );\n\n return (\n <Dialog\n isOpen={isOpen}\n onOpenChange={onClose}\n title={DialogTitle}\n footer={footer}\n >\n <div className={styles.sortColumnsList}>\n <SortableItemsList\n items={sortableItems}\n onReorder={handleReorderSortColumns}\n onRemove={handleRemoveSortColumn}\n className={styles.sortableList}\n />\n <Menu.Root onOpenChange={handleMenuOpenChange}>\n <Menu.Trigger\n className={styles.addColumnButton}\n disabled={availableColumns.length === 0}\n aria-label=\"Add column to sort\"\n >\n <Add className={styles.addIcon} />\n <span className={styles.addColumnText}>\n Add Column to Sort\n </span>\n <CaretDown color={\"currentColor\"} />\n </Menu.Trigger>\n <Menu.Portal>\n <Menu.Positioner className={styles.menuPositioner} sideOffset={4}>\n <Menu.Popup className={styles.dropdownMenu}>\n <SearchBar\n value={menuSearchQuery}\n onChange={handleMenuSearchChange}\n placeholder=\"Search columns\"\n aria-label=\"Search columns to sort\"\n className={styles.menuSearchContainer}\n onKeyDown={handleKeyDown}\n />\n {filteredAvailableColumns.map((column) => (\n <AvailableColumnMenuItem\n key={column.id}\n column={column}\n onAddColumn={handleAddColumn}\n />\n ))}\n {filteredAvailableColumns.length === 0 && (\n <div className={styles.menuEmptyState}>\n No matching columns\n </div>\n )}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </Menu.Root>\n </div>\n </Dialog>\n );\n}\n\nconst DialogTitle = (\n <div className={styles.title}>\n <Cog />Sort on Multiple Columns\n </div>\n);\nfunction AvailableColumnMenuItem(\n { column, onAddColumn }: {\n column: ColumnOption;\n onAddColumn: (column: ColumnOption) => void;\n },\n) {\n const onClick = useCallback(() => onAddColumn(column), [onAddColumn, column]);\n\n return (\n <Menu.Item\n className={classNames(styles.dropdownItem, styles.truncate)}\n onClick={onClick}\n >\n {column.name}\n </Menu.Item>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,191 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ .title {
18
+ display: flex;
19
+ align-items: center;
20
+ gap: var(--osdk-surface-spacing);
21
+ }
22
+
23
+ .sortColumnsList {
24
+ display: flex;
25
+ flex-direction: column;
26
+ gap: var(--osdk-surface-spacing);
27
+ flex: 1;
28
+ justify-content: space-between;
29
+ overflow-x: hidden;
30
+ }
31
+
32
+ .sortableList {
33
+ flex: 1;
34
+ }
35
+
36
+ .selectedColumnsContainer {
37
+ margin-bottom: calc(var(--osdk-surface-spacing) * 2);
38
+ }
39
+
40
+ .sortColumnItem {
41
+ display: flex;
42
+ align-items: center;
43
+ justify-content: space-between;
44
+ min-width: 0;
45
+ width: 100%;
46
+ }
47
+
48
+ .sortColumnName {
49
+ min-width: 0;
50
+ flex-shrink: 1;
51
+ }
52
+
53
+ .sortDirectionButton {
54
+ flex-shrink: 0;
55
+ background: none;
56
+ border: none;
57
+ padding: var(--osdk-surface-spacing);
58
+ cursor: pointer;
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: center;
62
+ border-radius: var(--osdk-surface-border-radius);
63
+
64
+ &:hover {
65
+ background-color: var(--osdk-button-secondary-bg-hover);
66
+ }
67
+
68
+ &:focus {
69
+ outline: none;
70
+ }
71
+
72
+ &:focus-visible {
73
+ outline: var(--osdk-focus-outline);
74
+ outline-offset: calc(-1 * var(--osdk-focus-visible-outline-offset));
75
+ }
76
+ }
77
+
78
+ .sortIcon {
79
+ color: var(--osdk-typography-color-muted);
80
+ }
81
+
82
+ .addColumnButton {
83
+ display: flex;
84
+ align-items: center;
85
+ gap: calc(var(--osdk-surface-spacing) * 2);
86
+ width: 100%;
87
+ padding: calc(var(--osdk-surface-spacing) * 2)
88
+ calc(var(--osdk-surface-spacing) * 3);
89
+ background-color: var(--osdk-button-secondary-bg);
90
+ border: var(--osdk-surface-border);
91
+ border-radius: var(--osdk-surface-border-radius);
92
+ cursor: pointer;
93
+ color: var(--osdk-button-secondary-color);
94
+ margin-top: calc(var(--osdk-surface-spacing) * 2);
95
+
96
+ &:hover:not(:disabled) {
97
+ background-color: var(--osdk-button-secondary-bg-hover);
98
+ }
99
+
100
+ &:disabled {
101
+ opacity: 0.5;
102
+ cursor: not-allowed;
103
+ }
104
+
105
+ &:focus-visible {
106
+ outline: var(--osdk-focus-outline);
107
+ outline-offset: calc(-1 * var(--osdk-focus-visible-outline-offset));
108
+ }
109
+ }
110
+
111
+ .addIcon {
112
+ width: var(--osdk-iconography-size-small);
113
+ height: var(--osdk-iconography-size-small);
114
+ color: currentColor;
115
+ }
116
+
117
+ .addColumnText {
118
+ flex: 1;
119
+ text-align: left;
120
+ }
121
+
122
+ .menuPositioner {
123
+ z-index: var(--osdk-surface-z-index-2);
124
+ }
125
+
126
+ .dropdownMenu {
127
+ background-color: var(--osdk-surface-background-color-default-rest);
128
+ border: var(--osdk-surface-border);
129
+ border-radius: var(--osdk-surface-border-radius);
130
+ box-shadow: var(--osdk-surface-shadow-2);
131
+ max-height: calc(var(--osdk-dialog-max-height) * 0.5);
132
+ overflow-y: auto;
133
+ width: var(--anchor-width);
134
+
135
+ &:focus {
136
+ outline: none;
137
+ }
138
+
139
+ &:focus-visible {
140
+ outline: var(--osdk-focus-outline);
141
+ outline-offset: var(--osdk-focus-visible-outline-offset);
142
+ }
143
+ }
144
+
145
+ .menuSearchContainer {
146
+ border: none;
147
+ border-bottom: var(--osdk-surface-border);
148
+ border-radius: 0;
149
+ position: sticky;
150
+ top: 0;
151
+ background-color: var(--osdk-surface-background-color-default-rest);
152
+ }
153
+
154
+ .menuEmptyState {
155
+ padding: calc(var(--osdk-surface-spacing) * 3);
156
+ text-align: center;
157
+ color: var(--osdk-typography-color-muted);
158
+ font-size: var(--osdk-typography-size-body-medium);
159
+ }
160
+
161
+ .dropdownItem {
162
+ display: block;
163
+ width: 100%;
164
+ text-align: left;
165
+ padding: calc(var(--osdk-surface-spacing) * 2)
166
+ calc(var(--osdk-surface-spacing) * 3);
167
+ background: none;
168
+ border: none;
169
+ cursor: pointer;
170
+ font-size: var(--osdk-typography-size-body-medium);
171
+ color: var(--osdk-typography-color-default-rest);
172
+
173
+ &:hover {
174
+ background-color: var(--osdk-surface-background-color-default-hover);
175
+ }
176
+
177
+ &:focus {
178
+ outline: none;
179
+ }
180
+
181
+ &:focus-visible {
182
+ outline: var(--osdk-focus-outline);
183
+ outline-offset: calc(-1 * var(--osdk-focus-visible-outline-offset));
184
+ }
185
+ }
186
+
187
+ .truncate {
188
+ overflow: hidden;
189
+ text-overflow: ellipsis;
190
+ white-space: nowrap;
191
+ }
@@ -0,0 +1,22 @@
1
+ // CSS Module proxy for MultiColumnSortDialog.module.css
2
+ const styles = {
3
+ "title": "MultiColumnSortDialog-module__title___flQIoSfn",
4
+ "sortColumnsList": "MultiColumnSortDialog-module__sortColumnsList___v3PCk33R",
5
+ "sortableList": "MultiColumnSortDialog-module__sortableList___hi3POlPa",
6
+ "selectedColumnsContainer": "MultiColumnSortDialog-module__selectedColumnsContainer___NhRIvQf4",
7
+ "sortColumnItem": "MultiColumnSortDialog-module__sortColumnItem___cOKfBI-p",
8
+ "sortColumnName": "MultiColumnSortDialog-module__sortColumnName___hEJuoVvM",
9
+ "sortDirectionButton": "MultiColumnSortDialog-module__sortDirectionButton___B0FpU9RX",
10
+ "sortIcon": "MultiColumnSortDialog-module__sortIcon___ZI5QlXMB",
11
+ "addColumnButton": "MultiColumnSortDialog-module__addColumnButton___8QIWAnvz",
12
+ "addIcon": "MultiColumnSortDialog-module__addIcon___RN4RnncD",
13
+ "addColumnText": "MultiColumnSortDialog-module__addColumnText___odD8TcY0",
14
+ "menuPositioner": "MultiColumnSortDialog-module__menuPositioner___Tgrl7GHh",
15
+ "dropdownMenu": "MultiColumnSortDialog-module__dropdownMenu___2I4WitTB",
16
+ "menuSearchContainer": "MultiColumnSortDialog-module__menuSearchContainer___W9VUGPnt",
17
+ "menuEmptyState": "MultiColumnSortDialog-module__menuEmptyState___YK6rPQwQ",
18
+ "dropdownItem": "MultiColumnSortDialog-module__dropdownItem___ktRdXIQ8",
19
+ "truncate": "MultiColumnSortDialog-module__truncate___CXIHooZw"
20
+ };
21
+
22
+ export default styles;
@@ -18,11 +18,10 @@
18
18
  display: flex;
19
19
  align-items: center;
20
20
  justify-content: center;
21
- width: 100%;
22
- height: 100%;
23
- min-height: 80px;
24
21
  }
25
22
 
26
23
  .message {
24
+ padding: calc(var(--osdk-surface-spacing) * 5);
27
25
  color: var(--osdk-typography-color-muted);
26
+ font-style: italic;
28
27
  }
@@ -15,17 +15,18 @@
15
15
  */
16
16
 
17
17
  import { getCoreRowModel, useReactTable } from "@tanstack/react-table";
18
- import React, { useCallback, useMemo, useState } from "react";
18
+ import React, { useCallback, useMemo } from "react";
19
19
  import { useColumnDefs } from "./hooks/useColumnDefs.js";
20
20
  import { useColumnPinning } from "./hooks/useColumnPinning.js";
21
+ import { useColumnResize } from "./hooks/useColumnResize.js";
21
22
  import { useColumnVisibility } from "./hooks/useColumnVisibility.js";
23
+ import { useEditableTable } from "./hooks/useEditableTable.js";
22
24
  import { useObjectTableData } from "./hooks/useObjectTableData.js";
23
25
  import { useRowSelection } from "./hooks/useRowSelection.js";
24
26
  import { useSelectionColumn } from "./hooks/useSelectionColumn.js";
25
27
  import { useTableSorting } from "./hooks/useTableSorting.js";
26
28
  import { BaseTable } from "./Table.js";
27
29
  import { getRowId } from "./utils/getRowId.js";
28
-
29
30
  /**
30
31
  * ObjectTable - A headless table component for displaying OSDK object sets
31
32
  *
@@ -35,21 +36,39 @@ import { getRowId } from "./utils/getRowId.js";
35
36
  * ```
36
37
  */
37
38
 
39
+ const EMPTY_ARRAY = [];
38
40
  export function ObjectTable({
39
41
  objectType,
42
+ objectSet,
40
43
  columnDefinitions,
41
44
  filter,
45
+ objectSetOptions,
42
46
  orderBy,
43
47
  defaultOrderBy,
44
48
  onOrderByChanged,
45
49
  onColumnsPinnedChanged,
50
+ onColumnResize,
46
51
  onRowSelection,
47
52
  renderCellContextMenu,
48
53
  selectionMode = "none",
49
54
  selectedRows,
55
+ isAllSelected: isAllSelectedProp,
56
+ onColumnVisibilityChanged,
57
+ onCellValueChanged,
58
+ onSubmitEdits,
59
+ enableOrdering = true,
60
+ enableColumnPinning = true,
61
+ enableColumnResizing = true,
62
+ enableColumnConfig = true,
63
+ editMode = "manual",
50
64
  ...props
51
65
  }) {
52
- const [columnSizing, setColumnSizing] = useState({});
66
+ const {
67
+ columnSizing,
68
+ onColumnSizingChange
69
+ } = useColumnResize({
70
+ onColumnResize
71
+ });
53
72
  const {
54
73
  sorting,
55
74
  onSortingChange
@@ -63,23 +82,22 @@ export function ObjectTable({
63
82
  fetchMore,
64
83
  isLoading,
65
84
  error
66
- } = useObjectTableData(objectType, columnDefinitions, filter, sorting);
85
+ } = useObjectTableData(objectType, columnDefinitions, filter, sorting, objectSet, objectSetOptions);
67
86
  const {
68
87
  columns,
69
88
  loading: isColumnsLoading
70
89
  } = useColumnDefs(objectType, columnDefinitions);
71
- const columnVisibility = useColumnVisibility({
72
- columnDefinitions
73
- });
74
90
  const {
75
91
  rowSelection,
76
92
  isAllSelected,
77
93
  hasSelection,
78
94
  onToggleAll,
79
- onToggleRow
95
+ onToggleRow,
96
+ enableRowSelection
80
97
  } = useRowSelection({
81
98
  selectionMode,
82
99
  selectedRows,
100
+ isAllSelected: isAllSelectedProp,
83
101
  onRowSelection,
84
102
  data
85
103
  });
@@ -90,32 +108,50 @@ export function ObjectTable({
90
108
  onToggleAll,
91
109
  onToggleRow
92
110
  });
93
- const allColumns = useMemo(() => {
94
- return selectionColumn ? [selectionColumn, ...columns] : columns;
95
- }, [selectionColumn, columns]);
111
+ const {
112
+ columnVisibility,
113
+ onColumnVisibilityChange,
114
+ columnOrder,
115
+ onColumnOrderChange
116
+ } = useColumnVisibility({
117
+ allColumns: columns,
118
+ onColumnVisibilityChanged
119
+ });
96
120
  const {
97
121
  columnPinning,
98
122
  onColumnPinningChange
99
123
  } = useColumnPinning({
100
124
  columnDefinitions,
101
- hasSelectionColumn: selectionColumn != null,
125
+ hasSelectionColumn: enableRowSelection,
102
126
  onColumnsPinnedChanged
103
127
  });
128
+ const allColumns = useMemo(() => {
129
+ return selectionColumn ? [selectionColumn, ...columns] : columns;
130
+ }, [selectionColumn, columns]);
131
+ const editableConfig = useEditableTable({
132
+ editMode,
133
+ onCellValueChanged,
134
+ onSubmitEdits
135
+ });
104
136
  const table = useReactTable({
105
- data: data ?? [],
137
+ data: data ?? EMPTY_ARRAY,
106
138
  columns: allColumns,
107
139
  getCoreRowModel: getCoreRowModel(),
108
140
  state: {
109
141
  columnVisibility,
142
+ columnOrder,
110
143
  rowSelection,
111
144
  sorting,
112
145
  columnSizing,
113
146
  columnPinning
114
147
  },
115
148
  onSortingChange,
116
- onColumnSizingChange: setColumnSizing,
149
+ onColumnSizingChange,
117
150
  onColumnPinningChange,
118
- enableRowSelection: selectionMode !== "none",
151
+ onColumnVisibilityChange,
152
+ onColumnOrderChange,
153
+ enableRowSelection,
154
+ enableSorting: enableOrdering,
119
155
  columnResizeMode: "onChange",
120
156
  columnResizeDirection: "ltr",
121
157
  manualSorting: true,
@@ -123,11 +159,25 @@ export function ObjectTable({
123
159
  defaultColumn: {
124
160
  minSize: 80
125
161
  },
126
- getRowId
162
+ getRowId,
163
+ meta: {
164
+ onCellEdit: editableConfig.onCellEdit,
165
+ onCellValidationError: editableConfig.onCellValidationError,
166
+ clearCellValidationError: editableConfig.clearCellValidationError,
167
+ cellEdits: editableConfig.cellEdits,
168
+ isInEditMode: editableConfig.editModeState.isActive,
169
+ validationErrors: editableConfig.validationErrors
170
+ }
127
171
  });
128
172
  const onRenderCellContextMenu = useCallback((row, cell) => {
129
173
  return renderCellContextMenu?.(row, cell.getValue());
130
174
  }, [renderCellContextMenu]);
175
+ const headerMenuFeatureFlags = useMemo(() => ({
176
+ showSortingItems: enableOrdering,
177
+ showPinningItems: enableColumnPinning,
178
+ showResizeItem: enableColumnResizing,
179
+ showConfigItem: enableColumnConfig
180
+ }), [enableOrdering, enableColumnPinning, enableColumnResizing, enableColumnConfig]);
131
181
  return /*#__PURE__*/React.createElement(BaseTable, {
132
182
  table: table,
133
183
  isLoading: isLoading || isColumnsLoading,
@@ -136,7 +186,9 @@ export function ObjectTable({
136
186
  rowHeight: props.rowHeight,
137
187
  renderCellContextMenu: onRenderCellContextMenu,
138
188
  className: props.className,
139
- error: error
189
+ error: error,
190
+ headerMenuFeatureFlags: headerMenuFeatureFlags,
191
+ editableConfig: editableConfig
140
192
  });
141
193
  }
142
194
  //# sourceMappingURL=ObjectTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectTable.js","names":["getCoreRowModel","useReactTable","React","useCallback","useMemo","useState","useColumnDefs","useColumnPinning","useColumnVisibility","useObjectTableData","useRowSelection","useSelectionColumn","useTableSorting","BaseTable","getRowId","ObjectTable","objectType","columnDefinitions","filter","orderBy","defaultOrderBy","onOrderByChanged","onColumnsPinnedChanged","onRowSelection","renderCellContextMenu","selectionMode","selectedRows","props","columnSizing","setColumnSizing","sorting","onSortingChange","data","fetchMore","isLoading","error","columns","loading","isColumnsLoading","columnVisibility","rowSelection","isAllSelected","hasSelection","onToggleAll","onToggleRow","selectionColumn","allColumns","columnPinning","onColumnPinningChange","hasSelectionColumn","table","state","onColumnSizingChange","enableRowSelection","columnResizeMode","columnResizeDirection","manualSorting","defaultColumn","minSize","onRenderCellContextMenu","row","cell","getValue","createElement","fetchNextPage","onRowClick","rowHeight","className"],"sources":["ObjectTable.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ObjectOrInterfaceDefinition,\n Osdk,\n PropertyKeys,\n QueryDefinition,\n SimplePropertyDef,\n} from \"@osdk/api\";\nimport type { Cell, ColumnSizingState } from \"@tanstack/react-table\";\nimport { getCoreRowModel, useReactTable } from \"@tanstack/react-table\";\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport { useColumnDefs } from \"./hooks/useColumnDefs.js\";\nimport { useColumnPinning } from \"./hooks/useColumnPinning.js\";\nimport { useColumnVisibility } from \"./hooks/useColumnVisibility.js\";\nimport { useObjectTableData } from \"./hooks/useObjectTableData.js\";\nimport { useRowSelection } from \"./hooks/useRowSelection.js\";\nimport { useSelectionColumn } from \"./hooks/useSelectionColumn.js\";\nimport { useTableSorting } from \"./hooks/useTableSorting.js\";\nimport type { ObjectTableProps } from \"./ObjectTableApi.js\";\nimport { BaseTable } from \"./Table.js\";\nimport { getRowId } from \"./utils/getRowId.js\";\n\n/**\n * ObjectTable - A headless table component for displaying OSDK object sets\n *\n * @example\n * ```tsx\n * <ObjectTable objectType={MyObjectType} />\n * ```\n */\n\nexport function ObjectTable<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<\n string,\n never\n >,\n FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<\n string,\n never\n >,\n>({\n objectType,\n columnDefinitions,\n filter,\n orderBy,\n defaultOrderBy,\n onOrderByChanged,\n onColumnsPinnedChanged,\n onRowSelection,\n renderCellContextMenu,\n selectionMode = \"none\",\n selectedRows,\n ...props\n}: ObjectTableProps<Q, RDPs, FunctionColumns>): React.ReactElement {\n const [columnSizing, setColumnSizing] = useState<ColumnSizingState>({});\n\n const { sorting, onSortingChange } = useTableSorting<\n Q,\n RDPs,\n FunctionColumns\n >(\n {\n orderBy,\n defaultOrderBy,\n onOrderByChanged,\n },\n );\n\n const { data, fetchMore, isLoading, error } = useObjectTableData<\n Q,\n RDPs,\n FunctionColumns\n >(\n objectType,\n columnDefinitions,\n filter,\n sorting,\n );\n\n const { columns, loading: isColumnsLoading } = useColumnDefs<\n Q,\n RDPs,\n FunctionColumns\n >(\n objectType,\n columnDefinitions,\n );\n\n const columnVisibility = useColumnVisibility({ columnDefinitions });\n\n const {\n rowSelection,\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow,\n } = useRowSelection<Q, RDPs>({\n selectionMode,\n selectedRows,\n onRowSelection,\n data,\n });\n\n const selectionColumn = useSelectionColumn<Q, RDPs>(\n { selectionMode, isAllSelected, hasSelection, onToggleAll, onToggleRow },\n );\n\n const allColumns = useMemo(() => {\n return selectionColumn ? [selectionColumn, ...columns] : columns;\n }, [selectionColumn, columns]);\n\n const { columnPinning, onColumnPinningChange } = useColumnPinning({\n columnDefinitions,\n hasSelectionColumn: selectionColumn != null,\n onColumnsPinnedChanged,\n });\n\n const table = useReactTable<\n Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>\n >({\n data: data ?? [],\n columns: allColumns,\n getCoreRowModel: getCoreRowModel(),\n state: {\n columnVisibility,\n rowSelection,\n sorting,\n columnSizing,\n columnPinning,\n },\n onSortingChange,\n onColumnSizingChange: setColumnSizing,\n onColumnPinningChange,\n enableRowSelection: selectionMode !== \"none\",\n columnResizeMode: \"onChange\",\n columnResizeDirection: \"ltr\",\n manualSorting: true, // Enable manual sorting to indicate server-side sorting\n defaultColumn: {\n minSize: 80,\n },\n getRowId,\n });\n\n const onRenderCellContextMenu = useCallback(\n (\n row: Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n cell: Cell<\n Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n unknown\n >,\n ) => {\n return renderCellContextMenu?.(row, cell.getValue());\n },\n [renderCellContextMenu],\n );\n\n const isTableLoading = isLoading || isColumnsLoading;\n\n return (\n <BaseTable\n table={table}\n isLoading={isTableLoading}\n fetchNextPage={fetchMore}\n onRowClick={props.onRowClick}\n rowHeight={props.rowHeight}\n renderCellContextMenu={onRenderCellContextMenu}\n className={props.className}\n error={error}\n />\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ObjectTable.js","names":["getCoreRowModel","useReactTable","React","useCallback","useMemo","useColumnDefs","useColumnPinning","useColumnResize","useColumnVisibility","useEditableTable","useObjectTableData","useRowSelection","useSelectionColumn","useTableSorting","BaseTable","getRowId","EMPTY_ARRAY","ObjectTable","objectType","objectSet","columnDefinitions","filter","objectSetOptions","orderBy","defaultOrderBy","onOrderByChanged","onColumnsPinnedChanged","onColumnResize","onRowSelection","renderCellContextMenu","selectionMode","selectedRows","isAllSelected","isAllSelectedProp","onColumnVisibilityChanged","onCellValueChanged","onSubmitEdits","enableOrdering","enableColumnPinning","enableColumnResizing","enableColumnConfig","editMode","props","columnSizing","onColumnSizingChange","sorting","onSortingChange","data","fetchMore","isLoading","error","columns","loading","isColumnsLoading","rowSelection","hasSelection","onToggleAll","onToggleRow","enableRowSelection","selectionColumn","columnVisibility","onColumnVisibilityChange","columnOrder","onColumnOrderChange","allColumns","columnPinning","onColumnPinningChange","hasSelectionColumn","editableConfig","table","state","enableSorting","columnResizeMode","columnResizeDirection","manualSorting","defaultColumn","minSize","meta","onCellEdit","onCellValidationError","clearCellValidationError","cellEdits","isInEditMode","editModeState","isActive","validationErrors","onRenderCellContextMenu","row","cell","getValue","headerMenuFeatureFlags","showSortingItems","showPinningItems","showResizeItem","showConfigItem","createElement","fetchNextPage","onRowClick","rowHeight","className"],"sources":["ObjectTable.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ObjectOrInterfaceDefinition,\n Osdk,\n PropertyKeys,\n QueryDefinition,\n SimplePropertyDef,\n} from \"@osdk/api\";\nimport type { Cell } from \"@tanstack/react-table\";\nimport { getCoreRowModel, useReactTable } from \"@tanstack/react-table\";\nimport React, { useCallback, useMemo } from \"react\";\nimport { useColumnDefs } from \"./hooks/useColumnDefs.js\";\nimport { useColumnPinning } from \"./hooks/useColumnPinning.js\";\nimport { useColumnResize } from \"./hooks/useColumnResize.js\";\nimport { useColumnVisibility } from \"./hooks/useColumnVisibility.js\";\nimport { useEditableTable } from \"./hooks/useEditableTable.js\";\nimport { useObjectTableData } from \"./hooks/useObjectTableData.js\";\nimport { useRowSelection } from \"./hooks/useRowSelection.js\";\nimport { useSelectionColumn } from \"./hooks/useSelectionColumn.js\";\nimport { useTableSorting } from \"./hooks/useTableSorting.js\";\nimport type { ObjectTableProps } from \"./ObjectTableApi.js\";\nimport { BaseTable } from \"./Table.js\";\nimport type { HeaderMenuFeatureFlags } from \"./TableHeaderWithPopover.js\";\nimport { getRowId } from \"./utils/getRowId.js\";\nimport type { EditableConfig } from \"./utils/types.js\";\n\n/**\n * ObjectTable - A headless table component for displaying OSDK object sets\n *\n * @example\n * ```tsx\n * <ObjectTable objectType={MyObjectType} />\n * ```\n */\n\nconst EMPTY_ARRAY: [] = [];\n\nexport function ObjectTable<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<\n string,\n never\n >,\n FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<\n string,\n never\n >,\n>({\n objectType,\n objectSet,\n columnDefinitions,\n filter,\n objectSetOptions,\n orderBy,\n defaultOrderBy,\n onOrderByChanged,\n onColumnsPinnedChanged,\n onColumnResize,\n onRowSelection,\n renderCellContextMenu,\n selectionMode = \"none\",\n selectedRows,\n isAllSelected: isAllSelectedProp,\n onColumnVisibilityChanged,\n onCellValueChanged,\n onSubmitEdits,\n enableOrdering = true,\n enableColumnPinning = true,\n enableColumnResizing = true,\n enableColumnConfig = true,\n editMode = \"manual\",\n ...props\n}: ObjectTableProps<Q, RDPs, FunctionColumns>): React.ReactElement {\n const { columnSizing, onColumnSizingChange } = useColumnResize({\n onColumnResize,\n });\n\n const { sorting, onSortingChange } = useTableSorting<\n Q,\n RDPs,\n FunctionColumns\n >(\n {\n orderBy,\n defaultOrderBy,\n onOrderByChanged,\n },\n );\n\n const { data, fetchMore, isLoading, error } = useObjectTableData<\n Q,\n RDPs,\n FunctionColumns\n >(\n objectType,\n columnDefinitions,\n filter,\n sorting,\n objectSet,\n objectSetOptions,\n );\n\n const { columns, loading: isColumnsLoading } = useColumnDefs<\n Q,\n RDPs,\n FunctionColumns\n >(\n objectType,\n columnDefinitions,\n );\n\n const {\n rowSelection,\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow,\n enableRowSelection,\n } = useRowSelection<Q, RDPs>({\n selectionMode,\n selectedRows,\n isAllSelected: isAllSelectedProp,\n onRowSelection,\n data,\n });\n\n const selectionColumn = useSelectionColumn<Q, RDPs>(\n {\n selectionMode,\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow,\n },\n );\n\n const {\n columnVisibility,\n onColumnVisibilityChange,\n columnOrder,\n onColumnOrderChange,\n } = useColumnVisibility({\n allColumns: columns,\n onColumnVisibilityChanged,\n });\n\n const { columnPinning, onColumnPinningChange } = useColumnPinning({\n columnDefinitions,\n hasSelectionColumn: enableRowSelection,\n onColumnsPinnedChanged,\n });\n\n const allColumns = useMemo(() => {\n return selectionColumn ? [selectionColumn, ...columns] : columns;\n }, [selectionColumn, columns]);\n\n const editableConfig: EditableConfig<\n Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n unknown\n > = useEditableTable({\n editMode,\n onCellValueChanged,\n onSubmitEdits,\n });\n\n const table = useReactTable<\n Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>\n >({\n data: data ?? EMPTY_ARRAY,\n columns: allColumns,\n getCoreRowModel: getCoreRowModel(),\n state: {\n columnVisibility,\n columnOrder,\n rowSelection,\n sorting,\n columnSizing,\n columnPinning,\n },\n onSortingChange,\n onColumnSizingChange,\n onColumnPinningChange,\n onColumnVisibilityChange,\n onColumnOrderChange,\n enableRowSelection,\n enableSorting: enableOrdering,\n columnResizeMode: \"onChange\",\n columnResizeDirection: \"ltr\",\n manualSorting: true, // Enable manual sorting to indicate server-side sorting\n defaultColumn: {\n minSize: 80,\n },\n getRowId,\n meta: {\n onCellEdit: editableConfig.onCellEdit,\n onCellValidationError: editableConfig.onCellValidationError,\n clearCellValidationError: editableConfig.clearCellValidationError,\n cellEdits: editableConfig.cellEdits,\n isInEditMode: editableConfig.editModeState.isActive,\n validationErrors: editableConfig.validationErrors,\n },\n });\n\n const onRenderCellContextMenu = useCallback(\n (\n row: Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n cell: Cell<\n Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n unknown\n >,\n ) => {\n return renderCellContextMenu?.(row, cell.getValue());\n },\n [renderCellContextMenu],\n );\n\n const isTableLoading = isLoading || isColumnsLoading;\n\n const headerMenuFeatureFlags: HeaderMenuFeatureFlags = useMemo(() => ({\n showSortingItems: enableOrdering,\n showPinningItems: enableColumnPinning,\n showResizeItem: enableColumnResizing,\n showConfigItem: enableColumnConfig,\n }), [\n enableOrdering,\n enableColumnPinning,\n enableColumnResizing,\n enableColumnConfig,\n ]);\n\n return (\n <BaseTable<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>\n table={table}\n isLoading={isTableLoading}\n fetchNextPage={fetchMore}\n onRowClick={props.onRowClick}\n rowHeight={props.rowHeight}\n renderCellContextMenu={onRenderCellContextMenu}\n className={props.className}\n error={error}\n headerMenuFeatureFlags={headerMenuFeatureFlags}\n editableConfig={editableConfig}\n />\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectTableApi.js","names":[],"sources":["ObjectTableApi.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n DerivedProperty,\n ObjectOrInterfaceDefinition,\n Osdk,\n PrimaryKeyType,\n PropertyKeys,\n QueryDefinition,\n SimplePropertyDef,\n WhereClause,\n} from \"@osdk/api\";\nimport type * as React from \"react\";\n\nexport type ColumnDefinition<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<\n string,\n never\n >,\n> = {\n locator: ColumnDefinitionLocator<Q, RDPs, FunctionColumns>;\n\n /**\n * @default true\n */\n isVisible?: boolean;\n\n /**\n * @default none\n */\n pinned?: \"left\" | \"right\" | \"none\";\n width?: number;\n minWidth?: number;\n maxWidth?: number;\n resizable?: boolean;\n orderable?: boolean;\n filterable?: boolean;\n renderCell?: (\n object: Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n locator: ColumnDefinitionLocator<Q, RDPs, FunctionColumns>,\n ) => React.ReactNode;\n renderHeader?: () => React.ReactNode;\n};\n\nexport type ColumnDefinitionLocator<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<\n string,\n never\n >,\n> =\n | {\n type: \"property\";\n id: PropertyKeys<Q>;\n }\n | {\n type: \"function\";\n id: keyof FunctionColumns;\n }\n | {\n type: \"rdp\";\n id: keyof RDPs;\n creator: DerivedProperty.Creator<Q, RDPs[keyof RDPs]>;\n };\n\nexport interface ObjectTableProps<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<\n string,\n never\n >,\n> {\n /**\n * The object type of the object\n */\n objectType: Q;\n\n /**\n * Ordered list of column definitions to show in the table\n *\n * If not provided, all of the properties of the object type will be shown in default order.\n */\n columnDefinitions?: Array<ColumnDefinition<Q, RDPs, FunctionColumns>>;\n\n /**\n * Whether the table is filterable by the user.\n *\n * @default true\n */\n filterable?: boolean;\n\n /**\n * The current where clause to filter the objects in the table.\n * If provided, the filter is controlled.\n */\n filter?: WhereClause<Q, RDPs>;\n\n /**\n * Called when the where clause is changed.\n * Required when filter is controlled.\n *\n * @param newWhere The new where clause\n */\n onFilterChanged?: (newWhere: WhereClause<Q, RDPs>) => void;\n\n /**\n * Whether the table is sortable by the user.\n *\n * @default true\n */\n orderable?: boolean;\n\n /**\n * The default order by clause to sort the objects in the table.\n * If provided without orderBy prop, the sorting is uncontrolled.\n * If both orderBy and defaultOrderBy are provided, orderBy takes precedence.\n */\n defaultOrderBy?: Array<{\n property: PropertyKeys<Q>;\n direction: \"asc\" | \"desc\";\n }>;\n\n /**\n * The current order by clause to sort the objects in the table.\n * If provided, the sorting is controlled.\n * If both orderBy and defaultOrderBy are provided, orderBy takes precedence.\n */\n orderBy?: Array<{\n property: PropertyKeys<Q>;\n direction: \"asc\" | \"desc\";\n }>;\n\n /**\n * Called when the order by clause is changed.\n * Required when sorting is controlled.\n *\n * @param newOrderBy The new order by clause\n */\n onOrderByChanged?: (\n newOrderBy: Array<{\n property: PropertyKeys<Q>;\n direction: \"asc\" | \"desc\";\n }>,\n ) => void;\n\n /**\n * Called when the visible columns change.\n *\n * If provided, the table will allow the user to show/hide columns.\n *\n * @param newStates The new list of column visibility states\n */\n onColumnVisibilityChanged?: (\n newStates: Array<{\n columnId: PropertyKeys<Q> | keyof RDPs | keyof FunctionColumns;\n isVisible: boolean;\n }>,\n ) => void;\n\n /**\n * Called when the pinned columns change.\n *\n * If provided, the table will allow the user to pin/unpin columns.\n *\n * @param newStates The new list of column pin states\n */\n onColumnsPinnedChanged?: (\n newStates: Array<{\n columnId: PropertyKeys<Q> | keyof RDPs | keyof FunctionColumns;\n pinned: \"left\" | \"right\" | \"none\";\n }>,\n ) => void;\n\n /**\n * Called when a column is resized.\n *\n * @param columnId The ID of the resized column\n * @param newWidth The new width of the column\n */\n onColumnResize?: (\n columnId: PropertyKeys<Q> | keyof RDPs | keyof FunctionColumns,\n newWidth: number,\n ) => void;\n\n /**\n * Called when a row is clicked.\n *\n * @param object The object representing the clicked row\n */\n onRowClick?: (\n object: Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n ) => void;\n\n /**\n * Selection mode for the table rows.\n *\n * If multiple, a checkbox will be shown for each row to allow selecting multiple rows\n * as well as a top-level checkbox in the header to select all rows.\n *\n * @default \"none\"\n */\n selectionMode?: \"single\" | \"multiple\" | \"none\";\n\n /**\n * The currently selected rows in the table.\n * If provided, the row selection is controlled.\n */\n selectedRows?: PrimaryKeyType<Q>[];\n\n /**\n * Called when the row selection changes.\n * Required when row selection is controlled.\n *\n * @param selectedRowIds The primary keys of currently selected rows\n */\n\n onRowSelection?: (selectedRowIds: PrimaryKeyType<Q>[]) => void;\n\n /**\n * If provided, will render this context menu when right clicking on a cell\n */\n renderCellContextMenu?: (\n row: Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n cellValue: unknown,\n ) => React.ReactNode;\n\n /**\n * The height of each row in pixels.\n *\n * @default 40\n */\n rowHeight?: number;\n\n className?: string;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"ObjectTableApi.js","names":[],"sources":["ObjectTableApi.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n DerivedProperty,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n Osdk,\n PrimaryKeyType,\n PropertyKeys,\n QueryDefinition,\n QueryMetadata,\n SimplePropertyDef,\n WhereClause,\n} from \"@osdk/api\";\nimport type * as React from \"react\";\nimport type { CellEditInfo } from \"./utils/types.js\";\n\nexport type ColumnDefinition<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<\n string,\n never\n >,\n> = {\n locator: ColumnDefinitionLocator<Q, RDPs, FunctionColumns>;\n\n /**\n * @default true\n */\n isVisible?: boolean;\n\n /**\n * @default none\n */\n pinned?: \"left\" | \"right\" | \"none\";\n width?: number;\n minWidth?: number;\n maxWidth?: number;\n resizable?: boolean;\n orderable?: boolean;\n filterable?: boolean;\n editable?: boolean;\n\n /**\n * Additional function to validate the cell value during edit\n *\n * @param value the current cell value\n * @returns a promise that resolves to an error message string if validation fails, or undefined if validation succeeds\n */\n validateEdit?: (\n value: unknown,\n ) => Promise<string | undefined>;\n\n renderCell?: (\n object: Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n locator: ColumnDefinitionLocator<Q, RDPs, FunctionColumns>,\n ) => React.ReactNode;\n\n /**\n * If provided, this will be used in the column header.\n * If both columnName and renderHeader are provided, renderHeader will take precedence in the table header.\n * columnName will still be used in other parts where the column name is displayed.\n *\n * If not provided,\n * for a property column, the property displayName will be used\n * for other columns, the id will be used.\n */\n columnName?: string;\n\n /**\n * If provided, this will be used to render the header component.\n * When both columnName and renderHeader are provided, renderHeader will take precedence in the table header.\n */\n renderHeader?: () => React.ReactNode;\n};\n\nexport type ExtractQueryParameters<\n TQueryDef extends QueryDefinition,\n> = TQueryDef[\"__DefinitionMetadata\"] extends QueryMetadata\n ? TQueryDef[\"__DefinitionMetadata\"][\"parameters\"]\n : never;\n\nexport interface PropertyColumnLocator<Q extends ObjectOrInterfaceDefinition> {\n type: \"property\";\n id: PropertyKeys<Q>;\n}\n\nexport interface FunctionColumnLocator<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<\n string,\n never\n >,\n> {\n /**\n * This is equivalent to workshop's function-backed columns.\n * The function needs to meet the specifications stated in https://www.palantir.com/docs/foundry/workshop/widgets-object-table/#function-backed-columns\n */\n type: \"function\";\n id: keyof FunctionColumns;\n queryDefinition: FunctionColumns[keyof FunctionColumns];\n\n /**\n * The function will be called with the current object set to get the input parameters for the function query.\n * @param objectSet - The current object set.\n * @returns - The function's input parameters including the object set.\n */\n getFunctionParams: (\n objectSet: ObjectSet<Q>,\n ) => ExtractQueryParameters<FunctionColumns[keyof FunctionColumns]>;\n\n /**\n * Function to generate keys for looking up results in the FunctionsMap.\n * @param object - The object instance\n * @returns - The key to use for looking up this object's result in the FunctionsMap\n */\n getKey: (\n object: Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n ) => string;\n\n /**\n * Function to extract the cell value from the raw cell data returned by the function.\n * This is useful when functions return custom types with multiple properties.\n * @param cellData - The raw data returned by the function for this object\n * @returns - The value to display in the cell\n */\n getValue?: (cellData: unknown) => unknown;\n}\n\nexport interface RdpColumnLocator<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n> {\n type: \"rdp\";\n id: keyof RDPs;\n creator: DerivedProperty.Creator<Q, RDPs[keyof RDPs]>;\n}\n\nexport interface CustomColumnLocator {\n type: \"custom\";\n id: string;\n}\n\nexport type ColumnDefinitionLocator<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<\n string,\n never\n >,\n> =\n | PropertyColumnLocator<Q>\n | FunctionColumnLocator<Q, RDPs, FunctionColumns>\n | RdpColumnLocator<Q, RDPs>\n | CustomColumnLocator;\n\nexport interface ObjectTableProps<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<\n string,\n never\n >,\n> {\n /**\n * The object or interface type of the object\n * If objectSet is not provided, objects will be fetched based on this type.\n */\n objectType: Q;\n\n /**\n * The set of objects to show in the table.\n * If provided and the objectType is not an interface, the table will use objectSet to fetch objects instead of fetching based on objectType.\n */\n objectSet?: ObjectSet<Q>;\n\n objectSetOptions?: ObjectSetOptions<Q>;\n\n /**\n * Ordered list of column definitions to show in the table\n *\n * If not provided, all of the properties of the object type will be shown in default order.\n */\n columnDefinitions?: Array<ColumnDefinition<Q, RDPs, FunctionColumns>>;\n\n /**\n * Whether the table is filterable by the user.\n *\n * @default true\n */\n enableFiltering?: boolean;\n\n /**\n * The current where clause to filter the objects in the table.\n * If provided, the filter is controlled.\n */\n filter?: WhereClause<Q, RDPs>;\n\n /**\n * Called when the where clause is changed.\n * Required when filter is controlled.\n *\n * @param newWhere The new where clause\n */\n onFilterChanged?: (newWhere: WhereClause<Q, RDPs>) => void;\n\n /**\n * Whether the table is sortable by the user.\n *\n * @default true\n */\n enableOrdering?: boolean;\n\n /**\n * Whether columns can be pinned by the user.\n *\n * @default true\n */\n enableColumnPinning?: boolean;\n\n /**\n * Whether columns can be resized by the user.\n *\n * @default true\n */\n enableColumnResizing?: boolean;\n\n /**\n * Whether the column configuration dialog for column visibility and ordering is available to the user.\n *\n * @default true\n */\n enableColumnConfig?: boolean;\n\n /**\n * Controls the edit mode behavior of the table.\n * - \"always\": Editable cells are immediately in edit mode on row clicked.\n * - \"manual\": User can toggle edit mode on/off via the Edit Table button.\n *\n * @default \"manual\"\n */\n editMode?: \"always\" | \"manual\";\n\n /**\n * The default order by clause to sort the objects in the table.\n * If provided without orderBy prop, the sorting is uncontrolled.\n * If both orderBy and defaultOrderBy are provided, orderBy takes precedence.\n */\n defaultOrderBy?: Array<{\n property: PropertyKeys<Q>;\n direction: \"asc\" | \"desc\";\n }>;\n\n /**\n * The current order by clause to sort the objects in the table.\n * If provided, the sorting is controlled.\n * If both orderBy and defaultOrderBy are provided, orderBy takes precedence.\n */\n orderBy?: Array<{\n property: PropertyKeys<Q>;\n direction: \"asc\" | \"desc\";\n }>;\n\n /**\n * Called when the order by clause is changed.\n * Required when sorting is controlled.\n *\n * @param newOrderBy The new order by clause\n */\n onOrderByChanged?: (\n newOrderBy: Array<{\n property: PropertyKeys<Q>;\n direction: \"asc\" | \"desc\";\n }>,\n ) => void;\n\n /**\n * Called after the value of a cell is edited and committed by the user.\n *\n * @param info An object containing details about the cell that was edited,\n * including the rowId, columnId, new and old values, and the row data before the edit\n */\n onCellValueChanged?: (\n info: CellEditInfo<\n Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n unknown\n >,\n ) => void;\n\n /**\n * If provided, the button Submit Edits will be shown in the table\n *\n * @param edits an array of edit info containing details about the edited cells\n * including the rowId, columnId, new and old values, and the row data before the edit\n * @return a promise that resolves to true if the edits were successfully submitted\n */\n onSubmitEdits?: (edits: CellEditInfo<\n Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n unknown\n >[]) => Promise<boolean>;\n\n /**\n * Called when the column visibility or ordering changed.\n *\n * If provided, the table will allow the user to show/hide columns.\n *\n * @param newStates The columns sorted in their display order in the table and their visibility state.\n */\n onColumnVisibilityChanged?: (\n newStates: Array<{\n columnId: PropertyKeys<Q> | keyof RDPs | keyof FunctionColumns;\n isVisible: boolean;\n }>,\n ) => void;\n\n /**\n * Called when the pinned columns change.\n *\n * If provided, the table will allow the user to pin/unpin columns.\n *\n * @param newStates The new list of column pin states\n */\n onColumnsPinnedChanged?: (\n newStates: Array<{\n columnId: PropertyKeys<Q> | keyof RDPs | keyof FunctionColumns;\n pinned: \"left\" | \"right\" | \"none\";\n }>,\n ) => void;\n\n /**\n * Called when a column is resized.\n *\n * @param columnId The ID of the resized column\n * @param newWidth The new width of the column. When newWidth = null, the column size is reset.\n */\n onColumnResize?: (\n columnId: PropertyKeys<Q> | keyof RDPs | keyof FunctionColumns,\n newWidth: number | null,\n ) => void;\n\n /**\n * Called when a row is clicked.\n *\n * @param object The object representing the clicked row\n */\n onRowClick?: (\n object: Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n ) => void;\n\n /**\n * Selection mode for the table rows.\n *\n * If multiple, a checkbox will be shown for each row to allow selecting multiple rows\n * as well as a top-level checkbox in the header to select all rows.\n *\n * @default \"none\"\n */\n selectionMode?: \"single\" | \"multiple\" | \"none\";\n\n /**\n * The currently selected rows in the table.\n * If provided, the row selection is controlled.\n */\n selectedRows?: PrimaryKeyType<Q>[];\n\n /**\n * Indicates whether all rows are selected in controlled mode.\n * When true, the table will show all rows as selected regardless of the selectedRows array.\n */\n isAllSelected?: boolean;\n\n /**\n * Called when the row selection changes.\n * Required when row selection is controlled.\n *\n * @param selectedRowIds The primary keys of currently selected rows\n * @param isSelectAll Whether the change was triggered by a \"select all\" action. Defaults to false\n */\n onRowSelection?: (\n selectedRowIds: PrimaryKeyType<Q>[],\n isSelectAll?: boolean,\n ) => void;\n /**\n * If provided, will render this context menu when right clicking on a cell\n */\n renderCellContextMenu?: (\n row: Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n cellValue: unknown,\n ) => React.ReactNode;\n\n /**\n * The height of each row in pixels.\n *\n * @default 40\n */\n rowHeight?: number;\n\n className?: string;\n}\n\nexport interface ObjectSetOptions<\n Q extends ObjectOrInterfaceDefinition,\n> {\n /**\n * Object sets to union with\n */\n union?: ObjectSet<Q>[];\n\n /**\n * Object sets to intersect with\n */\n intersect?: ObjectSet<Q>[];\n\n /**\n * Object sets to subtract from\n */\n subtract?: ObjectSet<Q>[];\n}\n"],"mappings":"","ignoreList":[]}
@@ -33,13 +33,25 @@ export function SelectionCell({
33
33
  onToggleRow
34
34
  }) {
35
35
  const handleClick = useCallback(event => {
36
+ // TODO: Create ActionBoundary component
37
+ event.stopPropagation();
36
38
  const isShiftClick = event.shiftKey;
37
39
  onToggleRow(row.id, row.index, isShiftClick);
38
- }, [row, onToggleRow]);
39
- return /*#__PURE__*/React.createElement(Checkbox, {
40
- checked: row.getIsSelected(),
40
+ }, [onToggleRow, row.id, row.index]);
41
+ const handleKeyDown = useCallback(event => {
42
+ // TODO: support shift + space
43
+ // It looks like when we handle shift key here, the checkbox gets toggled twice
44
+ if (event.key === "Enter") {
45
+ const isShiftClick = event.shiftKey;
46
+ onToggleRow(row.id, row.index, isShiftClick);
47
+ }
48
+ }, [onToggleRow, row.id, row.index]);
49
+ return /*#__PURE__*/React.createElement("div", {
41
50
  onClick: handleClick,
51
+ onKeyDown: handleKeyDown
52
+ }, /*#__PURE__*/React.createElement(Checkbox, {
53
+ checked: row.getIsSelected(),
42
54
  "aria-label": `Select row ${row.index + 1}`
43
- });
55
+ }));
44
56
  }
45
57
  //# sourceMappingURL=SelectionCells.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionCells.js","names":["React","useCallback","Checkbox","SelectionHeaderCell","isAllSelected","hasSelection","onToggleAll","createElement","indeterminate","checked","onCheckedChange","SelectionCell","row","onToggleRow","handleClick","event","isShiftClick","shiftKey","id","index","getIsSelected","onClick"],"sources":["SelectionCells.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Row, RowData } from \"@tanstack/react-table\";\nimport React, { useCallback } from \"react\";\nimport { Checkbox } from \"../base-components/checkbox/Checkbox.js\";\n\ninterface SelectionHeaderCellProps {\n isAllSelected: boolean;\n hasSelection: boolean;\n onToggleAll: () => void;\n}\n\nexport function SelectionHeaderCell({\n isAllSelected,\n hasSelection,\n onToggleAll,\n}: SelectionHeaderCellProps): React.ReactElement {\n return (\n <Checkbox\n indeterminate={hasSelection && !isAllSelected}\n checked={isAllSelected}\n onCheckedChange={onToggleAll}\n aria-label={\"Select all rows\"}\n />\n );\n}\n\ninterface SelectionCellProps<TData extends RowData> {\n row: Row<TData>;\n onToggleRow: (rowId: string, rowIndex: number, isShiftClick: boolean) => void;\n}\n\nexport function SelectionCell<TData extends RowData>({\n row,\n onToggleRow,\n}: SelectionCellProps<TData>): React.ReactElement {\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n const isShiftClick = event.shiftKey;\n onToggleRow(row.id, row.index, isShiftClick);\n },\n [row, onToggleRow],\n );\n\n return (\n <Checkbox\n checked={row.getIsSelected()}\n onClick={handleClick}\n aria-label={`Select row ${row.index + 1}`}\n />\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,QAAQ,QAAQ,yCAAyC;AAQlE,OAAO,SAASC,mBAAmBA,CAAC;EAClCC,aAAa;EACbC,YAAY;EACZC;AACwB,CAAC,EAAsB;EAC/C,oBACEN,KAAA,CAAAO,aAAA,CAACL,QAAQ;IACPM,aAAa,EAAEH,YAAY,IAAI,CAACD,aAAc;IAC9CK,OAAO,EAAEL,aAAc;IACvBM,eAAe,EAAEJ,WAAY;IAC7B,cAAY;EAAkB,CAC/B,CAAC;AAEN;AAOA,OAAO,SAASK,aAAaA,CAAwB;EACnDC,GAAG;EACHC;AACyB,CAAC,EAAsB;EAChD,MAAMC,WAAW,GAAGb,WAAW,CAC5Bc,KAAoD,IAAK;IACxD,MAAMC,YAAY,GAAGD,KAAK,CAACE,QAAQ;IACnCJ,WAAW,CAACD,GAAG,CAACM,EAAE,EAAEN,GAAG,CAACO,KAAK,EAAEH,YAAY,CAAC;EAC9C,CAAC,EACD,CAACJ,GAAG,EAAEC,WAAW,CACnB,CAAC;EAED,oBACEb,KAAA,CAAAO,aAAA,CAACL,QAAQ;IACPO,OAAO,EAAEG,GAAG,CAACQ,aAAa,CAAC,CAAE;IAC7BC,OAAO,EAAEP,WAAY;IACrB,cAAY,cAAcF,GAAG,CAACO,KAAK,GAAG,CAAC;EAAG,CAC3C,CAAC;AAEN","ignoreList":[]}
1
+ {"version":3,"file":"SelectionCells.js","names":["React","useCallback","Checkbox","SelectionHeaderCell","isAllSelected","hasSelection","onToggleAll","createElement","indeterminate","checked","onCheckedChange","SelectionCell","row","onToggleRow","handleClick","event","stopPropagation","isShiftClick","shiftKey","id","index","handleKeyDown","key","onClick","onKeyDown","getIsSelected"],"sources":["SelectionCells.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Row, RowData } from \"@tanstack/react-table\";\nimport React, { useCallback } from \"react\";\nimport { Checkbox } from \"../base-components/checkbox/Checkbox.js\";\n\ninterface SelectionHeaderCellProps {\n isAllSelected: boolean;\n hasSelection: boolean;\n onToggleAll: () => void;\n}\n\nexport function SelectionHeaderCell({\n isAllSelected,\n hasSelection,\n onToggleAll,\n}: SelectionHeaderCellProps): React.ReactElement {\n return (\n <Checkbox\n indeterminate={hasSelection && !isAllSelected}\n checked={isAllSelected}\n onCheckedChange={onToggleAll}\n aria-label={\"Select all rows\"}\n />\n );\n}\n\ninterface SelectionCellProps<TData extends RowData> {\n row: Row<TData>;\n onToggleRow: (rowId: string, rowIndex: number, isShiftClick: boolean) => void;\n}\n\nexport function SelectionCell<TData extends RowData>({\n row,\n onToggleRow,\n}: SelectionCellProps<TData>): React.ReactElement {\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n // TODO: Create ActionBoundary component\n event.stopPropagation();\n const isShiftClick = event.shiftKey;\n onToggleRow(row.id, row.index, isShiftClick);\n },\n [onToggleRow, row.id, row.index],\n );\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // TODO: support shift + space\n // It looks like when we handle shift key here, the checkbox gets toggled twice\n if (event.key === \"Enter\") {\n const isShiftClick = event.shiftKey;\n onToggleRow(row.id, row.index, isShiftClick);\n }\n },\n [onToggleRow, row.id, row.index],\n );\n\n return (\n <div onClick={handleClick} onKeyDown={handleKeyDown}>\n <Checkbox\n checked={row.getIsSelected()}\n aria-label={`Select row ${row.index + 1}`}\n />\n </div>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,QAAQ,QAAQ,yCAAyC;AAQlE,OAAO,SAASC,mBAAmBA,CAAC;EAClCC,aAAa;EACbC,YAAY;EACZC;AACwB,CAAC,EAAsB;EAC/C,oBACEN,KAAA,CAAAO,aAAA,CAACL,QAAQ;IACPM,aAAa,EAAEH,YAAY,IAAI,CAACD,aAAc;IAC9CK,OAAO,EAAEL,aAAc;IACvBM,eAAe,EAAEJ,WAAY;IAC7B,cAAY;EAAkB,CAC/B,CAAC;AAEN;AAOA,OAAO,SAASK,aAAaA,CAAwB;EACnDC,GAAG;EACHC;AACyB,CAAC,EAAsB;EAChD,MAAMC,WAAW,GAAGb,WAAW,CAC5Bc,KAAmD,IAAK;IACvD;IACAA,KAAK,CAACC,eAAe,CAAC,CAAC;IACvB,MAAMC,YAAY,GAAGF,KAAK,CAACG,QAAQ;IACnCL,WAAW,CAACD,GAAG,CAACO,EAAE,EAAEP,GAAG,CAACQ,KAAK,EAAEH,YAAY,CAAC;EAC9C,CAAC,EACD,CAACJ,WAAW,EAAED,GAAG,CAACO,EAAE,EAAEP,GAAG,CAACQ,KAAK,CACjC,CAAC;EAED,MAAMC,aAAa,GAAGpB,WAAW,CAC9Bc,KAA0C,IAAK;IAC9C;IACA;IACA,IAAIA,KAAK,CAACO,GAAG,KAAK,OAAO,EAAE;MACzB,MAAML,YAAY,GAAGF,KAAK,CAACG,QAAQ;MACnCL,WAAW,CAACD,GAAG,CAACO,EAAE,EAAEP,GAAG,CAACQ,KAAK,EAAEH,YAAY,CAAC;IAC9C;EACF,CAAC,EACD,CAACJ,WAAW,EAAED,GAAG,CAACO,EAAE,EAAEP,GAAG,CAACQ,KAAK,CACjC,CAAC;EAED,oBACEpB,KAAA,CAAAO,aAAA;IAAKgB,OAAO,EAAET,WAAY;IAACU,SAAS,EAAEH;EAAc,gBAClDrB,KAAA,CAAAO,aAAA,CAACL,QAAQ;IACPO,OAAO,EAAEG,GAAG,CAACa,aAAa,CAAC,CAAE;IAC7B,cAAY,cAAcb,GAAG,CAACQ,KAAK,GAAG,CAAC;EAAG,CAC3C,CACE,CAAC;AAEV","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import React, { useCallback } from "react";
18
+ import { DraggableList } from "../base-components/draggable-list/DraggableList.js";
19
+ export function SortableItemsList({
20
+ items,
21
+ onReorder,
22
+ onRemove,
23
+ className
24
+ }) {
25
+ const renderContent = useCallback(item => item.content, []);
26
+ return /*#__PURE__*/React.createElement(DraggableList, {
27
+ items: items,
28
+ onReorder: onReorder,
29
+ onRemove: onRemove,
30
+ removeIconVariant: "cross",
31
+ renderContent: renderContent,
32
+ className: className
33
+ });
34
+ }
35
+ //# sourceMappingURL=SortableItemsList.js.map