@osdk/react-components 0.1.0 → 0.2.0-beta.10

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 (609) hide show
  1. package/CHANGELOG.md +98 -19
  2. package/README.md +56 -23
  3. package/build/browser/base-components/action-button/ActionButton.js +31 -0
  4. package/build/browser/base-components/action-button/ActionButton.js.map +1 -0
  5. package/build/browser/base-components/action-button/ActionButton.module.css +70 -0
  6. package/build/browser/base-components/action-button/ActionButton.module.css.js +8 -0
  7. package/build/browser/base-components/checkbox/Checkbox.js +27 -32
  8. package/build/browser/base-components/checkbox/Checkbox.module.css +79 -0
  9. package/build/browser/base-components/checkbox/Checkbox.module.css.js +7 -0
  10. package/build/browser/base-components/combobox/Combobox.js +124 -0
  11. package/build/browser/base-components/combobox/Combobox.js.map +1 -0
  12. package/build/browser/base-components/combobox/Combobox.module.css +177 -0
  13. package/build/browser/base-components/combobox/Combobox.module.css.js +16 -0
  14. package/build/browser/base-components/dialog/Dialog.js +52 -0
  15. package/build/browser/base-components/dialog/Dialog.js.map +1 -0
  16. package/build/browser/base-components/dialog/Dialog.module.css +101 -0
  17. package/build/browser/base-components/dialog/Dialog.module.css.js +13 -0
  18. package/build/browser/base-components/draggable-list/DraggableList.js +155 -0
  19. package/build/browser/base-components/draggable-list/DraggableList.js.map +1 -0
  20. package/build/browser/base-components/draggable-list/DraggableList.module.css +108 -0
  21. package/build/browser/base-components/draggable-list/DraggableList.module.css.js +11 -0
  22. package/build/browser/base-components/search-bar/SearchBar.js +44 -0
  23. package/build/browser/base-components/search-bar/SearchBar.js.map +1 -0
  24. package/build/browser/base-components/search-bar/SearchBar.module.css +53 -0
  25. package/build/browser/base-components/search-bar/SearchBar.module.css.js +8 -0
  26. package/build/browser/base-components/select/Select.js +89 -0
  27. package/build/browser/base-components/select/Select.js.map +1 -0
  28. package/build/browser/base-components/select/Select.module.css +138 -0
  29. package/build/browser/base-components/select/Select.module.css.js +11 -0
  30. package/build/browser/base-components/switch/Switch.js +33 -0
  31. package/build/browser/base-components/switch/Switch.js.map +1 -0
  32. package/build/browser/base-components/switch/Switch.module.css +91 -0
  33. package/build/browser/base-components/switch/Switch.module.css.js +7 -0
  34. package/build/browser/filter-list/FilterListApi.js.map +1 -1
  35. package/build/browser/filter-list/FilterListItemApi.js.map +1 -1
  36. package/build/browser/filter-list/__tests__/LinkedPropertyInput.test.js +202 -0
  37. package/build/browser/filter-list/__tests__/LinkedPropertyInput.test.js.map +1 -0
  38. package/build/browser/filter-list/__tests__/dateUtils.test.js +55 -0
  39. package/build/browser/filter-list/__tests__/dateUtils.test.js.map +1 -0
  40. package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js +296 -0
  41. package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js.map +1 -0
  42. package/build/browser/filter-list/__tests__/getFilterKey.test.js +53 -0
  43. package/build/browser/filter-list/__tests__/getFilterKey.test.js.map +1 -0
  44. package/build/browser/filter-list/__tests__/testUtils.js +203 -0
  45. package/build/browser/filter-list/__tests__/testUtils.js.map +1 -0
  46. package/build/browser/filter-list/base/FilterInput.js +542 -0
  47. package/build/browser/filter-list/base/FilterInput.js.map +1 -0
  48. package/build/browser/filter-list/base/FilterList.js +77 -0
  49. package/build/browser/filter-list/base/FilterList.js.map +1 -0
  50. package/build/browser/filter-list/base/FilterList.module.css +67 -0
  51. package/build/browser/filter-list/base/FilterList.module.css.js +8 -0
  52. package/build/browser/filter-list/base/FilterListContent.js +57 -0
  53. package/build/browser/filter-list/base/FilterListContent.js.map +1 -0
  54. package/build/browser/filter-list/base/FilterListContent.module.css +27 -0
  55. package/build/browser/filter-list/base/FilterListContent.module.css.js +7 -0
  56. package/build/browser/filter-list/base/FilterListHeader.js +58 -0
  57. package/build/browser/filter-list/base/FilterListHeader.js.map +1 -0
  58. package/build/browser/filter-list/base/FilterListHeader.module.css +127 -0
  59. package/build/browser/filter-list/base/FilterListHeader.module.css.js +13 -0
  60. package/build/browser/filter-list/base/FilterListItem.js +75 -0
  61. package/build/browser/filter-list/base/FilterListItem.js.map +1 -0
  62. package/build/browser/filter-list/base/FilterListItem.module.css +38 -0
  63. package/build/browser/filter-list/base/FilterListItem.module.css.js +9 -0
  64. package/build/browser/filter-list/base/index.js +22 -0
  65. package/build/browser/filter-list/base/index.js.map +1 -0
  66. package/build/browser/filter-list/base/inputs/CheckboxListInput.js +75 -0
  67. package/build/browser/filter-list/base/inputs/CheckboxListInput.js.map +1 -0
  68. package/build/browser/filter-list/base/inputs/CheckboxListInput.module.css +42 -0
  69. package/build/browser/filter-list/base/inputs/CheckboxListInput.module.css.js +9 -0
  70. package/build/browser/filter-list/base/inputs/ContainsTextInput.js +85 -0
  71. package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -0
  72. package/build/browser/filter-list/base/inputs/ContainsTextInput.module.css +91 -0
  73. package/build/browser/filter-list/base/inputs/ContainsTextInput.module.css.js +10 -0
  74. package/build/browser/filter-list/base/inputs/DateRangeInput.js +37 -0
  75. package/build/browser/filter-list/base/inputs/DateRangeInput.js.map +1 -0
  76. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.js +237 -0
  77. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.js.map +1 -0
  78. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
  79. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css.js +6 -0
  80. package/build/browser/filter-list/base/inputs/ListogramInput.js +98 -0
  81. package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -0
  82. package/build/browser/filter-list/base/inputs/ListogramInput.module.css +88 -0
  83. package/build/browser/filter-list/base/inputs/ListogramInput.module.css.js +12 -0
  84. package/build/browser/filter-list/base/inputs/MultiDateInput.js +82 -0
  85. package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -0
  86. package/build/browser/filter-list/base/inputs/MultiDateInput.module.css +54 -0
  87. package/build/browser/filter-list/base/inputs/MultiDateInput.module.css.js +9 -0
  88. package/build/browser/filter-list/base/inputs/MultiSelectInput.js +100 -0
  89. package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
  90. package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css +35 -0
  91. package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css.js +9 -0
  92. package/build/browser/filter-list/base/inputs/NullValueWrapper.js +76 -0
  93. package/build/browser/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
  94. package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css +49 -0
  95. package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css.js +10 -0
  96. package/build/browser/filter-list/base/inputs/NumberRangeInput.js +48 -0
  97. package/build/browser/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
  98. package/build/browser/filter-list/base/inputs/RangeInput.js +187 -0
  99. package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -0
  100. package/build/browser/filter-list/base/inputs/RangeInput.module.css +81 -0
  101. package/build/browser/filter-list/base/inputs/RangeInput.module.css.js +13 -0
  102. package/build/browser/filter-list/base/inputs/SingleDateInput.js +61 -0
  103. package/build/browser/filter-list/base/inputs/SingleDateInput.js.map +1 -0
  104. package/build/browser/filter-list/base/inputs/SingleDateInput.module.css +63 -0
  105. package/build/browser/filter-list/base/inputs/SingleDateInput.module.css.js +9 -0
  106. package/build/browser/filter-list/base/inputs/SingleSelectInput.js +95 -0
  107. package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
  108. package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css +55 -0
  109. package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css.js +8 -0
  110. package/build/browser/filter-list/base/inputs/TextTagsInput.js +141 -0
  111. package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -0
  112. package/build/browser/filter-list/base/inputs/TextTagsInput.module.css +25 -0
  113. package/build/browser/filter-list/base/inputs/TextTagsInput.module.css.js +7 -0
  114. package/build/browser/filter-list/base/inputs/TimelineInput.js +74 -0
  115. package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -0
  116. package/build/browser/filter-list/base/inputs/TimelineInput.module.css +73 -0
  117. package/build/browser/filter-list/base/inputs/TimelineInput.module.css.js +10 -0
  118. package/build/browser/filter-list/base/inputs/ToggleInput.js +43 -0
  119. package/build/browser/filter-list/base/inputs/ToggleInput.js.map +1 -0
  120. package/build/browser/filter-list/base/inputs/ToggleInput.module.css +34 -0
  121. package/build/browser/filter-list/base/inputs/ToggleInput.module.css.js +8 -0
  122. package/build/browser/filter-list/base/inputs/createHistogramBuckets.js +53 -0
  123. package/build/browser/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
  124. package/build/browser/filter-list/base/inputs/dateUtils.js +57 -0
  125. package/build/browser/filter-list/base/inputs/dateUtils.js.map +1 -0
  126. package/build/browser/filter-list/base/inputs/index.js +25 -0
  127. package/build/browser/filter-list/base/inputs/index.js.map +1 -0
  128. package/build/browser/filter-list/base/inputs/shared.module.css +79 -0
  129. package/build/browser/filter-list/base/inputs/shared.module.css.js +11 -0
  130. package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js +128 -0
  131. package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js.map +1 -0
  132. package/build/browser/filter-list/hooks/useFilterListState.js +119 -0
  133. package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -0
  134. package/build/browser/filter-list/hooks/usePropertyAggregation.js +92 -0
  135. package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -0
  136. package/build/browser/filter-list/types/AddFilterMenuTypes.js +2 -0
  137. package/build/browser/filter-list/types/AddFilterMenuTypes.js.map +1 -0
  138. package/build/browser/filter-list/types/CustomRendererTypes.js +2 -0
  139. package/build/browser/filter-list/types/CustomRendererTypes.js.map +1 -0
  140. package/build/browser/filter-list/types/FilterPanelTypes.js +2 -0
  141. package/build/browser/filter-list/types/FilterPanelTypes.js.map +1 -0
  142. package/build/browser/filter-list/types/KeywordSearchTypes.js +2 -0
  143. package/build/browser/filter-list/types/KeywordSearchTypes.js.map +1 -0
  144. package/build/browser/filter-list/types/LinkedFilterTypes.js +2 -0
  145. package/build/browser/filter-list/types/LinkedFilterTypes.js.map +1 -0
  146. package/build/browser/filter-list/types/index.js +22 -0
  147. package/build/browser/filter-list/types/index.js.map +1 -0
  148. package/build/browser/filter-list/utils/aggregationHelpers.js +44 -0
  149. package/build/browser/filter-list/utils/aggregationHelpers.js.map +1 -0
  150. package/build/browser/filter-list/utils/assertUnreachable.js +25 -0
  151. package/build/browser/filter-list/utils/assertUnreachable.js.map +1 -0
  152. package/build/browser/filter-list/utils/coerceFilterValue.js +33 -0
  153. package/build/browser/filter-list/utils/coerceFilterValue.js.map +1 -0
  154. package/build/browser/filter-list/utils/filterStateToWhereClause.js +337 -0
  155. package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -0
  156. package/build/browser/filter-list/utils/filterValues.js +55 -0
  157. package/build/browser/filter-list/utils/filterValues.js.map +1 -0
  158. package/build/browser/filter-list/utils/getFilterKey.js +34 -0
  159. package/build/browser/filter-list/utils/getFilterKey.js.map +1 -0
  160. package/build/browser/object-table/CellContextMenu.js +23 -20
  161. package/build/browser/object-table/CellContextMenu.module.css +20 -0
  162. package/build/browser/object-table/CellContextMenu.module.css.js +6 -0
  163. package/build/browser/object-table/ColumnConfigDialog.js +259 -0
  164. package/build/browser/object-table/ColumnConfigDialog.js.map +1 -0
  165. package/build/browser/object-table/ColumnConfigDialog.module.css +247 -0
  166. package/build/browser/object-table/ColumnConfigDialog.module.css.js +29 -0
  167. package/build/browser/object-table/DefaultCellRenderer.js +43 -0
  168. package/build/browser/object-table/DefaultCellRenderer.js.map +1 -0
  169. package/build/browser/object-table/EditableCell.js +91 -0
  170. package/build/browser/object-table/EditableCell.js.map +1 -0
  171. package/build/browser/object-table/EditableCell.module.css +3 -0
  172. package/build/browser/object-table/EditableCell.module.css.js +6 -0
  173. package/build/browser/object-table/LoadingCell.js +24 -29
  174. package/build/browser/object-table/LoadingCell.module.css +48 -0
  175. package/build/browser/object-table/LoadingCell.module.css.js +8 -0
  176. package/build/browser/object-table/LoadingRow.js +24 -50
  177. package/build/browser/object-table/LoadingStateTable.js +49 -343
  178. package/build/browser/object-table/LoadingStateTable.js.map +1 -1
  179. package/build/browser/object-table/MultiColumnSortDialog.js +178 -0
  180. package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -0
  181. package/build/browser/object-table/MultiColumnSortDialog.module.css +195 -0
  182. package/build/browser/object-table/MultiColumnSortDialog.module.css.js +22 -0
  183. package/build/browser/object-table/NonIdealState.js +23 -20
  184. package/build/browser/object-table/NonIdealState.module.css +27 -0
  185. package/build/browser/object-table/NonIdealState.module.css.js +7 -0
  186. package/build/browser/object-table/ObjectTable.js +74 -15
  187. package/build/browser/object-table/ObjectTable.js.map +1 -1
  188. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  189. package/build/browser/object-table/SelectionCells.js +15 -4
  190. package/build/browser/object-table/SelectionCells.js.map +1 -1
  191. package/build/browser/object-table/SortableItemsList.js +35 -0
  192. package/build/browser/object-table/SortableItemsList.js.map +1 -0
  193. package/build/browser/object-table/Table.js +70 -935
  194. package/build/browser/object-table/Table.js.map +1 -1
  195. package/build/browser/object-table/Table.module.css +45 -0
  196. package/build/browser/object-table/Table.module.css.js +8 -0
  197. package/build/browser/object-table/TableBody.js +36 -260
  198. package/build/browser/object-table/TableBody.module.css +22 -0
  199. package/build/browser/object-table/TableBody.module.css.js +6 -0
  200. package/build/browser/object-table/TableCell.js +31 -111
  201. package/build/browser/object-table/TableCell.module.css +83 -0
  202. package/build/browser/object-table/TableCell.module.css.js +8 -0
  203. package/build/browser/object-table/TableHeader.js +126 -216
  204. package/build/browser/object-table/TableHeader.js.map +1 -1
  205. package/build/browser/object-table/TableHeader.module.css +108 -0
  206. package/build/browser/object-table/TableHeader.module.css.js +10 -0
  207. package/build/browser/object-table/TableHeaderContent.js +21 -18
  208. package/build/browser/object-table/TableHeaderContent.module.css +30 -0
  209. package/build/browser/object-table/TableHeaderContent.module.css.js +6 -0
  210. package/build/browser/object-table/TableHeaderWithPopover.js +110 -93
  211. package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
  212. package/build/browser/object-table/TableHeaderWithPopover.module.css +141 -0
  213. package/build/browser/object-table/TableHeaderWithPopover.module.css.js +17 -0
  214. package/build/browser/object-table/TableRow.js +26 -144
  215. package/build/browser/object-table/TableRow.module.css +62 -0
  216. package/build/browser/object-table/TableRow.module.css.js +6 -0
  217. package/build/browser/object-table/__tests__/useEditableTable.test.js +197 -0
  218. package/build/browser/object-table/__tests__/useEditableTable.test.js.map +1 -0
  219. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js +14 -2
  220. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js.map +1 -1
  221. package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js +160 -138
  222. package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js.map +1 -1
  223. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js +113 -25
  224. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js.map +1 -1
  225. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js +48 -0
  226. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js.map +1 -1
  227. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js +27 -82
  228. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js.map +1 -1
  229. package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js +290 -0
  230. package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js.map +1 -1
  231. package/build/browser/object-table/hooks/useColumnDefs.js +16 -3
  232. package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
  233. package/build/browser/object-table/hooks/useColumnResize.js +45 -0
  234. package/build/browser/object-table/hooks/useColumnResize.js.map +1 -0
  235. package/build/browser/object-table/hooks/useColumnVisibility.js +52 -20
  236. package/build/browser/object-table/hooks/useColumnVisibility.js.map +1 -1
  237. package/build/browser/object-table/hooks/useEditableTable.js +57 -0
  238. package/build/browser/object-table/hooks/useEditableTable.js.map +1 -0
  239. package/build/browser/object-table/hooks/useObjectTableData.js +42 -7
  240. package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
  241. package/build/browser/object-table/hooks/useRowSelection.js +31 -10
  242. package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
  243. package/build/browser/object-table/hooks/useSelectionColumn.js +15 -6
  244. package/build/browser/object-table/hooks/useSelectionColumn.js.map +1 -1
  245. package/build/browser/object-table/utils/getCellId.js +27 -0
  246. package/build/browser/object-table/utils/getCellId.js.map +1 -0
  247. package/build/browser/object-table/utils/types.js +2 -0
  248. package/build/browser/object-table/utils/types.js.map +1 -0
  249. package/build/browser/public/experimental.js +2 -0
  250. package/build/browser/public/experimental.js.map +1 -1
  251. package/build/browser/shared/ErrorBoundary.js +62 -0
  252. package/build/browser/shared/ErrorBoundary.js.map +1 -0
  253. package/build/browser/shared/ErrorBoundary.module.css +55 -0
  254. package/build/browser/shared/ErrorBoundary.module.css.js +8 -0
  255. package/build/browser/styles.css +3073 -0
  256. package/build/cjs/public/experimental.cjs +4026 -240
  257. package/build/cjs/public/experimental.cjs.map +1 -1
  258. package/build/cjs/public/experimental.css +1834 -154
  259. package/build/cjs/public/experimental.css.map +1 -1
  260. package/build/cjs/public/experimental.d.cts +453 -50
  261. package/build/esm/base-components/action-button/ActionButton.js +31 -0
  262. package/build/esm/base-components/action-button/ActionButton.js.map +1 -0
  263. package/build/esm/base-components/action-button/ActionButton.module.css +70 -0
  264. package/build/esm/base-components/checkbox/Checkbox.module.css +1 -1
  265. package/build/esm/base-components/combobox/Combobox.js +124 -0
  266. package/build/esm/base-components/combobox/Combobox.js.map +1 -0
  267. package/build/esm/base-components/combobox/Combobox.module.css +177 -0
  268. package/build/esm/base-components/dialog/Dialog.js +52 -0
  269. package/build/esm/base-components/dialog/Dialog.js.map +1 -0
  270. package/build/esm/base-components/dialog/Dialog.module.css +101 -0
  271. package/build/esm/base-components/draggable-list/DraggableList.js +155 -0
  272. package/build/esm/base-components/draggable-list/DraggableList.js.map +1 -0
  273. package/build/esm/base-components/draggable-list/DraggableList.module.css +108 -0
  274. package/build/esm/base-components/search-bar/SearchBar.js +44 -0
  275. package/build/esm/base-components/search-bar/SearchBar.js.map +1 -0
  276. package/build/esm/base-components/search-bar/SearchBar.module.css +53 -0
  277. package/build/esm/base-components/select/Select.js +89 -0
  278. package/build/esm/base-components/select/Select.js.map +1 -0
  279. package/build/esm/base-components/select/Select.module.css +138 -0
  280. package/build/esm/base-components/switch/Switch.js +33 -0
  281. package/build/esm/base-components/switch/Switch.js.map +1 -0
  282. package/build/esm/base-components/switch/Switch.module.css +91 -0
  283. package/build/esm/filter-list/FilterListApi.js.map +1 -1
  284. package/build/esm/filter-list/FilterListItemApi.js.map +1 -1
  285. package/build/esm/filter-list/__tests__/LinkedPropertyInput.test.js +202 -0
  286. package/build/esm/filter-list/__tests__/LinkedPropertyInput.test.js.map +1 -0
  287. package/build/esm/filter-list/__tests__/dateUtils.test.js +55 -0
  288. package/build/esm/filter-list/__tests__/dateUtils.test.js.map +1 -0
  289. package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js +296 -0
  290. package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js.map +1 -0
  291. package/build/esm/filter-list/__tests__/getFilterKey.test.js +53 -0
  292. package/build/esm/filter-list/__tests__/getFilterKey.test.js.map +1 -0
  293. package/build/esm/filter-list/__tests__/testUtils.js +203 -0
  294. package/build/esm/filter-list/__tests__/testUtils.js.map +1 -0
  295. package/build/esm/filter-list/base/FilterInput.js +542 -0
  296. package/build/esm/filter-list/base/FilterInput.js.map +1 -0
  297. package/build/esm/filter-list/base/FilterList.js +77 -0
  298. package/build/esm/filter-list/base/FilterList.js.map +1 -0
  299. package/build/esm/filter-list/base/FilterList.module.css +67 -0
  300. package/build/esm/filter-list/base/FilterListContent.js +57 -0
  301. package/build/esm/filter-list/base/FilterListContent.js.map +1 -0
  302. package/build/esm/filter-list/base/FilterListContent.module.css +27 -0
  303. package/build/esm/filter-list/base/FilterListHeader.js +58 -0
  304. package/build/esm/filter-list/base/FilterListHeader.js.map +1 -0
  305. package/build/esm/filter-list/base/FilterListHeader.module.css +127 -0
  306. package/build/esm/filter-list/base/FilterListItem.js +75 -0
  307. package/build/esm/filter-list/base/FilterListItem.js.map +1 -0
  308. package/build/esm/filter-list/base/FilterListItem.module.css +38 -0
  309. package/build/esm/filter-list/base/index.js +22 -0
  310. package/build/esm/filter-list/base/index.js.map +1 -0
  311. package/build/esm/filter-list/base/inputs/CheckboxListInput.js +75 -0
  312. package/build/esm/filter-list/base/inputs/CheckboxListInput.js.map +1 -0
  313. package/build/esm/filter-list/base/inputs/CheckboxListInput.module.css +42 -0
  314. package/build/esm/filter-list/base/inputs/ContainsTextInput.js +85 -0
  315. package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -0
  316. package/build/esm/filter-list/base/inputs/ContainsTextInput.module.css +91 -0
  317. package/build/esm/filter-list/base/inputs/DateRangeInput.js +37 -0
  318. package/build/esm/filter-list/base/inputs/DateRangeInput.js.map +1 -0
  319. package/build/esm/filter-list/base/inputs/LinkedPropertyInput.js +237 -0
  320. package/build/esm/filter-list/base/inputs/LinkedPropertyInput.js.map +1 -0
  321. package/build/esm/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
  322. package/build/esm/filter-list/base/inputs/ListogramInput.js +98 -0
  323. package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -0
  324. package/build/esm/filter-list/base/inputs/ListogramInput.module.css +88 -0
  325. package/build/esm/filter-list/base/inputs/MultiDateInput.js +82 -0
  326. package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -0
  327. package/build/esm/filter-list/base/inputs/MultiDateInput.module.css +54 -0
  328. package/build/esm/filter-list/base/inputs/MultiSelectInput.js +100 -0
  329. package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
  330. package/build/esm/filter-list/base/inputs/MultiSelectInput.module.css +35 -0
  331. package/build/esm/filter-list/base/inputs/NullValueWrapper.js +76 -0
  332. package/build/esm/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
  333. package/build/esm/filter-list/base/inputs/NullValueWrapper.module.css +49 -0
  334. package/build/esm/filter-list/base/inputs/NumberRangeInput.js +48 -0
  335. package/build/esm/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
  336. package/build/esm/filter-list/base/inputs/RangeInput.js +187 -0
  337. package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -0
  338. package/build/esm/filter-list/base/inputs/RangeInput.module.css +81 -0
  339. package/build/esm/filter-list/base/inputs/SingleDateInput.js +61 -0
  340. package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -0
  341. package/build/esm/filter-list/base/inputs/SingleDateInput.module.css +63 -0
  342. package/build/esm/filter-list/base/inputs/SingleSelectInput.js +95 -0
  343. package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
  344. package/build/esm/filter-list/base/inputs/SingleSelectInput.module.css +55 -0
  345. package/build/esm/filter-list/base/inputs/TextTagsInput.js +141 -0
  346. package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -0
  347. package/build/esm/filter-list/base/inputs/TextTagsInput.module.css +25 -0
  348. package/build/esm/filter-list/base/inputs/TimelineInput.js +74 -0
  349. package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -0
  350. package/build/esm/filter-list/base/inputs/TimelineInput.module.css +73 -0
  351. package/build/esm/filter-list/base/inputs/ToggleInput.js +43 -0
  352. package/build/esm/filter-list/base/inputs/ToggleInput.js.map +1 -0
  353. package/build/esm/filter-list/base/inputs/ToggleInput.module.css +34 -0
  354. package/build/esm/filter-list/base/inputs/createHistogramBuckets.js +53 -0
  355. package/build/esm/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
  356. package/build/esm/filter-list/base/inputs/dateUtils.js +57 -0
  357. package/build/esm/filter-list/base/inputs/dateUtils.js.map +1 -0
  358. package/build/esm/filter-list/base/inputs/index.js +25 -0
  359. package/build/esm/filter-list/base/inputs/index.js.map +1 -0
  360. package/build/esm/filter-list/base/inputs/shared.module.css +79 -0
  361. package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js +128 -0
  362. package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js.map +1 -0
  363. package/build/esm/filter-list/hooks/useFilterListState.js +119 -0
  364. package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -0
  365. package/build/esm/filter-list/hooks/usePropertyAggregation.js +92 -0
  366. package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -0
  367. package/build/esm/filter-list/types/AddFilterMenuTypes.js +2 -0
  368. package/build/esm/filter-list/types/AddFilterMenuTypes.js.map +1 -0
  369. package/build/esm/filter-list/types/CustomRendererTypes.js +2 -0
  370. package/build/esm/filter-list/types/CustomRendererTypes.js.map +1 -0
  371. package/build/esm/filter-list/types/FilterPanelTypes.js +2 -0
  372. package/build/esm/filter-list/types/FilterPanelTypes.js.map +1 -0
  373. package/build/esm/filter-list/types/KeywordSearchTypes.js +2 -0
  374. package/build/esm/filter-list/types/KeywordSearchTypes.js.map +1 -0
  375. package/build/esm/filter-list/types/LinkedFilterTypes.js +2 -0
  376. package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -0
  377. package/build/esm/filter-list/types/index.js +22 -0
  378. package/build/esm/filter-list/types/index.js.map +1 -0
  379. package/build/esm/filter-list/utils/aggregationHelpers.js +44 -0
  380. package/build/esm/filter-list/utils/aggregationHelpers.js.map +1 -0
  381. package/build/esm/filter-list/utils/assertUnreachable.js +25 -0
  382. package/build/esm/filter-list/utils/assertUnreachable.js.map +1 -0
  383. package/build/esm/filter-list/utils/coerceFilterValue.js +33 -0
  384. package/build/esm/filter-list/utils/coerceFilterValue.js.map +1 -0
  385. package/build/esm/filter-list/utils/filterStateToWhereClause.js +337 -0
  386. package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -0
  387. package/build/esm/filter-list/utils/filterValues.js +55 -0
  388. package/build/esm/filter-list/utils/filterValues.js.map +1 -0
  389. package/build/esm/filter-list/utils/getFilterKey.js +34 -0
  390. package/build/esm/filter-list/utils/getFilterKey.js.map +1 -0
  391. package/build/esm/object-table/ColumnConfigDialog.js +259 -0
  392. package/build/esm/object-table/ColumnConfigDialog.js.map +1 -0
  393. package/build/esm/object-table/ColumnConfigDialog.module.css +247 -0
  394. package/build/esm/object-table/DefaultCellRenderer.js +43 -0
  395. package/build/esm/object-table/DefaultCellRenderer.js.map +1 -0
  396. package/build/esm/object-table/EditableCell.js +91 -0
  397. package/build/esm/object-table/EditableCell.js.map +1 -0
  398. package/build/esm/object-table/EditableCell.module.css +3 -0
  399. package/build/esm/object-table/LoadingStateTable.js +4 -4
  400. package/build/esm/object-table/LoadingStateTable.js.map +1 -1
  401. package/build/esm/object-table/MultiColumnSortDialog.js +178 -0
  402. package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -0
  403. package/build/esm/object-table/MultiColumnSortDialog.module.css +195 -0
  404. package/build/esm/object-table/NonIdealState.module.css +2 -3
  405. package/build/esm/object-table/ObjectTable.js +74 -15
  406. package/build/esm/object-table/ObjectTable.js.map +1 -1
  407. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  408. package/build/esm/object-table/SelectionCells.js +15 -4
  409. package/build/esm/object-table/SelectionCells.js.map +1 -1
  410. package/build/esm/object-table/SortableItemsList.js +35 -0
  411. package/build/esm/object-table/SortableItemsList.js.map +1 -0
  412. package/build/esm/object-table/Table.js +25 -8
  413. package/build/esm/object-table/Table.js.map +1 -1
  414. package/build/esm/object-table/Table.module.css +26 -3
  415. package/build/esm/object-table/TableBody.module.css +2 -0
  416. package/build/esm/object-table/TableCell.module.css +22 -1
  417. package/build/esm/object-table/TableHeader.js +93 -6
  418. package/build/esm/object-table/TableHeader.js.map +1 -1
  419. package/build/esm/object-table/TableHeader.module.css +9 -2
  420. package/build/esm/object-table/TableHeaderWithPopover.js +53 -22
  421. package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
  422. package/build/esm/object-table/TableHeaderWithPopover.module.css +56 -25
  423. package/build/esm/object-table/TableRow.module.css +2 -0
  424. package/build/esm/object-table/__tests__/useEditableTable.test.js +197 -0
  425. package/build/esm/object-table/__tests__/useEditableTable.test.js.map +1 -0
  426. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js +14 -2
  427. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js.map +1 -1
  428. package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js +160 -138
  429. package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js.map +1 -1
  430. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js +113 -25
  431. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js.map +1 -1
  432. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js +48 -0
  433. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js.map +1 -1
  434. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js +27 -82
  435. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js.map +1 -1
  436. package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js +290 -0
  437. package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js.map +1 -1
  438. package/build/esm/object-table/hooks/useColumnDefs.js +16 -3
  439. package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
  440. package/build/esm/object-table/hooks/useColumnResize.js +45 -0
  441. package/build/esm/object-table/hooks/useColumnResize.js.map +1 -0
  442. package/build/esm/object-table/hooks/useColumnVisibility.js +52 -20
  443. package/build/esm/object-table/hooks/useColumnVisibility.js.map +1 -1
  444. package/build/esm/object-table/hooks/useEditableTable.js +57 -0
  445. package/build/esm/object-table/hooks/useEditableTable.js.map +1 -0
  446. package/build/esm/object-table/hooks/useObjectTableData.js +42 -7
  447. package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
  448. package/build/esm/object-table/hooks/useRowSelection.js +31 -10
  449. package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
  450. package/build/esm/object-table/hooks/useSelectionColumn.js +15 -6
  451. package/build/esm/object-table/hooks/useSelectionColumn.js.map +1 -1
  452. package/build/esm/object-table/utils/getCellId.js +27 -0
  453. package/build/esm/object-table/utils/getCellId.js.map +1 -0
  454. package/build/esm/object-table/utils/types.js +2 -0
  455. package/build/esm/object-table/utils/types.js.map +1 -0
  456. package/build/esm/public/experimental.js +2 -0
  457. package/build/esm/public/experimental.js.map +1 -1
  458. package/build/esm/shared/ErrorBoundary.js +62 -0
  459. package/build/esm/shared/ErrorBoundary.js.map +1 -0
  460. package/build/esm/shared/ErrorBoundary.module.css +55 -0
  461. package/build/types/base-components/action-button/ActionButton.d.ts +5 -0
  462. package/build/types/base-components/action-button/ActionButton.d.ts.map +1 -0
  463. package/build/types/base-components/combobox/Combobox.d.ts +52 -0
  464. package/build/types/base-components/combobox/Combobox.d.ts.map +1 -0
  465. package/build/types/base-components/dialog/Dialog.d.ts +10 -0
  466. package/build/types/base-components/dialog/Dialog.d.ts.map +1 -0
  467. package/build/types/base-components/draggable-list/DraggableList.d.ts +17 -0
  468. package/build/types/base-components/draggable-list/DraggableList.d.ts.map +1 -0
  469. package/build/types/base-components/search-bar/SearchBar.d.ts +11 -0
  470. package/build/types/base-components/search-bar/SearchBar.d.ts.map +1 -0
  471. package/build/types/base-components/select/Select.d.ts +34 -0
  472. package/build/types/base-components/select/Select.d.ts.map +1 -0
  473. package/build/types/base-components/switch/Switch.d.ts +10 -0
  474. package/build/types/base-components/switch/Switch.d.ts.map +1 -0
  475. package/build/types/filter-list/FilterListApi.d.ts +62 -17
  476. package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
  477. package/build/types/filter-list/FilterListItemApi.d.ts +101 -53
  478. package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
  479. package/build/types/filter-list/__tests__/LinkedPropertyInput.test.d.ts +1 -0
  480. package/build/types/filter-list/__tests__/LinkedPropertyInput.test.d.ts.map +1 -0
  481. package/build/types/filter-list/__tests__/dateUtils.test.d.ts +1 -0
  482. package/build/types/filter-list/__tests__/dateUtils.test.d.ts.map +1 -0
  483. package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts +1 -0
  484. package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts.map +1 -0
  485. package/build/types/filter-list/__tests__/getFilterKey.test.d.ts +1 -0
  486. package/build/types/filter-list/__tests__/getFilterKey.test.d.ts.map +1 -0
  487. package/build/types/filter-list/__tests__/testUtils.d.ts +65 -0
  488. package/build/types/filter-list/__tests__/testUtils.d.ts.map +1 -0
  489. package/build/types/filter-list/base/FilterInput.d.ts +15 -0
  490. package/build/types/filter-list/base/FilterInput.d.ts.map +1 -0
  491. package/build/types/filter-list/base/FilterList.d.ts +4 -0
  492. package/build/types/filter-list/base/FilterList.d.ts.map +1 -0
  493. package/build/types/filter-list/base/FilterListContent.d.ts +16 -0
  494. package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -0
  495. package/build/types/filter-list/base/FilterListHeader.d.ts +14 -0
  496. package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -0
  497. package/build/types/filter-list/base/FilterListItem.d.ts +18 -0
  498. package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -0
  499. package/build/types/filter-list/base/index.d.ts +5 -0
  500. package/build/types/filter-list/base/index.d.ts.map +1 -0
  501. package/build/types/filter-list/base/inputs/CheckboxListInput.d.ts +21 -0
  502. package/build/types/filter-list/base/inputs/CheckboxListInput.d.ts.map +1 -0
  503. package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts +13 -0
  504. package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts.map +1 -0
  505. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts +22 -0
  506. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts.map +1 -0
  507. package/build/types/filter-list/base/inputs/LinkedPropertyInput.d.ts +21 -0
  508. package/build/types/filter-list/base/inputs/LinkedPropertyInput.d.ts.map +1 -0
  509. package/build/types/filter-list/base/inputs/ListogramInput.d.ts +22 -0
  510. package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -0
  511. package/build/types/filter-list/base/inputs/MultiDateInput.d.ts +12 -0
  512. package/build/types/filter-list/base/inputs/MultiDateInput.d.ts.map +1 -0
  513. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts +24 -0
  514. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -0
  515. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts +21 -0
  516. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts.map +1 -0
  517. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts +22 -0
  518. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts.map +1 -0
  519. package/build/types/filter-list/base/inputs/RangeInput.d.ts +37 -0
  520. package/build/types/filter-list/base/inputs/RangeInput.d.ts.map +1 -0
  521. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts +13 -0
  522. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -0
  523. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts +24 -0
  524. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts.map +1 -0
  525. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts +24 -0
  526. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts.map +1 -0
  527. package/build/types/filter-list/base/inputs/TimelineInput.d.ts +11 -0
  528. package/build/types/filter-list/base/inputs/TimelineInput.d.ts.map +1 -0
  529. package/build/types/filter-list/base/inputs/ToggleInput.d.ts +10 -0
  530. package/build/types/filter-list/base/inputs/ToggleInput.d.ts.map +1 -0
  531. package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts +16 -0
  532. package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts.map +1 -0
  533. package/build/types/filter-list/base/inputs/dateUtils.d.ts +17 -0
  534. package/build/types/filter-list/base/inputs/dateUtils.d.ts.map +1 -0
  535. package/build/types/filter-list/base/inputs/index.d.ts +8 -0
  536. package/build/types/filter-list/base/inputs/index.d.ts.map +1 -0
  537. package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts +1 -0
  538. package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts.map +1 -0
  539. package/build/types/filter-list/hooks/useFilterListState.d.ts +11 -0
  540. package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -0
  541. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +20 -0
  542. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -0
  543. package/build/types/filter-list/types/AddFilterMenuTypes.d.ts +56 -0
  544. package/build/types/filter-list/types/AddFilterMenuTypes.d.ts.map +1 -0
  545. package/build/types/filter-list/types/CustomRendererTypes.d.ts +76 -0
  546. package/build/types/filter-list/types/CustomRendererTypes.d.ts.map +1 -0
  547. package/build/types/filter-list/types/FilterPanelTypes.d.ts +18 -0
  548. package/build/types/filter-list/types/FilterPanelTypes.d.ts.map +1 -0
  549. package/build/types/filter-list/types/KeywordSearchTypes.d.ts +56 -0
  550. package/build/types/filter-list/types/KeywordSearchTypes.d.ts.map +1 -0
  551. package/build/types/filter-list/types/LinkedFilterTypes.d.ts +89 -0
  552. package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -0
  553. package/build/types/filter-list/types/index.d.ts +5 -0
  554. package/build/types/filter-list/types/index.d.ts.map +1 -0
  555. package/build/types/filter-list/utils/aggregationHelpers.d.ts +9 -0
  556. package/build/types/filter-list/utils/aggregationHelpers.d.ts.map +1 -0
  557. package/build/types/filter-list/utils/assertUnreachable.d.ts +6 -0
  558. package/build/types/filter-list/utils/assertUnreachable.d.ts.map +1 -0
  559. package/build/types/filter-list/utils/coerceFilterValue.d.ts +11 -0
  560. package/build/types/filter-list/utils/coerceFilterValue.d.ts.map +1 -0
  561. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts +16 -0
  562. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -0
  563. package/build/types/filter-list/utils/filterValues.d.ts +5 -0
  564. package/build/types/filter-list/utils/filterValues.d.ts.map +1 -0
  565. package/build/types/filter-list/utils/getFilterKey.d.ts +3 -0
  566. package/build/types/filter-list/utils/getFilterKey.d.ts.map +1 -0
  567. package/build/types/object-table/ColumnConfigDialog.d.ts +18 -0
  568. package/build/types/object-table/ColumnConfigDialog.d.ts.map +1 -0
  569. package/build/types/object-table/DefaultCellRenderer.d.ts +3 -0
  570. package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -0
  571. package/build/types/object-table/EditableCell.d.ts +10 -0
  572. package/build/types/object-table/EditableCell.d.ts.map +1 -0
  573. package/build/types/object-table/LoadingStateTable.d.ts.map +1 -1
  574. package/build/types/object-table/MultiColumnSortDialog.d.ts +15 -0
  575. package/build/types/object-table/MultiColumnSortDialog.d.ts.map +1 -0
  576. package/build/types/object-table/ObjectTable.d.ts +1 -1
  577. package/build/types/object-table/ObjectTable.d.ts.map +1 -1
  578. package/build/types/object-table/ObjectTableApi.d.ts +79 -8
  579. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  580. package/build/types/object-table/SortableItemsList.d.ts +13 -0
  581. package/build/types/object-table/SortableItemsList.d.ts.map +1 -0
  582. package/build/types/object-table/Table.d.ts +26 -1
  583. package/build/types/object-table/Table.d.ts.map +1 -1
  584. package/build/types/object-table/TableHeader.d.ts +3 -1
  585. package/build/types/object-table/TableHeader.d.ts.map +1 -1
  586. package/build/types/object-table/TableHeaderWithPopover.d.ts +30 -6
  587. package/build/types/object-table/TableHeaderWithPopover.d.ts.map +1 -1
  588. package/build/types/object-table/__tests__/useEditableTable.test.d.ts +1 -0
  589. package/build/types/object-table/__tests__/useEditableTable.test.d.ts.map +1 -0
  590. package/build/types/object-table/hooks/useColumnDefs.d.ts.map +1 -1
  591. package/build/types/object-table/hooks/useColumnResize.d.ts +10 -0
  592. package/build/types/object-table/hooks/useColumnResize.d.ts.map +1 -0
  593. package/build/types/object-table/hooks/useColumnVisibility.d.ts +18 -7
  594. package/build/types/object-table/hooks/useColumnVisibility.d.ts.map +1 -1
  595. package/build/types/object-table/hooks/useEditableTable.d.ts +22 -0
  596. package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -0
  597. package/build/types/object-table/hooks/useObjectTableData.d.ts +6 -5
  598. package/build/types/object-table/hooks/useObjectTableData.d.ts.map +1 -1
  599. package/build/types/object-table/hooks/useRowSelection.d.ts +5 -4
  600. package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
  601. package/build/types/object-table/utils/getCellId.d.ts +3 -0
  602. package/build/types/object-table/utils/getCellId.d.ts.map +1 -0
  603. package/build/types/object-table/utils/types.d.ts +14 -0
  604. package/build/types/object-table/utils/types.d.ts.map +1 -0
  605. package/build/types/public/experimental.d.ts +6 -2
  606. package/build/types/public/experimental.d.ts.map +1 -1
  607. package/build/types/shared/ErrorBoundary.d.ts +19 -0
  608. package/build/types/shared/ErrorBoundary.d.ts.map +1 -0
  609. package/package.json +17 -9
