@osdk/react-components 0.2.0-beta.9 → 0.2.1-main-20260407074313

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 (1105) hide show
  1. package/AGENTS.md +26 -0
  2. package/CHANGELOG.md +356 -0
  3. package/README.md +166 -7
  4. package/build/browser/action-form/ActionForm.js +117 -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 +83 -0
  8. package/build/browser/action-form/BaseForm.js.map +1 -0
  9. package/build/browser/action-form/BaseForm.module.css +38 -0
  10. package/build/browser/action-form/BaseForm.module.css.js +8 -0
  11. package/build/browser/action-form/FormField.js +42 -0
  12. package/build/browser/action-form/FormField.js.map +1 -0
  13. package/build/browser/action-form/FormField.module.css +41 -0
  14. package/build/browser/action-form/FormField.module.css.js +10 -0
  15. package/build/browser/action-form/FormFieldApi.js.map +1 -1
  16. package/build/browser/action-form/FormHeader.js +26 -0
  17. package/build/browser/action-form/FormHeader.js.map +1 -0
  18. package/build/browser/action-form/FormHeader.module.css +26 -0
  19. package/build/browser/action-form/FormHeader.module.css.js +6 -0
  20. package/build/browser/action-form/fields/BaseInput.module.css +56 -0
  21. package/build/browser/action-form/fields/BaseInput.module.css.js +6 -0
  22. package/build/browser/action-form/fields/CustomField.js +30 -0
  23. package/build/browser/action-form/fields/CustomField.js.map +1 -0
  24. package/build/browser/action-form/fields/DateCalendar.js +70 -0
  25. package/build/browser/action-form/fields/DateCalendar.js.map +1 -0
  26. package/build/browser/action-form/fields/DateCalendar.module.css +136 -0
  27. package/build/browser/action-form/fields/DateCalendar.module.css.js +22 -0
  28. package/build/browser/action-form/fields/DatetimePickerField.js +98 -0
  29. package/build/browser/action-form/fields/DatetimePickerField.js.map +1 -0
  30. package/build/browser/action-form/fields/DatetimePickerField.module.css +66 -0
  31. package/build/browser/action-form/fields/DatetimePickerField.module.css.js +10 -0
  32. package/build/browser/action-form/fields/DropdownField.js +104 -0
  33. package/build/browser/action-form/fields/DropdownField.js.map +1 -0
  34. package/build/browser/action-form/fields/FieldBridge.js +45 -0
  35. package/build/browser/action-form/fields/FieldBridge.js.map +1 -0
  36. package/build/browser/action-form/fields/FilePickerField.js +119 -0
  37. package/build/browser/action-form/fields/FilePickerField.js.map +1 -0
  38. package/build/browser/action-form/fields/FilePickerField.module.css +132 -0
  39. package/build/browser/action-form/fields/FilePickerField.module.css.js +11 -0
  40. package/build/browser/action-form/fields/FormFieldRenderer.js +128 -0
  41. package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -0
  42. package/build/browser/action-form/fields/LazyDateCalendar.js +27 -0
  43. package/build/browser/action-form/fields/LazyDateCalendar.js.map +1 -0
  44. package/build/browser/action-form/fields/NumberInputField.js +130 -0
  45. package/build/browser/action-form/fields/NumberInputField.js.map +1 -0
  46. package/build/browser/action-form/fields/NumberInputField.module.css +96 -0
  47. package/build/browser/action-form/fields/NumberInputField.module.css.js +9 -0
  48. package/build/browser/action-form/fields/RadioButtonsField.js +57 -0
  49. package/build/browser/action-form/fields/RadioButtonsField.js.map +1 -0
  50. package/build/browser/action-form/fields/RadioButtonsField.module.css +83 -0
  51. package/build/browser/action-form/fields/RadioButtonsField.module.css.js +10 -0
  52. package/build/browser/action-form/fields/TextAreaField.js +50 -0
  53. package/build/browser/action-form/fields/TextAreaField.js.map +1 -0
  54. package/build/browser/action-form/fields/TextInputField.js +39 -0
  55. package/build/browser/action-form/fields/TextInputField.js.map +1 -0
  56. package/build/browser/action-form/utils/coerceFieldValue.js +93 -0
  57. package/build/browser/action-form/utils/coerceFieldValue.js.map +1 -0
  58. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js +120 -0
  59. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js.map +1 -0
  60. package/build/browser/base-components/action-button/ActionButton.module.css +0 -4
  61. package/build/browser/base-components/checkbox/Checkbox.js +8 -4
  62. package/build/browser/base-components/checkbox/Checkbox.js.map +1 -1
  63. package/build/browser/base-components/checkbox/Checkbox.module.css +13 -8
  64. package/build/browser/base-components/combobox/Combobox.js +154 -0
  65. package/build/browser/base-components/combobox/Combobox.js.map +1 -0
  66. package/build/browser/base-components/combobox/Combobox.module.css +364 -0
  67. package/build/browser/base-components/combobox/Combobox.module.css.js +18 -0
  68. package/build/browser/base-components/dialog/Dialog.js +4 -2
  69. package/build/browser/base-components/dialog/Dialog.js.map +1 -1
  70. package/build/browser/base-components/dialog/Dialog.module.css +0 -8
  71. package/build/browser/base-components/draggable-list/DraggableList.module.css +2 -10
  72. package/build/browser/base-components/search-bar/SearchBar.module.css +2 -2
  73. package/build/browser/base-components/searchable-menu/SearchableMenu.js +86 -0
  74. package/build/browser/base-components/searchable-menu/SearchableMenu.js.map +1 -0
  75. package/build/browser/base-components/searchable-menu/SearchableMenu.module.css +80 -0
  76. package/build/browser/base-components/searchable-menu/SearchableMenu.module.css.js +10 -0
  77. package/build/browser/base-components/select/Select.js +93 -0
  78. package/build/browser/base-components/select/Select.js.map +1 -0
  79. package/build/browser/base-components/select/Select.module.css +233 -0
  80. package/build/browser/base-components/select/Select.module.css.js +13 -0
  81. package/build/browser/base-components/skeleton/SkeletonBar.js +36 -0
  82. package/build/browser/base-components/skeleton/SkeletonBar.js.map +1 -0
  83. package/build/browser/base-components/skeleton/SkeletonBar.module.css +39 -0
  84. package/build/browser/base-components/skeleton/SkeletonBar.module.css.js +7 -0
  85. package/build/browser/base-components/switch/Switch.module.css +14 -15
  86. package/build/browser/base-components/tooltip/Tooltip.js +91 -0
  87. package/build/browser/base-components/tooltip/Tooltip.js.map +1 -0
  88. package/build/browser/base-components/tooltip/Tooltip.module.css +70 -0
  89. package/build/browser/base-components/tooltip/Tooltip.module.css.js +11 -0
  90. package/build/browser/base-components/tooltip/index.js +18 -0
  91. package/build/browser/base-components/tooltip/index.js.map +1 -0
  92. package/build/browser/filter-list/FilterInput.js +141 -0
  93. package/build/browser/filter-list/FilterInput.js.map +1 -0
  94. package/build/browser/filter-list/FilterList.js +142 -0
  95. package/build/browser/filter-list/FilterList.js.map +1 -0
  96. package/build/browser/filter-list/FilterListApi.js.map +1 -1
  97. package/build/browser/filter-list/FilterListItemApi.js.map +1 -1
  98. package/build/browser/filter-list/base/AddFilterPopover.js +35 -0
  99. package/build/browser/filter-list/base/AddFilterPopover.js.map +1 -0
  100. package/build/browser/filter-list/base/AddFilterPopover.module.css +49 -0
  101. package/build/browser/filter-list/base/AddFilterPopover.module.css.js +6 -0
  102. package/build/browser/filter-list/base/BaseFilterList.js +94 -0
  103. package/build/browser/filter-list/base/BaseFilterList.js.map +1 -0
  104. package/build/browser/filter-list/base/BaseFilterListApi.js +2 -0
  105. package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -0
  106. package/build/browser/filter-list/base/DragHandleIcon.js +51 -0
  107. package/build/browser/filter-list/base/DragHandleIcon.js.map +1 -0
  108. package/build/browser/filter-list/base/ExcludeDropdown.js +62 -0
  109. package/build/browser/filter-list/base/ExcludeDropdown.js.map +1 -0
  110. package/build/browser/filter-list/base/ExcludeDropdown.module.css +96 -0
  111. package/build/browser/filter-list/base/ExcludeDropdown.module.css.js +12 -0
  112. package/build/browser/filter-list/base/FilterIcons.js +65 -0
  113. package/build/browser/filter-list/base/FilterIcons.js.map +1 -0
  114. package/build/browser/filter-list/base/FilterInputExcludeRow.js +67 -0
  115. package/build/browser/filter-list/base/FilterInputExcludeRow.js.map +1 -0
  116. package/build/browser/filter-list/base/FilterList.module.css +84 -6
  117. package/build/browser/filter-list/base/FilterList.module.css.js +6 -0
  118. package/build/browser/filter-list/base/FilterListContent.js +172 -6
  119. package/build/browser/filter-list/base/FilterListContent.js.map +1 -1
  120. package/build/browser/filter-list/base/FilterListContent.module.css +6 -0
  121. package/build/browser/filter-list/base/FilterListContent.module.css.js +2 -1
  122. package/build/browser/filter-list/base/FilterListHeader.js +14 -13
  123. package/build/browser/filter-list/base/FilterListHeader.js.map +1 -1
  124. package/build/browser/filter-list/base/FilterListHeader.module.css +22 -21
  125. package/build/browser/filter-list/base/FilterListHeader.module.css.js +1 -1
  126. package/build/browser/filter-list/base/FilterListItem.js +124 -27
  127. package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
  128. package/build/browser/filter-list/base/FilterListItem.module.css +173 -0
  129. package/build/browser/filter-list/base/FilterListItem.module.css.js +11 -1
  130. package/build/browser/filter-list/base/SortableFilterListItem.js +64 -0
  131. package/build/browser/filter-list/base/SortableFilterListItem.js.map +1 -0
  132. package/build/browser/filter-list/base/index.js +1 -2
  133. package/build/browser/filter-list/base/index.js.map +1 -1
  134. package/build/browser/filter-list/base/inputs/ContainsTextInput.js +5 -7
  135. package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
  136. package/build/browser/filter-list/base/inputs/DateRangeInput.js +37 -0
  137. package/build/browser/filter-list/base/inputs/DateRangeInput.js.map +1 -0
  138. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
  139. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css.js +6 -0
  140. package/build/browser/filter-list/base/inputs/ListogramInput.js +118 -0
  141. package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -0
  142. package/build/browser/filter-list/base/inputs/ListogramInput.module.css +137 -0
  143. package/build/browser/filter-list/base/inputs/ListogramInput.module.css.js +14 -0
  144. package/build/browser/filter-list/base/inputs/ListogramSkeleton.js +45 -0
  145. package/build/browser/filter-list/base/inputs/ListogramSkeleton.js.map +1 -0
  146. package/build/browser/filter-list/base/inputs/ListogramSkeleton.module.css +32 -0
  147. package/build/browser/filter-list/base/inputs/ListogramSkeleton.module.css.js +8 -0
  148. package/build/browser/filter-list/base/inputs/MultiDateInput.js +1 -1
  149. package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -1
  150. package/build/browser/filter-list/base/inputs/MultiDateInput.module.css +6 -6
  151. package/build/browser/filter-list/base/inputs/MultiSelectInput.js +76 -0
  152. package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
  153. package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css +37 -0
  154. package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css.js +8 -0
  155. package/build/browser/filter-list/base/inputs/NullValueWrapper.js +57 -0
  156. package/build/browser/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
  157. package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css +50 -0
  158. package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css.js +10 -0
  159. package/build/browser/filter-list/base/inputs/NumberRangeInput.js +48 -0
  160. package/build/browser/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
  161. package/build/browser/filter-list/base/inputs/RangeInput.js +159 -0
  162. package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -0
  163. package/build/browser/filter-list/base/inputs/RangeInput.module.css +106 -0
  164. package/build/browser/filter-list/base/inputs/RangeInput.module.css.js +13 -0
  165. package/build/browser/filter-list/base/inputs/SingleDateInput.js +1 -1
  166. package/build/browser/filter-list/base/inputs/SingleDateInput.js.map +1 -1
  167. package/build/browser/filter-list/base/inputs/SingleDateInput.module.css +2 -2
  168. package/build/browser/filter-list/base/inputs/SingleSelectInput.js +77 -0
  169. package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
  170. package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css +45 -0
  171. package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css.js +10 -0
  172. package/build/browser/filter-list/base/inputs/TextTagsInput.js +133 -0
  173. package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -0
  174. package/build/browser/filter-list/base/inputs/TextTagsInput.module.css +25 -0
  175. package/build/browser/filter-list/base/inputs/TextTagsInput.module.css.js +7 -0
  176. package/build/browser/filter-list/base/inputs/TimelineInput.js +74 -0
  177. package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -0
  178. package/build/browser/filter-list/base/inputs/TimelineInput.module.css +75 -0
  179. package/build/browser/filter-list/base/inputs/TimelineInput.module.css.js +10 -0
  180. package/build/browser/filter-list/base/inputs/createHistogramBuckets.js +53 -0
  181. package/build/browser/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
  182. package/build/browser/filter-list/base/inputs/index.js +5 -1
  183. package/build/browser/filter-list/base/inputs/index.js.map +1 -1
  184. package/build/browser/filter-list/base/inputs/shared.module.css +5 -5
  185. package/build/browser/filter-list/base/inputs/useStableData.js +29 -0
  186. package/build/browser/filter-list/base/inputs/useStableData.js.map +1 -0
  187. package/build/browser/filter-list/hooks/useFilterListState.js +56 -10
  188. package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
  189. package/build/browser/filter-list/hooks/useFilterVisibility.js +74 -0
  190. package/build/browser/filter-list/hooks/useFilterVisibility.js.map +1 -0
  191. package/build/browser/filter-list/hooks/usePropertyAggregation.js +98 -0
  192. package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -0
  193. package/build/browser/filter-list/inputs/ContainsTextFilterInput.js +38 -0
  194. package/build/browser/filter-list/inputs/ContainsTextFilterInput.js.map +1 -0
  195. package/build/browser/filter-list/inputs/DateRangeFilterInput.js +109 -0
  196. package/build/browser/filter-list/inputs/DateRangeFilterInput.js.map +1 -0
  197. package/build/browser/filter-list/inputs/LinkedPropertyInput.js +496 -0
  198. package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -0
  199. package/build/browser/filter-list/inputs/ListogramFilterInput.js +83 -0
  200. package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -0
  201. package/build/browser/filter-list/inputs/MultiDateFilterInput.js +38 -0
  202. package/build/browser/filter-list/inputs/MultiDateFilterInput.js.map +1 -0
  203. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js +71 -0
  204. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -0
  205. package/build/browser/filter-list/inputs/NumberRangeFilterInput.js +109 -0
  206. package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -0
  207. package/build/browser/filter-list/inputs/PropertyFilterInput.js +142 -0
  208. package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -0
  209. package/build/browser/filter-list/inputs/SingleDateFilterInput.js +38 -0
  210. package/build/browser/filter-list/inputs/SingleDateFilterInput.js.map +1 -0
  211. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js +71 -0
  212. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -0
  213. package/build/browser/filter-list/inputs/TextTagsFilterInput.js +70 -0
  214. package/build/browser/filter-list/inputs/TextTagsFilterInput.js.map +1 -0
  215. package/build/browser/filter-list/inputs/TimelineFilterInput.js +49 -0
  216. package/build/browser/filter-list/inputs/TimelineFilterInput.js.map +1 -0
  217. package/build/browser/filter-list/inputs/ToggleFilterInput.js +36 -0
  218. package/build/browser/filter-list/inputs/ToggleFilterInput.js.map +1 -0
  219. package/build/browser/filter-list/types/AggregationTypes.js +2 -0
  220. package/build/browser/filter-list/types/AggregationTypes.js.map +1 -0
  221. package/build/browser/filter-list/types/CustomRendererTypes.js.map +1 -1
  222. package/build/browser/filter-list/types/LinkedFilterTypes.js.map +1 -1
  223. package/build/browser/filter-list/types/index.js +0 -2
  224. package/build/browser/filter-list/types/index.js.map +1 -1
  225. package/build/browser/filter-list/utils/aggregationHelpers.js +44 -0
  226. package/build/browser/filter-list/utils/aggregationHelpers.js.map +1 -0
  227. package/build/browser/filter-list/utils/filterStateSerialization.js +42 -0
  228. package/build/browser/filter-list/utils/filterStateSerialization.js.map +1 -0
  229. package/build/browser/filter-list/utils/filterStateToWhereClause.js +124 -91
  230. package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  231. package/build/browser/filter-list/utils/filterValues.js +55 -1
  232. package/build/browser/filter-list/utils/filterValues.js.map +1 -1
  233. package/build/browser/filter-list/utils/getFilterKey.js +1 -1
  234. package/build/browser/filter-list/utils/getFilterKey.js.map +1 -1
  235. package/build/browser/filter-list/utils/getFilterLabel.js +36 -0
  236. package/build/browser/filter-list/utils/getFilterLabel.js.map +1 -0
  237. package/build/browser/object-table/ColumnConfigDialog.module.css +1 -11
  238. package/build/browser/object-table/DefaultCellRenderer.js +23 -5
  239. package/build/browser/object-table/DefaultCellRenderer.js.map +1 -1
  240. package/build/browser/object-table/EditableCell.js +87 -10
  241. package/build/browser/object-table/EditableCell.js.map +1 -1
  242. package/build/browser/object-table/EditableCell.module.css +69 -2
  243. package/build/browser/object-table/EditableCell.module.css.js +6 -1
  244. package/build/browser/object-table/LoadingCell.js +7 -3
  245. package/build/browser/object-table/LoadingCell.js.map +1 -1
  246. package/build/browser/object-table/LoadingCell.module.css +3 -21
  247. package/build/browser/object-table/LoadingCell.module.css.js +1 -2
  248. package/build/browser/object-table/LoadingRow.js +2 -1
  249. package/build/browser/object-table/LoadingRow.js.map +1 -1
  250. package/build/browser/object-table/LoadingStateTable.js +2 -1
  251. package/build/browser/object-table/LoadingStateTable.js.map +1 -1
  252. package/build/browser/object-table/MultiColumnSortDialog.js +22 -58
  253. package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -1
  254. package/build/browser/object-table/MultiColumnSortDialog.module.css +0 -69
  255. package/build/browser/object-table/MultiColumnSortDialog.module.css.js +0 -5
  256. package/build/browser/object-table/ObjectTable.js +16 -23
  257. package/build/browser/object-table/ObjectTable.js.map +1 -1
  258. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  259. package/build/browser/object-table/SelectionCells.js +1 -0
  260. package/build/browser/object-table/SelectionCells.js.map +1 -1
  261. package/build/browser/object-table/Table.js +23 -15
  262. package/build/browser/object-table/Table.js.map +1 -1
  263. package/build/browser/object-table/Table.module.css +0 -8
  264. package/build/browser/object-table/Table.module.css.js +1 -2
  265. package/build/browser/object-table/TableBody.js +8 -2
  266. package/build/browser/object-table/TableBody.js.map +1 -1
  267. package/build/browser/object-table/TableCell.module.css +2 -9
  268. package/build/browser/object-table/TableEditContainer.js +90 -0
  269. package/build/browser/object-table/TableEditContainer.js.map +1 -0
  270. package/build/browser/object-table/TableEditContainer.module.css +71 -0
  271. package/build/browser/object-table/TableEditContainer.module.css.js +13 -0
  272. package/build/browser/object-table/TableHeader.js +4 -1
  273. package/build/browser/object-table/TableHeader.js.map +1 -1
  274. package/build/browser/object-table/TableHeader.module.css +4 -3
  275. package/build/browser/object-table/TableHeader.module.css.js +1 -0
  276. package/build/browser/object-table/TableHeaderWithPopover.js +2 -4
  277. package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
  278. package/build/browser/object-table/TableHeaderWithPopover.module.css +1 -12
  279. package/build/browser/object-table/TableRow.js +10 -3
  280. package/build/browser/object-table/TableRow.js.map +1 -1
  281. package/build/browser/object-table/TableRow.module.css +2 -1
  282. package/build/browser/object-table/components/AsyncValueCell.js +35 -0
  283. package/build/browser/object-table/components/AsyncValueCell.js.map +1 -0
  284. package/build/browser/object-table/hooks/useColumnDefs.js +5 -2
  285. package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
  286. package/build/browser/object-table/hooks/useEditableTable.js +39 -11
  287. package/build/browser/object-table/hooks/useEditableTable.js.map +1 -1
  288. package/build/browser/object-table/hooks/useFunctionColumnsData.js +135 -0
  289. package/build/browser/object-table/hooks/useFunctionColumnsData.js.map +1 -0
  290. package/build/browser/object-table/hooks/useObjectTableData.js +33 -17
  291. package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
  292. package/build/browser/object-table/hooks/useRowSelection.js +11 -8
  293. package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
  294. package/build/browser/object-table/utils/AsyncCellData.js +30 -0
  295. package/build/browser/object-table/utils/AsyncCellData.js.map +1 -0
  296. package/build/browser/object-table/utils/constants.js +1 -0
  297. package/build/browser/object-table/utils/constants.js.map +1 -1
  298. package/build/browser/object-table/utils/getCellId.js +0 -7
  299. package/build/browser/object-table/utils/getCellId.js.map +1 -1
  300. package/build/browser/object-table/utils/types.js.map +1 -1
  301. package/build/browser/pdf-viewer/PdfRenderer.js +88 -0
  302. package/build/browser/pdf-viewer/PdfRenderer.js.map +1 -0
  303. package/build/browser/pdf-viewer/PdfViewer.js +179 -0
  304. package/build/browser/pdf-viewer/PdfViewer.js.map +1 -0
  305. package/build/browser/pdf-viewer/PdfViewer.module.css +95 -0
  306. package/build/browser/pdf-viewer/PdfViewer.module.css.js +16 -0
  307. package/build/browser/pdf-viewer/PdfViewerContext.js +108 -0
  308. package/build/browser/pdf-viewer/PdfViewerContext.js.map +1 -0
  309. package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.js +141 -0
  310. package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -0
  311. package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.module.css +82 -0
  312. package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.module.css.js +12 -0
  313. package/build/browser/pdf-viewer/components/PdfViewerContent.js +125 -0
  314. package/build/browser/pdf-viewer/components/PdfViewerContent.js.map +1 -0
  315. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js +98 -0
  316. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -0
  317. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.module.css +89 -0
  318. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.module.css.js +15 -0
  319. package/build/browser/pdf-viewer/components/PdfViewerSearchBar.js +84 -0
  320. package/build/browser/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -0
  321. package/build/browser/pdf-viewer/components/PdfViewerSearchBar.module.css +65 -0
  322. package/build/browser/pdf-viewer/components/PdfViewerSearchBar.module.css.js +10 -0
  323. package/build/browser/pdf-viewer/components/PdfViewerSidebar.js +78 -0
  324. package/build/browser/pdf-viewer/components/PdfViewerSidebar.js.map +1 -0
  325. package/build/browser/pdf-viewer/components/PdfViewerSidebar.module.css +37 -0
  326. package/build/browser/pdf-viewer/components/PdfViewerSidebar.module.css.js +10 -0
  327. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.js +54 -0
  328. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -0
  329. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.module.css +70 -0
  330. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.module.css.js +8 -0
  331. package/build/browser/pdf-viewer/components/PdfViewerThumbnail.js +100 -0
  332. package/build/browser/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -0
  333. package/build/browser/pdf-viewer/components/PdfViewerThumbnail.module.css +26 -0
  334. package/build/browser/pdf-viewer/components/PdfViewerThumbnail.module.css.js +8 -0
  335. package/build/browser/pdf-viewer/components/PdfViewerToolbar.js +221 -0
  336. package/build/browser/pdf-viewer/components/PdfViewerToolbar.js.map +1 -0
  337. package/build/browser/pdf-viewer/components/PdfViewerToolbar.module.css +91 -0
  338. package/build/browser/pdf-viewer/components/PdfViewerToolbar.module.css.js +13 -0
  339. package/build/browser/pdf-viewer/constants.js +46 -0
  340. package/build/browser/pdf-viewer/constants.js.map +1 -0
  341. package/build/browser/pdf-viewer/hooks/usePdfAnnotationPortals.js +54 -0
  342. package/build/browser/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -0
  343. package/build/browser/pdf-viewer/hooks/usePdfAnnotationsByPage.js +30 -0
  344. package/build/browser/pdf-viewer/hooks/usePdfAnnotationsByPage.js.map +1 -0
  345. package/build/browser/pdf-viewer/hooks/usePdfDocument.js +66 -0
  346. package/build/browser/pdf-viewer/hooks/usePdfDocument.js.map +1 -0
  347. package/build/browser/pdf-viewer/hooks/usePdfFormFields.js +341 -0
  348. package/build/browser/pdf-viewer/hooks/usePdfFormFields.js.map +1 -0
  349. package/build/browser/pdf-viewer/hooks/usePdfHighlightMode.js +227 -0
  350. package/build/browser/pdf-viewer/hooks/usePdfHighlightMode.js.map +1 -0
  351. package/build/browser/pdf-viewer/hooks/usePdfOutline.js +268 -0
  352. package/build/browser/pdf-viewer/hooks/usePdfOutline.js.map +1 -0
  353. package/build/browser/pdf-viewer/hooks/usePdfViewer.js +86 -0
  354. package/build/browser/pdf-viewer/hooks/usePdfViewer.js.map +1 -0
  355. package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js +80 -0
  356. package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -0
  357. package/build/browser/pdf-viewer/hooks/usePdfViewerSearch.js +106 -0
  358. package/build/browser/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -0
  359. package/build/browser/pdf-viewer/hooks/usePdfViewerState.js +135 -0
  360. package/build/browser/pdf-viewer/hooks/usePdfViewerState.js.map +1 -0
  361. package/build/browser/pdf-viewer/hooks/usePdfViewerSync.js +71 -0
  362. package/build/browser/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -0
  363. package/build/browser/pdf-viewer/types.js +2 -0
  364. package/build/browser/pdf-viewer/types.js.map +1 -0
  365. package/build/browser/public/experimental.js +34 -0
  366. package/build/browser/public/experimental.js.map +1 -1
  367. package/build/browser/public/primitives.js +20 -0
  368. package/build/browser/public/primitives.js.map +1 -0
  369. package/build/browser/shared/ErrorBoundary.module.css +14 -14
  370. package/build/browser/{filter-list/utils → shared}/assertUnreachable.js +1 -1
  371. package/build/browser/{filter-list/utils → shared}/assertUnreachable.js.map +1 -1
  372. package/build/{esm/filter-list/base/inputs → browser/shared}/dateUtils.js +38 -2
  373. package/build/browser/shared/dateUtils.js.map +1 -0
  374. package/build/browser/shared/typedMemo.js +25 -0
  375. package/build/browser/shared/typedMemo.js.map +1 -0
  376. package/build/browser/styles.css +4452 -1405
  377. package/build/cjs/DateCalendar-QWGFKD6J.css +113 -0
  378. package/build/cjs/DateCalendar-QWGFKD6J.css.map +1 -0
  379. package/build/cjs/DateCalendar-R44GMN3O.cjs +67 -0
  380. package/build/cjs/DateCalendar-R44GMN3O.cjs.map +1 -0
  381. package/build/cjs/chunk-HMQTYQEX.cjs +9 -0
  382. package/build/cjs/chunk-HMQTYQEX.cjs.map +1 -0
  383. package/build/cjs/chunk-MRRRZN44.cjs +165 -0
  384. package/build/cjs/chunk-MRRRZN44.cjs.map +1 -0
  385. package/build/cjs/chunk-UZ2E5NRX.cjs +8 -0
  386. package/build/cjs/chunk-UZ2E5NRX.cjs.map +1 -0
  387. package/build/cjs/index.cjs +2 -0
  388. package/build/cjs/public/experimental.cjs +9514 -2011
  389. package/build/cjs/public/experimental.cjs.map +1 -1
  390. package/build/cjs/public/experimental.css +3230 -736
  391. package/build/cjs/public/experimental.css.map +1 -1
  392. package/build/cjs/public/experimental.d.cts +1182 -125
  393. package/build/cjs/public/primitives.cjs +25 -0
  394. package/build/cjs/public/primitives.cjs.map +1 -0
  395. package/build/cjs/public/primitives.css +154 -0
  396. package/build/cjs/public/primitives.css.map +1 -0
  397. package/build/cjs/public/primitives.d.cts +50 -0
  398. package/build/esm/action-form/ActionForm.js +117 -0
  399. package/build/esm/action-form/ActionForm.js.map +1 -0
  400. package/build/esm/action-form/ActionFormApi.js.map +1 -1
  401. package/build/esm/action-form/BaseForm.js +83 -0
  402. package/build/esm/action-form/BaseForm.js.map +1 -0
  403. package/build/esm/action-form/BaseForm.module.css +38 -0
  404. package/build/esm/action-form/FormField.js +42 -0
  405. package/build/esm/action-form/FormField.js.map +1 -0
  406. package/build/esm/action-form/FormField.module.css +41 -0
  407. package/build/esm/action-form/FormFieldApi.js.map +1 -1
  408. package/build/esm/action-form/FormHeader.js +26 -0
  409. package/build/esm/action-form/FormHeader.js.map +1 -0
  410. package/build/esm/action-form/FormHeader.module.css +26 -0
  411. package/build/esm/action-form/fields/BaseInput.module.css +56 -0
  412. package/build/esm/action-form/fields/CustomField.js +30 -0
  413. package/build/esm/action-form/fields/CustomField.js.map +1 -0
  414. package/build/esm/action-form/fields/DateCalendar.js +70 -0
  415. package/build/esm/action-form/fields/DateCalendar.js.map +1 -0
  416. package/build/esm/action-form/fields/DateCalendar.module.css +136 -0
  417. package/build/esm/action-form/fields/DatetimePickerField.js +98 -0
  418. package/build/esm/action-form/fields/DatetimePickerField.js.map +1 -0
  419. package/build/esm/action-form/fields/DatetimePickerField.module.css +66 -0
  420. package/build/esm/action-form/fields/DropdownField.js +104 -0
  421. package/build/esm/action-form/fields/DropdownField.js.map +1 -0
  422. package/build/esm/action-form/fields/FieldBridge.js +45 -0
  423. package/build/esm/action-form/fields/FieldBridge.js.map +1 -0
  424. package/build/esm/action-form/fields/FilePickerField.js +119 -0
  425. package/build/esm/action-form/fields/FilePickerField.js.map +1 -0
  426. package/build/esm/action-form/fields/FilePickerField.module.css +132 -0
  427. package/build/esm/action-form/fields/FormFieldRenderer.js +128 -0
  428. package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -0
  429. package/build/esm/action-form/fields/LazyDateCalendar.js +27 -0
  430. package/build/esm/action-form/fields/LazyDateCalendar.js.map +1 -0
  431. package/build/esm/action-form/fields/NumberInputField.js +130 -0
  432. package/build/esm/action-form/fields/NumberInputField.js.map +1 -0
  433. package/build/esm/action-form/fields/NumberInputField.module.css +96 -0
  434. package/build/esm/action-form/fields/RadioButtonsField.js +57 -0
  435. package/build/esm/action-form/fields/RadioButtonsField.js.map +1 -0
  436. package/build/esm/action-form/fields/RadioButtonsField.module.css +83 -0
  437. package/build/esm/action-form/fields/TextAreaField.js +50 -0
  438. package/build/esm/action-form/fields/TextAreaField.js.map +1 -0
  439. package/build/esm/action-form/fields/TextInputField.js +39 -0
  440. package/build/esm/action-form/fields/TextInputField.js.map +1 -0
  441. package/build/esm/action-form/utils/coerceFieldValue.js +93 -0
  442. package/build/esm/action-form/utils/coerceFieldValue.js.map +1 -0
  443. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js +120 -0
  444. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js.map +1 -0
  445. package/build/esm/base-components/action-button/ActionButton.module.css +0 -4
  446. package/build/esm/base-components/checkbox/Checkbox.js +8 -4
  447. package/build/esm/base-components/checkbox/Checkbox.js.map +1 -1
  448. package/build/esm/base-components/checkbox/Checkbox.module.css +13 -8
  449. package/build/esm/base-components/combobox/Combobox.js +154 -0
  450. package/build/esm/base-components/combobox/Combobox.js.map +1 -0
  451. package/build/esm/base-components/combobox/Combobox.module.css +364 -0
  452. package/build/esm/base-components/dialog/Dialog.js +4 -2
  453. package/build/esm/base-components/dialog/Dialog.js.map +1 -1
  454. package/build/esm/base-components/dialog/Dialog.module.css +0 -8
  455. package/build/esm/base-components/draggable-list/DraggableList.module.css +2 -10
  456. package/build/esm/base-components/search-bar/SearchBar.module.css +2 -2
  457. package/build/esm/base-components/searchable-menu/SearchableMenu.js +86 -0
  458. package/build/esm/base-components/searchable-menu/SearchableMenu.js.map +1 -0
  459. package/build/esm/base-components/searchable-menu/SearchableMenu.module.css +80 -0
  460. package/build/esm/base-components/select/Select.js +93 -0
  461. package/build/esm/base-components/select/Select.js.map +1 -0
  462. package/build/esm/base-components/select/Select.module.css +233 -0
  463. package/build/esm/base-components/skeleton/SkeletonBar.js +36 -0
  464. package/build/esm/base-components/skeleton/SkeletonBar.js.map +1 -0
  465. package/build/esm/base-components/skeleton/SkeletonBar.module.css +39 -0
  466. package/build/esm/base-components/switch/Switch.module.css +14 -15
  467. package/build/esm/base-components/tooltip/Tooltip.js +91 -0
  468. package/build/esm/base-components/tooltip/Tooltip.js.map +1 -0
  469. package/build/esm/base-components/tooltip/Tooltip.module.css +70 -0
  470. package/build/esm/base-components/tooltip/index.js +18 -0
  471. package/build/esm/base-components/tooltip/index.js.map +1 -0
  472. package/build/esm/filter-list/FilterInput.js +141 -0
  473. package/build/esm/filter-list/FilterInput.js.map +1 -0
  474. package/build/esm/filter-list/FilterList.js +142 -0
  475. package/build/esm/filter-list/FilterList.js.map +1 -0
  476. package/build/esm/filter-list/FilterListApi.js.map +1 -1
  477. package/build/esm/filter-list/FilterListItemApi.js.map +1 -1
  478. package/build/esm/filter-list/base/AddFilterPopover.js +35 -0
  479. package/build/esm/filter-list/base/AddFilterPopover.js.map +1 -0
  480. package/build/esm/filter-list/base/AddFilterPopover.module.css +49 -0
  481. package/build/esm/filter-list/base/BaseFilterList.js +94 -0
  482. package/build/esm/filter-list/base/BaseFilterList.js.map +1 -0
  483. package/build/esm/filter-list/base/BaseFilterListApi.js +2 -0
  484. package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -0
  485. package/build/esm/filter-list/base/DragHandleIcon.js +51 -0
  486. package/build/esm/filter-list/base/DragHandleIcon.js.map +1 -0
  487. package/build/esm/filter-list/base/ExcludeDropdown.js +62 -0
  488. package/build/esm/filter-list/base/ExcludeDropdown.js.map +1 -0
  489. package/build/esm/filter-list/base/ExcludeDropdown.module.css +96 -0
  490. package/build/esm/filter-list/base/FilterIcons.js +65 -0
  491. package/build/esm/filter-list/base/FilterIcons.js.map +1 -0
  492. package/build/esm/filter-list/base/FilterInputExcludeRow.js +67 -0
  493. package/build/esm/filter-list/base/FilterInputExcludeRow.js.map +1 -0
  494. package/build/esm/filter-list/base/FilterList.module.css +84 -6
  495. package/build/esm/filter-list/base/FilterListContent.js +172 -6
  496. package/build/esm/filter-list/base/FilterListContent.js.map +1 -1
  497. package/build/esm/filter-list/base/FilterListContent.module.css +6 -0
  498. package/build/esm/filter-list/base/FilterListHeader.js +14 -13
  499. package/build/esm/filter-list/base/FilterListHeader.js.map +1 -1
  500. package/build/esm/filter-list/base/FilterListHeader.module.css +22 -21
  501. package/build/esm/filter-list/base/FilterListItem.js +124 -27
  502. package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
  503. package/build/esm/filter-list/base/FilterListItem.module.css +173 -0
  504. package/build/esm/filter-list/base/SortableFilterListItem.js +64 -0
  505. package/build/esm/filter-list/base/SortableFilterListItem.js.map +1 -0
  506. package/build/esm/filter-list/base/index.js +1 -2
  507. package/build/esm/filter-list/base/index.js.map +1 -1
  508. package/build/esm/filter-list/base/inputs/ContainsTextInput.js +5 -7
  509. package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
  510. package/build/esm/filter-list/base/inputs/DateRangeInput.js +37 -0
  511. package/build/esm/filter-list/base/inputs/DateRangeInput.js.map +1 -0
  512. package/build/esm/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
  513. package/build/esm/filter-list/base/inputs/ListogramInput.js +118 -0
  514. package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -0
  515. package/build/esm/filter-list/base/inputs/ListogramInput.module.css +137 -0
  516. package/build/esm/filter-list/base/inputs/ListogramSkeleton.js +45 -0
  517. package/build/esm/filter-list/base/inputs/ListogramSkeleton.js.map +1 -0
  518. package/build/esm/filter-list/base/inputs/ListogramSkeleton.module.css +32 -0
  519. package/build/esm/filter-list/base/inputs/MultiDateInput.js +1 -1
  520. package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -1
  521. package/build/esm/filter-list/base/inputs/MultiDateInput.module.css +6 -6
  522. package/build/esm/filter-list/base/inputs/MultiSelectInput.js +76 -0
  523. package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
  524. package/build/esm/filter-list/base/inputs/MultiSelectInput.module.css +37 -0
  525. package/build/esm/filter-list/base/inputs/NullValueWrapper.js +57 -0
  526. package/build/esm/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
  527. package/build/esm/filter-list/base/inputs/NullValueWrapper.module.css +50 -0
  528. package/build/esm/filter-list/base/inputs/NumberRangeInput.js +48 -0
  529. package/build/esm/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
  530. package/build/esm/filter-list/base/inputs/RangeInput.js +159 -0
  531. package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -0
  532. package/build/esm/filter-list/base/inputs/RangeInput.module.css +106 -0
  533. package/build/esm/filter-list/base/inputs/SingleDateInput.js +1 -1
  534. package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -1
  535. package/build/esm/filter-list/base/inputs/SingleDateInput.module.css +2 -2
  536. package/build/esm/filter-list/base/inputs/SingleSelectInput.js +77 -0
  537. package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
  538. package/build/esm/filter-list/base/inputs/SingleSelectInput.module.css +45 -0
  539. package/build/esm/filter-list/base/inputs/TextTagsInput.js +133 -0
  540. package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -0
  541. package/build/esm/filter-list/base/inputs/TextTagsInput.module.css +25 -0
  542. package/build/esm/filter-list/base/inputs/TimelineInput.js +74 -0
  543. package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -0
  544. package/build/esm/filter-list/base/inputs/TimelineInput.module.css +75 -0
  545. package/build/esm/filter-list/base/inputs/createHistogramBuckets.js +53 -0
  546. package/build/esm/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
  547. package/build/esm/filter-list/base/inputs/index.js +5 -1
  548. package/build/esm/filter-list/base/inputs/index.js.map +1 -1
  549. package/build/esm/filter-list/base/inputs/shared.module.css +5 -5
  550. package/build/esm/filter-list/base/inputs/useStableData.js +29 -0
  551. package/build/esm/filter-list/base/inputs/useStableData.js.map +1 -0
  552. package/build/esm/filter-list/hooks/useFilterListState.js +56 -10
  553. package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
  554. package/build/esm/filter-list/hooks/useFilterVisibility.js +74 -0
  555. package/build/esm/filter-list/hooks/useFilterVisibility.js.map +1 -0
  556. package/build/esm/filter-list/hooks/usePropertyAggregation.js +98 -0
  557. package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -0
  558. package/build/esm/filter-list/inputs/ContainsTextFilterInput.js +38 -0
  559. package/build/esm/filter-list/inputs/ContainsTextFilterInput.js.map +1 -0
  560. package/build/esm/filter-list/inputs/DateRangeFilterInput.js +109 -0
  561. package/build/esm/filter-list/inputs/DateRangeFilterInput.js.map +1 -0
  562. package/build/esm/filter-list/inputs/LinkedPropertyInput.js +496 -0
  563. package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -0
  564. package/build/esm/filter-list/inputs/ListogramFilterInput.js +83 -0
  565. package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -0
  566. package/build/esm/filter-list/inputs/MultiDateFilterInput.js +38 -0
  567. package/build/esm/filter-list/inputs/MultiDateFilterInput.js.map +1 -0
  568. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js +71 -0
  569. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -0
  570. package/build/esm/filter-list/inputs/NumberRangeFilterInput.js +109 -0
  571. package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -0
  572. package/build/esm/filter-list/inputs/PropertyFilterInput.js +142 -0
  573. package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -0
  574. package/build/esm/filter-list/inputs/SingleDateFilterInput.js +38 -0
  575. package/build/esm/filter-list/inputs/SingleDateFilterInput.js.map +1 -0
  576. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js +71 -0
  577. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -0
  578. package/build/esm/filter-list/inputs/TextTagsFilterInput.js +70 -0
  579. package/build/esm/filter-list/inputs/TextTagsFilterInput.js.map +1 -0
  580. package/build/esm/filter-list/inputs/TimelineFilterInput.js +49 -0
  581. package/build/esm/filter-list/inputs/TimelineFilterInput.js.map +1 -0
  582. package/build/esm/filter-list/inputs/ToggleFilterInput.js +36 -0
  583. package/build/esm/filter-list/inputs/ToggleFilterInput.js.map +1 -0
  584. package/build/esm/filter-list/types/AggregationTypes.js +2 -0
  585. package/build/esm/filter-list/types/AggregationTypes.js.map +1 -0
  586. package/build/esm/filter-list/types/CustomRendererTypes.js.map +1 -1
  587. package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -1
  588. package/build/esm/filter-list/types/index.js +0 -2
  589. package/build/esm/filter-list/types/index.js.map +1 -1
  590. package/build/esm/filter-list/utils/aggregationHelpers.js +44 -0
  591. package/build/esm/filter-list/utils/aggregationHelpers.js.map +1 -0
  592. package/build/esm/filter-list/utils/filterStateSerialization.js +42 -0
  593. package/build/esm/filter-list/utils/filterStateSerialization.js.map +1 -0
  594. package/build/esm/filter-list/utils/filterStateToWhereClause.js +124 -91
  595. package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  596. package/build/esm/filter-list/utils/filterValues.js +55 -1
  597. package/build/esm/filter-list/utils/filterValues.js.map +1 -1
  598. package/build/esm/filter-list/utils/getFilterKey.js +1 -1
  599. package/build/esm/filter-list/utils/getFilterKey.js.map +1 -1
  600. package/build/esm/filter-list/utils/getFilterLabel.js +36 -0
  601. package/build/esm/filter-list/utils/getFilterLabel.js.map +1 -0
  602. package/build/esm/object-table/ColumnConfigDialog.module.css +1 -11
  603. package/build/esm/object-table/DefaultCellRenderer.js +23 -5
  604. package/build/esm/object-table/DefaultCellRenderer.js.map +1 -1
  605. package/build/esm/object-table/EditableCell.js +87 -10
  606. package/build/esm/object-table/EditableCell.js.map +1 -1
  607. package/build/esm/object-table/EditableCell.module.css +69 -2
  608. package/build/esm/object-table/LoadingCell.js +7 -3
  609. package/build/esm/object-table/LoadingCell.js.map +1 -1
  610. package/build/esm/object-table/LoadingCell.module.css +3 -21
  611. package/build/esm/object-table/LoadingRow.js +2 -1
  612. package/build/esm/object-table/LoadingRow.js.map +1 -1
  613. package/build/esm/object-table/LoadingStateTable.js +2 -1
  614. package/build/esm/object-table/LoadingStateTable.js.map +1 -1
  615. package/build/esm/object-table/MultiColumnSortDialog.js +22 -58
  616. package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -1
  617. package/build/esm/object-table/MultiColumnSortDialog.module.css +0 -69
  618. package/build/esm/object-table/ObjectTable.js +16 -23
  619. package/build/esm/object-table/ObjectTable.js.map +1 -1
  620. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  621. package/build/esm/object-table/SelectionCells.js +1 -0
  622. package/build/esm/object-table/SelectionCells.js.map +1 -1
  623. package/build/esm/object-table/Table.js +23 -15
  624. package/build/esm/object-table/Table.js.map +1 -1
  625. package/build/esm/object-table/Table.module.css +0 -8
  626. package/build/esm/object-table/TableBody.js +8 -2
  627. package/build/esm/object-table/TableBody.js.map +1 -1
  628. package/build/esm/object-table/TableCell.module.css +2 -9
  629. package/build/esm/object-table/TableEditContainer.js +90 -0
  630. package/build/esm/object-table/TableEditContainer.js.map +1 -0
  631. package/build/esm/object-table/TableEditContainer.module.css +71 -0
  632. package/build/esm/object-table/TableHeader.js +4 -1
  633. package/build/esm/object-table/TableHeader.js.map +1 -1
  634. package/build/esm/object-table/TableHeader.module.css +4 -3
  635. package/build/esm/object-table/TableHeaderWithPopover.js +2 -4
  636. package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
  637. package/build/esm/object-table/TableHeaderWithPopover.module.css +1 -12
  638. package/build/esm/object-table/TableRow.js +10 -3
  639. package/build/esm/object-table/TableRow.js.map +1 -1
  640. package/build/esm/object-table/TableRow.module.css +2 -1
  641. package/build/esm/object-table/components/AsyncValueCell.js +35 -0
  642. package/build/esm/object-table/components/AsyncValueCell.js.map +1 -0
  643. package/build/esm/object-table/hooks/useColumnDefs.js +5 -2
  644. package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
  645. package/build/esm/object-table/hooks/useEditableTable.js +39 -11
  646. package/build/esm/object-table/hooks/useEditableTable.js.map +1 -1
  647. package/build/esm/object-table/hooks/useFunctionColumnsData.js +135 -0
  648. package/build/esm/object-table/hooks/useFunctionColumnsData.js.map +1 -0
  649. package/build/esm/object-table/hooks/useObjectTableData.js +33 -17
  650. package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
  651. package/build/esm/object-table/hooks/useRowSelection.js +11 -8
  652. package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
  653. package/build/esm/object-table/utils/AsyncCellData.js +30 -0
  654. package/build/esm/object-table/utils/AsyncCellData.js.map +1 -0
  655. package/build/esm/object-table/utils/constants.js +1 -0
  656. package/build/esm/object-table/utils/constants.js.map +1 -1
  657. package/build/esm/object-table/utils/getCellId.js +0 -7
  658. package/build/esm/object-table/utils/getCellId.js.map +1 -1
  659. package/build/esm/object-table/utils/types.js.map +1 -1
  660. package/build/esm/pdf-viewer/PdfRenderer.js +88 -0
  661. package/build/esm/pdf-viewer/PdfRenderer.js.map +1 -0
  662. package/build/esm/pdf-viewer/PdfViewer.js +179 -0
  663. package/build/esm/pdf-viewer/PdfViewer.js.map +1 -0
  664. package/build/esm/pdf-viewer/PdfViewer.module.css +95 -0
  665. package/build/esm/pdf-viewer/PdfViewerContext.js +108 -0
  666. package/build/esm/pdf-viewer/PdfViewerContext.js.map +1 -0
  667. package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.js +141 -0
  668. package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -0
  669. package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.module.css +82 -0
  670. package/build/esm/pdf-viewer/components/PdfViewerContent.js +125 -0
  671. package/build/esm/pdf-viewer/components/PdfViewerContent.js.map +1 -0
  672. package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js +98 -0
  673. package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -0
  674. package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.module.css +89 -0
  675. package/build/esm/pdf-viewer/components/PdfViewerSearchBar.js +84 -0
  676. package/build/esm/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -0
  677. package/build/esm/pdf-viewer/components/PdfViewerSearchBar.module.css +65 -0
  678. package/build/esm/pdf-viewer/components/PdfViewerSidebar.js +78 -0
  679. package/build/esm/pdf-viewer/components/PdfViewerSidebar.js.map +1 -0
  680. package/build/esm/pdf-viewer/components/PdfViewerSidebar.module.css +37 -0
  681. package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.js +54 -0
  682. package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -0
  683. package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.module.css +70 -0
  684. package/build/esm/pdf-viewer/components/PdfViewerThumbnail.js +100 -0
  685. package/build/esm/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -0
  686. package/build/esm/pdf-viewer/components/PdfViewerThumbnail.module.css +26 -0
  687. package/build/esm/pdf-viewer/components/PdfViewerToolbar.js +221 -0
  688. package/build/esm/pdf-viewer/components/PdfViewerToolbar.js.map +1 -0
  689. package/build/esm/pdf-viewer/components/PdfViewerToolbar.module.css +91 -0
  690. package/build/esm/pdf-viewer/constants.js +46 -0
  691. package/build/esm/pdf-viewer/constants.js.map +1 -0
  692. package/build/esm/pdf-viewer/hooks/usePdfAnnotationPortals.js +54 -0
  693. package/build/esm/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -0
  694. package/build/esm/pdf-viewer/hooks/usePdfAnnotationsByPage.js +30 -0
  695. package/build/esm/pdf-viewer/hooks/usePdfAnnotationsByPage.js.map +1 -0
  696. package/build/esm/pdf-viewer/hooks/usePdfDocument.js +66 -0
  697. package/build/esm/pdf-viewer/hooks/usePdfDocument.js.map +1 -0
  698. package/build/esm/pdf-viewer/hooks/usePdfFormFields.js +341 -0
  699. package/build/esm/pdf-viewer/hooks/usePdfFormFields.js.map +1 -0
  700. package/build/esm/pdf-viewer/hooks/usePdfHighlightMode.js +227 -0
  701. package/build/esm/pdf-viewer/hooks/usePdfHighlightMode.js.map +1 -0
  702. package/build/esm/pdf-viewer/hooks/usePdfOutline.js +268 -0
  703. package/build/esm/pdf-viewer/hooks/usePdfOutline.js.map +1 -0
  704. package/build/esm/pdf-viewer/hooks/usePdfViewer.js +86 -0
  705. package/build/esm/pdf-viewer/hooks/usePdfViewer.js.map +1 -0
  706. package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js +80 -0
  707. package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -0
  708. package/build/esm/pdf-viewer/hooks/usePdfViewerSearch.js +106 -0
  709. package/build/esm/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -0
  710. package/build/esm/pdf-viewer/hooks/usePdfViewerState.js +135 -0
  711. package/build/esm/pdf-viewer/hooks/usePdfViewerState.js.map +1 -0
  712. package/build/esm/pdf-viewer/hooks/usePdfViewerSync.js +71 -0
  713. package/build/esm/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -0
  714. package/build/esm/pdf-viewer/types.js +2 -0
  715. package/build/esm/pdf-viewer/types.js.map +1 -0
  716. package/build/esm/public/experimental.js +34 -0
  717. package/build/esm/public/experimental.js.map +1 -1
  718. package/build/esm/public/primitives.js +20 -0
  719. package/build/esm/public/primitives.js.map +1 -0
  720. package/build/esm/shared/ErrorBoundary.module.css +14 -14
  721. package/build/esm/{filter-list/utils → shared}/assertUnreachable.js +1 -1
  722. package/build/esm/{filter-list/utils → shared}/assertUnreachable.js.map +1 -1
  723. package/build/{browser/filter-list/base/inputs → esm/shared}/dateUtils.js +38 -2
  724. package/build/esm/shared/dateUtils.js.map +1 -0
  725. package/build/esm/shared/typedMemo.js +25 -0
  726. package/build/esm/shared/typedMemo.js.map +1 -0
  727. package/build/types/action-form/ActionForm.d.ts +4 -0
  728. package/build/types/action-form/ActionForm.d.ts.map +1 -0
  729. package/build/types/action-form/ActionFormApi.d.ts +49 -32
  730. package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
  731. package/build/types/action-form/BaseForm.d.ts +3 -0
  732. package/build/types/action-form/BaseForm.d.ts.map +1 -0
  733. package/build/types/action-form/FormField.d.ts +11 -0
  734. package/build/types/action-form/FormField.d.ts.map +1 -0
  735. package/build/types/action-form/FormFieldApi.d.ts +152 -51
  736. package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
  737. package/build/types/action-form/FormHeader.d.ts +6 -0
  738. package/build/types/action-form/FormHeader.d.ts.map +1 -0
  739. package/build/types/action-form/fields/CustomField.d.ts +9 -0
  740. package/build/types/action-form/fields/CustomField.d.ts.map +1 -0
  741. package/build/types/action-form/fields/DateCalendar.d.ts +9 -0
  742. package/build/types/action-form/fields/DateCalendar.d.ts.map +1 -0
  743. package/build/types/action-form/fields/DatetimePickerField.d.ts +3 -0
  744. package/build/types/action-form/fields/DatetimePickerField.d.ts.map +1 -0
  745. package/build/types/action-form/fields/DropdownField.d.ts +6 -0
  746. package/build/types/action-form/fields/DropdownField.d.ts.map +1 -0
  747. package/build/types/action-form/fields/FieldBridge.d.ts +9 -0
  748. package/build/types/action-form/fields/FieldBridge.d.ts.map +1 -0
  749. package/build/types/action-form/fields/FilePickerField.d.ts +3 -0
  750. package/build/types/action-form/fields/FilePickerField.d.ts.map +1 -0
  751. package/build/types/action-form/fields/FormFieldRenderer.d.ts +8 -0
  752. package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -0
  753. package/build/types/action-form/fields/LazyDateCalendar.d.ts +3 -0
  754. package/build/types/action-form/fields/LazyDateCalendar.d.ts.map +1 -0
  755. package/build/types/action-form/fields/NumberInputField.d.ts +3 -0
  756. package/build/types/action-form/fields/NumberInputField.d.ts.map +1 -0
  757. package/build/types/action-form/fields/RadioButtonsField.d.ts +3 -0
  758. package/build/types/action-form/fields/RadioButtonsField.d.ts.map +1 -0
  759. package/build/types/action-form/fields/TextAreaField.d.ts +3 -0
  760. package/build/types/action-form/fields/TextAreaField.d.ts.map +1 -0
  761. package/build/types/action-form/fields/TextInputField.d.ts +5 -0
  762. package/build/types/action-form/fields/TextInputField.d.ts.map +1 -0
  763. package/build/types/action-form/utils/coerceFieldValue.d.ts +10 -0
  764. package/build/types/action-form/utils/coerceFieldValue.d.ts.map +1 -0
  765. package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts +9 -0
  766. package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts.map +1 -0
  767. package/build/types/base-components/checkbox/Checkbox.d.ts +2 -1
  768. package/build/types/base-components/checkbox/Checkbox.d.ts.map +1 -1
  769. package/build/types/base-components/combobox/Combobox.d.ts +65 -0
  770. package/build/types/base-components/combobox/Combobox.d.ts.map +1 -0
  771. package/build/types/base-components/dialog/Dialog.d.ts +3 -2
  772. package/build/types/base-components/dialog/Dialog.d.ts.map +1 -1
  773. package/build/types/base-components/searchable-menu/SearchableMenu.d.ts +18 -0
  774. package/build/types/base-components/searchable-menu/SearchableMenu.d.ts.map +1 -0
  775. package/build/types/base-components/select/Select.d.ts +40 -0
  776. package/build/types/base-components/select/Select.d.ts.map +1 -0
  777. package/build/types/base-components/skeleton/SkeletonBar.d.ts +9 -0
  778. package/build/types/base-components/skeleton/SkeletonBar.d.ts.map +1 -0
  779. package/build/types/base-components/tooltip/Tooltip.d.ts +31 -0
  780. package/build/types/base-components/tooltip/Tooltip.d.ts.map +1 -0
  781. package/build/types/base-components/tooltip/index.d.ts +1 -0
  782. package/build/types/base-components/tooltip/index.d.ts.map +1 -0
  783. package/build/types/filter-list/FilterInput.d.ts +17 -0
  784. package/build/types/filter-list/FilterInput.d.ts.map +1 -0
  785. package/build/types/filter-list/{base/FilterList.d.ts → FilterList.d.ts} +1 -1
  786. package/build/types/filter-list/FilterList.d.ts.map +1 -0
  787. package/build/types/filter-list/FilterListApi.d.ts +49 -33
  788. package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
  789. package/build/types/filter-list/FilterListItemApi.d.ts +22 -6
  790. package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
  791. package/build/types/filter-list/base/AddFilterPopover.d.ts +13 -0
  792. package/build/types/filter-list/base/AddFilterPopover.d.ts.map +1 -0
  793. package/build/types/filter-list/base/BaseFilterList.d.ts +3 -0
  794. package/build/types/filter-list/base/BaseFilterList.d.ts.map +1 -0
  795. package/build/types/filter-list/base/BaseFilterListApi.d.ts +32 -0
  796. package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -0
  797. package/build/types/filter-list/base/DragHandleIcon.d.ts +2 -0
  798. package/build/types/filter-list/base/DragHandleIcon.d.ts.map +1 -0
  799. package/build/types/filter-list/base/ExcludeDropdown.d.ts +8 -0
  800. package/build/types/filter-list/base/ExcludeDropdown.d.ts.map +1 -0
  801. package/build/types/filter-list/base/FilterIcons.d.ts +10 -0
  802. package/build/types/filter-list/base/FilterIcons.d.ts.map +1 -0
  803. package/build/types/filter-list/base/FilterInputExcludeRow.d.ts +13 -0
  804. package/build/types/filter-list/base/FilterInputExcludeRow.d.ts.map +1 -0
  805. package/build/types/filter-list/base/FilterListContent.d.ts +9 -6
  806. package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -1
  807. package/build/types/filter-list/base/FilterListHeader.d.ts +3 -2
  808. package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -1
  809. package/build/types/filter-list/base/FilterListItem.d.ts +10 -6
  810. package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -1
  811. package/build/types/filter-list/base/SortableFilterListItem.d.ts +16 -0
  812. package/build/types/filter-list/base/SortableFilterListItem.d.ts.map +1 -0
  813. package/build/types/filter-list/base/index.d.ts +2 -2
  814. package/build/types/filter-list/base/index.d.ts.map +1 -1
  815. package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts.map +1 -1
  816. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts +17 -0
  817. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts.map +1 -0
  818. package/build/types/filter-list/base/inputs/ListogramInput.d.ts +21 -0
  819. package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -0
  820. package/build/types/filter-list/base/inputs/ListogramSkeleton.d.ts +2 -0
  821. package/build/types/filter-list/base/inputs/ListogramSkeleton.d.ts.map +1 -0
  822. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts +16 -0
  823. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -0
  824. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts +15 -0
  825. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts.map +1 -0
  826. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts +17 -0
  827. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts.map +1 -0
  828. package/build/types/filter-list/base/inputs/RangeInput.d.ts +30 -0
  829. package/build/types/filter-list/base/inputs/RangeInput.d.ts.map +1 -0
  830. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -1
  831. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts +18 -0
  832. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts.map +1 -0
  833. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts +18 -0
  834. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts.map +1 -0
  835. package/build/types/filter-list/base/inputs/TimelineInput.d.ts +11 -0
  836. package/build/types/filter-list/base/inputs/TimelineInput.d.ts.map +1 -0
  837. package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts +16 -0
  838. package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts.map +1 -0
  839. package/build/types/filter-list/base/inputs/index.d.ts +5 -1
  840. package/build/types/filter-list/base/inputs/index.d.ts.map +1 -1
  841. package/build/types/filter-list/base/inputs/useStableData.d.ts +1 -0
  842. package/build/types/filter-list/base/inputs/useStableData.d.ts.map +1 -0
  843. package/build/types/filter-list/hooks/useFilterListState.d.ts +2 -0
  844. package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -1
  845. package/build/types/filter-list/hooks/useFilterVisibility.d.ts +10 -0
  846. package/build/types/filter-list/hooks/useFilterVisibility.d.ts.map +1 -0
  847. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +18 -0
  848. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -0
  849. package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts +10 -0
  850. package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts.map +1 -0
  851. package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts +13 -0
  852. package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts.map +1 -0
  853. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts +22 -0
  854. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -0
  855. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts +19 -0
  856. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -0
  857. package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts +9 -0
  858. package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts.map +1 -0
  859. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts +15 -0
  860. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -0
  861. package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts +13 -0
  862. package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -0
  863. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts +19 -0
  864. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -0
  865. package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts +9 -0
  866. package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts.map +1 -0
  867. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts +15 -0
  868. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -0
  869. package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts +15 -0
  870. package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts.map +1 -0
  871. package/build/types/filter-list/inputs/TimelineFilterInput.d.ts +9 -0
  872. package/build/types/filter-list/inputs/TimelineFilterInput.d.ts.map +1 -0
  873. package/build/types/filter-list/inputs/ToggleFilterInput.d.ts +9 -0
  874. package/build/types/filter-list/inputs/ToggleFilterInput.d.ts.map +1 -0
  875. package/build/types/filter-list/types/AggregationTypes.d.ts +5 -0
  876. package/build/types/filter-list/types/AggregationTypes.d.ts.map +1 -0
  877. package/build/types/filter-list/types/CustomRendererTypes.d.ts +2 -1
  878. package/build/types/filter-list/types/CustomRendererTypes.d.ts.map +1 -1
  879. package/build/types/filter-list/types/LinkedFilterTypes.d.ts +0 -19
  880. package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -1
  881. package/build/types/filter-list/types/index.d.ts +0 -2
  882. package/build/types/filter-list/types/index.d.ts.map +1 -1
  883. package/build/types/filter-list/utils/aggregationHelpers.d.ts +9 -0
  884. package/build/types/filter-list/utils/aggregationHelpers.d.ts.map +1 -0
  885. package/build/types/filter-list/utils/filterStateSerialization.d.ts +3 -0
  886. package/build/types/filter-list/utils/filterStateSerialization.d.ts.map +1 -0
  887. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts +5 -1
  888. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -1
  889. package/build/types/filter-list/utils/filterValues.d.ts +4 -0
  890. package/build/types/filter-list/utils/filterValues.d.ts.map +1 -1
  891. package/build/types/filter-list/utils/getFilterKey.d.ts.map +1 -1
  892. package/build/types/filter-list/utils/getFilterLabel.d.ts +3 -0
  893. package/build/types/filter-list/utils/getFilterLabel.d.ts.map +1 -0
  894. package/build/types/object-table/DefaultCellRenderer.d.ts +2 -2
  895. package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -1
  896. package/build/types/object-table/EditableCell.d.ts +22 -6
  897. package/build/types/object-table/EditableCell.d.ts.map +1 -1
  898. package/build/types/object-table/LoadingCell.d.ts +1 -0
  899. package/build/types/object-table/LoadingCell.d.ts.map +1 -1
  900. package/build/types/object-table/LoadingRow.d.ts.map +1 -1
  901. package/build/types/object-table/LoadingStateTable.d.ts.map +1 -1
  902. package/build/types/object-table/MultiColumnSortDialog.d.ts.map +1 -1
  903. package/build/types/object-table/ObjectTable.d.ts +1 -9
  904. package/build/types/object-table/ObjectTable.d.ts.map +1 -1
  905. package/build/types/object-table/ObjectTableApi.d.ts +82 -22
  906. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  907. package/build/types/object-table/Table.d.ts +10 -10
  908. package/build/types/object-table/Table.d.ts.map +1 -1
  909. package/build/types/object-table/TableBody.d.ts +4 -1
  910. package/build/types/object-table/TableBody.d.ts.map +1 -1
  911. package/build/types/object-table/TableEditContainer.d.ts +9 -0
  912. package/build/types/object-table/TableEditContainer.d.ts.map +1 -0
  913. package/build/types/object-table/TableHeader.d.ts.map +1 -1
  914. package/build/types/object-table/TableRow.d.ts +4 -1
  915. package/build/types/object-table/TableRow.d.ts.map +1 -1
  916. package/build/types/object-table/components/AsyncValueCell.d.ts +5 -0
  917. package/build/types/object-table/components/AsyncValueCell.d.ts.map +1 -0
  918. package/build/types/object-table/hooks/useEditableTable.d.ts +4 -9
  919. package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -1
  920. package/build/types/object-table/hooks/useFunctionColumnsData.d.ts +13 -0
  921. package/build/types/object-table/hooks/useFunctionColumnsData.d.ts.map +1 -0
  922. package/build/types/object-table/hooks/useObjectTableData.d.ts +6 -1
  923. package/build/types/object-table/hooks/useObjectTableData.d.ts.map +1 -1
  924. package/build/types/object-table/hooks/useRowSelection.d.ts +3 -2
  925. package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
  926. package/build/types/object-table/utils/AsyncCellData.d.ts +8 -0
  927. package/build/types/object-table/utils/AsyncCellData.d.ts.map +1 -0
  928. package/build/types/object-table/utils/constants.d.ts +1 -0
  929. package/build/types/object-table/utils/constants.d.ts.map +1 -1
  930. package/build/types/object-table/utils/getCellId.d.ts +0 -1
  931. package/build/types/object-table/utils/getCellId.d.ts.map +1 -1
  932. package/build/types/object-table/utils/types.d.ts +28 -3
  933. package/build/types/object-table/utils/types.d.ts.map +1 -1
  934. package/build/types/pdf-viewer/PdfRenderer.d.ts +8 -0
  935. package/build/types/pdf-viewer/PdfRenderer.d.ts.map +1 -0
  936. package/build/types/pdf-viewer/PdfViewer.d.ts +4 -0
  937. package/build/types/pdf-viewer/PdfViewer.d.ts.map +1 -0
  938. package/build/types/pdf-viewer/PdfViewerContext.d.ts +64 -0
  939. package/build/types/pdf-viewer/PdfViewerContext.d.ts.map +1 -0
  940. package/build/types/pdf-viewer/components/PdfViewerAnnotationLayer.d.ts +9 -0
  941. package/build/types/pdf-viewer/components/PdfViewerAnnotationLayer.d.ts.map +1 -0
  942. package/build/types/pdf-viewer/components/PdfViewerContent.d.ts +26 -0
  943. package/build/types/pdf-viewer/components/PdfViewerContent.d.ts.map +1 -0
  944. package/build/types/pdf-viewer/components/PdfViewerOutlineSidebar.d.ts +11 -0
  945. package/build/types/pdf-viewer/components/PdfViewerOutlineSidebar.d.ts.map +1 -0
  946. package/build/types/pdf-viewer/components/PdfViewerSearchBar.d.ts +11 -0
  947. package/build/types/pdf-viewer/components/PdfViewerSearchBar.d.ts.map +1 -0
  948. package/build/types/pdf-viewer/components/PdfViewerSidebar.d.ts +12 -0
  949. package/build/types/pdf-viewer/components/PdfViewerSidebar.d.ts.map +1 -0
  950. package/build/types/pdf-viewer/components/PdfViewerSidebarHeader.d.ts +7 -0
  951. package/build/types/pdf-viewer/components/PdfViewerSidebarHeader.d.ts.map +1 -0
  952. package/build/types/pdf-viewer/components/PdfViewerThumbnail.d.ts +10 -0
  953. package/build/types/pdf-viewer/components/PdfViewerThumbnail.d.ts.map +1 -0
  954. package/build/types/pdf-viewer/components/PdfViewerToolbar.d.ts +21 -0
  955. package/build/types/pdf-viewer/components/PdfViewerToolbar.d.ts.map +1 -0
  956. package/build/types/pdf-viewer/constants.d.ts +22 -0
  957. package/build/types/pdf-viewer/constants.d.ts.map +1 -0
  958. package/build/types/pdf-viewer/hooks/usePdfAnnotationPortals.d.ts +10 -0
  959. package/build/types/pdf-viewer/hooks/usePdfAnnotationPortals.d.ts.map +1 -0
  960. package/build/types/pdf-viewer/hooks/usePdfAnnotationsByPage.d.ts +5 -0
  961. package/build/types/pdf-viewer/hooks/usePdfAnnotationsByPage.d.ts.map +1 -0
  962. package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts +9 -0
  963. package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts.map +1 -0
  964. package/build/types/pdf-viewer/hooks/usePdfFormFields.d.ts +24 -0
  965. package/build/types/pdf-viewer/hooks/usePdfFormFields.d.ts.map +1 -0
  966. package/build/types/pdf-viewer/hooks/usePdfHighlightMode.d.ts +36 -0
  967. package/build/types/pdf-viewer/hooks/usePdfHighlightMode.d.ts.map +1 -0
  968. package/build/types/pdf-viewer/hooks/usePdfOutline.d.ts +3 -0
  969. package/build/types/pdf-viewer/hooks/usePdfOutline.d.ts.map +1 -0
  970. package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts +9 -0
  971. package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts.map +1 -0
  972. package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts +43 -0
  973. package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts.map +1 -0
  974. package/build/types/pdf-viewer/hooks/usePdfViewerSearch.d.ts +15 -0
  975. package/build/types/pdf-viewer/hooks/usePdfViewerSearch.d.ts.map +1 -0
  976. package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts +39 -0
  977. package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts.map +1 -0
  978. package/build/types/pdf-viewer/hooks/usePdfViewerSync.d.ts +15 -0
  979. package/build/types/pdf-viewer/hooks/usePdfViewerSync.d.ts.map +1 -0
  980. package/build/types/pdf-viewer/types.d.ts +210 -0
  981. package/build/types/pdf-viewer/types.d.ts.map +1 -0
  982. package/build/types/public/experimental.d.ts +33 -2
  983. package/build/types/public/experimental.d.ts.map +1 -1
  984. package/build/types/public/primitives.d.ts +3 -0
  985. package/build/types/public/primitives.d.ts.map +1 -0
  986. package/build/types/shared/assertUnreachable.d.ts.map +1 -0
  987. package/build/types/shared/dateUtils.d.ts +31 -0
  988. package/build/types/shared/dateUtils.d.ts.map +1 -0
  989. package/build/types/shared/typedMemo.d.ts +6 -0
  990. package/build/types/shared/typedMemo.d.ts.map +1 -0
  991. package/package.json +23 -10
  992. package/primitives.d.ts +17 -0
  993. package/build/browser/filter-list/__tests__/dateUtils.test.js +0 -55
  994. package/build/browser/filter-list/__tests__/dateUtils.test.js.map +0 -1
  995. package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js +0 -296
  996. package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js.map +0 -1
  997. package/build/browser/filter-list/__tests__/getFilterKey.test.js +0 -53
  998. package/build/browser/filter-list/__tests__/getFilterKey.test.js.map +0 -1
  999. package/build/browser/filter-list/__tests__/testUtils.js +0 -203
  1000. package/build/browser/filter-list/__tests__/testUtils.js.map +0 -1
  1001. package/build/browser/filter-list/base/FilterInput.js +0 -225
  1002. package/build/browser/filter-list/base/FilterInput.js.map +0 -1
  1003. package/build/browser/filter-list/base/FilterList.js +0 -73
  1004. package/build/browser/filter-list/base/FilterList.js.map +0 -1
  1005. package/build/browser/filter-list/base/inputs/dateUtils.js.map +0 -1
  1006. package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js +0 -128
  1007. package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js.map +0 -1
  1008. package/build/browser/filter-list/types/AddFilterMenuTypes.js +0 -2
  1009. package/build/browser/filter-list/types/AddFilterMenuTypes.js.map +0 -1
  1010. package/build/browser/filter-list/types/FilterPanelTypes.js +0 -2
  1011. package/build/browser/filter-list/types/FilterPanelTypes.js.map +0 -1
  1012. package/build/browser/object-table/__tests__/useEditableTable.test.js +0 -197
  1013. package/build/browser/object-table/__tests__/useEditableTable.test.js.map +0 -1
  1014. package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js +0 -147
  1015. package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js.map +0 -1
  1016. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js +0 -520
  1017. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js.map +0 -1
  1018. package/build/browser/object-table/hooks/__tests__/useColumnPinning.test.js +0 -266
  1019. package/build/browser/object-table/hooks/__tests__/useColumnPinning.test.js.map +0 -1
  1020. package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js +0 -200
  1021. package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js.map +0 -1
  1022. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js +0 -315
  1023. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js.map +0 -1
  1024. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js +0 -596
  1025. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js.map +0 -1
  1026. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js +0 -220
  1027. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js.map +0 -1
  1028. package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js +0 -501
  1029. package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js.map +0 -1
  1030. package/build/esm/filter-list/__tests__/dateUtils.test.js +0 -55
  1031. package/build/esm/filter-list/__tests__/dateUtils.test.js.map +0 -1
  1032. package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js +0 -296
  1033. package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js.map +0 -1
  1034. package/build/esm/filter-list/__tests__/getFilterKey.test.js +0 -53
  1035. package/build/esm/filter-list/__tests__/getFilterKey.test.js.map +0 -1
  1036. package/build/esm/filter-list/__tests__/testUtils.js +0 -203
  1037. package/build/esm/filter-list/__tests__/testUtils.js.map +0 -1
  1038. package/build/esm/filter-list/base/FilterInput.js +0 -225
  1039. package/build/esm/filter-list/base/FilterInput.js.map +0 -1
  1040. package/build/esm/filter-list/base/FilterList.js +0 -73
  1041. package/build/esm/filter-list/base/FilterList.js.map +0 -1
  1042. package/build/esm/filter-list/base/inputs/dateUtils.js.map +0 -1
  1043. package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js +0 -128
  1044. package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js.map +0 -1
  1045. package/build/esm/filter-list/types/AddFilterMenuTypes.js +0 -2
  1046. package/build/esm/filter-list/types/AddFilterMenuTypes.js.map +0 -1
  1047. package/build/esm/filter-list/types/FilterPanelTypes.js +0 -2
  1048. package/build/esm/filter-list/types/FilterPanelTypes.js.map +0 -1
  1049. package/build/esm/object-table/__tests__/useEditableTable.test.js +0 -197
  1050. package/build/esm/object-table/__tests__/useEditableTable.test.js.map +0 -1
  1051. package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js +0 -147
  1052. package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js.map +0 -1
  1053. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js +0 -520
  1054. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js.map +0 -1
  1055. package/build/esm/object-table/hooks/__tests__/useColumnPinning.test.js +0 -266
  1056. package/build/esm/object-table/hooks/__tests__/useColumnPinning.test.js.map +0 -1
  1057. package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js +0 -200
  1058. package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js.map +0 -1
  1059. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js +0 -315
  1060. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js.map +0 -1
  1061. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js +0 -596
  1062. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js.map +0 -1
  1063. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js +0 -220
  1064. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js.map +0 -1
  1065. package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js +0 -501
  1066. package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js.map +0 -1
  1067. package/build/types/filter-list/__tests__/dateUtils.test.d.ts +0 -1
  1068. package/build/types/filter-list/__tests__/dateUtils.test.d.ts.map +0 -1
  1069. package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts +0 -1
  1070. package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts.map +0 -1
  1071. package/build/types/filter-list/__tests__/getFilterKey.test.d.ts +0 -1
  1072. package/build/types/filter-list/__tests__/getFilterKey.test.d.ts.map +0 -1
  1073. package/build/types/filter-list/__tests__/testUtils.d.ts +0 -65
  1074. package/build/types/filter-list/__tests__/testUtils.d.ts.map +0 -1
  1075. package/build/types/filter-list/base/FilterInput.d.ts +0 -13
  1076. package/build/types/filter-list/base/FilterInput.d.ts.map +0 -1
  1077. package/build/types/filter-list/base/FilterList.d.ts.map +0 -1
  1078. package/build/types/filter-list/base/inputs/dateUtils.d.ts +0 -17
  1079. package/build/types/filter-list/base/inputs/dateUtils.d.ts.map +0 -1
  1080. package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts +0 -1
  1081. package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts.map +0 -1
  1082. package/build/types/filter-list/types/AddFilterMenuTypes.d.ts +0 -77
  1083. package/build/types/filter-list/types/AddFilterMenuTypes.d.ts.map +0 -1
  1084. package/build/types/filter-list/types/FilterPanelTypes.d.ts +0 -18
  1085. package/build/types/filter-list/types/FilterPanelTypes.d.ts.map +0 -1
  1086. package/build/types/filter-list/utils/assertUnreachable.d.ts.map +0 -1
  1087. package/build/types/object-table/__tests__/useEditableTable.test.d.ts +0 -1
  1088. package/build/types/object-table/__tests__/useEditableTable.test.d.ts.map +0 -1
  1089. package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts +0 -1
  1090. package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts.map +0 -1
  1091. package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts +0 -1
  1092. package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts.map +0 -1
  1093. package/build/types/object-table/hooks/__tests__/useColumnPinning.test.d.ts +0 -1
  1094. package/build/types/object-table/hooks/__tests__/useColumnPinning.test.d.ts.map +0 -1
  1095. package/build/types/object-table/hooks/__tests__/useColumnVisibility.test.d.ts +0 -1
  1096. package/build/types/object-table/hooks/__tests__/useColumnVisibility.test.d.ts.map +0 -1
  1097. package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts +0 -1
  1098. package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts.map +0 -1
  1099. package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts +0 -1
  1100. package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts.map +0 -1
  1101. package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts +0 -1
  1102. package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts.map +0 -1
  1103. package/build/types/object-table/hooks/__tests__/useTableSorting.test.d.ts +0 -1
  1104. package/build/types/object-table/hooks/__tests__/useTableSorting.test.d.ts.map +0 -1
  1105. /package/build/types/{filter-list/utils → shared}/assertUnreachable.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","names":["classNames","React","useCallback","useEffect","useRef","useState","ActionButton","LoadingStateTable","NonIdealState","styles","TableBody","TableHeader","BaseTable","table","isLoading","fetchNextPage","onRowClick","rowHeight","renderCellContextMenu","className","error","headerMenuFeatureFlags","editableConfig","tableContainerRef","isLoadingMore","setIsLoadingMore","fetchingRef","fetchMoreOnEndReached","containerRefElement","current","scrollHeight","scrollTop","clientHeight","handleScroll","e","currentTarget","rows","getRowModel","headerGroups","getHeaderGroups","hasData","length","hasEdits","Object","keys","cellEdits","handleSubmitEdits","onSubmitEdits","clearEdits","createElement","osdkTableWrapper","ref","osdkTableContainer","osdkTableContainerWithButton","onScroll","Fragment","message","submitButtonContainer","variant","onClick","disabled"],"sources":["Table.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 { Cell, RowData, Table } from \"@tanstack/react-table\";\nimport classNames from \"classnames\";\nimport React, {\n type ReactElement,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { ActionButton } from \"../base-components/action-button/ActionButton.js\";\nimport { LoadingStateTable } from \"./LoadingStateTable.js\";\nimport { NonIdealState } from \"./NonIdealState.js\";\nimport styles from \"./Table.module.css\";\nimport { TableBody } from \"./TableBody.js\";\nimport { TableHeader } from \"./TableHeader.js\";\nimport type { HeaderMenuFeatureFlags } from \"./TableHeaderWithPopover.js\";\nimport type { CellValueState } from \"./utils/types.js\";\n\ndeclare module \"@tanstack/react-table\" {\n interface ColumnMeta<TData extends RowData = unknown, TValue = unknown> {\n columnName?: string;\n isVisible?: boolean;\n editable?: boolean;\n dataType?: string;\n }\n interface TableMeta<TData extends RowData = unknown> {\n onCellEdit?: (\n cellId: string,\n state: CellValueState,\n ) => void;\n cellEdits?: Record<string, CellValueState>;\n }\n}\n\ninterface EditableConfig {\n onSubmitEdits?: () => Promise<void>;\n clearEdits?: () => void;\n cellEdits?: Record<string, CellValueState>;\n}\n\nexport interface BaseTableProps<\n TData extends RowData,\n> {\n table: Table<TData>;\n isLoading?: boolean;\n fetchNextPage?: () => Promise<void>;\n onRowClick?: (row: TData) => void;\n rowHeight?: number;\n renderCellContextMenu?: (\n row: TData,\n cell: Cell<TData, unknown>,\n ) => React.ReactNode;\n className?: string;\n error?: Error;\n headerMenuFeatureFlags?: HeaderMenuFeatureFlags;\n editableConfig?: EditableConfig;\n}\n\nexport function BaseTable<\n TData extends RowData,\n>(\n {\n table,\n isLoading,\n fetchNextPage,\n onRowClick,\n rowHeight,\n renderCellContextMenu,\n className,\n error,\n headerMenuFeatureFlags,\n editableConfig,\n }: BaseTableProps<TData>,\n): ReactElement {\n const tableContainerRef = useRef<HTMLDivElement>(null);\n const [isLoadingMore, setIsLoadingMore] = useState(false);\n\n // Using a ref to prevent duplicate fetches from rapid scroll events while a fetch is in-flight\n const fetchingRef = useRef(false);\n\n useEffect(() => {\n if (!isLoading || fetchNextPage == null) {\n setIsLoadingMore(false);\n }\n }, [isLoading, fetchNextPage]);\n\n const fetchMoreOnEndReached = useCallback(\n async (containerRefElement?: HTMLDivElement | null) => {\n if (containerRefElement && !fetchingRef.current && !isLoadingMore) {\n const { scrollHeight, scrollTop, clientHeight } = containerRefElement;\n if (\n scrollHeight - scrollTop - clientHeight < 100\n && !isLoading && fetchNextPage != null\n ) {\n fetchingRef.current = true;\n setIsLoadingMore(true);\n try {\n await fetchNextPage();\n } finally {\n fetchingRef.current = false;\n }\n }\n }\n },\n [fetchNextPage, isLoading, isLoadingMore],\n );\n\n const handleScroll = useCallback(\n async (e: React.UIEvent<HTMLDivElement>) => {\n await fetchMoreOnEndReached(e.currentTarget);\n },\n [fetchMoreOnEndReached],\n );\n\n const rows = table.getRowModel().rows;\n const headerGroups = table.getHeaderGroups();\n const hasData = rows.length > 0;\n const hasEdits = Object.keys(editableConfig?.cellEdits ?? {}).length > 0;\n\n const handleSubmitEdits = useCallback(async () => {\n await editableConfig?.onSubmitEdits?.();\n editableConfig?.clearEdits?.();\n }, [editableConfig]);\n\n return (\n <div className={classNames(styles.osdkTableWrapper, className)}>\n <div\n ref={tableContainerRef}\n className={classNames(\n styles.osdkTableContainer,\n editableConfig && styles.osdkTableContainerWithButton,\n )}\n onScroll={handleScroll}\n >\n <table>\n {isLoading && !hasData\n ? (\n <LoadingStateTable\n table={table}\n headerGroups={headerGroups}\n rowHeight={rowHeight}\n tableContainerRef={tableContainerRef}\n />\n )\n : (\n <>\n <TableHeader\n table={table}\n headerMenuFeatureFlags={headerMenuFeatureFlags}\n />\n <TableBody\n rows={rows}\n tableContainerRef={tableContainerRef}\n onRowClick={onRowClick}\n rowHeight={rowHeight}\n renderCellContextMenu={renderCellContextMenu}\n isLoadingMore={isLoadingMore}\n headerGroups={headerGroups}\n />\n </>\n )}\n </table>\n {!hasData && error == null && <NonIdealState message={\"No Data\"} />}\n {error != null && (\n <NonIdealState message={`Error Loading Data: ${error.message}`} />\n )}\n </div>\n {editableConfig && (\n <div className={styles.submitButtonContainer}>\n <ActionButton\n variant=\"primary\"\n onClick={handleSubmitEdits}\n disabled={!hasEdits}\n >\n Submit Edits\n </ActionButton>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAEVC,WAAW,EACXC,SAAS,EACTC,MAAM,EACNC,QAAQ,QACH,OAAO;AACd,SAASC,YAAY,QAAQ,kDAAkD;AAC/E,SAASC,iBAAiB,QAAQ,wBAAwB;AAC1D,SAASC,aAAa,QAAQ,oBAAoB;AAClD,OAAOC,MAAM,MAAM,oBAAoB;AACvC,SAASC,SAAS,QAAQ,gBAAgB;AAC1C,SAASC,WAAW,QAAQ,kBAAkB;AA4C9C,OAAO,SAASC,SAASA,CAGvB;EACEC,KAAK;EACLC,SAAS;EACTC,aAAa;EACbC,UAAU;EACVC,SAAS;EACTC,qBAAqB;EACrBC,SAAS;EACTC,KAAK;EACLC,sBAAsB;EACtBC;AACqB,CAAC,EACV;EACd,MAAMC,iBAAiB,GAAGnB,MAAM,CAAiB,IAAI,CAAC;EACtD,MAAM,CAACoB,aAAa,EAAEC,gBAAgB,CAAC,GAAGpB,QAAQ,CAAC,KAAK,CAAC;;EAEzD;EACA,MAAMqB,WAAW,GAAGtB,MAAM,CAAC,KAAK,CAAC;EAEjCD,SAAS,CAAC,MAAM;IACd,IAAI,CAACW,SAAS,IAAIC,aAAa,IAAI,IAAI,EAAE;MACvCU,gBAAgB,CAAC,KAAK,CAAC;IACzB;EACF,CAAC,EAAE,CAACX,SAAS,EAAEC,aAAa,CAAC,CAAC;EAE9B,MAAMY,qBAAqB,GAAGzB,WAAW,CACvC,MAAO0B,mBAA2C,IAAK;IACrD,IAAIA,mBAAmB,IAAI,CAACF,WAAW,CAACG,OAAO,IAAI,CAACL,aAAa,EAAE;MACjE,MAAM;QAAEM,YAAY;QAAEC,SAAS;QAAEC;MAAa,CAAC,GAAGJ,mBAAmB;MACrE,IACEE,YAAY,GAAGC,SAAS,GAAGC,YAAY,GAAG,GAAG,IAC1C,CAAClB,SAAS,IAAIC,aAAa,IAAI,IAAI,EACtC;QACAW,WAAW,CAACG,OAAO,GAAG,IAAI;QAC1BJ,gBAAgB,CAAC,IAAI,CAAC;QACtB,IAAI;UACF,MAAMV,aAAa,CAAC,CAAC;QACvB,CAAC,SAAS;UACRW,WAAW,CAACG,OAAO,GAAG,KAAK;QAC7B;MACF;IACF;EACF,CAAC,EACD,CAACd,aAAa,EAAED,SAAS,EAAEU,aAAa,CAC1C,CAAC;EAED,MAAMS,YAAY,GAAG/B,WAAW,CAC9B,MAAOgC,CAAgC,IAAK;IAC1C,MAAMP,qBAAqB,CAACO,CAAC,CAACC,aAAa,CAAC;EAC9C,CAAC,EACD,CAACR,qBAAqB,CACxB,CAAC;EAED,MAAMS,IAAI,GAAGvB,KAAK,CAACwB,WAAW,CAAC,CAAC,CAACD,IAAI;EACrC,MAAME,YAAY,GAAGzB,KAAK,CAAC0B,eAAe,CAAC,CAAC;EAC5C,MAAMC,OAAO,GAAGJ,IAAI,CAACK,MAAM,GAAG,CAAC;EAC/B,MAAMC,QAAQ,GAAGC,MAAM,CAACC,IAAI,CAACtB,cAAc,EAAEuB,SAAS,IAAI,CAAC,CAAC,CAAC,CAACJ,MAAM,GAAG,CAAC;EAExE,MAAMK,iBAAiB,GAAG5C,WAAW,CAAC,YAAY;IAChD,MAAMoB,cAAc,EAAEyB,aAAa,GAAG,CAAC;IACvCzB,cAAc,EAAE0B,UAAU,GAAG,CAAC;EAChC,CAAC,EAAE,CAAC1B,cAAc,CAAC,CAAC;EAEpB,oBACErB,KAAA,CAAAgD,aAAA;IAAK9B,SAAS,EAAEnB,UAAU,CAACS,MAAM,CAACyC,gBAAgB,EAAE/B,SAAS;EAAE,gBAC7DlB,KAAA,CAAAgD,aAAA;IACEE,GAAG,EAAE5B,iBAAkB;IACvBJ,SAAS,EAAEnB,UAAU,CACnBS,MAAM,CAAC2C,kBAAkB,EACzB9B,cAAc,IAAIb,MAAM,CAAC4C,4BAC3B,CAAE;IACFC,QAAQ,EAAErB;EAAa,gBAEvBhC,KAAA,CAAAgD,aAAA,gBACGnC,SAAS,IAAI,CAAC0B,OAAO,gBAElBvC,KAAA,CAAAgD,aAAA,CAAC1C,iBAAiB;IAChBM,KAAK,EAAEA,KAAM;IACbyB,YAAY,EAAEA,YAAa;IAC3BrB,SAAS,EAAEA,SAAU;IACrBM,iBAAiB,EAAEA;EAAkB,CACtC,CAAC,gBAGFtB,KAAA,CAAAgD,aAAA,CAAAhD,KAAA,CAAAsD,QAAA,qBACEtD,KAAA,CAAAgD,aAAA,CAACtC,WAAW;IACVE,KAAK,EAAEA,KAAM;IACbQ,sBAAsB,EAAEA;EAAuB,CAChD,CAAC,eACFpB,KAAA,CAAAgD,aAAA,CAACvC,SAAS;IACR0B,IAAI,EAAEA,IAAK;IACXb,iBAAiB,EAAEA,iBAAkB;IACrCP,UAAU,EAAEA,UAAW;IACvBC,SAAS,EAAEA,SAAU;IACrBC,qBAAqB,EAAEA,qBAAsB;IAC7CM,aAAa,EAAEA,aAAc;IAC7Bc,YAAY,EAAEA;EAAa,CAC5B,CACD,CAED,CAAC,EACP,CAACE,OAAO,IAAIpB,KAAK,IAAI,IAAI,iBAAInB,KAAA,CAAAgD,aAAA,CAACzC,aAAa;IAACgD,OAAO,EAAE;EAAU,CAAE,CAAC,EAClEpC,KAAK,IAAI,IAAI,iBACZnB,KAAA,CAAAgD,aAAA,CAACzC,aAAa;IAACgD,OAAO,EAAE,uBAAuBpC,KAAK,CAACoC,OAAO;EAAG,CAAE,CAEhE,CAAC,EACLlC,cAAc,iBACbrB,KAAA,CAAAgD,aAAA;IAAK9B,SAAS,EAAEV,MAAM,CAACgD;EAAsB,gBAC3CxD,KAAA,CAAAgD,aAAA,CAAC3C,YAAY;IACXoD,OAAO,EAAC,SAAS;IACjBC,OAAO,EAAEb,iBAAkB;IAC3Bc,QAAQ,EAAE,CAAClB;EAAS,GACrB,cAEa,CACX,CAEJ,CAAC;AAEV","ignoreList":[]}
