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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (976) hide show
  1. package/AGENTS.md +105 -0
  2. package/CHANGELOG.md +245 -0
  3. package/README.md +129 -24
  4. package/build/browser/action-form/ActionForm.js +113 -0
  5. package/build/browser/action-form/ActionForm.js.map +1 -0
  6. package/build/browser/action-form/ActionFormApi.js.map +1 -1
  7. package/build/browser/action-form/BaseForm.js +70 -0
  8. package/build/browser/action-form/BaseForm.js.map +1 -0
  9. package/build/browser/action-form/FormFieldApi.js.map +1 -1
  10. package/build/browser/action-form/fields/DropdownField.js +104 -0
  11. package/build/browser/action-form/fields/DropdownField.js.map +1 -0
  12. package/build/browser/action-form/fields/FieldBridge.js +45 -0
  13. package/build/browser/action-form/fields/FieldBridge.js.map +1 -0
  14. package/build/browser/action-form/fields/FormFieldRenderer.js +79 -0
  15. package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -0
  16. package/build/browser/action-form/fields/TextInputField.js +37 -0
  17. package/build/browser/action-form/fields/TextInputField.js.map +1 -0
  18. package/build/browser/action-form/utils/coerceFieldValue.js +93 -0
  19. package/build/browser/action-form/utils/coerceFieldValue.js.map +1 -0
  20. package/build/browser/action-form/utils/getDefaultFieldComponent.js +56 -0
  21. package/build/browser/action-form/utils/getDefaultFieldComponent.js.map +1 -0
  22. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js +33 -0
  23. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js.map +1 -0
  24. package/build/browser/base-components/action-button/ActionButton.js +31 -0
  25. package/build/browser/base-components/action-button/ActionButton.js.map +1 -0
  26. package/build/browser/base-components/action-button/ActionButton.module.css +66 -0
  27. package/build/browser/base-components/action-button/ActionButton.module.css.js +8 -0
  28. package/build/browser/base-components/checkbox/Checkbox.module.css +1 -5
  29. package/build/browser/base-components/combobox/Combobox.js +146 -0
  30. package/build/browser/base-components/combobox/Combobox.js.map +1 -0
  31. package/build/browser/base-components/combobox/Combobox.module.css +357 -0
  32. package/build/browser/base-components/combobox/Combobox.module.css.js +17 -0
  33. package/build/browser/base-components/dialog/Dialog.js +52 -0
  34. package/build/browser/base-components/dialog/Dialog.js.map +1 -0
  35. package/build/browser/base-components/dialog/Dialog.module.css +93 -0
  36. package/build/browser/base-components/dialog/Dialog.module.css.js +13 -0
  37. package/build/browser/base-components/draggable-list/DraggableList.js +157 -0
  38. package/build/browser/base-components/draggable-list/DraggableList.js.map +1 -0
  39. package/build/browser/base-components/draggable-list/DraggableList.module.css +100 -0
  40. package/build/browser/base-components/draggable-list/DraggableList.module.css.js +11 -0
  41. package/build/browser/base-components/search-bar/SearchBar.js +44 -0
  42. package/build/browser/base-components/search-bar/SearchBar.js.map +1 -0
  43. package/build/browser/base-components/search-bar/SearchBar.module.css +53 -0
  44. package/build/browser/base-components/search-bar/SearchBar.module.css.js +8 -0
  45. package/build/browser/base-components/select/Select.js +95 -0
  46. package/build/browser/base-components/select/Select.js.map +1 -0
  47. package/build/browser/base-components/select/Select.module.css +235 -0
  48. package/build/browser/base-components/select/Select.module.css.js +13 -0
  49. package/build/browser/base-components/skeleton/SkeletonBar.js +36 -0
  50. package/build/browser/base-components/skeleton/SkeletonBar.js.map +1 -0
  51. package/build/browser/base-components/skeleton/SkeletonBar.module.css +39 -0
  52. package/build/browser/base-components/skeleton/SkeletonBar.module.css.js +7 -0
  53. package/build/browser/base-components/switch/Switch.js +33 -0
  54. package/build/browser/base-components/switch/Switch.js.map +1 -0
  55. package/build/browser/base-components/switch/Switch.module.css +91 -0
  56. package/build/browser/base-components/switch/Switch.module.css.js +7 -0
  57. package/build/browser/base-components/tooltip/Tooltip.js +91 -0
  58. package/build/browser/base-components/tooltip/Tooltip.js.map +1 -0
  59. package/build/browser/base-components/tooltip/Tooltip.module.css +70 -0
  60. package/build/browser/base-components/tooltip/Tooltip.module.css.js +11 -0
  61. package/build/browser/base-components/tooltip/index.js +18 -0
  62. package/build/browser/base-components/tooltip/index.js.map +1 -0
  63. package/build/browser/filter-list/FilterInput.js +132 -0
  64. package/build/browser/filter-list/FilterInput.js.map +1 -0
  65. package/build/browser/filter-list/FilterList.js +128 -0
  66. package/build/browser/filter-list/FilterList.js.map +1 -0
  67. package/build/browser/filter-list/FilterListApi.js.map +1 -1
  68. package/build/browser/filter-list/FilterListItemApi.js.map +1 -1
  69. package/build/browser/filter-list/base/AddFilterPopover.js +45 -0
  70. package/build/browser/filter-list/base/AddFilterPopover.js.map +1 -0
  71. package/build/browser/filter-list/base/AddFilterPopover.module.css +83 -0
  72. package/build/browser/filter-list/base/AddFilterPopover.module.css.js +9 -0
  73. package/build/browser/filter-list/base/BaseFilterList.js +90 -0
  74. package/build/browser/filter-list/base/BaseFilterList.js.map +1 -0
  75. package/build/browser/filter-list/base/BaseFilterListApi.js +2 -0
  76. package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -0
  77. package/build/browser/filter-list/base/DragHandleIcon.js +51 -0
  78. package/build/browser/filter-list/base/DragHandleIcon.js.map +1 -0
  79. package/build/browser/filter-list/base/FilterIcons.js +98 -0
  80. package/build/browser/filter-list/base/FilterIcons.js.map +1 -0
  81. package/build/browser/filter-list/base/FilterList.module.css +132 -0
  82. package/build/browser/filter-list/base/FilterList.module.css.js +13 -0
  83. package/build/browser/filter-list/base/FilterListContent.js +198 -0
  84. package/build/browser/filter-list/base/FilterListContent.js.map +1 -0
  85. package/build/browser/filter-list/base/FilterListContent.module.css +33 -0
  86. package/build/browser/filter-list/base/FilterListContent.module.css.js +8 -0
  87. package/build/browser/filter-list/base/FilterListHeader.js +58 -0
  88. package/build/browser/filter-list/base/FilterListHeader.js.map +1 -0
  89. package/build/browser/filter-list/base/FilterListHeader.module.css +123 -0
  90. package/build/browser/filter-list/base/FilterListHeader.module.css.js +13 -0
  91. package/build/browser/filter-list/base/FilterListItem.js +87 -0
  92. package/build/browser/filter-list/base/FilterListItem.js.map +1 -0
  93. package/build/browser/filter-list/base/FilterListItem.module.css +126 -0
  94. package/build/browser/filter-list/base/FilterListItem.module.css.js +13 -0
  95. package/build/browser/filter-list/base/SortableFilterListItem.js +63 -0
  96. package/build/browser/filter-list/base/SortableFilterListItem.js.map +1 -0
  97. package/build/browser/filter-list/base/index.js +21 -0
  98. package/build/browser/filter-list/base/index.js.map +1 -0
  99. package/build/browser/filter-list/base/inputs/CheckboxListInput.js +83 -0
  100. package/build/browser/filter-list/base/inputs/CheckboxListInput.js.map +1 -0
  101. package/build/browser/filter-list/base/inputs/CheckboxListInput.module.css +65 -0
  102. package/build/browser/filter-list/base/inputs/CheckboxListInput.module.css.js +10 -0
  103. package/build/browser/filter-list/base/inputs/CheckboxListSkeleton.js +46 -0
  104. package/build/browser/filter-list/base/inputs/CheckboxListSkeleton.js.map +1 -0
  105. package/build/browser/filter-list/base/inputs/CheckboxListSkeleton.module.css +32 -0
  106. package/build/browser/filter-list/base/inputs/CheckboxListSkeleton.module.css.js +8 -0
  107. package/build/browser/filter-list/base/inputs/ContainsTextInput.js +85 -0
  108. package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -0
  109. package/build/browser/filter-list/base/inputs/ContainsTextInput.module.css +91 -0
  110. package/build/browser/filter-list/base/inputs/ContainsTextInput.module.css.js +10 -0
  111. package/build/browser/filter-list/base/inputs/DateRangeInput.js +37 -0
  112. package/build/browser/filter-list/base/inputs/DateRangeInput.js.map +1 -0
  113. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
  114. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css.js +6 -0
  115. package/build/browser/filter-list/base/inputs/ListogramInput.js +103 -0
  116. package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -0
  117. package/build/browser/filter-list/base/inputs/ListogramInput.module.css +106 -0
  118. package/build/browser/filter-list/base/inputs/ListogramInput.module.css.js +12 -0
  119. package/build/browser/filter-list/base/inputs/ListogramSkeleton.js +45 -0
  120. package/build/browser/filter-list/base/inputs/ListogramSkeleton.js.map +1 -0
  121. package/build/browser/filter-list/base/inputs/ListogramSkeleton.module.css +32 -0
  122. package/build/browser/filter-list/base/inputs/ListogramSkeleton.module.css.js +8 -0
  123. package/build/browser/filter-list/base/inputs/MultiDateInput.js +82 -0
  124. package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -0
  125. package/build/browser/filter-list/base/inputs/MultiDateInput.module.css +56 -0
  126. package/build/browser/filter-list/base/inputs/MultiDateInput.module.css.js +9 -0
  127. package/build/browser/filter-list/base/inputs/MultiSelectInput.js +93 -0
  128. package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
  129. package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css +38 -0
  130. package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css.js +9 -0
  131. package/build/browser/filter-list/base/inputs/NullValueWrapper.js +57 -0
  132. package/build/browser/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
  133. package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css +50 -0
  134. package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css.js +10 -0
  135. package/build/browser/filter-list/base/inputs/NumberRangeInput.js +48 -0
  136. package/build/browser/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
  137. package/build/browser/filter-list/base/inputs/RangeInput.js +157 -0
  138. package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -0
  139. package/build/browser/filter-list/base/inputs/RangeInput.module.css +106 -0
  140. package/build/browser/filter-list/base/inputs/RangeInput.module.css.js +13 -0
  141. package/build/browser/filter-list/base/inputs/SingleDateInput.js +61 -0
  142. package/build/browser/filter-list/base/inputs/SingleDateInput.js.map +1 -0
  143. package/build/browser/filter-list/base/inputs/SingleDateInput.module.css +64 -0
  144. package/build/browser/filter-list/base/inputs/SingleDateInput.module.css.js +9 -0
  145. package/build/browser/filter-list/base/inputs/SingleSelectInput.js +88 -0
  146. package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
  147. package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css +55 -0
  148. package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css.js +8 -0
  149. package/build/browser/filter-list/base/inputs/TextTagsInput.js +133 -0
  150. package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -0
  151. package/build/browser/filter-list/base/inputs/TextTagsInput.module.css +25 -0
  152. package/build/browser/filter-list/base/inputs/TextTagsInput.module.css.js +7 -0
  153. package/build/browser/filter-list/base/inputs/TimelineInput.js +74 -0
  154. package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -0
  155. package/build/browser/filter-list/base/inputs/TimelineInput.module.css +75 -0
  156. package/build/browser/filter-list/base/inputs/TimelineInput.module.css.js +10 -0
  157. package/build/browser/filter-list/base/inputs/ToggleInput.js +43 -0
  158. package/build/browser/filter-list/base/inputs/ToggleInput.js.map +1 -0
  159. package/build/browser/filter-list/base/inputs/ToggleInput.module.css +34 -0
  160. package/build/browser/filter-list/base/inputs/ToggleInput.module.css.js +8 -0
  161. package/build/browser/filter-list/base/inputs/createHistogramBuckets.js +53 -0
  162. package/build/browser/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
  163. package/build/browser/filter-list/base/inputs/dateUtils.js +57 -0
  164. package/build/browser/filter-list/base/inputs/dateUtils.js.map +1 -0
  165. package/build/browser/filter-list/base/inputs/index.js +25 -0
  166. package/build/browser/filter-list/base/inputs/index.js.map +1 -0
  167. package/build/browser/filter-list/base/inputs/shared.module.css +80 -0
  168. package/build/browser/filter-list/base/inputs/shared.module.css.js +11 -0
  169. package/build/browser/filter-list/base/inputs/useStaleData.js +29 -0
  170. package/build/browser/filter-list/base/inputs/useStaleData.js.map +1 -0
  171. package/build/browser/filter-list/hooks/useFilterListState.js +158 -0
  172. package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -0
  173. package/build/browser/filter-list/hooks/useFilterVisibility.js +68 -0
  174. package/build/browser/filter-list/hooks/useFilterVisibility.js.map +1 -0
  175. package/build/browser/filter-list/hooks/usePropertyAggregation.js +92 -0
  176. package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -0
  177. package/build/browser/filter-list/inputs/CheckboxListFilterInput.js +56 -0
  178. package/build/browser/filter-list/inputs/CheckboxListFilterInput.js.map +1 -0
  179. package/build/browser/filter-list/inputs/ContainsTextFilterInput.js +38 -0
  180. package/build/browser/filter-list/inputs/ContainsTextFilterInput.js.map +1 -0
  181. package/build/browser/filter-list/inputs/DateRangeFilterInput.js +105 -0
  182. package/build/browser/filter-list/inputs/DateRangeFilterInput.js.map +1 -0
  183. package/build/browser/filter-list/inputs/LinkedPropertyInput.js +508 -0
  184. package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -0
  185. package/build/browser/filter-list/inputs/ListogramFilterInput.js +62 -0
  186. package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -0
  187. package/build/browser/filter-list/inputs/MultiDateFilterInput.js +38 -0
  188. package/build/browser/filter-list/inputs/MultiDateFilterInput.js.map +1 -0
  189. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js +55 -0
  190. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -0
  191. package/build/browser/filter-list/inputs/NumberRangeFilterInput.js +105 -0
  192. package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -0
  193. package/build/browser/filter-list/inputs/PropertyFilterInput.js +129 -0
  194. package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -0
  195. package/build/browser/filter-list/inputs/SingleDateFilterInput.js +38 -0
  196. package/build/browser/filter-list/inputs/SingleDateFilterInput.js.map +1 -0
  197. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js +55 -0
  198. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -0
  199. package/build/browser/filter-list/inputs/TextTagsFilterInput.js +54 -0
  200. package/build/browser/filter-list/inputs/TextTagsFilterInput.js.map +1 -0
  201. package/build/browser/filter-list/inputs/TimelineFilterInput.js +49 -0
  202. package/build/browser/filter-list/inputs/TimelineFilterInput.js.map +1 -0
  203. package/build/browser/filter-list/inputs/ToggleFilterInput.js +36 -0
  204. package/build/browser/filter-list/inputs/ToggleFilterInput.js.map +1 -0
  205. package/build/browser/filter-list/types/AggregationTypes.js +2 -0
  206. package/build/browser/filter-list/types/AggregationTypes.js.map +1 -0
  207. package/build/browser/filter-list/types/CustomRendererTypes.js +2 -0
  208. package/build/browser/filter-list/types/CustomRendererTypes.js.map +1 -0
  209. package/build/browser/filter-list/types/KeywordSearchTypes.js +2 -0
  210. package/build/browser/filter-list/types/KeywordSearchTypes.js.map +1 -0
  211. package/build/browser/filter-list/types/LinkedFilterTypes.js +2 -0
  212. package/build/browser/filter-list/types/LinkedFilterTypes.js.map +1 -0
  213. package/build/browser/filter-list/types/index.js +20 -0
  214. package/build/browser/filter-list/types/index.js.map +1 -0
  215. package/build/browser/filter-list/utils/aggregationHelpers.js +44 -0
  216. package/build/browser/filter-list/utils/aggregationHelpers.js.map +1 -0
  217. package/build/browser/filter-list/utils/coerceFilterValue.js +33 -0
  218. package/build/browser/filter-list/utils/coerceFilterValue.js.map +1 -0
  219. package/build/browser/filter-list/utils/filterStateSerialization.js +42 -0
  220. package/build/browser/filter-list/utils/filterStateSerialization.js.map +1 -0
  221. package/build/browser/filter-list/utils/filterStateToWhereClause.js +375 -0
  222. package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -0
  223. package/build/browser/filter-list/utils/filterValues.js +81 -0
  224. package/build/browser/filter-list/utils/filterValues.js.map +1 -0
  225. package/build/browser/filter-list/utils/getFilterKey.js +34 -0
  226. package/build/browser/filter-list/utils/getFilterKey.js.map +1 -0
  227. package/build/browser/filter-list/utils/getFilterLabel.js +36 -0
  228. package/build/browser/filter-list/utils/getFilterLabel.js.map +1 -0
  229. package/build/browser/object-table/ColumnConfigDialog.js +259 -0
  230. package/build/browser/object-table/ColumnConfigDialog.js.map +1 -0
  231. package/build/browser/object-table/ColumnConfigDialog.module.css +238 -0
  232. package/build/browser/object-table/ColumnConfigDialog.module.css.js +29 -0
  233. package/build/browser/object-table/DefaultCellRenderer.js +61 -0
  234. package/build/browser/object-table/DefaultCellRenderer.js.map +1 -0
  235. package/build/browser/object-table/EditableCell.js +168 -0
  236. package/build/browser/object-table/EditableCell.js.map +1 -0
  237. package/build/browser/object-table/EditableCell.module.css +70 -0
  238. package/build/browser/object-table/EditableCell.module.css.js +11 -0
  239. package/build/browser/object-table/LoadingCell.js +6 -3
  240. package/build/browser/object-table/LoadingCell.js.map +1 -1
  241. package/build/browser/object-table/LoadingRow.js +2 -1
  242. package/build/browser/object-table/LoadingRow.js.map +1 -1
  243. package/build/browser/object-table/LoadingStateTable.js +4 -4
  244. package/build/browser/object-table/LoadingStateTable.js.map +1 -1
  245. package/build/browser/object-table/MultiColumnSortDialog.js +181 -0
  246. package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -0
  247. package/build/browser/object-table/MultiColumnSortDialog.module.css +191 -0
  248. package/build/browser/object-table/MultiColumnSortDialog.module.css.js +22 -0
  249. package/build/browser/object-table/NonIdealState.module.css +2 -3
  250. package/build/browser/object-table/ObjectTable.js +69 -17
  251. package/build/browser/object-table/ObjectTable.js.map +1 -1
  252. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  253. package/build/browser/object-table/SelectionCells.js +16 -4
  254. package/build/browser/object-table/SelectionCells.js.map +1 -1
  255. package/build/browser/object-table/SortableItemsList.js +35 -0
  256. package/build/browser/object-table/SortableItemsList.js.map +1 -0
  257. package/build/browser/object-table/Table.js +29 -4
  258. package/build/browser/object-table/Table.js.map +1 -1
  259. package/build/browser/object-table/Table.module.css +18 -3
  260. package/build/browser/object-table/Table.module.css.js +1 -0
  261. package/build/browser/object-table/TableBody.js +8 -2
  262. package/build/browser/object-table/TableBody.js.map +1 -1
  263. package/build/browser/object-table/TableBody.module.css +2 -0
  264. package/build/browser/object-table/TableCell.module.css +15 -1
  265. package/build/browser/object-table/TableCell.module.css.js +2 -1
  266. package/build/browser/object-table/TableEditContainer.js +90 -0
  267. package/build/browser/object-table/TableEditContainer.js.map +1 -0
  268. package/build/browser/object-table/TableEditContainer.module.css +71 -0
  269. package/build/browser/object-table/TableEditContainer.module.css.js +13 -0
  270. package/build/browser/object-table/TableHeader.js +97 -7
  271. package/build/browser/object-table/TableHeader.js.map +1 -1
  272. package/build/browser/object-table/TableHeader.module.css +11 -3
  273. package/build/browser/object-table/TableHeader.module.css.js +1 -0
  274. package/build/browser/object-table/TableHeaderWithPopover.js +53 -22
  275. package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
  276. package/build/browser/object-table/TableHeaderWithPopover.module.css +44 -25
  277. package/build/browser/object-table/TableHeaderWithPopover.module.css.js +3 -1
  278. package/build/browser/object-table/TableRow.js +10 -3
  279. package/build/browser/object-table/TableRow.js.map +1 -1
  280. package/build/browser/object-table/TableRow.module.css +4 -1
  281. package/build/browser/object-table/components/AsyncValueCell.js +35 -0
  282. package/build/browser/object-table/components/AsyncValueCell.js.map +1 -0
  283. package/build/browser/object-table/hooks/useColumnDefs.js +20 -4
  284. package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
  285. package/build/browser/object-table/hooks/useColumnResize.js +45 -0
  286. package/build/browser/object-table/hooks/useColumnResize.js.map +1 -0
  287. package/build/browser/object-table/hooks/useColumnVisibility.js +52 -20
  288. package/build/browser/object-table/hooks/useColumnVisibility.js.map +1 -1
  289. package/build/browser/object-table/hooks/useEditableTable.js +85 -0
  290. package/build/browser/object-table/hooks/useEditableTable.js.map +1 -0
  291. package/build/browser/object-table/hooks/useFunctionColumnsData.js +270 -0
  292. package/build/browser/object-table/hooks/useFunctionColumnsData.js.map +1 -0
  293. package/build/browser/object-table/hooks/useObjectTableData.js +58 -7
  294. package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
  295. package/build/browser/object-table/hooks/useRowSelection.js +40 -16
  296. package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
  297. package/build/browser/object-table/hooks/useSelectionColumn.js +15 -6
  298. package/build/browser/object-table/hooks/useSelectionColumn.js.map +1 -1
  299. package/build/browser/object-table/utils/AsyncCellData.js +30 -0
  300. package/build/browser/object-table/utils/AsyncCellData.js.map +1 -0
  301. package/build/browser/object-table/utils/constants.js +1 -0
  302. package/build/browser/object-table/utils/constants.js.map +1 -1
  303. package/build/browser/object-table/utils/getCellId.js +20 -0
  304. package/build/browser/object-table/utils/getCellId.js.map +1 -0
  305. package/build/browser/object-table/utils/types.js +2 -0
  306. package/build/browser/object-table/utils/types.js.map +1 -0
  307. package/build/browser/pdf-viewer/PdfRenderer.js +88 -0
  308. package/build/browser/pdf-viewer/PdfRenderer.js.map +1 -0
  309. package/build/browser/pdf-viewer/PdfViewer.js +197 -0
  310. package/build/browser/pdf-viewer/PdfViewer.js.map +1 -0
  311. package/build/browser/pdf-viewer/PdfViewer.module.css +95 -0
  312. package/build/browser/pdf-viewer/PdfViewer.module.css.js +16 -0
  313. package/build/browser/pdf-viewer/PdfViewerAnnotationLayer.js +74 -0
  314. package/build/browser/pdf-viewer/PdfViewerAnnotationLayer.js.map +1 -0
  315. package/build/browser/pdf-viewer/PdfViewerAnnotationLayer.module.css +65 -0
  316. package/build/browser/pdf-viewer/PdfViewerAnnotationLayer.module.css.js +11 -0
  317. package/build/browser/pdf-viewer/PdfViewerSearchBar.js +84 -0
  318. package/build/browser/pdf-viewer/PdfViewerSearchBar.js.map +1 -0
  319. package/build/browser/pdf-viewer/PdfViewerSearchBar.module.css +65 -0
  320. package/build/browser/pdf-viewer/PdfViewerSearchBar.module.css.js +10 -0
  321. package/build/browser/pdf-viewer/PdfViewerSidebar.js +74 -0
  322. package/build/browser/pdf-viewer/PdfViewerSidebar.js.map +1 -0
  323. package/build/browser/pdf-viewer/PdfViewerSidebar.module.css +46 -0
  324. package/build/browser/pdf-viewer/PdfViewerSidebar.module.css.js +11 -0
  325. package/build/browser/pdf-viewer/PdfViewerThumbnail.js +100 -0
  326. package/build/browser/pdf-viewer/PdfViewerThumbnail.js.map +1 -0
  327. package/build/browser/pdf-viewer/PdfViewerThumbnail.module.css +26 -0
  328. package/build/browser/pdf-viewer/PdfViewerThumbnail.module.css.js +8 -0
  329. package/build/browser/pdf-viewer/PdfViewerToolbar.js +167 -0
  330. package/build/browser/pdf-viewer/PdfViewerToolbar.js.map +1 -0
  331. package/build/browser/pdf-viewer/PdfViewerToolbar.module.css +86 -0
  332. package/build/browser/pdf-viewer/PdfViewerToolbar.module.css.js +12 -0
  333. package/build/browser/pdf-viewer/constants.js +43 -0
  334. package/build/browser/pdf-viewer/constants.js.map +1 -0
  335. package/build/browser/pdf-viewer/hooks/usePdfAnnotationPortals.js +54 -0
  336. package/build/browser/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -0
  337. package/build/browser/pdf-viewer/hooks/usePdfDocument.js +67 -0
  338. package/build/browser/pdf-viewer/hooks/usePdfDocument.js.map +1 -0
  339. package/build/browser/pdf-viewer/hooks/usePdfViewer.js +69 -0
  340. package/build/browser/pdf-viewer/hooks/usePdfViewer.js.map +1 -0
  341. package/build/browser/pdf-viewer/hooks/usePdfViewerSearch.js +106 -0
  342. package/build/browser/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -0
  343. package/build/browser/pdf-viewer/hooks/usePdfViewerSync.js +71 -0
  344. package/build/browser/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -0
  345. package/build/browser/pdf-viewer/types.js +2 -0
  346. package/build/browser/pdf-viewer/types.js.map +1 -0
  347. package/build/browser/public/experimental.js +9 -0
  348. package/build/browser/public/experimental.js.map +1 -1
  349. package/build/browser/shared/ErrorBoundary.js +62 -0
  350. package/build/browser/shared/ErrorBoundary.js.map +1 -0
  351. package/build/browser/shared/ErrorBoundary.module.css +55 -0
  352. package/build/browser/shared/ErrorBoundary.module.css.js +8 -0
  353. package/build/browser/shared/assertUnreachable.js +25 -0
  354. package/build/browser/shared/assertUnreachable.js.map +1 -0
  355. package/build/browser/shared/typedMemo.js +25 -0
  356. package/build/browser/shared/typedMemo.js.map +1 -0
  357. package/build/browser/styles.css +3936 -220
  358. package/build/cjs/public/experimental.cjs +6675 -312
  359. package/build/cjs/public/experimental.cjs.map +1 -1
  360. package/build/cjs/public/experimental.css +2573 -107
  361. package/build/cjs/public/experimental.css.map +1 -1
  362. package/build/cjs/public/experimental.d.cts +673 -68
  363. package/build/esm/action-form/ActionForm.js +113 -0
  364. package/build/esm/action-form/ActionForm.js.map +1 -0
  365. package/build/esm/action-form/ActionFormApi.js.map +1 -1
  366. package/build/esm/action-form/BaseForm.js +70 -0
  367. package/build/esm/action-form/BaseForm.js.map +1 -0
  368. package/build/esm/action-form/FormFieldApi.js.map +1 -1
  369. package/build/esm/action-form/fields/DropdownField.js +104 -0
  370. package/build/esm/action-form/fields/DropdownField.js.map +1 -0
  371. package/build/esm/action-form/fields/FieldBridge.js +45 -0
  372. package/build/esm/action-form/fields/FieldBridge.js.map +1 -0
  373. package/build/esm/action-form/fields/FormFieldRenderer.js +79 -0
  374. package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -0
  375. package/build/esm/action-form/fields/TextInputField.js +37 -0
  376. package/build/esm/action-form/fields/TextInputField.js.map +1 -0
  377. package/build/esm/action-form/utils/coerceFieldValue.js +93 -0
  378. package/build/esm/action-form/utils/coerceFieldValue.js.map +1 -0
  379. package/build/esm/action-form/utils/getDefaultFieldComponent.js +56 -0
  380. package/build/esm/action-form/utils/getDefaultFieldComponent.js.map +1 -0
  381. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js +33 -0
  382. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js.map +1 -0
  383. package/build/esm/base-components/action-button/ActionButton.js +31 -0
  384. package/build/esm/base-components/action-button/ActionButton.js.map +1 -0
  385. package/build/esm/base-components/action-button/ActionButton.module.css +66 -0
  386. package/build/esm/base-components/checkbox/Checkbox.module.css +1 -5
  387. package/build/esm/base-components/combobox/Combobox.js +146 -0
  388. package/build/esm/base-components/combobox/Combobox.js.map +1 -0
  389. package/build/esm/base-components/combobox/Combobox.module.css +357 -0
  390. package/build/esm/base-components/dialog/Dialog.js +52 -0
  391. package/build/esm/base-components/dialog/Dialog.js.map +1 -0
  392. package/build/esm/base-components/dialog/Dialog.module.css +93 -0
  393. package/build/esm/base-components/draggable-list/DraggableList.js +157 -0
  394. package/build/esm/base-components/draggable-list/DraggableList.js.map +1 -0
  395. package/build/esm/base-components/draggable-list/DraggableList.module.css +100 -0
  396. package/build/esm/base-components/search-bar/SearchBar.js +44 -0
  397. package/build/esm/base-components/search-bar/SearchBar.js.map +1 -0
  398. package/build/esm/base-components/search-bar/SearchBar.module.css +53 -0
  399. package/build/esm/base-components/select/Select.js +95 -0
  400. package/build/esm/base-components/select/Select.js.map +1 -0
  401. package/build/esm/base-components/select/Select.module.css +235 -0
  402. package/build/esm/base-components/skeleton/SkeletonBar.js +36 -0
  403. package/build/esm/base-components/skeleton/SkeletonBar.js.map +1 -0
  404. package/build/esm/base-components/skeleton/SkeletonBar.module.css +39 -0
  405. package/build/esm/base-components/switch/Switch.js +33 -0
  406. package/build/esm/base-components/switch/Switch.js.map +1 -0
  407. package/build/esm/base-components/switch/Switch.module.css +91 -0
  408. package/build/esm/base-components/tooltip/Tooltip.js +91 -0
  409. package/build/esm/base-components/tooltip/Tooltip.js.map +1 -0
  410. package/build/esm/base-components/tooltip/Tooltip.module.css +70 -0
  411. package/build/esm/base-components/tooltip/index.js +18 -0
  412. package/build/esm/base-components/tooltip/index.js.map +1 -0
  413. package/build/esm/filter-list/FilterInput.js +132 -0
  414. package/build/esm/filter-list/FilterInput.js.map +1 -0
  415. package/build/esm/filter-list/FilterList.js +128 -0
  416. package/build/esm/filter-list/FilterList.js.map +1 -0
  417. package/build/esm/filter-list/FilterListApi.js.map +1 -1
  418. package/build/esm/filter-list/FilterListItemApi.js.map +1 -1
  419. package/build/esm/filter-list/base/AddFilterPopover.js +45 -0
  420. package/build/esm/filter-list/base/AddFilterPopover.js.map +1 -0
  421. package/build/esm/filter-list/base/AddFilterPopover.module.css +83 -0
  422. package/build/esm/filter-list/base/BaseFilterList.js +90 -0
  423. package/build/esm/filter-list/base/BaseFilterList.js.map +1 -0
  424. package/build/esm/filter-list/base/BaseFilterListApi.js +2 -0
  425. package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -0
  426. package/build/esm/filter-list/base/DragHandleIcon.js +51 -0
  427. package/build/esm/filter-list/base/DragHandleIcon.js.map +1 -0
  428. package/build/esm/filter-list/base/FilterIcons.js +98 -0
  429. package/build/esm/filter-list/base/FilterIcons.js.map +1 -0
  430. package/build/esm/filter-list/base/FilterList.module.css +132 -0
  431. package/build/esm/filter-list/base/FilterListContent.js +198 -0
  432. package/build/esm/filter-list/base/FilterListContent.js.map +1 -0
  433. package/build/esm/filter-list/base/FilterListContent.module.css +33 -0
  434. package/build/esm/filter-list/base/FilterListHeader.js +58 -0
  435. package/build/esm/filter-list/base/FilterListHeader.js.map +1 -0
  436. package/build/esm/filter-list/base/FilterListHeader.module.css +123 -0
  437. package/build/esm/filter-list/base/FilterListItem.js +87 -0
  438. package/build/esm/filter-list/base/FilterListItem.js.map +1 -0
  439. package/build/esm/filter-list/base/FilterListItem.module.css +126 -0
  440. package/build/esm/filter-list/base/SortableFilterListItem.js +63 -0
  441. package/build/esm/filter-list/base/SortableFilterListItem.js.map +1 -0
  442. package/build/esm/filter-list/base/index.js +21 -0
  443. package/build/esm/filter-list/base/index.js.map +1 -0
  444. package/build/esm/filter-list/base/inputs/CheckboxListInput.js +83 -0
  445. package/build/esm/filter-list/base/inputs/CheckboxListInput.js.map +1 -0
  446. package/build/esm/filter-list/base/inputs/CheckboxListInput.module.css +65 -0
  447. package/build/esm/filter-list/base/inputs/CheckboxListSkeleton.js +46 -0
  448. package/build/esm/filter-list/base/inputs/CheckboxListSkeleton.js.map +1 -0
  449. package/build/esm/filter-list/base/inputs/CheckboxListSkeleton.module.css +32 -0
  450. package/build/esm/filter-list/base/inputs/ContainsTextInput.js +85 -0
  451. package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -0
  452. package/build/esm/filter-list/base/inputs/ContainsTextInput.module.css +91 -0
  453. package/build/esm/filter-list/base/inputs/DateRangeInput.js +37 -0
  454. package/build/esm/filter-list/base/inputs/DateRangeInput.js.map +1 -0
  455. package/build/esm/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
  456. package/build/esm/filter-list/base/inputs/ListogramInput.js +103 -0
  457. package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -0
  458. package/build/esm/filter-list/base/inputs/ListogramInput.module.css +106 -0
  459. package/build/esm/filter-list/base/inputs/ListogramSkeleton.js +45 -0
  460. package/build/esm/filter-list/base/inputs/ListogramSkeleton.js.map +1 -0
  461. package/build/esm/filter-list/base/inputs/ListogramSkeleton.module.css +32 -0
  462. package/build/esm/filter-list/base/inputs/MultiDateInput.js +82 -0
  463. package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -0
  464. package/build/esm/filter-list/base/inputs/MultiDateInput.module.css +56 -0
  465. package/build/esm/filter-list/base/inputs/MultiSelectInput.js +93 -0
  466. package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
  467. package/build/esm/filter-list/base/inputs/MultiSelectInput.module.css +38 -0
  468. package/build/esm/filter-list/base/inputs/NullValueWrapper.js +57 -0
  469. package/build/esm/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
  470. package/build/esm/filter-list/base/inputs/NullValueWrapper.module.css +50 -0
  471. package/build/esm/filter-list/base/inputs/NumberRangeInput.js +48 -0
  472. package/build/esm/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
  473. package/build/esm/filter-list/base/inputs/RangeInput.js +157 -0
  474. package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -0
  475. package/build/esm/filter-list/base/inputs/RangeInput.module.css +106 -0
  476. package/build/esm/filter-list/base/inputs/SingleDateInput.js +61 -0
  477. package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -0
  478. package/build/esm/filter-list/base/inputs/SingleDateInput.module.css +64 -0
  479. package/build/esm/filter-list/base/inputs/SingleSelectInput.js +88 -0
  480. package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
  481. package/build/esm/filter-list/base/inputs/SingleSelectInput.module.css +55 -0
  482. package/build/esm/filter-list/base/inputs/TextTagsInput.js +133 -0
  483. package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -0
  484. package/build/esm/filter-list/base/inputs/TextTagsInput.module.css +25 -0
  485. package/build/esm/filter-list/base/inputs/TimelineInput.js +74 -0
  486. package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -0
  487. package/build/esm/filter-list/base/inputs/TimelineInput.module.css +75 -0
  488. package/build/esm/filter-list/base/inputs/ToggleInput.js +43 -0
  489. package/build/esm/filter-list/base/inputs/ToggleInput.js.map +1 -0
  490. package/build/esm/filter-list/base/inputs/ToggleInput.module.css +34 -0
  491. package/build/esm/filter-list/base/inputs/createHistogramBuckets.js +53 -0
  492. package/build/esm/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
  493. package/build/esm/filter-list/base/inputs/dateUtils.js +57 -0
  494. package/build/esm/filter-list/base/inputs/dateUtils.js.map +1 -0
  495. package/build/esm/filter-list/base/inputs/index.js +25 -0
  496. package/build/esm/filter-list/base/inputs/index.js.map +1 -0
  497. package/build/esm/filter-list/base/inputs/shared.module.css +80 -0
  498. package/build/esm/filter-list/base/inputs/useStaleData.js +29 -0
  499. package/build/esm/filter-list/base/inputs/useStaleData.js.map +1 -0
  500. package/build/esm/filter-list/hooks/useFilterListState.js +158 -0
  501. package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -0
  502. package/build/esm/filter-list/hooks/useFilterVisibility.js +68 -0
  503. package/build/esm/filter-list/hooks/useFilterVisibility.js.map +1 -0
  504. package/build/esm/filter-list/hooks/usePropertyAggregation.js +92 -0
  505. package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -0
  506. package/build/esm/filter-list/inputs/CheckboxListFilterInput.js +56 -0
  507. package/build/esm/filter-list/inputs/CheckboxListFilterInput.js.map +1 -0
  508. package/build/esm/filter-list/inputs/ContainsTextFilterInput.js +38 -0
  509. package/build/esm/filter-list/inputs/ContainsTextFilterInput.js.map +1 -0
  510. package/build/esm/filter-list/inputs/DateRangeFilterInput.js +105 -0
  511. package/build/esm/filter-list/inputs/DateRangeFilterInput.js.map +1 -0
  512. package/build/esm/filter-list/inputs/LinkedPropertyInput.js +508 -0
  513. package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -0
  514. package/build/esm/filter-list/inputs/ListogramFilterInput.js +62 -0
  515. package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -0
  516. package/build/esm/filter-list/inputs/MultiDateFilterInput.js +38 -0
  517. package/build/esm/filter-list/inputs/MultiDateFilterInput.js.map +1 -0
  518. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js +55 -0
  519. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -0
  520. package/build/esm/filter-list/inputs/NumberRangeFilterInput.js +105 -0
  521. package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -0
  522. package/build/esm/filter-list/inputs/PropertyFilterInput.js +129 -0
  523. package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -0
  524. package/build/esm/filter-list/inputs/SingleDateFilterInput.js +38 -0
  525. package/build/esm/filter-list/inputs/SingleDateFilterInput.js.map +1 -0
  526. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js +55 -0
  527. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -0
  528. package/build/esm/filter-list/inputs/TextTagsFilterInput.js +54 -0
  529. package/build/esm/filter-list/inputs/TextTagsFilterInput.js.map +1 -0
  530. package/build/esm/filter-list/inputs/TimelineFilterInput.js +49 -0
  531. package/build/esm/filter-list/inputs/TimelineFilterInput.js.map +1 -0
  532. package/build/esm/filter-list/inputs/ToggleFilterInput.js +36 -0
  533. package/build/esm/filter-list/inputs/ToggleFilterInput.js.map +1 -0
  534. package/build/esm/filter-list/types/AggregationTypes.js +2 -0
  535. package/build/esm/filter-list/types/AggregationTypes.js.map +1 -0
  536. package/build/esm/filter-list/types/CustomRendererTypes.js +2 -0
  537. package/build/esm/filter-list/types/CustomRendererTypes.js.map +1 -0
  538. package/build/esm/filter-list/types/KeywordSearchTypes.js +2 -0
  539. package/build/esm/filter-list/types/KeywordSearchTypes.js.map +1 -0
  540. package/build/esm/filter-list/types/LinkedFilterTypes.js +2 -0
  541. package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -0
  542. package/build/esm/filter-list/types/index.js +20 -0
  543. package/build/esm/filter-list/types/index.js.map +1 -0
  544. package/build/esm/filter-list/utils/aggregationHelpers.js +44 -0
  545. package/build/esm/filter-list/utils/aggregationHelpers.js.map +1 -0
  546. package/build/esm/filter-list/utils/coerceFilterValue.js +33 -0
  547. package/build/esm/filter-list/utils/coerceFilterValue.js.map +1 -0
  548. package/build/esm/filter-list/utils/filterStateSerialization.js +42 -0
  549. package/build/esm/filter-list/utils/filterStateSerialization.js.map +1 -0
  550. package/build/esm/filter-list/utils/filterStateToWhereClause.js +375 -0
  551. package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -0
  552. package/build/esm/filter-list/utils/filterValues.js +81 -0
  553. package/build/esm/filter-list/utils/filterValues.js.map +1 -0
  554. package/build/esm/filter-list/utils/getFilterKey.js +34 -0
  555. package/build/esm/filter-list/utils/getFilterKey.js.map +1 -0
  556. package/build/esm/filter-list/utils/getFilterLabel.js +36 -0
  557. package/build/esm/filter-list/utils/getFilterLabel.js.map +1 -0
  558. package/build/esm/object-table/ColumnConfigDialog.js +259 -0
  559. package/build/esm/object-table/ColumnConfigDialog.js.map +1 -0
  560. package/build/esm/object-table/ColumnConfigDialog.module.css +238 -0
  561. package/build/esm/object-table/DefaultCellRenderer.js +61 -0
  562. package/build/esm/object-table/DefaultCellRenderer.js.map +1 -0
  563. package/build/esm/object-table/EditableCell.js +168 -0
  564. package/build/esm/object-table/EditableCell.js.map +1 -0
  565. package/build/esm/object-table/EditableCell.module.css +70 -0
  566. package/build/esm/object-table/LoadingCell.js +6 -3
  567. package/build/esm/object-table/LoadingCell.js.map +1 -1
  568. package/build/esm/object-table/LoadingRow.js +2 -1
  569. package/build/esm/object-table/LoadingRow.js.map +1 -1
  570. package/build/esm/object-table/LoadingStateTable.js +4 -4
  571. package/build/esm/object-table/LoadingStateTable.js.map +1 -1
  572. package/build/esm/object-table/MultiColumnSortDialog.js +181 -0
  573. package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -0
  574. package/build/esm/object-table/MultiColumnSortDialog.module.css +191 -0
  575. package/build/esm/object-table/NonIdealState.module.css +2 -3
  576. package/build/esm/object-table/ObjectTable.js +69 -17
  577. package/build/esm/object-table/ObjectTable.js.map +1 -1
  578. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  579. package/build/esm/object-table/SelectionCells.js +16 -4
  580. package/build/esm/object-table/SelectionCells.js.map +1 -1
  581. package/build/esm/object-table/SortableItemsList.js +35 -0
  582. package/build/esm/object-table/SortableItemsList.js.map +1 -0
  583. package/build/esm/object-table/Table.js +29 -4
  584. package/build/esm/object-table/Table.js.map +1 -1
  585. package/build/esm/object-table/Table.module.css +18 -3
  586. package/build/esm/object-table/TableBody.js +8 -2
  587. package/build/esm/object-table/TableBody.js.map +1 -1
  588. package/build/esm/object-table/TableBody.module.css +2 -0
  589. package/build/esm/object-table/TableCell.module.css +15 -1
  590. package/build/esm/object-table/TableEditContainer.js +90 -0
  591. package/build/esm/object-table/TableEditContainer.js.map +1 -0
  592. package/build/esm/object-table/TableEditContainer.module.css +71 -0
  593. package/build/esm/object-table/TableHeader.js +97 -7
  594. package/build/esm/object-table/TableHeader.js.map +1 -1
  595. package/build/esm/object-table/TableHeader.module.css +11 -3
  596. package/build/esm/object-table/TableHeaderWithPopover.js +53 -22
  597. package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
  598. package/build/esm/object-table/TableHeaderWithPopover.module.css +44 -25
  599. package/build/esm/object-table/TableRow.js +10 -3
  600. package/build/esm/object-table/TableRow.js.map +1 -1
  601. package/build/esm/object-table/TableRow.module.css +4 -1
  602. package/build/esm/object-table/components/AsyncValueCell.js +35 -0
  603. package/build/esm/object-table/components/AsyncValueCell.js.map +1 -0
  604. package/build/esm/object-table/hooks/useColumnDefs.js +20 -4
  605. package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
  606. package/build/esm/object-table/hooks/useColumnResize.js +45 -0
  607. package/build/esm/object-table/hooks/useColumnResize.js.map +1 -0
  608. package/build/esm/object-table/hooks/useColumnVisibility.js +52 -20
  609. package/build/esm/object-table/hooks/useColumnVisibility.js.map +1 -1
  610. package/build/esm/object-table/hooks/useEditableTable.js +85 -0
  611. package/build/esm/object-table/hooks/useEditableTable.js.map +1 -0
  612. package/build/esm/object-table/hooks/useFunctionColumnsData.js +270 -0
  613. package/build/esm/object-table/hooks/useFunctionColumnsData.js.map +1 -0
  614. package/build/esm/object-table/hooks/useObjectTableData.js +58 -7
  615. package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
  616. package/build/esm/object-table/hooks/useRowSelection.js +40 -16
  617. package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
  618. package/build/esm/object-table/hooks/useSelectionColumn.js +15 -6
  619. package/build/esm/object-table/hooks/useSelectionColumn.js.map +1 -1
  620. package/build/esm/object-table/utils/AsyncCellData.js +30 -0
  621. package/build/esm/object-table/utils/AsyncCellData.js.map +1 -0
  622. package/build/esm/object-table/utils/constants.js +1 -0
  623. package/build/esm/object-table/utils/constants.js.map +1 -1
  624. package/build/esm/object-table/utils/getCellId.js +20 -0
  625. package/build/esm/object-table/utils/getCellId.js.map +1 -0
  626. package/build/esm/object-table/utils/types.js +2 -0
  627. package/build/esm/object-table/utils/types.js.map +1 -0
  628. package/build/esm/pdf-viewer/PdfRenderer.js +88 -0
  629. package/build/esm/pdf-viewer/PdfRenderer.js.map +1 -0
  630. package/build/esm/pdf-viewer/PdfViewer.js +197 -0
  631. package/build/esm/pdf-viewer/PdfViewer.js.map +1 -0
  632. package/build/esm/pdf-viewer/PdfViewer.module.css +95 -0
  633. package/build/esm/pdf-viewer/PdfViewerAnnotationLayer.js +74 -0
  634. package/build/esm/pdf-viewer/PdfViewerAnnotationLayer.js.map +1 -0
  635. package/build/esm/pdf-viewer/PdfViewerAnnotationLayer.module.css +65 -0
  636. package/build/esm/pdf-viewer/PdfViewerSearchBar.js +84 -0
  637. package/build/esm/pdf-viewer/PdfViewerSearchBar.js.map +1 -0
  638. package/build/esm/pdf-viewer/PdfViewerSearchBar.module.css +65 -0
  639. package/build/esm/pdf-viewer/PdfViewerSidebar.js +74 -0
  640. package/build/esm/pdf-viewer/PdfViewerSidebar.js.map +1 -0
  641. package/build/esm/pdf-viewer/PdfViewerSidebar.module.css +46 -0
  642. package/build/esm/pdf-viewer/PdfViewerThumbnail.js +100 -0
  643. package/build/esm/pdf-viewer/PdfViewerThumbnail.js.map +1 -0
  644. package/build/esm/pdf-viewer/PdfViewerThumbnail.module.css +26 -0
  645. package/build/esm/pdf-viewer/PdfViewerToolbar.js +167 -0
  646. package/build/esm/pdf-viewer/PdfViewerToolbar.js.map +1 -0
  647. package/build/esm/pdf-viewer/PdfViewerToolbar.module.css +86 -0
  648. package/build/esm/pdf-viewer/constants.js +43 -0
  649. package/build/esm/pdf-viewer/constants.js.map +1 -0
  650. package/build/esm/pdf-viewer/hooks/usePdfAnnotationPortals.js +54 -0
  651. package/build/esm/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -0
  652. package/build/esm/pdf-viewer/hooks/usePdfDocument.js +67 -0
  653. package/build/esm/pdf-viewer/hooks/usePdfDocument.js.map +1 -0
  654. package/build/esm/pdf-viewer/hooks/usePdfViewer.js +69 -0
  655. package/build/esm/pdf-viewer/hooks/usePdfViewer.js.map +1 -0
  656. package/build/esm/pdf-viewer/hooks/usePdfViewerSearch.js +106 -0
  657. package/build/esm/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -0
  658. package/build/esm/pdf-viewer/hooks/usePdfViewerSync.js +71 -0
  659. package/build/esm/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -0
  660. package/build/esm/pdf-viewer/types.js +2 -0
  661. package/build/esm/pdf-viewer/types.js.map +1 -0
  662. package/build/esm/public/experimental.js +9 -0
  663. package/build/esm/public/experimental.js.map +1 -1
  664. package/build/esm/shared/ErrorBoundary.js +62 -0
  665. package/build/esm/shared/ErrorBoundary.js.map +1 -0
  666. package/build/esm/shared/ErrorBoundary.module.css +55 -0
  667. package/build/esm/shared/assertUnreachable.js +25 -0
  668. package/build/esm/shared/assertUnreachable.js.map +1 -0
  669. package/build/esm/shared/typedMemo.js +25 -0
  670. package/build/esm/shared/typedMemo.js.map +1 -0
  671. package/build/types/action-form/ActionForm.d.ts +4 -0
  672. package/build/types/action-form/ActionForm.d.ts.map +1 -0
  673. package/build/types/action-form/ActionFormApi.d.ts +48 -32
  674. package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
  675. package/build/types/action-form/BaseForm.d.ts +3 -0
  676. package/build/types/action-form/BaseForm.d.ts.map +1 -0
  677. package/build/types/action-form/FormFieldApi.d.ts +93 -42
  678. package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
  679. package/build/types/action-form/fields/DropdownField.d.ts +6 -0
  680. package/build/types/action-form/fields/DropdownField.d.ts.map +1 -0
  681. package/build/types/action-form/fields/FieldBridge.d.ts +9 -0
  682. package/build/types/action-form/fields/FieldBridge.d.ts.map +1 -0
  683. package/build/types/action-form/fields/FormFieldRenderer.d.ts +8 -0
  684. package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -0
  685. package/build/types/action-form/fields/TextInputField.d.ts +5 -0
  686. package/build/types/action-form/fields/TextInputField.d.ts.map +1 -0
  687. package/build/types/action-form/utils/coerceFieldValue.d.ts +10 -0
  688. package/build/types/action-form/utils/coerceFieldValue.d.ts.map +1 -0
  689. package/build/types/action-form/utils/getDefaultFieldComponent.d.ts +6 -0
  690. package/build/types/action-form/utils/getDefaultFieldComponent.d.ts.map +1 -0
  691. package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts +6 -0
  692. package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts.map +1 -0
  693. package/build/types/base-components/action-button/ActionButton.d.ts +5 -0
  694. package/build/types/base-components/action-button/ActionButton.d.ts.map +1 -0
  695. package/build/types/base-components/combobox/Combobox.d.ts +60 -0
  696. package/build/types/base-components/combobox/Combobox.d.ts.map +1 -0
  697. package/build/types/base-components/dialog/Dialog.d.ts +10 -0
  698. package/build/types/base-components/dialog/Dialog.d.ts.map +1 -0
  699. package/build/types/base-components/draggable-list/DraggableList.d.ts +17 -0
  700. package/build/types/base-components/draggable-list/DraggableList.d.ts.map +1 -0
  701. package/build/types/base-components/search-bar/SearchBar.d.ts +11 -0
  702. package/build/types/base-components/search-bar/SearchBar.d.ts.map +1 -0
  703. package/build/types/base-components/select/Select.d.ts +40 -0
  704. package/build/types/base-components/select/Select.d.ts.map +1 -0
  705. package/build/types/base-components/skeleton/SkeletonBar.d.ts +9 -0
  706. package/build/types/base-components/skeleton/SkeletonBar.d.ts.map +1 -0
  707. package/build/types/base-components/switch/Switch.d.ts +10 -0
  708. package/build/types/base-components/switch/Switch.d.ts.map +1 -0
  709. package/build/types/base-components/tooltip/Tooltip.d.ts +31 -0
  710. package/build/types/base-components/tooltip/Tooltip.d.ts.map +1 -0
  711. package/build/types/base-components/tooltip/index.d.ts +1 -0
  712. package/build/types/base-components/tooltip/index.d.ts.map +1 -0
  713. package/build/types/filter-list/FilterInput.d.ts +15 -0
  714. package/build/types/filter-list/FilterInput.d.ts.map +1 -0
  715. package/build/types/filter-list/FilterList.d.ts +4 -0
  716. package/build/types/filter-list/FilterList.d.ts.map +1 -0
  717. package/build/types/filter-list/FilterListApi.d.ts +106 -22
  718. package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
  719. package/build/types/filter-list/FilterListItemApi.d.ts +114 -53
  720. package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
  721. package/build/types/filter-list/base/AddFilterPopover.d.ts +12 -0
  722. package/build/types/filter-list/base/AddFilterPopover.d.ts.map +1 -0
  723. package/build/types/filter-list/base/BaseFilterList.d.ts +3 -0
  724. package/build/types/filter-list/base/BaseFilterList.d.ts.map +1 -0
  725. package/build/types/filter-list/base/BaseFilterListApi.d.ts +29 -0
  726. package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -0
  727. package/build/types/filter-list/base/DragHandleIcon.d.ts +2 -0
  728. package/build/types/filter-list/base/DragHandleIcon.d.ts.map +1 -0
  729. package/build/types/filter-list/base/FilterIcons.d.ts +11 -0
  730. package/build/types/filter-list/base/FilterIcons.d.ts.map +1 -0
  731. package/build/types/filter-list/base/FilterListContent.d.ts +17 -0
  732. package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -0
  733. package/build/types/filter-list/base/FilterListHeader.d.ts +14 -0
  734. package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -0
  735. package/build/types/filter-list/base/FilterListItem.d.ts +20 -0
  736. package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -0
  737. package/build/types/filter-list/base/SortableFilterListItem.d.ts +15 -0
  738. package/build/types/filter-list/base/SortableFilterListItem.d.ts.map +1 -0
  739. package/build/types/filter-list/base/index.d.ts +5 -0
  740. package/build/types/filter-list/base/index.d.ts.map +1 -0
  741. package/build/types/filter-list/base/inputs/CheckboxListInput.d.ts +16 -0
  742. package/build/types/filter-list/base/inputs/CheckboxListInput.d.ts.map +1 -0
  743. package/build/types/filter-list/base/inputs/CheckboxListSkeleton.d.ts +2 -0
  744. package/build/types/filter-list/base/inputs/CheckboxListSkeleton.d.ts.map +1 -0
  745. package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts +13 -0
  746. package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts.map +1 -0
  747. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts +17 -0
  748. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts.map +1 -0
  749. package/build/types/filter-list/base/inputs/ListogramInput.d.ts +20 -0
  750. package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -0
  751. package/build/types/filter-list/base/inputs/ListogramSkeleton.d.ts +2 -0
  752. package/build/types/filter-list/base/inputs/ListogramSkeleton.d.ts.map +1 -0
  753. package/build/types/filter-list/base/inputs/MultiDateInput.d.ts +12 -0
  754. package/build/types/filter-list/base/inputs/MultiDateInput.d.ts.map +1 -0
  755. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts +18 -0
  756. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -0
  757. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts +15 -0
  758. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts.map +1 -0
  759. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts +17 -0
  760. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts.map +1 -0
  761. package/build/types/filter-list/base/inputs/RangeInput.d.ts +30 -0
  762. package/build/types/filter-list/base/inputs/RangeInput.d.ts.map +1 -0
  763. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts +13 -0
  764. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -0
  765. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts +18 -0
  766. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts.map +1 -0
  767. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts +18 -0
  768. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts.map +1 -0
  769. package/build/types/filter-list/base/inputs/TimelineInput.d.ts +11 -0
  770. package/build/types/filter-list/base/inputs/TimelineInput.d.ts.map +1 -0
  771. package/build/types/filter-list/base/inputs/ToggleInput.d.ts +10 -0
  772. package/build/types/filter-list/base/inputs/ToggleInput.d.ts.map +1 -0
  773. package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts +16 -0
  774. package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts.map +1 -0
  775. package/build/types/filter-list/base/inputs/dateUtils.d.ts +17 -0
  776. package/build/types/filter-list/base/inputs/dateUtils.d.ts.map +1 -0
  777. package/build/types/filter-list/base/inputs/index.d.ts +8 -0
  778. package/build/types/filter-list/base/inputs/index.d.ts.map +1 -0
  779. package/build/types/filter-list/base/inputs/useStaleData.d.ts +1 -0
  780. package/build/types/filter-list/base/inputs/useStaleData.d.ts.map +1 -0
  781. package/build/types/filter-list/hooks/useFilterListState.d.ts +12 -0
  782. package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -0
  783. package/build/types/filter-list/hooks/useFilterVisibility.d.ts +8 -0
  784. package/build/types/filter-list/hooks/useFilterVisibility.d.ts.map +1 -0
  785. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +17 -0
  786. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -0
  787. package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts +14 -0
  788. package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts.map +1 -0
  789. package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts +10 -0
  790. package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts.map +1 -0
  791. package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts +12 -0
  792. package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts.map +1 -0
  793. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts +21 -0
  794. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -0
  795. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts +16 -0
  796. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -0
  797. package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts +9 -0
  798. package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts.map +1 -0
  799. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts +13 -0
  800. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -0
  801. package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts +12 -0
  802. package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -0
  803. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts +17 -0
  804. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -0
  805. package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts +9 -0
  806. package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts.map +1 -0
  807. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts +13 -0
  808. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -0
  809. package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts +13 -0
  810. package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts.map +1 -0
  811. package/build/types/filter-list/inputs/TimelineFilterInput.d.ts +9 -0
  812. package/build/types/filter-list/inputs/TimelineFilterInput.d.ts.map +1 -0
  813. package/build/types/filter-list/inputs/ToggleFilterInput.d.ts +9 -0
  814. package/build/types/filter-list/inputs/ToggleFilterInput.d.ts.map +1 -0
  815. package/build/types/filter-list/types/AggregationTypes.d.ts +5 -0
  816. package/build/types/filter-list/types/AggregationTypes.d.ts.map +1 -0
  817. package/build/types/filter-list/types/CustomRendererTypes.d.ts +76 -0
  818. package/build/types/filter-list/types/CustomRendererTypes.d.ts.map +1 -0
  819. package/build/types/filter-list/types/KeywordSearchTypes.d.ts +56 -0
  820. package/build/types/filter-list/types/KeywordSearchTypes.d.ts.map +1 -0
  821. package/build/types/filter-list/types/LinkedFilterTypes.d.ts +70 -0
  822. package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -0
  823. package/build/types/filter-list/types/index.d.ts +3 -0
  824. package/build/types/filter-list/types/index.d.ts.map +1 -0
  825. package/build/types/filter-list/utils/aggregationHelpers.d.ts +9 -0
  826. package/build/types/filter-list/utils/aggregationHelpers.d.ts.map +1 -0
  827. package/build/types/filter-list/utils/coerceFilterValue.d.ts +11 -0
  828. package/build/types/filter-list/utils/coerceFilterValue.d.ts.map +1 -0
  829. package/build/types/filter-list/utils/filterStateSerialization.d.ts +3 -0
  830. package/build/types/filter-list/utils/filterStateSerialization.d.ts.map +1 -0
  831. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts +20 -0
  832. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -0
  833. package/build/types/filter-list/utils/filterValues.d.ts +7 -0
  834. package/build/types/filter-list/utils/filterValues.d.ts.map +1 -0
  835. package/build/types/filter-list/utils/getFilterKey.d.ts +3 -0
  836. package/build/types/filter-list/utils/getFilterKey.d.ts.map +1 -0
  837. package/build/types/filter-list/utils/getFilterLabel.d.ts +3 -0
  838. package/build/types/filter-list/utils/getFilterLabel.d.ts.map +1 -0
  839. package/build/types/object-table/ColumnConfigDialog.d.ts +18 -0
  840. package/build/types/object-table/ColumnConfigDialog.d.ts.map +1 -0
  841. package/build/types/object-table/DefaultCellRenderer.d.ts +3 -0
  842. package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -0
  843. package/build/types/object-table/EditableCell.d.ts +26 -0
  844. package/build/types/object-table/EditableCell.d.ts.map +1 -0
  845. package/build/types/object-table/LoadingCell.d.ts +1 -0
  846. package/build/types/object-table/LoadingCell.d.ts.map +1 -1
  847. package/build/types/object-table/LoadingRow.d.ts.map +1 -1
  848. package/build/types/object-table/LoadingStateTable.d.ts.map +1 -1
  849. package/build/types/object-table/MultiColumnSortDialog.d.ts +15 -0
  850. package/build/types/object-table/MultiColumnSortDialog.d.ts.map +1 -0
  851. package/build/types/object-table/ObjectTable.d.ts +1 -9
  852. package/build/types/object-table/ObjectTable.d.ts.map +1 -1
  853. package/build/types/object-table/ObjectTableApi.d.ts +150 -20
  854. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  855. package/build/types/object-table/SortableItemsList.d.ts +13 -0
  856. package/build/types/object-table/SortableItemsList.d.ts.map +1 -0
  857. package/build/types/object-table/Table.d.ts +26 -1
  858. package/build/types/object-table/Table.d.ts.map +1 -1
  859. package/build/types/object-table/TableBody.d.ts +4 -1
  860. package/build/types/object-table/TableBody.d.ts.map +1 -1
  861. package/build/types/object-table/TableEditContainer.d.ts +9 -0
  862. package/build/types/object-table/TableEditContainer.d.ts.map +1 -0
  863. package/build/types/object-table/TableHeader.d.ts +3 -1
  864. package/build/types/object-table/TableHeader.d.ts.map +1 -1
  865. package/build/types/object-table/TableHeaderWithPopover.d.ts +30 -6
  866. package/build/types/object-table/TableHeaderWithPopover.d.ts.map +1 -1
  867. package/build/types/object-table/TableRow.d.ts +4 -1
  868. package/build/types/object-table/TableRow.d.ts.map +1 -1
  869. package/build/types/object-table/components/AsyncValueCell.d.ts +5 -0
  870. package/build/types/object-table/components/AsyncValueCell.d.ts.map +1 -0
  871. package/build/types/object-table/hooks/useColumnDefs.d.ts.map +1 -1
  872. package/build/types/object-table/hooks/useColumnResize.d.ts +10 -0
  873. package/build/types/object-table/hooks/useColumnResize.d.ts.map +1 -0
  874. package/build/types/object-table/hooks/useColumnVisibility.d.ts +18 -7
  875. package/build/types/object-table/hooks/useColumnVisibility.d.ts.map +1 -1
  876. package/build/types/object-table/hooks/useEditableTable.d.ts +17 -0
  877. package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -0
  878. package/build/types/object-table/hooks/useFunctionColumnsData.d.ts +13 -0
  879. package/build/types/object-table/hooks/useFunctionColumnsData.d.ts.map +1 -0
  880. package/build/types/object-table/hooks/useObjectTableData.d.ts +13 -5
  881. package/build/types/object-table/hooks/useObjectTableData.d.ts.map +1 -1
  882. package/build/types/object-table/hooks/useRowSelection.d.ts +8 -6
  883. package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
  884. package/build/types/object-table/utils/AsyncCellData.d.ts +8 -0
  885. package/build/types/object-table/utils/AsyncCellData.d.ts.map +1 -0
  886. package/build/types/object-table/utils/constants.d.ts +1 -0
  887. package/build/types/object-table/utils/constants.d.ts.map +1 -1
  888. package/build/types/object-table/utils/getCellId.d.ts +2 -0
  889. package/build/types/object-table/utils/getCellId.d.ts.map +1 -0
  890. package/build/types/object-table/utils/types.d.ts +39 -0
  891. package/build/types/object-table/utils/types.d.ts.map +1 -0
  892. package/build/types/pdf-viewer/PdfRenderer.d.ts +8 -0
  893. package/build/types/pdf-viewer/PdfRenderer.d.ts.map +1 -0
  894. package/build/types/pdf-viewer/PdfViewer.d.ts +4 -0
  895. package/build/types/pdf-viewer/PdfViewer.d.ts.map +1 -0
  896. package/build/types/pdf-viewer/PdfViewerAnnotationLayer.d.ts +10 -0
  897. package/build/types/pdf-viewer/PdfViewerAnnotationLayer.d.ts.map +1 -0
  898. package/build/types/pdf-viewer/PdfViewerSearchBar.d.ts +12 -0
  899. package/build/types/pdf-viewer/PdfViewerSearchBar.d.ts.map +1 -0
  900. package/build/types/pdf-viewer/PdfViewerSidebar.d.ts +10 -0
  901. package/build/types/pdf-viewer/PdfViewerSidebar.d.ts.map +1 -0
  902. package/build/types/pdf-viewer/PdfViewerThumbnail.d.ts +10 -0
  903. package/build/types/pdf-viewer/PdfViewerThumbnail.d.ts.map +1 -0
  904. package/build/types/pdf-viewer/PdfViewerToolbar.d.ts +14 -0
  905. package/build/types/pdf-viewer/PdfViewerToolbar.d.ts.map +1 -0
  906. package/build/types/pdf-viewer/constants.d.ts +17 -0
  907. package/build/types/pdf-viewer/constants.d.ts.map +1 -0
  908. package/build/types/pdf-viewer/hooks/usePdfAnnotationPortals.d.ts +10 -0
  909. package/build/types/pdf-viewer/hooks/usePdfAnnotationPortals.d.ts.map +1 -0
  910. package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts +9 -0
  911. package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts.map +1 -0
  912. package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts +9 -0
  913. package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts.map +1 -0
  914. package/build/types/pdf-viewer/hooks/usePdfViewerSearch.d.ts +15 -0
  915. package/build/types/pdf-viewer/hooks/usePdfViewerSearch.d.ts.map +1 -0
  916. package/build/types/pdf-viewer/hooks/usePdfViewerSync.d.ts +15 -0
  917. package/build/types/pdf-viewer/hooks/usePdfViewerSync.d.ts.map +1 -0
  918. package/build/types/pdf-viewer/types.d.ts +44 -0
  919. package/build/types/pdf-viewer/types.d.ts.map +1 -0
  920. package/build/types/public/experimental.d.ts +13 -3
  921. package/build/types/public/experimental.d.ts.map +1 -1
  922. package/build/types/shared/ErrorBoundary.d.ts +19 -0
  923. package/build/types/shared/ErrorBoundary.d.ts.map +1 -0
  924. package/build/types/shared/assertUnreachable.d.ts +6 -0
  925. package/build/types/shared/assertUnreachable.d.ts.map +1 -0
  926. package/build/types/shared/typedMemo.d.ts +6 -0
  927. package/build/types/shared/typedMemo.d.ts.map +1 -0
  928. package/package.json +13 -5
  929. package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js +0 -147
  930. package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js.map +0 -1
  931. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js +0 -508
  932. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js.map +0 -1
  933. package/build/browser/object-table/hooks/__tests__/useColumnPinning.test.js +0 -266
  934. package/build/browser/object-table/hooks/__tests__/useColumnPinning.test.js.map +0 -1
  935. package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js +0 -178
  936. package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js.map +0 -1
  937. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js +0 -227
  938. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js.map +0 -1
  939. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js +0 -548
  940. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js.map +0 -1
  941. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js +0 -275
  942. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js.map +0 -1
  943. package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js +0 -211
  944. package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js.map +0 -1
  945. package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js +0 -147
  946. package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js.map +0 -1
  947. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js +0 -508
  948. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js.map +0 -1
  949. package/build/esm/object-table/hooks/__tests__/useColumnPinning.test.js +0 -266
  950. package/build/esm/object-table/hooks/__tests__/useColumnPinning.test.js.map +0 -1
  951. package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js +0 -178
  952. package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js.map +0 -1
  953. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js +0 -227
  954. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js.map +0 -1
  955. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js +0 -548
  956. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js.map +0 -1
  957. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js +0 -275
  958. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js.map +0 -1
  959. package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js +0 -211
  960. package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js.map +0 -1
  961. package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts +0 -1
  962. package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts.map +0 -1
  963. package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts +0 -1
  964. package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts.map +0 -1
  965. package/build/types/object-table/hooks/__tests__/useColumnPinning.test.d.ts +0 -1
  966. package/build/types/object-table/hooks/__tests__/useColumnPinning.test.d.ts.map +0 -1
  967. package/build/types/object-table/hooks/__tests__/useColumnVisibility.test.d.ts +0 -1
  968. package/build/types/object-table/hooks/__tests__/useColumnVisibility.test.d.ts.map +0 -1
  969. package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts +0 -1
  970. package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts.map +0 -1
  971. package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts +0 -1
  972. package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts.map +0 -1
  973. package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts +0 -1
  974. package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts.map +0 -1
  975. package/build/types/object-table/hooks/__tests__/useTableSorting.test.d.ts +0 -1
  976. package/build/types/object-table/hooks/__tests__/useTableSorting.test.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/object-table/hooks/useColumnDefs.ts","../../../src/object-table/utils/constants.ts","../../../src/object-table/hooks/useColumnPinning.ts","../../../src/object-table/hooks/useColumnVisibility.ts","../../../src/object-table/hooks/useObjectTableData.ts","../../../src/object-table/utils/getRowId.ts","../../../src/object-table/hooks/useRowSelection.ts","../../../src/base-components/checkbox/Checkbox.module.css","../../../src/base-components/checkbox/Checkbox.tsx","../../../src/object-table/SelectionCells.tsx","../../../src/object-table/hooks/useSelectionColumn.tsx","../../../src/object-table/hooks/useTableSorting.ts","../../../src/object-table/LoadingCell.module.css","../../../src/object-table/TableCell.module.css","../../../src/object-table/LoadingCell.tsx","../../../src/object-table/TableRow.module.css","../../../src/object-table/LoadingRow.tsx","../../../src/object-table/TableBody.module.css","../../../src/object-table/TableHeader.module.css","../../../src/object-table/TableHeaderContent.module.css","../../../src/object-table/TableHeaderContent.tsx","../../../src/object-table/TableHeaderWithPopover.module.css","../../../src/object-table/TableHeaderWithPopover.tsx","../../../src/object-table/utils/getColumnPinningStyles.ts","../../../src/object-table/TableHeader.tsx","../../../src/object-table/LoadingStateTable.tsx","../../../src/object-table/NonIdealState.module.css","../../../src/object-table/NonIdealState.tsx","../../../src/object-table/Table.module.css","../../../src/object-table/CellContextMenu.module.css","../../../src/object-table/CellContextMenu.tsx","../../../src/object-table/hooks/useCellContextMenu.ts","../../../src/object-table/TableCell.tsx","../../../src/object-table/TableRow.tsx","../../../src/object-table/TableBody.tsx","../../../src/object-table/Table.tsx","../../../src/object-table/ObjectTable.tsx"],"names":["useOsdkMetadata","useMemo","useState","useEffect","useCallback","useOsdkObjects","React","BaseUICheckbox","classnames","Minus","Tick","classNames","flexRender","Menu","Pin","SortAlphabetical","SortAlphabeticalDesc","ChevronDown","Unpin","Remove","VerticalDistribution","useRef","createPortal","useVirtualizer","useLayoutEffect","useReactTable","getCoreRowModel"],"mappings":"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","file":"experimental.cjs","sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useOsdkMetadata } from \"@osdk/react\";\nimport { useMemo } from \"react\";\n/**\n * Hook which builds column definitions for tanstack-table given the objectSet\n */\nexport function useColumnDefs(objectType, columnDefinitions) {\n const {\n metadata,\n loading,\n error\n } = useOsdkMetadata(objectType);\n const columns = useMemo(() => {\n const objectProperties = metadata?.properties;\n // If columnDefinitions is provided, construct colDefs with it\n if (columnDefinitions) {\n return getColumnsFromColumnDefinitions(columnDefinitions, objectProperties);\n }\n\n // If not, return the default columns from the object properties\n return getDefaultColumns(objectProperties);\n }, [columnDefinitions, metadata?.properties]);\n return {\n columns,\n loading,\n error\n };\n}\nfunction getColumnsFromColumnDefinitions(columnDefinitions, objectProperties) {\n return columnDefinitions.map(col => {\n const {\n locator,\n width,\n minWidth,\n maxWidth,\n resizable,\n orderable,\n filterable,\n renderCell,\n renderHeader\n } = col;\n const propertyMetadata = locator.type === \"property\" ? objectProperties?.[locator.id] : undefined;\n const colKey = locator.id;\n const colDef = {\n id: colKey,\n accessorKey: colKey,\n header: renderHeader ?? propertyMetadata?.displayName,\n size: width,\n ...(minWidth ? {\n minSize: minWidth\n } : {}),\n ...(maxWidth ? {\n maxSize: maxWidth\n } : {}),\n enableResizing: resizable,\n enableSorting: orderable,\n enableColumnFilter: filterable,\n cell: cellContext => {\n const object = cellContext.row.original;\n return renderCell ? renderCell(object, locator) : cellContext.getValue();\n }\n };\n return colDef;\n });\n}\nfunction getDefaultColumns(objectProperties) {\n if (!objectProperties) return [];\n return Object.entries(objectProperties).map(([key, property]) => {\n const colDef = {\n accessorKey: key,\n header: property.displayName ?? key\n };\n return colDef;\n });\n}","/*\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\nexport const SELECTION_COLUMN_ID = \"__selection__\";","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useEffect, useState } from \"react\";\nimport { SELECTION_COLUMN_ID } from \"../utils/constants.js\";\nexport const useColumnPinning = ({\n columnDefinitions,\n hasSelectionColumn,\n onColumnsPinnedChanged\n}) => {\n const [columnPinning, setColumnPinning] = useState({\n left: [],\n right: []\n });\n\n // Update column pinning when columnDefinitions change\n useEffect(() => {\n const defaultState = getColumnPinningStateFromColumnDefs(columnDefinitions);\n const selectionCol = hasSelectionColumn ? [SELECTION_COLUMN_ID] : [];\n setColumnPinning({\n left: [...selectionCol, ...(defaultState.left ?? [])],\n right: [...(defaultState.right ?? [])]\n });\n }, [columnDefinitions, hasSelectionColumn]);\n const onColumnPinningChange = useCallback(updater => {\n setColumnPinning(prev => {\n const newPinning = typeof updater === \"function\" ? updater(prev) : updater;\n if (onColumnsPinnedChanged) {\n const newStates = convertColumnPinningStateToArray(newPinning);\n const stateWithoutSelectionCol = newStates.filter(state => state.columnId !== SELECTION_COLUMN_ID);\n onColumnsPinnedChanged(stateWithoutSelectionCol);\n }\n return newPinning;\n });\n }, [onColumnsPinnedChanged]);\n return {\n columnPinning,\n onColumnPinningChange\n };\n};\nconst getColumnPinningStateFromColumnDefs = columnDefinitions => {\n if (!columnDefinitions) {\n return {};\n }\n const columnPinningState = columnDefinitions.reduce((acc, {\n locator,\n pinned\n }) => {\n const colKey = locator.id.toString();\n const isPinned = pinned != null && pinned !== \"none\";\n if (!isPinned) {\n return acc;\n }\n if (pinned === \"left\") {\n return {\n ...acc,\n left: [...(acc.left ?? []), colKey]\n };\n }\n return {\n ...acc,\n right: [...(acc.right ?? []), colKey]\n };\n }, {\n left: [],\n right: []\n });\n return columnPinningState;\n};\n\n/**\n * Converts ColumnPinningState to array format for the callback\n */\nfunction convertColumnPinningStateToArray(pinningState) {\n return [...(pinningState.left ?? []).map(columnId => ({\n columnId,\n pinned: \"left\"\n })), ...(pinningState.right ?? []).map(columnId => ({\n columnId,\n pinned: \"right\"\n }))];\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useMemo } from \"react\";\nexport const useColumnVisibility = ({\n columnDefinitions\n}) => {\n const columnVisibility = useMemo(() => {\n if (columnDefinitions) {\n const colVisibility = columnDefinitions.reduce((acc, colDef) => {\n if (colDef.isVisible !== undefined) {\n const {\n locator\n } = colDef;\n const colKey = locator.id;\n return {\n ...acc,\n [colKey]: colDef.isVisible\n };\n }\n return acc;\n }, {});\n return colVisibility;\n }\n }, [columnDefinitions]);\n return columnVisibility;\n};","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useOsdkObjects } from \"@osdk/react/experimental\";\nimport { useMemo } from \"react\";\nconst PAGE_SIZE = 50;\n\n/**\n * This hook is a wrapper around useOsdkObjects\n * It extracts RDP locators from columnDefinitions and calls useObjectSet + withProperties\n * to return data containing the derived properties.\n */\nexport function useObjectTableData(objectOrInterfaceType, columnDefinitions, filter, sorting) {\n const orderBy = useMemo(() => {\n if (!sorting || sorting.length === 0) {\n return undefined;\n }\n return sorting.reduce((acc, sort) => {\n acc[sort.id] = sort.desc ? \"desc\" : \"asc\";\n return acc;\n }, {});\n }, [sorting]);\n\n // Extract derived properties definition\n const withProperties = useMemo(() => {\n if (!columnDefinitions) {\n return;\n }\n const rdpColumns = columnDefinitions.map(colDef => colDef.locator).filter(colLocator => {\n return colLocator.type === \"rdp\";\n });\n if (!rdpColumns.length) {\n return;\n }\n return rdpColumns.reduce((acc, cur) => {\n return {\n ...acc,\n [cur.id]: cur.creator\n };\n }, {});\n }, [columnDefinitions]);\n return useOsdkObjects(objectOrInterfaceType, {\n withProperties,\n pageSize: PAGE_SIZE,\n where: filter,\n orderBy\n });\n}","/*\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\nexport const getRowId = row => {\n return getRowIdFromPrimaryKey(row.$primaryKey);\n};\nexport const getRowIdFromPrimaryKey = primaryKey => primaryKey.toString();","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useMemo, useState } from \"react\";\nimport { getRowId, getRowIdFromPrimaryKey } from \"../utils/getRowId.js\";\nexport function useRowSelection({\n selectionMode = \"none\",\n selectedRows,\n onRowSelection,\n data\n}) {\n // The rowSelectionState in uncontrolled mode\n const [internalRowSelection, setInternalRowSelection] = useState({});\n\n // Used for shift-click behavior in \"multiple\" mode\n const [lastSelectedRowIndex, setLastSelectedRowIndex] = useState(null);\n const isControlled = selectedRows !== undefined;\n const isSelectionEnabled = selectionMode !== \"none\";\n\n // Row selection state\n // If controlled mode, return the state from selectedRows prop\n // If uncontrolled, return the internalRowSelection state\n const rowSelectionState = useMemo(() => {\n if (!isSelectionEnabled) return {};\n if (isControlled && selectedRows) {\n return getRowSelectionState(selectedRows);\n }\n return internalRowSelection;\n }, [isSelectionEnabled, isControlled, selectedRows, internalRowSelection]);\n const selectedCount = Object.values(rowSelectionState).filter(Boolean).length;\n const totalCount = data?.length ?? 0;\n const isAllSelected = totalCount > 0 && selectedCount === totalCount;\n const hasSelection = selectedCount > 0;\n const onToggleAll = useCallback(() => {\n if (!isSelectionEnabled || !data) return;\n const newSelectedRows = isAllSelected ? [] : data.map(item => item.$primaryKey);\n if (!isControlled) {\n setInternalRowSelection(getRowSelectionState(newSelectedRows));\n }\n onRowSelection?.(newSelectedRows);\n }, [isSelectionEnabled, data, isAllSelected, isControlled, onRowSelection]);\n const onToggleRow = useCallback((rowId, rowIndex, isShiftClick = false) => {\n if (!isSelectionEnabled || !data) return;\n let newSelectedRows = [];\n if (selectionMode === \"single\") {\n newSelectedRows = getSingleSelectionRows({\n rowId,\n rowIndex,\n data,\n rowSelectionState\n });\n setLastSelectedRowIndex(rowIndex);\n } else {\n // Multiple selection mode\n\n // When user does shiftClick but lastSelectedRowIndex is null,\n // it is treated as a normal click in multiple selection\n if (isShiftClick && lastSelectedRowIndex != null) {\n newSelectedRows = getRangeSelectionRows({\n rowId,\n rowIndex,\n data,\n lastSelectedRowIndex,\n rowSelectionState\n });\n } else {\n newSelectedRows = getMultipleSelectionRows({\n rowId,\n rowIndex,\n data,\n rowSelectionState\n });\n }\n setLastSelectedRowIndex(rowIndex);\n }\n if (!isControlled) {\n setInternalRowSelection(getRowSelectionState(newSelectedRows));\n }\n onRowSelection?.(newSelectedRows);\n }, [isSelectionEnabled, data, selectionMode, lastSelectedRowIndex, isControlled, rowSelectionState, onRowSelection]);\n return {\n rowSelection: rowSelectionState,\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow\n };\n}\nfunction getSingleSelectionRows({\n rowId,\n rowIndex,\n data,\n rowSelectionState\n}) {\n const primaryKey = data[rowIndex].$primaryKey;\n // Toggle row selection in single selection mode\n const newSelectedRows = rowSelectionState[rowId] ? [] : [primaryKey];\n return newSelectedRows;\n}\nfunction getRangeSelectionRows({\n lastSelectedRowIndex,\n rowIndex,\n data,\n rowSelectionState\n}) {\n // This function is only called if lastSelectedRowIndex is not null\n // This condition is added for typechecks only\n if (lastSelectedRowIndex != null) {\n const rowsInRange = getRowsInRange(data, lastSelectedRowIndex, rowIndex);\n const primaryKeysInRange = rowsInRange.map(item => item.$primaryKey);\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n\n // Add all rows in range to selectedRows if not yet selected\n const newSelectedRows = [...currentlySelected];\n primaryKeysInRange.forEach(item => {\n if (!newSelectedRows.includes(item)) {\n newSelectedRows.push(item);\n }\n });\n return newSelectedRows;\n }\n return [];\n}\nfunction getMultipleSelectionRows({\n rowIndex,\n data,\n rowSelectionState\n}) {\n const primaryKey = data[rowIndex].$primaryKey;\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n // Handles single row toggle in multiple selection mode\n const newSelectedRows = currentlySelected.includes(primaryKey) ? currentlySelected.filter(i => i !== primaryKey) : [...currentlySelected, primaryKey];\n return newSelectedRows;\n}\n\n/**\n * Builds a range of rows from startIndex to endIndex\n */\nfunction getRowsInRange(data, startIndex, endIndex) {\n const start = Math.min(startIndex, endIndex);\n const end = Math.max(startIndex, endIndex);\n const rows = [];\n for (let i = start; i <= end; i++) {\n const item = data[i];\n if (item) {\n rows.push(item);\n }\n }\n return rows;\n}\n\n/**\n * Converts an array of primary keys to a RowSelectionState object\n */\nfunction getRowSelectionState(primaryKeys) {\n return primaryKeys.reduce((acc, primaryKey) => {\n acc[getRowIdFromPrimaryKey(primaryKey)] = true;\n return acc;\n }, {});\n}\n\n/**\n * Converts from a RowSelectionState object back to an array of primary keys\n */\nfunction getSelectedPrimaryKeys(selectionState, data) {\n return data.filter(item => selectionState[getRowId(item)]).map(item => item.$primaryKey);\n}","/*\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.osdkCheckboxRoot {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: calc(\n var(--osdk-checkbox-icon-size) + var(--osdk-checkbox-padding) * 2\n );\n min-height: calc(\n var(--osdk-checkbox-icon-size) + var(--osdk-checkbox-padding) * 2\n );\n padding: var(--osdk-checkbox-padding);\n box-sizing: border-box;\n cursor: pointer;\n border-radius: var(--osdk-surface-border-radius);\n border: var(--osdk-checkbox-border);\n\n &[data-unchecked] {\n background-color: var(--osdk-checkbox-bg);\n\n &:hover {\n background-color: var(--osdk-checkbox-bg-hover);\n }\n\n &:active {\n background-color: var(--osdk-checkbox-bg-active);\n }\n }\n\n &[data-checked],\n &[data-indeterminate] {\n background-color: var(--osdk-checkbox-bg-checked);\n\n &:hover {\n background-color: var(--osdk-checkbox-bg-checked-hover);\n }\n\n &:active {\n background-color: var(--osdk-checkbox-bg-checked-active);\n }\n }\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n outline: var(--osdk-focus-visible-outline);\n outline-offset: calc(-1 * var(--osdk-focus-visible-outline-offset));\n }\n}\n\n.osdkCheckboxIndicator {\n display: flex;\n justify-content: center;\n align-items: center;\n color: var(--osdk-checkbox-checked-foreground);\n width: var(--osdk-checkbox-icon-size);\n height: var(--osdk-checkbox-icon-size);\n\n &[data-unchecked] {\n display: none;\n }\n}\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Checkbox as BaseUICheckbox } from \"@base-ui/react/checkbox\";\nimport { Minus, Tick } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./Checkbox.module.css\";\nexport function Checkbox({\n indeterminate,\n className,\n indicatorProps,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUICheckbox.Root, _extends({\n className: classnames(styles.osdkCheckboxRoot, className),\n indeterminate: indeterminate\n }, rest), /*#__PURE__*/React.createElement(BaseUICheckbox.Indicator, _extends({}, indicatorProps, {\n className: classnames(styles.osdkCheckboxIndicator, indicatorProps?.className)\n }), indeterminate ? /*#__PURE__*/React.createElement(Minus, {\n color: \"currentColor\"\n }) : /*#__PURE__*/React.createElement(Tick, {\n color: \"currentColor\"\n })));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useCallback } from \"react\";\nimport { Checkbox } from \"../base-components/checkbox/Checkbox.js\";\nexport function SelectionHeaderCell({\n isAllSelected,\n hasSelection,\n onToggleAll\n}) {\n return /*#__PURE__*/React.createElement(Checkbox, {\n indeterminate: hasSelection && !isAllSelected,\n checked: isAllSelected,\n onCheckedChange: onToggleAll,\n \"aria-label\": \"Select all rows\"\n });\n}\nexport function SelectionCell({\n row,\n onToggleRow\n}) {\n const handleClick = useCallback(event => {\n const isShiftClick = event.shiftKey;\n onToggleRow(row.id, row.index, isShiftClick);\n }, [row, onToggleRow]);\n return /*#__PURE__*/React.createElement(Checkbox, {\n checked: row.getIsSelected(),\n onClick: handleClick,\n \"aria-label\": `Select row ${row.index + 1}`\n });\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useMemo } from \"react\";\nimport { SelectionCell, SelectionHeaderCell } from \"../SelectionCells.js\";\nimport { SELECTION_COLUMN_ID } from \"../utils/constants.js\";\nexport const useSelectionColumn = ({\n selectionMode,\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow\n}) => {\n const selectionColumn = useMemo(() => {\n if (selectionMode === \"none\") return null;\n const colDef = {\n id: SELECTION_COLUMN_ID,\n header: () => selectionMode === \"multiple\" ? /*#__PURE__*/React.createElement(SelectionHeaderCell, {\n isAllSelected: isAllSelected,\n hasSelection: hasSelection,\n onToggleAll: onToggleAll\n }) : null,\n cell: ({\n row\n }) => /*#__PURE__*/React.createElement(SelectionCell, {\n row: row,\n onToggleRow: onToggleRow\n }),\n size: 50,\n minSize: 50,\n maxSize: 50,\n enableSorting: false,\n enableResizing: false,\n enablePinning: false\n };\n return colDef;\n }, [selectionMode, isAllSelected, hasSelection, onToggleAll, onToggleRow]);\n return selectionColumn;\n};","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useMemo, useState } from \"react\";\nexport const useTableSorting = ({\n orderBy,\n defaultOrderBy,\n onOrderByChanged\n}) => {\n // The sorting state in uncontrolled mode\n const [internalSorting, setInternalSorting] = useState(() => defaultOrderBy ? convertOrderByToSortingState(defaultOrderBy) : []);\n const isControlled = orderBy !== undefined;\n\n // Sorting state\n // If controlled mode, return the state from orderBy prop\n // If uncontrolled, return the internalSorting state\n const sortingState = useMemo(() => orderBy ? convertOrderByToSortingState(orderBy) : internalSorting, [orderBy, internalSorting]);\n const onSortingChange = useCallback(updater => {\n const newSorting = typeof updater === \"function\" ? updater(sortingState) : updater;\n\n // Update internal state if uncontrolled\n if (!isControlled) {\n setInternalSorting(newSorting);\n }\n if (onOrderByChanged) {\n const newOrderBy = convertSortingStateToOrderBy(newSorting);\n onOrderByChanged(newOrderBy);\n }\n }, [isControlled, sortingState, onOrderByChanged]);\n return {\n sorting: sortingState,\n onSortingChange\n };\n};\nfunction convertOrderByToSortingState(orderBy) {\n return orderBy.map(({\n property,\n direction\n }) => ({\n id: property,\n desc: direction === \"desc\"\n }));\n}\nfunction convertSortingStateToOrderBy(sorting) {\n return sorting.map(({\n id,\n desc\n }) => ({\n property: id,\n direction: desc ? \"desc\" : \"asc\"\n }));\n}","/*\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","/*\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","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./LoadingCell.module.css\";\nimport cellStyles from \"./TableCell.module.css\";\nexport function LoadingCell({\n width\n}) {\n return /*#__PURE__*/React.createElement(\"td\", {\n className: cellStyles.osdkTableCell,\n style: {\n width\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.osdkLoadingCell, styles.osdkCellSkeleton)\n }));\n}","/*\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","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport { LoadingCell } from \"./LoadingCell.js\";\nimport rowStyles from \"./TableRow.module.css\";\nexport function LoadingRow({\n headers,\n columnCount,\n translateY,\n rowHeight = 40,\n columnWidth = 80\n}) {\n return /*#__PURE__*/React.createElement(\"tr\", {\n className: rowStyles.osdkTableRow,\n style: {\n height: `${rowHeight}px`,\n transform: `translateY(${translateY}px)`\n }\n }, /*#__PURE__*/React.createElement(React.Fragment, null, Array.from({\n length: columnCount\n }).map((_, index) => {\n const width = headers.length > index ? headers[index].getSize() : columnWidth;\n return /*#__PURE__*/React.createElement(LoadingCell, {\n key: `loading-cell-${index}`,\n width: width\n });\n })));\n}","/*\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","/*\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","/*\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","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { flexRender } from \"@tanstack/react-table\";\nimport React from \"react\";\nimport styles from \"./TableHeaderContent.module.css\";\nexport function TableHeaderContent({\n header\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.osdkHeaderContent\n }, flexRender(header.column.columnDef.header, header.getContext()));\n}","/*\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","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Menu } from \"@base-ui/react/menu\";\nimport { ChevronDown, Pin, Remove, SortAlphabetical, SortAlphabeticalDesc, Unpin, VerticalDistribution } from \"@blueprintjs/icons\";\nimport classNames from \"classnames\";\nimport React, { useCallback, useState } from \"react\";\nimport { TableHeaderContent } from \"./TableHeaderContent.js\";\nimport styles from \"./TableHeaderWithPopover.module.css\";\nfunction HeaderMenuItem({\n onClick,\n icon: Icon,\n label,\n active = false\n}) {\n return /*#__PURE__*/React.createElement(Menu.Item, {\n closeOnClick: true,\n className: classNames(styles.osdkCenterContainer, styles.osdkContentGap, styles.osdkHeaderMenuItem, active && styles.osdkHeaderActiveMenuItem),\n onClick: onClick\n }, /*#__PURE__*/React.createElement(Icon, {\n className: styles.osdkHeaderIcon,\n color: \"currentColor\"\n }), /*#__PURE__*/React.createElement(\"span\", null, label));\n}\nexport function TableHeaderWithPopover({\n header,\n isColumnPinned,\n setColumnPinning,\n onSortChange,\n onResetSize\n}) {\n const [isOpen, setIsOpen] = useState(false);\n const handlePinLeft = useCallback(() => {\n setColumnPinning(prev => {\n return {\n left: [...(prev.left || []), header.column.id],\n right: prev.right?.filter(id => id !== header.column.id) || []\n };\n });\n }, [header.column.id, setColumnPinning]);\n const handleUnpin = useCallback(() => {\n setColumnPinning(prev => {\n return {\n left: prev.left?.filter(id => id !== header.column.id) || [],\n right: prev.right?.filter(id => id !== header.column.id) || []\n };\n });\n }, [header.column.id, setColumnPinning]);\n const handleSortAscending = useCallback(() => {\n header.column.toggleSorting(false);\n onSortChange?.([{\n id: header.column.id,\n desc: false\n }]);\n }, [header.column, onSortChange]);\n const handleSortDescending = useCallback(() => {\n header.column.toggleSorting(true);\n onSortChange?.([{\n id: header.column.id,\n desc: true\n }]);\n }, [header.column, onSortChange]);\n const handleClearAllSorts = useCallback(() => {\n header.column.clearSorting();\n onSortChange?.([]);\n }, [header.column, onSortChange]);\n const handleResetSize = useCallback(() => {\n header.column.resetSize();\n if (onResetSize) {\n onResetSize();\n }\n }, [header.column, onResetSize]);\n const handleInteraction = useCallback(e => {\n e.preventDefault();\n setIsOpen(prev => !prev);\n }, []);\n const isSorted = header.column.getIsSorted();\n const isSortable = header.column.getCanSort();\n return /*#__PURE__*/React.createElement(Menu.Root, {\n open: isOpen,\n onOpenChange: setIsOpen\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.osdkCenterContainer, styles.osdkContentGap, styles.osdkHeaderContainer),\n onContextMenu: handleInteraction\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.osdkCenterContainer, styles.osdkContentGap, styles.osdkHeaderContentLeft)\n }, isColumnPinned && /*#__PURE__*/React.createElement(Pin, {\n className: styles.osdkHeaderIcon,\n color: \"currentColor\"\n }), /*#__PURE__*/React.createElement(TableHeaderContent, {\n header: header\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.osdkCenterContainer, styles.osdkContentGap, styles.osdkHeaderContentRight)\n }, isSorted && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.osdkCenterContainer\n }, isSorted === \"asc\" ? /*#__PURE__*/React.createElement(SortAlphabetical, {\n className: styles.osdkHeaderIcon,\n color: \"currentColor\"\n }) : /*#__PURE__*/React.createElement(SortAlphabeticalDesc, {\n className: styles.osdkHeaderIcon,\n color: \"currentColor\"\n })), /*#__PURE__*/React.createElement(Menu.Trigger, {\n \"aria-label\": `Open header menu for column with id=${header.column.id}`,\n className: classNames(styles.osdkCenterContainer, styles.osdkHeaderPopoverTrigger)\n }, /*#__PURE__*/React.createElement(ChevronDown, {\n className: styles.osdkHeaderIcon\n }))), /*#__PURE__*/React.createElement(Menu.Portal, {\n container: document.body\n }, /*#__PURE__*/React.createElement(Menu.Positioner, {\n sideOffset: 4\n }, /*#__PURE__*/React.createElement(Menu.Popup, {\n className: styles.osdkHeaderPopup\n }, !isColumnPinned && /*#__PURE__*/React.createElement(HeaderMenuItem, {\n onClick: handlePinLeft,\n icon: Pin,\n label: \"Pin column\"\n }), isColumnPinned && /*#__PURE__*/React.createElement(HeaderMenuItem, {\n onClick: handleUnpin,\n icon: Unpin,\n label: \"Unpin Column\",\n active: true\n }), isSortable && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(HeaderMenuItem, {\n onClick: handleSortAscending,\n icon: SortAlphabetical,\n label: \"Sort ascending\",\n active: isSorted === \"asc\"\n }), /*#__PURE__*/React.createElement(HeaderMenuItem, {\n onClick: handleSortDescending,\n icon: SortAlphabeticalDesc,\n label: \"Sort descending\",\n active: isSorted === \"desc\"\n })), !!isSorted && /*#__PURE__*/React.createElement(HeaderMenuItem, {\n onClick: handleClearAllSorts,\n icon: Remove,\n label: \"Clear all sorts\"\n }), /*#__PURE__*/React.createElement(HeaderMenuItem, {\n onClick: handleResetSize,\n icon: VerticalDistribution,\n label: \"Reset Column Size\"\n }))))));\n}","/*\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\nexport function getColumnPinningStyles(column) {\n const isPinned = column.getIsPinned();\n return {\n columnStyles: {\n left: isPinned === \"left\" ? `${column.getStart(\"left\")}px` : undefined,\n right: isPinned === \"right\" ? `${column.getAfter(\"right\")}px` : undefined,\n width: column.getSize()\n }\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport styles from \"./TableHeader.module.css\";\nimport { TableHeaderContent } from \"./TableHeaderContent.js\";\nimport { TableHeaderWithPopover } from \"./TableHeaderWithPopover.js\";\nimport { SELECTION_COLUMN_ID } from \"./utils/constants.js\";\nimport { getColumnPinningStyles } from \"./utils/getColumnPinningStyles.js\";\nexport function TableHeader({\n table\n}) {\n // TODO: If value is number type, right align header\n\n const isResizing = !!table.getState().columnSizingInfo?.isResizingColumn;\n return /*#__PURE__*/React.createElement(\"thead\", {\n className: styles.osdkTableHeader,\n \"data-resizing\": isResizing\n }, table.getHeaderGroups().map(headerGroup => /*#__PURE__*/React.createElement(\"tr\", {\n key: headerGroup.id,\n className: styles.osdkTableHeaderRow\n }, headerGroup.headers.map(header => {\n const {\n columnStyles\n } = getColumnPinningStyles(header.column);\n const isColumnPinned = header.column.getIsPinned();\n const isSelectColumn = header.id === SELECTION_COLUMN_ID;\n return /*#__PURE__*/React.createElement(\"th\", {\n key: header.id,\n \"data-pinned\": header.column.getIsPinned(),\n className: styles.osdkTableHeaderCell,\n style: columnStyles\n }, header.isPlaceholder ? null : isSelectColumn ? /*#__PURE__*/React.createElement(TableHeaderContent, {\n header: header\n }) : /*#__PURE__*/React.createElement(TableHeaderWithPopover, {\n header: header,\n isColumnPinned: isColumnPinned,\n setColumnPinning: table.setColumnPinning\n }), header.column.getCanResize() && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.osdkTableHeaderResizer,\n onDoubleClick: () => header.column.resetSize(),\n onMouseDown: header.getResizeHandler(),\n onTouchStart: header.getResizeHandler()\n }));\n }))));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport loadingStyles from \"./LoadingCell.module.css\";\nimport { LoadingRow } from \"./LoadingRow.js\";\nimport bodyStyles from \"./TableBody.module.css\";\nimport { TableHeader } from \"./TableHeader.js\";\nimport headerStyles from \"./TableHeader.module.css\";\nconst MIN_ROWS = 5;\nexport function LoadingStateTable({\n table,\n tableContainerRef,\n headerGroups,\n rowHeight = 40,\n columnWidth = 120\n}) {\n // If selection enabled, there will be a header for the selection column\n const isSelectionEnabled = table.options.enableRowSelection;\n const minHeaderCount = isSelectionEnabled ? 1 : 0;\n const headers = headerGroups[0]?.headers ?? [];\n const hasHeadersLoaded = headers.length > minHeaderCount;\n const headerRef = useRef(null);\n const bodyRef = useRef(null);\n const [loadingRowCount, setLoadingRowCount] = useState(MIN_ROWS);\n const [loadingColumnCount, setLoadingColumnCount] = useState(headers.length);\n // Calculate number of columns needed to fill container width\n useEffect(() => {\n if (hasHeadersLoaded) {\n setLoadingColumnCount(headers.length);\n } else {\n if (tableContainerRef.current) {\n const tableWidth = tableContainerRef.current.clientWidth;\n if (tableWidth > 0) {\n const columnsNeeded = Math.ceil(tableWidth / columnWidth);\n setLoadingColumnCount(columnsNeeded);\n }\n }\n }\n }, [columnWidth, hasHeadersLoaded, headers, tableContainerRef]);\n\n // Calculate number of rows needed to fill container height\n useEffect(() => {\n if (tableContainerRef.current) {\n const containerHeight = tableContainerRef.current.clientHeight;\n const availableHeight = containerHeight - rowHeight;\n if (availableHeight > 0) {\n const rowsNeeded = Math.ceil(availableHeight / rowHeight);\n setLoadingRowCount(Math.max(rowsNeeded, MIN_ROWS));\n }\n }\n }, [tableContainerRef, rowHeight]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, hasHeadersLoaded ? /*#__PURE__*/React.createElement(TableHeader, {\n table: table\n }) : /*#__PURE__*/React.createElement(\"thead\", {\n className: headerStyles.osdkTableHeader,\n ref: headerRef\n }, /*#__PURE__*/React.createElement(\"tr\", {\n className: headerStyles.osdkTableHeaderRow\n }, Array.from({\n length: loadingColumnCount\n }).map((_, index) => {\n const width = headers.length > index ? headers[index].getSize() : columnWidth;\n return /*#__PURE__*/React.createElement(\"th\", {\n key: `loading-header-${index}`,\n className: headerStyles.osdkTableHeaderCell,\n style: {\n width\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(headerStyles.osdkLoadingHeaderCell, loadingStyles.osdkCellSkeleton)\n }));\n }))), /*#__PURE__*/React.createElement(\"tbody\", {\n className: bodyStyles.osdkTableBody,\n ref: bodyRef\n }, Array.from({\n length: loadingRowCount\n }).map((_, index) => /*#__PURE__*/React.createElement(LoadingRow, {\n key: `skeleton-${index}`,\n columnCount: loadingColumnCount,\n headers: headers,\n translateY: rowHeight * index,\n rowHeight: rowHeight,\n columnWidth: columnWidth\n }))));\n}","/*\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","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport styles from \"./NonIdealState.module.css\";\nexport function NonIdealState({\n message\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.container\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.message\n }, message));\n}","/*\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","/*\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","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useEffect, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport styles from \"./CellContextMenu.module.css\";\nexport function CellContextMenu({\n cell,\n position,\n onClose,\n renderContent\n}) {\n const ref = useRef(null);\n useEffect(() => {\n const handleClickOutside = event => {\n if (ref.current && !ref.current.contains(event.target)) {\n onClose();\n }\n };\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [onClose]);\n return /*#__PURE__*/createPortal(/*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n className: styles.osdkCellContextMenu,\n style: {\n left: position.left,\n top: position.top,\n minWidth: position.width\n }\n }, renderContent(cell.row.original, cell)), document.body);\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useState } from \"react\";\nexport const useCellContextMenu = ({\n tdRef\n}) => {\n const [popoverPosition, setPopoverPosition] = useState(null);\n const [isContextMenuOpen, setIsContextMenuOpen] = useState(false);\n const handleOpenContextMenu = useCallback(event => {\n event.preventDefault();\n event.stopPropagation();\n if (tdRef.current) {\n const rect = tdRef.current.getBoundingClientRect();\n const position = {\n left: rect.left,\n top: rect.bottom,\n width: rect.width\n };\n setPopoverPosition(position);\n setIsContextMenuOpen(true);\n }\n }, [tdRef]);\n const handleCloseContextMenu = useCallback(() => {\n setIsContextMenuOpen(false);\n setPopoverPosition(null);\n }, []);\n return {\n isContextMenuOpen,\n handleOpenContextMenu,\n handleCloseContextMenu,\n popoverPosition\n };\n};","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { flexRender } from \"@tanstack/react-table\";\nimport React, { useRef } from \"react\";\nimport { CellContextMenu } from \"./CellContextMenu.js\";\nimport { useCellContextMenu } from \"./hooks/useCellContextMenu.js\";\nimport styles from \"./TableCell.module.css\";\nimport { SELECTION_COLUMN_ID } from \"./utils/constants.js\";\nimport { getColumnPinningStyles } from \"./utils/getColumnPinningStyles.js\";\nexport function TableCell({\n cell,\n renderCellContextMenu\n}) {\n const tdRef = useRef(null);\n const isSelectColumn = cell.column.id === SELECTION_COLUMN_ID;\n const {\n isContextMenuOpen,\n handleOpenContextMenu,\n handleCloseContextMenu,\n popoverPosition\n } = useCellContextMenu({\n tdRef\n });\n const shouldRenderContextMenu = !isSelectColumn && isContextMenuOpen && !!popoverPosition && !!renderCellContextMenu;\n const {\n columnStyles\n } = getColumnPinningStyles(cell.column);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"td\", {\n ref: tdRef,\n \"data-pinned\": cell.column.getIsPinned(),\n className: styles.osdkTableCell,\n style: columnStyles,\n onContextMenu: handleOpenContextMenu\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.osdkTableCellContent\n }, flexRender(cell.column.columnDef.cell, cell.getContext()))), shouldRenderContextMenu && /*#__PURE__*/React.createElement(CellContextMenu, {\n cell: cell,\n position: popoverPosition,\n onClose: handleCloseContextMenu,\n renderContent: renderCellContextMenu\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useCallback } from \"react\";\nimport { TableCell } from \"./TableCell.js\";\nimport styles from \"./TableRow.module.css\";\nexport function TableRow({\n row,\n virtualRow,\n onRowClick,\n renderCellContextMenu\n}) {\n const handleClick = useCallback(() => {\n onRowClick?.(row.original);\n }, [onRowClick, row.original]);\n return /*#__PURE__*/React.createElement(\"tr\", {\n \"data-selected\": row.getIsSelected(),\n className: styles.osdkTableRow,\n style: {\n height: `${virtualRow.size}px`,\n transform: `translateY(${virtualRow.start}px)`\n },\n onClick: handleClick\n }, row.getVisibleCells().map(cell => /*#__PURE__*/React.createElement(TableCell, {\n key: cell.id,\n cell: cell,\n renderCellContextMenu: renderCellContextMenu\n })));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport React, { useLayoutEffect } from \"react\";\nimport { LoadingRow } from \"./LoadingRow.js\";\nimport styles from \"./TableBody.module.css\";\nimport { TableRow } from \"./TableRow.js\";\nexport function TableBody({\n rows,\n tableContainerRef,\n onRowClick,\n renderCellContextMenu,\n rowHeight = 40,\n isLoadingMore = false,\n headerGroups = []\n}) {\n // Important: Keep the row virtualizer in the lowest component possible to avoid unnecessary re-renders.\n const rowVirtualizer = useVirtualizer({\n count: rows.length,\n estimateSize: () => rowHeight,\n getScrollElement: () => tableContainerRef.current,\n overscan: 5\n });\n\n // Measure the virtualizer after the DOM has been laid out to ensure proper dimensions\n useLayoutEffect(() => {\n rowVirtualizer.measure();\n }, [rowVirtualizer, rows.length]);\n const totalSize = rowVirtualizer.getTotalSize();\n const bodyHeight = isLoadingMore ? totalSize + rowHeight : totalSize;\n const headers = headerGroups[0]?.headers ?? [];\n return /*#__PURE__*/React.createElement(\"tbody\", {\n className: styles.osdkTableBody,\n style: {\n height: `${bodyHeight}px`\n }\n }, rowVirtualizer.getVirtualItems().map(virtualRow => {\n const row = rows[virtualRow.index];\n return /*#__PURE__*/React.createElement(TableRow, {\n key: row.id,\n row: row,\n virtualRow: virtualRow,\n onRowClick: onRowClick,\n renderCellContextMenu: renderCellContextMenu\n });\n }), isLoadingMore && /*#__PURE__*/React.createElement(LoadingRow, {\n headers: headers,\n translateY: totalSize,\n rowHeight: rowHeight,\n columnCount: headers.length\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { LoadingStateTable } from \"./LoadingStateTable.js\";\nimport { NonIdealState } from \"./NonIdealState.js\";\nimport styles from \"./Table.module.css\";\nimport { TableBody } from \"./TableBody.js\";\nimport { TableHeader } from \"./TableHeader.js\";\nexport function BaseTable({\n table,\n isLoading,\n fetchNextPage,\n onRowClick,\n rowHeight,\n renderCellContextMenu,\n className,\n error\n}) {\n const tableContainerRef = useRef(null);\n const [isLoadingMore, setIsLoadingMore] = useState(false);\n\n // Using a ref to prevent duplicate fetches from rapid scroll events while a fetch is in-flight\n const fetchingRef = useRef(false);\n useEffect(() => {\n if (!isLoading || fetchNextPage == null) {\n setIsLoadingMore(false);\n }\n }, [isLoading, fetchNextPage]);\n const fetchMoreOnEndReached = useCallback(async containerRefElement => {\n if (containerRefElement && !fetchingRef.current && !isLoadingMore) {\n const {\n scrollHeight,\n scrollTop,\n clientHeight\n } = containerRefElement;\n if (scrollHeight - scrollTop - clientHeight < 100 && !isLoading && fetchNextPage != null) {\n fetchingRef.current = true;\n setIsLoadingMore(true);\n try {\n await fetchNextPage();\n } finally {\n fetchingRef.current = false;\n }\n }\n }\n }, [fetchNextPage, isLoading, isLoadingMore]);\n const handleScroll = useCallback(async e => {\n await fetchMoreOnEndReached(e.currentTarget);\n }, [fetchMoreOnEndReached]);\n const rows = table.getRowModel().rows;\n const headerGroups = table.getHeaderGroups();\n const hasData = rows.length > 0;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: tableContainerRef,\n className: classNames(styles.osdkTableContainer, className),\n onScroll: handleScroll\n }, /*#__PURE__*/React.createElement(\"table\", null, isLoading && !hasData ? /*#__PURE__*/React.createElement(LoadingStateTable, {\n table: table,\n headerGroups: headerGroups,\n rowHeight: rowHeight,\n tableContainerRef: tableContainerRef\n }) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TableHeader, {\n table: table\n }), /*#__PURE__*/React.createElement(TableBody, {\n rows: rows,\n tableContainerRef: tableContainerRef,\n onRowClick: onRowClick,\n rowHeight: rowHeight,\n renderCellContextMenu: renderCellContextMenu,\n isLoadingMore: isLoadingMore,\n headerGroups: headerGroups\n }))), !hasData && error == null && /*#__PURE__*/React.createElement(NonIdealState, {\n message: \"No Data\"\n }), error != null && /*#__PURE__*/React.createElement(NonIdealState, {\n message: `Error Loading Data: ${error.message}`\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getCoreRowModel, useReactTable } from \"@tanstack/react-table\";\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport { useColumnDefs } from \"./hooks/useColumnDefs.js\";\nimport { useColumnPinning } from \"./hooks/useColumnPinning.js\";\nimport { useColumnVisibility } from \"./hooks/useColumnVisibility.js\";\nimport { useObjectTableData } from \"./hooks/useObjectTableData.js\";\nimport { useRowSelection } from \"./hooks/useRowSelection.js\";\nimport { useSelectionColumn } from \"./hooks/useSelectionColumn.js\";\nimport { useTableSorting } from \"./hooks/useTableSorting.js\";\nimport { BaseTable } from \"./Table.js\";\nimport { getRowId } from \"./utils/getRowId.js\";\n\n/**\n * ObjectTable - A headless table component for displaying OSDK object sets\n *\n * @example\n * ```tsx\n * <ObjectTable objectType={MyObjectType} />\n * ```\n */\n\nexport function ObjectTable({\n objectType,\n columnDefinitions,\n filter,\n orderBy,\n defaultOrderBy,\n onOrderByChanged,\n onColumnsPinnedChanged,\n onRowSelection,\n renderCellContextMenu,\n selectionMode = \"none\",\n selectedRows,\n ...props\n}) {\n const [columnSizing, setColumnSizing] = useState({});\n const {\n sorting,\n onSortingChange\n } = useTableSorting({\n orderBy,\n defaultOrderBy,\n onOrderByChanged\n });\n const {\n data,\n fetchMore,\n isLoading,\n error\n } = useObjectTableData(objectType, columnDefinitions, filter, sorting);\n const {\n columns,\n loading: isColumnsLoading\n } = useColumnDefs(objectType, columnDefinitions);\n const columnVisibility = useColumnVisibility({\n columnDefinitions\n });\n const {\n rowSelection,\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow\n } = useRowSelection({\n selectionMode,\n selectedRows,\n onRowSelection,\n data\n });\n const selectionColumn = useSelectionColumn({\n selectionMode,\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow\n });\n const allColumns = useMemo(() => {\n return selectionColumn ? [selectionColumn, ...columns] : columns;\n }, [selectionColumn, columns]);\n const {\n columnPinning,\n onColumnPinningChange\n } = useColumnPinning({\n columnDefinitions,\n hasSelectionColumn: selectionColumn != null,\n onColumnsPinnedChanged\n });\n const table = useReactTable({\n data: data ?? [],\n columns: allColumns,\n getCoreRowModel: getCoreRowModel(),\n state: {\n columnVisibility,\n rowSelection,\n sorting,\n columnSizing,\n columnPinning\n },\n onSortingChange,\n onColumnSizingChange: setColumnSizing,\n onColumnPinningChange,\n enableRowSelection: selectionMode !== \"none\",\n columnResizeMode: \"onChange\",\n columnResizeDirection: \"ltr\",\n manualSorting: true,\n // Enable manual sorting to indicate server-side sorting\n defaultColumn: {\n minSize: 80\n },\n getRowId\n });\n const onRenderCellContextMenu = useCallback((row, cell) => {\n return renderCellContextMenu?.(row, cell.getValue());\n }, [renderCellContextMenu]);\n const isTableLoading = isLoading || isColumnsLoading;\n return /*#__PURE__*/React.createElement(BaseTable, {\n table: table,\n isLoading: isTableLoading,\n fetchNextPage: fetchMore,\n onRowClick: props.onRowClick,\n rowHeight: props.rowHeight,\n renderCellContextMenu: onRenderCellContextMenu,\n className: props.className,\n error: error\n });\n}"]}
1
+ {"version":3,"sources":["../../../src/filter-list/base/FilterIcons.tsx","../../../src/filter-list/base/FilterList.module.css","../../../src/filter-list/base/FilterListContent.module.css","../../../src/shared/ErrorBoundary.module.css","../../../src/shared/ErrorBoundary.tsx","../../../src/filter-list/utils/filterValues.ts","../../../src/filter-list/base/DragHandleIcon.tsx","../../../src/filter-list/base/FilterListItem.module.css","../../../src/filter-list/base/FilterListItem.tsx","../../../src/filter-list/base/SortableFilterListItem.tsx","../../../src/filter-list/base/FilterListContent.tsx","../../../src/filter-list/base/FilterListHeader.module.css","../../../src/filter-list/base/FilterListHeader.tsx","../../../src/filter-list/base/BaseFilterList.tsx","../../../src/filter-list/base/AddFilterPopover.module.css","../../../src/filter-list/base/AddFilterPopover.tsx","../../../src/filter-list/base/inputs/ContainsTextInput.module.css","../../../src/filter-list/base/inputs/ContainsTextInput.tsx","../../../src/base-components/switch/Switch.module.css","../../../src/base-components/switch/Switch.tsx","../../../src/filter-list/base/inputs/ToggleInput.module.css","../../../src/filter-list/base/inputs/ToggleInput.tsx","../../../src/shared/assertUnreachable.ts","../../../src/base-components/checkbox/Checkbox.module.css","../../../src/base-components/checkbox/Checkbox.tsx","../../../src/filter-list/base/inputs/CheckboxListInput.module.css","../../../src/base-components/skeleton/SkeletonBar.module.css","../../../src/base-components/skeleton/SkeletonBar.tsx","../../../src/filter-list/base/inputs/CheckboxListSkeleton.module.css","../../../src/filter-list/base/inputs/CheckboxListSkeleton.tsx","../../../src/filter-list/base/inputs/shared.module.css","../../../src/filter-list/base/inputs/useStaleData.ts","../../../src/filter-list/base/inputs/CheckboxListInput.tsx","../../../src/filter-list/base/inputs/dateUtils.ts","../../../src/filter-list/base/inputs/createHistogramBuckets.ts","../../../src/filter-list/base/inputs/RangeInput.module.css","../../../src/filter-list/base/inputs/RangeInput.tsx","../../../src/filter-list/base/inputs/DateRangeInput.tsx","../../../src/filter-list/base/inputs/LinkedPropertyInput.module.css","../../../src/filter-list/base/inputs/ListogramInput.module.css","../../../src/filter-list/base/inputs/ListogramSkeleton.module.css","../../../src/filter-list/base/inputs/ListogramSkeleton.tsx","../../../src/filter-list/base/inputs/ListogramInput.tsx","../../../src/filter-list/base/inputs/MultiDateInput.module.css","../../../src/filter-list/base/inputs/MultiDateInput.tsx","../../../src/base-components/combobox/Combobox.module.css","../../../src/base-components/combobox/Combobox.tsx","../../../src/filter-list/base/inputs/MultiSelectInput.module.css","../../../src/filter-list/base/inputs/MultiSelectInput.tsx","../../../src/filter-list/base/inputs/NullValueWrapper.module.css","../../../src/filter-list/base/inputs/NullValueWrapper.tsx","../../../src/filter-list/base/inputs/NumberRangeInput.tsx","../../../src/filter-list/base/inputs/SingleDateInput.module.css","../../../src/filter-list/base/inputs/SingleDateInput.tsx","../../../src/base-components/select/Select.module.css","../../../src/base-components/select/Select.tsx","../../../src/filter-list/base/inputs/SingleSelectInput.module.css","../../../src/filter-list/base/inputs/SingleSelectInput.tsx","../../../src/filter-list/base/inputs/TextTagsInput.module.css","../../../src/filter-list/base/inputs/TextTagsInput.tsx","../../../src/filter-list/base/inputs/TimelineInput.module.css","../../../src/filter-list/base/inputs/TimelineInput.tsx","../../../src/filter-list/hooks/usePropertyAggregation.ts","../../../src/filter-list/utils/aggregationHelpers.ts","../../../src/filter-list/utils/coerceFilterValue.ts","../../../src/filter-list/inputs/LinkedPropertyInput.tsx","../../../src/filter-list/inputs/CheckboxListFilterInput.tsx","../../../src/filter-list/inputs/ContainsTextFilterInput.tsx","../../../src/filter-list/inputs/DateRangeFilterInput.tsx","../../../src/filter-list/inputs/ListogramFilterInput.tsx","../../../src/filter-list/inputs/MultiDateFilterInput.tsx","../../../src/filter-list/inputs/MultiSelectFilterInput.tsx","../../../src/filter-list/inputs/NumberRangeFilterInput.tsx","../../../src/filter-list/inputs/SingleDateFilterInput.tsx","../../../src/filter-list/inputs/SingleSelectFilterInput.tsx","../../../src/filter-list/inputs/TextTagsFilterInput.tsx","../../../src/filter-list/inputs/TimelineFilterInput.tsx","../../../src/filter-list/inputs/ToggleFilterInput.tsx","../../../src/filter-list/inputs/PropertyFilterInput.tsx","../../../src/filter-list/FilterInput.tsx","../../../src/filter-list/utils/getFilterKey.ts","../../../src/filter-list/utils/filterStateToWhereClause.ts","../../../src/filter-list/hooks/useFilterListState.ts","../../../src/filter-list/hooks/useFilterVisibility.ts","../../../src/filter-list/utils/getFilterLabel.ts","../../../src/filter-list/FilterList.tsx","../../../src/filter-list/utils/filterStateSerialization.ts","../../../src/object-table/LoadingCell.module.css","../../../src/object-table/TableCell.module.css","../../../src/object-table/LoadingCell.tsx","../../../src/object-table/components/AsyncValueCell.tsx","../../../src/base-components/tooltip/Tooltip.module.css","../../../src/base-components/tooltip/Tooltip.tsx","../../../src/object-table/EditableCell.module.css","../../../src/object-table/EditableCell.tsx","../../../src/object-table/utils/AsyncCellData.ts","../../../src/object-table/utils/getCellId.ts","../../../src/object-table/DefaultCellRenderer.tsx","../../../src/object-table/hooks/useColumnDefs.ts","../../../src/object-table/utils/constants.ts","../../../src/object-table/hooks/useColumnPinning.ts","../../../src/object-table/hooks/useColumnResize.ts","../../../src/object-table/hooks/useColumnVisibility.ts","../../../src/object-table/hooks/useEditableTable.ts","../../../src/object-table/hooks/useFunctionColumnsData.ts","../../../src/object-table/hooks/useObjectTableData.ts","../../../src/object-table/utils/getRowId.ts","../../../src/object-table/hooks/useRowSelection.ts","../../../src/object-table/SelectionCells.tsx","../../../src/object-table/hooks/useSelectionColumn.tsx","../../../src/object-table/hooks/useTableSorting.ts","../../../src/object-table/TableRow.module.css","../../../src/object-table/LoadingRow.tsx","../../../src/object-table/TableBody.module.css","../../../src/base-components/action-button/ActionButton.module.css","../../../src/base-components/action-button/ActionButton.tsx","../../../src/base-components/dialog/Dialog.module.css","../../../src/base-components/dialog/Dialog.tsx","../../../src/base-components/draggable-list/DraggableList.module.css","../../../src/base-components/draggable-list/DraggableList.tsx","../../../src/base-components/search-bar/SearchBar.module.css","../../../src/base-components/search-bar/SearchBar.tsx","../../../src/object-table/ColumnConfigDialog.module.css","../../../src/object-table/ColumnConfigDialog.tsx","../../../src/object-table/MultiColumnSortDialog.module.css","../../../src/object-table/SortableItemsList.tsx","../../../src/object-table/MultiColumnSortDialog.tsx","../../../src/object-table/TableHeader.module.css","../../../src/object-table/TableHeaderContent.module.css","../../../src/object-table/TableHeaderContent.tsx","../../../src/object-table/TableHeaderWithPopover.module.css","../../../src/object-table/TableHeaderWithPopover.tsx","../../../src/object-table/utils/getColumnPinningStyles.ts","../../../src/object-table/TableHeader.tsx","../../../src/object-table/LoadingStateTable.tsx","../../../src/object-table/NonIdealState.module.css","../../../src/object-table/NonIdealState.tsx","../../../src/object-table/Table.module.css","../../../src/object-table/CellContextMenu.module.css","../../../src/object-table/CellContextMenu.tsx","../../../src/object-table/hooks/useCellContextMenu.ts","../../../src/object-table/TableCell.tsx","../../../src/object-table/TableRow.tsx","../../../src/object-table/TableBody.tsx","../../../src/object-table/TableEditContainer.module.css","../../../src/object-table/TableEditContainer.tsx","../../../src/object-table/Table.tsx","../../../src/object-table/ObjectTable.tsx","../../../src/pdf-viewer/constants.ts","../../../src/pdf-viewer/hooks/usePdfAnnotationPortals.ts","../../../src/pdf-viewer/hooks/usePdfDocument.ts","../../../src/pdf-viewer/hooks/usePdfViewer.ts","../../../src/pdf-viewer/hooks/usePdfViewerSearch.ts","../../../src/pdf-viewer/hooks/usePdfViewerSync.ts","../../../src/pdf-viewer/PdfViewer.module.css","../../../src/pdf-viewer/PdfViewerAnnotationLayer.module.css","../../../src/pdf-viewer/PdfViewerAnnotationLayer.tsx","../../../src/pdf-viewer/PdfViewerSearchBar.module.css","../../../src/pdf-viewer/PdfViewerSearchBar.tsx","../../../src/pdf-viewer/PdfViewerSidebar.module.css","../../../src/pdf-viewer/PdfViewerThumbnail.module.css","../../../src/pdf-viewer/PdfViewerThumbnail.tsx","../../../src/pdf-viewer/PdfViewerSidebar.tsx","../../../src/pdf-viewer/PdfViewerToolbar.module.css","../../../src/pdf-viewer/PdfViewerToolbar.tsx","../../../src/pdf-viewer/PdfViewer.tsx","../../../src/pdf-viewer/PdfRenderer.tsx"],"names":["React","Cross","DoubleChevronLeft","DoubleChevronRight","Undo","Component","Button","useCallback","classnames","useSortable","useMemo","CSS","getFilterKey","getFilterLabel","useState","useEffect","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","useSensors","arrayMove","DndContext","closestCenter","SortableContext","verticalListSortingStrategy","DragOverlay","memo","Menu","useRef","debounce","Search","Input","_extends","BaseUISwitch","BaseUICheckbox","Minus","Tick","useId","SKELETON_ROWS","BaseUICombobox","BaseUISelect","CaretDown","TagItem","useOsdkAggregation","value","includeNull","selectedDates","selectedValues","selectedDate","startDate","endDate","enabled","HasLinkInput","hasLink","KeywordSearchInput","key","useOsdkMetadata","classNames","BaseUITooltip","abortController","Error","useOsdkClient","result","useObjectSet","useOsdkObjects","BaseUIDialog","RemoveIcon","Trash","SmallCross","DragHandleVertical","BaseDndContext","Cog","Collapsible","SmallInfoSign","SortAlphabetical","SortAlphabeticalDesc","DialogTitle","Add","flexRender","Pin","ChevronDown","Unpin","Sort","Remove","VerticalDistribution","Settings","header","createPortal","useVirtualizer","useLayoutEffect","useReactTable","getCoreRowModel","document","GlobalWorkerOptions","pdfWorkerUrl","getDocument","EventBus","PDFLinkService","PDFFindController","PDFViewer","ChevronUp","ChevronLeft","ChevronRight","Plus","Download","Spin","ErrorIcon"],"mappings":"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","file":"experimental.cjs","sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ChevronDown, Cross, DoubleChevronLeft, DoubleChevronRight, More, Search, Tick, Undo } from \"@blueprintjs/icons\";\nimport React from \"react\";\nexport function IncludeIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n \"aria-hidden\": \"true\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 3h12M5 8h6M7 13h2\",\n strokeLinecap: \"round\"\n }));\n}\nexport function ExcludeIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n \"aria-hidden\": \"true\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 3h12M5 8h6M7 13h2\",\n strokeLinecap: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3 14L13 2\",\n strokeLinecap: \"round\"\n }));\n}\nexport function RemoveIcon() {\n return /*#__PURE__*/React.createElement(Cross, {\n color: \"currentColor\",\n size: 14\n });\n}\nexport function SearchIcon() {\n return /*#__PURE__*/React.createElement(Search, {\n color: \"currentColor\",\n size: 14\n });\n}\nexport function OverflowMenuIcon() {\n return /*#__PURE__*/React.createElement(More, {\n color: \"currentColor\",\n size: 14\n });\n}\nexport function ChevronDownIcon() {\n return /*#__PURE__*/React.createElement(ChevronDown, {\n color: \"currentColor\",\n size: 10\n });\n}\nexport function CollapseIcon() {\n return /*#__PURE__*/React.createElement(DoubleChevronLeft, {\n color: \"currentColor\",\n size: 14\n });\n}\nexport function ExpandIcon() {\n return /*#__PURE__*/React.createElement(DoubleChevronRight, {\n color: \"currentColor\",\n size: 14\n });\n}\nexport function ResetIcon() {\n return /*#__PURE__*/React.createElement(Undo, {\n color: \"currentColor\",\n size: 14\n });\n}\nexport function CheckIcon() {\n return /*#__PURE__*/React.createElement(Tick, {\n color: \"currentColor\",\n size: 12\n });\n}","/*\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.filterList {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.filterListCollapsed {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: var(--osdk-filter-list-collapsed-width);\n height: 100%;\n background: var(--osdk-filter-list-bg);\n border: var(--osdk-filter-list-border);\n border-radius: var(--osdk-filter-list-border-radius);\n padding: var(--osdk-surface-spacing) 0;\n gap: var(--osdk-surface-spacing);\n}\n\n.expandedContent {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow-y: auto;\n background: var(--osdk-filter-list-bg);\n border: var(--osdk-filter-list-border);\n border-radius: var(--osdk-filter-list-border-radius);\n padding: var(--osdk-filter-list-padding);\n gap: var(--osdk-filter-list-gap);\n}\n\n.hiddenContent {\n display: none;\n}\n\n.expandButton {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-header-button-padding);\n border: none;\n background: var(--osdk-filter-header-button-bg);\n cursor: pointer;\n border-radius: var(--osdk-filter-header-button-border-radius);\n color: var(--osdk-filter-header-collapse-icon-color);\n transition: background-color var(--osdk-filter-header-button-transition);\n\n &:hover {\n background: var(--osdk-filter-header-button-bg-hover);\n }\n\n &:active {\n background: var(--osdk-filter-header-button-bg-active);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n\n.collapsedLabel {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n font-family: var(--osdk-filter-list-collapsed-label-font-family);\n font-size: var(--osdk-filter-list-collapsed-label-font-size);\n color: var(--osdk-filter-list-collapsed-label-color);\n font-weight: var(--osdk-filter-header-font-weight);\n user-select: none;\n}\n\n.addButtonContainer {\n display: flex;\n justify-content: center;\n position: sticky;\n bottom: 0;\n padding-top: var(--osdk-filter-list-addButton-padding-top);\n background: var(--osdk-filter-list-addButton-container-bg);\n}\n\n.addButtonContainer > * {\n flex: 1;\n}\n\n.addButton {\n font-family: var(--osdk-filter-header-font-family);\n font-size: var(--osdk-filter-header-reset-font-size);\n color: var(--osdk-filter-header-reset-color);\n background: var(--osdk-filter-header-button-bg);\n border: none;\n cursor: pointer;\n padding: var(--osdk-filter-header-reset-padding);\n border-radius: var(--osdk-filter-header-button-border-radius);\n transition: background-color var(--osdk-filter-header-button-transition);\n\n &:hover {\n background: var(--osdk-filter-header-button-bg-hover);\n }\n\n &:active {\n background: var(--osdk-filter-header-button-bg-active);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n","/*\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.content {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-list-content-gap);\n}\n\n.emptyMessage {\n margin: 0;\n color: var(--osdk-filter-list-empty-text-color);\n font-size: var(--osdk-filter-list-empty-font-size);\n}\n\n.dragOverlay {\n box-shadow: var(--osdk-filter-item-drag-overlay-shadow);\n border-radius: var(--osdk-filter-item-drag-overlay-border-radius);\n background: var(--osdk-filter-item-drag-overlay-bg);\n}\n","/*\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.errorContainer {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--osdk-error-boundary-gap, 8px);\n padding: var(--osdk-error-boundary-padding, 8px);\n border-radius: var(--osdk-error-boundary-border-radius, 4px);\n background-color: var(--osdk-error-boundary-bg, color-mix(in srgb, var(--osdk-intent-danger-rest, #c23030) 5%, transparent));\n}\n\n.errorMessage {\n margin: 0;\n font-size: var(--osdk-error-boundary-font-size, 13px);\n color: var(--osdk-error-boundary-text-color, var(--osdk-intent-danger-rest, #c23030));\n}\n\n.retryButton {\n padding: var(--osdk-error-boundary-button-padding, 4px 8px);\n border: var(--osdk-surface-border-width, 1px) solid var(--osdk-error-boundary-button-border-color, currentColor);\n border-radius: var(--osdk-error-boundary-button-border-radius, 3px);\n background: transparent;\n font-size: var(--osdk-error-boundary-button-font-size, 12px);\n color: var(--osdk-error-boundary-button-color, inherit);\n cursor: pointer;\n transition: background-color var(--osdk-filter-input-transition, 150ms ease);\n\n &:hover {\n background-color: var(--osdk-error-boundary-button-hover-bg, color-mix(in srgb, currentColor 5%, transparent));\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width, 2px) solid var(--osdk-filter-input-focus-outline-color, rgba(45, 114, 210, 0.6));\n outline-offset: var(--osdk-filter-input-focus-outline-offset, 2px);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport React, { Component } from \"react\";\nimport styles from \"./ErrorBoundary.module.css\";\nexport class ErrorBoundary extends Component {\n state = {\n hasError: false,\n error: null\n };\n static getDerivedStateFromError(error) {\n return {\n hasError: true,\n error\n };\n }\n componentDidCatch(error, errorInfo) {\n // eslint-disable-next-line no-console\n console.error(\"[ErrorBoundary]\", error);\n // eslint-disable-next-line no-console\n console.error(\"[ErrorBoundary] Component stack:\", errorInfo.componentStack);\n this.props.onError?.(error);\n }\n handleRetry = () => {\n this.setState({\n hasError: false,\n error: null\n });\n };\n render() {\n if (this.state.hasError) {\n if (this.props.fallback) {\n return this.props.fallback;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.errorContainer\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: styles.errorMessage\n }, this.props.errorMessage ?? \"Something went wrong\"), /*#__PURE__*/React.createElement(Button, {\n className: styles.retryButton,\n onClick: this.handleRetry,\n \"aria-label\": \"Retry\"\n }, \"Retry\"));\n }\n return this.props.children;\n }\n}","/*\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/** Returns true for filter state types that support isExcluding. */\nexport function supportsExcluding(state) {\n if (!state) {\n return false;\n }\n switch (state.type) {\n case \"SELECT\":\n case \"EXACT_MATCH\":\n case \"CONTAINS_TEXT\":\n case \"TIMELINE\":\n return true;\n case \"NUMBER_RANGE\":\n case \"DATE_RANGE\":\n case \"TOGGLE\":\n case \"hasLink\":\n case \"linkedProperty\":\n case \"keywordSearch\":\n case \"custom\":\n return false;\n default:\n {\n const _exhaustive = state;\n return false;\n }\n }\n}\n\n/** Case-insensitive substring filter for search functionality. */\nexport function filterValuesBySearch(values, searchValue, getValue) {\n const trimmed = searchValue.trim();\n if (!trimmed) return values;\n const lowerSearch = trimmed.toLowerCase();\n return values.filter(v => getValue(v).toLowerCase().includes(lowerSearch));\n}\n\n/** Check if a filter state has an active (non-empty) value. */\nexport function filterHasActiveState(state) {\n if (!state) return false;\n switch (state.type) {\n case \"SELECT\":\n return state.selectedValues.length > 0;\n case \"EXACT_MATCH\":\n return state.values.length > 0;\n case \"CONTAINS_TEXT\":\n return state.value !== undefined && state.value !== \"\";\n case \"NUMBER_RANGE\":\n return state.minValue !== undefined || state.maxValue !== undefined || state.includeNull === true;\n case \"DATE_RANGE\":\n return state.minValue !== undefined || state.maxValue !== undefined || state.includeNull === true;\n case \"TOGGLE\":\n return state.enabled;\n case \"hasLink\":\n return state.hasLink;\n case \"linkedProperty\":\n return filterHasActiveState(state.linkedFilterState);\n case \"keywordSearch\":\n return state.searchTerm !== undefined && state.searchTerm !== \"\";\n case \"TIMELINE\":\n return state.startDate !== undefined || state.endDate !== undefined;\n case \"custom\":\n return true;\n default:\n return false;\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nexport function DragHandleIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"5.5\",\n cy: \"3.5\",\n r: \"1.5\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"10.5\",\n cy: \"3.5\",\n r: \"1.5\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"5.5\",\n cy: \"8\",\n r: \"1.5\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"10.5\",\n cy: \"8\",\n r: \"1.5\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"5.5\",\n cy: \"12.5\",\n r: \"1.5\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"10.5\",\n cy: \"12.5\",\n r: \"1.5\"\n }));\n}","/*\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.filterItem {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-item-gap);\n}\n\n.itemHeader {\n display: flex;\n align-items: center;\n}\n\n.itemLabel {\n flex: 1;\n font-family: var(--osdk-filter-item-label-font-family);\n font-size: var(--osdk-filter-item-label-font-size);\n font-weight: var(--osdk-filter-item-label-font-weight);\n color: var(--osdk-filter-item-label-color);\n}\n\n.itemContent {\n display: flex;\n flex-direction: column;\n}\n\n.dragHandle {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-item-drag-handle-padding);\n margin-right: var(--osdk-surface-spacing);\n border: none;\n background: var(--osdk-filter-item-drag-handle-bg);\n cursor: var(--osdk-drag-handle-cursor);\n border-radius: var(--osdk-filter-item-drag-handle-border-radius);\n color: var(--osdk-filter-item-drag-handle-color);\n touch-action: none;\n\n &:hover {\n color: var(--osdk-filter-item-drag-handle-color-hover);\n background: var(--osdk-filter-item-drag-handle-bg-hover);\n }\n\n &:active {\n cursor: var(--osdk-drag-handle-cursor-active);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-item-drag-handle-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n}\n\n.excludeToggle {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-item-exclude-toggle-padding);\n margin-left: auto;\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: var(--osdk-filter-item-exclude-toggle-border-radius);\n color: var(--osdk-filter-item-exclude-toggle-color);\n\n &:hover {\n color: var(--osdk-filter-item-exclude-toggle-color-hover);\n background: var(--osdk-filter-item-exclude-toggle-bg-hover);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n}\n\n.excludeToggle[aria-pressed=\"true\"] {\n color: var(--osdk-filter-item-exclude-toggle-color-active);\n}\n\n.removeButton {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-item-exclude-toggle-padding);\n margin-left: var(--osdk-surface-spacing);\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: var(--osdk-filter-item-exclude-toggle-border-radius);\n color: var(--osdk-filter-item-exclude-toggle-color);\n\n &:hover {\n color: var(--osdk-filter-item-exclude-toggle-color-hover);\n background: var(--osdk-filter-item-exclude-toggle-bg-hover);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n}\n\n.filterItem[data-excluding] {\n border-left: var(--osdk-filter-item-exclude-border-width) solid var(--osdk-filter-item-exclude-border-color);\n padding-left: var(--osdk-filter-item-gap);\n}\n\n.dragging {\n opacity: var(--osdk-filter-item-dragging-opacity);\n}\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback } from \"react\";\nimport { ErrorBoundary } from \"../../shared/ErrorBoundary.js\";\nimport { supportsExcluding } from \"../utils/filterValues.js\";\nimport { DragHandleIcon } from \"./DragHandleIcon.js\";\nimport { ExcludeIcon, IncludeIcon, RemoveIcon } from \"./FilterIcons.js\";\nimport styles from \"./FilterListItem.module.css\";\nfunction FilterListItemInner({\n definition,\n filterKey,\n label,\n filterState,\n onFilterStateChanged,\n onFilterRemoved,\n renderInput,\n dragHandleAttributes,\n dragHandleListeners,\n className,\n style\n}) {\n const handleFilterStateChanged = useCallback(newState => {\n onFilterStateChanged(filterKey, newState);\n }, [filterKey, onFilterStateChanged]);\n const handleToggleExclude = useCallback(() => {\n if (filterState) {\n onFilterStateChanged(filterKey, {\n ...filterState,\n isExcluding: !filterState.isExcluding\n });\n }\n }, [filterKey, filterState, onFilterStateChanged]);\n const handleRemove = useCallback(() => {\n onFilterRemoved?.(filterKey);\n }, [filterKey, onFilterRemoved]);\n const isExcluding = filterState?.isExcluding ?? false;\n const showExcludeToggle = supportsExcluding(filterState);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.filterItem, className),\n style: style,\n \"data-excluding\": isExcluding || undefined\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.itemHeader\n }, dragHandleAttributes && /*#__PURE__*/React.createElement(Button, _extends({\n className: styles.dragHandle,\n \"aria-label\": `Reorder ${label}`\n }, dragHandleAttributes, dragHandleListeners), /*#__PURE__*/React.createElement(DragHandleIcon, null)), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.itemLabel\n }, label), showExcludeToggle && /*#__PURE__*/React.createElement(Button, {\n className: styles.excludeToggle,\n onClick: handleToggleExclude,\n \"aria-pressed\": isExcluding,\n \"aria-label\": isExcluding ? \"Switch to include mode\" : \"Switch to exclude mode\"\n }, isExcluding ? /*#__PURE__*/React.createElement(ExcludeIcon, null) : /*#__PURE__*/React.createElement(IncludeIcon, null)), onFilterRemoved && /*#__PURE__*/React.createElement(Button, {\n className: styles.removeButton,\n onClick: handleRemove,\n \"aria-label\": `Remove ${label} filter`\n }, /*#__PURE__*/React.createElement(RemoveIcon, null))), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.itemContent\n }, /*#__PURE__*/React.createElement(ErrorBoundary, {\n errorMessage: \"Error loading filter\"\n }, renderInput({\n definition,\n filterKey,\n filterState,\n onFilterStateChanged: handleFilterStateChanged\n }))));\n}\nexport const FilterListItem = /*#__PURE__*/memo(FilterListItemInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useSortable } from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport classnames from \"classnames\";\nimport React, { useMemo } from \"react\";\nimport { FilterListItem } from \"./FilterListItem.js\";\nimport styles from \"./FilterListItem.module.css\";\nexport function SortableFilterListItem({\n id,\n definition,\n filterKey,\n label,\n filterState,\n onFilterStateChanged,\n onFilterRemoved,\n renderInput\n}) {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging\n } = useSortable({\n id\n });\n const style = useMemo(() => ({\n transform: CSS.Transform.toString(transform),\n transition: transition ?? undefined\n }), [transform, transition]);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: setNodeRef,\n style: style,\n className: classnames(isDragging && styles.dragging)\n }, /*#__PURE__*/React.createElement(FilterListItem, {\n definition: definition,\n filterKey: filterKey,\n label: label,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n onFilterRemoved: onFilterRemoved,\n renderInput: renderInput,\n dragHandleAttributes: attributes,\n dragHandleListeners: listeners\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { closestCenter, DndContext, DragOverlay, KeyboardSensor, PointerSensor, useSensor, useSensors } from \"@dnd-kit/core\";\nimport { arrayMove, SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy } from \"@dnd-kit/sortable\";\nimport classnames from \"classnames\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport styles from \"./FilterListContent.module.css\";\nimport { FilterListItem } from \"./FilterListItem.js\";\nimport { SortableFilterListItem } from \"./SortableFilterListItem.js\";\nconst restrictToVerticalAxis = ({\n transform\n}) => ({\n ...transform,\n x: 0\n});\nconst POINTER_ACTIVATION_CONSTRAINT = {\n distance: 8\n};\nconst MODIFIERS = [restrictToVerticalAxis];\nexport function FilterListContent({\n filterDefinitions,\n filterStates,\n onFilterStateChanged,\n onFilterRemoved,\n renderInput,\n getFilterKey,\n getFilterLabel,\n enableSorting,\n className,\n style\n}) {\n const [internalOrder, setInternalOrder] = useState(() => filterDefinitions ?? []);\n const [activeId, setActiveId] = useState(null);\n useEffect(() => {\n if (filterDefinitions) {\n setInternalOrder(filterDefinitions);\n }\n }, [filterDefinitions]);\n const renderDefinitions = enableSorting ? internalOrder : filterDefinitions;\n const sortableIds = useMemo(() => enableSorting ? internalOrder.map(def => getFilterKey(def)) : [], [enableSorting, internalOrder, getFilterKey]);\n const pointerSensor = useSensor(PointerSensor, {\n activationConstraint: POINTER_ACTIVATION_CONSTRAINT\n });\n const keyboardSensor = useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates\n });\n const sensors = useSensors(pointerSensor, keyboardSensor);\n const activeIndex = activeId != null ? sortableIds.indexOf(String(activeId)) : -1;\n const activeDefinition = activeIndex >= 0 ? internalOrder[activeIndex] : undefined;\n const activeFilterKey = useMemo(() => activeDefinition ? getFilterKey(activeDefinition) : undefined, [activeDefinition, getFilterKey]);\n const handleDragStart = useCallback(event => {\n setActiveId(event.active.id);\n }, []);\n const handleDragEnd = useCallback(event => {\n setActiveId(null);\n const {\n active,\n over\n } = event;\n if (!over || active.id === over.id) {\n return;\n }\n const oldIndex = sortableIds.indexOf(String(active.id));\n const newIndex = sortableIds.indexOf(String(over.id));\n if (oldIndex !== -1 && newIndex !== -1) {\n setInternalOrder(arrayMove(internalOrder, oldIndex, newIndex));\n }\n }, [internalOrder, sortableIds]);\n const handleDragCancel = useCallback(() => {\n setActiveId(null);\n }, []);\n const announcements = useMemo(() => ({\n onDragStart({\n active\n }) {\n const idx = sortableIds.indexOf(String(active.id));\n const def = idx >= 0 ? internalOrder[idx] : undefined;\n const label = def ? getFilterLabel(def) : \"filter\";\n return `Picked up ${label} filter`;\n },\n onDragOver({\n over\n }) {\n if (!over) {\n return \"Not over a droppable area\";\n }\n const overIdx = sortableIds.indexOf(String(over.id));\n return `Moved to position ${overIdx + 1} of ${sortableIds.length}`;\n },\n onDragEnd({\n active,\n over\n }) {\n const idx = sortableIds.indexOf(String(active.id));\n const def = idx >= 0 ? internalOrder[idx] : undefined;\n const label = def ? getFilterLabel(def) : \"filter\";\n if (over && active.id !== over.id) {\n const overIdx = sortableIds.indexOf(String(over.id));\n return `Dropped ${label} filter at position ${overIdx + 1}`;\n }\n return `Dropped ${label} filter back in its original position`;\n },\n onDragCancel({\n active\n }) {\n const idx = sortableIds.indexOf(String(active.id));\n const def = idx >= 0 ? internalOrder[idx] : undefined;\n const label = def ? getFilterLabel(def) : \"filter\";\n return `Cancelled dragging ${label} filter`;\n }\n }), [internalOrder, sortableIds, getFilterLabel]);\n const accessibility = useMemo(() => ({\n announcements\n }), [announcements]);\n if (!renderDefinitions || renderDefinitions.length === 0) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.content, className),\n style: style,\n \"data-empty\": \"true\"\n });\n }\n if (enableSorting) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.content, className),\n style: style\n }, /*#__PURE__*/React.createElement(DndContext, {\n sensors: sensors,\n collisionDetection: closestCenter,\n modifiers: MODIFIERS,\n onDragStart: handleDragStart,\n onDragEnd: handleDragEnd,\n onDragCancel: handleDragCancel,\n accessibility: accessibility\n }, /*#__PURE__*/React.createElement(SortableContext, {\n items: sortableIds,\n strategy: verticalListSortingStrategy\n }, internalOrder.map((definition, index) => {\n const id = sortableIds[index];\n const filterKey = getFilterKey(definition);\n const label = getFilterLabel(definition);\n const state = filterStates.get(filterKey);\n return /*#__PURE__*/React.createElement(SortableFilterListItem, {\n key: id,\n id: id,\n definition: definition,\n filterKey: filterKey,\n label: label,\n filterState: state,\n onFilterStateChanged: onFilterStateChanged,\n onFilterRemoved: onFilterRemoved,\n renderInput: renderInput\n });\n })), /*#__PURE__*/React.createElement(DragOverlay, {\n dropAnimation: null,\n className: styles.dragOverlay\n }, activeDefinition && activeFilterKey && /*#__PURE__*/React.createElement(FilterListItem, {\n definition: activeDefinition,\n filterKey: activeFilterKey,\n label: getFilterLabel(activeDefinition),\n filterState: filterStates.get(activeFilterKey),\n onFilterStateChanged: onFilterStateChanged,\n onFilterRemoved: onFilterRemoved,\n renderInput: renderInput\n }))));\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.content, className),\n style: style\n }, renderDefinitions.map(definition => {\n const filterKey = getFilterKey(definition);\n const state = filterStates.get(filterKey);\n return /*#__PURE__*/React.createElement(FilterListItem, {\n key: filterKey,\n definition: definition,\n filterKey: filterKey,\n label: getFilterLabel(definition),\n filterState: state,\n onFilterStateChanged: onFilterStateChanged,\n onFilterRemoved: onFilterRemoved,\n renderInput: renderInput\n });\n }));\n}","/*\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.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-bottom: var(--osdk-filter-header-padding-bottom);\n border-bottom: var(--osdk-filter-header-border-bottom);\n}\n\n.titleContainer {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-header-titleContainer-gap);\n}\n\n.title {\n font-family: var(--osdk-filter-header-font-family);\n font-size: var(--osdk-filter-header-font-size);\n font-weight: var(--osdk-filter-header-font-weight);\n color: var(--osdk-filter-header-color);\n margin: 0;\n}\n\n.titleIcon {\n color: var(--osdk-filter-header-icon-color);\n display: flex;\n align-items: center;\n}\n\n.activeCount {\n font-family: var(--osdk-filter-header-font-family);\n font-size: var(--osdk-filter-header-activeCount-font-size);\n color: var(--osdk-filter-header-activeCount-color);\n font-variant-numeric: tabular-nums;\n}\n\n.actions {\n display: flex;\n align-items: center;\n gap: var(--osdk-surface-spacing);\n\n &:empty {\n display: none;\n }\n}\n\n.collapseButton {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-header-button-padding);\n border: none;\n background: var(--osdk-filter-header-button-bg);\n cursor: pointer;\n border-radius: var(--osdk-filter-header-button-border-radius);\n transition: background-color var(--osdk-filter-header-button-transition);\n color: var(--osdk-filter-header-collapse-icon-color);\n\n &:hover {\n background: var(--osdk-filter-header-button-bg-hover);\n }\n\n &:active {\n background: var(--osdk-filter-header-button-bg-active);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n\n.resetButton {\n display: flex;\n align-items: center;\n gap: calc(var(--osdk-surface-spacing) * 0.5);\n font-family: var(--osdk-filter-header-font-family);\n font-size: var(--osdk-filter-header-reset-font-size);\n color: var(--osdk-filter-header-reset-color);\n background: var(--osdk-filter-header-button-bg);\n border: none;\n cursor: pointer;\n padding: var(--osdk-filter-header-reset-padding);\n border-radius: var(--osdk-filter-header-button-border-radius);\n transition: background-color var(--osdk-filter-header-button-transition);\n\n &:hover:not(:disabled) {\n background: var(--osdk-filter-header-button-bg-hover);\n }\n\n &:disabled {\n color: var(--osdk-filter-header-reset-color-disabled);\n cursor: not-allowed;\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport React, { memo, useCallback } from \"react\";\nimport { CollapseIcon, ResetIcon } from \"./FilterIcons.js\";\nimport styles from \"./FilterListHeader.module.css\";\nfunction FilterListHeaderInner({\n title,\n titleIcon,\n collapsed = false,\n onCollapsedChange,\n showResetButton,\n onReset,\n showActiveFilterCount,\n activeFilterCount = 0\n}) {\n const showCollapseButton = onCollapsedChange != null;\n const handleCollapseClick = useCallback(() => {\n onCollapsedChange?.(!collapsed);\n }, [onCollapsedChange, collapsed]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.header\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.titleContainer\n }, titleIcon && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.titleIcon\n }, titleIcon), title && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.title\n }, title), showActiveFilterCount && activeFilterCount > 0 && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.activeCount\n }, \"(\", activeFilterCount, \")\")), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.actions\n }, showResetButton && /*#__PURE__*/React.createElement(Button, {\n className: styles.resetButton,\n onClick: onReset,\n disabled: activeFilterCount === 0\n }, /*#__PURE__*/React.createElement(ResetIcon, null), \" Reset\"), showCollapseButton && /*#__PURE__*/React.createElement(Button, {\n className: styles.collapseButton,\n onClick: handleCollapseClick,\n \"aria-expanded\": !collapsed,\n \"aria-label\": collapsed ? \"Expand filters\" : \"Collapse filters\"\n }, /*#__PURE__*/React.createElement(CollapseIcon, null))));\n}\nexport const FilterListHeader = /*#__PURE__*/memo(FilterListHeaderInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport classnames from \"classnames\";\nimport React, { useCallback } from \"react\";\nimport { ExpandIcon } from \"./FilterIcons.js\";\nimport styles from \"./FilterList.module.css\";\nimport { FilterListContent } from \"./FilterListContent.js\";\nimport { FilterListHeader } from \"./FilterListHeader.js\";\nexport function BaseFilterList(props) {\n const {\n title,\n titleIcon,\n collapsed = false,\n onCollapsedChange,\n filterDefinitions,\n filterStates,\n onFilterStateChanged,\n renderInput,\n getFilterKey,\n getFilterLabel,\n activeFilterCount,\n onReset,\n onFilterAdded,\n onFilterRemoved,\n showResetButton = false,\n showActiveFilterCount = false,\n enableSorting,\n className,\n renderAddFilterButton\n } = props;\n const showHeader = title || titleIcon || showResetButton || showActiveFilterCount || onCollapsedChange;\n const showAddButton = renderAddFilterButton != null || onFilterAdded != null;\n const handleExpand = useCallback(() => {\n onCollapsedChange?.(false);\n }, [onCollapsedChange]);\n const isCollapsed = collapsed && onCollapsedChange != null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.filterList, className)\n }, isCollapsed && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.filterListCollapsed,\n \"data-collapsed\": \"true\"\n }, /*#__PURE__*/React.createElement(Button, {\n className: styles.expandButton,\n onClick: handleExpand,\n \"aria-label\": \"Expand filters\"\n }, /*#__PURE__*/React.createElement(ExpandIcon, null)), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.collapsedLabel\n }, title ?? \"Filters\")), /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.expandedContent, isCollapsed && styles.hiddenContent),\n \"data-active-count\": activeFilterCount\n }, showHeader && /*#__PURE__*/React.createElement(FilterListHeader, {\n title: title,\n titleIcon: titleIcon,\n collapsed: collapsed,\n onCollapsedChange: onCollapsedChange,\n showResetButton: showResetButton,\n onReset: onReset,\n showActiveFilterCount: showActiveFilterCount,\n activeFilterCount: activeFilterCount\n }), /*#__PURE__*/React.createElement(FilterListContent, {\n filterDefinitions: filterDefinitions,\n filterStates: filterStates,\n onFilterStateChanged: onFilterStateChanged,\n onFilterRemoved: onFilterRemoved,\n renderInput: renderInput,\n getFilterKey: getFilterKey,\n getFilterLabel: getFilterLabel,\n enableSorting: enableSorting\n }), showAddButton && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.addButtonContainer\n }, renderAddFilterButton ? renderAddFilterButton() : /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n className: styles.addButton,\n onClick: onFilterAdded\n }, \"+ Add filter\"))));\n}","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.trigger {\n font-family: var(--osdk-filter-header-font-family);\n font-size: var(--osdk-filter-header-reset-font-size);\n color: var(--osdk-filter-header-reset-color);\n background: var(--osdk-filter-header-button-bg);\n border: none;\n cursor: pointer;\n padding: var(--osdk-filter-header-reset-padding);\n border-radius: var(--osdk-filter-header-button-border-radius);\n transition: background-color var(--osdk-filter-header-button-transition);\n width: 100%;\n\n &:hover {\n background: var(--osdk-filter-header-button-bg-hover);\n }\n\n &:active {\n background: var(--osdk-filter-header-button-bg-active);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n\n.positioner {\n z-index: var(--osdk-surface-z-index-3);\n}\n\n.popup {\n background: var(--osdk-filter-item-menu-bg);\n border: var(--osdk-filter-item-menu-border);\n border-radius: var(--osdk-filter-item-menu-border-radius);\n box-shadow: var(--osdk-filter-item-menu-shadow);\n padding: var(--osdk-filter-item-menu-padding);\n}\n\n.menuItem {\n display: flex;\n align-items: center;\n gap: var(--osdk-surface-spacing);\n padding: var(--osdk-filter-item-menu-item-padding);\n font-family: var(--osdk-filter-item-menu-item-font-family);\n font-size: var(--osdk-filter-item-menu-item-font-size);\n color: var(--osdk-filter-item-menu-item-color);\n border-radius: var(--osdk-filter-item-menu-item-border-radius);\n cursor: pointer;\n border: none;\n background: transparent;\n width: 100%;\n text-align: left;\n\n &:hover,\n &[data-highlighted] {\n background: var(--osdk-filter-item-menu-item-bg-hover);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n}\n","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Menu } from \"@base-ui/react/menu\";\nimport React, { memo, useCallback } from \"react\";\nimport styles from \"./AddFilterPopover.module.css\";\nfunction AddFilterPopoverInner({\n hiddenDefinitions,\n onShowFilter\n}) {\n const handleItemClick = useCallback(event => {\n const key = event.currentTarget.dataset.key;\n if (key != null) {\n onShowFilter(key);\n }\n }, [onShowFilter]);\n return /*#__PURE__*/React.createElement(Menu.Root, null, /*#__PURE__*/React.createElement(Menu.Trigger, {\n className: styles.trigger\n }, \"+ Add filter\"), /*#__PURE__*/React.createElement(Menu.Portal, null, /*#__PURE__*/React.createElement(Menu.Positioner, {\n className: styles.positioner,\n sideOffset: 4\n }, /*#__PURE__*/React.createElement(Menu.Popup, {\n className: styles.popup\n }, hiddenDefinitions.map(item => /*#__PURE__*/React.createElement(Menu.Item, {\n key: item.key,\n className: styles.menuItem,\n \"data-key\": item.key,\n onClick: handleItemClick\n }, item.label))))));\n}\nexport const AddFilterPopover = /*#__PURE__*/memo(AddFilterPopoverInner);","/*\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.textInput {\n position: relative;\n}\n\n.inputGroup {\n display: flex;\n align-items: center;\n background: var(--osdk-filter-input-bg);\n border: var(--osdk-filter-input-border);\n border-radius: var(--osdk-filter-input-border-radius);\n padding: var(--osdk-filter-input-padding);\n gap: var(--osdk-filter-input-gap);\n transition: border-color var(--osdk-filter-input-transition);\n\n &:focus-within {\n border-color: var(--osdk-filter-input-focus-border);\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n\n.searchIcon {\n color: var(--osdk-filter-input-icon-color);\n flex-shrink: 0;\n display: flex;\n align-items: center;\n}\n\n.input {\n flex: 1;\n border: none;\n background: transparent;\n font-family: var(--osdk-filter-input-font-family);\n font-size: var(--osdk-filter-input-font-size);\n color: var(--osdk-filter-input-color);\n outline: none;\n\n &::placeholder {\n color: var(--osdk-filter-input-placeholder-color);\n }\n}\n\n.clearButton {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-input-clear-padding);\n border: none;\n background: var(--osdk-filter-input-clear-bg);\n color: var(--osdk-filter-input-icon-color);\n cursor: pointer;\n border-radius: var(--osdk-filter-input-clear-border-radius);\n transition: background-color var(--osdk-filter-input-transition);\n\n &:hover {\n background: var(--osdk-filter-input-clear-bg-hover);\n }\n\n &:active {\n background: var(--osdk-filter-input-clear-bg-active);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Input } from \"@base-ui/react/input\";\nimport { Cross, Search } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport { debounce } from \"lodash-es\";\nimport React, { memo, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport styles from \"./ContainsTextInput.module.css\";\nfunction ContainsTextInputInner({\n value,\n onChange,\n placeholder = \"Search...\",\n debounceMs = 300,\n className,\n style,\n renderSearchIcon,\n renderClearIcon\n}) {\n const [localValue, setLocalValue] = useState(value ?? \"\");\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n const debouncedOnChange = useMemo(() => debounce(newValue => {\n onChangeRef.current(newValue.length > 0 ? newValue : undefined);\n }, debounceMs), [debounceMs]);\n useEffect(() => {\n return () => {\n debouncedOnChange.cancel();\n };\n }, [debouncedOnChange]);\n useEffect(() => {\n setLocalValue(value ?? \"\");\n debouncedOnChange.cancel();\n }, [value, debouncedOnChange]);\n const handleInputChange = useCallback(e => {\n setLocalValue(e.target.value);\n debouncedOnChange(e.target.value);\n }, [debouncedOnChange]);\n const handleClear = useCallback(() => {\n setLocalValue(\"\");\n debouncedOnChange.cancel();\n onChangeRef.current(undefined);\n }, [debouncedOnChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.textInput, className),\n style: style,\n \"data-has-value\": !!localValue\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.inputGroup\n }, renderSearchIcon ? renderSearchIcon() : /*#__PURE__*/React.createElement(\"span\", {\n className: styles.searchIcon\n }, /*#__PURE__*/React.createElement(Search, {\n color: \"currentColor\"\n })), /*#__PURE__*/React.createElement(Input, {\n type: \"text\",\n className: styles.input,\n value: localValue,\n onChange: handleInputChange,\n placeholder: placeholder,\n \"aria-label\": placeholder\n }), localValue && /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n className: styles.clearButton,\n onClick: handleClear,\n \"aria-label\": \"Clear search\"\n }, renderClearIcon ? renderClearIcon() : /*#__PURE__*/React.createElement(Cross, {\n color: \"currentColor\"\n }))));\n}\nexport const ContainsTextInput = /*#__PURE__*/memo(ContainsTextInputInner);","/*\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.osdkSwitchRoot {\n --osdk-switch-track-width: var(--osdk-switch-track-width-override, 28px);\n --osdk-switch-track-height: var(--osdk-switch-track-height-override, 16px);\n --osdk-switch-thumb-size: var(--osdk-switch-thumb-size-override, 12px);\n --osdk-switch-thumb-offset: var(--osdk-switch-thumb-offset-override, 2px);\n\n display: inline-flex;\n align-items: center;\n width: var(--osdk-switch-track-width);\n height: var(--osdk-switch-track-height);\n padding: 0;\n box-sizing: border-box;\n cursor: pointer;\n border-radius: var(--osdk-switch-border-radius, var(--osdk-surface-border-radius));\n position: relative;\n border: none;\n transition: background-color var(--osdk-switch-transition-duration, var(--osdk-emphasis-transition-duration))\n var(--osdk-switch-transition-ease, var(--osdk-emphasis-ease-default));\n\n &[data-unchecked] {\n background-color: var(--osdk-switch-track-bg, var(--osdk-intent-default-rest));\n\n &:hover {\n background-color: var(--osdk-switch-track-bg-hover, var(--osdk-intent-default-hover));\n }\n\n &:active {\n background-color: var(--osdk-switch-track-bg-active, var(--osdk-intent-default-active));\n }\n }\n\n &[data-checked] {\n background-color: var(--osdk-switch-track-bg-checked, var(--osdk-intent-primary-rest));\n\n &:hover {\n background-color: var(--osdk-switch-track-bg-checked-hover, var(--osdk-intent-primary-hover));\n }\n\n &:active {\n background-color: var(--osdk-switch-track-bg-checked-active, var(--osdk-intent-primary-active));\n }\n }\n\n &[data-disabled] {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n &:focus-visible {\n outline: var(--osdk-switch-focus-width, var(--osdk-emphasis-focus-width)) solid\n var(--osdk-switch-focus-color, var(--osdk-emphasis-focus-color));\n outline-offset: var(--osdk-switch-focus-offset, var(--osdk-emphasis-focus-offset));\n }\n}\n\n.osdkSwitchThumb {\n display: block;\n width: var(--osdk-switch-thumb-size);\n height: var(--osdk-switch-thumb-size);\n background-color: var(--osdk-switch-thumb-bg, var(--osdk-palette-white));\n border-radius: 50%;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n transition: left var(--osdk-switch-transition-duration, var(--osdk-emphasis-transition-duration))\n var(--osdk-switch-transition-ease, var(--osdk-emphasis-ease-default));\n\n &[data-unchecked] {\n left: var(--osdk-switch-thumb-offset);\n }\n\n &[data-checked] {\n left: calc(var(--osdk-switch-track-width) - var(--osdk-switch-thumb-size) - var(--osdk-switch-thumb-offset));\n }\n}\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Switch as BaseUISwitch } from \"@base-ui/react/switch\";\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./Switch.module.css\";\nexport function Switch({\n className,\n thumbProps,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUISwitch.Root, _extends({\n className: classnames(styles.osdkSwitchRoot, className)\n }, rest), /*#__PURE__*/React.createElement(BaseUISwitch.Thumb, _extends({}, thumbProps, {\n className: classnames(styles.osdkSwitchThumb, thumbProps?.className)\n })));\n}","/*\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.toggleInput {\n display: flex;\n align-items: center;\n}\n\n.toggleLabel {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-toggle-label-gap);\n cursor: pointer;\n}\n\n.labelText {\n font-family: var(--osdk-filter-toggle-label-font-family);\n font-size: var(--osdk-filter-toggle-label-font-size);\n line-height: var(--osdk-filter-toggle-label-line-height);\n color: var(--osdk-filter-toggle-label-color);\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classnames from \"classnames\";\nimport React, { memo } from \"react\";\nimport { Switch } from \"../../../base-components/switch/Switch.js\";\nimport styles from \"./ToggleInput.module.css\";\nfunction ToggleInputInner({\n enabled,\n onChange,\n label,\n className,\n style\n}) {\n const rootClassName = classnames(styles.toggleInput, className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: rootClassName,\n style: style,\n \"data-enabled\": enabled\n }, /*#__PURE__*/React.createElement(\"label\", {\n className: styles.toggleLabel\n }, /*#__PURE__*/React.createElement(Switch, {\n checked: enabled,\n onCheckedChange: onChange\n }), label && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.labelText\n }, label)));\n}\nexport const ToggleInput = /*#__PURE__*/memo(ToggleInputInner);","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Exhaustive type checking helper.\n * Use in default cases of switch statements to ensure all cases are handled.\n * TypeScript will error if a case is missing.\n */\nexport function assertUnreachable(value) {\n throw new Error(`Unhandled value: ${String(value)}`);\n}","/*\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.osdkCheckboxRoot {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: calc(\n var(--osdk-checkbox-icon-size) + var(--osdk-checkbox-padding) * 2\n );\n min-height: calc(\n var(--osdk-checkbox-icon-size) + var(--osdk-checkbox-padding) * 2\n );\n padding: var(--osdk-checkbox-padding);\n box-sizing: border-box;\n cursor: pointer;\n border-radius: var(--osdk-surface-border-radius);\n border: var(--osdk-checkbox-border);\n\n &[data-unchecked] {\n background-color: var(--osdk-checkbox-bg);\n\n &:hover {\n background-color: var(--osdk-checkbox-bg-hover);\n }\n\n &:active {\n background-color: var(--osdk-checkbox-bg-active);\n }\n }\n\n &[data-checked],\n &[data-indeterminate] {\n background-color: var(--osdk-checkbox-bg-checked);\n\n &:hover {\n background-color: var(--osdk-checkbox-bg-checked-hover);\n }\n\n &:active {\n background-color: var(--osdk-checkbox-bg-checked-active);\n }\n }\n\n &:focus-visible {\n outline: var(--osdk-focus-outline);\n outline-offset: calc(-1 * var(--osdk-focus-visible-outline-offset));\n }\n}\n\n.osdkCheckboxIndicator {\n display: flex;\n justify-content: center;\n align-items: center;\n color: var(--osdk-checkbox-checked-foreground);\n width: var(--osdk-checkbox-icon-size);\n height: var(--osdk-checkbox-icon-size);\n\n &[data-unchecked] {\n display: none;\n }\n}\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Checkbox as BaseUICheckbox } from \"@base-ui/react/checkbox\";\nimport { Minus, Tick } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./Checkbox.module.css\";\nexport function Checkbox({\n indeterminate,\n className,\n indicatorProps,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUICheckbox.Root, _extends({\n className: classnames(styles.osdkCheckboxRoot, className),\n indeterminate: indeterminate\n }, rest), /*#__PURE__*/React.createElement(BaseUICheckbox.Indicator, _extends({}, indicatorProps, {\n className: classnames(styles.osdkCheckboxIndicator, indicatorProps?.className)\n }), indeterminate ? /*#__PURE__*/React.createElement(Minus, {\n color: \"currentColor\"\n }) : /*#__PURE__*/React.createElement(Tick, {\n color: \"currentColor\"\n })));\n}","/*\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.checkboxList {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-checkbox-list-gap);\n transition: opacity var(--osdk-filter-content-fade-duration);\n}\n\n.checkboxList[data-loading=\"true\"] {\n opacity: 0.5;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .checkboxList {\n transition: none;\n }\n}\n\n.checkboxRow {\n padding: var(--osdk-filter-checkbox-row-padding);\n border-radius: var(--osdk-filter-checkbox-row-border-radius);\n\n &:hover {\n background: var(--osdk-filter-checkbox-row-bg-hover);\n }\n}\n\n.checkboxLabel {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-checkbox-label-gap);\n cursor: pointer;\n}\n\n.valueText {\n font-family: var(--osdk-filter-checkbox-value-font-family);\n font-size: var(--osdk-filter-checkbox-value-font-size);\n line-height: var(--osdk-filter-checkbox-value-line-height);\n color: var(--osdk-filter-checkbox-value-color);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.colorDot {\n width: var(--osdk-filter-checkbox-color-dot-size);\n height: var(--osdk-filter-checkbox-color-dot-size);\n border-radius: 50%;\n flex-shrink: 0;\n}\n","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@keyframes skeleton-glow {\n from {\n background: var(--osdk-background-skeleton-from);\n }\n\n to {\n background: var(--osdk-background-skeleton-to);\n }\n}\n\n.skeletonBar {\n animation: 1000ms linear infinite alternate skeleton-glow;\n background: var(--osdk-background-skeleton-from);\n border-radius: var(--osdk-surface-border-radius);\n pointer-events: none;\n user-select: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .skeletonBar {\n animation: none;\n }\n}\n","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./SkeletonBar.module.css\";\nexport function SkeletonBar({\n width,\n height,\n maxWidth,\n className\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n \"aria-hidden\": \"true\",\n className: classnames(styles.skeletonBar, className),\n style: {\n width,\n height,\n maxWidth\n }\n });\n}","/*\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 flex-direction: column;\n gap: var(--osdk-filter-checkbox-list-gap);\n}\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-checkbox-label-gap);\n padding: var(--osdk-filter-checkbox-row-padding);\n}\n\n.flexBar {\n flex: 1;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport { SkeletonBar } from \"../../../base-components/skeleton/SkeletonBar.js\";\nimport styles from \"./CheckboxListSkeleton.module.css\";\nconst SKELETON_ROWS = [{\n textWidth: \"60%\"\n}, {\n textWidth: \"45%\"\n}, {\n textWidth: \"70%\"\n}];\nconst CHECKBOX_SIZE = \"calc(var(--osdk-checkbox-icon-size) + var(--osdk-checkbox-padding) * 2)\";\nexport function CheckboxListSkeleton() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.container\n }, SKELETON_ROWS.map((row, index) => /*#__PURE__*/React.createElement(\"div\", {\n key: index,\n className: styles.row\n }, /*#__PURE__*/React.createElement(SkeletonBar, {\n width: CHECKBOX_SIZE,\n height: CHECKBOX_SIZE\n }), /*#__PURE__*/React.createElement(SkeletonBar, {\n height: \"var(--osdk-filter-skeleton-text-height)\",\n maxWidth: row.textWidth,\n className: styles.flexBar\n }), /*#__PURE__*/React.createElement(SkeletonBar, {\n width: \"var(--osdk-filter-skeleton-count-width)\",\n height: \"var(--osdk-filter-skeleton-text-height)\"\n }))));\n}","/*\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/* Shared message styles for filter inputs */\n.loadingMessage,\n.errorMessage,\n.emptyMessage {\n font-family: var(--osdk-filter-message-font-family);\n font-size: var(--osdk-filter-message-font-size);\n padding: var(--osdk-filter-message-padding);\n}\n\n.loadingMessage,\n.emptyMessage {\n color: var(--osdk-filter-message-color-muted);\n}\n\n.errorMessage {\n color: var(--osdk-filter-message-color-danger);\n}\n\n/* Shared tag styles */\n.tagContainer {\n display: flex;\n flex-wrap: wrap;\n gap: var(--osdk-filter-tag-container-gap);\n}\n\n.tag {\n display: inline-flex;\n align-items: center;\n gap: var(--osdk-filter-tag-gap);\n padding: var(--osdk-filter-tag-padding);\n border-radius: var(--osdk-filter-tag-border-radius);\n background-color: var(--osdk-filter-tag-bg);\n font-family: var(--osdk-filter-tag-font-family);\n font-size: var(--osdk-filter-tag-font-size);\n line-height: var(--osdk-filter-tag-line-height);\n color: var(--osdk-filter-tag-color);\n}\n\n.tagRemove {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--osdk-filter-tag-remove-color);\n font-size: var(--osdk-filter-tag-remove-font-size);\n line-height: 1;\n transition: color var(--osdk-filter-tag-remove-transition);\n\n &:hover {\n color: var(--osdk-filter-tag-remove-color-hover);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useRef } from \"react\";\n\n// TODO: revisit whether this hook is necessary. It may be possible to handle\n// loading states inline (render data if present, show skeleton if loading)\n// instead of preserving stale data in a ref.\nexport function useStaleData(data, isLoading) {\n const ref = useRef(data);\n if (!isLoading) {\n ref.current = data;\n }\n return ref.current;\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { Checkbox } from \"../../../base-components/checkbox/Checkbox.js\";\nimport { filterValuesBySearch } from \"../../utils/filterValues.js\";\nimport styles from \"./CheckboxListInput.module.css\";\nimport { CheckboxListSkeleton } from \"./CheckboxListSkeleton.js\";\nimport sharedStyles from \"./shared.module.css\";\nimport { useStaleData } from \"./useStaleData.js\";\nfunction CheckboxListInputInner({\n values,\n isLoading,\n error,\n selectedValues,\n onChange,\n colorMap,\n searchQuery,\n className,\n style\n}) {\n const stableValues = useStaleData(values, isLoading);\n const displayValues = useMemo(() => {\n const allValues = stableValues.map(item => item.value);\n if (searchQuery) {\n return filterValuesBySearch(allValues, searchQuery, v => v);\n }\n return allValues;\n }, [stableValues, searchQuery]);\n const selectedSet = useMemo(() => new Set(selectedValues), [selectedValues]);\n const toggleValue = useCallback(value => {\n if (selectedSet.has(value)) {\n onChange(selectedValues.filter(v => v !== value));\n } else {\n onChange([...selectedValues, value]);\n }\n }, [selectedValues, selectedSet, onChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.checkboxList, className),\n style: style,\n \"data-loading\": isLoading && displayValues.length > 0\n }, error && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.errorMessage\n }, \"Error loading values: \", error.message), !error && displayValues.length === 0 && isLoading && /*#__PURE__*/React.createElement(CheckboxListSkeleton, null), !error && displayValues.length === 0 && !isLoading && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.emptyMessage\n }, \"No values available\"), displayValues.map(value => {\n const isSelected = selectedSet.has(value);\n const color = colorMap?.[value];\n return /*#__PURE__*/React.createElement(\"div\", {\n key: value,\n className: styles.checkboxRow,\n \"data-selected\": isSelected\n }, /*#__PURE__*/React.createElement(\"label\", {\n className: styles.checkboxLabel\n }, /*#__PURE__*/React.createElement(Checkbox, {\n checked: isSelected,\n onCheckedChange: () => toggleValue(value)\n }), color && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.colorDot,\n style: {\n backgroundColor: color\n }\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.valueText\n }, value)));\n }));\n}\nexport const CheckboxListInput = /*#__PURE__*/memo(CheckboxListInputInner);","/*\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/**\n * Date utilities for HTML date inputs.\n *\n * These functions operate on local time by design. HTML <input type=\"date\">\n * returns and expects values in \"YYYY-MM-DD\" format without timezone info.\n *\n * `parseDateFromInput` appends \"T00:00:00\" (no \"Z\") so the date is parsed as\n * local midnight rather than UTC midnight. Without this, negative-offset\n * timezones (e.g. US timezones) would shift \"2024-01-15\" to Jan 14 locally.\n *\n * Consumers providing dates from an API (typically UTC) should handle\n * UTC-to-local conversion before passing values to these functions.\n */\n\nexport function formatDateForInput(date) {\n if (!date) return \"\";\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n return `${year}-${month}-${day}`;\n}\nexport function parseDateFromInput(value) {\n if (!value) return undefined;\n const date = new Date(value + \"T00:00:00\");\n return isNaN(date.getTime()) ? undefined : date;\n}\nexport function formatDateForDisplay(date, fallback = \"\") {\n if (!date) return fallback;\n return date.toLocaleDateString(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\"\n });\n}\nexport function parseDateFromISO(value) {\n if (value == null) return undefined;\n if (value instanceof Date) return value;\n const date = new Date(value);\n return isNaN(date.getTime()) ? undefined : date;\n}","/*\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\nexport const HISTOGRAM_BUCKETS = 20;\nexport function createHistogramBuckets(pairs, range, toNumber, fromNumber) {\n if (pairs.length === 0) return [];\n const minNum = toNumber(range.min);\n const maxNum = toNumber(range.max);\n const rangeSize = maxNum - minNum;\n\n // Handle single-value case\n if (rangeSize === 0) {\n const totalCount = pairs.reduce((sum, p) => sum + p.count, 0);\n return [{\n min: range.min,\n max: range.max,\n count: totalCount\n }];\n }\n\n // Create buckets\n const bucketSize = rangeSize / HISTOGRAM_BUCKETS;\n const bucketCounts = new Array(HISTOGRAM_BUCKETS).fill(0);\n for (const {\n value,\n count\n } of pairs) {\n const bucketIndex = Math.min(Math.floor((toNumber(value) - minNum) / bucketSize), HISTOGRAM_BUCKETS - 1);\n bucketCounts[bucketIndex] += count;\n }\n return bucketCounts.map((count, i) => ({\n min: fromNumber(minNum + i * bucketSize),\n max: fromNumber(minNum + (i + 1) * bucketSize),\n count\n }));\n}\nexport function getMaxBucketCount(buckets) {\n return Math.max(...buckets.map(b => b.count), 1);\n}","/*\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.rangeInput {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-range-gap);\n min-width: 0;\n transition: opacity var(--osdk-filter-content-fade-duration);\n}\n\n.rangeInput[data-loading=\"true\"] {\n opacity: 0.5;\n}\n\n.histogramContainer {\n display: flex;\n align-items: flex-end;\n height: var(--osdk-filter-range-histogram-height);\n gap: var(--osdk-filter-range-histogram-bar-gap);\n overflow: hidden;\n opacity: 0;\n transition: opacity var(--osdk-filter-content-fade-duration);\n}\n\n.histogramContainer:not([data-empty=\"true\"]) {\n opacity: 1;\n}\n\n.histogramBar {\n flex: 1;\n background: var(--osdk-filter-range-histogram-bar-color);\n min-width: var(--osdk-filter-range-histogram-bar-min-width);\n transition: background-color var(--osdk-filter-range-histogram-bar-transition);\n}\n\n.histogramBar[data-in-range=\"true\"] {\n background: var(--osdk-filter-range-histogram-bar-active-color);\n}\n\n.rangeInputs {\n display: flex;\n align-items: flex-end;\n gap: var(--osdk-filter-range-inputs-gap);\n min-width: 0;\n}\n\n.inputWrapper {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-range-input-wrapper-gap);\n min-width: 0;\n}\n\n.inputLabel {\n font-family: var(--osdk-filter-range-label-font-family);\n font-size: var(--osdk-filter-range-label-font-size);\n color: var(--osdk-filter-range-label-color);\n}\n\n.input {\n font-family: var(--osdk-filter-input-font-family);\n font-size: var(--osdk-filter-input-font-size);\n padding: var(--osdk-filter-input-padding);\n border: var(--osdk-filter-input-border);\n border-radius: var(--osdk-filter-input-border-radius);\n background: var(--osdk-filter-input-bg);\n color: var(--osdk-filter-input-color);\n min-width: 0;\n\n &:focus {\n border-color: var(--osdk-filter-input-focus-border);\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n &::placeholder {\n color: var(--osdk-filter-input-placeholder-color);\n }\n}\n\n.separator {\n padding-bottom: calc(var(--osdk-filter-range-inputs-gap) * 0.75);\n color: var(--osdk-filter-range-separator-color);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .histogramContainer,\n .rangeInput {\n transition: none;\n }\n}\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Input } from \"@base-ui/react/input\";\nimport classnames from \"classnames\";\nimport { debounce } from \"lodash-es\";\nimport React, { memo, useCallback, useEffect, useId, useMemo, useRef, useState } from \"react\";\nimport { createHistogramBuckets, getMaxBucketCount } from \"./createHistogramBuckets.js\";\nimport styles from \"./RangeInput.module.css\";\nimport { useStaleData } from \"./useStaleData.js\";\nconst DEBOUNCE_MS = 300;\nfunction RangeInputInner({\n valueCountPairs,\n isLoading,\n minValue,\n maxValue,\n onChange,\n showHistogram = true,\n className,\n style,\n config\n}) {\n const minInputId = useId();\n const maxInputId = useId();\n const [localMin, setLocalMin] = useState(config.formatValue(minValue));\n const [localMax, setLocalMax] = useState(config.formatValue(maxValue));\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n const minValueRef = useRef(minValue);\n minValueRef.current = minValue;\n const maxValueRef = useRef(maxValue);\n maxValueRef.current = maxValue;\n const debouncedMinChange = useMemo(() => debounce(newValue => {\n const parsed = config.parseValue(newValue);\n onChangeRef.current(parsed, maxValueRef.current);\n }, DEBOUNCE_MS), [config]);\n const debouncedMaxChange = useMemo(() => debounce(newValue => {\n const parsed = config.parseValue(newValue);\n onChangeRef.current(minValueRef.current, parsed);\n }, DEBOUNCE_MS), [config]);\n useEffect(() => {\n setLocalMin(config.formatValue(minValue));\n debouncedMinChange.cancel();\n }, [minValue, config, debouncedMinChange]);\n useEffect(() => {\n setLocalMax(config.formatValue(maxValue));\n debouncedMaxChange.cancel();\n }, [maxValue, config, debouncedMaxChange]);\n useEffect(() => {\n return () => {\n debouncedMinChange.cancel();\n debouncedMaxChange.cancel();\n };\n }, [debouncedMinChange, debouncedMaxChange]);\n const displayPairs = useStaleData(valueCountPairs, isLoading);\n const computedRange = useMemo(() => {\n if (displayPairs.length === 0) return {\n min: undefined,\n max: undefined\n };\n const min = displayPairs.reduce((acc, p) => Math.min(acc, config.toNumber(p.value)), Infinity);\n const max = displayPairs.reduce((acc, p) => Math.max(acc, config.toNumber(p.value)), -Infinity);\n return {\n min: config.fromNumber(min),\n max: config.fromNumber(max)\n };\n }, [displayPairs, config]);\n const dataRange = useMemo(() => ({\n dataMin: computedRange.min,\n dataMax: computedRange.max\n }), [computedRange.min, computedRange.max]);\n const buckets = useMemo(() => {\n if (!showHistogram || displayPairs.length === 0 || computedRange.min === undefined || computedRange.max === undefined) {\n return [];\n }\n return createHistogramBuckets(displayPairs, {\n min: computedRange.min,\n max: computedRange.max\n }, config.toNumber, config.fromNumber);\n }, [showHistogram, displayPairs, computedRange, config]);\n const maxBucketCount = useMemo(() => getMaxBucketCount(buckets), [buckets]);\n const handleMinChange = useCallback(e => {\n const newValue = e.target.value;\n setLocalMin(newValue);\n debouncedMinChange(newValue);\n }, [debouncedMinChange]);\n const handleMaxChange = useCallback(e => {\n const newValue = e.target.value;\n setLocalMax(newValue);\n debouncedMaxChange(newValue);\n }, [debouncedMaxChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.rangeInput, className),\n style: style,\n \"data-loading\": isLoading\n }, showHistogram && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.histogramContainer,\n \"data-empty\": buckets.length === 0\n }, buckets.map((bucket, index) => {\n const height = bucket.count / maxBucketCount * 100;\n const isInRange = (minValue === undefined || config.toNumber(bucket.max) >= config.toNumber(minValue)) && (maxValue === undefined || config.toNumber(bucket.min) <= config.toNumber(maxValue));\n return /*#__PURE__*/React.createElement(\"div\", {\n key: index,\n className: styles.histogramBar,\n \"data-in-range\": isInRange,\n style: {\n height: `${Math.max(height, 2)}%`\n },\n title: config.formatTooltip(bucket.min, bucket.max, bucket.count)\n });\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.rangeInputs\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.inputWrapper\n }, /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: minInputId,\n className: styles.inputLabel\n }, config.minLabel), /*#__PURE__*/React.createElement(Input, _extends({\n id: minInputId,\n type: config.inputType,\n className: styles.input,\n value: localMin,\n onChange: handleMinChange,\n placeholder: dataRange.dataMin !== undefined && config.formatPlaceholder ? config.formatPlaceholder(dataRange.dataMin) : undefined\n }, config.inputProps))), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.separator,\n \"aria-hidden\": \"true\"\n }, \"\\u2013\"), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.inputWrapper\n }, /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: maxInputId,\n className: styles.inputLabel\n }, config.maxLabel), /*#__PURE__*/React.createElement(Input, _extends({\n id: maxInputId,\n type: config.inputType,\n className: styles.input,\n value: localMax,\n onChange: handleMaxChange,\n placeholder: dataRange.dataMax !== undefined && config.formatPlaceholder ? config.formatPlaceholder(dataRange.dataMax) : undefined\n }, config.inputProps)))));\n}\nexport const RangeInput = /*#__PURE__*/memo(RangeInputInner);","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo } from \"react\";\nimport { formatDateForInput, parseDateFromInput } from \"./dateUtils.js\";\nimport { RangeInput } from \"./RangeInput.js\";\nconst dateConfig = {\n inputType: \"date\",\n formatValue: formatDateForInput,\n parseValue: parseDateFromInput,\n toNumber: d => d.getTime(),\n fromNumber: t => new Date(t),\n minLabel: \"From\",\n maxLabel: \"To\",\n formatTooltip: (min, max, count) => `${formatDateForInput(min)} - ${formatDateForInput(max)}: ${count.toLocaleString()}`\n};\nfunction DateRangeInputInner(props) {\n return /*#__PURE__*/React.createElement(RangeInput, _extends({}, props, {\n config: dateConfig\n }));\n}\nexport const DateRangeInput = /*#__PURE__*/memo(DateRangeInputInner);","/*\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.linkedProperty {\n display: flex;\n flex-direction: column;\n}\n","/*\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.listogram {\n display: flex;\n flex-direction: column;\n transition: opacity var(--osdk-filter-content-fade-duration);\n}\n\n.listogram[data-loading=\"true\"] {\n opacity: 0.5;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .listogram {\n transition: none;\n }\n}\n\n.container {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-listogram-gap);\n}\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-listogram-row-gap);\n padding: var(--osdk-filter-listogram-row-padding);\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: var(--osdk-filter-listogram-row-border-radius);\n text-align: left;\n width: 100%;\n transition: background-color var(--osdk-filter-listogram-row-transition);\n\n &:hover {\n background: var(--osdk-filter-listogram-row-bg-hover);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-listogram-row-focus-outline);\n outline-offset: var(--osdk-filter-listogram-row-focus-offset);\n }\n}\n\n.row[aria-pressed=\"true\"] {\n background: var(--osdk-filter-listogram-row-bg-active);\n}\n\n.label {\n flex: 1;\n font-family: var(--osdk-filter-listogram-label-font-family);\n font-size: var(--osdk-filter-listogram-label-font-size);\n color: var(--osdk-filter-listogram-label-color);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.bar {\n width: var(--osdk-filter-listogram-bar-width);\n flex-shrink: 0;\n height: var(--osdk-filter-listogram-bar-height);\n background: var(--osdk-filter-listogram-bar-bg);\n border-radius: var(--osdk-filter-listogram-bar-border-radius);\n overflow: hidden;\n}\n\n.barFill {\n display: block;\n height: 100%;\n width: 100%;\n background: var(--osdk-filter-listogram-row-bar-color, var(--osdk-filter-listogram-bar-color));\n transform-origin: left;\n transform: scaleX(var(--osdk-filter-listogram-bar-fill-scale, 0));\n transition: transform var(--osdk-filter-listogram-bar-fill-transition);\n}\n\n.row[aria-pressed=\"true\"] .barFill {\n background: var(--osdk-filter-listogram-row-bar-color, var(--osdk-filter-listogram-selected-color));\n}\n\n.count {\n font-family: var(--osdk-filter-listogram-count-font-family);\n font-size: var(--osdk-filter-listogram-count-font-size);\n font-variant-numeric: tabular-nums;\n color: var(--osdk-filter-listogram-count-color);\n min-width: 3ch;\n text-align: right;\n}\n","/*\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 flex-direction: column;\n gap: var(--osdk-filter-listogram-gap);\n}\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-listogram-row-gap);\n padding: var(--osdk-filter-listogram-row-padding);\n}\n\n.flexBar {\n flex: 1;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport { SkeletonBar } from \"../../../base-components/skeleton/SkeletonBar.js\";\nimport styles from \"./ListogramSkeleton.module.css\";\nconst SKELETON_ROWS = [{\n textWidth: \"50%\"\n}, {\n textWidth: \"35%\"\n}, {\n textWidth: \"60%\"\n}];\nexport function ListogramSkeleton() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.container\n }, SKELETON_ROWS.map((row, index) => /*#__PURE__*/React.createElement(\"div\", {\n key: index,\n className: styles.row\n }, /*#__PURE__*/React.createElement(SkeletonBar, {\n height: \"var(--osdk-filter-skeleton-text-height)\",\n maxWidth: row.textWidth,\n className: styles.flexBar\n }), /*#__PURE__*/React.createElement(SkeletonBar, {\n width: \"var(--osdk-filter-listogram-bar-width)\",\n height: \"var(--osdk-filter-listogram-bar-height)\"\n }), /*#__PURE__*/React.createElement(SkeletonBar, {\n width: \"var(--osdk-filter-skeleton-count-width)\",\n height: \"var(--osdk-filter-skeleton-text-height)\"\n }))));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo, useState } from \"react\";\nimport { filterValuesBySearch } from \"../../utils/filterValues.js\";\nimport styles from \"./ListogramInput.module.css\";\nimport { ListogramSkeleton } from \"./ListogramSkeleton.js\";\nimport sharedStyles from \"./shared.module.css\";\nimport { useStaleData } from \"./useStaleData.js\";\nfunction ListogramInputInner({\n values,\n maxCount,\n isLoading,\n error,\n selectedValues,\n onChange,\n colorMap,\n displayMode = \"full\",\n className,\n style,\n maxVisibleItems,\n searchQuery\n}) {\n const [isExpanded, setIsExpanded] = useState(false);\n const stableValues = useStaleData(values, isLoading);\n const selectedSet = useMemo(() => new Set(selectedValues), [selectedValues]);\n const toggleValue = useCallback(value => {\n if (selectedSet.has(value)) {\n onChange(selectedValues.filter(v => v !== value));\n } else {\n onChange([...selectedValues, value]);\n }\n }, [selectedValues, selectedSet, onChange]);\n const filteredValues = useMemo(() => {\n if (searchQuery) {\n return filterValuesBySearch(stableValues, searchQuery, v => v.value);\n }\n return stableValues;\n }, [stableValues, searchQuery]);\n const displayValues = useMemo(() => {\n if (isExpanded || !maxVisibleItems) return filteredValues;\n return filteredValues.slice(0, maxVisibleItems);\n }, [filteredValues, maxVisibleItems, isExpanded]);\n const hasMore = maxVisibleItems != null && filteredValues.length > maxVisibleItems;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.listogram, className),\n style: style,\n \"data-loading\": isLoading && filteredValues.length > 0\n }, error && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.errorMessage\n }, \"Error loading values: \", error.message), !error && filteredValues.length === 0 && isLoading && /*#__PURE__*/React.createElement(ListogramSkeleton, null), !error && filteredValues.length === 0 && !isLoading && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.emptyMessage\n }, \"No values available\"), filteredValues.length > 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.container\n }, displayValues.map(({\n value,\n count\n }) => {\n const percentage = maxCount > 0 ? count / maxCount * 100 : 0;\n const perRowColor = colorMap?.[value];\n return /*#__PURE__*/React.createElement(Button, {\n key: value,\n className: styles.row,\n onClick: () => toggleValue(value),\n \"aria-pressed\": selectedSet.has(value),\n style: perRowColor || percentage > 0 ? {\n \"--osdk-filter-listogram-bar-fill-scale\": percentage / 100,\n ...(perRowColor ? {\n \"--osdk-filter-listogram-row-bar-color\": perRowColor\n } : undefined)\n } : undefined\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.label\n }, value), displayMode === \"full\" && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.bar\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.barFill\n })), displayMode !== \"minimal\" && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.count\n }, count.toLocaleString()));\n }), hasMore && !isExpanded && /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n className: styles.row,\n onClick: () => setIsExpanded(true)\n }, \"View all (\", filteredValues.length, \")\")));\n}\nexport const ListogramInput = /*#__PURE__*/memo(ListogramInputInner);","/*\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.multiDate {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-multiselect-gap);\n}\n\n.clearAll {\n font-family: var(--osdk-filter-date-clear-font-family);\n font-size: var(--osdk-filter-date-clear-font-size);\n color: var(--osdk-filter-date-clear-color);\n background: transparent;\n border: none;\n cursor: pointer;\n padding: var(--osdk-filter-date-clear-padding);\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.calendarContainer {\n display: flex;\n}\n\n.input {\n flex: 1;\n font-family: var(--osdk-filter-input-font-family);\n font-size: var(--osdk-filter-timeline-input-font-size);\n padding: var(--osdk-filter-input-padding);\n border: var(--osdk-filter-input-border);\n border-radius: var(--osdk-filter-input-border-radius);\n background: var(--osdk-filter-input-bg);\n color: var(--osdk-filter-input-color);\n\n &:focus {\n border-color: var(--osdk-filter-input-focus-border);\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Input } from \"@base-ui/react/input\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback } from \"react\";\nimport { formatDateForDisplay, formatDateForInput, parseDateFromInput } from \"./dateUtils.js\";\nimport styles from \"./MultiDateInput.module.css\";\nimport sharedStyles from \"./shared.module.css\";\nfunction MultiDateInputInner({\n selectedDates,\n onChange,\n className,\n style,\n minDate,\n maxDate,\n showClearAll = true\n}) {\n const addDate = useCallback(date => {\n const dateStr = formatDateForInput(date);\n const exists = selectedDates.some(d => formatDateForInput(d) === dateStr);\n if (!exists) {\n onChange([...selectedDates, date].sort((a, b) => a.getTime() - b.getTime()));\n }\n }, [selectedDates, onChange]);\n const removeDate = useCallback(date => {\n const dateStr = formatDateForInput(date);\n onChange(selectedDates.filter(d => formatDateForInput(d) !== dateStr));\n }, [selectedDates, onChange]);\n const clearAll = useCallback(() => {\n onChange([]);\n }, [onChange]);\n const handleDateChange = useCallback(e => {\n const date = parseDateFromInput(e.target.value);\n if (date) {\n addDate(date);\n e.target.value = \"\";\n }\n }, [addDate]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.multiDate, className),\n style: style\n }, selectedDates.length > 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.tagContainer\n }, selectedDates.map(date => /*#__PURE__*/React.createElement(\"span\", {\n key: date.toISOString(),\n className: sharedStyles.tag\n }, formatDateForDisplay(date), /*#__PURE__*/React.createElement(Button, {\n className: sharedStyles.tagRemove,\n onClick: () => removeDate(date),\n \"aria-label\": `Remove ${formatDateForDisplay(date)}`\n }, \"\\xD7\"))), showClearAll && selectedDates.length > 1 && /*#__PURE__*/React.createElement(Button, {\n className: styles.clearAll,\n onClick: clearAll,\n \"aria-label\": \"Clear all dates\"\n }, \"Clear all\")), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.calendarContainer\n }, /*#__PURE__*/React.createElement(Input, {\n type: \"date\",\n className: styles.input,\n onChange: handleDateChange,\n min: minDate ? formatDateForInput(minDate) : undefined,\n max: maxDate ? formatDateForInput(maxDate) : undefined,\n \"aria-label\": \"Add date\"\n })));\n}\nexport const MultiDateInput = /*#__PURE__*/memo(MultiDateInputInner);","/*\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.osdkComboboxInputWrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--osdk-combobox-spacing, var(--osdk-surface-spacing));\n width: 100%;\n min-height: var(--osdk-combobox-min-height, 30px);\n padding: calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 1.5)\n calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 2);\n box-sizing: border-box;\n border-radius: var(\n --osdk-combobox-border-radius,\n var(--osdk-surface-border-radius)\n );\n border: var(--osdk-combobox-border-width, var(--osdk-surface-border-width))\n solid\n var(--osdk-combobox-border-color, var(--osdk-surface-border-color-default));\n background-color: var(\n --osdk-combobox-input-bg,\n var(--osdk-surface-background-color-default-rest)\n );\n transition: border-color\n var(\n --osdk-combobox-transition-duration,\n var(--osdk-emphasis-transition-duration)\n )\n var(--osdk-combobox-transition-ease, var(--osdk-emphasis-ease-default));\n\n &:focus-within {\n border-color: var(\n --osdk-combobox-focus-border-color,\n var(--osdk-intent-primary-rest)\n );\n outline: var(--osdk-combobox-focus-width, var(--osdk-emphasis-focus-width))\n solid var(--osdk-combobox-focus-color, var(--osdk-emphasis-focus-color));\n outline-offset: var(\n --osdk-combobox-focus-offset,\n var(--osdk-emphasis-focus-offset)\n );\n }\n}\n\n.osdkComboboxSearchIcon {\n flex-shrink: 0;\n color: var(--osdk-combobox-icon-color, var(--osdk-iconography-color-muted));\n}\n\n.osdkComboboxInput {\n flex: 1;\n min-width: 0;\n width: 100%;\n box-sizing: border-box;\n padding: calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 1.5)\n calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 2);\n border-radius: var(\n --osdk-combobox-border-radius,\n var(--osdk-surface-border-radius)\n );\n border: var(--osdk-combobox-border-width, var(--osdk-surface-border-width))\n solid\n var(--osdk-combobox-border-color, var(--osdk-surface-border-color-default));\n background-color: var(\n --osdk-combobox-input-bg,\n var(--osdk-surface-background-color-default-rest)\n );\n transition: border-color\n var(\n --osdk-combobox-transition-duration,\n var(--osdk-emphasis-transition-duration)\n )\n var(--osdk-combobox-transition-ease, var(--osdk-emphasis-ease-default));\n\n &:focus {\n border-color: var(\n --osdk-combobox-focus-border-color,\n var(--osdk-intent-primary-rest)\n );\n outline: var(--osdk-combobox-focus-width, var(--osdk-emphasis-focus-width))\n solid var(--osdk-combobox-focus-color, var(--osdk-emphasis-focus-color));\n outline-offset: var(\n --osdk-combobox-focus-offset,\n var(--osdk-emphasis-focus-offset)\n );\n }\n\n .osdkComboboxInputWrapper & {\n padding: 0;\n border: none;\n border-radius: 0;\n background: transparent;\n\n &:focus {\n border-color: unset;\n outline: none;\n outline-offset: unset;\n }\n }\n font-family: var(\n --osdk-combobox-font-family,\n var(--osdk-typography-family-default)\n );\n font-size: var(\n --osdk-combobox-font-size,\n var(--osdk-typography-size-body-medium)\n );\n line-height: var(\n --osdk-combobox-line-height,\n var(--osdk-typography-line-height-default)\n );\n color: var(\n --osdk-combobox-input-color,\n var(--osdk-typography-color-default-rest)\n );\n outline: none;\n\n &::placeholder {\n color: var(\n --osdk-combobox-placeholder-color,\n var(--osdk-typography-color-muted)\n );\n }\n}\n\n.osdkComboboxPositioner {\n z-index: var(--osdk-combobox-z-index, var(--osdk-surface-z-index-3));\n}\n\n.osdkComboboxPopup {\n display: flex;\n flex-direction: column;\n min-width: var(--anchor-width);\n max-height: var(--available-height);\n overflow-y: auto;\n padding: calc(\n var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 1.5\n );\n box-sizing: border-box;\n border-radius: var(\n --osdk-combobox-border-radius,\n var(--osdk-surface-border-radius)\n );\n border: var(--osdk-combobox-border-width, var(--osdk-surface-border-width))\n solid\n var(--osdk-combobox-border-color, var(--osdk-surface-border-color-default));\n background-color: var(\n --osdk-combobox-popup-bg,\n var(--osdk-surface-background-color-default-rest)\n );\n box-shadow: var(--osdk-combobox-popup-shadow, var(--osdk-surface-shadow-2));\n}\n\n.osdkComboboxItem {\n display: flex;\n align-items: center;\n padding: calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 1.5)\n calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 2);\n border-radius: var(\n --osdk-combobox-border-radius,\n var(--osdk-surface-border-radius)\n );\n cursor: pointer;\n font-family: var(\n --osdk-combobox-font-family,\n var(--osdk-typography-family-default)\n );\n font-size: var(\n --osdk-combobox-font-size,\n var(--osdk-typography-size-body-medium)\n );\n line-height: var(\n --osdk-combobox-line-height,\n var(--osdk-typography-line-height-default)\n );\n color: var(\n --osdk-combobox-item-color,\n var(--osdk-typography-color-default-rest)\n );\n transition: background-color\n var(\n --osdk-combobox-transition-duration,\n var(--osdk-emphasis-transition-duration)\n )\n var(--osdk-combobox-transition-ease, var(--osdk-emphasis-ease-default));\n\n &[data-highlighted] {\n background-color: var(\n --osdk-combobox-item-bg-highlighted,\n var(--osdk-surface-background-color-default-hover)\n );\n outline: none;\n }\n\n &[data-selected] {\n background-color: var(\n --osdk-combobox-item-bg-selected,\n var(--osdk-surface-layer-primary)\n );\n color: var(\n --osdk-combobox-item-color-selected,\n var(--osdk-intent-primary-rest)\n );\n }\n\n &[data-disabled] {\n cursor: not-allowed;\n opacity: var(--osdk-disabled-opacity, 0.5);\n }\n}\n\n.osdkComboboxChips {\n display: flex;\n flex-wrap: wrap;\n gap: calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 1.5);\n margin-bottom: calc(\n var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 2\n );\n}\n\n.osdkComboboxChip {\n display: inline-flex;\n align-items: center;\n gap: var(--osdk-combobox-spacing, var(--osdk-surface-spacing));\n padding: calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 0.5)\n calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 1.5);\n border-radius: var(\n --osdk-combobox-border-radius,\n var(--osdk-surface-border-radius)\n );\n background-color: var(\n --osdk-combobox-chip-bg,\n var(--osdk-surface-background-color-default-hover)\n );\n font-family: var(\n --osdk-combobox-font-family,\n var(--osdk-typography-family-default)\n );\n font-size: var(\n --osdk-combobox-chip-font-size,\n var(--osdk-typography-size-body-small)\n );\n line-height: var(\n --osdk-combobox-line-height,\n var(--osdk-typography-line-height-default)\n );\n color: var(\n --osdk-combobox-chip-color,\n var(--osdk-typography-color-default-rest)\n );\n}\n\n.osdkComboboxChipRemove {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(\n --osdk-combobox-chip-remove-color,\n var(--osdk-iconography-color-muted)\n );\n transition: color\n var(\n --osdk-combobox-transition-duration,\n var(--osdk-emphasis-transition-duration)\n )\n var(--osdk-combobox-transition-ease, var(--osdk-emphasis-ease-default));\n\n &:hover {\n color: var(\n --osdk-combobox-chip-remove-color-hover,\n var(--osdk-typography-color-default-rest)\n );\n }\n}\n\n.osdkComboboxClear {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: calc(\n var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 0.5\n );\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--osdk-combobox-clear-color, var(--osdk-iconography-color-muted));\n border-radius: var(\n --osdk-combobox-border-radius,\n var(--osdk-surface-border-radius)\n );\n transition:\n color\n var(\n --osdk-combobox-transition-duration,\n var(--osdk-emphasis-transition-duration)\n )\n var(--osdk-combobox-transition-ease, var(--osdk-emphasis-ease-default)),\n background-color\n var(\n --osdk-combobox-transition-duration,\n var(--osdk-emphasis-transition-duration)\n )\n var(--osdk-combobox-transition-ease, var(--osdk-emphasis-ease-default));\n\n &:hover {\n color: var(\n --osdk-combobox-clear-color-hover,\n var(--osdk-typography-color-default-rest)\n );\n background-color: var(\n --osdk-combobox-clear-bg-hover,\n var(--osdk-surface-background-color-default-hover)\n );\n }\n}\n\n.osdkComboboxList {\n display: flex;\n flex-direction: column;\n}\n\n.osdkComboboxEmpty {\n padding: calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 3)\n calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 2);\n text-align: center;\n color: var(--osdk-combobox-empty-color, var(--osdk-typography-color-muted));\n font-family: var(\n --osdk-combobox-font-family,\n var(--osdk-typography-family-default)\n );\n font-size: var(\n --osdk-combobox-font-size,\n var(--osdk-typography-size-body-medium)\n );\n\n &:empty {\n display: none;\n }\n}\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Combobox as BaseUICombobox } from \"@base-ui/react/combobox\";\nimport { Cross, Search } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./Combobox.module.css\";\nfunction ComboboxSearchInput({\n className,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.osdkComboboxInputWrapper, className)\n }, /*#__PURE__*/React.createElement(Search, {\n className: styles.osdkComboboxSearchIcon,\n color: \"currentColor\"\n }), /*#__PURE__*/React.createElement(BaseUICombobox.Input, _extends({\n className: styles.osdkComboboxInput\n }, rest)));\n}\nfunction ComboboxInput({\n className,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUICombobox.Input, _extends({\n className: classnames(styles.osdkComboboxInput, className)\n }, rest));\n}\nfunction ComboboxPositioner({\n className,\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUICombobox.Positioner, _extends({\n className: classnames(styles.osdkComboboxPositioner, className),\n sideOffset: 4\n }, rest), children);\n}\nfunction ComboboxPopup({\n className,\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUICombobox.Popup, _extends({\n className: classnames(styles.osdkComboboxPopup, className)\n }, rest), children);\n}\nfunction ComboboxItem({\n className,\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUICombobox.Item, _extends({\n className: classnames(styles.osdkComboboxItem, className)\n }, rest), children);\n}\nfunction ComboboxChips({\n children,\n className\n}) {\n return /*#__PURE__*/React.createElement(BaseUICombobox.Chips, {\n render: props => /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n className: classnames(styles.osdkComboboxInputWrapper, className)\n }), props.children)\n }, children);\n}\nfunction ComboboxChip({\n className,\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUICombobox.Chip, _extends({\n className: classnames(styles.osdkComboboxChip, className)\n }, rest), children);\n}\nfunction ComboboxChipRemove({\n className,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUICombobox.ChipRemove, _extends({\n className: classnames(styles.osdkComboboxChipRemove, className),\n \"aria-label\": \"Remove\"\n }, rest), /*#__PURE__*/React.createElement(Cross, {\n color: \"currentColor\"\n }));\n}\nfunction ComboboxClear({\n className,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUICombobox.Clear, _extends({\n className: classnames(styles.osdkComboboxClear, className),\n \"aria-label\": \"Clear all\"\n }, rest), /*#__PURE__*/React.createElement(Cross, {\n color: \"currentColor\"\n }));\n}\nfunction ComboboxEmpty({\n children,\n className\n}) {\n return /*#__PURE__*/React.createElement(BaseUICombobox.Empty, {\n className: classnames(styles.osdkComboboxEmpty, className)\n }, children);\n}\nfunction ComboboxList({\n className,\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUICombobox.List, _extends({\n className: classnames(styles.osdkComboboxList, className)\n }, rest), children);\n}\nexport const Combobox = {\n Root: BaseUICombobox.Root,\n SearchInput: ComboboxSearchInput,\n Input: ComboboxInput,\n Portal: BaseUICombobox.Portal,\n Positioner: ComboboxPositioner,\n Popup: ComboboxPopup,\n List: ComboboxList,\n Item: ComboboxItem,\n Chips: ComboboxChips,\n Chip: ComboboxChip,\n ChipRemove: ComboboxChipRemove,\n Clear: ComboboxClear,\n Empty: ComboboxEmpty,\n Value: BaseUICombobox.Value\n};","/*\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.multiSelect {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-multiselect-gap);\n}\n\n.inputRow {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-multiselect-inputRow-gap);\n}\n\n.clearButton {\n flex-shrink: 0;\n}\n\n.itemCount {\n font-family: var(--osdk-filter-multiselect-count-font-family);\n font-size: var(--osdk-filter-multiselect-count-font-size);\n font-variant-numeric: tabular-nums;\n color: var(--osdk-filter-multiselect-count-color);\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback } from \"react\";\nimport { Combobox } from \"../../../base-components/combobox/Combobox.js\";\nimport styles from \"./MultiSelectInput.module.css\";\nimport sharedStyles from \"./shared.module.css\";\nfunction MultiSelectInputInner({\n values,\n isLoading,\n error,\n selectedValues,\n onChange,\n className,\n style,\n placeholder = \"Select values...\",\n maxDisplayedTags = 3,\n showClearAll = true,\n ariaLabel = \"Search values\"\n}) {\n const handleValueChange = useCallback(newValues => {\n onChange(newValues ?? []);\n }, [onChange]);\n const removeValue = useCallback(value => {\n onChange(selectedValues.filter(v => v !== value));\n }, [selectedValues, onChange]);\n const clearAll = useCallback(() => {\n onChange([]);\n }, [onChange]);\n const displayedTags = selectedValues.slice(0, maxDisplayedTags);\n const remainingCount = selectedValues.length - maxDisplayedTags;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.multiSelect, className),\n style: style,\n \"data-loading\": isLoading\n }, error && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.errorMessage\n }, \"Error loading options: \", error.message), !error && values.length === 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.emptyMessage\n }, isLoading ? \"Loading options...\" : \"No options available\"), (values.length > 0 || isLoading) && /*#__PURE__*/React.createElement(Combobox.Root, {\n multiple: true,\n value: selectedValues,\n onValueChange: handleValueChange\n }, isLoading && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.loadingMessage\n }, \"Updating...\"), selectedValues.length > 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.tagContainer\n }, displayedTags.map(value => /*#__PURE__*/React.createElement(\"span\", {\n key: value,\n className: sharedStyles.tag\n }, value, /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n className: sharedStyles.tagRemove,\n onClick: () => removeValue(value),\n \"aria-label\": `Remove ${value}`\n }, \"\\xD7\"))), remainingCount > 0 && /*#__PURE__*/React.createElement(\"span\", {\n className: sharedStyles.tag\n }, \"+\", remainingCount, \" more\")), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.inputRow\n }, /*#__PURE__*/React.createElement(Combobox.SearchInput, {\n placeholder: selectedValues.length > 0 ? `${selectedValues.length} selected` : placeholder,\n \"aria-label\": ariaLabel\n }), showClearAll && selectedValues.length > 0 && /*#__PURE__*/React.createElement(Combobox.Clear, {\n className: styles.clearButton,\n onClick: clearAll,\n \"aria-label\": \"Clear all selections\"\n })), /*#__PURE__*/React.createElement(Combobox.Portal, null, /*#__PURE__*/React.createElement(Combobox.Positioner, null, /*#__PURE__*/React.createElement(Combobox.Popup, null, values.length === 0 ? /*#__PURE__*/React.createElement(Combobox.Empty, null, \"No options available\") : values.map(({\n value,\n count\n }) => /*#__PURE__*/React.createElement(Combobox.Item, {\n key: value,\n value: value\n }, /*#__PURE__*/React.createElement(\"span\", null, value), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.itemCount\n }, \"(\", count.toLocaleString(), \")\"))))))));\n}\nexport const MultiSelectInput = /*#__PURE__*/memo(MultiSelectInputInner);","/*\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.nullWrapper {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-null-wrapper-gap);\n}\n\n.nullValueRow {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--osdk-filter-null-row-padding);\n border-top: var(--osdk-filter-null-row-border-top);\n}\n\n.nullLabel {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-null-label-gap);\n cursor: pointer;\n}\n\n.nullLabelText {\n font-family: var(--osdk-filter-null-label-font-family);\n font-size: var(--osdk-filter-null-label-font-size);\n line-height: var(--osdk-filter-null-label-line-height);\n color: var(--osdk-filter-null-label-color);\n}\n\n.count {\n font-family: var(--osdk-filter-null-count-font-family);\n font-size: var(--osdk-filter-null-count-font-size);\n font-variant-numeric: tabular-nums;\n color: var(--osdk-filter-null-count-color);\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classnames from \"classnames\";\nimport React, { memo, useCallback } from \"react\";\nimport { Checkbox } from \"../../../base-components/checkbox/Checkbox.js\";\nimport styles from \"./NullValueWrapper.module.css\";\nimport sharedStyles from \"./shared.module.css\";\nfunction NullValueWrapperInner({\n nullCount,\n isLoading,\n error,\n includeNull = false,\n onIncludeNullChange,\n showNullCount = true,\n children,\n className,\n style\n}) {\n const handleToggle = useCallback(() => {\n onIncludeNullChange(!includeNull);\n }, [includeNull, onIncludeNullChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.nullWrapper, className),\n style: style\n }, children, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.nullValueRow,\n \"data-checked\": includeNull,\n \"data-loading\": isLoading\n }, /*#__PURE__*/React.createElement(\"label\", {\n className: styles.nullLabel\n }, /*#__PURE__*/React.createElement(Checkbox, {\n checked: includeNull,\n onCheckedChange: handleToggle\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.nullLabelText\n }, \"No value\")), showNullCount && !error && nullCount > 0 && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.count\n }, nullCount.toLocaleString())), error && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.errorMessage\n }, \"Failed to load null count\"));\n}\nexport const NullValueWrapper = /*#__PURE__*/memo(NullValueWrapperInner);","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo } from \"react\";\nimport { RangeInput } from \"./RangeInput.js\";\nfunction formatNumber(value) {\n return value !== undefined ? String(value) : \"\";\n}\nfunction parseNumber(value) {\n if (value === \"\") return undefined;\n const parsed = parseFloat(value);\n return isNaN(parsed) ? undefined : parsed;\n}\nconst numberConfig = {\n inputType: \"number\",\n formatValue: formatNumber,\n parseValue: parseNumber,\n toNumber: v => v,\n fromNumber: v => v,\n minLabel: \"Min\",\n maxLabel: \"Max\",\n formatTooltip: (min, max, count) => `${min.toFixed(1)} - ${max.toFixed(1)}: ${count.toLocaleString()}`,\n formatPlaceholder: value => value.toFixed(0),\n inputProps: {\n step: \"any\"\n }\n};\nfunction NumberRangeInputInner(props) {\n return /*#__PURE__*/React.createElement(RangeInput, _extends({}, props, {\n config: numberConfig\n }));\n}\nexport const NumberRangeInput = /*#__PURE__*/memo(NumberRangeInputInner);","/*\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.singleDate {\n display: flex;\n flex-direction: column;\n}\n\n.dateContainer {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-select-container-gap);\n}\n\n.input {\n flex: 1;\n font-family: var(--osdk-filter-input-font-family);\n font-size: var(--osdk-filter-timeline-input-font-size);\n padding: var(--osdk-filter-input-padding);\n border: var(--osdk-filter-input-border);\n border-radius: var(--osdk-filter-input-border-radius);\n background: var(--osdk-filter-input-bg);\n color: var(--osdk-filter-input-color);\n\n &:focus {\n border-color: var(--osdk-filter-input-focus-border);\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n}\n\n.clearButton {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-input-clear-padding);\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--osdk-filter-input-icon-color);\n border-radius: var(--osdk-filter-input-clear-border-radius);\n transition: background-color var(--osdk-filter-input-transition);\n\n &:hover {\n background: var(--osdk-filter-input-clear-bg-hover);\n }\n\n &:active {\n background: var(--osdk-filter-input-clear-bg-active);\n }\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Input } from \"@base-ui/react/input\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback } from \"react\";\nimport { formatDateForInput, parseDateFromInput } from \"./dateUtils.js\";\nimport styles from \"./SingleDateInput.module.css\";\nfunction SingleDateInputInner({\n selectedDate,\n onChange,\n className,\n style,\n minDate,\n maxDate,\n placeholder = \"Select a date...\",\n showClearButton = true\n}) {\n const handleChange = useCallback(e => {\n const date = parseDateFromInput(e.target.value);\n onChange(date);\n }, [onChange]);\n const handleClear = useCallback(() => {\n onChange(undefined);\n }, [onChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.singleDate, className),\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.dateContainer\n }, /*#__PURE__*/React.createElement(Input, {\n type: \"date\",\n className: styles.input,\n value: formatDateForInput(selectedDate),\n onChange: handleChange,\n min: minDate ? formatDateForInput(minDate) : undefined,\n max: maxDate ? formatDateForInput(maxDate) : undefined,\n placeholder: placeholder,\n \"aria-label\": \"Select date\"\n }), showClearButton && selectedDate !== undefined && /*#__PURE__*/React.createElement(Button, {\n className: styles.clearButton,\n onClick: handleClear,\n \"aria-label\": \"Clear date\"\n }, \"\\xD7\")));\n}\nexport const SingleDateInput = /*#__PURE__*/memo(SingleDateInputInner);","/*\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.osdkSelectTrigger {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--osdk-select-spacing, var(--osdk-surface-spacing));\n width: 100%;\n min-height: var(--osdk-select-min-height, 30px);\n padding: calc(var(--osdk-select-spacing, var(--osdk-surface-spacing)) * 1.5)\n calc(var(--osdk-select-spacing, var(--osdk-surface-spacing)) * 2.5);\n box-sizing: border-box;\n cursor: pointer;\n border-radius: var(\n --osdk-select-border-radius,\n var(--osdk-surface-border-radius)\n );\n border: var(--osdk-select-border-width, var(--osdk-surface-border-width))\n solid\n var(--osdk-select-border-color, var(--osdk-surface-border-color-default));\n background-color: var(\n --osdk-select-trigger-bg,\n var(--osdk-surface-background-color-default-rest)\n );\n color: var(\n --osdk-select-trigger-color,\n var(--osdk-typography-color-default-rest)\n );\n font-family: var(\n --osdk-select-font-family,\n var(--osdk-typography-family-default)\n );\n font-size: var(\n --osdk-select-font-size,\n var(--osdk-typography-size-body-medium)\n );\n line-height: var(\n --osdk-select-line-height,\n var(--osdk-typography-line-height-default)\n );\n transition:\n background-color\n var(\n --osdk-select-transition-duration,\n var(--osdk-emphasis-transition-duration)\n )\n var(--osdk-select-transition-ease, var(--osdk-emphasis-ease-default)),\n border-color\n var(\n --osdk-select-transition-duration,\n var(--osdk-emphasis-transition-duration)\n )\n var(--osdk-select-transition-ease, var(--osdk-emphasis-ease-default));\n\n &:hover {\n background-color: var(\n --osdk-select-trigger-bg-hover,\n var(--osdk-surface-background-color-default-hover)\n );\n }\n\n &:active {\n background-color: var(\n --osdk-select-trigger-bg-active,\n var(--osdk-surface-background-color-default-active)\n );\n }\n\n &:focus-visible {\n outline: var(--osdk-select-focus-width, var(--osdk-emphasis-focus-width))\n solid var(--osdk-select-focus-color, var(--osdk-emphasis-focus-color));\n outline-offset: var(\n --osdk-select-focus-offset,\n var(--osdk-emphasis-focus-offset)\n );\n }\n\n &[data-disabled] {\n cursor: not-allowed;\n opacity: var(--osdk-disabled-opacity, 0.5);\n }\n\n &[data-popup-open] {\n border-color: var(\n --osdk-select-border-color-active,\n var(--osdk-intent-primary-rest)\n );\n }\n}\n\n.osdkSelectValueContainer {\n flex: 1;\n display: grid;\n min-width: 0;\n\n & > * {\n grid-area: 1 / 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n.osdkSelectValue {\n text-align: left;\n}\n\n.osdkSelectPlaceholder {\n text-align: left;\n color: var(\n --osdk-select-placeholder-color,\n var(--osdk-typography-color-muted)\n );\n pointer-events: none;\n}\n\n.osdkSelectValue:not([data-placeholder]) ~ .osdkSelectPlaceholder {\n display: none;\n}\n\n.osdkSelectIcon {\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--osdk-select-icon-color, var(--osdk-iconography-color-muted));\n flex-shrink: 0;\n transition: transform\n var(\n --osdk-select-transition-duration,\n var(--osdk-emphasis-transition-duration)\n )\n var(--osdk-select-transition-ease, var(--osdk-emphasis-ease-default));\n\n [data-popup-open] > & {\n transform: rotate(180deg);\n }\n}\n\n.osdkSelectPositioner {\n z-index: var(--osdk-select-z-index, var(--osdk-surface-z-index-3));\n}\n\n.osdkSelectPopup {\n display: flex;\n flex-direction: column;\n min-width: var(--anchor-width);\n max-height: var(--available-height);\n overflow-y: auto;\n padding: calc(var(--osdk-select-spacing, var(--osdk-surface-spacing)) * 1.5);\n box-sizing: border-box;\n border-radius: var(\n --osdk-select-border-radius,\n var(--osdk-surface-border-radius)\n );\n border: var(--osdk-select-border-width, var(--osdk-surface-border-width))\n solid\n var(--osdk-select-border-color, var(--osdk-surface-border-color-default));\n background-color: var(\n --osdk-select-popup-bg,\n var(--osdk-surface-background-color-default-rest)\n );\n box-shadow: var(--osdk-select-popup-shadow, var(--osdk-surface-shadow-2));\n}\n\n.osdkSelectItem {\n display: flex;\n align-items: center;\n padding: calc(var(--osdk-select-spacing, var(--osdk-surface-spacing)) * 1.5)\n calc(var(--osdk-select-spacing, var(--osdk-surface-spacing)) * 2);\n border-radius: var(\n --osdk-select-border-radius,\n var(--osdk-surface-border-radius)\n );\n cursor: pointer;\n font-family: var(\n --osdk-select-font-family,\n var(--osdk-typography-family-default)\n );\n font-size: var(\n --osdk-select-font-size,\n var(--osdk-typography-size-body-medium)\n );\n line-height: var(\n --osdk-select-line-height,\n var(--osdk-typography-line-height-default)\n );\n color: var(\n --osdk-select-item-color,\n var(--osdk-typography-color-default-rest)\n );\n transition: background-color\n var(\n --osdk-select-transition-duration,\n var(--osdk-emphasis-transition-duration)\n )\n var(--osdk-select-transition-ease, var(--osdk-emphasis-ease-default));\n\n &[data-highlighted] {\n background-color: var(\n --osdk-select-item-bg-highlighted,\n var(--osdk-surface-background-color-default-hover)\n );\n outline: none;\n }\n\n &[data-selected] {\n background-color: var(\n --osdk-select-item-bg-selected,\n var(--osdk-surface-layer-primary)\n );\n color: var(\n --osdk-select-item-color-selected,\n var(--osdk-intent-primary-rest)\n );\n }\n\n &[data-disabled] {\n cursor: not-allowed;\n opacity: var(--osdk-disabled-opacity, 0.5);\n }\n}\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Select as BaseUISelect } from \"@base-ui/react/select\";\nimport { CaretDown } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./Select.module.css\";\nfunction SelectRoot({\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUISelect.Root, rest, children);\n}\nfunction SelectTrigger({\n className,\n placeholder,\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUISelect.Trigger, _extends({\n className: classnames(styles.osdkSelectTrigger, className)\n }, rest), children ?? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.osdkSelectValueContainer\n }, /*#__PURE__*/React.createElement(BaseUISelect.Value, {\n className: styles.osdkSelectValue\n }), placeholder != null && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.osdkSelectPlaceholder\n }, placeholder)), /*#__PURE__*/React.createElement(BaseUISelect.Icon, {\n className: styles.osdkSelectIcon\n }, /*#__PURE__*/React.createElement(CaretDown, {\n color: \"currentColor\"\n }))));\n}\nfunction SelectValue(props) {\n const {\n className,\n ...rest\n } = props;\n return /*#__PURE__*/React.createElement(BaseUISelect.Value, _extends({\n className: classnames(styles.osdkSelectValue, className)\n }, rest));\n}\nfunction SelectPositioner({\n className,\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUISelect.Positioner, _extends({\n className: classnames(styles.osdkSelectPositioner, className),\n sideOffset: 4\n }, rest), children);\n}\nfunction SelectPopup({\n className,\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUISelect.Popup, _extends({\n className: classnames(styles.osdkSelectPopup, className)\n }, rest), children);\n}\nfunction SelectItem({\n className,\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUISelect.Item, _extends({\n className: classnames(styles.osdkSelectItem, className)\n }, rest), /*#__PURE__*/React.createElement(BaseUISelect.ItemText, null, children));\n}\nexport const Select = {\n Root: SelectRoot,\n Trigger: SelectTrigger,\n Value: SelectValue,\n Portal: BaseUISelect.Portal,\n Positioner: SelectPositioner,\n Popup: SelectPopup,\n Item: SelectItem\n};","/*\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.singleSelect {\n display: flex;\n flex-direction: column;\n}\n\n.selectContainer {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-select-container-gap);\n position: relative;\n}\n\n.clearButton {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-select-clear-padding);\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--osdk-filter-select-clear-color);\n border-radius: var(--osdk-filter-select-clear-border-radius);\n transition: color var(--osdk-filter-select-clear-transition),\n background-color var(--osdk-filter-select-clear-transition);\n\n &:hover {\n color: var(--osdk-filter-select-clear-color-hover);\n background-color: var(--osdk-filter-select-clear-bg-hover);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Cross } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { Select } from \"../../../base-components/select/Select.js\";\nimport sharedStyles from \"./shared.module.css\";\nimport styles from \"./SingleSelectInput.module.css\";\nfunction SingleSelectInputInner({\n values,\n isLoading,\n error,\n selectedValue,\n onChange,\n className,\n style,\n placeholder = \"Select a value...\",\n showClearButton = true,\n showCounts = false,\n ariaLabel = \"Select value\"\n}) {\n const handleValueChange = useCallback(value => {\n onChange(value ?? undefined);\n }, [onChange]);\n const handleClear = useCallback(() => {\n onChange(undefined);\n }, [onChange]);\n const items = useMemo(() => {\n const result = {};\n for (const {\n value,\n count\n } of values) {\n result[value] = showCounts ? `${value} (${count.toLocaleString()})` : value;\n }\n return result;\n }, [values, showCounts]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.singleSelect, className),\n style: style,\n \"data-loading\": isLoading\n }, isLoading && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.loadingMessage\n }, \"Loading options...\"), error && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.errorMessage\n }, \"Error loading options: \", error.message), !isLoading && !error && values.length === 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.emptyMessage\n }, \"No options available\"), (values.length > 0 || isLoading) && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.selectContainer\n }, /*#__PURE__*/React.createElement(Select.Root, {\n value: selectedValue ?? null,\n onValueChange: handleValueChange,\n items: items\n }, /*#__PURE__*/React.createElement(Select.Trigger, {\n placeholder: placeholder,\n \"aria-label\": ariaLabel\n }), /*#__PURE__*/React.createElement(Select.Portal, null, /*#__PURE__*/React.createElement(Select.Positioner, null, /*#__PURE__*/React.createElement(Select.Popup, null, values.map(({\n value,\n count\n }) => /*#__PURE__*/React.createElement(Select.Item, {\n key: value,\n value: value\n }, showCounts ? `${value} (${count.toLocaleString()})` : value)))))), showClearButton && selectedValue !== undefined && /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n className: styles.clearButton,\n onClick: handleClear,\n \"aria-label\": \"Clear selection\"\n }, /*#__PURE__*/React.createElement(Cross, {\n color: \"currentColor\"\n }))));\n}\nexport const SingleSelectInput = /*#__PURE__*/memo(SingleSelectInputInner);","/*\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.textTags {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-texttags-gap);\n}\n\n.input {\n flex: 1;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo, useState } from \"react\";\nimport { Combobox } from \"../../../base-components/combobox/Combobox.js\";\nimport sharedStyles from \"./shared.module.css\";\nimport styles from \"./TextTagsInput.module.css\";\nconst TAG_SEPARATOR_PATTERN = /[,\\n]/;\nconst TagItem = /*#__PURE__*/memo(function TagItem({\n tag,\n onRemove\n}) {\n const handleRemove = useCallback(() => {\n onRemove(tag);\n }, [tag, onRemove]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: sharedStyles.tag\n }, tag, /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n className: sharedStyles.tagRemove,\n onClick: handleRemove,\n \"aria-label\": `Remove ${tag}`\n }, \"\\xD7\"));\n});\nfunction TextTagsInputInner({\n suggestions,\n isLoading,\n error,\n tags,\n onChange,\n className,\n style,\n placeholder = \"Add a tag...\",\n allowCustomTags = true,\n suggestionLimit = 10,\n ariaLabel = \"Add tag\"\n}) {\n const [inputValue, setInputValue] = useState(\"\");\n const filteredSuggestions = useMemo(() => {\n if (!suggestionLimit) return [];\n const lowerInput = inputValue.toLowerCase();\n return suggestions.filter(s => (!inputValue.trim() || s.value.toLowerCase().includes(lowerInput)) && !tags.includes(s.value)).slice(0, suggestionLimit);\n }, [suggestions, inputValue, tags, suggestionLimit]);\n const addTag = useCallback(tag => {\n const trimmedTag = tag.trim();\n if (trimmedTag && !tags.includes(trimmedTag)) {\n onChange([...tags, trimmedTag]);\n }\n setInputValue(\"\");\n }, [tags, onChange]);\n const removeTag = useCallback(tag => {\n onChange(tags.filter(t => t !== tag));\n }, [tags, onChange]);\n const handleValueChange = useCallback(newTags => {\n onChange(newTags ?? []);\n }, [onChange]);\n const handleInputValueChange = useCallback(value => {\n setInputValue(value);\n }, []);\n const handleKeyDown = useCallback(e => {\n if (e.key === \"Enter\" && inputValue.trim()) {\n if (filteredSuggestions.length > 0) {\n return;\n }\n e.preventDefault();\n if (allowCustomTags) {\n addTag(inputValue);\n }\n } else if (e.key === \"Backspace\" && !inputValue && tags.length > 0) {\n removeTag(tags[tags.length - 1]);\n }\n }, [inputValue, tags, addTag, removeTag, allowCustomTags, filteredSuggestions]);\n const handlePaste = useCallback(e => {\n const pastedText = e.clipboardData.getData(\"text\");\n if (TAG_SEPARATOR_PATTERN.test(pastedText)) {\n e.preventDefault();\n const newTags = pastedText.split(TAG_SEPARATOR_PATTERN).map(t => t.trim()).filter(t => t && !tags.includes(t));\n if (newTags.length > 0) {\n onChange([...tags, ...newTags]);\n }\n }\n }, [tags, onChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.textTags, className),\n style: style,\n \"data-loading\": isLoading\n }, error && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.errorMessage\n }, \"Error loading suggestions: \", error.message), /*#__PURE__*/React.createElement(Combobox.Root, {\n multiple: true,\n value: tags,\n onValueChange: handleValueChange,\n inputValue: inputValue,\n onInputValueChange: handleInputValueChange\n }, tags.length > 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.tagContainer\n }, tags.map(tag => /*#__PURE__*/React.createElement(TagItem, {\n key: tag,\n tag: tag,\n onRemove: removeTag\n }))), /*#__PURE__*/React.createElement(Combobox.SearchInput, {\n className: styles.input,\n placeholder: tags.length > 0 ? \"\" : placeholder,\n onKeyDown: handleKeyDown,\n onPaste: handlePaste,\n \"aria-label\": ariaLabel\n }), /*#__PURE__*/React.createElement(Combobox.Portal, null, /*#__PURE__*/React.createElement(Combobox.Positioner, null, /*#__PURE__*/React.createElement(Combobox.Popup, null, filteredSuggestions.length === 0 ? allowCustomTags && inputValue.trim() ? /*#__PURE__*/React.createElement(Combobox.Empty, null, \"Press Enter to add \\\"\", inputValue, \"\\\"\") : /*#__PURE__*/React.createElement(Combobox.Empty, null, suggestionLimit ? \"No suggestions\" : \"Type to add a tag\") : filteredSuggestions.map(({\n value,\n count\n }) => /*#__PURE__*/React.createElement(Combobox.Item, {\n key: value,\n value: value\n }, value, \" (\", count.toLocaleString(), \")\")))))), isLoading && !!suggestionLimit && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.loadingMessage\n }, \"Loading suggestions...\"));\n}\nexport const TextTagsInput = /*#__PURE__*/memo(TextTagsInputInner);","/*\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.timeline {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-range-gap);\n}\n\n.labels {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-timeline-labels-gap);\n font-family: var(--osdk-filter-timeline-labels-font-family);\n font-size: var(--osdk-filter-timeline-labels-font-size);\n color: var(--osdk-filter-timeline-labels-color);\n}\n\n.clearButton {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-timeline-button-padding);\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--osdk-filter-timeline-button-color);\n border-radius: var(--osdk-filter-timeline-button-border-radius);\n margin-left: auto;\n\n &:hover {\n background: var(--osdk-filter-timeline-button-bg-hover);\n color: var(--osdk-filter-timeline-button-color-hover);\n }\n}\n\n.brush {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-timeline-labels-gap);\n}\n\n.brush span {\n color: var(--osdk-filter-timeline-brush-color);\n}\n\n.input {\n flex: 1;\n font-family: var(--osdk-filter-input-font-family);\n font-size: var(--osdk-filter-timeline-input-font-size);\n padding: var(--osdk-filter-input-padding);\n border: var(--osdk-filter-input-border);\n border-radius: var(--osdk-filter-input-border-radius);\n background: var(--osdk-filter-input-bg);\n color: var(--osdk-filter-input-color);\n\n &:focus {\n border-color: var(--osdk-filter-input-focus-border);\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Input } from \"@base-ui/react/input\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { formatDateForDisplay, formatDateForInput, parseDateFromInput } from \"./dateUtils.js\";\nimport styles from \"./TimelineInput.module.css\";\nfunction TimelineInputInner({\n startDate,\n endDate,\n onChange,\n className,\n minDate,\n maxDate\n}) {\n const handleStartChange = useCallback(e => {\n const date = parseDateFromInput(e.target.value);\n onChange(date, endDate);\n }, [onChange, endDate]);\n const handleEndChange = useCallback(e => {\n const date = parseDateFromInput(e.target.value);\n onChange(startDate, date);\n }, [onChange, startDate]);\n const handleClear = useCallback(() => {\n onChange(undefined, undefined);\n }, [onChange]);\n const startInputMax = useMemo(() => endDate ?? maxDate, [endDate, maxDate]);\n const endInputMin = useMemo(() => startDate ?? minDate, [startDate, minDate]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.timeline, className)\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.labels\n }, /*#__PURE__*/React.createElement(\"span\", null, formatDateForDisplay(startDate, \"—\")), /*#__PURE__*/React.createElement(\"span\", null, \"to\"), /*#__PURE__*/React.createElement(\"span\", null, formatDateForDisplay(endDate, \"—\")), (startDate || endDate) && /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n onClick: handleClear,\n \"aria-label\": \"Clear range\",\n className: styles.clearButton\n }, \"\\xD7\")), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.brush\n }, /*#__PURE__*/React.createElement(Input, {\n type: \"date\",\n className: styles.input,\n value: formatDateForInput(startDate),\n onChange: handleStartChange,\n min: minDate ? formatDateForInput(minDate) : undefined,\n max: startInputMax ? formatDateForInput(startInputMax) : undefined,\n \"aria-label\": \"Start date\"\n }), /*#__PURE__*/React.createElement(\"span\", null, \"\\u2014\"), /*#__PURE__*/React.createElement(Input, {\n type: \"date\",\n className: styles.input,\n value: formatDateForInput(endDate),\n onChange: handleEndChange,\n min: endInputMin ? formatDateForInput(endInputMin) : undefined,\n max: maxDate ? formatDateForInput(maxDate) : undefined,\n \"aria-label\": \"End date\"\n })));\n}\nexport const TimelineInput = /*#__PURE__*/memo(TimelineInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useOsdkAggregation } from \"@osdk/react/experimental\";\nimport { useMemo } from \"react\";\nexport function usePropertyAggregation(objectType, propertyKey, options) {\n // AggregateOpts requires specific property keys from Q, but we're dynamically\n // using propertyKey. The cast is unavoidable for this dynamic filter pattern.\n const aggregateOptions = useMemo(() => ({\n $select: {\n $count: \"unordered\"\n },\n $groupBy: {\n [propertyKey]: {\n $exact: {\n $includeNullValue: true\n }\n }\n }\n }), [propertyKey]);\n const {\n data: countData,\n isLoading,\n error\n } = useOsdkAggregation(objectType, {\n aggregate: aggregateOptions,\n where: options?.where\n });\n const result = useMemo(() => {\n if (!countData) {\n return {\n data: [],\n maxCount: 0\n };\n }\n const values = [];\n let maxCount = 0;\n\n // The aggregation result type varies by query structure. Since we're building\n // the query dynamically based on propertyKey, we cast to a known shape that\n // matches the $groupBy + $count aggregation pattern.\n const dataArray = countData;\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey];\n const count = item.$count ?? 0;\n if (rawValue == null) {\n values.push({\n value: \"\",\n count,\n isNull: true\n });\n } else {\n values.push({\n value: String(rawValue),\n count\n });\n }\n maxCount = Math.max(maxCount, count);\n }\n values.sort((a, b) => b.count - a.count);\n if (options?.limit && values.length > options.limit) {\n return {\n data: values.slice(0, options.limit),\n maxCount\n };\n }\n return {\n data: values,\n maxCount\n };\n }, [countData, propertyKey, options?.limit]);\n return {\n data: result.data,\n maxCount: result.maxCount,\n isLoading,\n error: error ?? null\n };\n}","/*\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\nexport function createGroupByAggregateOptions(propertyKey) {\n return {\n $select: {\n $count: \"unordered\"\n },\n $groupBy: {\n [propertyKey]: \"exact\"\n }\n };\n}\nexport function createNullCountAggregateOptions() {\n return {\n $select: {\n $count: \"unordered\"\n }\n };\n}\n\n/** Shape returned by $groupBy + $count aggregations when iterated. */\n\nexport function createNullWhereClause(propertyKey) {\n return {\n [propertyKey]: {\n $isNull: true\n }\n };\n}","/*\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/**\n * Coerces a filter value to a string for display.\n * Returns undefined if the value is undefined.\n */\nexport function coerceToString(value) {\n if (value === undefined) return undefined;\n return String(value);\n}\n\n/**\n * Coerces an array of filter values to string[] for display.\n */\nexport function coerceToStringArray(values) {\n if (values === undefined) return [];\n return values.map(v => String(v));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useOsdkAggregation } from \"@osdk/react/experimental\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport { CheckboxListInput } from \"../base/inputs/CheckboxListInput.js\";\nimport { ContainsTextInput } from \"../base/inputs/ContainsTextInput.js\";\nimport { DateRangeInput } from \"../base/inputs/DateRangeInput.js\";\nimport styles from \"../base/inputs/LinkedPropertyInput.module.css\";\nimport { ListogramInput } from \"../base/inputs/ListogramInput.js\";\nimport { MultiDateInput } from \"../base/inputs/MultiDateInput.js\";\nimport { MultiSelectInput } from \"../base/inputs/MultiSelectInput.js\";\nimport { NullValueWrapper } from \"../base/inputs/NullValueWrapper.js\";\nimport { NumberRangeInput } from \"../base/inputs/NumberRangeInput.js\";\nimport { SingleDateInput } from \"../base/inputs/SingleDateInput.js\";\nimport { SingleSelectInput } from \"../base/inputs/SingleSelectInput.js\";\nimport { TextTagsInput } from \"../base/inputs/TextTagsInput.js\";\nimport { TimelineInput } from \"../base/inputs/TimelineInput.js\";\nimport { ToggleInput } from \"../base/inputs/ToggleInput.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { createGroupByAggregateOptions, createNullCountAggregateOptions, createNullWhereClause } from \"../utils/aggregationHelpers.js\";\nimport { coerceToString, coerceToStringArray } from \"../utils/coerceFilterValue.js\";\nfunction LinkedPropertyInputInner({\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n className,\n style\n}) {\n const linkedObjectSet = useMemo(() => objectSet.pivotTo(definition.linkName), [objectSet, definition.linkName]);\n const linkedObjectType = linkedObjectSet.$objectSetInternals.def;\n const linkedPropertyKey = definition.linkedPropertyKey;\n const innerState = filterState?.type === \"linkedProperty\" ? filterState.linkedFilterState : undefined;\n const isExcluding = innerState?.isExcluding ?? false;\n const includeNull = innerState?.includeNull;\n const wrappedOnChange = useCallback(innerFilterState => {\n onFilterStateChanged({\n type: \"linkedProperty\",\n linkedFilterState: innerFilterState\n });\n }, [onFilterStateChanged]);\n const onSelectChange = useCallback(selectedValues => {\n wrappedOnChange({\n type: \"SELECT\",\n selectedValues,\n isExcluding\n });\n }, [wrappedOnChange, isExcluding]);\n const onSingleSelectChange = useCallback(selectedValue => {\n wrappedOnChange({\n type: \"SELECT\",\n selectedValues: selectedValue !== undefined ? [selectedValue] : [],\n isExcluding\n });\n }, [wrappedOnChange, isExcluding]);\n const onContainsTextChange = useCallback(value => {\n wrappedOnChange({\n type: \"CONTAINS_TEXT\",\n value\n });\n }, [wrappedOnChange]);\n const onToggleChange = useCallback(enabled => {\n wrappedOnChange({\n type: \"TOGGLE\",\n enabled\n });\n }, [wrappedOnChange]);\n const onNumberRangeChange = useCallback((minValue, maxValue) => {\n wrappedOnChange({\n type: \"NUMBER_RANGE\",\n minValue,\n maxValue,\n includeNull\n });\n }, [wrappedOnChange, includeNull]);\n const onDateRangeChange = useCallback((minValue, maxValue) => {\n wrappedOnChange({\n type: \"DATE_RANGE\",\n minValue,\n maxValue,\n includeNull\n });\n }, [wrappedOnChange, includeNull]);\n const onExactMatchChange = useCallback(values => {\n wrappedOnChange({\n type: \"EXACT_MATCH\",\n values,\n isExcluding\n });\n }, [wrappedOnChange, isExcluding]);\n const onDateSelectChange = useCallback(date => {\n wrappedOnChange({\n type: \"SELECT\",\n selectedValues: date !== undefined ? [date] : [],\n isExcluding\n });\n }, [wrappedOnChange, isExcluding]);\n const onMultiDateChange = useCallback(dates => {\n wrappedOnChange({\n type: \"SELECT\",\n selectedValues: dates\n });\n }, [wrappedOnChange]);\n const onTimelineChange = useCallback((start, end) => {\n wrappedOnChange({\n type: \"TIMELINE\",\n startDate: start,\n endDate: end,\n isExcluding\n });\n }, [wrappedOnChange, isExcluding]);\n const onNullChange = useCallback(newIncludeNull => {\n if (innerState?.type === \"NUMBER_RANGE\") {\n wrappedOnChange({\n ...innerState,\n includeNull: newIncludeNull\n });\n } else if (innerState?.type === \"DATE_RANGE\") {\n wrappedOnChange({\n ...innerState,\n includeNull: newIncludeNull\n });\n } else {\n wrappedOnChange({\n type: \"NUMBER_RANGE\",\n minValue: undefined,\n maxValue: undefined,\n includeNull: newIncludeNull\n });\n }\n }, [wrappedOnChange, innerState]);\n const content = (() => {\n switch (definition.linkedFilterComponent) {\n case \"CHECKBOX_LIST\":\n {\n const selectedValues = innerState?.type === \"SELECT\" ? coerceToStringArray(innerState.selectedValues) : [];\n return /*#__PURE__*/React.createElement(LinkedCheckboxListInput, {\n objectType: linkedObjectType,\n propertyKey: linkedPropertyKey,\n selectedValues: selectedValues,\n onChange: onSelectChange\n });\n }\n case \"MULTI_SELECT\":\n {\n const values = innerState?.type === \"SELECT\" ? coerceToStringArray(innerState.selectedValues) : [];\n return /*#__PURE__*/React.createElement(LinkedMultiSelectInput, {\n objectType: linkedObjectType,\n propertyKey: linkedPropertyKey,\n selectedValues: values,\n onChange: onSelectChange\n });\n }\n case \"SINGLE_SELECT\":\n {\n const value = innerState?.type === \"SELECT\" ? coerceToString(innerState.selectedValues[0]) : undefined;\n return /*#__PURE__*/React.createElement(LinkedSingleSelectInput, {\n objectType: linkedObjectType,\n propertyKey: linkedPropertyKey,\n selectedValue: value,\n onChange: onSingleSelectChange\n });\n }\n case \"CONTAINS_TEXT\":\n {\n const value = innerState?.type === \"CONTAINS_TEXT\" ? innerState.value : undefined;\n return /*#__PURE__*/React.createElement(ContainsTextInput, {\n value: value,\n onChange: onContainsTextChange,\n placeholder: `Search ${String(definition.linkedPropertyKey)}...`\n });\n }\n case \"TOGGLE\":\n {\n const enabled = innerState?.type === \"TOGGLE\" ? innerState.enabled : false;\n return /*#__PURE__*/React.createElement(ToggleInput, {\n enabled: enabled,\n onChange: onToggleChange\n });\n }\n case \"NUMBER_RANGE\":\n {\n const nr = innerState?.type === \"NUMBER_RANGE\" ? innerState : undefined;\n return /*#__PURE__*/React.createElement(LinkedNumberRangeInput, {\n objectType: linkedObjectType,\n propertyKey: linkedPropertyKey,\n minValue: nr?.minValue,\n maxValue: nr?.maxValue,\n includeNull: nr?.includeNull,\n onChange: onNumberRangeChange,\n onNullChange: onNullChange\n });\n }\n case \"DATE_RANGE\":\n {\n const dr = innerState?.type === \"DATE_RANGE\" ? innerState : undefined;\n return /*#__PURE__*/React.createElement(LinkedDateRangeInput, {\n objectType: linkedObjectType,\n propertyKey: linkedPropertyKey,\n minValue: dr?.minValue,\n maxValue: dr?.maxValue,\n includeNull: dr?.includeNull,\n onChange: onDateRangeChange,\n onNullChange: onNullChange\n });\n }\n case \"LISTOGRAM\":\n {\n const exactState = innerState?.type === \"EXACT_MATCH\" ? innerState : undefined;\n const selectedValues = exactState ? coerceToStringArray(exactState.values) : [];\n return /*#__PURE__*/React.createElement(LinkedListogramInput, {\n objectType: linkedObjectType,\n propertyKey: linkedPropertyKey,\n selectedValues: selectedValues,\n onChange: onExactMatchChange\n });\n }\n case \"TEXT_TAGS\":\n {\n const exactState = innerState?.type === \"EXACT_MATCH\" ? innerState : undefined;\n const tags = exactState ? coerceToStringArray(exactState.values) : [];\n return /*#__PURE__*/React.createElement(LinkedTextTagsInput, {\n objectType: linkedObjectType,\n propertyKey: linkedPropertyKey,\n tags: tags,\n onChange: onExactMatchChange\n });\n }\n case \"SINGLE_DATE\":\n {\n const selectedDate = innerState?.type === \"SELECT\" ? innerState.selectedValues[0] instanceof Date ? innerState.selectedValues[0] : undefined : undefined;\n return /*#__PURE__*/React.createElement(SingleDateInput, {\n selectedDate: selectedDate,\n onChange: onDateSelectChange,\n showClearButton: true\n });\n }\n case \"MULTI_DATE\":\n {\n const selectedDates = innerState?.type === \"SELECT\" ? innerState.selectedValues.filter(v => v instanceof Date) : [];\n return /*#__PURE__*/React.createElement(MultiDateInput, {\n selectedDates: selectedDates,\n onChange: onMultiDateChange,\n showClearAll: true\n });\n }\n case \"TIMELINE\":\n {\n const tl = innerState?.type === \"TIMELINE\" ? innerState : undefined;\n return /*#__PURE__*/React.createElement(TimelineInput, {\n startDate: tl?.startDate,\n endDate: tl?.endDate,\n onChange: onTimelineChange\n });\n }\n default:\n return assertUnreachable(definition.linkedFilterComponent);\n }\n })();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.linkedProperty, className),\n style: style\n }, content);\n}\nexport const LinkedPropertyInput = /*#__PURE__*/memo(LinkedPropertyInputInner);\nfunction LinkedCheckboxListInput({\n objectType,\n propertyKey,\n selectedValues,\n onChange\n}) {\n const {\n data,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey);\n return /*#__PURE__*/React.createElement(CheckboxListInput, {\n values: data,\n isLoading: isLoading,\n error: error,\n selectedValues: selectedValues,\n onChange: onChange\n });\n}\nfunction LinkedMultiSelectInput({\n objectType,\n propertyKey,\n selectedValues,\n onChange\n}) {\n const {\n data,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey);\n return /*#__PURE__*/React.createElement(MultiSelectInput, {\n values: data,\n isLoading: isLoading,\n error: error,\n selectedValues: selectedValues,\n onChange: onChange\n });\n}\nfunction LinkedSingleSelectInput({\n objectType,\n propertyKey,\n selectedValue,\n onChange\n}) {\n const {\n data,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey);\n return /*#__PURE__*/React.createElement(SingleSelectInput, {\n values: data,\n isLoading: isLoading,\n error: error,\n selectedValue: selectedValue,\n onChange: onChange,\n ariaLabel: `Select ${propertyKey}`\n });\n}\nfunction LinkedListogramInput({\n objectType,\n propertyKey,\n selectedValues,\n onChange\n}) {\n const {\n data,\n maxCount,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey);\n return /*#__PURE__*/React.createElement(ListogramInput, {\n values: data,\n maxCount: maxCount,\n isLoading: isLoading,\n error: error,\n selectedValues: selectedValues,\n onChange: onChange\n });\n}\nfunction LinkedTextTagsInput({\n objectType,\n propertyKey,\n tags,\n onChange\n}) {\n const aggregationOptions = useMemo(() => ({\n limit: 50\n }), []);\n const {\n data,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey, aggregationOptions);\n return /*#__PURE__*/React.createElement(TextTagsInput, {\n suggestions: data,\n isLoading: isLoading,\n error: error,\n tags: tags,\n onChange: onChange,\n suggestionLimit: 10\n });\n}\nfunction useLinkedRangeData(objectType, propertyKey) {\n const aggregateOptions = useMemo(() => createGroupByAggregateOptions(propertyKey), [propertyKey]);\n const histogramArgs = useMemo(() => ({\n aggregate: aggregateOptions\n }), [aggregateOptions]);\n const {\n data: aggregateData,\n isLoading: histLoading\n } = useOsdkAggregation(objectType, histogramArgs);\n const nullCountAggregateOptions = useMemo(() => createNullCountAggregateOptions(), []);\n const nullWhereClause = useMemo(() => createNullWhereClause(propertyKey), [propertyKey]);\n const nullCountArgs = useMemo(() => ({\n where: nullWhereClause,\n aggregate: nullCountAggregateOptions\n }), [nullWhereClause, nullCountAggregateOptions]);\n const {\n data: nullCountData,\n isLoading: nullLoading\n } = useOsdkAggregation(objectType, nullCountArgs);\n const nullCount = useMemo(() => {\n if (!nullCountData) return 0;\n const result = nullCountData;\n if (\"$count\" in result && typeof result.$count === \"number\") {\n return result.$count;\n }\n return 0;\n }, [nullCountData]);\n return {\n aggregateData,\n histLoading,\n nullCount,\n nullLoading\n };\n}\nfunction LinkedNumberRangeInput({\n objectType,\n propertyKey,\n minValue,\n maxValue,\n includeNull,\n onChange,\n onNullChange\n}) {\n const {\n aggregateData,\n histLoading,\n nullCount,\n nullLoading\n } = useLinkedRangeData(objectType, propertyKey);\n const valueCountPairs = useMemo(() => {\n if (!aggregateData) return [];\n const dataArray = aggregateData;\n const pairs = [];\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey];\n if (rawValue != null) {\n const parsed = parseFloat(String(rawValue));\n if (!isNaN(parsed)) {\n pairs.push({\n value: parsed,\n count: item.$count ?? 0\n });\n }\n }\n }\n return pairs;\n }, [aggregateData, propertyKey]);\n return /*#__PURE__*/React.createElement(NullValueWrapper, {\n nullCount: nullCount,\n isLoading: nullLoading,\n includeNull: includeNull,\n onIncludeNullChange: onNullChange\n }, /*#__PURE__*/React.createElement(NumberRangeInput, {\n valueCountPairs: valueCountPairs,\n isLoading: histLoading,\n minValue: minValue,\n maxValue: maxValue,\n onChange: onChange\n }));\n}\nfunction LinkedDateRangeInput({\n objectType,\n propertyKey,\n minValue,\n maxValue,\n includeNull,\n onChange,\n onNullChange\n}) {\n const {\n aggregateData,\n histLoading,\n nullCount,\n nullLoading\n } = useLinkedRangeData(objectType, propertyKey);\n const valueCountPairs = useMemo(() => {\n if (!aggregateData) return [];\n const dataArray = aggregateData;\n const pairs = [];\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey];\n if (rawValue != null) {\n const date = new Date(String(rawValue));\n if (!isNaN(date.getTime())) {\n pairs.push({\n value: date,\n count: item.$count ?? 0\n });\n }\n }\n }\n return pairs;\n }, [aggregateData, propertyKey]);\n return /*#__PURE__*/React.createElement(NullValueWrapper, {\n nullCount: nullCount,\n isLoading: nullLoading,\n includeNull: includeNull,\n onIncludeNullChange: onNullChange\n }, /*#__PURE__*/React.createElement(DateRangeInput, {\n valueCountPairs: valueCountPairs,\n isLoading: histLoading,\n minValue: minValue,\n maxValue: maxValue,\n onChange: onChange\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { CheckboxListInput } from \"../base/inputs/CheckboxListInput.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToStringArray } from \"../utils/coerceFilterValue.js\";\nfunction CheckboxListFilterInputInner({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n colorMap\n}) {\n const selectedValues = useMemo(() => filterState?.type === \"SELECT\" ? coerceToStringArray(filterState.selectedValues) : [], [filterState]);\n const isExcluding = filterState?.isExcluding ?? false;\n const handleChange = useCallback(newSelectedValues => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: newSelectedValues,\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n const aggregationOptions = useMemo(() => ({\n where: whereClause\n }), [whereClause]);\n const {\n data,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey, aggregationOptions);\n return /*#__PURE__*/React.createElement(CheckboxListInput, {\n values: data,\n isLoading: isLoading,\n error: error,\n selectedValues: selectedValues,\n onChange: handleChange,\n colorMap: colorMap\n });\n}\nexport const CheckboxListFilterInput = /*#__PURE__*/memo(CheckboxListFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { ContainsTextInput } from \"../base/inputs/ContainsTextInput.js\";\nfunction ContainsTextFilterInputInner({\n propertyKey,\n filterState,\n onFilterStateChanged\n}) {\n const value = useMemo(() => filterState?.type === \"CONTAINS_TEXT\" ? filterState.value : undefined, [filterState]);\n const handleChange = useCallback(value => {\n onFilterStateChanged({\n type: \"CONTAINS_TEXT\",\n value\n });\n }, [onFilterStateChanged]);\n return /*#__PURE__*/React.createElement(ContainsTextInput, {\n value: value,\n onChange: handleChange,\n placeholder: `Search ${propertyKey}...`\n });\n}\nexport const ContainsTextFilterInput = /*#__PURE__*/memo(ContainsTextFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useOsdkAggregation } from \"@osdk/react/experimental\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { DateRangeInput } from \"../base/inputs/DateRangeInput.js\";\nimport { NullValueWrapper } from \"../base/inputs/NullValueWrapper.js\";\nimport { createGroupByAggregateOptions, createNullCountAggregateOptions, createNullWhereClause } from \"../utils/aggregationHelpers.js\";\nfunction DateRangeFilterInputInner({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged\n}) {\n const dateRangeState = filterState?.type === \"DATE_RANGE\" ? filterState : undefined;\n const includeNull = filterState?.includeNull;\n const handleNullChange = useCallback(includeNull => {\n onFilterStateChanged({\n type: \"DATE_RANGE\",\n minValue: dateRangeState?.minValue,\n maxValue: dateRangeState?.maxValue,\n includeNull\n });\n }, [onFilterStateChanged, dateRangeState?.minValue, dateRangeState?.maxValue]);\n const handleRangeChange = useCallback((minValue, maxValue) => {\n onFilterStateChanged({\n type: \"DATE_RANGE\",\n minValue,\n maxValue,\n includeNull\n });\n }, [onFilterStateChanged, includeNull]);\n const aggregateOptions = useMemo(() => createGroupByAggregateOptions(propertyKey), [propertyKey]);\n const histogramArgs = useMemo(() => ({\n aggregate: aggregateOptions\n }), [aggregateOptions]);\n const {\n data: aggregateData,\n isLoading: histLoading\n } = useOsdkAggregation(objectType, histogramArgs);\n const valueCountPairs = useMemo(() => {\n if (!aggregateData) return [];\n const dataArray = aggregateData;\n const pairs = [];\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey];\n if (rawValue != null) {\n const date = new Date(String(rawValue));\n if (!isNaN(date.getTime())) {\n pairs.push({\n value: date,\n count: item.$count ?? 0\n });\n }\n }\n }\n return pairs;\n }, [aggregateData, propertyKey]);\n const nullCountAggregateOptions = useMemo(() => createNullCountAggregateOptions(), []);\n const nullWhereClause = useMemo(() => createNullWhereClause(propertyKey), [propertyKey]);\n const nullCountArgs = useMemo(() => ({\n where: nullWhereClause,\n aggregate: nullCountAggregateOptions\n }), [nullWhereClause, nullCountAggregateOptions]);\n const {\n data: nullCountData,\n isLoading: nullLoading,\n error: nullError\n } = useOsdkAggregation(objectType, nullCountArgs);\n const nullCount = useMemo(() => {\n if (!nullCountData) return 0;\n const result = nullCountData;\n if (\"$count\" in result && typeof result.$count === \"number\") {\n return result.$count;\n }\n return 0;\n }, [nullCountData]);\n return /*#__PURE__*/React.createElement(NullValueWrapper, {\n nullCount: nullCount,\n isLoading: nullLoading,\n error: nullError,\n includeNull: includeNull,\n onIncludeNullChange: handleNullChange\n }, /*#__PURE__*/React.createElement(DateRangeInput, {\n valueCountPairs: valueCountPairs,\n isLoading: histLoading,\n minValue: dateRangeState?.minValue,\n maxValue: dateRangeState?.maxValue,\n onChange: handleRangeChange\n }));\n}\nexport const DateRangeFilterInput = /*#__PURE__*/memo(DateRangeFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { ListogramInput } from \"../base/inputs/ListogramInput.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToStringArray } from \"../utils/coerceFilterValue.js\";\nfunction ListogramFilterInputInner({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n colorMap,\n displayMode,\n maxVisibleItems\n}) {\n const selectedValues = useMemo(() => filterState?.type === \"EXACT_MATCH\" ? coerceToStringArray(filterState.values) : [], [filterState]);\n const isExcluding = filterState?.isExcluding ?? false;\n const handleChange = useCallback(values => {\n onFilterStateChanged({\n type: \"EXACT_MATCH\",\n values,\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n const aggregationOptions = useMemo(() => ({\n where: whereClause\n }), [whereClause]);\n const {\n data,\n maxCount,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey, aggregationOptions);\n return /*#__PURE__*/React.createElement(ListogramInput, {\n values: data,\n maxCount: maxCount,\n isLoading: isLoading,\n error: error,\n selectedValues: selectedValues,\n onChange: handleChange,\n colorMap: colorMap,\n displayMode: displayMode,\n maxVisibleItems: maxVisibleItems\n });\n}\nexport const ListogramFilterInput = /*#__PURE__*/memo(ListogramFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { MultiDateInput } from \"../base/inputs/MultiDateInput.js\";\nfunction MultiDateFilterInputInner({\n filterState,\n onFilterStateChanged\n}) {\n const selectedDates = useMemo(() => filterState?.type === \"SELECT\" ? filterState.selectedValues.filter(v => v instanceof Date) : [], [filterState]);\n const isExcluding = filterState?.isExcluding ?? false;\n const handleChange = useCallback(selectedDates => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: selectedDates,\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n return /*#__PURE__*/React.createElement(MultiDateInput, {\n selectedDates: selectedDates,\n onChange: handleChange\n });\n}\nexport const MultiDateFilterInput = /*#__PURE__*/memo(MultiDateFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { MultiSelectInput } from \"../base/inputs/MultiSelectInput.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToStringArray } from \"../utils/coerceFilterValue.js\";\nfunction MultiSelectFilterInputInner({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause\n}) {\n const selectedValues = useMemo(() => filterState?.type === \"SELECT\" ? coerceToStringArray(filterState.selectedValues) : [], [filterState]);\n const isExcluding = filterState?.isExcluding ?? false;\n const handleChange = useCallback(selectedValues => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues,\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n const aggregationOptions = useMemo(() => ({\n where: whereClause\n }), [whereClause]);\n const {\n data,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey, aggregationOptions);\n return /*#__PURE__*/React.createElement(MultiSelectInput, {\n values: data,\n isLoading: isLoading,\n error: error,\n selectedValues: selectedValues,\n onChange: handleChange,\n ariaLabel: `Search ${propertyKey} values`\n });\n}\nexport const MultiSelectFilterInput = /*#__PURE__*/memo(MultiSelectFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useOsdkAggregation } from \"@osdk/react/experimental\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { NullValueWrapper } from \"../base/inputs/NullValueWrapper.js\";\nimport { NumberRangeInput } from \"../base/inputs/NumberRangeInput.js\";\nimport { createGroupByAggregateOptions, createNullCountAggregateOptions, createNullWhereClause } from \"../utils/aggregationHelpers.js\";\nfunction NumberRangeFilterInputInner({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged\n}) {\n const numberRangeState = filterState?.type === \"NUMBER_RANGE\" ? filterState : undefined;\n const includeNull = filterState?.includeNull;\n const handleNullChange = useCallback(includeNull => {\n onFilterStateChanged({\n type: \"NUMBER_RANGE\",\n minValue: numberRangeState?.minValue,\n maxValue: numberRangeState?.maxValue,\n includeNull\n });\n }, [onFilterStateChanged, numberRangeState?.minValue, numberRangeState?.maxValue]);\n const handleRangeChange = useCallback((minValue, maxValue) => {\n onFilterStateChanged({\n type: \"NUMBER_RANGE\",\n minValue,\n maxValue,\n includeNull\n });\n }, [onFilterStateChanged, includeNull]);\n const aggregateOptions = useMemo(() => createGroupByAggregateOptions(propertyKey), [propertyKey]);\n const histogramArgs = useMemo(() => ({\n aggregate: aggregateOptions\n }), [aggregateOptions]);\n const {\n data: aggregateData,\n isLoading: histLoading\n } = useOsdkAggregation(objectType, histogramArgs);\n const valueCountPairs = useMemo(() => {\n if (!aggregateData) return [];\n const dataArray = aggregateData;\n const pairs = [];\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey];\n if (rawValue != null) {\n const parsed = parseFloat(String(rawValue));\n if (!isNaN(parsed)) {\n pairs.push({\n value: parsed,\n count: item.$count ?? 0\n });\n }\n }\n }\n return pairs;\n }, [aggregateData, propertyKey]);\n const nullCountAggregateOptions = useMemo(() => createNullCountAggregateOptions(), []);\n const nullWhereClause = useMemo(() => createNullWhereClause(propertyKey), [propertyKey]);\n const nullCountArgs = useMemo(() => ({\n where: nullWhereClause,\n aggregate: nullCountAggregateOptions\n }), [nullWhereClause, nullCountAggregateOptions]);\n const {\n data: nullCountData,\n isLoading: nullLoading,\n error: nullError\n } = useOsdkAggregation(objectType, nullCountArgs);\n const nullCount = useMemo(() => {\n if (!nullCountData) return 0;\n const result = nullCountData;\n if (\"$count\" in result && typeof result.$count === \"number\") {\n return result.$count;\n }\n return 0;\n }, [nullCountData]);\n return /*#__PURE__*/React.createElement(NullValueWrapper, {\n nullCount: nullCount,\n isLoading: nullLoading,\n error: nullError,\n includeNull: includeNull,\n onIncludeNullChange: handleNullChange\n }, /*#__PURE__*/React.createElement(NumberRangeInput, {\n valueCountPairs: valueCountPairs,\n isLoading: histLoading,\n minValue: numberRangeState?.minValue,\n maxValue: numberRangeState?.maxValue,\n onChange: handleRangeChange\n }));\n}\nexport const NumberRangeFilterInput = /*#__PURE__*/memo(NumberRangeFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { SingleDateInput } from \"../base/inputs/SingleDateInput.js\";\nfunction SingleDateFilterInputInner({\n filterState,\n onFilterStateChanged\n}) {\n const selectedDate = useMemo(() => filterState?.type === \"SELECT\" ? filterState.selectedValues[0] instanceof Date ? filterState.selectedValues[0] : undefined : undefined, [filterState]);\n const isExcluding = filterState?.isExcluding ?? false;\n const handleChange = useCallback(selectedDate => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: selectedDate !== undefined ? [selectedDate] : [],\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n return /*#__PURE__*/React.createElement(SingleDateInput, {\n selectedDate: selectedDate,\n onChange: handleChange\n });\n}\nexport const SingleDateFilterInput = /*#__PURE__*/memo(SingleDateFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { SingleSelectInput } from \"../base/inputs/SingleSelectInput.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToString } from \"../utils/coerceFilterValue.js\";\nfunction SingleSelectFilterInputInner({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause\n}) {\n const selectedValue = useMemo(() => filterState?.type === \"SELECT\" ? coerceToString(filterState.selectedValues[0]) : undefined, [filterState]);\n const isExcluding = filterState?.isExcluding ?? false;\n const handleChange = useCallback(value => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: value !== undefined ? [value] : [],\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n const aggregationOptions = useMemo(() => ({\n where: whereClause\n }), [whereClause]);\n const {\n data,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey, aggregationOptions);\n return /*#__PURE__*/React.createElement(SingleSelectInput, {\n values: data,\n isLoading: isLoading,\n error: error,\n selectedValue: selectedValue,\n onChange: handleChange,\n ariaLabel: `Select ${propertyKey}`\n });\n}\nexport const SingleSelectFilterInput = /*#__PURE__*/memo(SingleSelectFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { TextTagsInput } from \"../base/inputs/TextTagsInput.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToStringArray } from \"../utils/coerceFilterValue.js\";\nfunction TextTagsFilterInputInner({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause\n}) {\n const tags = useMemo(() => filterState?.type === \"EXACT_MATCH\" ? coerceToStringArray(filterState.values) : [], [filterState]);\n const isExcluding = filterState?.isExcluding ?? false;\n const handleChange = useCallback(values => {\n onFilterStateChanged({\n type: \"EXACT_MATCH\",\n values,\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n const aggregationOptions = useMemo(() => ({\n where: whereClause\n }), [whereClause]);\n const {\n data,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey, aggregationOptions);\n return /*#__PURE__*/React.createElement(TextTagsInput, {\n suggestions: data,\n isLoading: isLoading,\n error: error,\n tags: tags,\n onChange: handleChange\n });\n}\nexport const TextTagsFilterInput = /*#__PURE__*/memo(TextTagsFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { TimelineInput } from \"../base/inputs/TimelineInput.js\";\nfunction TimelineFilterInputInner({\n filterState,\n onFilterStateChanged\n}) {\n const {\n startDate,\n endDate\n } = useMemo(() => filterState?.type === \"TIMELINE\" ? {\n startDate: filterState.startDate,\n endDate: filterState.endDate\n } : {\n startDate: undefined,\n endDate: undefined\n }, [filterState]);\n const isExcluding = filterState?.isExcluding ?? false;\n const handleChange = useCallback((startDate, endDate) => {\n onFilterStateChanged({\n type: \"TIMELINE\",\n startDate,\n endDate,\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n return /*#__PURE__*/React.createElement(TimelineInput, {\n startDate: startDate,\n endDate: endDate,\n onChange: handleChange\n });\n}\nexport const TimelineFilterInput = /*#__PURE__*/memo(TimelineFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback } from \"react\";\nimport { ToggleInput } from \"../base/inputs/ToggleInput.js\";\nfunction ToggleFilterInputInner({\n filterState,\n onFilterStateChanged\n}) {\n const enabled = filterState?.type === \"TOGGLE\" ? filterState.enabled : false;\n const handleChange = useCallback(enabled => {\n onFilterStateChanged({\n type: \"TOGGLE\",\n enabled\n });\n }, [onFilterStateChanged]);\n return /*#__PURE__*/React.createElement(ToggleInput, {\n enabled: enabled,\n onChange: handleChange\n });\n}\nexport const ToggleFilterInput = /*#__PURE__*/memo(ToggleFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo } from \"react\";\nimport { CheckboxListFilterInput } from \"./CheckboxListFilterInput.js\";\nimport { ContainsTextFilterInput } from \"./ContainsTextFilterInput.js\";\nimport { DateRangeFilterInput } from \"./DateRangeFilterInput.js\";\nimport { ListogramFilterInput } from \"./ListogramFilterInput.js\";\nimport { MultiDateFilterInput } from \"./MultiDateFilterInput.js\";\nimport { MultiSelectFilterInput } from \"./MultiSelectFilterInput.js\";\nimport { NumberRangeFilterInput } from \"./NumberRangeFilterInput.js\";\nimport { SingleDateFilterInput } from \"./SingleDateFilterInput.js\";\nimport { SingleSelectFilterInput } from \"./SingleSelectFilterInput.js\";\nimport { TextTagsFilterInput } from \"./TextTagsFilterInput.js\";\nimport { TimelineFilterInput } from \"./TimelineFilterInput.js\";\nimport { ToggleFilterInput } from \"./ToggleFilterInput.js\";\nfunction PropertyFilterInputInner({\n objectType,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause\n}) {\n switch (definition.filterComponent) {\n case \"CHECKBOX_LIST\":\n return /*#__PURE__*/React.createElement(CheckboxListFilterInput, {\n objectType: objectType,\n propertyKey: definition.key,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: whereClause,\n colorMap: definition.colorMap\n });\n case \"CONTAINS_TEXT\":\n return /*#__PURE__*/React.createElement(ContainsTextFilterInput, {\n propertyKey: definition.key,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n });\n case \"TOGGLE\":\n return /*#__PURE__*/React.createElement(ToggleFilterInput, {\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n });\n case \"NUMBER_RANGE\":\n return /*#__PURE__*/React.createElement(NumberRangeFilterInput, {\n objectType: objectType,\n propertyKey: definition.key,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n });\n case \"DATE_RANGE\":\n return /*#__PURE__*/React.createElement(DateRangeFilterInput, {\n objectType: objectType,\n propertyKey: definition.key,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n });\n case \"SINGLE_SELECT\":\n return /*#__PURE__*/React.createElement(SingleSelectFilterInput, {\n objectType: objectType,\n propertyKey: definition.key,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: whereClause\n });\n case \"MULTI_SELECT\":\n return /*#__PURE__*/React.createElement(MultiSelectFilterInput, {\n objectType: objectType,\n propertyKey: definition.key,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: whereClause\n });\n case \"SINGLE_DATE\":\n return /*#__PURE__*/React.createElement(SingleDateFilterInput, {\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n });\n case \"MULTI_DATE\":\n return /*#__PURE__*/React.createElement(MultiDateFilterInput, {\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n });\n case \"LISTOGRAM\":\n return /*#__PURE__*/React.createElement(ListogramFilterInput, {\n objectType: objectType,\n propertyKey: definition.key,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: whereClause,\n colorMap: definition.colorMap,\n displayMode: definition.listogramConfig?.displayMode,\n maxVisibleItems: definition.listogramConfig?.maxVisibleItems\n });\n case \"TEXT_TAGS\":\n return /*#__PURE__*/React.createElement(TextTagsFilterInput, {\n objectType: objectType,\n propertyKey: definition.key,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: whereClause\n });\n case \"TIMELINE\":\n return /*#__PURE__*/React.createElement(TimelineFilterInput, {\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n });\n default:\n return /*#__PURE__*/React.createElement(\"div\", {\n \"data-unsupported\": \"true\"\n }, \"Unsupported filter component: \", definition.filterComponent);\n }\n}\nexport const PropertyFilterInput = /*#__PURE__*/memo(PropertyFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback } from \"react\";\nimport { ContainsTextInput } from \"./base/inputs/ContainsTextInput.js\";\nimport { ToggleInput } from \"./base/inputs/ToggleInput.js\";\nimport { LinkedPropertyInput } from \"./inputs/LinkedPropertyInput.js\";\nimport { PropertyFilterInput } from \"./inputs/PropertyFilterInput.js\";\nfunction FilterInputInner({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause\n}) {\n return /*#__PURE__*/React.createElement(FilterInputContent, {\n objectType: objectType,\n objectSet: objectSet,\n definition: definition,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: whereClause\n });\n}\nexport const FilterInput = /*#__PURE__*/memo(FilterInputInner);\nfunction FilterInputContent({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause\n}) {\n switch (definition.type) {\n case \"HAS_LINK\":\n return /*#__PURE__*/React.createElement(HasLinkInput, {\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n });\n case \"LINKED_PROPERTY\":\n return /*#__PURE__*/React.createElement(LinkedPropertyInput, {\n objectSet: objectSet,\n definition: definition,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n });\n case \"KEYWORD_SEARCH\":\n return /*#__PURE__*/React.createElement(KeywordSearchInput, {\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n placeholder: definition.label ?? \"Search...\"\n });\n case \"CUSTOM\":\n {\n if (!definition.renderInput) {\n return /*#__PURE__*/React.createElement(\"div\", {\n \"data-unsupported\": \"true\"\n }, \"Custom filter missing renderInput\");\n }\n const customFilterState = filterState?.type === \"custom\" ? filterState : definition.filterState;\n return /*#__PURE__*/React.createElement(React.Fragment, null, definition.renderInput({\n objectSet,\n filterState: customFilterState,\n onFilterStateChanged: state => onFilterStateChanged(state)\n }));\n }\n case \"PROPERTY\":\n return /*#__PURE__*/React.createElement(PropertyFilterInput, {\n objectType: objectType,\n objectSet: objectSet,\n definition: definition,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: whereClause\n });\n default:\n return /*#__PURE__*/React.createElement(\"div\", {\n \"data-unsupported\": \"true\"\n }, \"Unsupported filter type\");\n }\n}\nconst HasLinkInput = /*#__PURE__*/memo(function HasLinkInput({\n filterState,\n onFilterStateChanged\n}) {\n const hasLink = filterState?.type === \"hasLink\" ? filterState.hasLink : false;\n const handleChange = useCallback(hasLink => {\n onFilterStateChanged({\n type: \"hasLink\",\n hasLink\n });\n }, [onFilterStateChanged]);\n return /*#__PURE__*/React.createElement(ToggleInput, {\n enabled: hasLink,\n onChange: handleChange\n });\n});\nconst KeywordSearchInput = /*#__PURE__*/memo(function KeywordSearchInput({\n filterState,\n onFilterStateChanged,\n placeholder\n}) {\n const searchTerm = filterState?.type === \"keywordSearch\" ? filterState.searchTerm : undefined;\n const operator = filterState?.type === \"keywordSearch\" ? filterState.operator : \"AND\";\n const handleChange = useCallback(newSearchTerm => {\n onFilterStateChanged({\n type: \"keywordSearch\",\n searchTerm: newSearchTerm ?? \"\",\n operator\n });\n }, [onFilterStateChanged, operator]);\n return /*#__PURE__*/React.createElement(ContainsTextInput, {\n value: searchTerm,\n onChange: handleChange,\n placeholder: placeholder\n });\n});","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nexport function getFilterKey(definition) {\n switch (definition.type) {\n case \"PROPERTY\":\n return definition.id ?? definition.key;\n case \"HAS_LINK\":\n return definition.id ?? `hasLink:${definition.linkName}`;\n case \"LINKED_PROPERTY\":\n return definition.id ?? `linkedProperty:${definition.linkName}:${definition.linkedPropertyKey}`;\n case \"KEYWORD_SEARCH\":\n return definition.id ?? `keywordSearch-${Array.isArray(definition.properties) ? definition.properties.join(\"-\") : \"all\"}`;\n case \"CUSTOM\":\n return definition.id ?? definition.key;\n default:\n return assertUnreachable(definition);\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport { formatDateForInput } from \"../base/inputs/dateUtils.js\";\nimport { getFilterKey } from \"./getFilterKey.js\";\nfunction isCompoundFilter(f) {\n return typeof f === \"object\" && f != null && \"__compound\" in f;\n}\nconst NUMERIC_BOUNDS = {\n byte: {\n min: -128,\n max: 127\n },\n short: {\n min: -32_768,\n max: 32_767\n },\n integer: {\n min: -2_147_483_648,\n max: 2_147_483_647\n },\n long: {\n min: Number.MIN_SAFE_INTEGER,\n max: Number.MAX_SAFE_INTEGER\n }\n};\nfunction clampToPropertyBounds(value, propertyType) {\n if (propertyType === undefined) {\n return value;\n }\n const bounds = NUMERIC_BOUNDS[propertyType];\n if (bounds === undefined) {\n return value;\n }\n return Math.max(bounds.min, Math.min(bounds.max, value));\n}\nfunction formatDateValue(date, propertyType) {\n if (propertyType === \"datetime\") {\n return formatDateForInput(date);\n }\n return date.toISOString();\n}\nfunction filterStateToPropertyFilter(state, propertyType) {\n switch (state.type) {\n case \"CONTAINS_TEXT\":\n {\n if (!state.value) {\n return undefined;\n }\n return {\n $containsAnyTerm: state.value\n };\n }\n case \"TOGGLE\":\n {\n return state.enabled;\n }\n case \"DATE_RANGE\":\n {\n const conditions = [];\n if (state.minValue !== undefined) {\n conditions.push({\n $gte: formatDateValue(state.minValue, propertyType)\n });\n }\n if (state.maxValue !== undefined) {\n conditions.push({\n $lte: formatDateValue(state.maxValue, propertyType)\n });\n }\n if (conditions.length === 0 && !state.includeNull) {\n return undefined;\n }\n if (conditions.length === 0 && state.includeNull) {\n return {\n $isNull: true\n };\n }\n if (conditions.length === 1 && !state.includeNull) {\n return conditions[0];\n }\n return {\n __compound: true,\n conditions,\n includeNull: state.includeNull ?? false\n };\n }\n case \"NUMBER_RANGE\":\n {\n const conditions = [];\n if (state.minValue !== undefined) {\n conditions.push({\n $gte: clampToPropertyBounds(state.minValue, propertyType)\n });\n }\n if (state.maxValue !== undefined) {\n conditions.push({\n $lte: clampToPropertyBounds(state.maxValue, propertyType)\n });\n }\n if (conditions.length === 0 && !state.includeNull) {\n return undefined;\n }\n if (conditions.length === 0 && state.includeNull) {\n return {\n $isNull: true\n };\n }\n if (conditions.length === 1 && !state.includeNull) {\n return conditions[0];\n }\n return {\n __compound: true,\n conditions,\n includeNull: state.includeNull ?? false\n };\n }\n case \"EXACT_MATCH\":\n {\n if (state.values.length === 0) {\n return undefined;\n }\n return state.values.length === 1 ? state.values[0] : {\n $in: state.values\n };\n }\n case \"SELECT\":\n {\n if (state.selectedValues.length === 0) {\n return undefined;\n }\n const values = state.selectedValues.map(v => v instanceof Date ? formatDateValue(v, propertyType) : v);\n return values.length === 1 ? values[0] : {\n $in: values\n };\n }\n case \"TIMELINE\":\n {\n const conditions = [];\n if (state.startDate !== undefined) {\n conditions.push({\n $gte: formatDateValue(state.startDate, propertyType)\n });\n }\n if (state.endDate !== undefined) {\n conditions.push({\n $lte: formatDateValue(state.endDate, propertyType)\n });\n }\n if (conditions.length === 0) {\n return undefined;\n }\n if (conditions.length === 1) {\n return conditions[0];\n }\n return {\n __compound: true,\n conditions,\n includeNull: false\n };\n }\n\n // These filter types are handled separately in buildWhereClause\n // since they need access to the full definition, not just state\n case \"hasLink\":\n case \"linkedProperty\":\n case \"keywordSearch\":\n case \"custom\":\n return undefined;\n default:\n return assertUnreachable(state);\n }\n}\n\n/**\n * Builds a WhereClause from filter definitions and their current states.\n *\n * The filterStates map uses string keys derived from filter definitions via\n * getFilterKey(). This ensures stable state lookups even when filters are\n * reordered or definition object references change.\n *\n * Note: The `as WhereClause<Q>` casts are necessary because we're building\n * clauses dynamically from property keys determined at runtime. TypeScript\n * cannot verify that the constructed clause structure matches the generic Q's\n * expected shape, but the structure is guaranteed to be valid by construction.\n */\n\nexport function buildWhereClause(definitions, filterStates, operator, propertyTypes, excludeFilterKey) {\n if (!definitions || definitions.length === 0) {\n return {};\n }\n const clauses = [];\n for (const definition of definitions) {\n const key = getFilterKey(definition);\n if (key === excludeFilterKey) {\n continue;\n }\n const state = filterStates.get(key);\n if (!state) {\n continue;\n }\n switch (definition.type) {\n case \"PROPERTY\":\n {\n const propertyType = propertyTypes?.get(definition.key)?.type;\n const filter = filterStateToPropertyFilter(state, propertyType);\n if (filter !== undefined) {\n const isExcluding = \"isExcluding\" in state && state.isExcluding;\n if (isCompoundFilter(filter)) {\n const fieldClauses = filter.conditions.map(c => ({\n [definition.key]: c\n }));\n let rangeClause = fieldClauses.length === 1 ? fieldClauses[0] : {\n $and: fieldClauses\n };\n if (filter.includeNull) {\n rangeClause = {\n $or: [rangeClause, {\n [definition.key]: {\n $isNull: true\n }\n }]\n };\n }\n clauses.push(isExcluding ? {\n $not: rangeClause\n } : rangeClause);\n } else {\n const clause = {\n [definition.key]: filter\n };\n clauses.push(isExcluding ? {\n $not: clause\n } : clause);\n }\n }\n break;\n }\n case \"HAS_LINK\":\n {\n if (state.type !== \"hasLink\") {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(`[FilterList] State type mismatch for hasLink filter \"${definition.linkName}\": expected hasLink, got ${state.type}`);\n }\n break;\n }\n if (!state.hasLink) {\n break;\n }\n clauses.push({\n [definition.linkName]: {\n $isNotNull: true\n }\n });\n break;\n }\n case \"LINKED_PROPERTY\":\n {\n // OSDK WhereClause does not support filtering through links.\n // Link-based filtering requires ObjectSet operations (pivotTo/intersect).\n // LinkedProperty filters render UI for selection but cannot be included\n // in the where clause. Consumers needing linked property filtering must\n // implement it using ObjectSet.pivotTo() and intersect().\n break;\n }\n case \"KEYWORD_SEARCH\":\n {\n if (state.type !== \"keywordSearch\") {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(`[FilterList] State type mismatch for keywordSearch filter: expected keywordSearch, got ${state.type}`);\n }\n break;\n }\n if (!state.searchTerm) {\n break;\n }\n // TypeScript narrows state to KeywordSearchFilterState\n const searchTerm = state.searchTerm.trim();\n if (!searchTerm) {\n break;\n }\n const properties = definition.properties;\n let propertiesToSearch;\n if (properties === \"all\") {\n if (propertyTypes && propertyTypes.size > 0) {\n propertiesToSearch = [];\n for (const [key, info] of propertyTypes) {\n if (info.type === \"string\" && !info.multiplicity) {\n propertiesToSearch.push(key);\n }\n }\n } else {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"[FilterList] Keyword search with properties: 'all' requires propertyTypes to be provided. Filter will be skipped.\");\n }\n break;\n }\n } else {\n propertiesToSearch = properties;\n }\n if (propertiesToSearch.length === 0) {\n break;\n }\n const containsOp = state.operator === \"AND\" ? \"$containsAllTerms\" : \"$containsAnyTerm\";\n const propertySearches = propertiesToSearch.map(prop => ({\n [prop]: {\n [containsOp]: searchTerm\n }\n }));\n let searchClause;\n if (propertySearches.length === 1) {\n searchClause = propertySearches[0];\n } else {\n searchClause = {\n $or: propertySearches\n };\n }\n clauses.push(state.isExcluding ? {\n $not: searchClause\n } : searchClause);\n break;\n }\n case \"CUSTOM\":\n {\n if (state.type !== \"custom\") {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(`[FilterList] State type mismatch for custom filter \"${definition.key}\": expected custom, got ${state.type}`);\n }\n break;\n }\n // TypeScript narrows state to CustomFilterState\n const customClause = definition.toWhereClause(state);\n if (customClause && Object.keys(customClause).length > 0) {\n clauses.push(customClause);\n }\n break;\n }\n default:\n assertUnreachable(definition);\n }\n }\n if (clauses.length === 0) {\n return {};\n }\n if (clauses.length === 1) {\n return clauses[0];\n }\n if (operator === \"and\") {\n return {\n $and: clauses\n };\n }\n return {\n $or: clauses\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useOsdkMetadata } from \"@osdk/react\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport { buildWhereClause } from \"../utils/filterStateToWhereClause.js\";\nimport { filterHasActiveState } from \"../utils/filterValues.js\";\nimport { getFilterKey } from \"../utils/getFilterKey.js\";\n/**\n * Build initial states from filter definitions.\n * Uses string keys derived from getFilterKey() for stable lookups.\n */\nfunction buildInitialStates(definitions) {\n const states = new Map();\n if (!definitions) {\n return states;\n }\n for (const definition of definitions) {\n const key = getFilterKey(definition);\n switch (definition.type) {\n case \"PROPERTY\":\n {\n const state = definition.filterState;\n if (state) {\n states.set(key, state);\n }\n break;\n }\n case \"HAS_LINK\":\n case \"KEYWORD_SEARCH\":\n case \"CUSTOM\":\n {\n const state = definition.defaultFilterState;\n if (state) {\n states.set(key, state);\n }\n break;\n }\n case \"LINKED_PROPERTY\":\n {\n const innerState = definition.defaultLinkedFilterState;\n if (innerState) {\n const state = {\n type: \"linkedProperty\",\n linkedFilterState: innerState\n };\n states.set(key, state);\n }\n break;\n }\n default:\n assertUnreachable(definition);\n }\n }\n return states;\n}\nexport function useFilterListState(props) {\n const {\n objectSet,\n filterDefinitions,\n filterOperator = \"and\",\n onFilterStateChanged,\n onFilterClauseChanged,\n initialFilterStates\n } = props;\n const objectType = objectSet.$objectSetInternals.def;\n const {\n metadata\n } = useOsdkMetadata(objectType);\n const propertyTypes = useMemo(() => {\n const map = new Map();\n if (metadata?.properties) {\n for (const [key, prop] of Object.entries(metadata.properties)) {\n if (typeof prop.type === \"string\") {\n map.set(key, {\n type: prop.type,\n multiplicity: prop.multiplicity === true\n });\n }\n }\n }\n return map;\n }, [metadata?.properties]);\n const [filterStates, setFilterStates] = useState(() => {\n const states = buildInitialStates(filterDefinitions);\n if (initialFilterStates) {\n for (const [key, state] of initialFilterStates) {\n states.set(key, state);\n }\n }\n return states;\n });\n const setFilterState = useCallback((filterKey, state) => {\n let newWhereClause;\n setFilterStates(prev => {\n const next = new Map(prev);\n next.set(filterKey, state);\n newWhereClause = buildWhereClause(filterDefinitions, next, filterOperator, propertyTypes);\n return next;\n });\n if (newWhereClause !== undefined) {\n onFilterClauseChanged?.(newWhereClause);\n }\n const definition = filterDefinitions?.find(d => getFilterKey(d) === filterKey);\n if (definition) {\n onFilterStateChanged?.(definition, state);\n }\n }, [filterDefinitions, filterOperator, propertyTypes, onFilterClauseChanged, onFilterStateChanged]);\n const whereClause = useMemo(() => buildWhereClause(filterDefinitions, filterStates, filterOperator, propertyTypes), [filterDefinitions, filterStates, filterOperator, propertyTypes]);\n const perFilterWhereClauses = useMemo(() => {\n const map = new Map();\n if (!filterDefinitions) {\n return map;\n }\n for (const definition of filterDefinitions) {\n const key = getFilterKey(definition);\n map.set(key, buildWhereClause(filterDefinitions, filterStates, filterOperator, propertyTypes, key));\n }\n return map;\n }, [filterDefinitions, filterStates, filterOperator, propertyTypes]);\n const activeFilterCount = useMemo(() => {\n let count = 0;\n for (const state of filterStates.values()) {\n if (filterHasActiveState(state)) {\n count++;\n }\n }\n return count;\n }, [filterStates]);\n const reset = useCallback(() => {\n const initialStates = buildInitialStates(filterDefinitions);\n setFilterStates(initialStates);\n const newWhereClause = buildWhereClause(filterDefinitions, initialStates, filterOperator, propertyTypes);\n onFilterClauseChanged?.(newWhereClause);\n }, [filterDefinitions, filterOperator, propertyTypes, onFilterClauseChanged]);\n return useMemo(() => ({\n filterStates,\n setFilterState,\n whereClause,\n perFilterWhereClauses,\n activeFilterCount,\n reset\n }), [filterStates, setFilterState, whereClause, perFilterWhereClauses, activeFilterCount, reset]);\n}","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useMemo, useState } from \"react\";\nexport function useFilterVisibility(filterDefinitions, getFilterKey, getIsVisible) {\n const [visibilityOverrides, setVisibilityOverrides] = useState(() => new Map());\n const {\n visibleDefinitions,\n hiddenDefinitions\n } = useMemo(() => {\n if (filterDefinitions == null) {\n return {\n visibleDefinitions: [],\n hiddenDefinitions: []\n };\n }\n const visible = [];\n const hidden = [];\n for (const def of filterDefinitions) {\n const key = getFilterKey(def);\n const override = visibilityOverrides.get(key);\n const isVisible = override ?? getIsVisible(def);\n if (isVisible) {\n visible.push(def);\n } else {\n hidden.push(def);\n }\n }\n return {\n visibleDefinitions: visible,\n hiddenDefinitions: hidden\n };\n }, [filterDefinitions, getFilterKey, getIsVisible, visibilityOverrides]);\n const showFilter = useCallback(key => {\n setVisibilityOverrides(prev => {\n const next = new Map(prev);\n next.set(key, true);\n return next;\n });\n }, []);\n const hideFilter = useCallback(key => {\n setVisibilityOverrides(prev => {\n const next = new Map(prev);\n next.set(key, false);\n return next;\n });\n }, []);\n return {\n visibleDefinitions,\n hiddenDefinitions,\n showFilter,\n hideFilter\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nexport function getFilterLabel(definition) {\n if (\"label\" in definition && definition.label) {\n return definition.label;\n }\n switch (definition.type) {\n case \"PROPERTY\":\n return definition.key;\n case \"HAS_LINK\":\n case \"LINKED_PROPERTY\":\n return definition.linkName;\n case \"KEYWORD_SEARCH\":\n return \"Search\";\n case \"CUSTOM\":\n return definition.key;\n default:\n return assertUnreachable(definition);\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useCallback, useMemo } from \"react\";\nimport { AddFilterPopover } from \"./base/AddFilterPopover.js\";\nimport { BaseFilterList } from \"./base/BaseFilterList.js\";\nimport { FilterInput } from \"./FilterInput.js\";\nimport { useFilterListState } from \"./hooks/useFilterListState.js\";\nimport { useFilterVisibility } from \"./hooks/useFilterVisibility.js\";\nimport { getFilterKey } from \"./utils/getFilterKey.js\";\nimport { getFilterLabel } from \"./utils/getFilterLabel.js\";\nexport function FilterList(props) {\n const {\n objectSet,\n title,\n titleIcon,\n collapsed,\n onCollapsedChange,\n filterDefinitions,\n addFilterMode = \"controlled\",\n showResetButton = false,\n onReset,\n showActiveFilterCount = false,\n className,\n enableSorting,\n onFilterAdded,\n onFilterRemoved,\n renderAddFilterButton\n } = props;\n const objectType = objectSet.$objectSetInternals.def;\n const {\n filterStates,\n setFilterState,\n perFilterWhereClauses,\n activeFilterCount,\n reset\n } = useFilterListState(props);\n const handleReset = useCallback(() => {\n reset();\n onReset?.();\n }, [reset, onReset]);\n const uncontrolledAddFilterMode = addFilterMode === \"uncontrolled\";\n const getIsVisible = useCallback(def => def.isVisible !== false, []);\n const {\n visibleDefinitions: managedVisibleDefinitions,\n hiddenDefinitions: managedHiddenDefinitions,\n showFilter,\n hideFilter\n } = useFilterVisibility(filterDefinitions, getFilterKey, getIsVisible);\n const simpleVisibleDefinitions = useMemo(() => {\n if (filterDefinitions == null) {\n return undefined;\n }\n return filterDefinitions.filter(def => def.isVisible !== false);\n }, [filterDefinitions]);\n const effectiveVisibleDefinitions = uncontrolledAddFilterMode ? managedVisibleDefinitions : simpleVisibleDefinitions;\n const handleFilterRemoved = useCallback(filterKey => {\n if (uncontrolledAddFilterMode) {\n hideFilter(filterKey);\n }\n onFilterRemoved?.(filterKey);\n }, [uncontrolledAddFilterMode, hideFilter, onFilterRemoved]);\n const handleFilterShown = useCallback(filterKey => {\n showFilter(filterKey);\n onFilterAdded?.(filterKey, filterDefinitions ?? []);\n }, [showFilter, onFilterAdded, filterDefinitions]);\n const hiddenFilterItems = useMemo(() => managedHiddenDefinitions.map(def => ({\n key: getFilterKey(def),\n label: getFilterLabel(def)\n })), [managedHiddenDefinitions]);\n const effectiveRenderAddFilterButton = useMemo(() => {\n if (uncontrolledAddFilterMode && managedHiddenDefinitions.length > 0) {\n return () => /*#__PURE__*/React.createElement(AddFilterPopover, {\n hiddenDefinitions: hiddenFilterItems,\n onShowFilter: handleFilterShown\n });\n }\n return renderAddFilterButton;\n }, [uncontrolledAddFilterMode, managedHiddenDefinitions.length, hiddenFilterItems, handleFilterShown, renderAddFilterButton]);\n const effectiveOnFilterRemoved = uncontrolledAddFilterMode ? handleFilterRemoved : onFilterRemoved;\n const renderInput = useCallback(({\n definition,\n filterKey,\n filterState,\n onFilterStateChanged\n }) => /*#__PURE__*/React.createElement(FilterInput, {\n objectType: objectType,\n objectSet: objectSet,\n definition: definition,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: perFilterWhereClauses.get(filterKey) ?? {}\n }), [objectType, objectSet, perFilterWhereClauses]);\n return /*#__PURE__*/React.createElement(BaseFilterList, {\n title: title,\n titleIcon: titleIcon,\n collapsed: collapsed,\n onCollapsedChange: onCollapsedChange,\n filterDefinitions: effectiveVisibleDefinitions,\n filterStates: filterStates,\n onFilterStateChanged: setFilterState,\n renderInput: renderInput,\n getFilterKey: getFilterKey,\n getFilterLabel: getFilterLabel,\n activeFilterCount: activeFilterCount,\n onReset: handleReset,\n showResetButton: showResetButton,\n showActiveFilterCount: showActiveFilterCount,\n enableSorting: enableSorting,\n onFilterRemoved: effectiveOnFilterRemoved,\n className: className,\n renderAddFilterButton: effectiveRenderAddFilterButton\n });\n}","/*\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\nconst DATE_PREFIX = \"__date__:\";\nfunction replacer(_key, value) {\n if (value instanceof Date) {\n return DATE_PREFIX + value.toISOString();\n }\n return value;\n}\nfunction reviver(_key, value) {\n if (typeof value === \"string\" && value.startsWith(DATE_PREFIX)) {\n return new Date(value.slice(DATE_PREFIX.length));\n }\n return value;\n}\nexport function serializeFilterStates(states) {\n const entries = Array.from(states.entries());\n return JSON.stringify(entries, replacer);\n}\nexport function deserializeFilterStates(json) {\n try {\n const entries = JSON.parse(json, reviver);\n return new Map(entries);\n } catch {\n return new Map();\n }\n}","/*\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","/*\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 height: 100%;\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 background-color: inherit;\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(\n :has(~ [data-pinned=\"right\"]):nth-child(n + 2)\n ) {\n border-left: var(--osdk-table-pinned-column-border);\n}\n\n.osdkTableCell:has([role=\"checkbox\"]) {\n justify-content: center;\n padding: 0;\n}\n\n.osdkTableCellContent:not(:has([role=\"checkbox\"])) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: left;\n flex: 1;\n}\n\n.osdkCheckboxContainer {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./LoadingCell.module.css\";\nimport cellStyles from \"./TableCell.module.css\";\nexport function LoadingCellContent() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.osdkLoadingCell, styles.osdkCellSkeleton)\n });\n}\nexport function LoadingCell({\n width\n}) {\n return /*#__PURE__*/React.createElement(\"td\", {\n className: cellStyles.osdkTableCell,\n style: {\n width\n }\n }, /*#__PURE__*/React.createElement(LoadingCellContent, null));\n}","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport { LoadingCellContent } from \"../LoadingCell.js\";\nexport function AsyncValueCell({\n data,\n isLoading,\n error\n}) {\n if (error != null) {\n return \"Error\";\n }\n if (data != null) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, data);\n }\n if (isLoading) {\n return /*#__PURE__*/React.createElement(LoadingCellContent, null);\n }\n return \"No value\";\n}","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.osdkTooltipTrigger {\n border: none;\n background: inherit;\n}\n\n.osdkTooltipPositioner {\n z-index: var(--osdk-tooltip-z-index);\n}\n\n.osdkTooltipPopup {\n padding: var(--osdk-tooltip-padding);\n background-color: var(--osdk-tooltip-bg);\n border-radius: var(--osdk-surface-border-radius);\n box-shadow: var(--osdk-tooltip-shadow);\n max-width: var(--osdk-tooltip-max-width);\n font-size: var(--osdk-tooltip-font-size);\n}\n\n/* \n * Hardcoded values are copied from base ui example \n * https://base-ui.com/react/components/tooltip \n *\n * */\n.osdkTooltipArrow {\n display: flex;\n\n &[data-side=\"top\"] {\n bottom: -8px;\n rotate: 180deg;\n }\n\n &[data-side=\"bottom\"] {\n top: -8px;\n rotate: 0deg;\n }\n\n &[data-side=\"left\"] {\n right: -13px;\n rotate: 90deg;\n }\n\n &[data-side=\"right\"] {\n left: -13px;\n rotate: -90deg;\n }\n}\n\n.tooltipArrowFill {\n fill: var(--osdk-tooltip-bg);\n}\n\n.tooltipArrowOuterStroke {\n fill: var(--osdk-tooltip-border-color);\n}\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Tooltip as BaseUITooltip } from \"@base-ui/react/tooltip\";\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./Tooltip.module.css\";\nfunction TooltipRoot({\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUITooltip.Root, rest, children);\n}\nfunction TooltipProvider({\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUITooltip.Provider, rest, children);\n}\nfunction TooltipTrigger({\n className,\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUITooltip.Trigger, _extends({\n className: classnames(styles.osdkTooltipTrigger, className)\n }, rest), children);\n}\nfunction TooltipPositioner({\n className,\n children,\n sideOffset = 4,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUITooltip.Positioner, _extends({\n className: classnames(styles.osdkTooltipPositioner, className),\n sideOffset: sideOffset\n }, rest), children);\n}\nfunction TooltipPopup({\n className,\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUITooltip.Popup, _extends({\n className: classnames(styles.osdkTooltipPopup, className)\n }, rest), children);\n}\nexport function TooltipArrow() {\n return /*#__PURE__*/React.createElement(BaseUITooltip.Arrow, {\n className: styles.osdkTooltipArrow\n }, /*#__PURE__*/React.createElement(ArrowSvg, null));\n}\nfunction ArrowSvg(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20\",\n height: \"10\",\n viewBox: \"0 0 20 10\",\n fill: \"none\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.66437 2.60207L4.80758 6.97318C4.07308 7.63423 3.11989 8 2.13172 8H0V10H20V8H18.5349C17.5468 8 16.5936 7.63423 15.8591 6.97318L11.0023 2.60207C10.622 2.2598 10.0447 2.25979 9.66437 2.60207Z\",\n className: styles.tooltipArrowFill\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.99542 1.85876C9.75604 1.17425 10.9106 1.17422 11.6713 1.85878L16.5281 6.22989C17.0789 6.72568 17.7938 7.00001 18.5349 7.00001L15.89 7L11.0023 2.60207C10.622 2.2598 10.0447 2.2598 9.66436 2.60207L4.77734 7L2.13171 7.00001C2.87284 7.00001 3.58774 6.72568 4.13861 6.22989L8.99542 1.85876Z\",\n className: styles.tooltipArrowOuterStroke\n }));\n}\nexport const Tooltip = {\n Root: TooltipRoot,\n Provider: TooltipProvider,\n Trigger: TooltipTrigger,\n Portal: BaseUITooltip.Portal,\n Positioner: TooltipPositioner,\n Popup: TooltipPopup,\n Arrow: TooltipArrow\n};",".osdkEditableCell {\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--osdk-surface-spacing);\n\n padding: var(--osdk-surface-spacing) calc(var(--osdk-surface-spacing) * 3);\n border-radius: var(--osdk-surface-border-radius);\n border: var(--osdk-surface-border-width) solid transparent;\n background: inherit;\n\n tr[data-focused=\"true\"] & {\n border: var(--osdk-table-cell-editable-border);\n background: var(--osdk-table-cell-editable-bg);\n\n &.osdkEditedInput {\n border: var(--osdk-table-cell-edited-border);\n }\n\n &:focus-within,\n &.osdkEditedInput:focus-within {\n border: var(--osdk-emphasis-focus-width) solid\n var(--osdk-emphasis-focus-color);\n }\n\n &.error {\n border: var(--osdk-table-cell-edited-border-error);\n\n &:focus-within {\n border: var(--osdk-emphasis-focus-width) solid\n var(--osdk-intent-danger-rest);\n }\n }\n }\n\n &.error {\n background: var(--osdk-table-cell-editable-bg);\n border: var(--osdk-table-cell-edited-border-error);\n }\n}\n\n.osdkEditableInput {\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: left;\n background: inherit;\n border: none;\n\n &:focus {\n outline: none;\n }\n}\n\n.osdkEditedInput {\n border: var(--osdk-table-cell-edited-border);\n background: var(--osdk-table-cell-editable-bg);\n}\n\n.validationError {\n display: flex;\n align-items: center;\n gap: var(--osdk-surface-spacing);\n}\n\n.errorIcon {\n color: var(--osdk-intent-danger-rest);\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Input } from \"@base-ui/react/input\";\nimport { Error } from \"@blueprintjs/icons\";\nimport classNames from \"classnames\";\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { Tooltip } from \"../base-components/tooltip/Tooltip.js\";\nimport styles from \"./EditableCell.module.css\";\nconst NUMBER_TYPES = [\"double\", \"integer\", \"long\", \"float\", \"decimal\", \"byte\", \"short\"];\nfunction valueToString(value) {\n if (value == null) {\n return \"\";\n }\n if (typeof value === \"object\") {\n return JSON.stringify(value);\n }\n // At this point, value is a primitive (string, number, boolean, symbol, bigint)\n return String(value);\n}\nfunction parseValueByType(value, dataType) {\n if (!dataType || !NUMBER_TYPES.includes(dataType)) {\n return value;\n }\n if (value === \"\") {\n return null;\n }\n const parsedNumber = Number(value);\n if (isNaN(parsedNumber)) {\n return value;\n }\n return parsedNumber;\n}\nconst VALIDATION_ERROR_MESSAGE = \"Validation error\";\nfunction EditableCellInner({\n initialValue,\n currentValue,\n cellId,\n dataType,\n onCellEdit,\n onCellValidationError,\n clearCellValidationError,\n originalRowData,\n rowId,\n columnId,\n validateEdit,\n validationError\n}) {\n const [inputValue, setInputValue] = useState(valueToString(currentValue));\n const isCancelled = useRef(false);\n const validationAbortControllerRef = useRef(null);\n const abortController = useCallback(() => {\n if (validationAbortControllerRef.current) {\n validationAbortControllerRef.current.abort();\n validationAbortControllerRef.current = null;\n }\n }, []);\n const hasValidationError = validationError != null;\n const isEdited = currentValue !== initialValue;\n useEffect(() => {\n setInputValue(valueToString(currentValue));\n }, [currentValue]);\n useEffect(() => {\n // Cleanup abort controller on unmount\n return () => {\n abortController();\n };\n }, [abortController]);\n const handleBlur = useCallback(() => {\n // Do not commit the edit if it was cancelled with Escape key\n if (isCancelled.current) {\n isCancelled.current = false;\n return;\n }\n\n // Cancel any in-flight validation\n abortController();\n const parsedValue = parseValueByType(inputValue, dataType);\n onCellEdit(cellId, {\n rowId,\n columnId,\n newValue: parsedValue,\n oldValue: initialValue,\n originalRowData\n });\n if (validateEdit) {\n // Create new AbortController for this validation\n const abortController = new AbortController();\n validationAbortControllerRef.current = abortController;\n const validationPromise = validateEdit(parsedValue);\n\n // Race between validation and abort\n Promise.race([validationPromise, new Promise((_, reject) => {\n abortController.signal.addEventListener(\"abort\", () => {\n reject(new DOMException(\"Aborted\", \"AbortError\"));\n });\n })]).then(errorMessage => {\n if (abortController.signal.aborted) {\n return;\n }\n if (errorMessage) {\n onCellValidationError?.(cellId, errorMessage);\n } else {\n clearCellValidationError?.(cellId);\n }\n }, error => {\n if (!abortController.signal.aborted && error.name !== \"AbortError\") {\n onCellValidationError?.(cellId, VALIDATION_ERROR_MESSAGE);\n }\n });\n }\n }, [abortController, inputValue, dataType, onCellEdit, cellId, rowId, columnId, initialValue, originalRowData, validateEdit, onCellValidationError, clearCellValidationError]);\n const handleChange = useCallback(value => {\n // Cancel any in-flight validation\n abortController();\n setInputValue(value);\n }, [abortController]);\n const handleKeyDown = useCallback(e => {\n if (e.key === \"Enter\") {\n e.currentTarget.blur();\n }\n if (e.key === \"Escape\") {\n isCancelled.current = true;\n setInputValue(valueToString(currentValue));\n e.currentTarget.blur();\n }\n }, [currentValue]);\n const inputType = dataType && NUMBER_TYPES.includes(dataType) ? \"number\" : \"text\";\n return /*#__PURE__*/React.createElement(Tooltip.Provider, null, /*#__PURE__*/React.createElement(Tooltip.Root, {\n disabled: !hasValidationError\n }, /*#__PURE__*/React.createElement(Tooltip.Trigger, null, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.osdkEditableCell, {\n [styles.error]: hasValidationError,\n [styles.osdkEditedInput]: isEdited\n })\n }, /*#__PURE__*/React.createElement(Input, {\n type: inputType,\n value: inputValue,\n className: styles.osdkEditableInput,\n onValueChange: handleChange,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n \"aria-invalid\": hasValidationError\n }), hasValidationError && /*#__PURE__*/React.createElement(Error, {\n className: styles.errorIcon\n }))), /*#__PURE__*/React.createElement(Tooltip.Portal, null, /*#__PURE__*/React.createElement(Tooltip.Positioner, {\n sideOffset: 4,\n side: \"bottom\"\n }, /*#__PURE__*/React.createElement(Tooltip.Popup, null, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.validationError\n }, /*#__PURE__*/React.createElement(Error, {\n className: styles.errorIcon\n }), validationError), /*#__PURE__*/React.createElement(Tooltip.Arrow, null))))));\n}\nexport const EditableCell = /*#__PURE__*/React.memo(EditableCellInner);","/*\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\nexport const isAsyncCellData = value => {\n return value != null && typeof value === \"object\" && \"__asyncCell\" in value && value.__asyncCell === true;\n};\nexport const createAsyncCellData = ({\n data,\n isLoading,\n error\n}) => ({\n __asyncCell: true,\n data,\n isLoading,\n error\n});","/*\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\nexport function getCellId(cellIdentifier) {\n return JSON.stringify(cellIdentifier);\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport { AsyncValueCell } from \"./components/AsyncValueCell.js\";\nimport { EditableCell } from \"./EditableCell.js\";\nimport { isAsyncCellData } from \"./utils/AsyncCellData.js\";\nimport { getCellId } from \"./utils/getCellId.js\";\nexport function renderDefaultCell(cellContext) {\n const meta = cellContext.table.options.meta;\n const columnMeta = cellContext.column.columnDef.meta;\n const cellValue = cellContext.getValue();\n const asyncCellData = isAsyncCellData(cellValue) ? cellValue : undefined;\n\n // Function-backed columns are read-only: the value is server-computed\n // and cannot be edited in the table. Return the async cell directly.\n if (columnMeta?.isAsyncColumn && asyncCellData) {\n return /*#__PURE__*/React.createElement(AsyncValueCell, asyncCellData);\n }\n if (!columnMeta?.editable || !meta?.onCellEdit || !meta?.isInEditMode) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, cellValue);\n }\n const rowId = cellContext.row.id;\n const columnId = cellContext.column.id;\n const cellId = getCellId({\n rowId,\n columnId\n });\n const cellEdits = meta.cellEdits;\n const editedValue = cellEdits?.[cellId];\n const currentValue = editedValue?.newValue ?? cellValue;\n const validationError = meta.validationErrors?.get(cellId);\n return /*#__PURE__*/React.createElement(EditableCell, {\n initialValue: cellValue,\n currentValue: currentValue,\n cellId: cellId,\n dataType: columnMeta?.dataType,\n onCellEdit: meta.onCellEdit,\n onCellValidationError: meta.onCellValidationError,\n clearCellValidationError: meta.clearCellValidationError,\n originalRowData: cellContext.row.original,\n rowId: rowId,\n columnId: columnId,\n validateEdit: columnMeta?.validateEdit,\n validationError: validationError\n });\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useOsdkMetadata } from \"@osdk/react\";\nimport { useMemo } from \"react\";\nimport { renderDefaultCell } from \"../DefaultCellRenderer.js\";\n/**\n * Hook which builds column definitions for tanstack-table given the objectSet\n */\nexport function useColumnDefs(objectType, columnDefinitions) {\n const {\n metadata,\n loading,\n error\n } = useOsdkMetadata(objectType);\n const columns = useMemo(() => {\n const objectProperties = metadata?.properties;\n // If columnDefinitions is provided, construct colDefs with it\n if (columnDefinitions) {\n return getColumnsFromColumnDefinitions(columnDefinitions, objectProperties);\n }\n\n // If not, return the default columns from the object properties\n return getDefaultColumns(objectProperties);\n }, [columnDefinitions, metadata?.properties]);\n return {\n columns,\n loading,\n error\n };\n}\nfunction getColumnsFromColumnDefinitions(columnDefinitions, objectProperties) {\n return columnDefinitions.map(col => {\n const {\n locator,\n width,\n minWidth,\n maxWidth,\n resizable,\n orderable,\n filterable,\n editable,\n renderCell,\n renderHeader,\n columnName\n } = col;\n const propertyMetadata = locator.type === \"property\" ? objectProperties?.[locator.id] : undefined;\n const colKey = locator.id;\n const dataType = propertyMetadata?.type && typeof propertyMetadata.type === \"string\" ? propertyMetadata.type : undefined;\n const colDef = {\n id: colKey,\n accessorKey: colKey,\n header: renderHeader ?? (columnName || propertyMetadata?.displayName),\n meta: {\n columnName: columnName || propertyMetadata?.displayName,\n isAsyncColumn: locator.type === \"function\",\n isVisible: col.isVisible !== false,\n editable,\n dataType,\n validateEdit: col.validateEdit\n },\n size: width,\n ...(minWidth ? {\n minSize: minWidth\n } : {}),\n ...(maxWidth ? {\n maxSize: maxWidth\n } : {}),\n enableResizing: resizable,\n // Function-backed columns must be sorted on the frontend, so disable sorting for now\n enableSorting: locator.type === \"function\" ? false : orderable,\n enableColumnFilter: filterable,\n cell: cellContext => {\n const object = cellContext.row.original;\n if (renderCell) {\n return renderCell(object, locator);\n }\n return renderDefaultCell(cellContext);\n }\n };\n return colDef;\n });\n}\nfunction getDefaultColumns(objectProperties) {\n if (!objectProperties) return [];\n return Object.entries(objectProperties).map(([key, property]) => {\n const colDef = {\n accessorKey: key,\n header: property.displayName ?? key\n };\n return colDef;\n });\n}","/*\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\nexport const SELECTION_COLUMN_ID = \"__selection__\";\nexport const DEFAULT_COLUMN_WIDTH = 80;","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useEffect, useState } from \"react\";\nimport { SELECTION_COLUMN_ID } from \"../utils/constants.js\";\nexport const useColumnPinning = ({\n columnDefinitions,\n hasSelectionColumn,\n onColumnsPinnedChanged\n}) => {\n const [columnPinning, setColumnPinning] = useState({\n left: [],\n right: []\n });\n\n // Update column pinning when columnDefinitions change\n useEffect(() => {\n const defaultState = getColumnPinningStateFromColumnDefs(columnDefinitions);\n const selectionCol = hasSelectionColumn ? [SELECTION_COLUMN_ID] : [];\n setColumnPinning({\n left: [...selectionCol, ...(defaultState.left ?? [])],\n right: [...(defaultState.right ?? [])]\n });\n }, [columnDefinitions, hasSelectionColumn]);\n const onColumnPinningChange = useCallback(updater => {\n setColumnPinning(prev => {\n const newPinning = typeof updater === \"function\" ? updater(prev) : updater;\n if (onColumnsPinnedChanged) {\n const newStates = convertColumnPinningStateToArray(newPinning);\n const stateWithoutSelectionCol = newStates.filter(state => state.columnId !== SELECTION_COLUMN_ID);\n onColumnsPinnedChanged(stateWithoutSelectionCol);\n }\n return newPinning;\n });\n }, [onColumnsPinnedChanged]);\n return {\n columnPinning,\n onColumnPinningChange\n };\n};\nconst getColumnPinningStateFromColumnDefs = columnDefinitions => {\n if (!columnDefinitions) {\n return {};\n }\n const columnPinningState = columnDefinitions.reduce((acc, {\n locator,\n pinned\n }) => {\n const colKey = locator.id.toString();\n const isPinned = pinned != null && pinned !== \"none\";\n if (!isPinned) {\n return acc;\n }\n if (pinned === \"left\") {\n return {\n ...acc,\n left: [...(acc.left ?? []), colKey]\n };\n }\n return {\n ...acc,\n right: [...(acc.right ?? []), colKey]\n };\n }, {\n left: [],\n right: []\n });\n return columnPinningState;\n};\n\n/**\n * Converts ColumnPinningState to array format for the callback\n */\nfunction convertColumnPinningStateToArray(pinningState) {\n return [...(pinningState.left ?? []).map(columnId => ({\n columnId,\n pinned: \"left\"\n })), ...(pinningState.right ?? []).map(columnId => ({\n columnId,\n pinned: \"right\"\n }))];\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useState } from \"react\";\nexport const useColumnResize = ({\n onColumnResize\n}) => {\n const [columnSizing, setColumnSizing] = useState({});\n const onColumnSizingChange = useCallback(updater => {\n setColumnSizing(prev => {\n const newState = typeof updater === \"function\" ? updater(prev) : updater;\n if (onColumnResize) {\n for (const columnId of Object.keys(newState)) {\n if (newState[columnId] !== prev[columnId]) {\n onColumnResize(columnId, newState[columnId]);\n }\n }\n for (const columnId of Object.keys(prev)) {\n if (!(columnId in newState)) {\n onColumnResize(columnId, null);\n }\n }\n }\n return newState;\n });\n }, [onColumnResize]);\n return {\n columnSizing,\n onColumnSizingChange\n };\n};","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useEffect, useState } from \"react\";\nexport const useColumnVisibility = ({\n allColumns,\n onColumnVisibilityChanged\n}) => {\n const [columnVisibility, setColumnVisibility] = useState(() => getColumnVisibilityState(allColumns));\n const [columnOrder, setColumnOrder] = useState(() => getColumnOrder(allColumns));\n\n // TODO: Explore other ways to respond to props changes for controlled mode\n useEffect(() => {\n setColumnVisibility(getColumnVisibilityState(allColumns));\n }, [allColumns]);\n useEffect(() => {\n setColumnOrder(getColumnOrder(allColumns));\n }, [allColumns]);\n const onColumnVisibilityChange = useCallback(updaterOrValue => {\n setColumnVisibility(prev => {\n const newState = typeof updaterOrValue === \"function\" ? updaterOrValue(prev) : updaterOrValue;\n if (onColumnVisibilityChanged) {\n const changes = Object.entries(newState).map(([columnId, isVisible]) => ({\n columnId,\n isVisible\n }));\n onColumnVisibilityChanged(changes);\n }\n return newState;\n });\n }, [onColumnVisibilityChanged]);\n const onColumnOrderChange = useCallback(updaterOrValue => {\n setColumnOrder(prev => {\n const newState = typeof updaterOrValue === \"function\" ? updaterOrValue(prev) : updaterOrValue;\n return newState;\n });\n }, []);\n return {\n columnVisibility,\n onColumnVisibilityChange,\n columnOrder,\n onColumnOrderChange\n };\n};\nconst getColumnVisibilityState = allColumns => {\n return allColumns.reduce((acc, col) => {\n const colId = col.id ?? col.accessorKey;\n if (colId) {\n return {\n ...acc,\n [colId]: col.meta?.isVisible !== false\n };\n }\n return acc;\n }, {});\n};\nconst getColumnOrder = allColumns => {\n return allColumns.map(col => col.id ?? col.accessorKey).filter(id => id != null);\n};","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useState } from \"react\";\nexport function useEditableTable({\n editMode = \"manual\",\n onCellValueChanged,\n onSubmitEdits\n}) {\n const [isActive, setActive] = useState(editMode === \"always\");\n const [cellEdits, setCellEdits] = useState({});\n const [validationErrors, setValidationErrors] = useState(new Map());\n const clearCellValidationError = useCallback(cellId => {\n setValidationErrors(prev => {\n const newErrors = new Map(prev);\n newErrors.delete(cellId);\n return newErrors;\n });\n }, []);\n const handleCellEdit = useCallback((cellId, info) => {\n // If value is changed back to original, remove it from edits\n if (info.newValue === info.oldValue) {\n setCellEdits(prev => {\n const {\n [cellId]: _,\n ...rest\n } = prev;\n return rest;\n });\n } else {\n setCellEdits(prev => ({\n ...prev,\n [cellId]: info\n }));\n }\n onCellValueChanged?.(info);\n }, [onCellValueChanged]);\n const clearEdits = useCallback(() => {\n setCellEdits({});\n setValidationErrors(new Map());\n }, []);\n const handleSubmitEdits = useCallback(async () => {\n const edits = Object.values(cellEdits);\n return onSubmitEdits ? onSubmitEdits(edits) : false;\n }, [cellEdits, onSubmitEdits]);\n const onCellValidationError = useCallback((cellId, error) => {\n setValidationErrors(prev => {\n const newErrors = new Map(prev);\n newErrors.set(cellId, error);\n return newErrors;\n });\n }, []);\n const editModeState = editMode === \"always\" ? {\n type: \"always\",\n isActive: true\n } : {\n type: \"manual\",\n isActive,\n setActive\n };\n return {\n cellEdits,\n onCellEdit: handleCellEdit,\n onSubmitEdits: onSubmitEdits ? handleSubmitEdits : undefined,\n clearEdits,\n editModeState,\n onCellValidationError,\n validationErrors,\n clearCellValidationError\n };\n}","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useOsdkClient } from \"@osdk/react\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { createAsyncCellData } from \"../utils/AsyncCellData.js\";\nexport function useFunctionColumnsData(objectSet, objects, columnDefinitions) {\n const client = useOsdkClient();\n const [data, setData] = useState({});\n const abortControllerRef = useRef(null);\n\n // Function column configurations grouped by unique query definition\n const functionColumnConfigs = useMemo(() => getFunctionColumnConfigs(columnDefinitions), [columnDefinitions]);\n const stableObjects = useStableObjects(objects);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const stableObjectSet = useMemo(() => objectSet, [JSON.stringify(objectSet)]);\n useEffect(() => {\n if (!stableObjects || stableObjects.length === 0 || functionColumnConfigs.length === 0 || !stableObjectSet) {\n return;\n }\n\n // Cancel previous requests\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n const abortController = new AbortController();\n abortControllerRef.current = abortController;\n const executeQueries = async () => {\n if (!stableObjectSet) {\n return;\n }\n initializeFunctionColumnData(functionColumnConfigs, stableObjects, setData);\n\n // Process query results as they complete\n for await (const queryResult of executeQueriesGenerator(functionColumnConfigs, stableObjectSet, client, abortController.signal)) {\n if (abortController.signal.aborted) {\n break;\n }\n const {\n config,\n result,\n error,\n aborted\n } = queryResult;\n if (!aborted) {\n processQueryResult(config, result, error, stableObjects, setData);\n }\n }\n };\n void executeQueries();\n return () => {\n abortController.abort();\n abortControllerRef.current = null;\n };\n }, [functionColumnConfigs, stableObjects, stableObjectSet, client]);\n return data;\n}\nfunction getFunctionColumnConfigs(columnDefinitions) {\n if (!columnDefinitions) return [];\n\n // Group columns by their query definition apiName\n const configsByApiName = new Map();\n columnDefinitions.forEach(colDef => {\n if (colDef.locator.type === \"function\") {\n const locator = colDef.locator;\n const apiName = locator.queryDefinition.apiName;\n const existingConfig = configsByApiName.get(apiName);\n if (existingConfig) {\n // Add this column to the existing config\n existingConfig.columnIds.push({\n columnId: String(locator.id),\n getValue: locator.getValue,\n getKey: locator.getKey\n });\n } else {\n // Create new config\n configsByApiName.set(apiName, {\n queryDefinition: locator.queryDefinition,\n getParams: locator.getFunctionParams,\n columnIds: [{\n columnId: String(locator.id),\n getValue: locator.getValue,\n getKey: locator.getKey\n }]\n });\n }\n }\n });\n return Array.from(configsByApiName.values());\n}\nconst useStableObjects = objects => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useMemo(() => objects, [\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify((objects ?? []).map(item => ({\n $apiName: item.$apiName,\n $primaryKey: item.$primaryKey\n })).sort((a, b) => {\n if (a.$apiName !== b.$apiName) {\n return a.$apiName.localeCompare(b.$apiName);\n }\n return String(a.$primaryKey).localeCompare(String(b.$primaryKey));\n }))]);\n};\n\n/**\n * Generator that yields query results as they complete\n */\nasync function* executeQueriesGenerator(functionColumnConfigs, objectSet, client, signal) {\n // Start all queries in parallel\n const queryPromises = functionColumnConfigs.map(config => createQueryPromise(config, objectSet, client, signal));\n const pendingPromises = [...queryPromises];\n\n // Yield results as they complete using Promise.race\n while (pendingPromises.length > 0) {\n const result = await Promise.race(pendingPromises.map((promise, index) => promise.then(result => ({\n result,\n index\n }))));\n yield result.result;\n\n // Remove the completed promise from the pending list\n void pendingPromises.splice(result.index, 1);\n }\n}\n\n/**\n * Create a promise that executes a function column query\n */\nfunction createQueryPromise(config, objectSet, client, signal) {\n return new Promise(resolve => {\n if (signal?.aborted) {\n resolve({\n config,\n result: null,\n error: null,\n aborted: true\n });\n return;\n }\n const params = config.getParams(objectSet);\n client(config.queryDefinition).executeFunction(params).then(result => {\n // Check if aborted during execution\n if (signal?.aborted) {\n resolve({\n config,\n result: null,\n error: null,\n aborted: true\n });\n } else {\n resolve({\n config,\n result,\n error: null\n });\n }\n }).catch(error => {\n // Check if aborted during error handling\n if (signal?.aborted) {\n resolve({\n config,\n result: null,\n error: null,\n aborted: true\n });\n } else {\n resolve({\n config,\n result: null,\n error: error instanceof Error ? error : new Error(String(error))\n });\n }\n });\n });\n}\n\n/**\n * Initialize function column data with isLoading state for all columns and objects\n */\nfunction initializeFunctionColumnData(functionColumnConfigs, objects, setData) {\n setData(prev => {\n const newData = {\n ...prev\n };\n functionColumnConfigs.forEach(config => {\n config.columnIds.forEach(({\n columnId\n }) => {\n // Initialize column if it doesn't exist\n if (!newData[columnId]) {\n newData[columnId] = {};\n }\n objects.forEach(obj => {\n const key = String(obj.$primaryKey);\n // Only set isLoading state if this object's data doesn't already exist\n if (!newData[columnId][key]) {\n newData[columnId][key] = createAsyncCellData({\n isLoading: true\n });\n }\n });\n });\n });\n return newData;\n });\n}\nfunction processQueryResult(config, result, error, objects, setData) {\n // Batch all updates into a single setState call\n setData(prev => {\n const newData = {\n ...prev\n };\n if (error) {\n // Set error for all objects in all columns that use this query\n config.columnIds.forEach(({\n columnId\n }) => {\n if (!newData[columnId]) {\n newData[columnId] = {};\n }\n objects.forEach(obj => {\n const key = String(obj.$primaryKey);\n newData[columnId][key] = createAsyncCellData({\n error: error instanceof Error ? error : new Error(String(error)),\n isLoading: false\n });\n });\n });\n } else if (result) {\n // Process the FunctionsMap result\n objects.forEach(obj => {\n const key = String(obj.$primaryKey);\n\n // Process each column that uses this query result\n config.columnIds.forEach(({\n columnId,\n getValue,\n getKey: columnGetKey\n }) => {\n if (!newData[columnId]) {\n newData[columnId] = {};\n }\n const customKey = columnGetKey(obj);\n const rawData = result[customKey];\n const cellData = getValue ? getValue(rawData) : rawData;\n newData[columnId][key] = createAsyncCellData({\n data: cellData,\n isLoading: false\n });\n });\n });\n }\n return newData;\n });\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useObjectSet, useOsdkObjects } from \"@osdk/react/experimental\";\nimport { useMemo } from \"react\";\nimport { useFunctionColumnsData } from \"./useFunctionColumnsData.js\";\nconst PAGE_SIZE = 50;\n/**\n * This hook is a wrapper that conditionally uses either useObjectSet or useOsdkObjects\n * based on whether an objectSet prop is provided.\n * It extracts RDP locators from columnDefinitions and applies withProperties\n * to return data containing the derived properties.\n */\nexport function useObjectTableData(objectOrInterfaceType, columnDefinitions, filter, sorting, objectSet, objectSetOptions) {\n const orderBy = useMemo(() => {\n if (!sorting || sorting.length === 0) {\n return undefined;\n }\n return sorting.reduce((acc, sort) => {\n acc[sort.id] = sort.desc ? \"desc\" : \"asc\";\n return acc;\n }, {});\n }, [sorting]);\n\n // Extract derived properties definition\n const withProperties = useMemo(() => {\n if (!columnDefinitions) {\n return;\n }\n const rdpColumns = columnDefinitions.map(colDef => colDef.locator).filter(colLocator => {\n return colLocator.type === \"rdp\";\n });\n if (!rdpColumns.length) {\n return;\n }\n return rdpColumns.reduce((acc, cur) => {\n return {\n ...acc,\n [cur.id]: cur.creator\n };\n }, {});\n }, [columnDefinitions]);\n\n // When objectSet is provided and it's an object type, use useObjectSet. Otherwise, use useOsdkObjects.\n const isObjectType = objectOrInterfaceType.type === \"object\";\n const shouldUseObjectSet = !!objectSet && isObjectType;\n\n // When shouldUseObjectSet is true, we know objectSet is defined\n // and objectOrInterfaceType is an ObjectTypeDefinition\n const objectSetResult = useObjectSet(shouldUseObjectSet ? objectSet : undefined, {\n ...objectSetOptions,\n withProperties: withProperties,\n where: filter,\n orderBy,\n pageSize: PAGE_SIZE,\n enabled: shouldUseObjectSet\n });\n const osdkObjectsResult = useOsdkObjects(objectOrInterfaceType, {\n withProperties,\n pageSize: PAGE_SIZE,\n where: filter,\n orderBy,\n enabled: !shouldUseObjectSet\n });\n\n // Get the result from the appropriate hook\n const baseResult = shouldUseObjectSet ? objectSetResult : osdkObjectsResult;\n\n // Call useFunctionColumnsData to get function column data\n const functionColumnData = useFunctionColumnsData(objectSetResult.objectSet, baseResult.data, columnDefinitions);\n\n // Merge function column data into each object\n const mergedData = useMemo(() => {\n if (!baseResult.data) return baseResult.data;\n return baseResult.data.map(obj => {\n const objKey = String(obj.$primaryKey);\n const functionData = {};\n\n // Collect all function column data for this object\n Object.entries(functionColumnData).forEach(([columnId, columnData]) => {\n if (columnData[objKey]) {\n functionData[columnId] = columnData[objKey];\n }\n });\n\n // Return object with function data merged in\n return {\n ...obj,\n ...functionData\n };\n });\n }, [baseResult.data, functionColumnData]);\n\n // Return the result with merged data\n return {\n ...baseResult,\n data: mergedData\n };\n}","/*\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\nexport const getRowId = row => {\n return getRowIdFromPrimaryKey(row.$primaryKey);\n};\nexport const getRowIdFromPrimaryKey = primaryKey => primaryKey.toString();","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useMemo, useState } from \"react\";\nimport { getRowId, getRowIdFromPrimaryKey } from \"../utils/getRowId.js\";\nexport function useRowSelection({\n selectionMode = \"none\",\n selectedRows,\n isAllSelected: isAllSelectedProp,\n onRowSelection,\n data\n}) {\n // The rowSelectionState in uncontrolled mode\n const [internalRowSelection, setInternalRowSelection] = useState({});\n\n // Used for shift-click behavior in \"multiple\" mode\n const [lastSelectedRowIndex, setLastSelectedRowIndex] = useState(null);\n const isControlled = selectedRows !== undefined;\n const enableRowSelection = selectionMode !== \"none\";\n\n // Row selection state\n // If controlled mode, return the state from selectedRows prop\n // If uncontrolled, return the internalRowSelection state\n const rowSelectionState = useMemo(() => {\n if (!enableRowSelection) return {};\n if (isControlled) {\n const selectedRowIds = isAllSelectedProp ? (data ?? []).map(item => item.$primaryKey) : selectedRows;\n return getRowSelectionState(selectedRowIds);\n }\n return internalRowSelection;\n }, [enableRowSelection, isControlled, selectedRows, isAllSelectedProp, internalRowSelection, data]);\n const selectedCount = Object.values(rowSelectionState).filter(Boolean).length;\n const totalCount = data?.length ?? 0;\n // In controlled mode, use the prop if provided, otherwise calculate based on selected count\n const isAllSelected = isControlled && isAllSelectedProp !== undefined ? isAllSelectedProp : totalCount > 0 && selectedCount === totalCount;\n const hasSelection = isAllSelected || selectedCount > 0;\n const onToggleAll = useCallback(() => {\n if (!enableRowSelection || !data) return;\n const newSelectedRows = isAllSelected ? [] : data.map(item => item.$primaryKey);\n if (!isControlled) {\n setInternalRowSelection(getRowSelectionState(newSelectedRows));\n }\n onRowSelection?.(newSelectedRows, true);\n }, [enableRowSelection, data, isAllSelected, isControlled, onRowSelection]);\n const onToggleRow = useCallback((rowId, rowIndex, isShiftClick = false) => {\n if (!enableRowSelection || !data) return;\n let newSelectedRows = [];\n if (selectionMode === \"single\") {\n newSelectedRows = getSingleSelectionRows({\n rowId,\n rowIndex,\n data,\n rowSelectionState\n });\n } else {\n // Multiple selection mode\n\n // When user does shiftClick but lastSelectedRowIndex is null,\n // it is treated as a normal click in multiple selection\n if (isShiftClick && lastSelectedRowIndex != null) {\n newSelectedRows = getRangeSelectionRows({\n rowId,\n rowIndex,\n data,\n lastSelectedRowIndex,\n rowSelectionState\n });\n setLastSelectedRowIndex(rowIndex);\n } else {\n newSelectedRows = getMultipleSelectionRows({\n rowId,\n rowIndex,\n data,\n rowSelectionState\n });\n // Only update lastSelectedRowIndex if we're selecting (not deselecting)\n if (!isCurrentlySelected({\n rowIndex,\n data,\n rowSelectionState\n })) {\n setLastSelectedRowIndex(rowIndex);\n }\n }\n }\n if (!isControlled) {\n setInternalRowSelection(getRowSelectionState(newSelectedRows));\n }\n onRowSelection?.(newSelectedRows, false);\n }, [enableRowSelection, data, selectionMode, isControlled, onRowSelection, rowSelectionState, lastSelectedRowIndex]);\n return {\n rowSelection: rowSelectionState,\n isAllSelected,\n enableRowSelection,\n hasSelection,\n onToggleAll,\n onToggleRow\n };\n}\nfunction getSingleSelectionRows({\n rowId,\n rowIndex,\n data,\n rowSelectionState\n}) {\n const primaryKey = data[rowIndex].$primaryKey;\n // Toggle row selection in single selection mode\n const newSelectedRows = rowSelectionState[rowId] ? [] : [primaryKey];\n return newSelectedRows;\n}\nfunction getRangeSelectionRows({\n lastSelectedRowIndex,\n rowIndex,\n data,\n rowSelectionState\n}) {\n // This function is only called if lastSelectedRowIndex is not null\n // This condition is added for typechecks only\n if (lastSelectedRowIndex != null) {\n const rowsInRange = getRowsInRange(data, lastSelectedRowIndex, rowIndex);\n const primaryKeysInRange = rowsInRange.map(item => item.$primaryKey);\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n\n // Add all rows in range to selectedRows if not yet selected\n const newSelectedRows = [...currentlySelected];\n primaryKeysInRange.forEach(item => {\n if (!newSelectedRows.includes(item)) {\n newSelectedRows.push(item);\n }\n });\n return newSelectedRows;\n }\n return [];\n}\nfunction isCurrentlySelected({\n rowIndex,\n data,\n rowSelectionState\n}) {\n const primaryKey = data[rowIndex].$primaryKey;\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n return currentlySelected.includes(primaryKey);\n}\nfunction getMultipleSelectionRows({\n rowIndex,\n data,\n rowSelectionState\n}) {\n const primaryKey = data[rowIndex].$primaryKey;\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n // Handles single row toggle in multiple selection mode\n const newSelectedRows = isCurrentlySelected({\n rowIndex,\n data,\n rowSelectionState\n }) ? currentlySelected.filter(i => i !== primaryKey) : [...currentlySelected, primaryKey];\n return newSelectedRows;\n}\n\n/**\n * Builds a range of rows from startIndex to endIndex\n */\nfunction getRowsInRange(data, startIndex, endIndex) {\n const start = Math.min(startIndex, endIndex);\n const end = Math.max(startIndex, endIndex);\n const rows = [];\n for (let i = start; i <= end; i++) {\n const item = data[i];\n if (item) {\n rows.push(item);\n }\n }\n return rows;\n}\n\n/**\n * Converts an array of primary keys to a RowSelectionState object\n */\nfunction getRowSelectionState(primaryKeys) {\n return primaryKeys.reduce((acc, primaryKey) => {\n acc[getRowIdFromPrimaryKey(primaryKey)] = true;\n return acc;\n }, {});\n}\n\n/**\n * Converts from a RowSelectionState object back to an array of primary keys\n */\nfunction getSelectedPrimaryKeys(selectionState, data) {\n return data.filter(item => selectionState[getRowId(item)]).map(item => item.$primaryKey);\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useCallback } from \"react\";\nimport { Checkbox } from \"../base-components/checkbox/Checkbox.js\";\nexport function SelectionHeaderCell({\n isAllSelected,\n hasSelection,\n onToggleAll\n}) {\n return /*#__PURE__*/React.createElement(Checkbox, {\n indeterminate: hasSelection && !isAllSelected,\n checked: isAllSelected,\n onCheckedChange: onToggleAll,\n \"aria-label\": \"Select all rows\"\n });\n}\nexport function SelectionCell({\n row,\n onToggleRow\n}) {\n const handleClick = useCallback(event => {\n // TODO: Create ActionBoundary component\n event.stopPropagation();\n const isShiftClick = event.shiftKey;\n onToggleRow(row.id, row.index, isShiftClick);\n }, [onToggleRow, row.id, row.index]);\n const handleKeyDown = useCallback(event => {\n // TODO: support shift + space\n // It looks like when we handle shift key here, the checkbox gets toggled twice\n if (event.key === \"Enter\") {\n const isShiftClick = event.shiftKey;\n onToggleRow(row.id, row.index, isShiftClick);\n }\n }, [onToggleRow, row.id, row.index]);\n return /*#__PURE__*/React.createElement(\"div\", {\n onClick: handleClick,\n onKeyDown: handleKeyDown\n }, /*#__PURE__*/React.createElement(Checkbox, {\n checked: row.getIsSelected(),\n \"aria-label\": `Select row ${row.index + 1}`\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useMemo, useRef } from \"react\";\nimport { SelectionCell, SelectionHeaderCell } from \"../SelectionCells.js\";\nimport { SELECTION_COLUMN_ID } from \"../utils/constants.js\";\nexport const useSelectionColumn = ({\n selectionMode,\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow\n}) => {\n // TODO: Replace with useLatestRef\n const isAllSelectedRef = useRef(isAllSelected);\n isAllSelectedRef.current = isAllSelected;\n const hasSelectionRef = useRef(hasSelection);\n hasSelectionRef.current = hasSelection;\n const onToggleAllRef = useRef(onToggleAll);\n onToggleAllRef.current = onToggleAll;\n const onToggleRowRef = useRef(onToggleRow);\n onToggleRowRef.current = onToggleRow;\n const selectionColumn = useMemo(() => {\n if (selectionMode === \"none\") return null;\n const colDef = {\n id: SELECTION_COLUMN_ID,\n header: () => selectionMode === \"multiple\" ? /*#__PURE__*/React.createElement(SelectionHeaderCell, {\n isAllSelected: isAllSelectedRef.current,\n hasSelection: hasSelectionRef.current,\n onToggleAll: onToggleAllRef.current\n }) : null,\n cell: ({\n row\n }) => /*#__PURE__*/React.createElement(SelectionCell, {\n row: row,\n onToggleRow: onToggleRowRef.current\n }),\n size: 50,\n minSize: 50,\n maxSize: 50,\n enableSorting: false,\n enableResizing: false,\n enablePinning: false\n };\n return colDef;\n }, [selectionMode]);\n return selectionColumn;\n};","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useMemo, useState } from \"react\";\nexport const useTableSorting = ({\n orderBy,\n defaultOrderBy,\n onOrderByChanged\n}) => {\n // The sorting state in uncontrolled mode\n const [internalSorting, setInternalSorting] = useState(() => defaultOrderBy ? convertOrderByToSortingState(defaultOrderBy) : []);\n const isControlled = orderBy !== undefined;\n\n // Sorting state\n // If controlled mode, return the state from orderBy prop\n // If uncontrolled, return the internalSorting state\n const sortingState = useMemo(() => orderBy ? convertOrderByToSortingState(orderBy) : internalSorting, [orderBy, internalSorting]);\n const onSortingChange = useCallback(updater => {\n const newSorting = typeof updater === \"function\" ? updater(sortingState) : updater;\n\n // Update internal state if uncontrolled\n if (!isControlled) {\n setInternalSorting(newSorting);\n }\n if (onOrderByChanged) {\n const newOrderBy = convertSortingStateToOrderBy(newSorting);\n onOrderByChanged(newOrderBy);\n }\n }, [isControlled, sortingState, onOrderByChanged]);\n return {\n sorting: sortingState,\n onSortingChange\n };\n};\nfunction convertOrderByToSortingState(orderBy) {\n return orderBy.map(({\n property,\n direction\n }) => ({\n id: property,\n desc: direction === \"desc\"\n }));\n}\nfunction convertSortingStateToOrderBy(sorting) {\n return sorting.map(({\n id,\n desc\n }) => ({\n property: id,\n direction: desc ? \"desc\" : \"asc\"\n }));\n}","/*\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 width: max-content;\n min-width: 100%;\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 &[data-focused=\"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","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport { LoadingCell } from \"./LoadingCell.js\";\nimport rowStyles from \"./TableRow.module.css\";\nimport { DEFAULT_COLUMN_WIDTH } from \"./utils/constants.js\";\nexport function LoadingRow({\n headers,\n columnCount,\n translateY,\n rowHeight = 40,\n columnWidth = DEFAULT_COLUMN_WIDTH\n}) {\n return /*#__PURE__*/React.createElement(\"tr\", {\n className: rowStyles.osdkTableRow,\n style: {\n height: `${rowHeight}px`,\n transform: `translateY(${translateY}px)`\n }\n }, /*#__PURE__*/React.createElement(React.Fragment, null, Array.from({\n length: columnCount\n }).map((_, index) => {\n const width = headers.length > index ? headers[index].getSize() : columnWidth;\n return /*#__PURE__*/React.createElement(LoadingCell, {\n key: `loading-cell-${index}`,\n width: width\n });\n })));\n}","/*\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 width: max-content;\n min-width: 100%;\n}\n","/*\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.button {\n padding: calc(var(--osdk-surface-spacing) * 2)\n calc(var(--osdk-surface-spacing) * 4);\n border-radius: var(--osdk-surface-border-radius);\n font-size: var(--osdk-typography-size-body-medium);\n cursor: pointer;\n\n &:focus-visible {\n outline: var(--osdk-focus-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n }\n}\n\n.secondaryButton {\n background-color: var(--osdk-button-secondary-bg);\n border: var(--osdk-surface-border);\n color: var(--osdk-button-secondary-color);\n\n &:hover:not(:disabled) {\n background-color: var(--osdk-button-secondary-bg-hover);\n }\n\n &:active:not(:disabled) {\n background-color: var(--osdk-button-secondary-bg-active);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n.primaryButton {\n background-color: var(--osdk-button-primary-bg);\n border: none;\n color: var(--osdk-button-primary-color);\n\n &:hover:not(:disabled) {\n background-color: var(--osdk-button-primary-bg-hover);\n }\n\n &:active:not(:disabled) {\n background-color: var(--osdk-button-primary-bg-active);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./ActionButton.module.css\";\nexport function ActionButton({\n variant = \"secondary\",\n className,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(Button, _extends({\n className: classNames(styles.button, variant === \"primary\" ? styles.primaryButton : styles.secondaryButton, className)\n }, rest));\n}","/*\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.backdrop {\n position: fixed;\n inset: 0;\n background-color: var(--osdk-dialog-backdrop-bg);\n z-index: var(--osdk-surface-z-index-1);\n}\n\n.popup {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n min-width: var(--osdk-dialog-min-width);\n max-width: var(--osdk-dialog-max-width);\n min-height: var(--osdk-dialog-min-height);\n max-height: var(--osdk-dialog-max-height);\n background-color: var(--osdk-dialog-bg);\n border-radius: var(--osdk-surface-border-radius);\n box-shadow: var(--osdk-dialog-shadow);\n z-index: var(--osdk-surface-z-index-2);\n display: flex;\n flex-direction: column;\n}\n\n.header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: var(--osdk-dialog-header-padding);\n border-bottom: var(--osdk-surface-border);\n}\n\n.title {\n font-size: var(--osdk-dialog-title-font-size);\n font-weight: var(--osdk-dialog-title-font-weight);\n}\n\n.body {\n display: flex;\n padding: var(--osdk-dialog-body-padding);\n overflow-y: auto;\n flex: 1;\n}\n\n.footer {\n display: flex;\n justify-content: flex-end;\n gap: calc(var(--osdk-surface-spacing) * 2);\n padding: var(--osdk-dialog-footer-padding);\n border-top: var(--osdk-surface-border);\n}\n\n.closeButton {\n background: none;\n border: none;\n padding: calc(var(--osdk-surface-spacing) * 0.5);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--osdk-surface-border-radius);\n\n &:hover {\n background-color: var(--osdk-surface-background-color-default-hover);\n }\n\n &:focus-visible {\n outline: var(--osdk-focus-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n }\n}\n\n.closeIcon {\n width: var(--osdk-iconography-size-small);\n height: var(--osdk-iconography-size-small);\n color: var(--osdk-typography-color-muted);\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dialog as BaseUIDialog } from \"@base-ui/react/dialog\";\nimport { Cross } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./Dialog.module.css\";\nexport function Dialog({\n isOpen,\n onOpenChange,\n title,\n children,\n footer,\n className\n}) {\n return /*#__PURE__*/React.createElement(BaseUIDialog.Root, {\n open: isOpen,\n onOpenChange: onOpenChange\n }, /*#__PURE__*/React.createElement(BaseUIDialog.Portal, null, /*#__PURE__*/React.createElement(BaseUIDialog.Backdrop, {\n className: styles.backdrop\n }), /*#__PURE__*/React.createElement(BaseUIDialog.Popup, {\n className: classnames(styles.popup, className)\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.header\n }, /*#__PURE__*/React.createElement(BaseUIDialog.Title, {\n className: styles.title\n }, title), /*#__PURE__*/React.createElement(BaseUIDialog.Close, {\n className: styles.closeButton,\n \"aria-label\": \"Close dialog\"\n }, /*#__PURE__*/React.createElement(Cross, {\n className: styles.closeIcon\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.body\n }, children), footer != null && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.footer\n }, footer))));\n}","/*\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.draggableListContainer {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-draggable-item-gap);\n overflow-y: auto;\n}\n\n.draggableItem {\n display: flex;\n align-items: center;\n gap: var(--osdk-draggable-item-gap);\n padding: var(--osdk-draggable-item-padding);\n background-color: var(--osdk-draggable-item-bg);\n border: var(--osdk-draggable-item-border);\n border-radius: var(--osdk-draggable-item-border-radius);\n width: 100%;\n touch-action: none;\n user-select: none;\n}\n\n.draggableItem[data-dragging=\"true\"] {\n opacity: 0.5;\n}\n\n.dragHandle {\n display: flex;\n cursor: var(--osdk-drag-handle-cursor);\n color: var(--osdk-draggable-item-drag-icon-color);\n\n &:hover {\n color: var(--osdk-draggable-item-drag-icon-color-hover);\n }\n\n &:active {\n cursor: var(--osdk-drag-handle-cursor-active);\n }\n\n &:focus-visible {\n outline: var(--osdk-focus-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n }\n}\n\n.itemContent {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.removeButton {\n background: none;\n border: none;\n padding: var(--osdk-surface-spacing);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--osdk-draggable-item-drag-icon-color);\n border-radius: var(--osdk-surface-border-radius);\n\n &:hover {\n color: var(--osdk-typography-color-danger-rest);\n }\n\n &:active {\n color: var(--osdk-typography-color-danger-rest);\n background: oklch(\n from var(--osdk-surface-background-color-danger-hover) l c h / 0.2\n );\n }\n\n &:focus-visible {\n outline: var(--osdk-focus-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n }\n}\n\n.emptyState {\n padding: calc(var(--osdk-surface-spacing) * 5);\n text-align: center;\n color: var(--osdk-typography-color-muted);\n font-style: italic;\n}\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { DragHandleVertical, SmallCross, Trash } from \"@blueprintjs/icons\";\nimport { closestCenter, DndContext as BaseDndContext, KeyboardSensor, PointerSensor, useSensor, useSensors } from \"@dnd-kit/core\";\nimport { SortableContext, sortableKeyboardCoordinates, useSortable, verticalListSortingStrategy } from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport classNames from \"classnames\";\nimport React, { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport styles from \"./DraggableList.module.css\";\nfunction DraggableListItem({\n item,\n onRemove,\n removeIconVariant = \"trash\",\n renderContent\n}) {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging\n } = useSortable({\n id: item.id\n });\n const style = {\n transform: CSS.Transform.toString(transform),\n transition\n };\n const handleRemove = useCallback(() => {\n onRemove?.(item.id);\n }, [item.id, onRemove]);\n const RemoveIcon = removeIconVariant === \"trash\" ? Trash : SmallCross;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: setNodeRef,\n style: style,\n className: styles.draggableItem,\n \"data-dragging\": isDragging\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: styles.dragHandle,\n \"aria-label\": `Reorder ${item.label}`\n }, attributes, listeners), /*#__PURE__*/React.createElement(DragHandleVertical, {\n className: styles.icon,\n color: \"currentColor\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.itemContent\n }, renderContent ? renderContent(item) : item.label), onRemove && /*#__PURE__*/React.createElement(Button, {\n className: styles.removeButton,\n onClick: handleRemove,\n \"aria-label\": `Remove ${item.label}`\n }, /*#__PURE__*/React.createElement(RemoveIcon, {\n className: styles.icon,\n color: \"currentColor\"\n })));\n}\nexport function DraggableList({\n items,\n onReorder,\n onRemove,\n removeIconVariant = \"cross\",\n renderContent,\n emptyMessage,\n className\n}) {\n const itemIds = useMemo(() => items.map(item => item.id), [items]);\n const sensors = useSensors(useSensor(PointerSensor, {\n activationConstraint: {\n distance: 5\n }\n }), useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates\n }));\n const handleDragEnd = useCallback(event => {\n const {\n active,\n over\n } = event;\n if (over && active.id !== over.id) {\n const oldIndex = items.findIndex(item => item.id === active.id);\n const newIndex = items.findIndex(item => item.id === over.id);\n onReorder(oldIndex, newIndex);\n }\n }, [items, onReorder]);\n const containerRef = useRef(null);\n useKeyboardEvents(containerRef);\n\n // TODO: Revert when @types/react is fixed\n const DndContext = BaseDndContext;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: containerRef,\n className: classNames(styles.draggableListContainer, className)\n }, /*#__PURE__*/React.createElement(DndContext, {\n sensors: sensors,\n collisionDetection: closestCenter,\n onDragEnd: handleDragEnd\n }, /*#__PURE__*/React.createElement(SortableContext, {\n items: itemIds,\n strategy: verticalListSortingStrategy\n }, items.map(item => /*#__PURE__*/React.createElement(DraggableListItem, {\n key: item.id,\n item: item,\n onRemove: onRemove,\n removeIconVariant: removeIconVariant,\n renderContent: renderContent\n })))), items.length === 0 && emptyMessage && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.emptyState\n }, emptyMessage));\n}\nconst useKeyboardEvents = containerRef => {\n // Base UI's DialogPopup calls stopPropagation on arrow key events, which\n // prevents them from reaching @dnd-kit's document-level KeyboardSensor\n // listener. We use a native capture-phase listener to intercept arrow keys\n // before the dialog can swallow them, and re-dispatch them on the document\n // so @dnd-kit can process keyboard-driven reordering.\n useEffect(() => {\n const el = containerRef.current;\n if (el == null) {\n return;\n }\n const ARROW_KEYS = new Set([\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"]);\n function handleCapture(event) {\n if (!ARROW_KEYS.has(event.key)) {\n return;\n }\n\n // Only intercept when a drag is active (an item has [data-dragging=\"true\"])\n if (el.querySelector(\"[data-dragging=\\\"true\\\"]\") == null) {\n return;\n }\n event.stopPropagation();\n document.dispatchEvent(new KeyboardEvent(\"keydown\", {\n key: event.key,\n code: event.code,\n bubbles: true\n }));\n }\n el.addEventListener(\"keydown\", handleCapture, true);\n return () => el.removeEventListener(\"keydown\", handleCapture, true);\n }, [containerRef]);\n};","/*\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.searchBar {\n display: flex;\n align-items: center;\n gap: var(--osdk-surface-spacing);\n padding: var(--osdk-surface-spacing) calc(var(--osdk-surface-spacing) * 1.5);\n border: var(--osdk-surface-border);\n border-radius: var(--osdk-surface-border-radius);\n\n &:focus-within {\n outline: var(--osdk-focus-outline);\n outline-offset: calc(-1 * var(--osdk-focus-visible-outline-offset));\n }\n}\n\n.searchIcon {\n width: var(--osdk-iconography-size-small);\n height: var(--osdk-iconography-size-small);\n color: var(--osdk-typography-color-muted);\n pointer-events: none;\n flex-shrink: 0;\n}\n\n.searchInput {\n border: none;\n width: 100%;\n padding: var(--osdk-surface-spacing) 0;\n font-size: var(--osdk-typography-size-body-medium);\n background: transparent;\n\n &:focus {\n outline: none;\n }\n\n &::placeholder {\n color: var(--osdk-typography-color-muted);\n }\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Input } from \"@base-ui/react/input\";\nimport { Search } from \"@blueprintjs/icons\";\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./SearchBar.module.css\";\nexport function SearchBar({\n value,\n onChange,\n placeholder = \"Search\",\n \"aria-label\": ariaLabel,\n className,\n onKeyDown\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.searchBar, className)\n }, /*#__PURE__*/React.createElement(Search, {\n className: styles.searchIcon\n }), /*#__PURE__*/React.createElement(Input, {\n type: \"text\",\n placeholder: placeholder,\n \"aria-label\": ariaLabel ?? placeholder,\n value: value,\n onChange: onChange,\n className: styles.searchInput,\n onKeyDown: onKeyDown\n }));\n}","/*\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.title {\n display: flex;\n align-items: center;\n gap: var(--osdk-surface-spacing);\n}\n\n/* Override dialog styling */\n.columnConfigDialog {\n --osdk-dialog-min-width: var(--osdk-table-column-config-dialog-min-width);\n --osdk-dialog-min-height: var(--osdk-table-column-config-dialog-min-height);\n --osdk-dialog-body-padding: 0;\n}\n\n.dialogLayout {\n display: flex;\n flex-direction: row;\n gap: 0;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n.visibleColumnsContainer {\n flex: 1.5;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n padding: calc(var(--osdk-surface-spacing) * 5);\n background: var(--osdk-table-column-config-visible-columns-bg);\n border-right: 1px solid var(--osdk-surface-border-color-default);\n}\n\n.availableColumnsContainer {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n padding: calc(var(--osdk-surface-spacing) * 5)\n calc(var(--osdk-surface-spacing) * 3);\n}\n\n.sectionHeader {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: calc(var(--osdk-surface-spacing) * 5);\n}\n\n.sectionTitle {\n display: flex;\n justify-content: flex-start;\n align-items: flex-start;\n font-size: var(--osdk-typography-size-body-medium);\n font-weight: var(--osdk-typography-weight-bold);\n color: var(--osdk-typography-color-muted);\n flex-shrink: 0;\n gap: var(--osdk-surface-spacing);\n}\n\n.countTag {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: var(--osdk-custom-color-gray-3);\n padding: calc(var(--osdk-surface-spacing) / 2)\n calc(var(--osdk-surface-spacing) * 1.5);\n border-radius: var(--osdk-surface-border-radius);\n font-size: var(--osdk-typography-size-body-small);\n font-weight: var(--osdk-typography-weight-default);\n color: var(--osdk-typography-color-default-rest);\n}\n\n.sectionHint {\n font-size: var(--osdk-typography-size-body-small);\n color: var(--osdk-typography-color-muted);\n}\n\n.columnList {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n\n.searchContainer {\n margin-bottom: calc(var(--osdk-surface-spacing) * 2);\n flex-shrink: 0;\n}\n\n.propertiesList {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.categoryHeader {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n width: 100%;\n padding: calc(var(--osdk-surface-spacing) * 2)\n calc(var(--osdk-surface-spacing) * 3);\n background: none;\n border: none;\n margin: 0;\n gap: calc(var(--osdk-surface-spacing) * 3);\n flex-shrink: 0;\n}\n\n.categoryTrigger {\n display: flex;\n align-items: center;\n flex: 1;\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n\n &:focus-visible {\n outline: var(--osdk-focus-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n }\n}\n\n.categoryTitle {\n flex: 1;\n color: var(--osdk-typography-color-muted);\n font-size: var(--osdk-typography-size-body-small);\n font-weight: var(--osdk-typography-weight-bold);\n text-align: left;\n}\n\n.categoryCount {\n color: var(--osdk-typography-color-muted);\n font-size: var(--osdk-typography-size-body-small);\n margin-left: var(--osdk-surface-spacing);\n}\n\n.caretIcon {\n color: var(--osdk-typography-color-muted);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.categoryTrigger[data-panel-open] .caretIcon {\n transform: rotate(180deg);\n}\n\n.checkbox {\n width: var(--osdk-checkbox-icon-size);\n height: var(--osdk-checkbox-icon-size);\n}\n\n.propertyList {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n\n.propertyItem {\n display: flex;\n align-items: center;\n flex-direction: row;\n width: 100%;\n gap: calc(var(--osdk-surface-spacing) * 3);\n padding: calc(var(--osdk-surface-spacing) * 2)\n calc(var(--osdk-surface-spacing) * 3);\n background: none;\n border: none;\n cursor: pointer;\n text-align: left;\n border-radius: var(--osdk-surface-border-radius);\n\n &:hover {\n background-color: var(--osdk-surface-background-color-default-hover);\n }\n}\n\n.checkboxIndicator {\n color: var(--osdk-intent-primary-foreground);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.propertyName {\n text-align: left;\n flex: 1;\n font-size: var(--osdk-typography-size-body-medium);\n font-weight: 400;\n color: var(--osdk-typography-color-default-rest);\n padding: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n background: none;\n border: none;\n &:focus-visible {\n outline: var(--osdk-focus-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n }\n}\n\n.infoIcon {\n color: var(--osdk-typography-color-muted);\n flex-shrink: 0;\n width: calc(var(--osdk-checkbox-icon-size) * 0.75);\n height: calc(var(--osdk-checkbox-icon-size) * 0.75);\n}\n\n.emptyState {\n padding: calc(var(--osdk-surface-spacing) * 5);\n text-align: center;\n color: var(--osdk-typography-color-muted);\n font-style: italic;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Collapsible } from \"@base-ui/react/collapsible\";\nimport { CaretDown, Cog, SmallInfoSign } from \"@blueprintjs/icons\";\nimport { arrayMove } from \"@dnd-kit/sortable\";\nimport classNames from \"classnames\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { ActionButton } from \"../base-components/action-button/ActionButton.js\";\nimport { Checkbox } from \"../base-components/checkbox/Checkbox.js\";\nimport { Dialog } from \"../base-components/dialog/Dialog.js\";\nimport { DraggableList } from \"../base-components/draggable-list/DraggableList.js\";\nimport { SearchBar } from \"../base-components/search-bar/SearchBar.js\";\nimport styles from \"./ColumnConfigDialog.module.css\";\nexport function ColumnConfigDialog({\n isOpen,\n onClose,\n columnOptions,\n currentVisibility,\n currentColumnOrder,\n onApply,\n isValidConfig\n}) {\n const [visibleColumns, setVisibleColumns] = useState([]);\n const [searchQuery, setSearchQuery] = useState(\"\");\n const allColumns = useMemo(() => {\n return columnOptions.map(opt => {\n const isVisible = currentVisibility ? currentVisibility[opt.id] : false;\n return {\n id: opt.id,\n label: opt.name,\n isVisible\n };\n });\n }, [columnOptions, currentVisibility]);\n\n // Sync local state with prop when dialog is opened\n useEffect(() => {\n if (isOpen) {\n const visibleCols = allColumns.filter(col => col.isVisible);\n\n // Sort by current column order if available\n if (!!currentColumnOrder?.length) {\n visibleCols.sort((a, b) => {\n const indexA = currentColumnOrder.indexOf(a.id);\n const indexB = currentColumnOrder.indexOf(b.id);\n // If not in order array, put at end\n const orderA = indexA === -1 ? Infinity : indexA;\n const orderB = indexB === -1 ? Infinity : indexB;\n return orderA - orderB;\n });\n }\n setVisibleColumns(visibleCols);\n setSearchQuery(\"\");\n }\n }, [isOpen, allColumns, currentColumnOrder]);\n const handleApply = useCallback(() => {\n onApply(getColumnConfig(allColumns, visibleColumns));\n onClose();\n }, [allColumns, visibleColumns, onApply, onClose]);\n\n // If no condition provided, default to valid\n const isValid = isValidConfig ? isValidConfig(getColumnConfig(allColumns, visibleColumns)) : true;\n const isApplyDisabled = visibleColumns.length === 0 || !isValid;\n const handleReorderColumns = useCallback((fromIndex, toIndex) => {\n setVisibleColumns(items => arrayMove(items, fromIndex, toIndex));\n }, []);\n const handleRemoveColumn = useCallback(columnId => {\n setVisibleColumns(prev => prev.filter(col => col.id !== columnId));\n }, []);\n const handleToggleColumn = useCallback(column => {\n setVisibleColumns(prev => {\n const isCurrentlyVisible = prev.some(col => col.id === column.id);\n if (isCurrentlyVisible) {\n return prev.filter(col => col.id !== column.id);\n } else {\n return [...prev, column];\n }\n });\n }, []);\n const handleSearchChange = useCallback(event => {\n setSearchQuery(event.target.value);\n }, []);\n const handleSelectAll = useCallback(columns => {\n setVisibleColumns(prev => {\n const allSelected = columns.every(col => prev.some(v => v.id === col.id));\n if (allSelected) {\n // Deselect all filtered columns\n return prev.filter(v => !columns.some(col => col.id === v.id));\n } else {\n // Select all filtered columns that aren't already selected\n const newColumns = columns.filter(col => !prev.some(v => v.id === col.id));\n return [...prev, ...newColumns];\n }\n });\n }, []);\n const filteredAvailableColumns = useMemo(() => {\n const query = searchQuery.toLowerCase().trim();\n if (!query) {\n return allColumns;\n }\n return allColumns.filter(col => (col.label?.toLowerCase().includes(query) ?? false) || col.id.toLowerCase().includes(query));\n }, [allColumns, searchQuery]);\n const footer = useMemo(() => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ActionButton, {\n onClick: onClose\n }, \"Cancel\"), /*#__PURE__*/React.createElement(ActionButton, {\n variant: \"primary\",\n onClick: handleApply,\n disabled: isApplyDisabled\n }, \"Apply\")), [onClose, handleApply, isApplyDisabled]);\n return /*#__PURE__*/React.createElement(Dialog, {\n isOpen: isOpen,\n onOpenChange: onClose,\n title: DialogTitle,\n footer: footer,\n className: styles.columnConfigDialog\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.dialogLayout\n }, /*#__PURE__*/React.createElement(VisibleColumnsList, {\n columns: visibleColumns,\n onReorder: handleReorderColumns,\n onRemove: handleRemoveColumn\n }), /*#__PURE__*/React.createElement(AvailableColumnsList, {\n visibleColumns: visibleColumns,\n searchQuery: searchQuery,\n onSearchChange: handleSearchChange,\n onToggleColumn: handleToggleColumn,\n onSelectAll: handleSelectAll,\n filteredColumns: filteredAvailableColumns\n })));\n}\nconst DialogTitle = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.title\n}, /*#__PURE__*/React.createElement(Cog, null), \"Configure Table Columns\");\nconst getColumnConfig = (allColumns, visibleColumns) => {\n const hiddenColumns = allColumns.filter(col => !visibleColumns.some(v => v.id === col.id));\n return [...visibleColumns.map(col => ({\n columnId: col.id,\n isVisible: true\n })), ...hiddenColumns.map(col => ({\n columnId: col.id,\n isVisible: false\n }))];\n};\nfunction VisibleColumnsList({\n columns,\n onReorder,\n onRemove\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.visibleColumnsContainer\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.sectionHeader\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.sectionTitle\n }, /*#__PURE__*/React.createElement(\"span\", null, \"Visible Columns\"), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.countTag\n }, columns.length)), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.sectionHint\n }, \"Drag to reorder\")), /*#__PURE__*/React.createElement(DraggableList, {\n items: columns,\n onReorder: onReorder,\n onRemove: onRemove,\n removeIconVariant: \"trash\",\n emptyMessage: \"No visible columns\",\n className: styles.columnList\n }));\n}\nfunction AvailableColumnsList({\n visibleColumns,\n searchQuery,\n onSearchChange,\n onToggleColumn,\n onSelectAll,\n filteredColumns\n}) {\n const selectedCount = visibleColumns.length;\n const totalCount = filteredColumns.length;\n const allFilteredSelected = filteredColumns.every(col => visibleColumns.some(v => v.id === col.id));\n const someFilteredSelected = filteredColumns.some(col => visibleColumns.some(v => v.id === col.id));\n const handleSelectAllClick = useCallback(() => {\n onSelectAll(filteredColumns);\n }, [filteredColumns, onSelectAll]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.availableColumnsContainer\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.sectionHeader, styles.sectionTitle)\n }, \"Add or Remove Columns\"), /*#__PURE__*/React.createElement(SearchBar, {\n value: searchQuery,\n onChange: onSearchChange,\n placeholder: \"Search...\",\n \"aria-label\": \"Search available columns\",\n className: styles.searchContainer\n }), /*#__PURE__*/React.createElement(Collapsible.Root, {\n defaultOpen: true,\n className: styles.propertiesList\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.categoryHeader\n }, /*#__PURE__*/React.createElement(Checkbox, {\n checked: allFilteredSelected,\n indeterminate: someFilteredSelected && !allFilteredSelected,\n onCheckedChange: handleSelectAllClick,\n className: styles.checkbox\n }), /*#__PURE__*/React.createElement(Collapsible.Trigger, {\n className: styles.categoryTrigger\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.categoryTitle\n }, \"All Columns\"), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.categoryCount\n }, selectedCount, \"/\", totalCount), /*#__PURE__*/React.createElement(CaretDown, {\n className: styles.caretIcon\n }))), /*#__PURE__*/React.createElement(Collapsible.Panel, {\n className: styles.propertyList\n }, filteredColumns.length === 0 ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.emptyState\n }, \"No matching columns found\") : filteredColumns.map(column => /*#__PURE__*/React.createElement(PropertyItem, {\n key: column.id,\n column: column,\n isSelected: visibleColumns.some(v => v.id === column.id),\n onToggle: onToggleColumn\n })))));\n}\nfunction PropertyItem({\n column,\n isSelected,\n onToggle,\n showInfoIcon = false\n}) {\n const handleClick = useCallback(() => {\n onToggle(column);\n }, [onToggle, column]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.propertyItem\n }, /*#__PURE__*/React.createElement(Checkbox, {\n checked: isSelected,\n onCheckedChange: handleClick,\n className: styles.checkbox\n }), /*#__PURE__*/React.createElement(Button, {\n onClick: handleClick,\n className: styles.propertyName\n }, column.label), showInfoIcon && /*#__PURE__*/React.createElement(SmallInfoSign, {\n className: styles.infoIcon\n }));\n}","/*\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.title {\n display: flex;\n align-items: center;\n gap: var(--osdk-surface-spacing);\n}\n\n.sortColumnsList {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-surface-spacing);\n flex: 1;\n justify-content: space-between;\n overflow-x: hidden;\n}\n\n.sortableList {\n flex: 1;\n}\n\n.selectedColumnsContainer {\n margin-bottom: calc(var(--osdk-surface-spacing) * 2);\n}\n\n.sortColumnItem {\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-width: 0;\n width: 100%;\n}\n\n.sortColumnName {\n min-width: 0;\n flex-shrink: 1;\n}\n\n.sortDirectionButton {\n flex-shrink: 0;\n background: none;\n border: none;\n padding: var(--osdk-surface-spacing);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--osdk-surface-border-radius);\n\n &:hover {\n background-color: var(--osdk-button-secondary-bg-hover);\n }\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n outline: var(--osdk-focus-outline);\n outline-offset: calc(-1 * var(--osdk-focus-visible-outline-offset));\n }\n}\n\n.sortIcon {\n color: var(--osdk-typography-color-muted);\n}\n\n.addColumnButton {\n display: flex;\n align-items: center;\n gap: calc(var(--osdk-surface-spacing) * 2);\n width: 100%;\n padding: calc(var(--osdk-surface-spacing) * 2)\n calc(var(--osdk-surface-spacing) * 3);\n background-color: var(--osdk-button-secondary-bg);\n border: var(--osdk-surface-border);\n border-radius: var(--osdk-surface-border-radius);\n cursor: pointer;\n color: var(--osdk-button-secondary-color);\n margin-top: calc(var(--osdk-surface-spacing) * 2);\n\n &:hover:not(:disabled) {\n background-color: var(--osdk-button-secondary-bg-hover);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &:focus-visible {\n outline: var(--osdk-focus-outline);\n outline-offset: calc(-1 * var(--osdk-focus-visible-outline-offset));\n }\n}\n\n.addIcon {\n width: var(--osdk-iconography-size-small);\n height: var(--osdk-iconography-size-small);\n color: currentColor;\n}\n\n.addColumnText {\n flex: 1;\n text-align: left;\n}\n\n.menuPositioner {\n z-index: var(--osdk-surface-z-index-2);\n}\n\n.dropdownMenu {\n background-color: var(--osdk-surface-background-color-default-rest);\n border: var(--osdk-surface-border);\n border-radius: var(--osdk-surface-border-radius);\n box-shadow: var(--osdk-surface-shadow-2);\n max-height: calc(var(--osdk-dialog-max-height) * 0.5);\n overflow-y: auto;\n width: var(--anchor-width);\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n outline: var(--osdk-focus-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n }\n}\n\n.menuSearchContainer {\n border: none;\n border-bottom: var(--osdk-surface-border);\n border-radius: 0;\n position: sticky;\n top: 0;\n background-color: var(--osdk-surface-background-color-default-rest);\n}\n\n.menuEmptyState {\n padding: calc(var(--osdk-surface-spacing) * 3);\n text-align: center;\n color: var(--osdk-typography-color-muted);\n font-size: var(--osdk-typography-size-body-medium);\n}\n\n.dropdownItem {\n display: block;\n width: 100%;\n text-align: left;\n padding: calc(var(--osdk-surface-spacing) * 2)\n calc(var(--osdk-surface-spacing) * 3);\n background: none;\n border: none;\n cursor: pointer;\n font-size: var(--osdk-typography-size-body-medium);\n color: var(--osdk-typography-color-default-rest);\n\n &:hover {\n background-color: var(--osdk-surface-background-color-default-hover);\n }\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n outline: var(--osdk-focus-outline);\n outline-offset: calc(-1 * var(--osdk-focus-visible-outline-offset));\n }\n}\n\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useCallback } from \"react\";\nimport { DraggableList } from \"../base-components/draggable-list/DraggableList.js\";\nexport function SortableItemsList({\n items,\n onReorder,\n onRemove,\n className\n}) {\n const renderContent = useCallback(item => item.content, []);\n return /*#__PURE__*/React.createElement(DraggableList, {\n items: items,\n onReorder: onReorder,\n onRemove: onRemove,\n removeIconVariant: \"cross\",\n renderContent: renderContent,\n className: className\n });\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Menu } from \"@base-ui/react/menu\";\nimport { Add, CaretDown, Cog, SortAlphabetical, SortAlphabeticalDesc } from \"@blueprintjs/icons\";\nimport { arrayMove } from \"@dnd-kit/sortable\";\nimport classNames from \"classnames\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { ActionButton } from \"../base-components/action-button/ActionButton.js\";\nimport { Dialog } from \"../base-components/dialog/Dialog.js\";\nimport { SearchBar } from \"../base-components/search-bar/SearchBar.js\";\nimport styles from \"./MultiColumnSortDialog.module.css\";\nimport { SortableItemsList } from \"./SortableItemsList.js\";\nexport function MultiColumnSortDialog({\n isOpen,\n onClose,\n onApply,\n currentSorting,\n columnOptions\n}) {\n const [selectedSortColumns, setSelectedSortColumns] = useState([]);\n const [menuSearchQuery, setMenuSearchQuery] = useState(\"\");\n\n // Initialize selected sort columns from current sorting\n useEffect(() => {\n if (isOpen) {\n const selectedColumns = [];\n for (const sort of currentSorting) {\n const column = columnOptions.find(col => col.id === sort.id);\n if (column) {\n selectedColumns.push({\n ...column,\n direction: sort.desc ? \"desc\" : \"asc\"\n });\n }\n }\n setSelectedSortColumns(selectedColumns);\n }\n }, [isOpen, currentSorting, columnOptions]);\n const handleAddColumn = useCallback(column => {\n setSelectedSortColumns(prev => [...prev, {\n ...column,\n direction: \"asc\"\n }]);\n }, []);\n const handleRemoveSortColumn = useCallback(id => {\n setSelectedSortColumns(prev => prev.filter(item => item.id !== id));\n }, []);\n const handleReorderSortColumns = useCallback((fromIndex, toIndex) => {\n setSelectedSortColumns(items => arrayMove(items, fromIndex, toIndex));\n }, []);\n const handleToggleSortDirection = useCallback(id => {\n setSelectedSortColumns(prev => prev.map(item => item.id === id ? {\n ...item,\n direction: item.direction === \"asc\" ? \"desc\" : \"asc\"\n } : item));\n }, []);\n const handleApply = useCallback(() => {\n const sortingState = selectedSortColumns.map(col => ({\n id: col.id,\n desc: col.direction === \"desc\"\n }));\n onApply(sortingState);\n onClose();\n }, [selectedSortColumns, onApply, onClose]);\n const availableColumns = useMemo(() => columnOptions.filter(col => col.canSort && !selectedSortColumns.some(selected => selected.id === col.id)), [columnOptions, selectedSortColumns]);\n const filteredAvailableColumns = useMemo(() => {\n const query = menuSearchQuery.toLowerCase().trim();\n if (!query) {\n return availableColumns;\n }\n return availableColumns.filter(col => col.name.toLowerCase().includes(query));\n }, [availableColumns, menuSearchQuery]);\n const handleMenuSearchChange = useCallback(event => {\n setMenuSearchQuery(event.target.value);\n }, []);\n const handleMenuOpenChange = useCallback(open => {\n if (open) {\n setMenuSearchQuery(\"\");\n }\n }, []);\n const sortableItems = useMemo(() => {\n return selectedSortColumns.map(item => ({\n id: item.id,\n label: item.name,\n content: /*#__PURE__*/React.createElement(\"div\", {\n className: styles.sortColumnItem\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(styles.sortColumnName, styles.truncate)\n }, item.name), /*#__PURE__*/React.createElement(Button, {\n className: styles.sortDirectionButton,\n onClick: () => handleToggleSortDirection(item.id),\n \"aria-label\": `Toggle sort direction for ${item.name}`\n }, item.direction === \"asc\" ? /*#__PURE__*/React.createElement(SortAlphabetical, {\n className: styles.sortIcon\n }) : /*#__PURE__*/React.createElement(SortAlphabeticalDesc, {\n className: styles.sortIcon\n })))\n }));\n }, [selectedSortColumns, handleToggleSortDirection]);\n const footer = useMemo(() => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ActionButton, {\n onClick: onClose\n }, \"Cancel\"), /*#__PURE__*/React.createElement(ActionButton, {\n variant: \"primary\",\n onClick: handleApply\n }, \"Apply\")), [handleApply, onClose]);\n const handleKeyDown = useCallback(event => {\n event.stopPropagation();\n }, []);\n return /*#__PURE__*/React.createElement(Dialog, {\n isOpen: isOpen,\n onOpenChange: onClose,\n title: DialogTitle,\n footer: footer\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.sortColumnsList\n }, /*#__PURE__*/React.createElement(SortableItemsList, {\n items: sortableItems,\n onReorder: handleReorderSortColumns,\n onRemove: handleRemoveSortColumn,\n className: styles.sortableList\n }), /*#__PURE__*/React.createElement(Menu.Root, {\n onOpenChange: handleMenuOpenChange\n }, /*#__PURE__*/React.createElement(Menu.Trigger, {\n className: styles.addColumnButton,\n disabled: availableColumns.length === 0,\n \"aria-label\": \"Add column to sort\"\n }, /*#__PURE__*/React.createElement(Add, {\n className: styles.addIcon\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.addColumnText\n }, \"Add Column to Sort\"), /*#__PURE__*/React.createElement(CaretDown, {\n color: \"currentColor\"\n })), /*#__PURE__*/React.createElement(Menu.Portal, null, /*#__PURE__*/React.createElement(Menu.Positioner, {\n className: styles.menuPositioner,\n sideOffset: 4\n }, /*#__PURE__*/React.createElement(Menu.Popup, {\n className: styles.dropdownMenu\n }, /*#__PURE__*/React.createElement(SearchBar, {\n value: menuSearchQuery,\n onChange: handleMenuSearchChange,\n placeholder: \"Search columns\",\n \"aria-label\": \"Search columns to sort\",\n className: styles.menuSearchContainer,\n onKeyDown: handleKeyDown\n }), filteredAvailableColumns.map(column => /*#__PURE__*/React.createElement(AvailableColumnMenuItem, {\n key: column.id,\n column: column,\n onAddColumn: handleAddColumn\n })), filteredAvailableColumns.length === 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.menuEmptyState\n }, \"No matching columns\")))))));\n}\nconst DialogTitle = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.title\n}, /*#__PURE__*/React.createElement(Cog, null), \"Sort on Multiple Columns\");\nfunction AvailableColumnMenuItem({\n column,\n onAddColumn\n}) {\n const onClick = useCallback(() => onAddColumn(column), [onAddColumn, column]);\n return /*#__PURE__*/React.createElement(Menu.Item, {\n className: classNames(styles.dropdownItem, styles.truncate),\n onClick: onClick\n }, column.name);\n}","/*\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 width: max-content;\n min-width: 100%;\n height: var(--osdk-table-header-height);\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 width: max-content;\n min-width: 100%;\n border-bottom: var(--osdk-table-border);\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 background-color: var(--osdk-table-header-bg);\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.osdkTableSelectionHeaderCell {\n justify-content: center;\n padding: 0;\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-table-resizer-color-hover);\n }\n\n &:active {\n background: var(--osdk-table-resizer-color-active);\n }\n}\n\n.osdkLoadingHeaderCell {\n height: var(--osdk-table-header-fontSize);\n flex: 1;\n}\n","/*\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","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { flexRender } from \"@tanstack/react-table\";\nimport React from \"react\";\nimport styles from \"./TableHeaderContent.module.css\";\nexport function TableHeaderContent({\n header\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.osdkHeaderContent\n }, flexRender(header.column.columnDef.header, header.getContext()));\n}","/*\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: calc(var(--osdk-surface-spacing) * 2);\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.osdkHeaderText {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n line-clamp: 3;\n overflow: hidden;\n text-overflow: ellipsis;\n flex-grow: 1;\n}\n\n.osdkHeaderPopoverTrigger {\n padding: var(--osdk-table-header-menu-padding);\n flex-shrink: 0;\n flex-grow: 0;\n background-color: var(--osdk-table-header-menu-bg);\n border: var(--osdk-table-header-menu-border);\n border-radius: var(--osdk-surface-border-radius);\n color: var(--osdk-table-header-menu-color);\n cursor: pointer;\n user-select: none;\n\n &:hover {\n background-color: var(--osdk-table-header-menu-bg-hover);\n }\n\n &[data-popup-open] {\n background-color: var(--osdk-table-header-menu-bg-active);\n color: var(--osdk-table-header-menu-color-active);\n }\n\n &:focus-visible {\n outline: var(--osdk-focus-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);\n background-color: var(--osdk-surface-background-color-default-rest);\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}\n\n.osdkHeaderMenuItem {\n justify-content: flex-start;\n padding: var(--osdk-surface-spacing) calc(var(--osdk-surface-spacing) * 2);\n cursor: pointer;\n\n &:hover {\n background-color: var(--osdk-surface-background-color-default-hover);\n border-radius: var(--osdk-surface-border-radius);\n }\n\n &:focus-visible {\n outline: var(--osdk-focus-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n }\n}\n\n.osdkHeaderMenuItem .osdkHeaderActiveMenuItem {\n background-color: var(--osdk-intent-primary-rest);\n color: var(--osdk-intent-primary-foreground);\n\n &:hover {\n background-color: var(--osdk-intent-primary-hover);\n }\n\n &:active {\n background-color: var(--osdk-intent-primary-active);\n }\n}\n\n.sortIndex {\n font-size: var(--osdk-typography-size-body-x-small);\n margin-left: var(--osdk-surface-spacing);\n color: var(--osdk-typography-color-muted);\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Menu } from \"@base-ui/react/menu\";\nimport { ChevronDown, Pin, Remove, Settings, Sort, SortAlphabetical, SortAlphabeticalDesc, Unpin, VerticalDistribution } from \"@blueprintjs/icons\";\nimport classNames from \"classnames\";\nimport React, { useCallback, useState } from \"react\";\nimport { TableHeaderContent } from \"./TableHeaderContent.js\";\nimport styles from \"./TableHeaderWithPopover.module.css\";\nfunction HeaderMenuItem({\n onClick,\n icon: Icon,\n label,\n active = false\n}) {\n return /*#__PURE__*/React.createElement(Menu.Item, {\n closeOnClick: true,\n className: classNames(styles.osdkCenterContainer, styles.osdkContentGap, styles.osdkHeaderMenuItem, active && styles.osdkHeaderActiveMenuItem),\n onClick: onClick\n }, /*#__PURE__*/React.createElement(Icon, {\n className: styles.osdkHeaderIcon,\n color: \"currentColor\"\n }), /*#__PURE__*/React.createElement(\"span\", null, label));\n}\nexport function TableHeaderWithPopover({\n header,\n table,\n isColumnPinned,\n onResetSize,\n columnOptions,\n featureFlags,\n onOpenColumnConfig,\n onOpenMultiSort\n}) {\n const {\n showSortingItems = false,\n showPinningItems = false,\n showResizeItem = false,\n showConfigItem = false\n } = featureFlags ?? {};\n const {\n setColumnPinning,\n setSorting\n } = table;\n const currentSorting = table.getState().sorting;\n const [isOpen, setIsOpen] = useState(false);\n const handlePinLeft = useCallback(() => {\n setColumnPinning(prev => {\n return {\n left: [...(prev.left || []), header.column.id],\n right: prev.right?.filter(id => id !== header.column.id) || []\n };\n });\n }, [header.column.id, setColumnPinning]);\n const handleUnpin = useCallback(() => {\n setColumnPinning(prev => {\n return {\n left: prev.left?.filter(id => id !== header.column.id) || [],\n right: prev.right?.filter(id => id !== header.column.id) || []\n };\n });\n }, [header.column.id, setColumnPinning]);\n const handleSortAscending = useCallback(() => {\n header.column.toggleSorting(false);\n setSorting?.([{\n id: header.column.id,\n desc: false\n }]);\n }, [header.column, setSorting]);\n const handleSortDescending = useCallback(() => {\n header.column.toggleSorting(true);\n setSorting?.([{\n id: header.column.id,\n desc: true\n }]);\n }, [header.column, setSorting]);\n const handleClearAllSorts = useCallback(() => {\n header.column.clearSorting();\n setSorting?.([]);\n }, [header.column, setSorting]);\n const handleResetSize = useCallback(() => {\n header.column.resetSize();\n if (onResetSize) {\n onResetSize();\n }\n }, [header.column, onResetSize]);\n const handleInteraction = useCallback(e => {\n e.preventDefault();\n setIsOpen(prev => !prev);\n }, []);\n const handleOpenColumnConfig = useCallback(() => {\n onOpenColumnConfig?.();\n setIsOpen(false);\n }, [onOpenColumnConfig]);\n const handleOpenMultiSort = useCallback(() => {\n onOpenMultiSort?.();\n setIsOpen(false);\n }, [onOpenMultiSort]);\n const isSorted = header.column.getIsSorted();\n const isSortable = header.column.getCanSort();\n const sortIndex = currentSorting?.findIndex(s => s.id === header.column.id) ?? -1;\n const hasAnyMenuItems = showPinningItems || showSortingItems && isSortable || showResizeItem || showConfigItem;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Menu.Root, {\n open: isOpen,\n onOpenChange: setIsOpen\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.osdkCenterContainer, styles.osdkContentGap, styles.osdkHeaderContainer),\n onContextMenu: handleInteraction\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.osdkCenterContainer, styles.osdkContentGap, styles.osdkHeaderContentLeft)\n }, isColumnPinned && /*#__PURE__*/React.createElement(Pin, {\n className: styles.osdkHeaderIcon,\n color: \"currentColor\"\n }), /*#__PURE__*/React.createElement(TableHeaderContent, {\n header: header\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.osdkCenterContainer, styles.osdkContentGap, styles.osdkHeaderContentRight)\n }, isSorted && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.osdkCenterContainer\n }, isSorted === \"asc\" ? /*#__PURE__*/React.createElement(SortAlphabetical, {\n className: styles.osdkHeaderIcon\n }) : /*#__PURE__*/React.createElement(SortAlphabeticalDesc, {\n className: styles.osdkHeaderIcon\n }), currentSorting.length > 1 && sortIndex >= 0 && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.sortIndex\n }, sortIndex + 1)), hasAnyMenuItems && /*#__PURE__*/React.createElement(Menu.Trigger, {\n \"aria-label\": `Open header menu for column with id=${header.column.id}`,\n className: classNames(styles.osdkCenterContainer, styles.osdkHeaderPopoverTrigger)\n }, /*#__PURE__*/React.createElement(ChevronDown, {\n className: styles.osdkHeaderIcon\n }))), /*#__PURE__*/React.createElement(Menu.Portal, {\n container: document.body\n }, /*#__PURE__*/React.createElement(Menu.Positioner, {\n sideOffset: 4\n }, /*#__PURE__*/React.createElement(Menu.Popup, {\n className: styles.osdkHeaderPopup\n }, showPinningItems && !isColumnPinned && /*#__PURE__*/React.createElement(HeaderMenuItem, {\n onClick: handlePinLeft,\n icon: Pin,\n label: \"Pin column\"\n }), showPinningItems && isColumnPinned && /*#__PURE__*/React.createElement(HeaderMenuItem, {\n onClick: handleUnpin,\n icon: Unpin,\n label: \"Unpin Column\",\n active: true\n }), showSortingItems && isSortable && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(HeaderMenuItem, {\n onClick: handleSortAscending,\n icon: SortAlphabetical,\n label: \"Sort ascending\",\n active: isSorted === \"asc\"\n }), /*#__PURE__*/React.createElement(HeaderMenuItem, {\n onClick: handleSortDescending,\n icon: SortAlphabeticalDesc,\n label: \"Sort descending\",\n active: isSorted === \"desc\"\n }), columnOptions?.some(col => col.canSort) && /*#__PURE__*/React.createElement(HeaderMenuItem, {\n onClick: handleOpenMultiSort,\n icon: Sort,\n label: \"Sort on multiple columns\"\n })), showSortingItems && !!currentSorting?.length && /*#__PURE__*/React.createElement(HeaderMenuItem, {\n onClick: handleClearAllSorts,\n icon: Remove,\n label: \"Clear all sorts\"\n }), showResizeItem && /*#__PURE__*/React.createElement(HeaderMenuItem, {\n onClick: handleResetSize,\n icon: VerticalDistribution,\n label: \"Reset Column Size\"\n }), showConfigItem && /*#__PURE__*/React.createElement(HeaderMenuItem, {\n onClick: handleOpenColumnConfig,\n icon: Settings,\n label: \"Configure Columns\"\n })))))));\n}","/*\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\nexport function getColumnPinningStyles(column) {\n const isPinned = column.getIsPinned();\n return {\n columnStyles: {\n left: isPinned === \"left\" ? `${column.getStart(\"left\")}px` : undefined,\n right: isPinned === \"right\" ? `${column.getAfter(\"right\")}px` : undefined,\n width: column.getSize()\n }\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport { ColumnConfigDialog } from \"./ColumnConfigDialog.js\";\nimport { MultiColumnSortDialog } from \"./MultiColumnSortDialog.js\";\nimport styles from \"./TableHeader.module.css\";\nimport { TableHeaderContent } from \"./TableHeaderContent.js\";\nimport { TableHeaderWithPopover } from \"./TableHeaderWithPopover.js\";\nimport { SELECTION_COLUMN_ID } from \"./utils/constants.js\";\nimport { getColumnPinningStyles } from \"./utils/getColumnPinningStyles.js\";\nconst getHeaderName = (column, allHeaders) => {\n const {\n id,\n columnDef\n } = column;\n const header = allHeaders.find(header => header.id === id);\n const headerDef = columnDef.header;\n if (headerDef) {\n if (typeof headerDef === \"string\") {\n return headerDef;\n }\n // Try to get header name from the renderHeader function\n if (header) {\n const displayedHeader = headerDef(header.getContext());\n if (typeof displayedHeader === \"string\") return displayedHeader;\n }\n }\n // Fallback to use the columnName provided by user or id\n const {\n meta\n } = columnDef;\n return meta?.columnName ?? id;\n};\nexport function TableHeader({\n table,\n headerMenuFeatureFlags\n}) {\n // TODO: If value is number type, right align header\n\n const {\n setColumnOrder,\n setColumnVisibility,\n setSorting\n } = table;\n const currentSorting = table.getState().sorting;\n const currentVisibility = table.getState().columnVisibility;\n const currentColumnOrder = table.getState().columnOrder;\n const isResizing = !!table.getState().columnSizingInfo?.isResizingColumn;\n const [configDialogOpen, setConfigDialogOpen] = useState(false);\n const [multiSortDialogOpen, setMultiSortDialogOpen] = useState(false);\n const handleOpenColumnConfig = useCallback(() => {\n setConfigDialogOpen(true);\n }, []);\n const handleCloseColumnConfig = useCallback(() => {\n setConfigDialogOpen(false);\n }, []);\n const handleOpenMultiSort = useCallback(() => {\n setMultiSortDialogOpen(true);\n }, []);\n const handleCloseMultiSort = useCallback(() => {\n setMultiSortDialogOpen(false);\n }, []);\n const handleApplyMultiSort = useCallback(sortColumns => {\n setMultiSortDialogOpen(false);\n setSorting?.(sortColumns);\n }, [setSorting]);\n const handleApplyColumnConfig = useCallback(updates => {\n const newVisibilityState = {};\n for (const update of updates) {\n newVisibilityState[update.columnId] = update.isVisible;\n }\n setColumnOrder(updates.map(col => col.columnId));\n setColumnVisibility(newVisibilityState);\n }, [setColumnOrder, setColumnVisibility]);\n const columnOptions = useMemo(() => {\n const allHeaders = table.getHeaderGroups().flatMap(headerGroup => headerGroup.headers);\n return table.getAllColumns().filter(column => column.id !== SELECTION_COLUMN_ID).map(column => {\n return {\n id: column.id,\n name: getHeaderName(column, allHeaders),\n canSort: column.getCanSort()\n };\n });\n }, [table]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"thead\", {\n className: styles.osdkTableHeader,\n \"data-resizing\": isResizing\n }, table.getHeaderGroups().map(headerGroup => /*#__PURE__*/React.createElement(\"tr\", {\n key: headerGroup.id,\n className: styles.osdkTableHeaderRow\n }, headerGroup.headers.map(header => {\n const {\n columnStyles\n } = getColumnPinningStyles(header.column);\n const isColumnPinned = header.column.getIsPinned();\n const isSelectColumn = header.id === SELECTION_COLUMN_ID;\n return /*#__PURE__*/React.createElement(\"th\", {\n key: header.id,\n \"data-pinned\": header.column.getIsPinned(),\n className: classNames(styles.osdkTableHeaderCell, {\n [styles.osdkTableSelectionHeaderCell]: isSelectColumn\n }),\n style: columnStyles\n }, header.isPlaceholder ? null : isSelectColumn ? /*#__PURE__*/React.createElement(TableHeaderContent, {\n header: header\n }) : /*#__PURE__*/React.createElement(TableHeaderWithPopover, {\n table: table,\n header: header,\n isColumnPinned: isColumnPinned,\n columnOptions: columnOptions,\n featureFlags: headerMenuFeatureFlags,\n onOpenColumnConfig: handleOpenColumnConfig,\n onOpenMultiSort: handleOpenMultiSort\n }), header.column.getCanResize() && headerMenuFeatureFlags?.showResizeItem !== false && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.osdkTableHeaderResizer,\n onDoubleClick: () => header.column.resetSize(),\n onMouseDown: header.getResizeHandler(),\n onTouchStart: header.getResizeHandler()\n }));\n })))), !!columnOptions?.length && /*#__PURE__*/React.createElement(ColumnConfigDialog, {\n isOpen: configDialogOpen,\n onClose: handleCloseColumnConfig,\n columnOptions: columnOptions,\n currentVisibility: currentVisibility,\n currentColumnOrder: currentColumnOrder,\n onApply: handleApplyColumnConfig\n }), columnOptions?.some(col => col.canSort) && /*#__PURE__*/React.createElement(MultiColumnSortDialog, {\n isOpen: multiSortDialogOpen,\n onClose: handleCloseMultiSort,\n columnOptions: columnOptions,\n currentSorting: currentSorting,\n onApply: handleApplyMultiSort\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport loadingStyles from \"./LoadingCell.module.css\";\nimport { LoadingRow } from \"./LoadingRow.js\";\nimport bodyStyles from \"./TableBody.module.css\";\nimport { TableHeader } from \"./TableHeader.js\";\nimport headerStyles from \"./TableHeader.module.css\";\nconst MIN_ROWS = 5;\nexport function LoadingStateTable({\n table,\n tableContainerRef,\n headerGroups,\n rowHeight = 40,\n columnWidth = 120\n}) {\n // If selection enabled, there will be a header for the selection column\n const enableRowSelection = table.options.enableRowSelection;\n const minHeaderCount = enableRowSelection ? 1 : 0;\n const headers = useMemo(() => headerGroups.length > 0 ? headerGroups[0].headers : [], [headerGroups]);\n const hasHeadersLoaded = headers.length > minHeaderCount;\n const headerRef = useRef(null);\n const bodyRef = useRef(null);\n const [loadingRowCount, setLoadingRowCount] = useState(MIN_ROWS);\n const [loadingColumnCount, setLoadingColumnCount] = useState(headers.length);\n // Calculate number of columns needed to fill container width\n useEffect(() => {\n if (hasHeadersLoaded) {\n setLoadingColumnCount(headers.length);\n } else {\n if (tableContainerRef.current) {\n const tableWidth = tableContainerRef.current.clientWidth;\n if (tableWidth > 0) {\n const columnsNeeded = Math.ceil(tableWidth / columnWidth);\n setLoadingColumnCount(columnsNeeded);\n }\n }\n }\n }, [columnWidth, hasHeadersLoaded, headers, tableContainerRef]);\n\n // Calculate number of rows needed to fill container height\n useEffect(() => {\n if (tableContainerRef.current) {\n const containerHeight = tableContainerRef.current.clientHeight;\n const availableHeight = containerHeight - rowHeight;\n if (availableHeight > 0) {\n const rowsNeeded = Math.ceil(availableHeight / rowHeight);\n setLoadingRowCount(Math.max(rowsNeeded, MIN_ROWS));\n }\n }\n }, [tableContainerRef, rowHeight]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, hasHeadersLoaded ? /*#__PURE__*/React.createElement(TableHeader, {\n table: table\n }) : /*#__PURE__*/React.createElement(\"thead\", {\n className: headerStyles.osdkTableHeader,\n ref: headerRef\n }, /*#__PURE__*/React.createElement(\"tr\", {\n className: headerStyles.osdkTableHeaderRow\n }, Array.from({\n length: loadingColumnCount\n }).map((_, index) => {\n const width = headers.length > index ? headers[index].getSize() : columnWidth;\n return /*#__PURE__*/React.createElement(\"th\", {\n key: `loading-header-${index}`,\n className: headerStyles.osdkTableHeaderCell,\n style: {\n width\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(headerStyles.osdkLoadingHeaderCell, loadingStyles.osdkCellSkeleton)\n }));\n }))), /*#__PURE__*/React.createElement(\"tbody\", {\n className: bodyStyles.osdkTableBody,\n ref: bodyRef\n }, Array.from({\n length: loadingRowCount\n }).map((_, index) => /*#__PURE__*/React.createElement(LoadingRow, {\n key: `skeleton-${index}`,\n columnCount: loadingColumnCount,\n headers: headers,\n translateY: rowHeight * index,\n rowHeight: rowHeight,\n columnWidth: columnWidth\n }))));\n}","/*\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}\n\n.message {\n padding: calc(var(--osdk-surface-spacing) * 5);\n color: var(--osdk-typography-color-muted);\n font-style: italic;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport styles from \"./NonIdealState.module.css\";\nexport function NonIdealState({\n message\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.container\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.message\n }, message));\n}","/*\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.osdkTableWrapper {\n display: flex;\n flex-direction: column;\n height: 100%;\n position: relative;\n}\n\n.osdkTableContainer {\n flex: 1;\n min-height: 0;\n overflow: auto;\n position: relative;\n}\n\n.osdkTableContainer table {\n border-collapse: collapse;\n display: grid;\n table-layout: fixed;\n width: max-content;\n min-width: 100%;\n}\n","/*\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","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useEffect, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport styles from \"./CellContextMenu.module.css\";\nexport function CellContextMenu({\n cell,\n position,\n onClose,\n renderContent\n}) {\n const ref = useRef(null);\n useEffect(() => {\n const handleClickOutside = event => {\n if (ref.current && !ref.current.contains(event.target)) {\n onClose();\n }\n };\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [onClose]);\n return /*#__PURE__*/createPortal(/*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n className: styles.osdkCellContextMenu,\n style: {\n left: position.left,\n top: position.top,\n minWidth: position.width\n }\n }, renderContent(cell.row.original, cell)), document.body);\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useState } from \"react\";\nexport const useCellContextMenu = ({\n tdRef\n}) => {\n const [popoverPosition, setPopoverPosition] = useState(null);\n const [isContextMenuOpen, setIsContextMenuOpen] = useState(false);\n const handleOpenContextMenu = useCallback(event => {\n event.preventDefault();\n event.stopPropagation();\n if (tdRef.current) {\n const rect = tdRef.current.getBoundingClientRect();\n const position = {\n left: rect.left,\n top: rect.bottom,\n width: rect.width\n };\n setPopoverPosition(position);\n setIsContextMenuOpen(true);\n }\n }, [tdRef]);\n const handleCloseContextMenu = useCallback(() => {\n setIsContextMenuOpen(false);\n setPopoverPosition(null);\n }, []);\n return {\n isContextMenuOpen,\n handleOpenContextMenu,\n handleCloseContextMenu,\n popoverPosition\n };\n};","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { flexRender } from \"@tanstack/react-table\";\nimport React, { useRef } from \"react\";\nimport { CellContextMenu } from \"./CellContextMenu.js\";\nimport { useCellContextMenu } from \"./hooks/useCellContextMenu.js\";\nimport styles from \"./TableCell.module.css\";\nimport { SELECTION_COLUMN_ID } from \"./utils/constants.js\";\nimport { getColumnPinningStyles } from \"./utils/getColumnPinningStyles.js\";\nexport function TableCell({\n cell,\n renderCellContextMenu\n}) {\n const tdRef = useRef(null);\n const isSelectColumn = cell.column.id === SELECTION_COLUMN_ID;\n const {\n isContextMenuOpen,\n handleOpenContextMenu,\n handleCloseContextMenu,\n popoverPosition\n } = useCellContextMenu({\n tdRef\n });\n const shouldRenderContextMenu = !isSelectColumn && isContextMenuOpen && !!popoverPosition && !!renderCellContextMenu;\n const {\n columnStyles\n } = getColumnPinningStyles(cell.column);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"td\", {\n ref: tdRef,\n \"data-pinned\": cell.column.getIsPinned(),\n className: styles.osdkTableCell,\n style: columnStyles,\n onContextMenu: handleOpenContextMenu\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.osdkTableCellContent\n }, flexRender(cell.column.columnDef.cell, cell.getContext()))), shouldRenderContextMenu && /*#__PURE__*/React.createElement(CellContextMenu, {\n cell: cell,\n position: popoverPosition,\n onClose: handleCloseContextMenu,\n renderContent: renderCellContextMenu\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useCallback } from \"react\";\nimport { TableCell } from \"./TableCell.js\";\nimport styles from \"./TableRow.module.css\";\nexport function TableRow({\n row,\n virtualRow,\n onRowClick,\n renderCellContextMenu,\n isFocused,\n setFocusedRowId,\n isInEditMode\n}) {\n const handleClick = useCallback(() => {\n setFocusedRowId?.(row.id);\n if (!isInEditMode) {\n onRowClick?.(row.original);\n }\n }, [isInEditMode, onRowClick, row.original, row.id, setFocusedRowId]);\n return /*#__PURE__*/React.createElement(\"tr\", {\n \"data-selected\": row.getIsSelected(),\n \"data-focused\": isFocused,\n className: styles.osdkTableRow,\n style: {\n height: `${virtualRow.size}px`,\n transform: `translateY(${virtualRow.start}px)`\n },\n onClick: handleClick\n }, row.getVisibleCells().map(cell => /*#__PURE__*/React.createElement(TableCell, {\n key: cell.id,\n cell: cell,\n renderCellContextMenu: renderCellContextMenu\n })));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport React, { useLayoutEffect } from \"react\";\nimport { LoadingRow } from \"./LoadingRow.js\";\nimport styles from \"./TableBody.module.css\";\nimport { TableRow } from \"./TableRow.js\";\nexport function TableBody({\n rows,\n tableContainerRef,\n onRowClick,\n renderCellContextMenu,\n rowHeight = 40,\n isLoadingMore = false,\n headerGroups = [],\n focusedRowId,\n setFocusedRowId,\n isInEditMode\n}) {\n // Important: Keep the row virtualizer in the lowest component possible to avoid unnecessary re-renders.\n const rowVirtualizer = useVirtualizer({\n count: rows.length,\n estimateSize: () => rowHeight,\n getScrollElement: () => tableContainerRef.current,\n overscan: 5\n });\n\n // Measure the virtualizer after the DOM has been laid out to ensure proper dimensions\n useLayoutEffect(() => {\n rowVirtualizer.measure();\n }, [rowVirtualizer, rows.length]);\n const totalSize = rowVirtualizer.getTotalSize();\n const bodyHeight = isLoadingMore ? totalSize + rowHeight : totalSize;\n const headers = headerGroups[0]?.headers ?? [];\n return /*#__PURE__*/React.createElement(\"tbody\", {\n className: styles.osdkTableBody,\n style: {\n height: `${bodyHeight}px`\n }\n }, rowVirtualizer.getVirtualItems().map(virtualRow => {\n const row = rows[virtualRow.index];\n return /*#__PURE__*/React.createElement(TableRow, {\n key: row.id,\n row: row,\n virtualRow: virtualRow,\n onRowClick: onRowClick,\n renderCellContextMenu: renderCellContextMenu,\n isFocused: focusedRowId === row.id,\n setFocusedRowId: setFocusedRowId,\n isInEditMode: isInEditMode\n });\n }), isLoadingMore && /*#__PURE__*/React.createElement(LoadingRow, {\n headers: headers,\n translateY: totalSize,\n rowHeight: rowHeight,\n columnCount: headers.length\n }));\n}","/*\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.tableEditContainer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n background-color: var(--osdk-surface-background-color-default-rest);\n border-top: var(--osdk-table-border);\n padding: var(--osdk-table-edit-container-padding);\n min-height: var(--osdk-table-edit-container-min-height);\n}\n\n.placeholder {\n color: var(--osdk-typography-color-muted);\n font-size: var(--osdk-typography-size-body-small);\n padding: calc(var(--osdk-surface-spacing) * 2) 0;\n}\n\n.editsInfoContainer {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: row;\n gap: calc(var(--osdk-surface-spacing) * 3);\n font-size: var(--osdk-typography-size-body-small);\n}\n\n.modificationCount {\n color: var(--osdk-intent-primary-rest);\n font-size: var(--osdk-typography-size-body-small);\n padding: calc(var(--osdk-surface-spacing) * 2) 0;\n}\n\n.editButtons {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n flex: 1;\n}\n\n.validationError {\n display: flex;\n align-items: center;\n gap: calc(var(--osdk-surface-spacing) * 2);\n color: var(--osdk-intent-danger-rest);\n}\n\n.errorIcon {\n color: var(--osdk-intent-danger-rest);\n}\n\n.divider {\n width: 1px;\n height: 8px;\n background-color: var(--osdk-surface-border-color-default);\n align-self: center;\n}\n","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Error } from \"@blueprintjs/icons\";\nimport React, { useCallback, useState } from \"react\";\nimport { ActionButton } from \"../base-components/action-button/ActionButton.js\";\nimport styles from \"./TableEditContainer.module.css\";\nexport function TableEditContainer({\n editableConfig,\n focusedRowId\n}) {\n const {\n cellEdits,\n onSubmitEdits,\n clearEdits,\n editModeState,\n validationErrors\n } = editableConfig;\n const hasEdits = Object.keys(cellEdits ?? {}).length > 0;\n const hasValidationError = (validationErrors?.size ?? 0) > 0;\n const [isSubmitting, setIsSubmitting] = useState(false);\n const isInEditMode = editModeState.isActive;\n const canToggleEditMode = editModeState.type === \"manual\";\n const handleSubmitEdits = useCallback(async () => {\n setIsSubmitting(true);\n try {\n const success = await onSubmitEdits?.();\n if (success) {\n clearEdits?.();\n if (editModeState?.type === \"manual\") {\n editModeState.setActive(false);\n }\n }\n } finally {\n setIsSubmitting(false);\n }\n }, [editModeState, onSubmitEdits, clearEdits]);\n const handleCancelEdits = useCallback(() => {\n clearEdits?.();\n if (editModeState?.type === \"manual\") {\n editModeState.setActive(false);\n }\n }, [clearEdits, editModeState]);\n const handleEnterEditMode = useCallback(() => {\n if (editModeState?.type === \"manual\") {\n editModeState.setActive(true);\n }\n }, [editModeState]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.tableEditContainer\n }, hasEdits || hasValidationError ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.editsInfoContainer\n }, hasEdits && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.modificationCount\n }, `${cellEdits ? Object.keys(cellEdits).length : 0} modifications`), hasEdits && hasValidationError && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.divider\n }), hasValidationError && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.validationError\n }, /*#__PURE__*/React.createElement(Error, {\n className: styles.errorIcon\n }), \"Validation error\")) : isInEditMode && !focusedRowId && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.placeholder\n }, \"Select a row to edit data\\u2026\"), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.editButtons\n }, !isInEditMode && canToggleEditMode && /*#__PURE__*/React.createElement(ActionButton, {\n variant: \"primary\",\n onClick: handleEnterEditMode\n }, \"Edit Table\"), isInEditMode && canToggleEditMode && /*#__PURE__*/React.createElement(ActionButton, {\n variant: \"secondary\",\n onClick: handleCancelEdits\n }, \"Cancel\"), isInEditMode && !!onSubmitEdits && /*#__PURE__*/React.createElement(ActionButton, {\n variant: \"primary\",\n onClick: handleSubmitEdits,\n disabled: !hasEdits || isSubmitting || hasValidationError\n }, \"Submit Edits\")));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { LoadingStateTable } from \"./LoadingStateTable.js\";\nimport { NonIdealState } from \"./NonIdealState.js\";\nimport styles from \"./Table.module.css\";\nimport { TableBody } from \"./TableBody.js\";\nimport { TableEditContainer } from \"./TableEditContainer.js\";\nimport { TableHeader } from \"./TableHeader.js\";\nexport function BaseTable({\n table,\n isLoading,\n fetchNextPage,\n onRowClick,\n rowHeight,\n renderCellContextMenu,\n className,\n error,\n headerMenuFeatureFlags,\n editableConfig\n}) {\n const tableContainerRef = useRef(null);\n const [isLoadingMore, setIsLoadingMore] = useState(false);\n const [focusedRowId, setFocusedRowId] = useState(null);\n\n // Using a ref to prevent duplicate fetches from rapid scroll events while a fetch is in-flight\n const fetchingRef = useRef(false);\n useEffect(() => {\n if (!isLoading || fetchNextPage == null) {\n setIsLoadingMore(false);\n }\n }, [isLoading, fetchNextPage]);\n const fetchMoreOnEndReached = useCallback(async containerRefElement => {\n if (containerRefElement && !fetchingRef.current && !isLoadingMore) {\n const {\n scrollHeight,\n scrollTop,\n clientHeight\n } = containerRefElement;\n if (scrollHeight - scrollTop - clientHeight < 100 && !isLoading && fetchNextPage != null) {\n fetchingRef.current = true;\n setIsLoadingMore(true);\n try {\n await fetchNextPage();\n } finally {\n fetchingRef.current = false;\n }\n }\n }\n }, [fetchNextPage, isLoading, isLoadingMore]);\n const handleScroll = useCallback(async e => {\n await fetchMoreOnEndReached(e.currentTarget);\n }, [fetchMoreOnEndReached]);\n const rows = table.getRowModel().rows;\n const headerGroups = table.getHeaderGroups();\n const hasData = rows.length > 0;\n const hasEditableColumns = table.getAllColumns().some(column => column.columnDef.meta?.editable === true);\n useEffect(() => {\n const handleClickOutside = event => {\n if (tableContainerRef.current && !tableContainerRef.current.contains(event.target)) {\n setFocusedRowId(null);\n }\n };\n document.addEventListener(\"click\", handleClickOutside);\n return () => {\n document.removeEventListener(\"click\", handleClickOutside);\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.osdkTableWrapper, className)\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: tableContainerRef,\n className: styles.osdkTableContainer,\n onScroll: handleScroll\n }, /*#__PURE__*/React.createElement(\"table\", null, isLoading && !hasData ? /*#__PURE__*/React.createElement(LoadingStateTable, {\n table: table,\n headerGroups: headerGroups,\n rowHeight: rowHeight,\n tableContainerRef: tableContainerRef\n }) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TableHeader, {\n table: table,\n headerMenuFeatureFlags: headerMenuFeatureFlags\n }), /*#__PURE__*/React.createElement(TableBody, {\n rows: rows,\n tableContainerRef: tableContainerRef,\n onRowClick: onRowClick,\n rowHeight: rowHeight,\n renderCellContextMenu: renderCellContextMenu,\n isLoadingMore: isLoadingMore,\n headerGroups: headerGroups,\n focusedRowId: focusedRowId,\n setFocusedRowId: setFocusedRowId,\n isInEditMode: editableConfig?.editModeState.isActive\n }))), !hasData && error == null && /*#__PURE__*/React.createElement(NonIdealState, {\n message: \"No Data\"\n }), error != null && /*#__PURE__*/React.createElement(NonIdealState, {\n message: `Error Loading Data: ${error.message}`\n })), hasEditableColumns && editableConfig && /*#__PURE__*/React.createElement(TableEditContainer, {\n editableConfig: editableConfig,\n focusedRowId: focusedRowId\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getCoreRowModel, useReactTable } from \"@tanstack/react-table\";\nimport React, { useCallback, useMemo } from \"react\";\nimport { useColumnDefs } from \"./hooks/useColumnDefs.js\";\nimport { useColumnPinning } from \"./hooks/useColumnPinning.js\";\nimport { useColumnResize } from \"./hooks/useColumnResize.js\";\nimport { useColumnVisibility } from \"./hooks/useColumnVisibility.js\";\nimport { useEditableTable } from \"./hooks/useEditableTable.js\";\nimport { useObjectTableData } from \"./hooks/useObjectTableData.js\";\nimport { useRowSelection } from \"./hooks/useRowSelection.js\";\nimport { useSelectionColumn } from \"./hooks/useSelectionColumn.js\";\nimport { useTableSorting } from \"./hooks/useTableSorting.js\";\nimport { BaseTable } from \"./Table.js\";\nimport { getRowId } from \"./utils/getRowId.js\";\n/**\n * ObjectTable - A headless table component for displaying OSDK object sets\n *\n * @example\n * ```tsx\n * <ObjectTable objectType={MyObjectType} />\n * ```\n */\n\nconst EMPTY_ARRAY = [];\nexport function ObjectTable({\n objectType,\n objectSet,\n columnDefinitions,\n filter,\n objectSetOptions,\n orderBy,\n defaultOrderBy,\n onOrderByChanged,\n onColumnsPinnedChanged,\n onColumnResize,\n onRowSelection,\n renderCellContextMenu,\n selectionMode = \"none\",\n selectedRows,\n isAllSelected: isAllSelectedProp,\n onColumnVisibilityChanged,\n onCellValueChanged,\n onSubmitEdits,\n enableOrdering = true,\n enableColumnPinning = true,\n enableColumnResizing = true,\n enableColumnConfig = true,\n editMode = \"manual\",\n ...props\n}) {\n const {\n columnSizing,\n onColumnSizingChange\n } = useColumnResize({\n onColumnResize\n });\n const {\n sorting,\n onSortingChange\n } = useTableSorting({\n orderBy,\n defaultOrderBy,\n onOrderByChanged\n });\n const {\n data,\n fetchMore,\n isLoading,\n error\n } = useObjectTableData(objectType, columnDefinitions, filter, sorting, objectSet, objectSetOptions);\n const {\n columns,\n loading: isColumnsLoading\n } = useColumnDefs(objectType, columnDefinitions);\n const {\n rowSelection,\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow,\n enableRowSelection\n } = useRowSelection({\n selectionMode,\n selectedRows,\n isAllSelected: isAllSelectedProp,\n onRowSelection,\n data\n });\n const selectionColumn = useSelectionColumn({\n selectionMode,\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow\n });\n const {\n columnVisibility,\n onColumnVisibilityChange,\n columnOrder,\n onColumnOrderChange\n } = useColumnVisibility({\n allColumns: columns,\n onColumnVisibilityChanged\n });\n const {\n columnPinning,\n onColumnPinningChange\n } = useColumnPinning({\n columnDefinitions,\n hasSelectionColumn: enableRowSelection,\n onColumnsPinnedChanged\n });\n const allColumns = useMemo(() => {\n return selectionColumn ? [selectionColumn, ...columns] : columns;\n }, [selectionColumn, columns]);\n const editableConfig = useEditableTable({\n editMode,\n onCellValueChanged,\n onSubmitEdits\n });\n const table = useReactTable({\n data: data ?? EMPTY_ARRAY,\n columns: allColumns,\n getCoreRowModel: getCoreRowModel(),\n state: {\n columnVisibility,\n columnOrder,\n rowSelection,\n sorting,\n columnSizing,\n columnPinning\n },\n onSortingChange,\n onColumnSizingChange,\n onColumnPinningChange,\n onColumnVisibilityChange,\n onColumnOrderChange,\n enableRowSelection,\n enableSorting: enableOrdering,\n columnResizeMode: \"onChange\",\n columnResizeDirection: \"ltr\",\n manualSorting: true,\n // Enable manual sorting to indicate server-side sorting\n defaultColumn: {\n minSize: 80\n },\n getRowId,\n meta: {\n onCellEdit: editableConfig.onCellEdit,\n onCellValidationError: editableConfig.onCellValidationError,\n clearCellValidationError: editableConfig.clearCellValidationError,\n cellEdits: editableConfig.cellEdits,\n isInEditMode: editableConfig.editModeState.isActive,\n validationErrors: editableConfig.validationErrors\n }\n });\n const onRenderCellContextMenu = useCallback((row, cell) => {\n return renderCellContextMenu?.(row, cell.getValue());\n }, [renderCellContextMenu]);\n const isTableLoading = isLoading || isColumnsLoading;\n const headerMenuFeatureFlags = useMemo(() => ({\n showSortingItems: enableOrdering,\n showPinningItems: enableColumnPinning,\n showResizeItem: enableColumnResizing,\n showConfigItem: enableColumnConfig\n }), [enableOrdering, enableColumnPinning, enableColumnResizing, enableColumnConfig]);\n return /*#__PURE__*/React.createElement(BaseTable, {\n table: table,\n isLoading: isTableLoading,\n fetchNextPage: fetchMore,\n onRowClick: props.onRowClick,\n rowHeight: props.rowHeight,\n renderCellContextMenu: onRenderCellContextMenu,\n className: props.className,\n error: error,\n headerMenuFeatureFlags: headerMenuFeatureFlags,\n editableConfig: editableConfig\n });\n}","/*\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// Default empty values (stable references to avoid re-renders)\nexport const EMPTY_ANNOTATIONS = {};\nexport const EMPTY_ANNOTATION_ARRAY = [];\nexport const EMPTY_STRING = \"\";\n\n// Scale and dimension configuration\nexport const SCALE_STEP = 0.25;\nexport const MIN_SCALE = 0.25;\nexport const MAX_SCALE = 5.0;\nexport const DEFAULT_PAGE_HEIGHT = 792;\nexport const THUMBNAIL_GAP = 12;\nexport const THUMBNAIL_SCALE = 0.2;\nexport const DEVICE_PIXEL_RATIO = typeof window !== \"undefined\" ? window.devicePixelRatio || 1 : 1;\n\n// pdfjs EventBus event names\nexport const FIND_EVENT = \"find\";\n// cspell:disable-next-line -- pdfjs EventBus event name\nexport const UPDATE_FIND_CONTROL_STATE_EVENT = \"updatefindcontrolstate\";\n// cspell:disable-next-line -- pdfjs EventBus event name\nexport const UPDATE_FIND_MATCHES_COUNT_EVENT = \"updatefindmatchescount\";\n// cspell:disable-next-line -- pdfjs EventBus event name\nexport const PAGE_CHANGING_EVENT = \"pagechanging\";\n// cspell:disable-next-line -- pdfjs EventBus event name\nexport const SCALE_CHANGING_EVENT = \"scalechanging\";\n// cspell:disable-next-line -- pdfjs EventBus event name\nexport const PAGE_RENDERED_EVENT = \"pagerendered\";","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect, useState } from \"react\";\nimport { PAGE_RENDERED_EVENT } from \"../constants.js\";\nexport function usePdfAnnotationPortals(pdfViewerRef, eventBusRef, document) {\n const [portalTargets, setPortalTargets] = useState([]);\n useEffect(function subscribePageRendered() {\n const eventBus = eventBusRef.current;\n const pdfViewer = pdfViewerRef.current;\n if (eventBus == null || pdfViewer == null) {\n return;\n }\n const handlePageRendered = evt => {\n const pageIndex = evt.pageNumber - 1;\n const pageView = pdfViewer.getPageView(pageIndex);\n if (pageView?.div == null || pageView?.viewport == null) {\n return;\n }\n const viewport = pageView.viewport;\n setPortalTargets(prev => {\n // Replace existing entry for this page or add new one\n const filtered = prev.filter(t => t.pageNumber !== evt.pageNumber);\n return [...filtered, {\n pageNumber: evt.pageNumber,\n container: pageView.div,\n pageHeight: viewport.viewBox[3],\n // viewBox is [xMin, yMin, width, height] and we need the original height before scaling\n scale: viewport.scale\n }].sort((a, b) => a.pageNumber - b.pageNumber);\n });\n };\n eventBus.on(PAGE_RENDERED_EVENT, handlePageRendered);\n return () => {\n eventBus.off(PAGE_RENDERED_EVENT, handlePageRendered);\n setPortalTargets([]);\n };\n }, [eventBusRef, pdfViewerRef, document]);\n return portalTargets;\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getDocument, GlobalWorkerOptions } from \"pdfjs-dist\";\n// @ts-expect-error -- Vite ?url import resolves to a string path at build time\nimport pdfWorkerUrl from \"pdfjs-dist/build/pdf.worker.min.mjs?url\";\nimport { useEffect, useState } from \"react\";\nconst pdfWorker = {\n workerInitialized: false,\n ensureWorker() {\n GlobalWorkerOptions.workerSrc = pdfWorkerUrl;\n this.workerInitialized = true;\n }\n};\nexport function usePdfDocument(src) {\n const [document, setDocument] = useState(undefined);\n const [numPages, setNumPages] = useState(0);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(undefined);\n useEffect(function loadPdfDocument() {\n pdfWorker.ensureWorker();\n setLoading(true);\n setError(undefined);\n const loadingTask = getDocument(typeof src === \"string\" ? {\n url: src\n } : {\n data: src\n });\n let cancelled = false;\n loadingTask.promise.then(pdf => {\n if (!cancelled) {\n setDocument(pdf);\n setNumPages(pdf.numPages);\n setLoading(false);\n }\n }, err => {\n if (!cancelled) {\n setError(err instanceof Error ? err : new Error(String(err)));\n setLoading(false);\n }\n });\n return () => {\n cancelled = true;\n void loadingTask.destroy();\n };\n }, [src]);\n return {\n document,\n numPages,\n loading,\n error\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { EventBus, PDFFindController, PDFLinkService, PDFViewer } from \"pdfjs-dist/web/pdf_viewer.mjs\";\nimport { useEffect, useRef } from \"react\";\nexport function usePdfViewer(containerRef, viewerRef, document, initialScale) {\n const pdfViewerRef = useRef(null);\n const eventBusRef = useRef(null);\n const findControllerRef = useRef(null);\n useEffect(function initializePdfViewer() {\n const container = containerRef.current;\n const viewer = viewerRef.current;\n if (container == null || viewer == null || document == null) {\n return;\n }\n const eventBus = new EventBus();\n const linkService = new PDFLinkService({\n eventBus\n });\n const findController = new PDFFindController({\n linkService,\n eventBus,\n updateMatchesCountOnProgress: true\n });\n const pdfViewer = new PDFViewer({\n container,\n viewer,\n eventBus,\n linkService,\n findController,\n removePageBorders: true\n });\n linkService.setViewer(pdfViewer);\n linkService.setDocument(document);\n findController.setDocument(document);\n pdfViewer.setDocument(document);\n if (initialScale != null) {\n pdfViewer.currentScale = initialScale;\n }\n eventBusRef.current = eventBus;\n findControllerRef.current = findController;\n pdfViewerRef.current = pdfViewer;\n return () => {\n pdfViewerRef.current = null;\n eventBusRef.current = null;\n findControllerRef.current = null;\n pdfViewer.cleanup();\n };\n }, [containerRef, viewerRef, document]);\n return {\n pdfViewerRef,\n eventBusRef,\n findControllerRef\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useEffect, useState } from \"react\";\nimport { EMPTY_STRING, FIND_EVENT, UPDATE_FIND_CONTROL_STATE_EVENT, UPDATE_FIND_MATCHES_COUNT_EVENT } from \"../constants.js\";\nexport function usePdfViewerSearch(eventBusRef, findControllerRef, document) {\n const [query, setQueryState] = useState(EMPTY_STRING);\n const [totalMatches, setTotalMatches] = useState(0);\n const [currentMatchIndex, setCurrentMatchIndex] = useState(0);\n const [isSearchOpen, setIsSearchOpen] = useState(false);\n const dispatchFind = useCallback((queryString, findPrevious) => {\n eventBusRef.current?.dispatch(FIND_EVENT, {\n source: undefined,\n type: \"\",\n query: queryString,\n caseSensitive: false,\n highlightAll: true,\n phraseSearch: true,\n findPrevious\n });\n }, [eventBusRef]);\n const dispatchFindAgain = useCallback(findPrevious => {\n eventBusRef.current?.dispatch(FIND_EVENT, {\n source: undefined,\n type: \"again\",\n query,\n caseSensitive: false,\n highlightAll: true,\n phraseSearch: true,\n findPrevious\n });\n }, [eventBusRef, query]);\n const setQuery = useCallback(input => {\n setQueryState(input);\n if (input === EMPTY_STRING) {\n setTotalMatches(0);\n setCurrentMatchIndex(0);\n // Dispatch empty query to clear highlights\n dispatchFind(EMPTY_STRING, false);\n return;\n }\n dispatchFind(input, false);\n }, [dispatchFind]);\n const nextMatch = useCallback(() => {\n dispatchFindAgain(false);\n }, [dispatchFindAgain]);\n const prevMatch = useCallback(() => {\n dispatchFindAgain(true);\n }, [dispatchFindAgain]);\n const openSearch = useCallback(() => {\n setIsSearchOpen(true);\n }, []);\n const closeSearch = useCallback(() => {\n setIsSearchOpen(false);\n setQueryState(EMPTY_STRING);\n setTotalMatches(0);\n setCurrentMatchIndex(0);\n // Clear highlights\n dispatchFind(EMPTY_STRING, false);\n }, [dispatchFind]);\n useEffect(function subscribeSearchEvents() {\n const eventBus = eventBusRef.current;\n if (eventBus == null) {\n return;\n }\n const handleMatchesCount = evt => {\n setTotalMatches(evt.matchesCount.total);\n setCurrentMatchIndex(evt.matchesCount.current > 0 ? evt.matchesCount.current - 1 : 0);\n };\n const handleControlState = evt => {\n setTotalMatches(evt.matchesCount.total);\n setCurrentMatchIndex(evt.matchesCount.current > 0 ? evt.matchesCount.current - 1 : 0);\n };\n eventBus.on(UPDATE_FIND_MATCHES_COUNT_EVENT, handleMatchesCount);\n eventBus.on(UPDATE_FIND_CONTROL_STATE_EVENT, handleControlState);\n return () => {\n eventBus.off(UPDATE_FIND_MATCHES_COUNT_EVENT, handleMatchesCount);\n eventBus.off(UPDATE_FIND_CONTROL_STATE_EVENT, handleControlState);\n };\n }, [eventBusRef, findControllerRef, document]);\n return {\n query,\n totalMatches,\n currentMatchIndex,\n isSearchOpen,\n setQuery,\n nextMatch,\n prevMatch,\n openSearch,\n closeSearch\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useEffect, useRef } from \"react\";\nimport { PAGE_CHANGING_EVENT, SCALE_CHANGING_EVENT } from \"../constants.js\";\nexport function usePdfViewerSync({\n pdfViewerRef,\n eventBusRef,\n document,\n scale,\n onScaleChange,\n onPageChange\n}) {\n const lastScaleRef = useRef(scale);\n\n // Sync React scale → PDFViewer\n useEffect(function syncScaleToViewer() {\n const pdfViewer = pdfViewerRef.current;\n if (pdfViewer == null) {\n return;\n }\n if (Math.abs(lastScaleRef.current - scale) > 0.001) {\n lastScaleRef.current = scale;\n pdfViewer.currentScale = scale;\n }\n }, [pdfViewerRef, scale]);\n\n // Listen to PDFViewer events → React state\n useEffect(function subscribeViewerEvents() {\n const eventBus = eventBusRef.current;\n if (eventBus == null) {\n return;\n }\n const handlePageChanging = evt => {\n onPageChange(evt.pageNumber);\n };\n const handleScaleChanging = evt => {\n lastScaleRef.current = evt.scale;\n onScaleChange(evt.scale);\n };\n eventBus.on(PAGE_CHANGING_EVENT, handlePageChanging);\n eventBus.on(SCALE_CHANGING_EVENT, handleScaleChanging);\n return () => {\n eventBus.off(PAGE_CHANGING_EVENT, handlePageChanging);\n eventBus.off(SCALE_CHANGING_EVENT, handleScaleChanging);\n };\n }, [eventBusRef, document, onPageChange, onScaleChange]);\n const scrollToPage = useCallback(page => {\n const pdfViewer = pdfViewerRef.current;\n if (pdfViewer != null) {\n pdfViewer.currentPageNumber = page;\n }\n }, [pdfViewerRef]);\n return {\n scrollToPage\n };\n}",".pdfViewer {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n background-color: var(--osdk-pdf-viewer-bg);\n border: var(--osdk-pdf-viewer-border);\n border-radius: var(--osdk-surface-border-radius);\n overflow: hidden;\n position: relative;\n}\n\n.contentArea {\n display: flex;\n flex: 1;\n overflow: hidden;\n position: relative;\n}\n\n.scrollContainerWrapper {\n flex: 1;\n position: relative;\n overflow: hidden;\n}\n\n.scrollContainer {\n overflow: auto;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.loadingContainer {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: calc(var(--osdk-surface-spacing) * 2);\n height: 100%;\n font-family: var(--osdk-typography-family-default);\n font-size: var(--osdk-typography-size-body-medium);\n color: var(--osdk-typography-color-muted);\n}\n\n.errorContainer {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--osdk-surface-spacing);\n height: 100%;\n font-family: var(--osdk-typography-family-default);\n font-size: var(--osdk-typography-size-body-medium);\n color: var(--osdk-typography-color-danger-rest);\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinnerIcon {\n animation: spin 1s linear infinite;\n color: var(--osdk-typography-color-muted);\n}\n\n.errorIcon {\n flex-shrink: 0;\n}\n\n/* PDFViewer page overrides */\n:global(.pdfViewer .page) {\n box-shadow: var(--osdk-pdf-viewer-page-shadow);\n background-color: var(--osdk-palette-white);\n margin: 0 auto var(--osdk-pdf-viewer-page-gap);\n}\n\n/* Search highlight overrides — match pdf.js FindController CSS classes */\n:global(.textLayer) .highlight {\n background-color: var(--osdk-pdf-viewer-search-highlight);\n border-radius: 1px;\n}\n\n:global(.textLayer) .highlight.selected {\n background-color: var(--osdk-pdf-viewer-search-active);\n}\n\n:global(.textLayer)::selection {\n background: var(--osdk-intent-primary-rest);\n}\n",".annotationLayer {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 3;\n}\n\n.annotation {\n position: absolute;\n pointer-events: auto;\n cursor: pointer;\n box-sizing: border-box;\n transition: opacity var(--osdk-emphasis-transition-duration)\n var(--osdk-emphasis-ease-default);\n}\n\n.annotation:hover {\n opacity: 0.8;\n}\n\n.annotation:focus-visible {\n outline: var(--osdk-focus-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n}\n\n.highlight {\n background-color: var(\n --osdk-pdf-annotation-color,\n var(--osdk-pdf-viewer-annotation-highlight)\n );\n border-radius: 2px;\n}\n\n.underline {\n background-color: transparent;\n border-bottom: 2px solid\n var(\n --osdk-pdf-annotation-color,\n var(--osdk-pdf-viewer-annotation-underline)\n );\n}\n\n.comment {\n background-color: var(\n --osdk-pdf-annotation-color,\n var(--osdk-pdf-viewer-annotation-comment)\n );\n border-radius: 50%;\n width: 16px !important;\n height: 16px !important;\n}\n\n.pin {\n background-color: var(\n --osdk-pdf-annotation-color,\n var(--osdk-pdf-viewer-annotation-pin)\n );\n border-radius: 50% 50% 50% 0;\n width: 16px !important;\n height: 16px !important;\n transform: rotate(-45deg);\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classnames from \"classnames\";\nimport React, { useCallback, useMemo } from \"react\";\nimport styles from \"./PdfViewerAnnotationLayer.module.css\";\nfunction AnnotationItem({\n annotation,\n pageHeight,\n scale,\n onClick\n}) {\n const handleClick = useCallback(() => {\n onClick?.(annotation);\n }, [onClick, annotation]);\n const handleKeyDown = useCallback(e => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n onClick?.(annotation);\n }\n }, [onClick, annotation]);\n\n // Convert PDF coordinates (bottom-left origin) to CSS (top-left origin)\n const style = useMemo(() => ({\n left: annotation.rect.x * scale,\n top: (pageHeight - annotation.rect.y - annotation.rect.height) * scale,\n width: annotation.rect.width * scale,\n height: annotation.rect.height * scale,\n ...(annotation.color != null ? {\n \"--osdk-pdf-annotation-color\": annotation.color\n } : {})\n }), [annotation, pageHeight, scale]);\n const className = classnames(styles.annotation, styles[annotation.type]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: style,\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n role: \"button\",\n tabIndex: 0,\n title: annotation.label,\n \"data-annotation-id\": annotation.id\n });\n}\nexport function PdfViewerAnnotationLayer({\n annotations,\n pageHeight,\n scale,\n onAnnotationClick\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.annotationLayer\n }, annotations.map(annotation => /*#__PURE__*/React.createElement(AnnotationItem, {\n key: annotation.id,\n annotation: annotation,\n pageHeight: pageHeight,\n scale: scale,\n onClick: onAnnotationClick\n })));\n}",".searchBar {\n position: absolute;\n top: 0;\n right: 0;\n z-index: var(--osdk-surface-z-index-3);\n display: flex;\n align-items: center;\n gap: var(--osdk-pdf-viewer-toolbar-gap);\n padding: var(--osdk-surface-spacing);\n background-color: var(--osdk-pdf-viewer-search-bar-bg);\n border: var(--osdk-surface-border);\n border-radius: var(--osdk-surface-border-radius);\n box-shadow: var(--osdk-surface-shadow-2);\n margin: var(--osdk-surface-spacing);\n}\n\n.searchInput {\n border: var(--osdk-surface-border);\n border-radius: var(--osdk-surface-border-radius);\n padding: var(--osdk-surface-spacing) calc(var(--osdk-surface-spacing) * 2);\n font-family: var(--osdk-typography-family-default);\n font-size: var(--osdk-typography-size-body-small);\n color: var(--osdk-typography-color-default-rest);\n background-color: var(--osdk-background-primary);\n outline: none;\n min-width: 200px;\n}\n\n.searchInput:focus {\n outline: var(--osdk-focus-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n}\n\n.matchCount {\n font-size: var(--osdk-typography-size-body-x-small);\n color: var(--osdk-typography-color-muted);\n white-space: nowrap;\n}\n\n.navButton {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border: none;\n background: none;\n color: var(--osdk-typography-color-default-rest);\n cursor: pointer;\n border-radius: var(--osdk-surface-border-radius);\n padding: 0;\n}\n\n.navButton:hover {\n background-color: var(--osdk-surface-background-color-default-hover);\n}\n\n.navButton:focus-visible {\n outline: var(--osdk-focus-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n}\n\n.closeButton {\n composes: navButton;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ChevronDown, ChevronUp, Cross } from \"@blueprintjs/icons\";\nimport React, { useCallback } from \"react\";\nimport styles from \"./PdfViewerSearchBar.module.css\";\nexport function PdfViewerSearchBar({\n query,\n totalMatches,\n currentMatchIndex,\n onQueryChange,\n onNext,\n onPrev,\n onClose\n}) {\n const handleInputChange = useCallback(e => {\n onQueryChange(e.target.value);\n }, [onQueryChange]);\n const handleKeyDown = useCallback(e => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n if (e.shiftKey) {\n onPrev();\n } else {\n onNext();\n }\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n onClose();\n }\n }, [onNext, onPrev, onClose]);\n const matchDisplay = totalMatches > 0 ? `${currentMatchIndex + 1} of ${totalMatches}` : query.length > 0 ? \"No results\" : \"\";\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.searchBar\n }, /*#__PURE__*/React.createElement(\"input\", {\n autoFocus: true,\n className: styles.searchInput,\n type: \"text\",\n value: query,\n onChange: handleInputChange,\n onKeyDown: handleKeyDown,\n placeholder: \"Find in document...\",\n \"aria-label\": \"Search in PDF\"\n }), matchDisplay.length > 0 && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.matchCount\n }, matchDisplay), /*#__PURE__*/React.createElement(\"button\", {\n className: styles.navButton,\n onClick: onPrev,\n disabled: totalMatches === 0,\n \"aria-label\": \"Previous match\",\n type: \"button\"\n }, /*#__PURE__*/React.createElement(ChevronUp, {\n size: 16\n })), /*#__PURE__*/React.createElement(\"button\", {\n className: styles.navButton,\n onClick: onNext,\n disabled: totalMatches === 0,\n \"aria-label\": \"Next match\",\n type: \"button\"\n }, /*#__PURE__*/React.createElement(ChevronDown, {\n size: 16\n })), /*#__PURE__*/React.createElement(\"button\", {\n className: styles.closeButton,\n onClick: onClose,\n \"aria-label\": \"Close search\",\n type: \"button\"\n }, /*#__PURE__*/React.createElement(Cross, {\n size: 16\n })));\n}",".sidebar {\n width: var(--osdk-pdf-viewer-sidebar-width);\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n background-color: var(--osdk-pdf-viewer-sidebar-bg);\n border-right: 1px solid var(--osdk-pdf-viewer-sidebar-border);\n overflow: hidden;\n}\n\n.sidebarHeader {\n padding: var(--osdk-pdf-viewer-sidebar-thumbnail-gap);\n font-family: var(--osdk-typography-family-default);\n font-size: var(--osdk-typography-size-body-small);\n font-weight: var(--osdk-typography-weight-semibold);\n color: var(--osdk-typography-color-muted);\n border-bottom: 1px solid var(--osdk-pdf-viewer-sidebar-border);\n flex-shrink: 0;\n}\n\n.scrollContainer {\n flex: 1;\n overflow-y: auto;\n}\n\n.thumbnailsContainer {\n position: relative;\n}\n\n.thumbnailWrapper {\n position: absolute;\n left: 0;\n width: 100%;\n display: flex;\n justify-content: center;\n padding: var(--osdk-pdf-viewer-sidebar-thumbnail-gap)\n var(--osdk-pdf-viewer-sidebar-thumbnail-gap) 0;\n}\n\n.pageNumber {\n text-align: center;\n font-family: var(--osdk-typography-family-default);\n font-size: var(--osdk-typography-size-body-small);\n color: var(--osdk-typography-color-muted);\n margin-top: 4px;\n}\n",".thumbnailContainer {\n position: relative;\n cursor: pointer;\n border: 2px solid transparent;\n border-radius: var(--osdk-surface-border-radius);\n box-shadow: var(--osdk-pdf-viewer-page-shadow);\n overflow: hidden;\n transition: border-color var(--osdk-emphasis-transition-duration)\n var(--osdk-emphasis-ease-default);\n}\n\n.thumbnailContainer:hover {\n border-color: var(--osdk-pdf-viewer-sidebar-border);\n}\n\n.active {\n border-color: var(--osdk-pdf-viewer-sidebar-active-border);\n}\n\n.active:hover {\n border-color: var(--osdk-pdf-viewer-sidebar-active-border);\n}\n\n.canvas {\n display: block;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classnames from \"classnames\";\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { DEVICE_PIXEL_RATIO, THUMBNAIL_SCALE } from \"./constants.js\";\nimport styles from \"./PdfViewerThumbnail.module.css\";\nexport function PdfViewerThumbnail({\n document,\n pageNumber,\n isActive,\n onClick\n}) {\n const canvasRef = useRef(null);\n const renderTaskRef = useRef(null);\n const [dimensions, setDimensions] = useState(undefined);\n useEffect(() => {\n let cancelled = false;\n void document.getPage(pageNumber).then(page => {\n if (cancelled || canvasRef.current == null) {\n return;\n }\n const viewport = page.getViewport({\n scale: THUMBNAIL_SCALE\n });\n const canvas = canvasRef.current;\n const context = canvas.getContext(\"2d\");\n if (context == null) {\n return;\n }\n canvas.width = Math.floor(viewport.width * DEVICE_PIXEL_RATIO);\n canvas.height = Math.floor(viewport.height * DEVICE_PIXEL_RATIO);\n canvas.style.width = `${Math.floor(viewport.width)}px`;\n canvas.style.height = `${Math.floor(viewport.height)}px`;\n setDimensions({\n width: Math.floor(viewport.width),\n height: Math.floor(viewport.height)\n });\n if (renderTaskRef.current != null) {\n renderTaskRef.current.cancel();\n }\n context.setTransform(DEVICE_PIXEL_RATIO, 0, 0, DEVICE_PIXEL_RATIO, 0, 0);\n const renderTask = page.render({\n canvasContext: context,\n viewport\n });\n renderTaskRef.current = renderTask;\n void renderTask.promise.catch(err => {\n if (err instanceof Error && err.message.includes(\"cancelled\")) {\n return;\n }\n throw err;\n });\n });\n return () => {\n cancelled = true;\n if (renderTaskRef.current != null) {\n renderTaskRef.current.cancel();\n renderTaskRef.current = null;\n }\n };\n }, [document, pageNumber]);\n const handleKeyDown = useCallback(e => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick();\n }\n }, [onClick]);\n const containerClassName = classnames(styles.thumbnailContainer, isActive && styles.active);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName,\n onClick: onClick,\n onKeyDown: handleKeyDown,\n role: \"button\",\n tabIndex: 0,\n \"aria-label\": `Page ${pageNumber}`,\n \"aria-current\": isActive ? \"page\" : undefined,\n style: dimensions != null ? {\n width: dimensions.width,\n height: dimensions.height\n } : undefined\n }, /*#__PURE__*/React.createElement(\"canvas\", {\n ref: canvasRef,\n className: styles.canvas\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport React, { useEffect, useRef } from \"react\";\nimport { DEFAULT_PAGE_HEIGHT, THUMBNAIL_GAP, THUMBNAIL_SCALE } from \"./constants.js\";\nimport styles from \"./PdfViewerSidebar.module.css\";\nimport { PdfViewerThumbnail } from \"./PdfViewerThumbnail.js\";\nexport function PdfViewerSidebar({\n document,\n numPages,\n currentPage,\n onPageClick\n}) {\n const scrollContainerRef = useRef(null);\n const estimatedItemHeight = Math.floor(DEFAULT_PAGE_HEIGHT * THUMBNAIL_SCALE) + THUMBNAIL_GAP + 20;\n const virtualizer = useVirtualizer({\n count: numPages,\n getScrollElement: () => scrollContainerRef.current,\n estimateSize: () => estimatedItemHeight,\n overscan: 2\n });\n\n // Auto-scroll to keep the active thumbnail visible\n useEffect(function syncActiveThumbnail() {\n virtualizer.scrollToIndex(currentPage - 1, {\n align: \"auto\"\n });\n }, [currentPage, virtualizer]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.sidebar\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.sidebarHeader\n }, \"Pages\"), /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollContainerRef,\n className: styles.scrollContainer\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.thumbnailsContainer,\n style: {\n height: virtualizer.getTotalSize()\n }\n }, virtualizer.getVirtualItems().map(virtualItem => {\n const pageNumber = virtualItem.index + 1;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: virtualItem.key,\n className: styles.thumbnailWrapper,\n style: {\n top: virtualItem.start,\n height: virtualItem.size\n }\n }, /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(PdfViewerThumbnail, {\n document: document,\n pageNumber: pageNumber,\n isActive: pageNumber === currentPage,\n onClick: () => onPageClick(pageNumber)\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.pageNumber\n }, pageNumber)));\n }))));\n}",".toolbar {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--osdk-pdf-viewer-toolbar-gap);\n padding: var(--osdk-surface-spacing);\n background-color: var(--osdk-pdf-viewer-toolbar-bg);\n border-bottom: var(--osdk-pdf-viewer-toolbar-border);\n color: var(--osdk-pdf-viewer-toolbar-color);\n font-family: var(--osdk-typography-family-default);\n font-size: var(--osdk-typography-size-body-small);\n flex-shrink: 0;\n}\n\n.toolbarGroup {\n display: flex;\n align-items: center;\n gap: var(--osdk-surface-spacing);\n}\n\n.separator {\n width: 1px;\n height: 20px;\n background-color: var(--osdk-surface-border-color-default);\n margin: 0 var(--osdk-surface-spacing);\n}\n\n.toolbarButton {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n background: none;\n color: var(--osdk-typography-color-default-rest);\n cursor: pointer;\n border-radius: var(--osdk-surface-border-radius);\n padding: 0;\n}\n\n.toolbarButton:hover {\n background-color: var(--osdk-surface-background-color-default-hover);\n}\n\n.toolbarButton:active {\n background-color: var(--osdk-surface-background-color-default-active);\n}\n\n.toolbarButton:focus-visible {\n outline: var(--osdk-focus-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n}\n\n.toolbarButton:disabled {\n opacity: 0.5;\n cursor: default;\n}\n\n.pageInput {\n width: 48px;\n text-align: center;\n border: var(--osdk-surface-border);\n border-radius: var(--osdk-surface-border-radius);\n padding: calc(0.5 * var(--osdk-surface-spacing)) var(--osdk-surface-spacing);\n font-family: var(--osdk-typography-family-default);\n font-size: var(--osdk-typography-size-body-small);\n color: var(--osdk-typography-color-default-rest);\n background-color: var(--osdk-background-primary);\n}\n\n.pageInput:focus {\n outline: var(--osdk-focus-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n}\n\n.pageCount {\n color: var(--osdk-typography-color-muted);\n}\n\n.scaleDisplay {\n font-size: var(--osdk-typography-size-body-x-small);\n color: var(--osdk-typography-color-muted);\n min-width: 40px;\n text-align: center;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Input } from \"@base-ui/react/input\";\nimport { ChevronLeft, ChevronRight, Download, Menu, Minus, Plus, Search } from \"@blueprintjs/icons\";\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { MAX_SCALE, MIN_SCALE, SCALE_STEP } from \"./constants.js\";\nimport styles from \"./PdfViewerToolbar.module.css\";\nexport function PdfViewerToolbar({\n currentPage,\n numPages,\n scale,\n sidebarOpen,\n onPageChange,\n onScaleChange,\n onSearchOpen,\n onSidebarToggle,\n onDownload\n}) {\n const [pageInputValue, setPageInputValue] = useState(String(currentPage));\n\n // Sync input display when currentPage changes from scrolling\n useEffect(function syncPageInput() {\n setPageInputValue(String(currentPage));\n }, [currentPage]);\n const handlePrevPage = useCallback(() => {\n if (currentPage > 1) {\n const newPage = currentPage - 1;\n onPageChange(newPage);\n setPageInputValue(String(newPage));\n }\n }, [currentPage, onPageChange]);\n const handleNextPage = useCallback(() => {\n if (currentPage < numPages) {\n const newPage = currentPage + 1;\n onPageChange(newPage);\n setPageInputValue(String(newPage));\n }\n }, [currentPage, numPages, onPageChange]);\n const handlePageInputChange = useCallback(e => {\n setPageInputValue(e.target.value);\n }, []);\n const handlePageInputKeyDown = useCallback(e => {\n if (e.key === \"Enter\") {\n const page = parseInt(pageInputValue, 10);\n if (!isNaN(page) && page >= 1 && page <= numPages) {\n onPageChange(page);\n } else {\n setPageInputValue(String(currentPage));\n }\n }\n }, [pageInputValue, numPages, onPageChange, currentPage]);\n const handlePageInputBlur = useCallback(() => {\n setPageInputValue(String(currentPage));\n }, [currentPage]);\n const handleZoomIn = useCallback(() => {\n const newScale = Math.min(scale + SCALE_STEP, MAX_SCALE);\n onScaleChange(newScale);\n }, [scale, onScaleChange]);\n const handleZoomOut = useCallback(() => {\n const newScale = Math.max(scale - SCALE_STEP, MIN_SCALE);\n onScaleChange(newScale);\n }, [scale, onScaleChange]);\n const scalePercent = `${Math.round(scale * 100)}%`;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.toolbar\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: styles.toolbarButton,\n onClick: onSidebarToggle,\n \"aria-label\": sidebarOpen ? \"Close sidebar\" : \"Open sidebar\",\n title: sidebarOpen ? \"Close sidebar\" : \"Open sidebar\",\n \"aria-pressed\": sidebarOpen,\n type: \"button\"\n }, /*#__PURE__*/React.createElement(Menu, {\n size: 16\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.separator\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.toolbarGroup\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: styles.toolbarButton,\n onClick: handlePrevPage,\n disabled: currentPage <= 1,\n \"aria-label\": \"Previous page\",\n title: \"Previous page\",\n type: \"button\"\n }, /*#__PURE__*/React.createElement(ChevronLeft, {\n size: 16\n })), /*#__PURE__*/React.createElement(Input, {\n className: styles.pageInput,\n type: \"text\",\n value: pageInputValue,\n onChange: handlePageInputChange,\n onKeyDown: handlePageInputKeyDown,\n onBlur: handlePageInputBlur,\n \"aria-label\": \"Page number\"\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.pageCount\n }, \"of \", numPages), /*#__PURE__*/React.createElement(\"button\", {\n className: styles.toolbarButton,\n onClick: handleNextPage,\n disabled: currentPage >= numPages,\n \"aria-label\": \"Next page\",\n title: \"Next page\",\n type: \"button\"\n }, /*#__PURE__*/React.createElement(ChevronRight, {\n size: 16\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.separator\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.toolbarGroup\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: styles.toolbarButton,\n onClick: handleZoomOut,\n disabled: scale <= MIN_SCALE,\n \"aria-label\": \"Zoom out\",\n title: \"Zoom out\",\n type: \"button\"\n }, /*#__PURE__*/React.createElement(Minus, {\n size: 16\n })), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.scaleDisplay\n }, scalePercent), /*#__PURE__*/React.createElement(\"button\", {\n className: styles.toolbarButton,\n onClick: handleZoomIn,\n disabled: scale >= MAX_SCALE,\n \"aria-label\": \"Zoom in\",\n title: \"Zoom in\",\n type: \"button\"\n }, /*#__PURE__*/React.createElement(Plus, {\n size: 16\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.separator\n }), /*#__PURE__*/React.createElement(\"button\", {\n className: styles.toolbarButton,\n onClick: onSearchOpen,\n \"aria-label\": \"Search\",\n title: \"Search\",\n type: \"button\"\n }, /*#__PURE__*/React.createElement(Search, {\n size: 16\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.separator\n }), /*#__PURE__*/React.createElement(\"button\", {\n className: styles.toolbarButton,\n onClick: onDownload,\n \"aria-label\": \"Download\",\n title: \"Download\",\n type: \"button\"\n }, /*#__PURE__*/React.createElement(Download, {\n size: 16\n })));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Error as ErrorIcon, Spin } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport \"pdfjs-dist/web/pdf_viewer.css\";\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { EMPTY_ANNOTATION_ARRAY, EMPTY_ANNOTATIONS } from \"./constants.js\";\nimport { usePdfAnnotationPortals } from \"./hooks/usePdfAnnotationPortals.js\";\nimport { usePdfDocument } from \"./hooks/usePdfDocument.js\";\nimport { usePdfViewer } from \"./hooks/usePdfViewer.js\";\nimport { usePdfViewerSearch } from \"./hooks/usePdfViewerSearch.js\";\nimport { usePdfViewerSync } from \"./hooks/usePdfViewerSync.js\";\nimport styles from \"./PdfViewer.module.css\";\nimport { PdfViewerAnnotationLayer } from \"./PdfViewerAnnotationLayer.js\";\nimport { PdfViewerSearchBar } from \"./PdfViewerSearchBar.js\";\nimport { PdfViewerSidebar } from \"./PdfViewerSidebar.js\";\nimport { PdfViewerToolbar } from \"./PdfViewerToolbar.js\";\nexport function BasePdfViewer({\n src,\n annotations = EMPTY_ANNOTATIONS,\n onAnnotationClick,\n initialPage = 1,\n initialScale = 1.0,\n initialSidebarOpen = false,\n className\n}) {\n const {\n document,\n numPages,\n loading,\n error\n } = usePdfDocument(src);\n const [scale, setScale] = useState(initialScale);\n const [sidebarOpen, setSidebarOpen] = useState(initialSidebarOpen);\n const [currentPage, setCurrentPage] = useState(initialPage);\n const containerRef = useRef(null);\n const viewerRef = useRef(null);\n const {\n pdfViewerRef,\n eventBusRef,\n findControllerRef\n } = usePdfViewer(containerRef, viewerRef, document, initialScale);\n const search = usePdfViewerSearch(eventBusRef, findControllerRef, document);\n const handleScaleChange = useCallback(newScale => {\n setScale(newScale);\n }, []);\n const handlePageChange = useCallback(page => {\n setCurrentPage(page);\n }, []);\n const {\n scrollToPage\n } = usePdfViewerSync({\n pdfViewerRef,\n eventBusRef,\n document,\n scale,\n onScaleChange: handleScaleChange,\n onPageChange: handlePageChange\n });\n const portalTargets = usePdfAnnotationPortals(pdfViewerRef, eventBusRef, document);\n\n // Set initial page after viewer is ready\n useEffect(function setInitialPage() {\n if (pdfViewerRef.current != null && initialPage > 1) {\n pdfViewerRef.current.currentPageNumber = initialPage;\n }\n }, [pdfViewerRef, initialPage]);\n\n // Ctrl+F handler\n useEffect(function registerSearchShortcut() {\n const handleKeyDown = e => {\n if ((e.ctrlKey || e.metaKey) && e.key === \"f\") {\n e.preventDefault();\n search.openSearch();\n }\n };\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [search.openSearch]);\n const handleDownload = useCallback(() => {\n if (document == null) {\n return;\n }\n void document.getData().then(data => {\n const blob = new Blob([data.buffer], {\n type: \"application/pdf\"\n });\n const url = URL.createObjectURL(blob);\n // Extract filename from URL by taking the last path segment and stripping query params\n const filename = typeof src === \"string\" ? src.split(\"/\").pop()?.split(\"?\")[0] || \"document.pdf\" : \"document.pdf\";\n const a = globalThis.document.createElement(\"a\");\n a.href = url;\n a.download = filename;\n a.click();\n URL.revokeObjectURL(url);\n });\n }, [document, src]);\n const handleSidebarToggle = useCallback(() => {\n setSidebarOpen(prev => !prev);\n }, []);\n const handleToolbarPageChange = useCallback(page => {\n setCurrentPage(page);\n scrollToPage(page);\n }, [scrollToPage]);\n const rootClassName = classnames(styles.pdfViewer, className);\n if (loading) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: rootClassName\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.loadingContainer\n }, /*#__PURE__*/React.createElement(Spin, {\n className: styles.spinnerIcon\n }), \"Loading\\u2026\"));\n }\n if (error != null) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: rootClassName\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.errorContainer\n }, /*#__PURE__*/React.createElement(ErrorIcon, {\n className: styles.errorIcon\n }), \"Failed to load PDF: \", error.message));\n }\n if (document == null) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: rootClassName\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.loadingContainer\n }, \"No document\"));\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: rootClassName\n }, /*#__PURE__*/React.createElement(PdfViewerToolbar, {\n currentPage: currentPage,\n numPages: numPages,\n scale: scale,\n sidebarOpen: sidebarOpen,\n onPageChange: handleToolbarPageChange,\n onScaleChange: setScale,\n onSearchOpen: search.openSearch,\n onSidebarToggle: handleSidebarToggle,\n onDownload: handleDownload\n }), search.isSearchOpen && /*#__PURE__*/React.createElement(PdfViewerSearchBar, {\n query: search.query,\n totalMatches: search.totalMatches,\n currentMatchIndex: search.currentMatchIndex,\n onQueryChange: search.setQuery,\n onNext: search.nextMatch,\n onPrev: search.prevMatch,\n onClose: search.closeSearch\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.contentArea\n }, sidebarOpen && /*#__PURE__*/React.createElement(PdfViewerSidebar, {\n document: document,\n numPages: numPages,\n currentPage: currentPage,\n onPageClick: handleToolbarPageChange\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.scrollContainerWrapper\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: containerRef,\n className: styles.scrollContainer\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: viewerRef,\n className: \"pdfViewer\"\n }), portalTargets.map(target => {\n const pageAnnotations = annotations[target.pageNumber] ?? EMPTY_ANNOTATION_ARRAY;\n if (pageAnnotations.length === 0) {\n return null;\n }\n return /*#__PURE__*/createPortal(/*#__PURE__*/React.createElement(PdfViewerAnnotationLayer, {\n key: target.pageNumber,\n annotations: pageAnnotations,\n pageHeight: target.pageHeight,\n scale: target.scale,\n onAnnotationClick: onAnnotationClick\n }), target.container);\n })))));\n}","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Error as ErrorIcon, Spin } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React, { useEffect, useState } from \"react\";\nimport { BasePdfViewer } from \"./PdfViewer.js\";\nimport styles from \"./PdfViewer.module.css\";\nasync function fetchMediaContents(media) {\n const result = await media.fetchContents();\n return result.arrayBuffer();\n}\nexport function PdfRenderer({\n media,\n className,\n ...pdfViewerProps\n}) {\n const [src, setSrc] = useState(undefined);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(undefined);\n\n // This is required until we either support React 19+ or a data fetching hook\n useEffect(function fetchMediaSource() {\n let cancelled = false;\n setLoading(true);\n setError(undefined);\n setSrc(undefined);\n fetchMediaContents(media).then(buffer => {\n if (!cancelled) {\n setSrc(buffer);\n setLoading(false);\n }\n }).catch(err => {\n if (!cancelled) {\n setError(err instanceof Error ? err : new Error(String(err)));\n setLoading(false);\n }\n });\n return () => {\n cancelled = true;\n };\n }, [media]);\n const rootClassName = classnames(styles.pdfViewer, className);\n if (loading) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: rootClassName\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.loadingContainer\n }, /*#__PURE__*/React.createElement(Spin, {\n className: styles.spinnerIcon\n }), \"Loading\\u2026\"));\n }\n if (error != null) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: rootClassName\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.errorContainer\n }, /*#__PURE__*/React.createElement(ErrorIcon, {\n className: styles.errorIcon\n }), \"Failed to load PDF: \", error.message));\n }\n if (src == null) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: rootClassName\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.loadingContainer\n }, \"No document\"));\n }\n return /*#__PURE__*/React.createElement(BasePdfViewer, _extends({\n src: src,\n className: className\n }, pdfViewerProps));\n}"]}