@@ -1,909 +1,28 @@
1
- // build/browser/object-table/Table.js
2
- import classNames6 from "classnames";
3
- import React16, { useCallback as useCallback5, useEffect as useEffect3, useRef as useRef4, useState as useState5 } from "react";
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
+ */
4
16
 
5
- // build/browser/object-table/LoadingStateTable.js
6
- import classNames3 from "classnames";
7
- import React6, { useEffect, useRef, useState as useState2 } from "react";
8
- import React2 from "react";
9
17
  import classNames from "classnames";
10
- import React from "react";
11
- import React5 from "react";
12
- import { flexRender } from "@tanstack/react-table";
13
- import React3 from "react";
14
- import { Menu } from "@base-ui/react/menu";
15
- import { ChevronDown, Pin, Remove, SortAlphabetical, SortAlphabeticalDesc, Unpin, VerticalDistribution } from "@blueprintjs/icons";
16
- import classNames2 from "classnames";
17
- import React4, { useCallback, useState } from "react";
18
- var css = '/*\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\n.osdkLoadingCell {\n height: var(--osdk-table-cell-fontSize);\n border-radius: calc(var(--osdk-surface-border-radius) * 0.5);\n flex: 1;\n}\n\n/* Blueprint skeleton animation keyframes */\n@keyframes skeleton-glow {\n from {\n background: var(--osdk-table-skeleton-color-from);\n border-color: var(--osdk-table-skeleton-color-from);\n }\n\n to {\n background: var(--osdk-table-skeleton-color-to);\n border-color: var(--osdk-table-skeleton-color-to);\n }\n}\n\n.osdkCellSkeleton {\n animation: 1000ms linear infinite alternate skeleton-glow;\n background: var(--osdk-table-skeleton-color-from);\n background-clip: padding-box;\n border-color: var(--osdk-table-skeleton-color-from);\n border-radius: calc(var(--osdk-surface-border-radius) * 0.5);\n border: 1px solid var(--osdk-table-skeleton-border-color);\n box-shadow: none;\n color: transparent;\n cursor: default;\n pointer-events: none;\n user-select: none;\n}\n';
19
- if (typeof document !== "undefined") {
20
- const style = document.createElement("style");
21
- style.textContent = css;
22
- document.head.appendChild(style);
23
- }
24
- var LoadingCell_default = { "osdkLoadingCell": "osdkLoadingCell", "osdkCellSkeleton": "osdkCellSkeleton" };
25
- var css2 = '/*\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\n.osdkLoadingCell {\n height: var(--osdk-table-cell-fontSize);\n border-radius: calc(var(--osdk-surface-border-radius) * 0.5);\n flex: 1;\n}\n\n/* Blueprint skeleton animation keyframes */\n@keyframes skeleton-glow {\n from {\n background: var(--osdk-table-skeleton-color-from);\n border-color: var(--osdk-table-skeleton-color-from);\n }\n\n to {\n background: var(--osdk-table-skeleton-color-to);\n border-color: var(--osdk-table-skeleton-color-to);\n }\n}\n\n.osdkCellSkeleton {\n animation: 1000ms linear infinite alternate skeleton-glow;\n background: var(--osdk-table-skeleton-color-from);\n background-clip: padding-box;\n border-color: var(--osdk-table-skeleton-color-from);\n border-radius: calc(var(--osdk-surface-border-radius) * 0.5);\n border: 1px solid var(--osdk-table-skeleton-border-color);\n box-shadow: none;\n color: transparent;\n cursor: default;\n pointer-events: none;\n user-select: none;\n}\n';
26
- if (typeof document !== "undefined") {
27
- const style = document.createElement("style");
28
- style.textContent = css2;
29
- document.head.appendChild(style);
30
- }
31
- var LoadingCell_default2 = { "osdkLoadingCell": "osdkLoadingCell", "osdkCellSkeleton": "osdkCellSkeleton" };
32
- var css22 = '/*\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\n.osdkTableCell {\n display: flex;\n align-items: center;\n text-align: left;\n position: relative;\n padding: var(--osdk-table-cell-padding);\n font-size: var(--osdk-table-cell-fontSize);\n color: var(--osdk-table-cell-color);\n background-color: inherit;\n border-right: var(--osdk-table-cell-divider);\n\n &:first-child {\n border-left: var(--osdk-table-border);\n }\n\n &:last-child {\n border-right: var(--osdk-table-border);\n }\n}\n\n.osdkTableCell[data-pinned="left"],\n.osdkTableCell[data-pinned="right"] {\n position: sticky;\n z-index: var(--osdk-surface-z-index-1);\n}\n\n/* Last left-pinned column - no left-pinned siblings after it */\n.osdkTableCell[data-pinned="left"]:not(:has(~ [data-pinned="left"])) {\n border-right: var(--osdk-table-pinned-column-border);\n}\n\n/* First right-pinned column - no right-pinned siblings before it */\n.osdkTableCell[data-pinned="right"]:not(:has(~ [data-pinned="right"]):nth-child(n+2)) {\n border-left: var(--osdk-table-pinned-column-border);\n}\n\n.osdkTableCell:has([role="checkbox"]) {\n justify-content: center;\n}\n\n.osdkTableCellContent:not(:has([role="checkbox"])) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: left;\n}\n';
33
- if (typeof document !== "undefined") {
34
- const style = document.createElement("style");
35
- style.textContent = css22;
36
- document.head.appendChild(style);
37
- }
38
- var TableCell_default = { "osdkTableCell": "osdkTableCell", "osdkTableCellContent": "osdkTableCellContent" };
39
- function LoadingCell({
40
- width
41
- }) {
42
- return /* @__PURE__ */ React.createElement("td", {
43
- className: TableCell_default.osdkTableCell,
44
- style: {
45
- width
46
- }
47
- }, /* @__PURE__ */ React.createElement("div", {
48
- className: classNames(LoadingCell_default2.osdkLoadingCell, LoadingCell_default2.osdkCellSkeleton)
49
- }));
50
- }
51
- var css3 = '/*\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\n.osdkTableRow {\n position: absolute;\n display: flex;\n background-color: var(--osdk-table-row-bg-default);\n border-top: var(--osdk-table-row-divider);\n border-bottom: var(--osdk-table-border-width) solid transparent;\n\n &:last-child {\n border-bottom: var(--osdk-table-border);\n }\n\n /* Zebra rows */\n &:nth-child(even) {\n background-color: var(\n --osdk-table-row-bg-alternate,\n var(--osdk-table-row-bg-default)\n );\n }\n\n &:hover {\n z-index: 1;\n background-color: var(\n --osdk-table-row-bg-hover,\n var(--osdk-surface-background-color-default-hover)\n );\n border-top-color: var(--osdk-table-row-border-color-hover);\n border-bottom-color: var(--osdk-table-row-border-color-hover);\n }\n\n &[data-selected="true"] {\n z-index: 2;\n background-color: var(--osdk-table-row-bg-active);\n border-top-color: var(--osdk-table-row-border-color-active);\n border-bottom-color: var(--osdk-table-row-border-color-active);\n }\n\n &[data-selected="true"] + &[data-selected="true"] {\n border-top-color: transparent;\n }\n\n &[data-selected="true"]:has(+ &[data-selected="true"]) {\n border-bottom-color: transparent;\n }\n}\n';
52
- if (typeof document !== "undefined") {
53
- const style = document.createElement("style");
54
- style.textContent = css3;
55
- document.head.appendChild(style);
56
- }
57
- var TableRow_default = { "osdkTableRow": "osdkTableRow" };
58
- function LoadingRow({
59
- headers,
60
- columnCount,
61
- translateY,
62
- rowHeight = 40,
63
- columnWidth = 80
64
- }) {
65
- return /* @__PURE__ */ React2.createElement("tr", {
66
- className: TableRow_default.osdkTableRow,
67
- style: {
68
- height: `${rowHeight}px`,
69
- transform: `translateY(${translateY}px)`
70
- }
71
- }, /* @__PURE__ */ React2.createElement(React2.Fragment, null, Array.from({
72
- length: columnCount
73
- }).map((_, index) => {
74
- const width = headers.length > index ? headers[index].getSize() : columnWidth;
75
- return /* @__PURE__ */ React2.createElement(LoadingCell, {
76
- key: `loading-cell-${index}`,
77
- width
78
- });
79
- })));
80
- }
81
- var css4 = '/*\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\n.osdkTableBody {\n display: grid;\n position: relative;\n}\n';
82
- if (typeof document !== "undefined") {
83
- const style = document.createElement("style");
84
- style.textContent = css4;
85
- document.head.appendChild(style);
86
- }
87
- var TableBody_default = { "osdkTableBody": "osdkTableBody" };
88
- var css5 = '/*\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\n.osdkTableHeader {\n display: grid;\n position: sticky;\n top: 0;\n z-index: var(--osdk-surface-z-index-1);\n background-color: var(--osdk-table-header-bg);\n}\n\n.osdkTableHeader[data-resizing="true"] {\n cursor: col-resize;\n user-select: none;\n}\n\n.osdkTableHeaderRow {\n display: flex;\n}\n\n.osdkTableHeaderCell {\n display: flex;\n align-items: center;\n text-align: left;\n position: relative;\n padding: var(--osdk-table-cell-padding);\n font-weight: var(--osdk-table-header-fontWeight);\n font-size: var(--osdk-table-header-fontSize);\n color: var(--osdk-table-header-color);\n border-top: var(--osdk-table-border);\n border-right: var(--osdk-table-header-divider);\n background-color: inherit;\n\n &:first-child {\n border-left: var(--osdk-table-border);\n }\n\n &:last-child {\n border-right: var(--osdk-table-border);\n }\n}\n\n.osdkTableHeaderCell[data-pinned="left"],\n.osdkTableHeaderCell[data-pinned="right"] {\n position: sticky;\n z-index: var(--osdk-surface-z-index-2);\n}\n\n/* Last left-pinned column - no left-pinned siblings after it */\n.osdkTableHeaderCell[data-pinned="left"]:not(:has(~ [data-pinned="left"])) {\n border-right: var(--osdk-table-pinned-column-border);\n}\n\n/* First right-pinned column - no right-pinned siblings before it */\n.osdkTableHeaderCell[data-pinned="right"]:not(\n :has(~ [data-pinned="right"]):nth-child(n + 2)\n ) {\n border-left: var(--osdk-table-pinned-column-border);\n}\n\n.osdkTableHeaderCell:has([role="checkbox"]) {\n justify-content: center;\n}\n\n.osdkTableHeaderResizer {\n background: none;\n cursor: col-resize;\n height: 100%;\n position: absolute;\n right: calc(-1 * var(--osdk-table-border-width));\n top: 0;\n touch-action: none;\n width: 3px;\n z-index: var(--osdk-surface-z-index-2);\n\n &:hover {\n background: var(--osdk-intent-primary-hover);\n }\n\n &:active {\n background: var(--osdk-intent-primary-active);\n }\n}\n\n.osdkLoadingHeaderCell {\n height: var(--osdk-table-header-fontSize);\n flex: 1;\n}\n';
89
- if (typeof document !== "undefined") {
90
- const style = document.createElement("style");
91
- style.textContent = css5;
92
- document.head.appendChild(style);
93
- }
94
- var TableHeader_default = { "osdkTableHeader": "osdkTableHeader", "osdkTableHeaderRow": "osdkTableHeaderRow", "osdkTableHeaderCell": "osdkTableHeaderCell", "osdkTableHeaderResizer": "osdkTableHeaderResizer", "osdkLoadingHeaderCell": "osdkLoadingHeaderCell" };
95
- var css6 = '/*\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\n.osdkHeaderContent {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.osdkHeaderContent:has([role="checkbox"]) {\n display: flex;\n justify-content: center;\n}\n';
96
- if (typeof document !== "undefined") {
97
- const style = document.createElement("style");
98
- style.textContent = css6;
99
- document.head.appendChild(style);
100
- }
101
- var TableHeaderContent_default = { "osdkHeaderContent": "osdkHeaderContent" };
102
- function TableHeaderContent({
103
- header
104
- }) {
105
- return /* @__PURE__ */ React3.createElement("div", {
106
- className: TableHeaderContent_default.osdkHeaderContent
107
- }, flexRender(header.column.columnDef.header, header.getContext()));
108
- }
109
- var css7 = '/*\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\n.osdkCenterContainer {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.osdkContentGap {\n display: flex;\n gap: var(--osdk-surface-spacing);\n}\n\n.osdkHeaderContainer {\n justify-content: space-between;\n flex: 1;\n min-width: 0;\n align-self: stretch;\n}\n\n.osdkHeaderContentLeft {\n min-width: 0;\n flex-shrink: 1;\n}\n\n.osdkHeaderContentRight {\n flex-shrink: 0;\n}\n\n.osdkHeaderPopoverTrigger {\n padding: 0;\n flex-shrink: 0;\n flex-grow: 0;\n border: var(--osdk-surface-border-width) solid\n var(--osdk-surface-border-color-default);\n border-radius: var(--osdk-surface-border-radius);\n color: var(--osdk-intent-default-foreground);\n user-select: none;\n outline: none;\n\n &:hover {\n background-color: var(--osdk-intent-default-hover);\n }\n\n &[data-popup-open] {\n background-color: var(--osdk-intent-primary-rest);\n }\n\n &:focus-visible {\n outline: var(--osdk-focus-visible-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n }\n}\n\n.osdkHeaderIcon {\n width: var(--osdk-iconography-size-small);\n height: var(--osdk-iconography-size-small);\n}\n\n.osdkHeaderPopup {\n box-sizing: border-box;\n padding: var(--osdk-surface-spacing);\n border-radius: var(--osdk-surface-border-radius);\n border: var(--osdk-surface-border-width) solid\n var(--osdk-surface-border-color-default);\n background-color: var(--osdk-surface-background-color-default);\n color: var(--osdk-typography-color-default-rest);\n box-shadow: var(--osdk-surface-shadow-2);\n font-size: var(--osdk-typography-size-body-medium);\n outline: none;\n}\n\n.osdkHeaderMenuItem {\n justify-content: flex-start;\n padding: var(--osdk-surface-spacing);\n cursor: pointer;\n}\n\n.osdkHeaderMenuItem:hover {\n outline: none;\n background-color: var(--osdk-surface-background-color-default-hover);\n border-radius: var(--osdk-surface-border-radius);\n}\n\n.osdkHeaderActiveMenuItem {\n background-color: var(--osdk-intent-primary-rest);\n color: var(--osdk-intent-primary-foreground);\n}\n\n.osdkHeaderActiveMenuItem:hover {\n background-color: var(--osdk-intent-primary-hover);\n}\n\n.osdkHeaderActiveMenuItem:active {\n background-color: var(--osdk-intent-primary-active);\n}\n';
110
- if (typeof document !== "undefined") {
111
- const style = document.createElement("style");
112
- style.textContent = css7;
113
- document.head.appendChild(style);
114
- }
115
- var TableHeaderWithPopover_default = { "osdkCenterContainer": "osdkCenterContainer", "osdkContentGap": "osdkContentGap", "osdkHeaderContainer": "osdkHeaderContainer", "osdkHeaderContentLeft": "osdkHeaderContentLeft", "osdkHeaderContentRight": "osdkHeaderContentRight", "osdkHeaderPopoverTrigger": "osdkHeaderPopoverTrigger", "osdkHeaderIcon": "osdkHeaderIcon", "osdkHeaderPopup": "osdkHeaderPopup", "osdkHeaderMenuItem": "osdkHeaderMenuItem", "osdkHeaderActiveMenuItem": "osdkHeaderActiveMenuItem" };
116
- function HeaderMenuItem({
117
- onClick,
118
- icon: Icon,
119
- label,
120
- active = false
121
- }) {
122
- return /* @__PURE__ */ React4.createElement(Menu.Item, {
123
- closeOnClick: true,
124
- className: classNames2(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderMenuItem, active && TableHeaderWithPopover_default.osdkHeaderActiveMenuItem),
125
- onClick
126
- }, /* @__PURE__ */ React4.createElement(Icon, {
127
- className: TableHeaderWithPopover_default.osdkHeaderIcon,
128
- color: "currentColor"
129
- }), /* @__PURE__ */ React4.createElement("span", null, label));
130
- }
131
- function TableHeaderWithPopover({
132
- header,
133
- isColumnPinned,
134
- setColumnPinning,
135
- onSortChange,
136
- onResetSize
137
- }) {
138
- const [isOpen, setIsOpen] = useState(false);
139
- const handlePinLeft = useCallback(() => {
140
- setColumnPinning((prev) => {
141
- return {
142
- left: [...prev.left || [], header.column.id],
143
- right: prev.right?.filter((id) => id !== header.column.id) || []
144
- };
145
- });
146
- }, [header.column.id, setColumnPinning]);
147
- const handleUnpin = useCallback(() => {
148
- setColumnPinning((prev) => {
149
- return {
150
- left: prev.left?.filter((id) => id !== header.column.id) || [],
151
- right: prev.right?.filter((id) => id !== header.column.id) || []
152
- };
153
- });
154
- }, [header.column.id, setColumnPinning]);
155
- const handleSortAscending = useCallback(() => {
156
- header.column.toggleSorting(false);
157
- onSortChange?.([{
158
- id: header.column.id,
159
- desc: false
160
- }]);
161
- }, [header.column, onSortChange]);
162
- const handleSortDescending = useCallback(() => {
163
- header.column.toggleSorting(true);
164
- onSortChange?.([{
165
- id: header.column.id,
166
- desc: true
167
- }]);
168
- }, [header.column, onSortChange]);
169
- const handleClearAllSorts = useCallback(() => {
170
- header.column.clearSorting();
171
- onSortChange?.([]);
172
- }, [header.column, onSortChange]);
173
- const handleResetSize = useCallback(() => {
174
- header.column.resetSize();
175
- if (onResetSize) {
176
- onResetSize();
177
- }
178
- }, [header.column, onResetSize]);
179
- const handleInteraction = useCallback((e) => {
180
- e.preventDefault();
181
- setIsOpen((prev) => !prev);
182
- }, []);
183
- const isSorted = header.column.getIsSorted();
184
- const isSortable = header.column.getCanSort();
185
- return /* @__PURE__ */ React4.createElement(Menu.Root, {
186
- open: isOpen,
187
- onOpenChange: setIsOpen
188
- }, /* @__PURE__ */ React4.createElement("div", {
189
- className: classNames2(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderContainer),
190
- onContextMenu: handleInteraction
191
- }, /* @__PURE__ */ React4.createElement("div", {
192
- className: classNames2(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderContentLeft)
193
- }, isColumnPinned && /* @__PURE__ */ React4.createElement(Pin, {
194
- className: TableHeaderWithPopover_default.osdkHeaderIcon,
195
- color: "currentColor"
196
- }), /* @__PURE__ */ React4.createElement(TableHeaderContent, {
197
- header
198
- })), /* @__PURE__ */ React4.createElement("div", {
199
- className: classNames2(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderContentRight)
200
- }, isSorted && /* @__PURE__ */ React4.createElement("div", {
201
- className: TableHeaderWithPopover_default.osdkCenterContainer
202
- }, isSorted === "asc" ? /* @__PURE__ */ React4.createElement(SortAlphabetical, {
203
- className: TableHeaderWithPopover_default.osdkHeaderIcon,
204
- color: "currentColor"
205
- }) : /* @__PURE__ */ React4.createElement(SortAlphabeticalDesc, {
206
- className: TableHeaderWithPopover_default.osdkHeaderIcon,
207
- color: "currentColor"
208
- })), /* @__PURE__ */ React4.createElement(Menu.Trigger, {
209
- "aria-label": `Open header menu for column with id=${header.column.id}`,
210
- className: classNames2(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkHeaderPopoverTrigger)
211
- }, /* @__PURE__ */ React4.createElement(ChevronDown, {
212
- className: TableHeaderWithPopover_default.osdkHeaderIcon
213
- }))), /* @__PURE__ */ React4.createElement(Menu.Portal, {
214
- container: document.body
215
- }, /* @__PURE__ */ React4.createElement(Menu.Positioner, {
216
- sideOffset: 4
217
- }, /* @__PURE__ */ React4.createElement(Menu.Popup, {
218
- className: TableHeaderWithPopover_default.osdkHeaderPopup
219
- }, !isColumnPinned && /* @__PURE__ */ React4.createElement(HeaderMenuItem, {
220
- onClick: handlePinLeft,
221
- icon: Pin,
222
- label: "Pin column"
223
- }), isColumnPinned && /* @__PURE__ */ React4.createElement(HeaderMenuItem, {
224
- onClick: handleUnpin,
225
- icon: Unpin,
226
- label: "Unpin Column",
227
- active: true
228
- }), isSortable && /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement(HeaderMenuItem, {
229
- onClick: handleSortAscending,
230
- icon: SortAlphabetical,
231
- label: "Sort ascending",
232
- active: isSorted === "asc"
233
- }), /* @__PURE__ */ React4.createElement(HeaderMenuItem, {
234
- onClick: handleSortDescending,
235
- icon: SortAlphabeticalDesc,
236
- label: "Sort descending",
237
- active: isSorted === "desc"
238
- })), !!isSorted && /* @__PURE__ */ React4.createElement(HeaderMenuItem, {
239
- onClick: handleClearAllSorts,
240
- icon: Remove,
241
- label: "Clear all sorts"
242
- }), /* @__PURE__ */ React4.createElement(HeaderMenuItem, {
243
- onClick: handleResetSize,
244
- icon: VerticalDistribution,
245
- label: "Reset Column Size"
246
- }))))));
247
- }
248
- var SELECTION_COLUMN_ID = "__selection__";
249
- function getColumnPinningStyles(column) {
250
- const isPinned = column.getIsPinned();
251
- return {
252
- columnStyles: {
253
- left: isPinned === "left" ? `${column.getStart("left")}px` : void 0,
254
- right: isPinned === "right" ? `${column.getAfter("right")}px` : void 0,
255
- width: column.getSize()
256
- }
257
- };
258
- }
259
- function TableHeader({
260
- table
261
- }) {
262
- const isResizing = !!table.getState().columnSizingInfo?.isResizingColumn;
263
- return /* @__PURE__ */ React5.createElement("thead", {
264
- className: TableHeader_default.osdkTableHeader,
265
- "data-resizing": isResizing
266
- }, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React5.createElement("tr", {
267
- key: headerGroup.id,
268
- className: TableHeader_default.osdkTableHeaderRow
269
- }, headerGroup.headers.map((header) => {
270
- const {
271
- columnStyles
272
- } = getColumnPinningStyles(header.column);
273
- const isColumnPinned = header.column.getIsPinned();
274
- const isSelectColumn = header.id === SELECTION_COLUMN_ID;
275
- return /* @__PURE__ */ React5.createElement("th", {
276
- key: header.id,
277
- "data-pinned": header.column.getIsPinned(),
278
- className: TableHeader_default.osdkTableHeaderCell,
279
- style: columnStyles
280
- }, header.isPlaceholder ? null : isSelectColumn ? /* @__PURE__ */ React5.createElement(TableHeaderContent, {
281
- header
282
- }) : /* @__PURE__ */ React5.createElement(TableHeaderWithPopover, {
283
- header,
284
- isColumnPinned,
285
- setColumnPinning: table.setColumnPinning
286
- }), header.column.getCanResize() && /* @__PURE__ */ React5.createElement("div", {
287
- className: TableHeader_default.osdkTableHeaderResizer,
288
- onDoubleClick: () => header.column.resetSize(),
289
- onMouseDown: header.getResizeHandler(),
290
- onTouchStart: header.getResizeHandler()
291
- }));
292
- }))));
293
- }
294
- var MIN_ROWS = 5;
295
- function LoadingStateTable({
296
- table,
297
- tableContainerRef,
298
- headerGroups,
299
- rowHeight = 40,
300
- columnWidth = 120
301
- }) {
302
- const isSelectionEnabled = table.options.enableRowSelection;
303
- const minHeaderCount = isSelectionEnabled ? 1 : 0;
304
- const headers = headerGroups[0]?.headers ?? [];
305
- const hasHeadersLoaded = headers.length > minHeaderCount;
306
- const headerRef = useRef(null);
307
- const bodyRef = useRef(null);
308
- const [loadingRowCount, setLoadingRowCount] = useState2(MIN_ROWS);
309
- const [loadingColumnCount, setLoadingColumnCount] = useState2(headers.length);
310
- useEffect(() => {
311
- if (hasHeadersLoaded) {
312
- setLoadingColumnCount(headers.length);
313
- } else {
314
- if (tableContainerRef.current) {
315
- const tableWidth = tableContainerRef.current.clientWidth;
316
- if (tableWidth > 0) {
317
- const columnsNeeded = Math.ceil(tableWidth / columnWidth);
318
- setLoadingColumnCount(columnsNeeded);
319
- }
320
- }
321
- }
322
- }, [columnWidth, hasHeadersLoaded, headers, tableContainerRef]);
323
- useEffect(() => {
324
- if (tableContainerRef.current) {
325
- const containerHeight = tableContainerRef.current.clientHeight;
326
- const availableHeight = containerHeight - rowHeight;
327
- if (availableHeight > 0) {
328
- const rowsNeeded = Math.ceil(availableHeight / rowHeight);
329
- setLoadingRowCount(Math.max(rowsNeeded, MIN_ROWS));
330
- }
331
- }
332
- }, [tableContainerRef, rowHeight]);
333
- return /* @__PURE__ */ React6.createElement(React6.Fragment, null, hasHeadersLoaded ? /* @__PURE__ */ React6.createElement(TableHeader, {
334
- table
335
- }) : /* @__PURE__ */ React6.createElement("thead", {
336
- className: TableHeader_default.osdkTableHeader,
337
- ref: headerRef
338
- }, /* @__PURE__ */ React6.createElement("tr", {
339
- className: TableHeader_default.osdkTableHeaderRow
340
- }, Array.from({
341
- length: loadingColumnCount
342
- }).map((_, index) => {
343
- const width = headers.length > index ? headers[index].getSize() : columnWidth;
344
- return /* @__PURE__ */ React6.createElement("th", {
345
- key: `loading-header-${index}`,
346
- className: TableHeader_default.osdkTableHeaderCell,
347
- style: {
348
- width
349
- }
350
- }, /* @__PURE__ */ React6.createElement("div", {
351
- className: classNames3(TableHeader_default.osdkLoadingHeaderCell, LoadingCell_default.osdkCellSkeleton)
352
- }));
353
- }))), /* @__PURE__ */ React6.createElement("tbody", {
354
- className: TableBody_default.osdkTableBody,
355
- ref: bodyRef
356
- }, Array.from({
357
- length: loadingRowCount
358
- }).map((_, index) => /* @__PURE__ */ React6.createElement(LoadingRow, {
359
- key: `skeleton-${index}`,
360
- columnCount: loadingColumnCount,
361
- headers,
362
- translateY: rowHeight * index,
363
- rowHeight,
364
- columnWidth
365
- }))));
366
- }
367
-
368
- // build/browser/object-table/NonIdealState.js
369
- import React7 from "react";
370
- var css8 = '/*\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\n.container {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 80px;\n}\n\n.message {\n color: var(--osdk-typography-color-muted);\n}\n';
371
- if (typeof document !== "undefined") {
372
- const style = document.createElement("style");
373
- style.textContent = css8;
374
- document.head.appendChild(style);
375
- }
376
- var NonIdealState_default = { "container": "container", "message": "message" };
377
- function NonIdealState({
378
- message
379
- }) {
380
- return /* @__PURE__ */ React7.createElement("div", {
381
- className: NonIdealState_default.container
382
- }, /* @__PURE__ */ React7.createElement("div", {
383
- className: NonIdealState_default.message
384
- }, message));
385
- }
386
-
387
- // build/browser/object-table/Table.module.css
388
- var css9 = '/*\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\n.osdkTableContainer {\n position: relative; /* needed for sticky header */\n height: 100%;\n width: 100%;\n overflow: auto;\n}\n';
389
- if (typeof document !== "undefined") {
390
- const style = document.createElement("style");
391
- style.textContent = css9;
392
- document.head.appendChild(style);
393
- }
394
- var Table_default = { "osdkTableContainer": "osdkTableContainer" };
395
-
396
- // build/browser/object-table/TableBody.js
397
- import { useVirtualizer } from "@tanstack/react-virtual";
398
- import React12, { useLayoutEffect } from "react";
399
-
400
- // build/browser/object-table/LoadingRow.js
401
- import React22 from "react";
402
- import classNames4 from "classnames";
403
- import React8 from "react";
404
- var css10 = '/*\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\n.osdkLoadingCell {\n height: var(--osdk-table-cell-fontSize);\n border-radius: calc(var(--osdk-surface-border-radius) * 0.5);\n flex: 1;\n}\n\n/* Blueprint skeleton animation keyframes */\n@keyframes skeleton-glow {\n from {\n background: var(--osdk-table-skeleton-color-from);\n border-color: var(--osdk-table-skeleton-color-from);\n }\n\n to {\n background: var(--osdk-table-skeleton-color-to);\n border-color: var(--osdk-table-skeleton-color-to);\n }\n}\n\n.osdkCellSkeleton {\n animation: 1000ms linear infinite alternate skeleton-glow;\n background: var(--osdk-table-skeleton-color-from);\n background-clip: padding-box;\n border-color: var(--osdk-table-skeleton-color-from);\n border-radius: calc(var(--osdk-surface-border-radius) * 0.5);\n border: 1px solid var(--osdk-table-skeleton-border-color);\n box-shadow: none;\n color: transparent;\n cursor: default;\n pointer-events: none;\n user-select: none;\n}\n';
405
- if (typeof document !== "undefined") {
406
- const style = document.createElement("style");
407
- style.textContent = css10;
408
- document.head.appendChild(style);
409
- }
410
- var LoadingCell_default3 = { "osdkLoadingCell": "osdkLoadingCell", "osdkCellSkeleton": "osdkCellSkeleton" };
411
- var css23 = '/*\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\n.osdkTableCell {\n display: flex;\n align-items: center;\n text-align: left;\n position: relative;\n padding: var(--osdk-table-cell-padding);\n font-size: var(--osdk-table-cell-fontSize);\n color: var(--osdk-table-cell-color);\n background-color: inherit;\n border-right: var(--osdk-table-cell-divider);\n\n &:first-child {\n border-left: var(--osdk-table-border);\n }\n\n &:last-child {\n border-right: var(--osdk-table-border);\n }\n}\n\n.osdkTableCell[data-pinned="left"],\n.osdkTableCell[data-pinned="right"] {\n position: sticky;\n z-index: var(--osdk-surface-z-index-1);\n}\n\n/* Last left-pinned column - no left-pinned siblings after it */\n.osdkTableCell[data-pinned="left"]:not(:has(~ [data-pinned="left"])) {\n border-right: var(--osdk-table-pinned-column-border);\n}\n\n/* First right-pinned column - no right-pinned siblings before it */\n.osdkTableCell[data-pinned="right"]:not(:has(~ [data-pinned="right"]):nth-child(n+2)) {\n border-left: var(--osdk-table-pinned-column-border);\n}\n\n.osdkTableCell:has([role="checkbox"]) {\n justify-content: center;\n}\n\n.osdkTableCellContent:not(:has([role="checkbox"])) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: left;\n}\n';
412
- if (typeof document !== "undefined") {
413
- const style = document.createElement("style");
414
- style.textContent = css23;
415
- document.head.appendChild(style);
416
- }
417
- var TableCell_default2 = { "osdkTableCell": "osdkTableCell", "osdkTableCellContent": "osdkTableCellContent" };
418
- function LoadingCell2({
419
- width
420
- }) {
421
- return /* @__PURE__ */ React8.createElement("td", {
422
- className: TableCell_default2.osdkTableCell,
423
- style: {
424
- width
425
- }
426
- }, /* @__PURE__ */ React8.createElement("div", {
427
- className: classNames4(LoadingCell_default3.osdkLoadingCell, LoadingCell_default3.osdkCellSkeleton)
428
- }));
429
- }
430
- var css32 = '/*\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\n.osdkTableRow {\n position: absolute;\n display: flex;\n background-color: var(--osdk-table-row-bg-default);\n border-top: var(--osdk-table-row-divider);\n border-bottom: var(--osdk-table-border-width) solid transparent;\n\n &:last-child {\n border-bottom: var(--osdk-table-border);\n }\n\n /* Zebra rows */\n &:nth-child(even) {\n background-color: var(\n --osdk-table-row-bg-alternate,\n var(--osdk-table-row-bg-default)\n );\n }\n\n &:hover {\n z-index: 1;\n background-color: var(\n --osdk-table-row-bg-hover,\n var(--osdk-surface-background-color-default-hover)\n );\n border-top-color: var(--osdk-table-row-border-color-hover);\n border-bottom-color: var(--osdk-table-row-border-color-hover);\n }\n\n &[data-selected="true"] {\n z-index: 2;\n background-color: var(--osdk-table-row-bg-active);\n border-top-color: var(--osdk-table-row-border-color-active);\n border-bottom-color: var(--osdk-table-row-border-color-active);\n }\n\n &[data-selected="true"] + &[data-selected="true"] {\n border-top-color: transparent;\n }\n\n &[data-selected="true"]:has(+ &[data-selected="true"]) {\n border-bottom-color: transparent;\n }\n}\n';
431
- if (typeof document !== "undefined") {
432
- const style = document.createElement("style");
433
- style.textContent = css32;
434
- document.head.appendChild(style);
435
- }
436
- var TableRow_default2 = { "osdkTableRow": "osdkTableRow" };
437
- function LoadingRow2({
438
- headers,
439
- columnCount,
440
- translateY,
441
- rowHeight = 40,
442
- columnWidth = 80
443
- }) {
444
- return /* @__PURE__ */ React22.createElement("tr", {
445
- className: TableRow_default2.osdkTableRow,
446
- style: {
447
- height: `${rowHeight}px`,
448
- transform: `translateY(${translateY}px)`
449
- }
450
- }, /* @__PURE__ */ React22.createElement(React22.Fragment, null, Array.from({
451
- length: columnCount
452
- }).map((_, index) => {
453
- const width = headers.length > index ? headers[index].getSize() : columnWidth;
454
- return /* @__PURE__ */ React22.createElement(LoadingCell2, {
455
- key: `loading-cell-${index}`,
456
- width
457
- });
458
- })));
459
- }
460
-
461
- // build/browser/object-table/TableBody.module.css
462
- var css11 = '/*\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\n.osdkTableBody {\n display: grid;\n position: relative;\n}\n';
463
- if (typeof document !== "undefined") {
464
- const style = document.createElement("style");
465
- style.textContent = css11;
466
- document.head.appendChild(style);
467
- }
468
- var TableBody_default2 = { "osdkTableBody": "osdkTableBody" };
469
-
470
- // build/browser/object-table/TableRow.js
471
- import React11, { useCallback as useCallback3 } from "react";
472
-
473
- // build/browser/object-table/TableCell.js
474
- import { flexRender as flexRender2 } from "@tanstack/react-table";
475
- import React10, { useRef as useRef3 } from "react";
476
-
477
- // build/browser/object-table/CellContextMenu.js
478
- import React9, { useEffect as useEffect2, useRef as useRef2 } from "react";
479
- import { createPortal } from "react-dom";
480
- var css12 = '/*\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\n.osdkCellContextMenu {\n position: fixed;\n z-index: var(--osdk-surface-z-index-2);\n}\n';
481
- if (typeof document !== "undefined") {
482
- const style = document.createElement("style");
483
- style.textContent = css12;
484
- document.head.appendChild(style);
485
- }
486
- var CellContextMenu_default = { "osdkCellContextMenu": "osdkCellContextMenu" };
487
- function CellContextMenu({
488
- cell,
489
- position,
490
- onClose,
491
- renderContent
492
- }) {
493
- const ref = useRef2(null);
494
- useEffect2(() => {
495
- const handleClickOutside = (event) => {
496
- if (ref.current && !ref.current.contains(event.target)) {
497
- onClose();
498
- }
499
- };
500
- document.addEventListener("mousedown", handleClickOutside);
501
- return () => {
502
- document.removeEventListener("mousedown", handleClickOutside);
503
- };
504
- }, [onClose]);
505
- return /* @__PURE__ */ createPortal(/* @__PURE__ */ React9.createElement("div", {
506
- ref,
507
- className: CellContextMenu_default.osdkCellContextMenu,
508
- style: {
509
- left: position.left,
510
- top: position.top,
511
- minWidth: position.width
512
- }
513
- }, renderContent(cell.row.original, cell)), document.body);
514
- }
515
-
516
- // build/browser/object-table/hooks/useCellContextMenu.js
517
- import { useCallback as useCallback2, useState as useState3 } from "react";
518
- var useCellContextMenu = ({
519
- tdRef
520
- }) => {
521
- const [popoverPosition, setPopoverPosition] = useState3(null);
522
- const [isContextMenuOpen, setIsContextMenuOpen] = useState3(false);
523
- const handleOpenContextMenu = useCallback2((event) => {
524
- event.preventDefault();
525
- event.stopPropagation();
526
- if (tdRef.current) {
527
- const rect = tdRef.current.getBoundingClientRect();
528
- const position = {
529
- left: rect.left,
530
- top: rect.bottom,
531
- width: rect.width
532
- };
533
- setPopoverPosition(position);
534
- setIsContextMenuOpen(true);
535
- }
536
- }, [tdRef]);
537
- const handleCloseContextMenu = useCallback2(() => {
538
- setIsContextMenuOpen(false);
539
- setPopoverPosition(null);
540
- }, []);
541
- return {
542
- isContextMenuOpen,
543
- handleOpenContextMenu,
544
- handleCloseContextMenu,
545
- popoverPosition
546
- };
547
- };
548
-
549
- // build/browser/object-table/TableCell.module.css
550
- var css13 = '/*\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\n.osdkTableCell {\n display: flex;\n align-items: center;\n text-align: left;\n position: relative;\n padding: var(--osdk-table-cell-padding);\n font-size: var(--osdk-table-cell-fontSize);\n color: var(--osdk-table-cell-color);\n background-color: inherit;\n border-right: var(--osdk-table-cell-divider);\n\n &:first-child {\n border-left: var(--osdk-table-border);\n }\n\n &:last-child {\n border-right: var(--osdk-table-border);\n }\n}\n\n.osdkTableCell[data-pinned="left"],\n.osdkTableCell[data-pinned="right"] {\n position: sticky;\n z-index: var(--osdk-surface-z-index-1);\n}\n\n/* Last left-pinned column - no left-pinned siblings after it */\n.osdkTableCell[data-pinned="left"]:not(:has(~ [data-pinned="left"])) {\n border-right: var(--osdk-table-pinned-column-border);\n}\n\n/* First right-pinned column - no right-pinned siblings before it */\n.osdkTableCell[data-pinned="right"]:not(:has(~ [data-pinned="right"]):nth-child(n+2)) {\n border-left: var(--osdk-table-pinned-column-border);\n}\n\n.osdkTableCell:has([role="checkbox"]) {\n justify-content: center;\n}\n\n.osdkTableCellContent:not(:has([role="checkbox"])) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: left;\n}\n';
551
- if (typeof document !== "undefined") {
552
- const style = document.createElement("style");
553
- style.textContent = css13;
554
- document.head.appendChild(style);
555
- }
556
- var TableCell_default3 = { "osdkTableCell": "osdkTableCell", "osdkTableCellContent": "osdkTableCellContent" };
557
-
558
- // build/browser/object-table/utils/constants.js
559
- var SELECTION_COLUMN_ID2 = "__selection__";
560
-
561
- // build/browser/object-table/utils/getColumnPinningStyles.js
562
- function getColumnPinningStyles2(column) {
563
- const isPinned = column.getIsPinned();
564
- return {
565
- columnStyles: {
566
- left: isPinned === "left" ? `${column.getStart("left")}px` : void 0,
567
- right: isPinned === "right" ? `${column.getAfter("right")}px` : void 0,
568
- width: column.getSize()
569
- }
570
- };
571
- }
572
-
573
- // build/browser/object-table/TableCell.js
574
- function TableCell({
575
- cell,
576
- renderCellContextMenu
577
- }) {
578
- const tdRef = useRef3(null);
579
- const isSelectColumn = cell.column.id === SELECTION_COLUMN_ID2;
580
- const {
581
- isContextMenuOpen,
582
- handleOpenContextMenu,
583
- handleCloseContextMenu,
584
- popoverPosition
585
- } = useCellContextMenu({
586
- tdRef
587
- });
588
- const {
589
- columnStyles
590
- } = getColumnPinningStyles2(cell.column);
591
- return /* @__PURE__ */ React10.createElement(React10.Fragment, null, /* @__PURE__ */ React10.createElement("td", {
592
- ref: tdRef,
593
- "data-pinned": cell.column.getIsPinned(),
594
- className: TableCell_default3.osdkTableCell,
595
- style: columnStyles,
596
- onContextMenu: handleOpenContextMenu
597
- }, /* @__PURE__ */ React10.createElement("div", {
598
- className: TableCell_default3.osdkTableCellContent
599
- }, flexRender2(cell.column.columnDef.cell, cell.getContext()))), !isSelectColumn && isContextMenuOpen && !!popoverPosition && !!renderCellContextMenu && /* @__PURE__ */ React10.createElement(CellContextMenu, {
600
- cell,
601
- position: popoverPosition,
602
- onClose: handleCloseContextMenu,
603
- renderContent: renderCellContextMenu
604
- }));
605
- }
606
-
607
- // build/browser/object-table/TableRow.module.css
608
- var css14 = '/*\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\n.osdkTableRow {\n position: absolute;\n display: flex;\n background-color: var(--osdk-table-row-bg-default);\n border-top: var(--osdk-table-row-divider);\n border-bottom: var(--osdk-table-border-width) solid transparent;\n\n &:last-child {\n border-bottom: var(--osdk-table-border);\n }\n\n /* Zebra rows */\n &:nth-child(even) {\n background-color: var(\n --osdk-table-row-bg-alternate,\n var(--osdk-table-row-bg-default)\n );\n }\n\n &:hover {\n z-index: 1;\n background-color: var(\n --osdk-table-row-bg-hover,\n var(--osdk-surface-background-color-default-hover)\n );\n border-top-color: var(--osdk-table-row-border-color-hover);\n border-bottom-color: var(--osdk-table-row-border-color-hover);\n }\n\n &[data-selected="true"] {\n z-index: 2;\n background-color: var(--osdk-table-row-bg-active);\n border-top-color: var(--osdk-table-row-border-color-active);\n border-bottom-color: var(--osdk-table-row-border-color-active);\n }\n\n &[data-selected="true"] + &[data-selected="true"] {\n border-top-color: transparent;\n }\n\n &[data-selected="true"]:has(+ &[data-selected="true"]) {\n border-bottom-color: transparent;\n }\n}\n';
609
- if (typeof document !== "undefined") {
610
- const style = document.createElement("style");
611
- style.textContent = css14;
612
- document.head.appendChild(style);
613
- }
614
- var TableRow_default3 = { "osdkTableRow": "osdkTableRow" };
615
-
616
- // build/browser/object-table/TableRow.js
617
- function TableRow({
618
- row,
619
- virtualRow,
620
- onRowClick,
621
- renderCellContextMenu
622
- }) {
623
- const handleClick = useCallback3(() => {
624
- onRowClick?.(row.original);
625
- }, [onRowClick, row.original]);
626
- return /* @__PURE__ */ React11.createElement("tr", {
627
- "data-selected": row.getIsSelected(),
628
- className: TableRow_default3.osdkTableRow,
629
- style: {
630
- height: `${virtualRow.size}px`,
631
- transform: `translateY(${virtualRow.start}px)`
632
- },
633
- onClick: handleClick
634
- }, row.getVisibleCells().map((cell) => /* @__PURE__ */ React11.createElement(TableCell, {
635
- key: cell.id,
636
- cell,
637
- renderCellContextMenu
638
- })));
639
- }
640
-
641
- // build/browser/object-table/TableBody.js
642
- function TableBody({
643
- rows,
644
- tableContainerRef,
645
- onRowClick,
646
- renderCellContextMenu,
647
- rowHeight = 40,
648
- isLoadingMore = false,
649
- headerGroups = []
650
- }) {
651
- const rowVirtualizer = useVirtualizer({
652
- count: rows.length,
653
- estimateSize: () => rowHeight,
654
- getScrollElement: () => tableContainerRef.current,
655
- overscan: 5
656
- });
657
- useLayoutEffect(() => {
658
- rowVirtualizer.measure();
659
- }, [rowVirtualizer, rows.length]);
660
- const totalSize = rowVirtualizer.getTotalSize();
661
- const bodyHeight = isLoadingMore ? totalSize + rowHeight : totalSize;
662
- const headers = headerGroups[0]?.headers ?? [];
663
- return /* @__PURE__ */ React12.createElement("tbody", {
664
- className: TableBody_default2.osdkTableBody,
665
- style: {
666
- height: `${bodyHeight}px`
667
- }
668
- }, rowVirtualizer.getVirtualItems().map((virtualRow) => {
669
- const row = rows[virtualRow.index];
670
- return /* @__PURE__ */ React12.createElement(TableRow, {
671
- key: row.id,
672
- row,
673
- virtualRow,
674
- onRowClick,
675
- renderCellContextMenu
676
- });
677
- }), isLoadingMore && /* @__PURE__ */ React12.createElement(LoadingRow2, {
678
- headers,
679
- translateY: totalSize,
680
- rowHeight,
681
- columnCount: headers.length
682
- }));
683
- }
684
-
685
- // build/browser/object-table/TableHeader.js
686
- import React15 from "react";
687
-
688
- // build/browser/object-table/TableHeader.module.css
689
- var css15 = '/*\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\n.osdkTableHeader {\n display: grid;\n position: sticky;\n top: 0;\n z-index: var(--osdk-surface-z-index-1);\n background-color: var(--osdk-table-header-bg);\n}\n\n.osdkTableHeader[data-resizing="true"] {\n cursor: col-resize;\n user-select: none;\n}\n\n.osdkTableHeaderRow {\n display: flex;\n}\n\n.osdkTableHeaderCell {\n display: flex;\n align-items: center;\n text-align: left;\n position: relative;\n padding: var(--osdk-table-cell-padding);\n font-weight: var(--osdk-table-header-fontWeight);\n font-size: var(--osdk-table-header-fontSize);\n color: var(--osdk-table-header-color);\n border-top: var(--osdk-table-border);\n border-right: var(--osdk-table-header-divider);\n background-color: inherit;\n\n &:first-child {\n border-left: var(--osdk-table-border);\n }\n\n &:last-child {\n border-right: var(--osdk-table-border);\n }\n}\n\n.osdkTableHeaderCell[data-pinned="left"],\n.osdkTableHeaderCell[data-pinned="right"] {\n position: sticky;\n z-index: var(--osdk-surface-z-index-2);\n}\n\n/* Last left-pinned column - no left-pinned siblings after it */\n.osdkTableHeaderCell[data-pinned="left"]:not(:has(~ [data-pinned="left"])) {\n border-right: var(--osdk-table-pinned-column-border);\n}\n\n/* First right-pinned column - no right-pinned siblings before it */\n.osdkTableHeaderCell[data-pinned="right"]:not(\n :has(~ [data-pinned="right"]):nth-child(n + 2)\n ) {\n border-left: var(--osdk-table-pinned-column-border);\n}\n\n.osdkTableHeaderCell:has([role="checkbox"]) {\n justify-content: center;\n}\n\n.osdkTableHeaderResizer {\n background: none;\n cursor: col-resize;\n height: 100%;\n position: absolute;\n right: calc(-1 * var(--osdk-table-border-width));\n top: 0;\n touch-action: none;\n width: 3px;\n z-index: var(--osdk-surface-z-index-2);\n\n &:hover {\n background: var(--osdk-intent-primary-hover);\n }\n\n &:active {\n background: var(--osdk-intent-primary-active);\n }\n}\n\n.osdkLoadingHeaderCell {\n height: var(--osdk-table-header-fontSize);\n flex: 1;\n}\n';
690
- if (typeof document !== "undefined") {
691
- const style = document.createElement("style");
692
- style.textContent = css15;
693
- document.head.appendChild(style);
694
- }
695
- var TableHeader_default2 = { "osdkTableHeader": "osdkTableHeader", "osdkTableHeaderRow": "osdkTableHeaderRow", "osdkTableHeaderCell": "osdkTableHeaderCell", "osdkTableHeaderResizer": "osdkTableHeaderResizer", "osdkLoadingHeaderCell": "osdkLoadingHeaderCell" };
696
-
697
- // build/browser/object-table/TableHeaderContent.js
698
- import { flexRender as flexRender3 } from "@tanstack/react-table";
699
- import React13 from "react";
700
-
701
- // build/browser/object-table/TableHeaderContent.module.css
702
- var css16 = '/*\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\n.osdkHeaderContent {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.osdkHeaderContent:has([role="checkbox"]) {\n display: flex;\n justify-content: center;\n}\n';
703
- if (typeof document !== "undefined") {
704
- const style = document.createElement("style");
705
- style.textContent = css16;
706
- document.head.appendChild(style);
707
- }
708
- var TableHeaderContent_default2 = { "osdkHeaderContent": "osdkHeaderContent" };
709
-
710
- // build/browser/object-table/TableHeaderContent.js
711
- function TableHeaderContent2({
712
- header
713
- }) {
714
- return /* @__PURE__ */ React13.createElement("div", {
715
- className: TableHeaderContent_default2.osdkHeaderContent
716
- }, flexRender3(header.column.columnDef.header, header.getContext()));
717
- }
718
-
719
- // build/browser/object-table/TableHeaderWithPopover.js
720
- import { Menu as Menu2 } from "@base-ui/react/menu";
721
- import { ChevronDown as ChevronDown2, Pin as Pin2, Remove as Remove2, SortAlphabetical as SortAlphabetical2, SortAlphabeticalDesc as SortAlphabeticalDesc2, Unpin as Unpin2, VerticalDistribution as VerticalDistribution2 } from "@blueprintjs/icons";
722
- import classNames5 from "classnames";
723
- import React14, { useCallback as useCallback4, useState as useState4 } from "react";
724
-
725
- // build/browser/object-table/TableHeaderWithPopover.module.css
726
- var css17 = '/*\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\n.osdkCenterContainer {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.osdkContentGap {\n display: flex;\n gap: var(--osdk-surface-spacing);\n}\n\n.osdkHeaderContainer {\n justify-content: space-between;\n flex: 1;\n min-width: 0;\n align-self: stretch;\n}\n\n.osdkHeaderContentLeft {\n min-width: 0;\n flex-shrink: 1;\n}\n\n.osdkHeaderContentRight {\n flex-shrink: 0;\n}\n\n.osdkHeaderPopoverTrigger {\n padding: 0;\n flex-shrink: 0;\n flex-grow: 0;\n border: var(--osdk-surface-border-width) solid\n var(--osdk-surface-border-color-default);\n border-radius: var(--osdk-surface-border-radius);\n color: var(--osdk-intent-default-foreground);\n user-select: none;\n outline: none;\n\n &:hover {\n background-color: var(--osdk-intent-default-hover);\n }\n\n &[data-popup-open] {\n background-color: var(--osdk-intent-primary-rest);\n }\n\n &:focus-visible {\n outline: var(--osdk-focus-visible-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n }\n}\n\n.osdkHeaderIcon {\n width: var(--osdk-iconography-size-small);\n height: var(--osdk-iconography-size-small);\n}\n\n.osdkHeaderPopup {\n box-sizing: border-box;\n padding: var(--osdk-surface-spacing);\n border-radius: var(--osdk-surface-border-radius);\n border: var(--osdk-surface-border-width) solid\n var(--osdk-surface-border-color-default);\n background-color: var(--osdk-surface-background-color-default);\n color: var(--osdk-typography-color-default-rest);\n box-shadow: var(--osdk-surface-shadow-2);\n font-size: var(--osdk-typography-size-body-medium);\n outline: none;\n}\n\n.osdkHeaderMenuItem {\n justify-content: flex-start;\n padding: var(--osdk-surface-spacing);\n cursor: pointer;\n}\n\n.osdkHeaderMenuItem:hover {\n outline: none;\n background-color: var(--osdk-surface-background-color-default-hover);\n border-radius: var(--osdk-surface-border-radius);\n}\n\n.osdkHeaderActiveMenuItem {\n background-color: var(--osdk-intent-primary-rest);\n color: var(--osdk-intent-primary-foreground);\n}\n\n.osdkHeaderActiveMenuItem:hover {\n background-color: var(--osdk-intent-primary-hover);\n}\n\n.osdkHeaderActiveMenuItem:active {\n background-color: var(--osdk-intent-primary-active);\n}\n';
727
- if (typeof document !== "undefined") {
728
- const style = document.createElement("style");
729
- style.textContent = css17;
730
- document.head.appendChild(style);
731
- }
732
- var TableHeaderWithPopover_default2 = { "osdkCenterContainer": "osdkCenterContainer", "osdkContentGap": "osdkContentGap", "osdkHeaderContainer": "osdkHeaderContainer", "osdkHeaderContentLeft": "osdkHeaderContentLeft", "osdkHeaderContentRight": "osdkHeaderContentRight", "osdkHeaderPopoverTrigger": "osdkHeaderPopoverTrigger", "osdkHeaderIcon": "osdkHeaderIcon", "osdkHeaderPopup": "osdkHeaderPopup", "osdkHeaderMenuItem": "osdkHeaderMenuItem", "osdkHeaderActiveMenuItem": "osdkHeaderActiveMenuItem" };
733
-
734
- // build/browser/object-table/TableHeaderWithPopover.js
735
- function HeaderMenuItem2({
736
- onClick,
737
- icon: Icon,
738
- label,
739
- active = false
740
- }) {
741
- return /* @__PURE__ */ React14.createElement(Menu2.Item, {
742
- closeOnClick: true,
743
- className: classNames5(TableHeaderWithPopover_default2.osdkCenterContainer, TableHeaderWithPopover_default2.osdkContentGap, TableHeaderWithPopover_default2.osdkHeaderMenuItem, active && TableHeaderWithPopover_default2.osdkHeaderActiveMenuItem),
744
- onClick
745
- }, /* @__PURE__ */ React14.createElement(Icon, {
746
- className: TableHeaderWithPopover_default2.osdkHeaderIcon,
747
- color: "currentColor"
748
- }), /* @__PURE__ */ React14.createElement("span", null, label));
749
- }
750
- function TableHeaderWithPopover2({
751
- header,
752
- isColumnPinned,
753
- setColumnPinning,
754
- onSortChange,
755
- onResetSize
756
- }) {
757
- const [isOpen, setIsOpen] = useState4(false);
758
- const handlePinLeft = useCallback4(() => {
759
- setColumnPinning((prev) => {
760
- return {
761
- left: [...prev.left || [], header.column.id],
762
- right: prev.right?.filter((id) => id !== header.column.id) || []
763
- };
764
- });
765
- }, [header.column.id, setColumnPinning]);
766
- const handleUnpin = useCallback4(() => {
767
- setColumnPinning((prev) => {
768
- return {
769
- left: prev.left?.filter((id) => id !== header.column.id) || [],
770
- right: prev.right?.filter((id) => id !== header.column.id) || []
771
- };
772
- });
773
- }, [header.column.id, setColumnPinning]);
774
- const handleSortAscending = useCallback4(() => {
775
- header.column.toggleSorting(false);
776
- onSortChange?.([{
777
- id: header.column.id,
778
- desc: false
779
- }]);
780
- }, [header.column, onSortChange]);
781
- const handleSortDescending = useCallback4(() => {
782
- header.column.toggleSorting(true);
783
- onSortChange?.([{
784
- id: header.column.id,
785
- desc: true
786
- }]);
787
- }, [header.column, onSortChange]);
788
- const handleClearAllSorts = useCallback4(() => {
789
- header.column.clearSorting();
790
- onSortChange?.([]);
791
- }, [header.column, onSortChange]);
792
- const handleResetSize = useCallback4(() => {
793
- header.column.resetSize();
794
- if (onResetSize) {
795
- onResetSize();
796
- }
797
- }, [header.column, onResetSize]);
798
- const handleInteraction = useCallback4((e) => {
799
- e.preventDefault();
800
- setIsOpen((prev) => !prev);
801
- }, []);
802
- const isSorted = header.column.getIsSorted();
803
- const isSortable = header.column.getCanSort();
804
- return /* @__PURE__ */ React14.createElement(Menu2.Root, {
805
- open: isOpen,
806
- onOpenChange: setIsOpen
807
- }, /* @__PURE__ */ React14.createElement("div", {
808
- className: classNames5(TableHeaderWithPopover_default2.osdkCenterContainer, TableHeaderWithPopover_default2.osdkContentGap, TableHeaderWithPopover_default2.osdkHeaderContainer),
809
- onContextMenu: handleInteraction
810
- }, /* @__PURE__ */ React14.createElement("div", {
811
- className: classNames5(TableHeaderWithPopover_default2.osdkCenterContainer, TableHeaderWithPopover_default2.osdkContentGap, TableHeaderWithPopover_default2.osdkHeaderContentLeft)
812
- }, isColumnPinned && /* @__PURE__ */ React14.createElement(Pin2, {
813
- className: TableHeaderWithPopover_default2.osdkHeaderIcon,
814
- color: "currentColor"
815
- }), /* @__PURE__ */ React14.createElement(TableHeaderContent2, {
816
- header
817
- })), /* @__PURE__ */ React14.createElement("div", {
818
- className: classNames5(TableHeaderWithPopover_default2.osdkCenterContainer, TableHeaderWithPopover_default2.osdkContentGap, TableHeaderWithPopover_default2.osdkHeaderContentRight)
819
- }, isSorted && /* @__PURE__ */ React14.createElement("div", {
820
- className: TableHeaderWithPopover_default2.osdkCenterContainer
821
- }, isSorted === "asc" ? /* @__PURE__ */ React14.createElement(SortAlphabetical2, {
822
- className: TableHeaderWithPopover_default2.osdkHeaderIcon,
823
- color: "currentColor"
824
- }) : /* @__PURE__ */ React14.createElement(SortAlphabeticalDesc2, {
825
- className: TableHeaderWithPopover_default2.osdkHeaderIcon,
826
- color: "currentColor"
827
- })), /* @__PURE__ */ React14.createElement(Menu2.Trigger, {
828
- "aria-label": `Open header menu for column with id=${header.column.id}`,
829
- className: classNames5(TableHeaderWithPopover_default2.osdkCenterContainer, TableHeaderWithPopover_default2.osdkHeaderPopoverTrigger)
830
- }, /* @__PURE__ */ React14.createElement(ChevronDown2, {
831
- className: TableHeaderWithPopover_default2.osdkHeaderIcon
832
- }))), /* @__PURE__ */ React14.createElement(Menu2.Portal, {
833
- container: document.body
834
- }, /* @__PURE__ */ React14.createElement(Menu2.Positioner, {
835
- sideOffset: 4
836
- }, /* @__PURE__ */ React14.createElement(Menu2.Popup, {
837
- className: TableHeaderWithPopover_default2.osdkHeaderPopup
838
- }, !isColumnPinned && /* @__PURE__ */ React14.createElement(HeaderMenuItem2, {
839
- onClick: handlePinLeft,
840
- icon: Pin2,
841
- label: "Pin column"
842
- }), isColumnPinned && /* @__PURE__ */ React14.createElement(HeaderMenuItem2, {
843
- onClick: handleUnpin,
844
- icon: Unpin2,
845
- label: "Unpin Column",
846
- active: true
847
- }), isSortable && /* @__PURE__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement(HeaderMenuItem2, {
848
- onClick: handleSortAscending,
849
- icon: SortAlphabetical2,
850
- label: "Sort ascending",
851
- active: isSorted === "asc"
852
- }), /* @__PURE__ */ React14.createElement(HeaderMenuItem2, {
853
- onClick: handleSortDescending,
854
- icon: SortAlphabeticalDesc2,
855
- label: "Sort descending",
856
- active: isSorted === "desc"
857
- })), !!isSorted && /* @__PURE__ */ React14.createElement(HeaderMenuItem2, {
858
- onClick: handleClearAllSorts,
859
- icon: Remove2,
860
- label: "Clear all sorts"
861
- }), /* @__PURE__ */ React14.createElement(HeaderMenuItem2, {
862
- onClick: handleResetSize,
863
- icon: VerticalDistribution2,
864
- label: "Reset Column Size"
865
- }))))));
866
- }
867
-
868
- // build/browser/object-table/TableHeader.js
869
- function TableHeader2({
870
- table
871
- }) {
872
- const isResizing = !!table.getState().columnSizingInfo?.isResizingColumn;
873
- return /* @__PURE__ */ React15.createElement("thead", {
874
- className: TableHeader_default2.osdkTableHeader,
875
- "data-resizing": isResizing
876
- }, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React15.createElement("tr", {
877
- key: headerGroup.id,
878
- className: TableHeader_default2.osdkTableHeaderRow
879
- }, headerGroup.headers.map((header) => {
880
- const {
881
- columnStyles
882
- } = getColumnPinningStyles2(header.column);
883
- const isColumnPinned = header.column.getIsPinned();
884
- const isSelectColumn = header.id === SELECTION_COLUMN_ID2;
885
- return /* @__PURE__ */ React15.createElement("th", {
886
- key: header.id,
887
- "data-pinned": header.column.getIsPinned(),
888
- className: TableHeader_default2.osdkTableHeaderCell,
889
- style: columnStyles
890
- }, header.isPlaceholder ? null : isSelectColumn ? /* @__PURE__ */ React15.createElement(TableHeaderContent2, {
891
- header
892
- }) : /* @__PURE__ */ React15.createElement(TableHeaderWithPopover2, {
893
- header,
894
- isColumnPinned,
895
- setColumnPinning: table.setColumnPinning
896
- }), header.column.getCanResize() && /* @__PURE__ */ React15.createElement("div", {
897
- className: TableHeader_default2.osdkTableHeaderResizer,
898
- onDoubleClick: () => header.column.resetSize(),
899
- onMouseDown: header.getResizeHandler(),
900
- onTouchStart: header.getResizeHandler()
901
- }));
902
- }))));
903
- }
904
-
905
- // build/browser/object-table/Table.js
906
- function BaseTable({
18
+ import React, { useCallback, useEffect, useRef, useState } from "react";
19
+ import { ActionButton } from "../base-components/action-button/ActionButton.js";
20
+ import { LoadingStateTable } from "./LoadingStateTable.js";
21
+ import { NonIdealState } from "./NonIdealState.js";
22
+ import styles from "./Table.module.css.js";
23
+ import { TableBody } from "./TableBody.js";
24
+ import { TableHeader } from "./TableHeader.js";
25
+ export function BaseTable({
907
26
  table,
908
27
  isLoading,
909
28
  fetchNextPage,
@@ -911,17 +30,21 @@ function BaseTable({
911
30
  rowHeight,
912
31
  renderCellContextMenu,
913
32
  className,
914
- error
33
+ error,
34
+ headerMenuFeatureFlags,
35
+ editableConfig
915
36
  }) {
916
- const tableContainerRef = useRef4(null);
917
- const [isLoadingMore, setIsLoadingMore] = useState5(false);
918
- const fetchingRef = useRef4(false);
919
- useEffect3(() => {
37
+ const tableContainerRef = useRef(null);
38
+ const [isLoadingMore, setIsLoadingMore] = useState(false);
39
+
40
+ // Using a ref to prevent duplicate fetches from rapid scroll events while a fetch is in-flight
41
+ const fetchingRef = useRef(false);
42
+ useEffect(() => {
920
43
  if (!isLoading || fetchNextPage == null) {
921
44
  setIsLoadingMore(false);
922
45
  }
923
46
  }, [isLoading, fetchNextPage]);
924
- const fetchMoreOnEndReached = useCallback5(async (containerRefElement) => {
47
+ const fetchMoreOnEndReached = useCallback(async containerRefElement => {
925
48
  if (containerRefElement && !fetchingRef.current && !isLoadingMore) {
926
49
  const {
927
50
  scrollHeight,
@@ -939,37 +62,49 @@ function BaseTable({
939
62
  }
940
63
  }
941
64
  }, [fetchNextPage, isLoading, isLoadingMore]);
942
- const handleScroll = useCallback5(async (e) => {
65
+ const handleScroll = useCallback(async e => {
943
66
  await fetchMoreOnEndReached(e.currentTarget);
944
67
  }, [fetchMoreOnEndReached]);
945
68
  const rows = table.getRowModel().rows;
946
69
  const headerGroups = table.getHeaderGroups();
947
70
  const hasData = rows.length > 0;
948
- return /* @__PURE__ */ React16.createElement("div", {
71
+ const hasEdits = Object.keys(editableConfig?.cellEdits ?? {}).length > 0;
72
+ const handleSubmitEdits = useCallback(async () => {
73
+ await editableConfig?.onSubmitEdits?.();
74
+ editableConfig?.clearEdits?.();
75
+ }, [editableConfig]);
76
+ return /*#__PURE__*/React.createElement("div", {
77
+ className: classNames(styles.osdkTableWrapper, className)
78
+ }, /*#__PURE__*/React.createElement("div", {
949
79
  ref: tableContainerRef,
950
- className: classNames6(Table_default.osdkTableContainer, className),
80
+ className: classNames(styles.osdkTableContainer, editableConfig && styles.osdkTableContainerWithButton),
951
81
  onScroll: handleScroll
952
- }, /* @__PURE__ */ React16.createElement("table", null, isLoading && !hasData ? /* @__PURE__ */ React16.createElement(LoadingStateTable, {
953
- table,
954
- headerGroups,
955
- rowHeight,
956
- tableContainerRef
957
- }) : /* @__PURE__ */ React16.createElement(React16.Fragment, null, /* @__PURE__ */ React16.createElement(TableHeader2, {
958
- table
959
- }), !hasData && error == null ? /* @__PURE__ */ React16.createElement(NonIdealState, {
82
+ }, /*#__PURE__*/React.createElement("table", null, isLoading && !hasData ? /*#__PURE__*/React.createElement(LoadingStateTable, {
83
+ table: table,
84
+ headerGroups: headerGroups,
85
+ rowHeight: rowHeight,
86
+ tableContainerRef: tableContainerRef
87
+ }) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TableHeader, {
88
+ table: table,
89
+ headerMenuFeatureFlags: headerMenuFeatureFlags
90
+ }), /*#__PURE__*/React.createElement(TableBody, {
91
+ rows: rows,
92
+ tableContainerRef: tableContainerRef,
93
+ onRowClick: onRowClick,
94
+ rowHeight: rowHeight,
95
+ renderCellContextMenu: renderCellContextMenu,
96
+ isLoadingMore: isLoadingMore,
97
+ headerGroups: headerGroups
98
+ }))), !hasData && error == null && /*#__PURE__*/React.createElement(NonIdealState, {
960
99
  message: "No Data"
961
- }) : /* @__PURE__ */ React16.createElement(TableBody, {
962
- rows,
963
- tableContainerRef,
964
- onRowClick,
965
- rowHeight,
966
- renderCellContextMenu,
967
- isLoadingMore,
968
- headerGroups
969
- })), error != null && /* @__PURE__ */ React16.createElement(NonIdealState, {
100
+ }), error != null && /*#__PURE__*/React.createElement(NonIdealState, {
970
101
  message: `Error Loading Data: ${error.message}`
971
- })));
972
- }
973
- export {
974
- BaseTable
975
- };
102
+ })), editableConfig && /*#__PURE__*/React.createElement("div", {
103
+ className: styles.submitButtonContainer
104
+ }, /*#__PURE__*/React.createElement(ActionButton, {
105
+ variant: "primary",
106
+ onClick: handleSubmitEdits,
107
+ disabled: !hasEdits
108
+ }, "Submit Edits")));
109
+ }
110
+ //# sourceMappingURL=Table.js.map