1
+ {"version":3,"file":"Table.js","names":["classNames","React","useCallback","useEffect","useRef","useState","LoadingStateTable","NonIdealState","styles","TableBody","TableEditContainer","TableHeader","BaseTable","table","isLoading","fetchNextPage","onRowClick","rowHeight","renderCellContextMenu","className","error","headerMenuFeatureFlags","editableConfig","tableContainerRef","isLoadingMore","setIsLoadingMore","focusedRowId","setFocusedRowId","fetchingRef","fetchMoreOnEndReached","containerRefElement","current","scrollHeight","scrollTop","clientHeight","handleScroll","e","currentTarget","rows","getRowModel","headerGroups","getHeaderGroups","hasData","length","hasEditableColumns","getAllColumns","some","column","columnDef","meta","editable","handleClickOutside","event","contains","target","document","addEventListener","removeEventListener","createElement","osdkTableWrapper","ref","osdkTableContainer","onScroll","Fragment","isInEditMode","editModeState","isActive","message"],"sources":["Table.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 { Cell, RowData, Table } from \"@tanstack/react-table\";\nimport classNames from \"classnames\";\nimport React, {\n type ReactElement,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { LoadingStateTable } from \"./LoadingStateTable.js\";\nimport { NonIdealState } from \"./NonIdealState.js\";\nimport styles from \"./Table.module.css\";\nimport { TableBody } from \"./TableBody.js\";\nimport { TableEditContainer } from \"./TableEditContainer.js\";\nimport { TableHeader } from \"./TableHeader.js\";\nimport type { HeaderMenuFeatureFlags } from \"./TableHeaderWithPopover.js\";\nimport type { CellEditInfo, EditableConfig } from \"./utils/types.js\";\n\ndeclare module \"@tanstack/react-table\" {\n interface ColumnMeta<TData extends RowData = unknown, TValue = unknown> {\n columnName?: string;\n isAsyncColumn?: boolean;\n isVisible?: boolean;\n editable?: boolean;\n dataType?: string;\n validateEdit?: (value: unknown) => Promise<string | undefined>;\n }\n interface TableMeta<TData extends RowData = unknown> {\n onCellEdit?: (\n cellId: string,\n info: CellEditInfo<TData, unknown>,\n ) => void;\n onCellValidationError?: (\n cellId: string,\n error: string,\n ) => void;\n clearCellValidationError?: (cellId: string) => void;\n cellEdits?: Record<string, CellEditInfo<TData, unknown>>;\n isInEditMode?: boolean;\n validationErrors?: Map<string, string>;\n }\n}\n\nexport interface BaseTableProps<\n TData extends RowData,\n> {\n table: Table<TData>;\n isLoading?: boolean;\n fetchNextPage?: () => Promise<void>;\n onRowClick?: (row: TData) => void;\n rowHeight?: number;\n renderCellContextMenu?: (\n row: TData,\n cell: Cell<TData, unknown>,\n ) => React.ReactNode;\n className?: string;\n error?: Error;\n headerMenuFeatureFlags?: HeaderMenuFeatureFlags;\n editableConfig?: EditableConfig<TData, unknown>;\n}\n\nexport function BaseTable<\n TData extends RowData,\n>(\n {\n table,\n isLoading,\n fetchNextPage,\n onRowClick,\n rowHeight,\n renderCellContextMenu,\n className,\n error,\n headerMenuFeatureFlags,\n editableConfig,\n }: BaseTableProps<TData>,\n): ReactElement {\n const tableContainerRef = useRef<HTMLDivElement>(null);\n const [isLoadingMore, setIsLoadingMore] = useState(false);\n const [focusedRowId, setFocusedRowId] = useState<string | null>(null);\n\n // Using a ref to prevent duplicate fetches from rapid scroll events while a fetch is in-flight\n const fetchingRef = useRef(false);\n\n useEffect(() => {\n if (!isLoading || fetchNextPage == null) {\n setIsLoadingMore(false);\n }\n }, [isLoading, fetchNextPage]);\n\n const fetchMoreOnEndReached = useCallback(\n async (containerRefElement?: HTMLDivElement | null) => {\n if (containerRefElement && !fetchingRef.current && !isLoadingMore) {\n const { scrollHeight, scrollTop, clientHeight } = containerRefElement;\n if (\n scrollHeight - scrollTop - clientHeight < 100\n && !isLoading && fetchNextPage != null\n ) {\n fetchingRef.current = true;\n setIsLoadingMore(true);\n try {\n await fetchNextPage();\n } finally {\n fetchingRef.current = false;\n }\n }\n }\n },\n [fetchNextPage, isLoading, isLoadingMore],\n );\n\n const handleScroll = useCallback(\n async (e: React.UIEvent<HTMLDivElement>) => {\n await fetchMoreOnEndReached(e.currentTarget);\n },\n [fetchMoreOnEndReached],\n );\n\n const rows = table.getRowModel().rows;\n const headerGroups = table.getHeaderGroups();\n const hasData = rows.length > 0;\n\n const hasEditableColumns = table\n .getAllColumns()\n .some(column => column.columnDef.meta?.editable === true);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n tableContainerRef.current\n && !tableContainerRef.current.contains(event.target as Node)\n ) {\n setFocusedRowId(null);\n }\n };\n\n document.addEventListener(\"click\", handleClickOutside);\n return () => {\n document.removeEventListener(\"click\", handleClickOutside);\n };\n }, []);\n\n return (\n <div className={classNames(styles.osdkTableWrapper, className)}>\n <div\n ref={tableContainerRef}\n className={styles.osdkTableContainer}\n onScroll={handleScroll}\n >\n <table>\n {isLoading && !hasData\n ? (\n <LoadingStateTable\n table={table}\n headerGroups={headerGroups}\n rowHeight={rowHeight}\n tableContainerRef={tableContainerRef}\n />\n )\n : (\n <>\n <TableHeader\n table={table}\n headerMenuFeatureFlags={headerMenuFeatureFlags}\n />\n <TableBody\n rows={rows}\n tableContainerRef={tableContainerRef}\n onRowClick={onRowClick}\n rowHeight={rowHeight}\n renderCellContextMenu={renderCellContextMenu}\n isLoadingMore={isLoadingMore}\n headerGroups={headerGroups}\n focusedRowId={focusedRowId}\n setFocusedRowId={setFocusedRowId}\n isInEditMode={editableConfig?.editModeState.isActive}\n />\n </>\n )}\n </table>\n {!hasData && error == null && <NonIdealState message={\"No Data\"} />}\n {error != null && (\n <NonIdealState message={`Error Loading Data: ${error.message}`} />\n )}\n </div>\n {hasEditableColumns && editableConfig && (\n <TableEditContainer\n editableConfig={editableConfig}\n focusedRowId={focusedRowId}\n />\n )}\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -35,11 +35,3 @@
35
35
  width: max-content;
36
36
  min-width: 100%;
37
37
  }
38
-
39
- .submitButtonContainer {
40
- background-color: var(--osdk-surface-background-color-default-rest);
41
- border-top: var(--osdk-table-border);
42
- padding: var(--osdk-table-button-container-padding);
43
- display: flex;
44
- justify-content: flex-end;
45
- }
@@ -1,8 +1,7 @@
1
1
  // CSS Module proxy for Table.module.css
2
2
  const styles = {
3
3
  "osdkTableWrapper": "Table-module__osdkTableWrapper___qNSuMAE2",
4
- "osdkTableContainer": "Table-module__osdkTableContainer___QBj68RD-",
5
- "submitButtonContainer": "Table-module__submitButtonContainer___2UgcHhXl"
4
+ "osdkTableContainer": "Table-module__osdkTableContainer___QBj68RD-"
6
5
  };
7
6
 
8
7
  export default styles;
@@ -26,7 +26,10 @@ export function TableBody({
26
26
  renderCellContextMenu,
27
27
  rowHeight = 40,
28
28
  isLoadingMore = false,
29
- headerGroups = []
29
+ headerGroups = [],
30
+ focusedRowId,
31
+ setFocusedRowId,
32
+ isInEditMode
30
33
  }) {
31
34
  // Important: Keep the row virtualizer in the lowest component possible to avoid unnecessary re-renders.
32
35
  const rowVirtualizer = useVirtualizer({
@@ -55,7 +58,10 @@ export function TableBody({
55
58
  row: row,
56
59
  virtualRow: virtualRow,
57
60
  onRowClick: onRowClick,
58
- renderCellContextMenu: renderCellContextMenu
61
+ renderCellContextMenu: renderCellContextMenu,
62
+ isFocused: focusedRowId === row.id,
63
+ setFocusedRowId: setFocusedRowId,
64
+ isInEditMode: isInEditMode
59
65
  });
60
66
  }), isLoadingMore && /*#__PURE__*/React.createElement(LoadingRow, {
61
67
  headers: headers,
@@ -1 +1 @@
1
- {"version":3,"file":"TableBody.js","names":["useVirtualizer","React","useLayoutEffect","LoadingRow","styles","TableRow","TableBody","rows","tableContainerRef","onRowClick","renderCellContextMenu","rowHeight","isLoadingMore","headerGroups","rowVirtualizer","count","length","estimateSize","getScrollElement","current","overscan","measure","totalSize","getTotalSize","bodyHeight","headers","createElement","className","osdkTableBody","style","height","getVirtualItems","map","virtualRow","row","index","key","id","translateY","columnCount"],"sources":["TableBody.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 { Cell, HeaderGroup, Row, RowData } from \"@tanstack/react-table\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport React, { useLayoutEffect } from \"react\";\nimport { LoadingRow } from \"./LoadingRow.js\";\nimport styles from \"./TableBody.module.css\";\nimport { TableRow } from \"./TableRow.js\";\n\ninterface TableBodyProps<TData extends RowData> {\n rows: Array<Row<TData>>;\n tableContainerRef: React.RefObject<HTMLDivElement>;\n onRowClick?: (row: TData) => void;\n rowHeight?: number;\n renderCellContextMenu?: (\n row: TData,\n cell: Cell<TData, unknown>,\n ) => React.ReactNode;\n isLoadingMore?: boolean;\n headerGroups?: Array<HeaderGroup<TData>>;\n}\n\nexport function TableBody<TData extends RowData>({\n rows,\n tableContainerRef,\n onRowClick,\n renderCellContextMenu,\n rowHeight = 40,\n isLoadingMore = false,\n headerGroups = [],\n}: TableBodyProps<TData>): React.ReactElement {\n // Important: Keep the row virtualizer in the lowest component possible to avoid unnecessary re-renders.\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n estimateSize: () => rowHeight,\n getScrollElement: () => tableContainerRef.current,\n overscan: 5,\n });\n\n // Measure the virtualizer after the DOM has been laid out to ensure proper dimensions\n useLayoutEffect(() => {\n rowVirtualizer.measure();\n }, [rowVirtualizer, rows.length]);\n\n const totalSize = rowVirtualizer.getTotalSize();\n const bodyHeight = isLoadingMore\n ? totalSize + rowHeight\n : totalSize;\n\n const headers = headerGroups[0]?.headers ?? [];\n\n return (\n <tbody\n className={styles.osdkTableBody}\n style={{\n height: `${bodyHeight}px`,\n }}\n >\n {rowVirtualizer.getVirtualItems().map((virtualRow) => {\n const row = rows[virtualRow.index];\n\n return (\n <TableRow\n key={row.id}\n row={row}\n virtualRow={virtualRow}\n onRowClick={onRowClick}\n renderCellContextMenu={renderCellContextMenu}\n />\n );\n })}\n {isLoadingMore && (\n <LoadingRow\n headers={headers}\n translateY={totalSize}\n rowHeight={rowHeight}\n columnCount={headers.length}\n />\n )}\n </tbody>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,cAAc,QAAQ,yBAAyB;AACxD,OAAOC,KAAK,IAAIC,eAAe,QAAQ,OAAO;AAC9C,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,OAAOC,MAAM,MAAM,wBAAwB;AAC3C,SAASC,QAAQ,QAAQ,eAAe;AAexC,OAAO,SAASC,SAASA,CAAwB;EAC/CC,IAAI;EACJC,iBAAiB;EACjBC,UAAU;EACVC,qBAAqB;EACrBC,SAAS,GAAG,EAAE;EACdC,aAAa,GAAG,KAAK;EACrBC,YAAY,GAAG;AACM,CAAC,EAAsB;EAC5C;EACA,MAAMC,cAAc,GAAGd,cAAc,CAAsC;IACzEe,KAAK,EAAER,IAAI,CAACS,MAAM;IAClBC,YAAY,EAAEA,CAAA,KAAMN,SAAS;IAC7BO,gBAAgB,EAAEA,CAAA,KAAMV,iBAAiB,CAACW,OAAO;IACjDC,QAAQ,EAAE;EACZ,CAAC,CAAC;;EAEF;EACAlB,eAAe,CAAC,MAAM;IACpBY,cAAc,CAACO,OAAO,CAAC,CAAC;EAC1B,CAAC,EAAE,CAACP,cAAc,EAAEP,IAAI,CAACS,MAAM,CAAC,CAAC;EAEjC,MAAMM,SAAS,GAAGR,cAAc,CAACS,YAAY,CAAC,CAAC;EAC/C,MAAMC,UAAU,GAAGZ,aAAa,GAC5BU,SAAS,GAAGX,SAAS,GACrBW,SAAS;EAEb,MAAMG,OAAO,GAAGZ,YAAY,CAAC,CAAC,CAAC,EAAEY,OAAO,IAAI,EAAE;EAE9C,oBACExB,KAAA,CAAAyB,aAAA;IACEC,SAAS,EAAEvB,MAAM,CAACwB,aAAc;IAChCC,KAAK,EAAE;MACLC,MAAM,EAAE,GAAGN,UAAU;IACvB;EAAE,GAEDV,cAAc,CAACiB,eAAe,CAAC,CAAC,CAACC,GAAG,CAAEC,UAAU,IAAK;IACpD,MAAMC,GAAG,GAAG3B,IAAI,CAAC0B,UAAU,CAACE,KAAK,CAAC;IAElC,oBACElC,KAAA,CAAAyB,aAAA,CAACrB,QAAQ;MACP+B,GAAG,EAAEF,GAAG,CAACG,EAAG;MACZH,GAAG,EAAEA,GAAI;MACTD,UAAU,EAAEA,UAAW;MACvBxB,UAAU,EAAEA,UAAW;MACvBC,qBAAqB,EAAEA;IAAsB,CAC9C,CAAC;EAEN,CAAC,CAAC,EACDE,aAAa,iBACZX,KAAA,CAAAyB,aAAA,CAACvB,UAAU;IACTsB,OAAO,EAAEA,OAAQ;IACjBa,UAAU,EAAEhB,SAAU;IACtBX,SAAS,EAAEA,SAAU;IACrB4B,WAAW,EAAEd,OAAO,CAACT;EAAO,CAC7B,CAEE,CAAC;AAEZ","ignoreList":[]}
1
+ {"version":3,"file":"TableBody.js","names":["useVirtualizer","React","useLayoutEffect","LoadingRow","styles","TableRow","TableBody","rows","tableContainerRef","onRowClick","renderCellContextMenu","rowHeight","isLoadingMore","headerGroups","focusedRowId","setFocusedRowId","isInEditMode","rowVirtualizer","count","length","estimateSize","getScrollElement","current","overscan","measure","totalSize","getTotalSize","bodyHeight","headers","createElement","className","osdkTableBody","style","height","getVirtualItems","map","virtualRow","row","index","key","id","isFocused","translateY","columnCount"],"sources":["TableBody.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 { Cell, HeaderGroup, Row, RowData } from \"@tanstack/react-table\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport React, { useLayoutEffect } from \"react\";\nimport { LoadingRow } from \"./LoadingRow.js\";\nimport styles from \"./TableBody.module.css\";\nimport { TableRow } from \"./TableRow.js\";\n\ninterface TableBodyProps<TData extends RowData> {\n rows: Array<Row<TData>>;\n tableContainerRef: React.RefObject<HTMLDivElement>;\n onRowClick?: (row: TData) => void;\n rowHeight?: number;\n renderCellContextMenu?: (\n row: TData,\n cell: Cell<TData, unknown>,\n ) => React.ReactNode;\n isLoadingMore?: boolean;\n headerGroups?: Array<HeaderGroup<TData>>;\n focusedRowId?: string | null;\n setFocusedRowId?: (rowId: string | null) => void;\n isInEditMode?: boolean;\n}\n\nexport function TableBody<TData extends RowData>({\n rows,\n tableContainerRef,\n onRowClick,\n renderCellContextMenu,\n rowHeight = 40,\n isLoadingMore = false,\n headerGroups = [],\n focusedRowId,\n setFocusedRowId,\n isInEditMode,\n}: TableBodyProps<TData>): React.ReactElement {\n // Important: Keep the row virtualizer in the lowest component possible to avoid unnecessary re-renders.\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n estimateSize: () => rowHeight,\n getScrollElement: () => tableContainerRef.current,\n overscan: 5,\n });\n\n // Measure the virtualizer after the DOM has been laid out to ensure proper dimensions\n useLayoutEffect(() => {\n rowVirtualizer.measure();\n }, [rowVirtualizer, rows.length]);\n\n const totalSize = rowVirtualizer.getTotalSize();\n const bodyHeight = isLoadingMore\n ? totalSize + rowHeight\n : totalSize;\n\n const headers = headerGroups[0]?.headers ?? [];\n\n return (\n <tbody\n className={styles.osdkTableBody}\n style={{\n height: `${bodyHeight}px`,\n }}\n >\n {rowVirtualizer.getVirtualItems().map((virtualRow) => {\n const row = rows[virtualRow.index];\n\n return (\n <TableRow\n key={row.id}\n row={row}\n virtualRow={virtualRow}\n onRowClick={onRowClick}\n renderCellContextMenu={renderCellContextMenu}\n isFocused={focusedRowId === row.id}\n setFocusedRowId={setFocusedRowId}\n isInEditMode={isInEditMode}\n />\n );\n })}\n {isLoadingMore && (\n <LoadingRow\n headers={headers}\n translateY={totalSize}\n rowHeight={rowHeight}\n columnCount={headers.length}\n />\n )}\n </tbody>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,cAAc,QAAQ,yBAAyB;AACxD,OAAOC,KAAK,IAAIC,eAAe,QAAQ,OAAO;AAC9C,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,OAAOC,MAAM,MAAM,wBAAwB;AAC3C,SAASC,QAAQ,QAAQ,eAAe;AAkBxC,OAAO,SAASC,SAASA,CAAwB;EAC/CC,IAAI;EACJC,iBAAiB;EACjBC,UAAU;EACVC,qBAAqB;EACrBC,SAAS,GAAG,EAAE;EACdC,aAAa,GAAG,KAAK;EACrBC,YAAY,GAAG,EAAE;EACjBC,YAAY;EACZC,eAAe;EACfC;AACqB,CAAC,EAAsB;EAC5C;EACA,MAAMC,cAAc,GAAGjB,cAAc,CAAsC;IACzEkB,KAAK,EAAEX,IAAI,CAACY,MAAM;IAClBC,YAAY,EAAEA,CAAA,KAAMT,SAAS;IAC7BU,gBAAgB,EAAEA,CAAA,KAAMb,iBAAiB,CAACc,OAAO;IACjDC,QAAQ,EAAE;EACZ,CAAC,CAAC;;EAEF;EACArB,eAAe,CAAC,MAAM;IACpBe,cAAc,CAACO,OAAO,CAAC,CAAC;EAC1B,CAAC,EAAE,CAACP,cAAc,EAAEV,IAAI,CAACY,MAAM,CAAC,CAAC;EAEjC,MAAMM,SAAS,GAAGR,cAAc,CAACS,YAAY,CAAC,CAAC;EAC/C,MAAMC,UAAU,GAAGf,aAAa,GAC5Ba,SAAS,GAAGd,SAAS,GACrBc,SAAS;EAEb,MAAMG,OAAO,GAAGf,YAAY,CAAC,CAAC,CAAC,EAAEe,OAAO,IAAI,EAAE;EAE9C,oBACE3B,KAAA,CAAA4B,aAAA;IACEC,SAAS,EAAE1B,MAAM,CAAC2B,aAAc;IAChCC,KAAK,EAAE;MACLC,MAAM,EAAE,GAAGN,UAAU;IACvB;EAAE,GAEDV,cAAc,CAACiB,eAAe,CAAC,CAAC,CAACC,GAAG,CAAEC,UAAU,IAAK;IACpD,MAAMC,GAAG,GAAG9B,IAAI,CAAC6B,UAAU,CAACE,KAAK,CAAC;IAElC,oBACErC,KAAA,CAAA4B,aAAA,CAACxB,QAAQ;MACPkC,GAAG,EAAEF,GAAG,CAACG,EAAG;MACZH,GAAG,EAAEA,GAAI;MACTD,UAAU,EAAEA,UAAW;MACvB3B,UAAU,EAAEA,UAAW;MACvBC,qBAAqB,EAAEA,qBAAsB;MAC7C+B,SAAS,EAAE3B,YAAY,KAAKuB,GAAG,CAACG,EAAG;MACnCzB,eAAe,EAAEA,eAAgB;MACjCC,YAAY,EAAEA;IAAa,CAC5B,CAAC;EAEN,CAAC,CAAC,EACDJ,aAAa,iBACZX,KAAA,CAAA4B,aAAA,CAAC1B,UAAU;IACTyB,OAAO,EAAEA,OAAQ;IACjBc,UAAU,EAAEjB,SAAU;IACtBd,SAAS,EAAEA,SAAU;IACrBgC,WAAW,EAAEf,OAAO,CAACT;EAAO,CAC7B,CAEE,CAAC;AAEZ","ignoreList":[]}
@@ -31,7 +31,7 @@
31
31
  }
32
32
 
33
33
  &:last-child {
34
- border-right: var(--osdk-table-border);
34
+ border-right: none;
35
35
  }
36
36
  }
37
37
 
@@ -59,19 +59,12 @@
59
59
  padding: 0;
60
60
  }
61
61
 
62
- /* Show focus state for editable cells */
63
- .osdkTableCell:not(:has([role="checkbox"])):has(input):focus-within {
64
- border: var(--osdk-emphasis-focus-width) solid
65
- var(--osdk-emphasis-focus-color);
66
- border-radius: var(--osdk-surface-border-radius);
67
- background-color: var(--osdk-table-cell-editable-bg);
68
- }
69
-
70
62
  .osdkTableCellContent:not(:has([role="checkbox"])) {
71
63
  overflow: hidden;
72
64
  text-overflow: ellipsis;
73
65
  white-space: nowrap;
74
66
  text-align: left;
67
+ flex: 1;
75
68
  }
76
69
 
77
70
  .osdkCheckboxContainer {
@@ -0,0 +1,90 @@
1
+ /*
2
+ * Copyright 2026 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 { Error } from "@blueprintjs/icons";
18
+ import React, { useCallback, useState } from "react";
19
+ import { ActionButton } from "../base-components/action-button/ActionButton.js";
20
+ import styles from "./TableEditContainer.module.css.js";
21
+ export function TableEditContainer({
22
+ editableConfig,
23
+ focusedRowId
24
+ }) {
25
+ const {
26
+ cellEdits,
27
+ onSubmitEdits,
28
+ clearEdits,
29
+ editModeState,
30
+ validationErrors
31
+ } = editableConfig;
32
+ const hasEdits = Object.keys(cellEdits ?? {}).length > 0;
33
+ const hasValidationError = (validationErrors?.size ?? 0) > 0;
34
+ const [isSubmitting, setIsSubmitting] = useState(false);
35
+ const isInEditMode = editModeState.isActive;
36
+ const canToggleEditMode = editModeState.type === "manual";
37
+ const handleSubmitEdits = useCallback(async () => {
38
+ setIsSubmitting(true);
39
+ try {
40
+ const success = await onSubmitEdits?.();
41
+ if (success) {
42
+ clearEdits?.();
43
+ if (editModeState?.type === "manual") {
44
+ editModeState.setActive(false);
45
+ }
46
+ }
47
+ } finally {
48
+ setIsSubmitting(false);
49
+ }
50
+ }, [editModeState, onSubmitEdits, clearEdits]);
51
+ const handleCancelEdits = useCallback(() => {
52
+ clearEdits?.();
53
+ if (editModeState?.type === "manual") {
54
+ editModeState.setActive(false);
55
+ }
56
+ }, [clearEdits, editModeState]);
57
+ const handleEnterEditMode = useCallback(() => {
58
+ if (editModeState?.type === "manual") {
59
+ editModeState.setActive(true);
60
+ }
61
+ }, [editModeState]);
62
+ return /*#__PURE__*/React.createElement("div", {
63
+ className: styles.tableEditContainer
64
+ }, hasEdits || hasValidationError ? /*#__PURE__*/React.createElement("div", {
65
+ className: styles.editsInfoContainer
66
+ }, hasEdits && /*#__PURE__*/React.createElement("div", {
67
+ className: styles.modificationCount
68
+ }, `${cellEdits ? Object.keys(cellEdits).length : 0} modifications`), hasEdits && hasValidationError && /*#__PURE__*/React.createElement("div", {
69
+ className: styles.divider
70
+ }), hasValidationError && /*#__PURE__*/React.createElement("div", {
71
+ className: styles.validationError
72
+ }, /*#__PURE__*/React.createElement(Error, {
73
+ className: styles.errorIcon
74
+ }), "Validation error")) : isInEditMode && !focusedRowId && /*#__PURE__*/React.createElement("div", {
75
+ className: styles.placeholder
76
+ }, "Select a row to edit data\u2026"), /*#__PURE__*/React.createElement("div", {
77
+ className: styles.editButtons
78
+ }, !isInEditMode && canToggleEditMode && /*#__PURE__*/React.createElement(ActionButton, {
79
+ variant: "primary",
80
+ onClick: handleEnterEditMode
81
+ }, "Edit Table"), isInEditMode && canToggleEditMode && /*#__PURE__*/React.createElement(ActionButton, {
82
+ variant: "secondary",
83
+ onClick: handleCancelEdits
84
+ }, "Cancel"), isInEditMode && !!onSubmitEdits && /*#__PURE__*/React.createElement(ActionButton, {
85
+ variant: "primary",
86
+ onClick: handleSubmitEdits,
87
+ disabled: !hasEdits || isSubmitting || hasValidationError
88
+ }, "Submit Edits")));
89
+ }
90
+ //# sourceMappingURL=TableEditContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableEditContainer.js","names":["Error","React","useCallback","useState","ActionButton","styles","TableEditContainer","editableConfig","focusedRowId","cellEdits","onSubmitEdits","clearEdits","editModeState","validationErrors","hasEdits","Object","keys","length","hasValidationError","size","isSubmitting","setIsSubmitting","isInEditMode","isActive","canToggleEditMode","type","handleSubmitEdits","success","setActive","handleCancelEdits","handleEnterEditMode","createElement","className","tableEditContainer","editsInfoContainer","modificationCount","divider","validationError","errorIcon","placeholder","editButtons","variant","onClick","disabled"],"sources":["TableEditContainer.tsx"],"sourcesContent":["/*\n * Copyright 2026 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 { Error } from \"@blueprintjs/icons\";\nimport type { RowData } from \"@tanstack/react-table\";\nimport React, { type ReactElement, useCallback, useState } from \"react\";\nimport { ActionButton } from \"../base-components/action-button/ActionButton.js\";\nimport styles from \"./TableEditContainer.module.css\";\nimport type { EditableConfig } from \"./utils/types.js\";\n\ninterface TableEditContainerProps<\n TData extends RowData,\n> {\n editableConfig: EditableConfig<TData, unknown>;\n focusedRowId?: string | null;\n}\n\nexport function TableEditContainer<\n TData extends RowData,\n>({\n editableConfig,\n focusedRowId,\n}: TableEditContainerProps<TData>): ReactElement {\n const {\n cellEdits,\n onSubmitEdits,\n clearEdits,\n editModeState,\n validationErrors,\n } = editableConfig;\n\n const hasEdits = Object.keys(cellEdits ?? {}).length > 0;\n const hasValidationError = (validationErrors?.size ?? 0) > 0;\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const isInEditMode = editModeState.isActive;\n const canToggleEditMode = editModeState.type === \"manual\";\n\n const handleSubmitEdits = useCallback(async () => {\n setIsSubmitting(true);\n try {\n const success = await onSubmitEdits?.();\n if (success) {\n clearEdits?.();\n if (editModeState?.type === \"manual\") {\n editModeState.setActive(false);\n }\n }\n } finally {\n setIsSubmitting(false);\n }\n }, [editModeState, onSubmitEdits, clearEdits]);\n\n const handleCancelEdits = useCallback(() => {\n clearEdits?.();\n if (editModeState?.type === \"manual\") {\n editModeState.setActive(false);\n }\n }, [clearEdits, editModeState]);\n\n const handleEnterEditMode = useCallback(() => {\n if (editModeState?.type === \"manual\") {\n editModeState.setActive(true);\n }\n }, [editModeState]);\n\n return (\n <div className={styles.tableEditContainer}>\n {hasEdits || hasValidationError\n ? (\n <div className={styles.editsInfoContainer}>\n {hasEdits && (\n <div className={styles.modificationCount}>\n {`${\n cellEdits ? Object.keys(cellEdits).length : 0\n } modifications`}\n </div>\n )}\n {hasEdits && hasValidationError && (\n <div className={styles.divider} />\n )}\n {hasValidationError && (\n <div className={styles.validationError}>\n <Error className={styles.errorIcon} />\n Validation error\n </div>\n )}\n </div>\n )\n : (isInEditMode && !focusedRowId && (\n <div className={styles.placeholder}>\n Select a row to edit data…\n </div>\n ))}\n <div className={styles.editButtons}>\n {!isInEditMode && canToggleEditMode && (\n <ActionButton\n variant=\"primary\"\n onClick={handleEnterEditMode}\n >\n Edit Table\n </ActionButton>\n )}\n {isInEditMode && canToggleEditMode && (\n <ActionButton\n variant=\"secondary\"\n onClick={handleCancelEdits}\n >\n Cancel\n </ActionButton>\n )}\n {isInEditMode && !!onSubmitEdits && (\n <ActionButton\n variant=\"primary\"\n onClick={handleSubmitEdits}\n disabled={!hasEdits || isSubmitting || hasValidationError}\n >\n Submit Edits\n </ActionButton>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,71 @@
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
+ .tableEditContainer {
18
+ display: flex;
19
+ justify-content: space-between;
20
+ align-items: center;
21
+ background-color: var(--osdk-surface-background-color-default-rest);
22
+ border-top: var(--osdk-table-border);
23
+ padding: var(--osdk-table-edit-container-padding);
24
+ min-height: var(--osdk-table-edit-container-min-height);
25
+ }
26
+
27
+ .placeholder {
28
+ color: var(--osdk-typography-color-muted);
29
+ font-size: var(--osdk-typography-size-body-small);
30
+ padding: calc(var(--osdk-surface-spacing) * 2) 0;
31
+ }
32
+
33
+ .editsInfoContainer {
34
+ display: flex;
35
+ align-items: center;
36
+ justify-content: center;
37
+ flex-direction: row;
38
+ gap: calc(var(--osdk-surface-spacing) * 3);
39
+ font-size: var(--osdk-typography-size-body-small);
40
+ }
41
+
42
+ .modificationCount {
43
+ color: var(--osdk-intent-primary-rest);
44
+ font-size: var(--osdk-typography-size-body-small);
45
+ padding: calc(var(--osdk-surface-spacing) * 2) 0;
46
+ }
47
+
48
+ .editButtons {
49
+ display: flex;
50
+ justify-content: flex-end;
51
+ gap: 8px;
52
+ flex: 1;
53
+ }
54
+
55
+ .validationError {
56
+ display: flex;
57
+ align-items: center;
58
+ gap: calc(var(--osdk-surface-spacing) * 2);
59
+ color: var(--osdk-intent-danger-rest);
60
+ }
61
+
62
+ .errorIcon {
63
+ color: var(--osdk-intent-danger-rest);
64
+ }
65
+
66
+ .divider {
67
+ width: 1px;
68
+ height: 8px;
69
+ background-color: var(--osdk-surface-border-color-default);
70
+ align-self: center;
71
+ }
@@ -0,0 +1,13 @@
1
+ // CSS Module proxy for TableEditContainer.module.css
2
+ const styles = {
3
+ "tableEditContainer": "TableEditContainer-module__tableEditContainer___cIVjgtld",
4
+ "placeholder": "TableEditContainer-module__placeholder___ggxoxvTp",
5
+ "editsInfoContainer": "TableEditContainer-module__editsInfoContainer___rio3wv4g",
6
+ "modificationCount": "TableEditContainer-module__modificationCount___sLN93v77",
7
+ "editButtons": "TableEditContainer-module__editButtons___xI-Z7kz1",
8
+ "validationError": "TableEditContainer-module__validationError___kQN-U73X",
9
+ "errorIcon": "TableEditContainer-module__errorIcon___aZ797GFl",
10
+ "divider": "TableEditContainer-module__divider___W-1K3O-k"
11
+ };
12
+
13
+ export default styles;
@@ -14,6 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
+ import classNames from "classnames";
17
18
  import React, { useCallback, useMemo, useState } from "react";
18
19
  import { ColumnConfigDialog } from "./ColumnConfigDialog.js";
19
20
  import { MultiColumnSortDialog } from "./MultiColumnSortDialog.js";
@@ -111,7 +112,9 @@ export function TableHeader({
111
112
  return /*#__PURE__*/React.createElement("th", {
112
113
  key: header.id,
113
114
  "data-pinned": header.column.getIsPinned(),
114
- className: styles.osdkTableHeaderCell,
115
+ className: classNames(styles.osdkTableHeaderCell, {
116
+ [styles.osdkTableSelectionHeaderCell]: isSelectColumn
117
+ }),
115
118
  style: columnStyles
116
119
  }, header.isPlaceholder ? null : isSelectColumn ? /*#__PURE__*/React.createElement(TableHeaderContent, {
117
120
  header: header
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeader.js","names":["React","useCallback","useMemo","useState","ColumnConfigDialog","MultiColumnSortDialog","styles","TableHeaderContent","TableHeaderWithPopover","SELECTION_COLUMN_ID","getColumnPinningStyles","getHeaderName","column","allHeaders","id","columnDef","header","find","headerDef","displayedHeader","getContext","meta","columnName","TableHeader","table","headerMenuFeatureFlags","setColumnOrder","setColumnVisibility","setSorting","currentSorting","getState","sorting","currentVisibility","columnVisibility","currentColumnOrder","columnOrder","isResizing","columnSizingInfo","isResizingColumn","configDialogOpen","setConfigDialogOpen","multiSortDialogOpen","setMultiSortDialogOpen","handleOpenColumnConfig","handleCloseColumnConfig","handleOpenMultiSort","handleCloseMultiSort","handleApplyMultiSort","sortColumns","handleApplyColumnConfig","updates","newVisibilityState","update","columnId","isVisible","map","col","columnOptions","getHeaderGroups","flatMap","headerGroup","headers","getAllColumns","filter","name","canSort","getCanSort","createElement","Fragment","className","osdkTableHeader","key","osdkTableHeaderRow","columnStyles","isColumnPinned","getIsPinned","isSelectColumn","osdkTableHeaderCell","style","isPlaceholder","featureFlags","onOpenColumnConfig","onOpenMultiSort","getCanResize","showResizeItem","osdkTableHeaderResizer","onDoubleClick","resetSize","onMouseDown","getResizeHandler","onTouchStart","length","isOpen","onClose","onApply","some"],"sources":["TableHeader.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 Column,\n Header,\n RowData,\n SortingState,\n Table,\n VisibilityState,\n} from \"@tanstack/react-table\";\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport { type ColumnConfig, ColumnConfigDialog } from \"./ColumnConfigDialog.js\";\nimport { MultiColumnSortDialog } from \"./MultiColumnSortDialog.js\";\nimport styles from \"./TableHeader.module.css\";\nimport { TableHeaderContent } from \"./TableHeaderContent.js\";\nimport {\n type HeaderMenuFeatureFlags,\n TableHeaderWithPopover,\n} from \"./TableHeaderWithPopover.js\";\nimport { SELECTION_COLUMN_ID } from \"./utils/constants.js\";\nimport { getColumnPinningStyles } from \"./utils/getColumnPinningStyles.js\";\nimport type { ColumnOption } from \"./utils/types.js\";\n\ninterface TableHeaderProps<\n TData extends RowData,\n> {\n table: Table<TData>;\n headerMenuFeatureFlags?: HeaderMenuFeatureFlags;\n}\n\nconst getHeaderName = <TData,>(\n column: Column<TData, unknown>,\n allHeaders: Header<TData, unknown>[],\n) => {\n const { id, columnDef } = column;\n const header = allHeaders.find(header => header.id === id);\n const headerDef = columnDef.header;\n\n if (headerDef) {\n if (typeof headerDef === \"string\") {\n return headerDef;\n }\n // Try to get header name from the renderHeader function\n if (header) {\n const displayedHeader = headerDef(header.getContext());\n if (typeof displayedHeader === \"string\") return displayedHeader;\n }\n }\n // Fallback to use the columnName provided by user or id\n const { meta } = columnDef;\n return meta?.columnName ?? id;\n};\n\nexport function TableHeader<\n TData extends RowData,\n>({\n table,\n headerMenuFeatureFlags,\n}: TableHeaderProps<TData>): React.ReactElement {\n // TODO: If value is number type, right align header\n\n const {\n setColumnOrder,\n setColumnVisibility,\n setSorting,\n } = table;\n\n const currentSorting = table.getState().sorting;\n const currentVisibility = table.getState().columnVisibility;\n const currentColumnOrder = table.getState().columnOrder;\n\n const isResizing = !!table.getState().columnSizingInfo?.isResizingColumn;\n\n const [configDialogOpen, setConfigDialogOpen] = useState(false);\n const [multiSortDialogOpen, setMultiSortDialogOpen] = useState(false);\n\n const handleOpenColumnConfig = useCallback(() => {\n setConfigDialogOpen(true);\n }, []);\n\n const handleCloseColumnConfig = useCallback(() => {\n setConfigDialogOpen(false);\n }, []);\n\n const handleOpenMultiSort = useCallback(() => {\n setMultiSortDialogOpen(true);\n }, []);\n\n const handleCloseMultiSort = useCallback(() => {\n setMultiSortDialogOpen(false);\n }, []);\n\n const handleApplyMultiSort = useCallback(\n (sortColumns: SortingState) => {\n setMultiSortDialogOpen(false);\n setSorting?.(sortColumns);\n },\n [setSorting],\n );\n\n const handleApplyColumnConfig = useCallback(\n (updates: ColumnConfig[]) => {\n const newVisibilityState: VisibilityState = {};\n for (const update of updates) {\n newVisibilityState[update.columnId] = update.isVisible;\n }\n\n setColumnOrder(updates.map(col => col.columnId));\n setColumnVisibility(newVisibilityState);\n },\n [setColumnOrder, setColumnVisibility],\n );\n\n const columnOptions: ColumnOption[] = useMemo(() => {\n const allHeaders = table.getHeaderGroups().flatMap(headerGroup =>\n headerGroup.headers\n );\n\n return table\n .getAllColumns()\n .filter((column) => column.id !== SELECTION_COLUMN_ID)\n .map((column) => {\n return {\n id: column.id,\n name: getHeaderName(column, allHeaders),\n canSort: column.getCanSort(),\n };\n });\n }, [table]);\n\n return (\n <>\n <thead className={styles.osdkTableHeader} data-resizing={isResizing}>\n {table.getHeaderGroups().map((headerGroup) => (\n <tr\n key={headerGroup.id}\n className={styles.osdkTableHeaderRow}\n >\n {headerGroup.headers.map((header) => {\n const { columnStyles } = getColumnPinningStyles(header.column);\n const isColumnPinned = header.column.getIsPinned();\n const isSelectColumn = header.id === SELECTION_COLUMN_ID;\n return (\n <th\n key={header.id}\n data-pinned={header.column.getIsPinned()}\n className={styles.osdkTableHeaderCell}\n style={columnStyles}\n >\n {header.isPlaceholder\n ? null\n : isSelectColumn\n ? <TableHeaderContent header={header} />\n : (\n <TableHeaderWithPopover\n table={table}\n header={header}\n isColumnPinned={isColumnPinned}\n columnOptions={columnOptions}\n featureFlags={headerMenuFeatureFlags}\n onOpenColumnConfig={handleOpenColumnConfig}\n onOpenMultiSort={handleOpenMultiSort}\n />\n )}\n {header.column.getCanResize()\n && headerMenuFeatureFlags?.showResizeItem !== false && (\n <div\n className={styles.osdkTableHeaderResizer}\n onDoubleClick={() => header.column.resetSize()}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n />\n )}\n </th>\n );\n })}\n </tr>\n ))}\n </thead>\n {!!columnOptions?.length && (\n <ColumnConfigDialog\n isOpen={configDialogOpen}\n onClose={handleCloseColumnConfig}\n columnOptions={columnOptions}\n currentVisibility={currentVisibility}\n currentColumnOrder={currentColumnOrder}\n onApply={handleApplyColumnConfig}\n />\n )}\n {columnOptions?.some(col => col.canSort) && (\n <MultiColumnSortDialog\n isOpen={multiSortDialogOpen}\n onClose={handleCloseMultiSort}\n columnOptions={columnOptions}\n currentSorting={currentSorting}\n onApply={handleApplyMultiSort}\n />\n )}\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"TableHeader.js","names":["classNames","React","useCallback","useMemo","useState","ColumnConfigDialog","MultiColumnSortDialog","styles","TableHeaderContent","TableHeaderWithPopover","SELECTION_COLUMN_ID","getColumnPinningStyles","getHeaderName","column","allHeaders","id","columnDef","header","find","headerDef","displayedHeader","getContext","meta","columnName","TableHeader","table","headerMenuFeatureFlags","setColumnOrder","setColumnVisibility","setSorting","currentSorting","getState","sorting","currentVisibility","columnVisibility","currentColumnOrder","columnOrder","isResizing","columnSizingInfo","isResizingColumn","configDialogOpen","setConfigDialogOpen","multiSortDialogOpen","setMultiSortDialogOpen","handleOpenColumnConfig","handleCloseColumnConfig","handleOpenMultiSort","handleCloseMultiSort","handleApplyMultiSort","sortColumns","handleApplyColumnConfig","updates","newVisibilityState","update","columnId","isVisible","map","col","columnOptions","getHeaderGroups","flatMap","headerGroup","headers","getAllColumns","filter","name","canSort","getCanSort","createElement","Fragment","className","osdkTableHeader","key","osdkTableHeaderRow","columnStyles","isColumnPinned","getIsPinned","isSelectColumn","osdkTableHeaderCell","osdkTableSelectionHeaderCell","style","isPlaceholder","featureFlags","onOpenColumnConfig","onOpenMultiSort","getCanResize","showResizeItem","osdkTableHeaderResizer","onDoubleClick","resetSize","onMouseDown","getResizeHandler","onTouchStart","length","isOpen","onClose","onApply","some"],"sources":["TableHeader.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 Column,\n Header,\n RowData,\n SortingState,\n Table,\n VisibilityState,\n} from \"@tanstack/react-table\";\nimport classNames from \"classnames\";\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport { type ColumnConfig, ColumnConfigDialog } from \"./ColumnConfigDialog.js\";\nimport { MultiColumnSortDialog } from \"./MultiColumnSortDialog.js\";\nimport styles from \"./TableHeader.module.css\";\nimport { TableHeaderContent } from \"./TableHeaderContent.js\";\nimport {\n type HeaderMenuFeatureFlags,\n TableHeaderWithPopover,\n} from \"./TableHeaderWithPopover.js\";\nimport { SELECTION_COLUMN_ID } from \"./utils/constants.js\";\nimport { getColumnPinningStyles } from \"./utils/getColumnPinningStyles.js\";\nimport type { ColumnOption } from \"./utils/types.js\";\n\ninterface TableHeaderProps<\n TData extends RowData,\n> {\n table: Table<TData>;\n headerMenuFeatureFlags?: HeaderMenuFeatureFlags;\n}\n\nconst getHeaderName = <TData,>(\n column: Column<TData, unknown>,\n allHeaders: Header<TData, unknown>[],\n) => {\n const { id, columnDef } = column;\n const header = allHeaders.find(header => header.id === id);\n const headerDef = columnDef.header;\n\n if (headerDef) {\n if (typeof headerDef === \"string\") {\n return headerDef;\n }\n // Try to get header name from the renderHeader function\n if (header) {\n const displayedHeader = headerDef(header.getContext());\n if (typeof displayedHeader === \"string\") return displayedHeader;\n }\n }\n // Fallback to use the columnName provided by user or id\n const { meta } = columnDef;\n return meta?.columnName ?? id;\n};\n\nexport function TableHeader<\n TData extends RowData,\n>({\n table,\n headerMenuFeatureFlags,\n}: TableHeaderProps<TData>): React.ReactElement {\n // TODO: If value is number type, right align header\n\n const {\n setColumnOrder,\n setColumnVisibility,\n setSorting,\n } = table;\n\n const currentSorting = table.getState().sorting;\n const currentVisibility = table.getState().columnVisibility;\n const currentColumnOrder = table.getState().columnOrder;\n\n const isResizing = !!table.getState().columnSizingInfo?.isResizingColumn;\n\n const [configDialogOpen, setConfigDialogOpen] = useState(false);\n const [multiSortDialogOpen, setMultiSortDialogOpen] = useState(false);\n\n const handleOpenColumnConfig = useCallback(() => {\n setConfigDialogOpen(true);\n }, []);\n\n const handleCloseColumnConfig = useCallback(() => {\n setConfigDialogOpen(false);\n }, []);\n\n const handleOpenMultiSort = useCallback(() => {\n setMultiSortDialogOpen(true);\n }, []);\n\n const handleCloseMultiSort = useCallback(() => {\n setMultiSortDialogOpen(false);\n }, []);\n\n const handleApplyMultiSort = useCallback(\n (sortColumns: SortingState) => {\n setMultiSortDialogOpen(false);\n setSorting?.(sortColumns);\n },\n [setSorting],\n );\n\n const handleApplyColumnConfig = useCallback(\n (updates: ColumnConfig[]) => {\n const newVisibilityState: VisibilityState = {};\n for (const update of updates) {\n newVisibilityState[update.columnId] = update.isVisible;\n }\n\n setColumnOrder(updates.map(col => col.columnId));\n setColumnVisibility(newVisibilityState);\n },\n [setColumnOrder, setColumnVisibility],\n );\n\n const columnOptions: ColumnOption[] = useMemo(() => {\n const allHeaders = table.getHeaderGroups().flatMap(headerGroup =>\n headerGroup.headers\n );\n\n return table\n .getAllColumns()\n .filter((column) => column.id !== SELECTION_COLUMN_ID)\n .map((column) => {\n return {\n id: column.id,\n name: getHeaderName(column, allHeaders),\n canSort: column.getCanSort(),\n };\n });\n }, [table]);\n\n return (\n <>\n <thead className={styles.osdkTableHeader} data-resizing={isResizing}>\n {table.getHeaderGroups().map((headerGroup) => (\n <tr\n key={headerGroup.id}\n className={styles.osdkTableHeaderRow}\n >\n {headerGroup.headers.map((header) => {\n const { columnStyles } = getColumnPinningStyles(header.column);\n const isColumnPinned = header.column.getIsPinned();\n const isSelectColumn = header.id === SELECTION_COLUMN_ID;\n return (\n <th\n key={header.id}\n data-pinned={header.column.getIsPinned()}\n className={classNames(styles.osdkTableHeaderCell, {\n [styles.osdkTableSelectionHeaderCell]: isSelectColumn,\n })}\n style={columnStyles}\n >\n {header.isPlaceholder\n ? null\n : isSelectColumn\n ? <TableHeaderContent header={header} />\n : (\n <TableHeaderWithPopover\n table={table}\n header={header}\n isColumnPinned={isColumnPinned}\n columnOptions={columnOptions}\n featureFlags={headerMenuFeatureFlags}\n onOpenColumnConfig={handleOpenColumnConfig}\n onOpenMultiSort={handleOpenMultiSort}\n />\n )}\n {header.column.getCanResize()\n && headerMenuFeatureFlags?.showResizeItem !== false && (\n <div\n className={styles.osdkTableHeaderResizer}\n onDoubleClick={() => header.column.resetSize()}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n />\n )}\n </th>\n );\n })}\n </tr>\n ))}\n </thead>\n {!!columnOptions?.length && (\n <ColumnConfigDialog\n isOpen={configDialogOpen}\n onClose={handleCloseColumnConfig}\n columnOptions={columnOptions}\n currentVisibility={currentVisibility}\n currentColumnOrder={currentColumnOrder}\n onApply={handleApplyColumnConfig}\n />\n )}\n {columnOptions?.some(col => col.canSort) && (\n <MultiColumnSortDialog\n isOpen={multiSortDialogOpen}\n onClose={handleCloseMultiSort}\n columnOptions={columnOptions}\n currentSorting={currentSorting}\n onApply={handleApplyMultiSort}\n />\n )}\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -34,6 +34,7 @@
34
34
  display: flex;
35
35
  width: max-content;
36
36
  min-width: 100%;
37
+ border-top: var(--osdk-table-border);
37
38
  border-bottom: var(--osdk-table-border);
38
39
  }
39
40
 
@@ -46,7 +47,6 @@
46
47
  font-weight: var(--osdk-table-header-fontWeight);
47
48
  font-size: var(--osdk-table-header-fontSize);
48
49
  color: var(--osdk-table-header-color);
49
- border-top: var(--osdk-table-border);
50
50
  border-right: var(--osdk-table-header-divider);
51
51
  background-color: inherit;
52
52
 
@@ -55,7 +55,7 @@
55
55
  }
56
56
 
57
57
  &:last-child {
58
- border-right: var(--osdk-table-border);
58
+ border-right: none;
59
59
  }
60
60
  }
61
61
 
@@ -78,8 +78,9 @@
78
78
  border-left: var(--osdk-table-pinned-column-border);
79
79
  }
80
80
 
81
- .osdkTableHeaderCell:has([role="checkbox"]) {
81
+ .osdkTableSelectionHeaderCell {
82
82
  justify-content: center;
83
+ padding: 0;
83
84
  }
84
85
 
85
86
  .osdkTableHeaderResizer {
@@ -3,6 +3,7 @@ const styles = {
3
3
  "osdkTableHeader": "TableHeader-module__osdkTableHeader___4Wzqkog9",
4
4
  "osdkTableHeaderRow": "TableHeader-module__osdkTableHeaderRow___lUjQpm91",
5
5
  "osdkTableHeaderCell": "TableHeader-module__osdkTableHeaderCell___iS9lGU8Z",
6
+ "osdkTableSelectionHeaderCell": "TableHeader-module__osdkTableSelectionHeaderCell___9Zt7O2Pz",
6
7
  "osdkTableHeaderResizer": "TableHeader-module__osdkTableHeaderResizer___qpjGLncF",
7
8
  "osdkLoadingHeaderCell": "TableHeader-module__osdkLoadingHeaderCell___gohWQuYX"
8
9
  };
@@ -31,8 +31,7 @@ function HeaderMenuItem({
31
31
  className: classNames(styles.osdkCenterContainer, styles.osdkContentGap, styles.osdkHeaderMenuItem, active && styles.osdkHeaderActiveMenuItem),
32
32
  onClick: onClick
33
33
  }, /*#__PURE__*/React.createElement(Icon, {
34
- className: styles.osdkHeaderIcon,
35
- color: "currentColor"
34
+ className: styles.osdkHeaderIcon
36
35
  }), /*#__PURE__*/React.createElement("span", null, label));
37
36
  }
38
37
  export function TableHeaderWithPopover({
@@ -121,8 +120,7 @@ export function TableHeaderWithPopover({
121
120
  }, /*#__PURE__*/React.createElement("div", {
122
121
  className: classNames(styles.osdkCenterContainer, styles.osdkContentGap, styles.osdkHeaderContentLeft)
123
122
  }, isColumnPinned && /*#__PURE__*/React.createElement(Pin, {
124
- className: styles.osdkHeaderIcon,
125
- color: "currentColor"
123
+ className: styles.osdkHeaderIcon
126
124
  }), /*#__PURE__*/React.createElement(TableHeaderContent, {
127
125
  header: header
128
126
  })), /*#__PURE__*/React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeaderWithPopover.js","names":["Menu","ChevronDown","Pin","Remove","Settings","Sort","SortAlphabetical","SortAlphabeticalDesc","Unpin","VerticalDistribution","classNames","React","useCallback","useState","TableHeaderContent","styles","HeaderMenuItem","onClick","icon","Icon","label","active","createElement","Item","closeOnClick","className","osdkCenterContainer","osdkContentGap","osdkHeaderMenuItem","osdkHeaderActiveMenuItem","osdkHeaderIcon","color","TableHeaderWithPopover","header","table","isColumnPinned","onResetSize","columnOptions","featureFlags","onOpenColumnConfig","onOpenMultiSort","showSortingItems","showPinningItems","showResizeItem","showConfigItem","setColumnPinning","setSorting","currentSorting","getState","sorting","isOpen","setIsOpen","handlePinLeft","prev","left","column","id","right","filter","handleUnpin","handleSortAscending","toggleSorting","desc","handleSortDescending","handleClearAllSorts","clearSorting","handleResetSize","resetSize","handleInteraction","e","preventDefault","handleOpenColumnConfig","handleOpenMultiSort","isSorted","getIsSorted","isSortable","getCanSort","sortIndex","findIndex","s","Fragment","Root","open","onOpenChange","osdkHeaderContainer","onContextMenu","osdkHeaderContentLeft","osdkHeaderContentRight","length","Trigger","osdkHeaderPopoverTrigger","Portal","container","document","body","Positioner","sideOffset","Popup","osdkHeaderPopup","some","col","canSort"],"sources":["TableHeaderWithPopover.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 { Menu } from \"@base-ui/react/menu\";\nimport {\n ChevronDown,\n Pin,\n Remove,\n Settings,\n Sort,\n SortAlphabetical,\n SortAlphabeticalDesc,\n Unpin,\n VerticalDistribution,\n} from \"@blueprintjs/icons\";\nimport type { Header, RowData, Table } from \"@tanstack/react-table\";\nimport classNames from \"classnames\";\nimport React, { useCallback, useState } from \"react\";\nimport { TableHeaderContent } from \"./TableHeaderContent.js\";\nimport styles from \"./TableHeaderWithPopover.module.css\";\nimport type { ColumnOption } from \"./utils/types.js\";\n\ninterface HeaderMenuItemProps {\n onClick: () => void;\n icon: React.ComponentType<{ className?: string; color?: string }>;\n label: string;\n active?: boolean;\n}\n\nfunction HeaderMenuItem({\n onClick,\n icon: Icon,\n label,\n active = false,\n}: HeaderMenuItemProps): React.ReactElement {\n return (\n <Menu.Item\n closeOnClick\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkContentGap,\n styles.osdkHeaderMenuItem,\n active && styles.osdkHeaderActiveMenuItem,\n )}\n onClick={onClick}\n >\n <Icon className={styles.osdkHeaderIcon} color=\"currentColor\" />\n <span>{label}</span>\n </Menu.Item>\n );\n}\n\nexport interface HeaderMenuFeatureFlags {\n /**\n * Whether sorting menu items should be shown.\n * When false, hides \"Sort ascending\", \"Sort descending\", \"Sort on multiple columns\", and \"Clear all sorts\".\n */\n showSortingItems?: boolean;\n /**\n * Whether pinning menu items should be shown.\n * When false, hides \"Pin column\" and \"Unpin Column\".\n */\n showPinningItems?: boolean;\n /**\n * Whether resize menu item should be shown.\n * When false, hides \"Reset Column Size\".\n */\n showResizeItem?: boolean;\n /**\n * Whether column config menu item should be shown.\n * When false, hides \"Configure Columns\".\n */\n showConfigItem?: boolean;\n}\n\ninterface TableHeaderWithPopoverProps<\n TData extends RowData,\n> {\n table: Table<TData>;\n header: Header<TData, unknown>;\n isColumnPinned: false | \"left\" | \"right\";\n onResetSize?: () => void;\n columnOptions?: ColumnOption[];\n featureFlags?: HeaderMenuFeatureFlags;\n onOpenColumnConfig?: () => void;\n onOpenMultiSort?: () => void;\n}\n\nexport function TableHeaderWithPopover<\n TData extends RowData,\n>({\n header,\n table,\n isColumnPinned,\n onResetSize,\n columnOptions,\n featureFlags,\n onOpenColumnConfig,\n onOpenMultiSort,\n}: TableHeaderWithPopoverProps<TData>): React.ReactElement {\n const {\n showSortingItems = false,\n showPinningItems = false,\n showResizeItem = false,\n showConfigItem = false,\n } = featureFlags ?? {};\n\n const {\n setColumnPinning,\n setSorting,\n } = table;\n\n const currentSorting = table.getState().sorting;\n\n const [isOpen, setIsOpen] = useState(false);\n\n const handlePinLeft = useCallback(() => {\n setColumnPinning((prev) => {\n return {\n left: [...(prev.left || []), header.column.id],\n right: prev.right?.filter((id) => id !== header.column.id) || [],\n };\n });\n }, [header.column.id, setColumnPinning]);\n\n const handleUnpin = useCallback(() => {\n setColumnPinning((prev) => {\n return {\n left: prev.left?.filter((id) => id !== header.column.id) || [],\n right: prev.right?.filter((id) => id !== header.column.id) || [],\n };\n });\n }, [header.column.id, setColumnPinning]);\n\n const handleSortAscending = useCallback(() => {\n header.column.toggleSorting(false);\n setSorting?.([{ id: header.column.id, desc: false }]);\n }, [header.column, setSorting]);\n\n const handleSortDescending = useCallback(() => {\n header.column.toggleSorting(true);\n setSorting?.([{ id: header.column.id, desc: true }]);\n }, [header.column, setSorting]);\n\n const handleClearAllSorts = useCallback(() => {\n header.column.clearSorting();\n setSorting?.([]);\n }, [header.column, setSorting]);\n\n const handleResetSize = useCallback(() => {\n header.column.resetSize();\n if (onResetSize) {\n onResetSize();\n }\n }, [header.column, onResetSize]);\n\n const handleInteraction = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault();\n setIsOpen((prev) => !prev);\n },\n [],\n );\n\n const handleOpenColumnConfig = useCallback(() => {\n onOpenColumnConfig?.();\n setIsOpen(false);\n }, [onOpenColumnConfig]);\n\n const handleOpenMultiSort = useCallback(() => {\n onOpenMultiSort?.();\n setIsOpen(false);\n }, [onOpenMultiSort]);\n\n const isSorted = header.column.getIsSorted();\n const isSortable = header.column.getCanSort();\n const sortIndex = currentSorting?.findIndex(s => s.id === header.column.id)\n ?? -1;\n\n const hasAnyMenuItems = showPinningItems\n || (showSortingItems && isSortable)\n || showResizeItem\n || showConfigItem;\n\n return (\n <>\n <Menu.Root open={isOpen} onOpenChange={setIsOpen}>\n <div\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkContentGap,\n styles.osdkHeaderContainer,\n )}\n onContextMenu={handleInteraction}\n >\n <div\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkContentGap,\n styles.osdkHeaderContentLeft,\n )}\n >\n {isColumnPinned && (\n <Pin\n className={styles.osdkHeaderIcon}\n color={\"currentColor\"}\n />\n )}\n <TableHeaderContent header={header} />\n </div>\n <div\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkContentGap,\n styles.osdkHeaderContentRight,\n )}\n >\n {isSorted && (\n <div className={styles.osdkCenterContainer}>\n {isSorted === \"asc\"\n ? (\n <SortAlphabetical\n className={styles.osdkHeaderIcon}\n />\n )\n : (\n <SortAlphabeticalDesc\n className={styles.osdkHeaderIcon}\n />\n )}\n {currentSorting.length > 1 && sortIndex >= 0\n && <span className={styles.sortIndex}>{sortIndex + 1}</span>}\n </div>\n )}\n {hasAnyMenuItems && (\n <Menu.Trigger\n aria-label={`Open header menu for column with id=${header.column.id}`}\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkHeaderPopoverTrigger,\n )}\n >\n <ChevronDown\n className={styles.osdkHeaderIcon}\n />\n </Menu.Trigger>\n )}\n </div>\n <Menu.Portal container={document.body}>\n <Menu.Positioner sideOffset={4}>\n <Menu.Popup\n className={styles.osdkHeaderPopup}\n >\n {showPinningItems && !isColumnPinned && (\n <HeaderMenuItem\n onClick={handlePinLeft}\n icon={Pin}\n label=\"Pin column\"\n />\n )}\n\n {showPinningItems && isColumnPinned && (\n <HeaderMenuItem\n onClick={handleUnpin}\n icon={Unpin}\n label=\"Unpin Column\"\n active={true}\n />\n )}\n {showSortingItems && isSortable && (\n <>\n <HeaderMenuItem\n onClick={handleSortAscending}\n icon={SortAlphabetical}\n label=\"Sort ascending\"\n active={isSorted === \"asc\"}\n />\n <HeaderMenuItem\n onClick={handleSortDescending}\n icon={SortAlphabeticalDesc}\n label=\"Sort descending\"\n active={isSorted === \"desc\"}\n />\n {columnOptions?.some(col => col.canSort) && (\n <HeaderMenuItem\n onClick={handleOpenMultiSort}\n icon={Sort}\n label=\"Sort on multiple columns\"\n />\n )}\n </>\n )}\n {showSortingItems && !!currentSorting?.length\n && (\n <HeaderMenuItem\n onClick={handleClearAllSorts}\n icon={Remove}\n label=\"Clear all sorts\"\n />\n )}\n {showResizeItem && (\n <HeaderMenuItem\n onClick={handleResetSize}\n icon={VerticalDistribution}\n label=\"Reset Column Size\"\n />\n )}\n {showConfigItem && (\n <HeaderMenuItem\n onClick={handleOpenColumnConfig}\n icon={Settings}\n label=\"Configure Columns\"\n />\n )}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </div>\n </Menu.Root>\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"TableHeaderWithPopover.js","names":["Menu","ChevronDown","Pin","Remove","Settings","Sort","SortAlphabetical","SortAlphabeticalDesc","Unpin","VerticalDistribution","classNames","React","useCallback","useState","TableHeaderContent","styles","HeaderMenuItem","onClick","icon","Icon","label","active","createElement","Item","closeOnClick","className","osdkCenterContainer","osdkContentGap","osdkHeaderMenuItem","osdkHeaderActiveMenuItem","osdkHeaderIcon","TableHeaderWithPopover","header","table","isColumnPinned","onResetSize","columnOptions","featureFlags","onOpenColumnConfig","onOpenMultiSort","showSortingItems","showPinningItems","showResizeItem","showConfigItem","setColumnPinning","setSorting","currentSorting","getState","sorting","isOpen","setIsOpen","handlePinLeft","prev","left","column","id","right","filter","handleUnpin","handleSortAscending","toggleSorting","desc","handleSortDescending","handleClearAllSorts","clearSorting","handleResetSize","resetSize","handleInteraction","e","preventDefault","handleOpenColumnConfig","handleOpenMultiSort","isSorted","getIsSorted","isSortable","getCanSort","sortIndex","findIndex","s","Fragment","Root","open","onOpenChange","osdkHeaderContainer","onContextMenu","osdkHeaderContentLeft","osdkHeaderContentRight","length","Trigger","osdkHeaderPopoverTrigger","Portal","container","document","body","Positioner","sideOffset","Popup","osdkHeaderPopup","some","col","canSort"],"sources":["TableHeaderWithPopover.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 { Menu } from \"@base-ui/react/menu\";\nimport {\n ChevronDown,\n Pin,\n Remove,\n Settings,\n Sort,\n SortAlphabetical,\n SortAlphabeticalDesc,\n Unpin,\n VerticalDistribution,\n} from \"@blueprintjs/icons\";\nimport type { Header, RowData, Table } from \"@tanstack/react-table\";\nimport classNames from \"classnames\";\nimport React, { useCallback, useState } from \"react\";\nimport { TableHeaderContent } from \"./TableHeaderContent.js\";\nimport styles from \"./TableHeaderWithPopover.module.css\";\nimport type { ColumnOption } from \"./utils/types.js\";\n\ninterface HeaderMenuItemProps {\n onClick: () => void;\n icon: React.ComponentType<{ className?: string; color?: string }>;\n label: string;\n active?: boolean;\n}\n\nfunction HeaderMenuItem({\n onClick,\n icon: Icon,\n label,\n active = false,\n}: HeaderMenuItemProps): React.ReactElement {\n return (\n <Menu.Item\n closeOnClick\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkContentGap,\n styles.osdkHeaderMenuItem,\n active && styles.osdkHeaderActiveMenuItem,\n )}\n onClick={onClick}\n >\n <Icon className={styles.osdkHeaderIcon} />\n <span>{label}</span>\n </Menu.Item>\n );\n}\n\nexport interface HeaderMenuFeatureFlags {\n /**\n * Whether sorting menu items should be shown.\n * When false, hides \"Sort ascending\", \"Sort descending\", \"Sort on multiple columns\", and \"Clear all sorts\".\n */\n showSortingItems?: boolean;\n /**\n * Whether pinning menu items should be shown.\n * When false, hides \"Pin column\" and \"Unpin Column\".\n */\n showPinningItems?: boolean;\n /**\n * Whether resize menu item should be shown.\n * When false, hides \"Reset Column Size\".\n */\n showResizeItem?: boolean;\n /**\n * Whether column config menu item should be shown.\n * When false, hides \"Configure Columns\".\n */\n showConfigItem?: boolean;\n}\n\ninterface TableHeaderWithPopoverProps<\n TData extends RowData,\n> {\n table: Table<TData>;\n header: Header<TData, unknown>;\n isColumnPinned: false | \"left\" | \"right\";\n onResetSize?: () => void;\n columnOptions?: ColumnOption[];\n featureFlags?: HeaderMenuFeatureFlags;\n onOpenColumnConfig?: () => void;\n onOpenMultiSort?: () => void;\n}\n\nexport function TableHeaderWithPopover<\n TData extends RowData,\n>({\n header,\n table,\n isColumnPinned,\n onResetSize,\n columnOptions,\n featureFlags,\n onOpenColumnConfig,\n onOpenMultiSort,\n}: TableHeaderWithPopoverProps<TData>): React.ReactElement {\n const {\n showSortingItems = false,\n showPinningItems = false,\n showResizeItem = false,\n showConfigItem = false,\n } = featureFlags ?? {};\n\n const {\n setColumnPinning,\n setSorting,\n } = table;\n\n const currentSorting = table.getState().sorting;\n\n const [isOpen, setIsOpen] = useState(false);\n\n const handlePinLeft = useCallback(() => {\n setColumnPinning((prev) => {\n return {\n left: [...(prev.left || []), header.column.id],\n right: prev.right?.filter((id) => id !== header.column.id) || [],\n };\n });\n }, [header.column.id, setColumnPinning]);\n\n const handleUnpin = useCallback(() => {\n setColumnPinning((prev) => {\n return {\n left: prev.left?.filter((id) => id !== header.column.id) || [],\n right: prev.right?.filter((id) => id !== header.column.id) || [],\n };\n });\n }, [header.column.id, setColumnPinning]);\n\n const handleSortAscending = useCallback(() => {\n header.column.toggleSorting(false);\n setSorting?.([{ id: header.column.id, desc: false }]);\n }, [header.column, setSorting]);\n\n const handleSortDescending = useCallback(() => {\n header.column.toggleSorting(true);\n setSorting?.([{ id: header.column.id, desc: true }]);\n }, [header.column, setSorting]);\n\n const handleClearAllSorts = useCallback(() => {\n header.column.clearSorting();\n setSorting?.([]);\n }, [header.column, setSorting]);\n\n const handleResetSize = useCallback(() => {\n header.column.resetSize();\n if (onResetSize) {\n onResetSize();\n }\n }, [header.column, onResetSize]);\n\n const handleInteraction = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault();\n setIsOpen((prev) => !prev);\n },\n [],\n );\n\n const handleOpenColumnConfig = useCallback(() => {\n onOpenColumnConfig?.();\n setIsOpen(false);\n }, [onOpenColumnConfig]);\n\n const handleOpenMultiSort = useCallback(() => {\n onOpenMultiSort?.();\n setIsOpen(false);\n }, [onOpenMultiSort]);\n\n const isSorted = header.column.getIsSorted();\n const isSortable = header.column.getCanSort();\n const sortIndex = currentSorting?.findIndex(s => s.id === header.column.id)\n ?? -1;\n\n const hasAnyMenuItems = showPinningItems\n || (showSortingItems && isSortable)\n || showResizeItem\n || showConfigItem;\n\n return (\n <>\n <Menu.Root open={isOpen} onOpenChange={setIsOpen}>\n <div\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkContentGap,\n styles.osdkHeaderContainer,\n )}\n onContextMenu={handleInteraction}\n >\n <div\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkContentGap,\n styles.osdkHeaderContentLeft,\n )}\n >\n {isColumnPinned && (\n <Pin\n className={styles.osdkHeaderIcon}\n />\n )}\n <TableHeaderContent header={header} />\n </div>\n <div\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkContentGap,\n styles.osdkHeaderContentRight,\n )}\n >\n {isSorted && (\n <div className={styles.osdkCenterContainer}>\n {isSorted === \"asc\"\n ? (\n <SortAlphabetical\n className={styles.osdkHeaderIcon}\n />\n )\n : (\n <SortAlphabeticalDesc\n className={styles.osdkHeaderIcon}\n />\n )}\n {currentSorting.length > 1 && sortIndex >= 0\n && <span className={styles.sortIndex}>{sortIndex + 1}</span>}\n </div>\n )}\n {hasAnyMenuItems && (\n <Menu.Trigger\n aria-label={`Open header menu for column with id=${header.column.id}`}\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkHeaderPopoverTrigger,\n )}\n >\n <ChevronDown\n className={styles.osdkHeaderIcon}\n />\n </Menu.Trigger>\n )}\n </div>\n <Menu.Portal container={document.body}>\n <Menu.Positioner sideOffset={4}>\n <Menu.Popup\n className={styles.osdkHeaderPopup}\n >\n {showPinningItems && !isColumnPinned && (\n <HeaderMenuItem\n onClick={handlePinLeft}\n icon={Pin}\n label=\"Pin column\"\n />\n )}\n\n {showPinningItems && isColumnPinned && (\n <HeaderMenuItem\n onClick={handleUnpin}\n icon={Unpin}\n label=\"Unpin Column\"\n active={true}\n />\n )}\n {showSortingItems && isSortable && (\n <>\n <HeaderMenuItem\n onClick={handleSortAscending}\n icon={SortAlphabetical}\n label=\"Sort ascending\"\n active={isSorted === \"asc\"}\n />\n <HeaderMenuItem\n onClick={handleSortDescending}\n icon={SortAlphabeticalDesc}\n label=\"Sort descending\"\n active={isSorted === \"desc\"}\n />\n {columnOptions?.some(col => col.canSort) && (\n <HeaderMenuItem\n onClick={handleOpenMultiSort}\n icon={Sort}\n label=\"Sort on multiple columns\"\n />\n )}\n </>\n )}\n {showSortingItems && !!currentSorting?.length\n && (\n <HeaderMenuItem\n onClick={handleClearAllSorts}\n icon={Remove}\n label=\"Clear all sorts\"\n />\n )}\n {showResizeItem && (\n <HeaderMenuItem\n onClick={handleResetSize}\n icon={VerticalDistribution}\n label=\"Reset Column Size\"\n />\n )}\n {showConfigItem && (\n <HeaderMenuItem\n onClick={handleOpenColumnConfig}\n icon={Settings}\n label=\"Configure Columns\"\n />\n )}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </div>\n </Menu.Root>\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}