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

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 (510) hide show
  1. package/AGENTS.md +14 -97
  2. package/CHANGELOG.md +35 -0
  3. package/README.md +23 -7
  4. package/build/browser/action-form/ActionFormApi.js.map +1 -1
  5. package/build/browser/action-form/BaseForm.js +18 -5
  6. package/build/browser/action-form/BaseForm.js.map +1 -1
  7. package/build/browser/action-form/BaseForm.module.css +38 -0
  8. package/build/browser/action-form/BaseForm.module.css.js +8 -0
  9. package/build/browser/action-form/FormField.js +42 -0
  10. package/build/browser/action-form/FormField.js.map +1 -0
  11. package/build/browser/action-form/FormField.module.css +41 -0
  12. package/build/browser/action-form/FormField.module.css.js +10 -0
  13. package/build/browser/action-form/FormFieldApi.js.map +1 -1
  14. package/build/browser/action-form/FormHeader.js +26 -0
  15. package/build/browser/action-form/FormHeader.js.map +1 -0
  16. package/build/browser/action-form/FormHeader.module.css +26 -0
  17. package/build/browser/action-form/FormHeader.module.css.js +6 -0
  18. package/build/browser/action-form/fields/DateCalendar.js +70 -0
  19. package/build/browser/action-form/fields/DateCalendar.js.map +1 -0
  20. package/build/browser/action-form/fields/DateCalendar.module.css +136 -0
  21. package/build/browser/action-form/fields/DateCalendar.module.css.js +22 -0
  22. package/build/browser/action-form/fields/DatetimePickerField.js +98 -0
  23. package/build/browser/action-form/fields/DatetimePickerField.js.map +1 -0
  24. package/build/browser/action-form/fields/DatetimePickerField.module.css +66 -0
  25. package/build/browser/action-form/fields/DatetimePickerField.module.css.js +10 -0
  26. package/build/browser/action-form/fields/FormFieldRenderer.js +17 -6
  27. package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -1
  28. package/build/browser/action-form/fields/LazyDateCalendar.js +27 -0
  29. package/build/browser/action-form/fields/LazyDateCalendar.js.map +1 -0
  30. package/build/browser/action-form/fields/TextInputField.js +2 -0
  31. package/build/browser/action-form/fields/TextInputField.js.map +1 -1
  32. package/build/browser/action-form/fields/TextInputField.module.css +56 -0
  33. package/build/browser/action-form/fields/TextInputField.module.css.js +6 -0
  34. package/build/browser/base-components/checkbox/Checkbox.js +2 -2
  35. package/build/browser/base-components/checkbox/Checkbox.js.map +1 -1
  36. package/build/browser/base-components/checkbox/Checkbox.module.css +0 -4
  37. package/build/browser/base-components/combobox/Combobox.js +3 -8
  38. package/build/browser/base-components/combobox/Combobox.js.map +1 -1
  39. package/build/browser/base-components/combobox/Combobox.module.css +0 -3
  40. package/build/browser/base-components/draggable-list/DraggableList.js +2 -4
  41. package/build/browser/base-components/draggable-list/DraggableList.js.map +1 -1
  42. package/build/browser/base-components/search-bar/SearchBar.module.css +2 -2
  43. package/build/browser/base-components/select/Select.js +1 -3
  44. package/build/browser/base-components/select/Select.js.map +1 -1
  45. package/build/browser/base-components/select/Select.module.css +0 -2
  46. package/build/browser/base-components/switch/Switch.module.css +0 -1
  47. package/build/browser/filter-list/FilterInput.js +14 -5
  48. package/build/browser/filter-list/FilterInput.js.map +1 -1
  49. package/build/browser/filter-list/FilterList.js +22 -10
  50. package/build/browser/filter-list/FilterList.js.map +1 -1
  51. package/build/browser/filter-list/FilterListApi.js.map +1 -1
  52. package/build/browser/filter-list/base/AddFilterPopover.js +4 -3
  53. package/build/browser/filter-list/base/AddFilterPopover.js.map +1 -1
  54. package/build/browser/filter-list/base/BaseFilterList.js +3 -1
  55. package/build/browser/filter-list/base/BaseFilterList.js.map +1 -1
  56. package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -1
  57. package/build/browser/filter-list/base/ExcludeDropdown.js +61 -0
  58. package/build/browser/filter-list/base/ExcludeDropdown.js.map +1 -0
  59. package/build/browser/filter-list/base/ExcludeDropdown.module.css +94 -0
  60. package/build/browser/filter-list/base/ExcludeDropdown.module.css.js +12 -0
  61. package/build/browser/filter-list/base/FilterIcons.js +0 -39
  62. package/build/browser/filter-list/base/FilterIcons.js.map +1 -1
  63. package/build/browser/filter-list/base/FilterInputExcludeRow.js +55 -0
  64. package/build/browser/filter-list/base/FilterInputExcludeRow.js.map +1 -0
  65. package/build/browser/filter-list/base/FilterListHeader.js +3 -2
  66. package/build/browser/filter-list/base/FilterListHeader.js.map +1 -1
  67. package/build/browser/filter-list/base/FilterListItem.js +72 -23
  68. package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
  69. package/build/browser/filter-list/base/FilterListItem.module.css +96 -20
  70. package/build/browser/filter-list/base/FilterListItem.module.css.js +7 -2
  71. package/build/browser/filter-list/base/inputs/CheckboxListInput.js +2 -2
  72. package/build/browser/filter-list/base/inputs/CheckboxListInput.js.map +1 -1
  73. package/build/browser/filter-list/base/inputs/ContainsTextInput.js +2 -6
  74. package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
  75. package/build/browser/filter-list/base/inputs/DateRangeInput.js +1 -1
  76. package/build/browser/filter-list/base/inputs/DateRangeInput.js.map +1 -1
  77. package/build/browser/filter-list/base/inputs/ListogramInput.js +2 -2
  78. package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -1
  79. package/build/browser/filter-list/base/inputs/MultiDateInput.js +1 -1
  80. package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -1
  81. package/build/browser/filter-list/base/inputs/RangeInput.js +2 -2
  82. package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -1
  83. package/build/browser/filter-list/base/inputs/SingleDateInput.js +1 -1
  84. package/build/browser/filter-list/base/inputs/SingleDateInput.js.map +1 -1
  85. package/build/browser/filter-list/base/inputs/SingleSelectInput.js +1 -3
  86. package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
  87. package/build/browser/filter-list/base/inputs/TimelineInput.js +1 -1
  88. package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -1
  89. package/build/browser/filter-list/base/inputs/index.js +1 -1
  90. package/build/browser/filter-list/base/inputs/index.js.map +1 -1
  91. package/build/{esm/filter-list/base/inputs/useStaleData.js → browser/filter-list/base/inputs/useStableData.js} +5 -5
  92. package/build/browser/filter-list/base/inputs/useStableData.js.map +1 -0
  93. package/build/browser/filter-list/hooks/useFilterListState.js +3 -0
  94. package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
  95. package/build/browser/filter-list/hooks/useFilterVisibility.js +7 -1
  96. package/build/browser/filter-list/hooks/useFilterVisibility.js.map +1 -1
  97. package/build/browser/filter-list/hooks/usePropertyAggregation.js +3 -2
  98. package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -1
  99. package/build/browser/filter-list/inputs/CheckboxListFilterInput.js +15 -5
  100. package/build/browser/filter-list/inputs/CheckboxListFilterInput.js.map +1 -1
  101. package/build/browser/filter-list/inputs/DateRangeFilterInput.js +10 -6
  102. package/build/browser/filter-list/inputs/DateRangeFilterInput.js.map +1 -1
  103. package/build/browser/filter-list/inputs/LinkedPropertyInput.js +41 -18
  104. package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
  105. package/build/browser/filter-list/inputs/ListogramFilterInput.js +15 -5
  106. package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -1
  107. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js +12 -4
  108. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
  109. package/build/browser/filter-list/inputs/NumberRangeFilterInput.js +10 -6
  110. package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
  111. package/build/browser/filter-list/inputs/PropertyFilterInput.js +36 -10
  112. package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -1
  113. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js +12 -4
  114. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
  115. package/build/browser/filter-list/inputs/TextTagsFilterInput.js +12 -4
  116. package/build/browser/filter-list/inputs/TextTagsFilterInput.js.map +1 -1
  117. package/build/browser/filter-list/utils/filterStateToWhereClause.js +1 -1
  118. package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  119. package/build/browser/filter-list/utils/filterValues.js +29 -1
  120. package/build/browser/filter-list/utils/filterValues.js.map +1 -1
  121. package/build/browser/object-table/LoadingCell.js +2 -1
  122. package/build/browser/object-table/LoadingCell.js.map +1 -1
  123. package/build/browser/object-table/LoadingCell.module.css +3 -21
  124. package/build/browser/object-table/LoadingCell.module.css.js +1 -2
  125. package/build/browser/object-table/LoadingStateTable.js +2 -1
  126. package/build/browser/object-table/LoadingStateTable.js.map +1 -1
  127. package/build/browser/object-table/MultiColumnSortDialog.js +1 -3
  128. package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -1
  129. package/build/browser/object-table/MultiColumnSortDialog.module.css +0 -1
  130. package/build/browser/object-table/TableCell.module.css +1 -1
  131. package/build/browser/object-table/TableHeader.module.css +2 -2
  132. package/build/browser/object-table/TableHeaderWithPopover.js +2 -4
  133. package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
  134. package/build/browser/object-table/TableHeaderWithPopover.module.css +1 -0
  135. package/build/browser/pdf-viewer/PdfRenderer.js +1 -1
  136. package/build/browser/pdf-viewer/PdfRenderer.js.map +1 -1
  137. package/build/browser/pdf-viewer/PdfViewer.js +59 -118
  138. package/build/browser/pdf-viewer/PdfViewer.js.map +1 -1
  139. package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -0
  140. package/build/{esm/pdf-viewer → browser/pdf-viewer/components}/PdfViewerAnnotationLayer.module.css +0 -1
  141. package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.module.css.js +11 -0
  142. package/build/browser/pdf-viewer/components/PdfViewerContent.js +113 -0
  143. package/build/browser/pdf-viewer/components/PdfViewerContent.js.map +1 -0
  144. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js +98 -0
  145. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -0
  146. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.module.css +89 -0
  147. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.module.css.js +15 -0
  148. package/build/browser/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -0
  149. package/build/browser/pdf-viewer/components/PdfViewerSearchBar.module.css.js +10 -0
  150. package/build/browser/pdf-viewer/{PdfViewerSidebar.js → components/PdfViewerSidebar.js} +9 -5
  151. package/build/browser/pdf-viewer/components/PdfViewerSidebar.js.map +1 -0
  152. package/build/{esm/pdf-viewer → browser/pdf-viewer/components}/PdfViewerSidebar.module.css +0 -9
  153. package/build/browser/pdf-viewer/{PdfViewerSidebar.module.css.js → components/PdfViewerSidebar.module.css.js} +5 -6
  154. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.js +54 -0
  155. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -0
  156. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.module.css +70 -0
  157. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.module.css.js +8 -0
  158. package/build/browser/pdf-viewer/{PdfViewerThumbnail.js → components/PdfViewerThumbnail.js} +1 -1
  159. package/build/browser/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -0
  160. package/build/browser/pdf-viewer/{PdfViewerThumbnail.module.css.js → components/PdfViewerThumbnail.module.css.js} +3 -3
  161. package/build/browser/pdf-viewer/{PdfViewerToolbar.js → components/PdfViewerToolbar.js} +39 -12
  162. package/build/browser/pdf-viewer/components/PdfViewerToolbar.js.map +1 -0
  163. package/build/browser/pdf-viewer/{PdfViewerToolbar.module.css → components/PdfViewerToolbar.module.css} +2 -2
  164. package/build/browser/pdf-viewer/components/PdfViewerToolbar.module.css.js +12 -0
  165. package/build/browser/pdf-viewer/constants.js +7 -5
  166. package/build/browser/pdf-viewer/constants.js.map +1 -1
  167. package/build/browser/pdf-viewer/hooks/usePdfDocument.js +2 -3
  168. package/build/browser/pdf-viewer/hooks/usePdfDocument.js.map +1 -1
  169. package/build/browser/pdf-viewer/hooks/usePdfOutline.js +268 -0
  170. package/build/browser/pdf-viewer/hooks/usePdfOutline.js.map +1 -0
  171. package/build/browser/pdf-viewer/hooks/usePdfViewer.js +12 -1
  172. package/build/browser/pdf-viewer/hooks/usePdfViewer.js.map +1 -1
  173. package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js +80 -0
  174. package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -0
  175. package/build/browser/pdf-viewer/hooks/usePdfViewerState.js +135 -0
  176. package/build/browser/pdf-viewer/hooks/usePdfViewerState.js.map +1 -0
  177. package/build/browser/pdf-viewer/types.js.map +1 -1
  178. package/build/browser/public/experimental.js +23 -2
  179. package/build/browser/public/experimental.js.map +1 -1
  180. package/build/browser/public/primitives.js +20 -0
  181. package/build/browser/public/primitives.js.map +1 -0
  182. package/build/browser/{filter-list/base/inputs → shared}/dateUtils.js +38 -2
  183. package/build/browser/shared/dateUtils.js.map +1 -0
  184. package/build/browser/styles.css +817 -136
  185. package/build/cjs/DateCalendar-QWGFKD6J.css +113 -0
  186. package/build/cjs/DateCalendar-QWGFKD6J.css.map +1 -0
  187. package/build/cjs/DateCalendar-R44GMN3O.cjs +67 -0
  188. package/build/cjs/DateCalendar-R44GMN3O.cjs.map +1 -0
  189. package/build/cjs/chunk-GT6IV6LV.cjs +163 -0
  190. package/build/cjs/chunk-GT6IV6LV.cjs.map +1 -0
  191. package/build/cjs/chunk-HMQTYQEX.cjs +9 -0
  192. package/build/cjs/chunk-HMQTYQEX.cjs.map +1 -0
  193. package/build/cjs/chunk-UZ2E5NRX.cjs +8 -0
  194. package/build/cjs/chunk-UZ2E5NRX.cjs.map +1 -0
  195. package/build/cjs/index.cjs +2 -0
  196. package/build/cjs/public/experimental.cjs +3227 -1848
  197. package/build/cjs/public/experimental.cjs.map +1 -1
  198. package/build/cjs/public/experimental.css +650 -172
  199. package/build/cjs/public/experimental.css.map +1 -1
  200. package/build/cjs/public/experimental.d.cts +685 -17
  201. package/build/cjs/public/primitives.cjs +25 -0
  202. package/build/cjs/public/primitives.cjs.map +1 -0
  203. package/build/cjs/public/primitives.css +154 -0
  204. package/build/cjs/public/primitives.css.map +1 -0
  205. package/build/cjs/public/primitives.d.cts +49 -0
  206. package/build/esm/action-form/ActionFormApi.js.map +1 -1
  207. package/build/esm/action-form/BaseForm.js +18 -5
  208. package/build/esm/action-form/BaseForm.js.map +1 -1
  209. package/build/esm/action-form/BaseForm.module.css +38 -0
  210. package/build/esm/action-form/FormField.js +42 -0
  211. package/build/esm/action-form/FormField.js.map +1 -0
  212. package/build/esm/action-form/FormField.module.css +41 -0
  213. package/build/esm/action-form/FormFieldApi.js.map +1 -1
  214. package/build/esm/action-form/FormHeader.js +26 -0
  215. package/build/esm/action-form/FormHeader.js.map +1 -0
  216. package/build/esm/action-form/FormHeader.module.css +26 -0
  217. package/build/esm/action-form/fields/DateCalendar.js +70 -0
  218. package/build/esm/action-form/fields/DateCalendar.js.map +1 -0
  219. package/build/esm/action-form/fields/DateCalendar.module.css +136 -0
  220. package/build/esm/action-form/fields/DatetimePickerField.js +98 -0
  221. package/build/esm/action-form/fields/DatetimePickerField.js.map +1 -0
  222. package/build/esm/action-form/fields/DatetimePickerField.module.css +66 -0
  223. package/build/esm/action-form/fields/FormFieldRenderer.js +17 -6
  224. package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -1
  225. package/build/esm/action-form/fields/LazyDateCalendar.js +27 -0
  226. package/build/esm/action-form/fields/LazyDateCalendar.js.map +1 -0
  227. package/build/esm/action-form/fields/TextInputField.js +2 -0
  228. package/build/esm/action-form/fields/TextInputField.js.map +1 -1
  229. package/build/esm/action-form/fields/TextInputField.module.css +56 -0
  230. package/build/esm/base-components/checkbox/Checkbox.js +2 -2
  231. package/build/esm/base-components/checkbox/Checkbox.js.map +1 -1
  232. package/build/esm/base-components/checkbox/Checkbox.module.css +0 -4
  233. package/build/esm/base-components/combobox/Combobox.js +3 -8
  234. package/build/esm/base-components/combobox/Combobox.js.map +1 -1
  235. package/build/esm/base-components/combobox/Combobox.module.css +0 -3
  236. package/build/esm/base-components/draggable-list/DraggableList.js +2 -4
  237. package/build/esm/base-components/draggable-list/DraggableList.js.map +1 -1
  238. package/build/esm/base-components/search-bar/SearchBar.module.css +2 -2
  239. package/build/esm/base-components/select/Select.js +1 -3
  240. package/build/esm/base-components/select/Select.js.map +1 -1
  241. package/build/esm/base-components/select/Select.module.css +0 -2
  242. package/build/esm/base-components/switch/Switch.module.css +0 -1
  243. package/build/esm/filter-list/FilterInput.js +14 -5
  244. package/build/esm/filter-list/FilterInput.js.map +1 -1
  245. package/build/esm/filter-list/FilterList.js +22 -10
  246. package/build/esm/filter-list/FilterList.js.map +1 -1
  247. package/build/esm/filter-list/FilterListApi.js.map +1 -1
  248. package/build/esm/filter-list/base/AddFilterPopover.js +4 -3
  249. package/build/esm/filter-list/base/AddFilterPopover.js.map +1 -1
  250. package/build/esm/filter-list/base/BaseFilterList.js +3 -1
  251. package/build/esm/filter-list/base/BaseFilterList.js.map +1 -1
  252. package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -1
  253. package/build/esm/filter-list/base/ExcludeDropdown.js +61 -0
  254. package/build/esm/filter-list/base/ExcludeDropdown.js.map +1 -0
  255. package/build/esm/filter-list/base/ExcludeDropdown.module.css +94 -0
  256. package/build/esm/filter-list/base/FilterIcons.js +0 -39
  257. package/build/esm/filter-list/base/FilterIcons.js.map +1 -1
  258. package/build/esm/filter-list/base/FilterInputExcludeRow.js +55 -0
  259. package/build/esm/filter-list/base/FilterInputExcludeRow.js.map +1 -0
  260. package/build/esm/filter-list/base/FilterListHeader.js +3 -2
  261. package/build/esm/filter-list/base/FilterListHeader.js.map +1 -1
  262. package/build/esm/filter-list/base/FilterListItem.js +72 -23
  263. package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
  264. package/build/esm/filter-list/base/FilterListItem.module.css +96 -20
  265. package/build/esm/filter-list/base/inputs/CheckboxListInput.js +2 -2
  266. package/build/esm/filter-list/base/inputs/CheckboxListInput.js.map +1 -1
  267. package/build/esm/filter-list/base/inputs/ContainsTextInput.js +2 -6
  268. package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
  269. package/build/esm/filter-list/base/inputs/DateRangeInput.js +1 -1
  270. package/build/esm/filter-list/base/inputs/DateRangeInput.js.map +1 -1
  271. package/build/esm/filter-list/base/inputs/ListogramInput.js +2 -2
  272. package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -1
  273. package/build/esm/filter-list/base/inputs/MultiDateInput.js +1 -1
  274. package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -1
  275. package/build/esm/filter-list/base/inputs/RangeInput.js +2 -2
  276. package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -1
  277. package/build/esm/filter-list/base/inputs/SingleDateInput.js +1 -1
  278. package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -1
  279. package/build/esm/filter-list/base/inputs/SingleSelectInput.js +1 -3
  280. package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
  281. package/build/esm/filter-list/base/inputs/TimelineInput.js +1 -1
  282. package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -1
  283. package/build/esm/filter-list/base/inputs/index.js +1 -1
  284. package/build/esm/filter-list/base/inputs/index.js.map +1 -1
  285. package/build/{browser/filter-list/base/inputs/useStaleData.js → esm/filter-list/base/inputs/useStableData.js} +5 -5
  286. package/build/esm/filter-list/base/inputs/useStableData.js.map +1 -0
  287. package/build/esm/filter-list/hooks/useFilterListState.js +3 -0
  288. package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
  289. package/build/esm/filter-list/hooks/useFilterVisibility.js +7 -1
  290. package/build/esm/filter-list/hooks/useFilterVisibility.js.map +1 -1
  291. package/build/esm/filter-list/hooks/usePropertyAggregation.js +3 -2
  292. package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -1
  293. package/build/esm/filter-list/inputs/CheckboxListFilterInput.js +15 -5
  294. package/build/esm/filter-list/inputs/CheckboxListFilterInput.js.map +1 -1
  295. package/build/esm/filter-list/inputs/DateRangeFilterInput.js +10 -6
  296. package/build/esm/filter-list/inputs/DateRangeFilterInput.js.map +1 -1
  297. package/build/esm/filter-list/inputs/LinkedPropertyInput.js +41 -18
  298. package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
  299. package/build/esm/filter-list/inputs/ListogramFilterInput.js +15 -5
  300. package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -1
  301. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js +12 -4
  302. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
  303. package/build/esm/filter-list/inputs/NumberRangeFilterInput.js +10 -6
  304. package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
  305. package/build/esm/filter-list/inputs/PropertyFilterInput.js +36 -10
  306. package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -1
  307. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js +12 -4
  308. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
  309. package/build/esm/filter-list/inputs/TextTagsFilterInput.js +12 -4
  310. package/build/esm/filter-list/inputs/TextTagsFilterInput.js.map +1 -1
  311. package/build/esm/filter-list/utils/filterStateToWhereClause.js +1 -1
  312. package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  313. package/build/esm/filter-list/utils/filterValues.js +29 -1
  314. package/build/esm/filter-list/utils/filterValues.js.map +1 -1
  315. package/build/esm/object-table/LoadingCell.js +2 -1
  316. package/build/esm/object-table/LoadingCell.js.map +1 -1
  317. package/build/esm/object-table/LoadingCell.module.css +3 -21
  318. package/build/esm/object-table/LoadingStateTable.js +2 -1
  319. package/build/esm/object-table/LoadingStateTable.js.map +1 -1
  320. package/build/esm/object-table/MultiColumnSortDialog.js +1 -3
  321. package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -1
  322. package/build/esm/object-table/MultiColumnSortDialog.module.css +0 -1
  323. package/build/esm/object-table/TableCell.module.css +1 -1
  324. package/build/esm/object-table/TableHeader.module.css +2 -2
  325. package/build/esm/object-table/TableHeaderWithPopover.js +2 -4
  326. package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
  327. package/build/esm/object-table/TableHeaderWithPopover.module.css +1 -0
  328. package/build/esm/pdf-viewer/PdfRenderer.js +1 -1
  329. package/build/esm/pdf-viewer/PdfRenderer.js.map +1 -1
  330. package/build/esm/pdf-viewer/PdfViewer.js +59 -118
  331. package/build/esm/pdf-viewer/PdfViewer.js.map +1 -1
  332. package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -0
  333. package/build/{browser/pdf-viewer → esm/pdf-viewer/components}/PdfViewerAnnotationLayer.module.css +0 -1
  334. package/build/esm/pdf-viewer/components/PdfViewerContent.js +113 -0
  335. package/build/esm/pdf-viewer/components/PdfViewerContent.js.map +1 -0
  336. package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js +98 -0
  337. package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -0
  338. package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.module.css +89 -0
  339. package/build/esm/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -0
  340. package/build/esm/pdf-viewer/{PdfViewerSidebar.js → components/PdfViewerSidebar.js} +9 -5
  341. package/build/esm/pdf-viewer/components/PdfViewerSidebar.js.map +1 -0
  342. package/build/{browser/pdf-viewer → esm/pdf-viewer/components}/PdfViewerSidebar.module.css +0 -9
  343. package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.js +54 -0
  344. package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -0
  345. package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.module.css +70 -0
  346. package/build/esm/pdf-viewer/{PdfViewerThumbnail.js → components/PdfViewerThumbnail.js} +1 -1
  347. package/build/esm/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -0
  348. package/build/esm/pdf-viewer/{PdfViewerToolbar.js → components/PdfViewerToolbar.js} +39 -12
  349. package/build/esm/pdf-viewer/components/PdfViewerToolbar.js.map +1 -0
  350. package/build/esm/pdf-viewer/{PdfViewerToolbar.module.css → components/PdfViewerToolbar.module.css} +2 -2
  351. package/build/esm/pdf-viewer/constants.js +7 -5
  352. package/build/esm/pdf-viewer/constants.js.map +1 -1
  353. package/build/esm/pdf-viewer/hooks/usePdfDocument.js +2 -3
  354. package/build/esm/pdf-viewer/hooks/usePdfDocument.js.map +1 -1
  355. package/build/esm/pdf-viewer/hooks/usePdfOutline.js +268 -0
  356. package/build/esm/pdf-viewer/hooks/usePdfOutline.js.map +1 -0
  357. package/build/esm/pdf-viewer/hooks/usePdfViewer.js +12 -1
  358. package/build/esm/pdf-viewer/hooks/usePdfViewer.js.map +1 -1
  359. package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js +80 -0
  360. package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -0
  361. package/build/esm/pdf-viewer/hooks/usePdfViewerState.js +135 -0
  362. package/build/esm/pdf-viewer/hooks/usePdfViewerState.js.map +1 -0
  363. package/build/esm/pdf-viewer/types.js.map +1 -1
  364. package/build/esm/public/experimental.js +23 -2
  365. package/build/esm/public/experimental.js.map +1 -1
  366. package/build/esm/public/primitives.js +20 -0
  367. package/build/esm/public/primitives.js.map +1 -0
  368. package/build/esm/{filter-list/base/inputs → shared}/dateUtils.js +38 -2
  369. package/build/esm/shared/dateUtils.js.map +1 -0
  370. package/build/types/action-form/ActionFormApi.d.ts +1 -0
  371. package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
  372. package/build/types/action-form/BaseForm.d.ts.map +1 -1
  373. package/build/types/action-form/FormField.d.ts +11 -0
  374. package/build/types/action-form/FormField.d.ts.map +1 -0
  375. package/build/types/action-form/FormFieldApi.d.ts +22 -8
  376. package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
  377. package/build/types/action-form/FormHeader.d.ts +6 -0
  378. package/build/types/action-form/FormHeader.d.ts.map +1 -0
  379. package/build/types/action-form/fields/DateCalendar.d.ts +9 -0
  380. package/build/types/action-form/fields/DateCalendar.d.ts.map +1 -0
  381. package/build/types/action-form/fields/DatetimePickerField.d.ts +3 -0
  382. package/build/types/action-form/fields/DatetimePickerField.d.ts.map +1 -0
  383. package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -1
  384. package/build/types/action-form/fields/LazyDateCalendar.d.ts +3 -0
  385. package/build/types/action-form/fields/LazyDateCalendar.d.ts.map +1 -0
  386. package/build/types/action-form/fields/TextInputField.d.ts.map +1 -1
  387. package/build/types/filter-list/FilterInput.d.ts +3 -1
  388. package/build/types/filter-list/FilterInput.d.ts.map +1 -1
  389. package/build/types/filter-list/FilterListApi.d.ts +14 -10
  390. package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
  391. package/build/types/filter-list/base/AddFilterPopover.d.ts +2 -1
  392. package/build/types/filter-list/base/AddFilterPopover.d.ts.map +1 -1
  393. package/build/types/filter-list/base/BaseFilterListApi.d.ts +4 -1
  394. package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -1
  395. package/build/types/filter-list/base/ExcludeDropdown.d.ts +8 -0
  396. package/build/types/filter-list/base/ExcludeDropdown.d.ts.map +1 -0
  397. package/build/types/filter-list/base/FilterIcons.d.ts +0 -2
  398. package/build/types/filter-list/base/FilterIcons.d.ts.map +1 -1
  399. package/build/types/filter-list/base/FilterInputExcludeRow.d.ts +12 -0
  400. package/build/types/filter-list/base/FilterInputExcludeRow.d.ts.map +1 -0
  401. package/build/types/filter-list/base/FilterListHeader.d.ts +3 -2
  402. package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -1
  403. package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -1
  404. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts.map +1 -1
  405. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -1
  406. package/build/types/filter-list/base/inputs/index.d.ts +1 -1
  407. package/build/types/filter-list/base/inputs/index.d.ts.map +1 -1
  408. package/build/types/filter-list/base/inputs/useStableData.d.ts +1 -0
  409. package/build/types/filter-list/base/inputs/useStableData.d.ts.map +1 -0
  410. package/build/types/filter-list/hooks/useFilterVisibility.d.ts +2 -0
  411. package/build/types/filter-list/hooks/useFilterVisibility.d.ts.map +1 -1
  412. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +2 -2
  413. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -1
  414. package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts +5 -2
  415. package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts.map +1 -1
  416. package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts +3 -2
  417. package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts.map +1 -1
  418. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts +2 -1
  419. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -1
  420. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts +5 -2
  421. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -1
  422. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts +4 -2
  423. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -1
  424. package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts +3 -2
  425. package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -1
  426. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts +3 -1
  427. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -1
  428. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts +4 -2
  429. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -1
  430. package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts +4 -2
  431. package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts.map +1 -1
  432. package/build/types/filter-list/utils/filterValues.d.ts +2 -0
  433. package/build/types/filter-list/utils/filterValues.d.ts.map +1 -1
  434. package/build/types/object-table/LoadingCell.d.ts.map +1 -1
  435. package/build/types/object-table/LoadingStateTable.d.ts.map +1 -1
  436. package/build/types/pdf-viewer/PdfRenderer.d.ts +2 -2
  437. package/build/types/pdf-viewer/PdfRenderer.d.ts.map +1 -1
  438. package/build/types/pdf-viewer/PdfViewer.d.ts +1 -1
  439. package/build/types/pdf-viewer/PdfViewer.d.ts.map +1 -1
  440. package/build/types/pdf-viewer/{PdfViewerAnnotationLayer.d.ts → components/PdfViewerAnnotationLayer.d.ts} +2 -3
  441. package/build/types/pdf-viewer/components/PdfViewerAnnotationLayer.d.ts.map +1 -0
  442. package/build/types/pdf-viewer/components/PdfViewerContent.d.ts +22 -0
  443. package/build/types/pdf-viewer/components/PdfViewerContent.d.ts.map +1 -0
  444. package/build/types/pdf-viewer/components/PdfViewerOutlineSidebar.d.ts +11 -0
  445. package/build/types/pdf-viewer/components/PdfViewerOutlineSidebar.d.ts.map +1 -0
  446. package/build/types/pdf-viewer/{PdfViewerSearchBar.d.ts → components/PdfViewerSearchBar.d.ts} +1 -2
  447. package/build/types/pdf-viewer/components/PdfViewerSearchBar.d.ts.map +1 -0
  448. package/build/types/pdf-viewer/components/PdfViewerSidebar.d.ts +12 -0
  449. package/build/types/pdf-viewer/components/PdfViewerSidebar.d.ts.map +1 -0
  450. package/build/types/pdf-viewer/components/PdfViewerSidebarHeader.d.ts +7 -0
  451. package/build/types/pdf-viewer/components/PdfViewerSidebarHeader.d.ts.map +1 -0
  452. package/build/types/pdf-viewer/{PdfViewerThumbnail.d.ts.map → components/PdfViewerThumbnail.d.ts.map} +1 -1
  453. package/build/types/pdf-viewer/{PdfViewerToolbar.d.ts → components/PdfViewerToolbar.d.ts} +5 -3
  454. package/build/types/pdf-viewer/components/PdfViewerToolbar.d.ts.map +1 -0
  455. package/build/types/pdf-viewer/constants.d.ts +5 -0
  456. package/build/types/pdf-viewer/constants.d.ts.map +1 -1
  457. package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts.map +1 -1
  458. package/build/types/pdf-viewer/hooks/usePdfOutline.d.ts +3 -0
  459. package/build/types/pdf-viewer/hooks/usePdfOutline.d.ts.map +1 -0
  460. package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts +1 -1
  461. package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts.map +1 -1
  462. package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts +43 -0
  463. package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts.map +1 -0
  464. package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts +39 -0
  465. package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts.map +1 -0
  466. package/build/types/pdf-viewer/types.d.ts +42 -0
  467. package/build/types/pdf-viewer/types.d.ts.map +1 -1
  468. package/build/types/public/experimental.d.ts +21 -2
  469. package/build/types/public/experimental.d.ts.map +1 -1
  470. package/build/types/public/primitives.d.ts +3 -0
  471. package/build/types/public/primitives.d.ts.map +1 -0
  472. package/build/types/shared/dateUtils.d.ts +31 -0
  473. package/build/types/shared/dateUtils.d.ts.map +1 -0
  474. package/package.json +14 -4
  475. package/primitives.d.ts +17 -0
  476. package/build/browser/filter-list/base/inputs/dateUtils.js.map +0 -1
  477. package/build/browser/filter-list/base/inputs/useStaleData.js.map +0 -1
  478. package/build/browser/pdf-viewer/PdfViewerAnnotationLayer.js.map +0 -1
  479. package/build/browser/pdf-viewer/PdfViewerAnnotationLayer.module.css.js +0 -11
  480. package/build/browser/pdf-viewer/PdfViewerSearchBar.js.map +0 -1
  481. package/build/browser/pdf-viewer/PdfViewerSearchBar.module.css.js +0 -10
  482. package/build/browser/pdf-viewer/PdfViewerSidebar.js.map +0 -1
  483. package/build/browser/pdf-viewer/PdfViewerThumbnail.js.map +0 -1
  484. package/build/browser/pdf-viewer/PdfViewerToolbar.js.map +0 -1
  485. package/build/browser/pdf-viewer/PdfViewerToolbar.module.css.js +0 -12
  486. package/build/esm/filter-list/base/inputs/dateUtils.js.map +0 -1
  487. package/build/esm/filter-list/base/inputs/useStaleData.js.map +0 -1
  488. package/build/esm/pdf-viewer/PdfViewerAnnotationLayer.js.map +0 -1
  489. package/build/esm/pdf-viewer/PdfViewerSearchBar.js.map +0 -1
  490. package/build/esm/pdf-viewer/PdfViewerSidebar.js.map +0 -1
  491. package/build/esm/pdf-viewer/PdfViewerThumbnail.js.map +0 -1
  492. package/build/esm/pdf-viewer/PdfViewerToolbar.js.map +0 -1
  493. package/build/types/filter-list/base/inputs/dateUtils.d.ts +0 -17
  494. package/build/types/filter-list/base/inputs/dateUtils.d.ts.map +0 -1
  495. package/build/types/filter-list/base/inputs/useStaleData.d.ts +0 -1
  496. package/build/types/filter-list/base/inputs/useStaleData.d.ts.map +0 -1
  497. package/build/types/pdf-viewer/PdfViewerAnnotationLayer.d.ts.map +0 -1
  498. package/build/types/pdf-viewer/PdfViewerSearchBar.d.ts.map +0 -1
  499. package/build/types/pdf-viewer/PdfViewerSidebar.d.ts +0 -10
  500. package/build/types/pdf-viewer/PdfViewerSidebar.d.ts.map +0 -1
  501. package/build/types/pdf-viewer/PdfViewerToolbar.d.ts.map +0 -1
  502. /package/build/browser/pdf-viewer/{PdfViewerAnnotationLayer.js → components/PdfViewerAnnotationLayer.js} +0 -0
  503. /package/build/browser/pdf-viewer/{PdfViewerSearchBar.js → components/PdfViewerSearchBar.js} +0 -0
  504. /package/build/browser/pdf-viewer/{PdfViewerSearchBar.module.css → components/PdfViewerSearchBar.module.css} +0 -0
  505. /package/build/browser/pdf-viewer/{PdfViewerThumbnail.module.css → components/PdfViewerThumbnail.module.css} +0 -0
  506. /package/build/esm/pdf-viewer/{PdfViewerAnnotationLayer.js → components/PdfViewerAnnotationLayer.js} +0 -0
  507. /package/build/esm/pdf-viewer/{PdfViewerSearchBar.js → components/PdfViewerSearchBar.js} +0 -0
  508. /package/build/esm/pdf-viewer/{PdfViewerSearchBar.module.css → components/PdfViewerSearchBar.module.css} +0 -0
  509. /package/build/esm/pdf-viewer/{PdfViewerThumbnail.module.css → components/PdfViewerThumbnail.module.css} +0 -0
  510. /package/build/types/pdf-viewer/{PdfViewerThumbnail.d.ts → components/PdfViewerThumbnail.d.ts} +0 -0
@@ -25,7 +25,6 @@
25
25
  var(--osdk-checkbox-icon-size) + var(--osdk-checkbox-padding) * 2
26
26
  );
27
27
  padding: var(--osdk-checkbox-padding);
28
- box-sizing: border-box;
29
28
  cursor: pointer;
30
29
  border-radius: var(--osdk-surface-border-radius);
31
30
  border: var(--osdk-checkbox-border);
@@ -62,9 +61,6 @@
62
61
  }
63
62
 
64
63
  .osdkCheckboxIndicator {
65
- display: flex;
66
- justify-content: center;
67
- align-items: center;
68
64
  color: var(--osdk-checkbox-checked-foreground);
69
65
  width: var(--osdk-checkbox-icon-size);
70
66
  height: var(--osdk-checkbox-icon-size);
@@ -27,8 +27,7 @@ function ComboboxSearchInput({
27
27
  return /*#__PURE__*/React.createElement("div", {
28
28
  className: classnames(styles.osdkComboboxInputWrapper, className)
29
29
  }, /*#__PURE__*/React.createElement(Search, {
30
- className: styles.osdkComboboxSearchIcon,
31
- color: "currentColor"
30
+ className: styles.osdkComboboxSearchIcon
32
31
  }), /*#__PURE__*/React.createElement(BaseUICombobox.Input, _extends({
33
32
  className: styles.osdkComboboxInput
34
33
  }, rest)));
@@ -95,9 +94,7 @@ function ComboboxChipRemove({
95
94
  return /*#__PURE__*/React.createElement(BaseUICombobox.ChipRemove, _extends({
96
95
  className: classnames(styles.osdkComboboxChipRemove, className),
97
96
  "aria-label": "Remove"
98
- }, rest), /*#__PURE__*/React.createElement(Cross, {
99
- color: "currentColor"
100
- }));
97
+ }, rest), /*#__PURE__*/React.createElement(Cross, null));
101
98
  }
102
99
  function ComboboxClear({
103
100
  className,
@@ -106,9 +103,7 @@ function ComboboxClear({
106
103
  return /*#__PURE__*/React.createElement(BaseUICombobox.Clear, _extends({
107
104
  className: classnames(styles.osdkComboboxClear, className),
108
105
  "aria-label": "Clear all"
109
- }, rest), /*#__PURE__*/React.createElement(Cross, {
110
- color: "currentColor"
111
- }));
106
+ }, rest), /*#__PURE__*/React.createElement(Cross, null));
112
107
  }
113
108
  function ComboboxEmpty({
114
109
  children,
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.js","names":["Combobox","BaseUICombobox","Cross","Search","classnames","React","styles","ComboboxSearchInput","className","rest","createElement","osdkComboboxInputWrapper","osdkComboboxSearchIcon","color","Input","_extends","osdkComboboxInput","ComboboxInput","ComboboxPositioner","children","Positioner","osdkComboboxPositioner","sideOffset","ComboboxPopup","Popup","osdkComboboxPopup","ComboboxItem","Item","osdkComboboxItem","ComboboxChips","Chips","render","props","ComboboxChip","Chip","osdkComboboxChip","ComboboxChipRemove","ChipRemove","osdkComboboxChipRemove","ComboboxClear","Clear","osdkComboboxClear","ComboboxEmpty","Empty","osdkComboboxEmpty","ComboboxList","List","osdkComboboxList","Root","SearchInput","Portal","Value"],"sources":["Combobox.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Combobox as BaseUICombobox,\n type ComboboxChipProps,\n type ComboboxChipRemoveProps,\n type ComboboxClearProps,\n type ComboboxInputProps,\n type ComboboxItemProps,\n type ComboboxListProps,\n type ComboboxPopupProps,\n type ComboboxPositionerProps,\n} 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\";\n\ninterface ComboboxInputComponentProps\n extends Omit<ComboboxInputProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxSearchInput({\n className,\n ...rest\n}: ComboboxInputComponentProps): React.ReactElement {\n return (\n <div className={classnames(styles.osdkComboboxInputWrapper, className)}>\n <Search className={styles.osdkComboboxSearchIcon} color=\"currentColor\" />\n <BaseUICombobox.Input className={styles.osdkComboboxInput} {...rest} />\n </div>\n );\n}\n\nfunction ComboboxInput({\n className,\n ...rest\n}: ComboboxInputComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Input\n className={classnames(styles.osdkComboboxInput, className)}\n {...rest}\n />\n );\n}\n\ninterface ComboboxPositionerComponentProps\n extends Omit<ComboboxPositionerProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxPositioner({\n className,\n children,\n ...rest\n}: ComboboxPositionerComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Positioner\n className={classnames(styles.osdkComboboxPositioner, className)}\n sideOffset={4}\n {...rest}\n >\n {children}\n </BaseUICombobox.Positioner>\n );\n}\n\ninterface ComboboxPopupComponentProps\n extends Omit<ComboboxPopupProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxPopup({\n className,\n children,\n ...rest\n}: ComboboxPopupComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Popup\n className={classnames(styles.osdkComboboxPopup, className)}\n {...rest}\n >\n {children}\n </BaseUICombobox.Popup>\n );\n}\n\ninterface ComboboxItemComponentProps\n extends Omit<ComboboxItemProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxItem({\n className,\n children,\n ...rest\n}: ComboboxItemComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Item\n className={classnames(styles.osdkComboboxItem, className)}\n {...rest}\n >\n {children}\n </BaseUICombobox.Item>\n );\n}\n\nfunction ComboboxChips({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}): React.ReactElement {\n return (\n <BaseUICombobox.Chips\n render={(props) => (\n <div\n {...props}\n className={classnames(styles.osdkComboboxInputWrapper, className)}\n >\n {props.children}\n </div>\n )}\n >\n {children}\n </BaseUICombobox.Chips>\n );\n}\n\ninterface ComboboxChipComponentProps\n extends Omit<ComboboxChipProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxChip({\n className,\n children,\n ...rest\n}: ComboboxChipComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Chip\n className={classnames(styles.osdkComboboxChip, className)}\n {...rest}\n >\n {children}\n </BaseUICombobox.Chip>\n );\n}\n\ninterface ComboboxChipRemoveComponentProps\n extends Omit<ComboboxChipRemoveProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxChipRemove({\n className,\n ...rest\n}: ComboboxChipRemoveComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.ChipRemove\n className={classnames(styles.osdkComboboxChipRemove, className)}\n aria-label=\"Remove\"\n {...rest}\n >\n <Cross color=\"currentColor\" />\n </BaseUICombobox.ChipRemove>\n );\n}\n\ninterface ComboboxClearComponentProps\n extends Omit<ComboboxClearProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxClear({\n className,\n ...rest\n}: ComboboxClearComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Clear\n className={classnames(styles.osdkComboboxClear, className)}\n aria-label=\"Clear all\"\n {...rest}\n >\n <Cross color=\"currentColor\" />\n </BaseUICombobox.Clear>\n );\n}\n\nfunction ComboboxEmpty({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}): React.ReactElement {\n return (\n <BaseUICombobox.Empty\n className={classnames(styles.osdkComboboxEmpty, className)}\n >\n {children}\n </BaseUICombobox.Empty>\n );\n}\n\ninterface ComboboxListComponentProps\n extends Omit<ComboboxListProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxList({\n className,\n children,\n ...rest\n}: ComboboxListComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.List\n className={classnames(styles.osdkComboboxList, className)}\n {...rest}\n >\n {children}\n </BaseUICombobox.List>\n );\n}\n\nexport const Combobox: {\n Root: typeof BaseUICombobox.Root;\n SearchInput: typeof ComboboxSearchInput;\n Input: typeof ComboboxInput;\n Portal: typeof BaseUICombobox.Portal;\n Positioner: typeof ComboboxPositioner;\n Popup: typeof ComboboxPopup;\n List: typeof ComboboxList;\n Item: typeof ComboboxItem;\n Chips: typeof ComboboxChips;\n Chip: typeof ComboboxChip;\n ChipRemove: typeof ComboboxChipRemove;\n Clear: typeof ComboboxClear;\n Empty: typeof ComboboxEmpty;\n Value: typeof BaseUICombobox.Value;\n} = {\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Combobox.js","names":["Combobox","BaseUICombobox","Cross","Search","classnames","React","styles","ComboboxSearchInput","className","rest","createElement","osdkComboboxInputWrapper","osdkComboboxSearchIcon","Input","_extends","osdkComboboxInput","ComboboxInput","ComboboxPositioner","children","Positioner","osdkComboboxPositioner","sideOffset","ComboboxPopup","Popup","osdkComboboxPopup","ComboboxItem","Item","osdkComboboxItem","ComboboxChips","Chips","render","props","ComboboxChip","Chip","osdkComboboxChip","ComboboxChipRemove","ChipRemove","osdkComboboxChipRemove","ComboboxClear","Clear","osdkComboboxClear","ComboboxEmpty","Empty","osdkComboboxEmpty","ComboboxList","List","osdkComboboxList","Root","SearchInput","Portal","Value"],"sources":["Combobox.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Combobox as BaseUICombobox,\n type ComboboxChipProps,\n type ComboboxChipRemoveProps,\n type ComboboxClearProps,\n type ComboboxInputProps,\n type ComboboxItemProps,\n type ComboboxListProps,\n type ComboboxPopupProps,\n type ComboboxPositionerProps,\n} 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\";\n\ninterface ComboboxInputComponentProps\n extends Omit<ComboboxInputProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxSearchInput({\n className,\n ...rest\n}: ComboboxInputComponentProps): React.ReactElement {\n return (\n <div className={classnames(styles.osdkComboboxInputWrapper, className)}>\n <Search className={styles.osdkComboboxSearchIcon} />\n <BaseUICombobox.Input className={styles.osdkComboboxInput} {...rest} />\n </div>\n );\n}\n\nfunction ComboboxInput({\n className,\n ...rest\n}: ComboboxInputComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Input\n className={classnames(styles.osdkComboboxInput, className)}\n {...rest}\n />\n );\n}\n\ninterface ComboboxPositionerComponentProps\n extends Omit<ComboboxPositionerProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxPositioner({\n className,\n children,\n ...rest\n}: ComboboxPositionerComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Positioner\n className={classnames(styles.osdkComboboxPositioner, className)}\n sideOffset={4}\n {...rest}\n >\n {children}\n </BaseUICombobox.Positioner>\n );\n}\n\ninterface ComboboxPopupComponentProps\n extends Omit<ComboboxPopupProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxPopup({\n className,\n children,\n ...rest\n}: ComboboxPopupComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Popup\n className={classnames(styles.osdkComboboxPopup, className)}\n {...rest}\n >\n {children}\n </BaseUICombobox.Popup>\n );\n}\n\ninterface ComboboxItemComponentProps\n extends Omit<ComboboxItemProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxItem({\n className,\n children,\n ...rest\n}: ComboboxItemComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Item\n className={classnames(styles.osdkComboboxItem, className)}\n {...rest}\n >\n {children}\n </BaseUICombobox.Item>\n );\n}\n\nfunction ComboboxChips({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}): React.ReactElement {\n return (\n <BaseUICombobox.Chips\n render={(props) => (\n <div\n {...props}\n className={classnames(styles.osdkComboboxInputWrapper, className)}\n >\n {props.children}\n </div>\n )}\n >\n {children}\n </BaseUICombobox.Chips>\n );\n}\n\ninterface ComboboxChipComponentProps\n extends Omit<ComboboxChipProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxChip({\n className,\n children,\n ...rest\n}: ComboboxChipComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Chip\n className={classnames(styles.osdkComboboxChip, className)}\n {...rest}\n >\n {children}\n </BaseUICombobox.Chip>\n );\n}\n\ninterface ComboboxChipRemoveComponentProps\n extends Omit<ComboboxChipRemoveProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxChipRemove({\n className,\n ...rest\n}: ComboboxChipRemoveComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.ChipRemove\n className={classnames(styles.osdkComboboxChipRemove, className)}\n aria-label=\"Remove\"\n {...rest}\n >\n <Cross />\n </BaseUICombobox.ChipRemove>\n );\n}\n\ninterface ComboboxClearComponentProps\n extends Omit<ComboboxClearProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxClear({\n className,\n ...rest\n}: ComboboxClearComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Clear\n className={classnames(styles.osdkComboboxClear, className)}\n aria-label=\"Clear all\"\n {...rest}\n >\n <Cross />\n </BaseUICombobox.Clear>\n );\n}\n\nfunction ComboboxEmpty({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}): React.ReactElement {\n return (\n <BaseUICombobox.Empty\n className={classnames(styles.osdkComboboxEmpty, className)}\n >\n {children}\n </BaseUICombobox.Empty>\n );\n}\n\ninterface ComboboxListComponentProps\n extends Omit<ComboboxListProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxList({\n className,\n children,\n ...rest\n}: ComboboxListComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.List\n className={classnames(styles.osdkComboboxList, className)}\n {...rest}\n >\n {children}\n </BaseUICombobox.List>\n );\n}\n\nexport const Combobox: {\n Root: typeof BaseUICombobox.Root;\n SearchInput: typeof ComboboxSearchInput;\n Input: typeof ComboboxInput;\n Portal: typeof BaseUICombobox.Portal;\n Positioner: typeof ComboboxPositioner;\n Popup: typeof ComboboxPopup;\n List: typeof ComboboxList;\n Item: typeof ComboboxItem;\n Chips: typeof ComboboxChips;\n Chip: typeof ComboboxChip;\n ChipRemove: typeof ComboboxChipRemove;\n Clear: typeof ComboboxClear;\n Empty: typeof ComboboxEmpty;\n Value: typeof BaseUICombobox.Value;\n} = {\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"],"mappings":"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","ignoreList":[]}
@@ -23,7 +23,6 @@
23
23
  min-height: var(--osdk-combobox-min-height, 30px);
24
24
  padding: calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 1.5)
25
25
  calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 2);
26
- box-sizing: border-box;
27
26
  border-radius: var(
28
27
  --osdk-combobox-border-radius,
29
28
  var(--osdk-surface-border-radius)
@@ -65,7 +64,6 @@
65
64
  flex: 1;
66
65
  min-width: 0;
67
66
  width: 100%;
68
- box-sizing: border-box;
69
67
  padding: calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 1.5)
70
68
  calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 2);
71
69
  border-radius: var(
@@ -150,7 +148,6 @@
150
148
  padding: calc(
151
149
  var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 1.5
152
150
  );
153
- box-sizing: border-box;
154
151
  border-radius: var(
155
152
  --osdk-combobox-border-radius,
156
153
  var(--osdk-surface-border-radius)
@@ -56,8 +56,7 @@ function DraggableListItem({
56
56
  className: styles.dragHandle,
57
57
  "aria-label": `Reorder ${item.label}`
58
58
  }, attributes, listeners), /*#__PURE__*/React.createElement(DragHandleVertical, {
59
- className: styles.icon,
60
- color: "currentColor"
59
+ className: styles.icon
61
60
  })), /*#__PURE__*/React.createElement("div", {
62
61
  className: styles.itemContent
63
62
  }, renderContent ? renderContent(item) : item.label), onRemove && /*#__PURE__*/React.createElement(Button, {
@@ -65,8 +64,7 @@ function DraggableListItem({
65
64
  onClick: handleRemove,
66
65
  "aria-label": `Remove ${item.label}`
67
66
  }, /*#__PURE__*/React.createElement(RemoveIcon, {
68
- className: styles.icon,
69
- color: "currentColor"
67
+ className: styles.icon
70
68
  })));
71
69
  }
72
70
  export function DraggableList({
@@ -1 +1 @@
1
- {"version":3,"file":"DraggableList.js","names":["Button","DragHandleVertical","SmallCross","Trash","closestCenter","DndContext","BaseDndContext","KeyboardSensor","PointerSensor","useSensor","useSensors","SortableContext","sortableKeyboardCoordinates","useSortable","verticalListSortingStrategy","CSS","classNames","React","useCallback","useEffect","useMemo","useRef","styles","DraggableListItem","item","onRemove","removeIconVariant","renderContent","attributes","listeners","setNodeRef","transform","transition","isDragging","id","style","Transform","toString","handleRemove","RemoveIcon","createElement","ref","className","draggableItem","_extends","dragHandle","label","icon","color","itemContent","removeButton","onClick","DraggableList","items","onReorder","emptyMessage","itemIds","map","sensors","activationConstraint","distance","coordinateGetter","handleDragEnd","event","active","over","oldIndex","findIndex","newIndex","containerRef","useKeyboardEvents","draggableListContainer","collisionDetection","onDragEnd","strategy","key","length","emptyState","el","current","ARROW_KEYS","Set","handleCapture","has","querySelector","stopPropagation","document","dispatchEvent","KeyboardEvent","code","bubbles","addEventListener","removeEventListener"],"sources":["DraggableList.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { DragHandleVertical, SmallCross, Trash } from \"@blueprintjs/icons\";\nimport {\n closestCenter,\n DndContext as BaseDndContext,\n type DragEndEvent,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\";\nimport {\n SortableContext,\n sortableKeyboardCoordinates,\n useSortable,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport classNames from \"classnames\";\nimport type { RefObject } from \"react\";\nimport React, { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport styles from \"./DraggableList.module.css\";\n\nexport interface DraggableItem {\n id: string;\n label: string;\n}\n\ntype RemoveIconVariant = \"trash\" | \"cross\";\n\ninterface DraggableListItemProps<T extends DraggableItem> {\n item: T;\n onRemove?: (id: string) => void;\n removeIconVariant?: RemoveIconVariant;\n renderContent?: (item: T) => React.ReactNode;\n}\n\nfunction DraggableListItem<T extends DraggableItem>({\n item,\n onRemove,\n removeIconVariant = \"trash\",\n renderContent,\n}: DraggableListItemProps<T>): React.ReactElement {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id: item.id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n const handleRemove = useCallback(() => {\n onRemove?.(item.id);\n }, [item.id, onRemove]);\n\n const RemoveIcon = removeIconVariant === \"trash\" ? Trash : SmallCross;\n\n return (\n <div\n ref={setNodeRef}\n style={style}\n className={styles.draggableItem}\n data-dragging={isDragging}\n >\n <div\n className={styles.dragHandle}\n aria-label={`Reorder ${item.label}`}\n {...attributes}\n {...listeners}\n >\n <DragHandleVertical className={styles.icon} color={\"currentColor\"} />\n </div>\n <div className={styles.itemContent}>\n {renderContent ? renderContent(item) : item.label}\n </div>\n {onRemove && (\n <Button\n className={styles.removeButton}\n onClick={handleRemove}\n aria-label={`Remove ${item.label}`}\n >\n <RemoveIcon className={styles.icon} color={\"currentColor\"} />\n </Button>\n )}\n </div>\n );\n}\n\nexport interface DraggableListProps<T extends DraggableItem> {\n items: T[];\n onReorder: (fromIndex: number, toIndex: number) => void;\n onRemove: (id: string) => void;\n removeIconVariant?: RemoveIconVariant;\n renderContent?: (item: T) => React.ReactNode;\n emptyMessage?: string;\n className?: string;\n}\n\nexport function DraggableList<T extends DraggableItem>({\n items,\n onReorder,\n onRemove,\n removeIconVariant = \"cross\",\n renderContent,\n emptyMessage,\n className,\n}: DraggableListProps<T>): React.ReactElement {\n const itemIds = useMemo(() => items.map((item) => item.id), [items]);\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n const handleDragEnd = useCallback(\n (event: DragEndEvent) => {\n const { active, over } = event;\n\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 },\n [items, onReorder],\n );\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n useKeyboardEvents(containerRef);\n\n // TODO: Revert when @types/react is fixed\n const DndContext = BaseDndContext as any;\n\n return (\n <div\n ref={containerRef}\n className={classNames(styles.draggableListContainer, className)}\n >\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n >\n <SortableContext\n items={itemIds}\n strategy={verticalListSortingStrategy}\n >\n {items.map((item) => (\n <DraggableListItem<T>\n key={item.id}\n item={item}\n onRemove={onRemove}\n removeIconVariant={removeIconVariant}\n renderContent={renderContent}\n />\n ))}\n </SortableContext>\n </DndContext>\n {items.length === 0 && emptyMessage && (\n <div className={styles.emptyState}>{emptyMessage}</div>\n )}\n </div>\n );\n}\n\nconst useKeyboardEvents = (containerRef: RefObject<HTMLDivElement>) => {\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\n const ARROW_KEYS = new Set([\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n ]);\n\n function handleCapture(event: KeyboardEvent) {\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\n event.stopPropagation();\n\n document.dispatchEvent(\n new KeyboardEvent(\"keydown\", {\n key: event.key,\n code: event.code,\n bubbles: true,\n }),\n );\n }\n\n el.addEventListener(\"keydown\", handleCapture, true);\n return () => el.removeEventListener(\"keydown\", handleCapture, true);\n }, [containerRef]);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DraggableList.js","names":["Button","DragHandleVertical","SmallCross","Trash","closestCenter","DndContext","BaseDndContext","KeyboardSensor","PointerSensor","useSensor","useSensors","SortableContext","sortableKeyboardCoordinates","useSortable","verticalListSortingStrategy","CSS","classNames","React","useCallback","useEffect","useMemo","useRef","styles","DraggableListItem","item","onRemove","removeIconVariant","renderContent","attributes","listeners","setNodeRef","transform","transition","isDragging","id","style","Transform","toString","handleRemove","RemoveIcon","createElement","ref","className","draggableItem","_extends","dragHandle","label","icon","itemContent","removeButton","onClick","DraggableList","items","onReorder","emptyMessage","itemIds","map","sensors","activationConstraint","distance","coordinateGetter","handleDragEnd","event","active","over","oldIndex","findIndex","newIndex","containerRef","useKeyboardEvents","draggableListContainer","collisionDetection","onDragEnd","strategy","key","length","emptyState","el","current","ARROW_KEYS","Set","handleCapture","has","querySelector","stopPropagation","document","dispatchEvent","KeyboardEvent","code","bubbles","addEventListener","removeEventListener"],"sources":["DraggableList.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { DragHandleVertical, SmallCross, Trash } from \"@blueprintjs/icons\";\nimport {\n closestCenter,\n DndContext as BaseDndContext,\n type DragEndEvent,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\";\nimport {\n SortableContext,\n sortableKeyboardCoordinates,\n useSortable,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport classNames from \"classnames\";\nimport type { RefObject } from \"react\";\nimport React, { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport styles from \"./DraggableList.module.css\";\n\nexport interface DraggableItem {\n id: string;\n label: string;\n}\n\ntype RemoveIconVariant = \"trash\" | \"cross\";\n\ninterface DraggableListItemProps<T extends DraggableItem> {\n item: T;\n onRemove?: (id: string) => void;\n removeIconVariant?: RemoveIconVariant;\n renderContent?: (item: T) => React.ReactNode;\n}\n\nfunction DraggableListItem<T extends DraggableItem>({\n item,\n onRemove,\n removeIconVariant = \"trash\",\n renderContent,\n}: DraggableListItemProps<T>): React.ReactElement {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id: item.id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n const handleRemove = useCallback(() => {\n onRemove?.(item.id);\n }, [item.id, onRemove]);\n\n const RemoveIcon = removeIconVariant === \"trash\" ? Trash : SmallCross;\n\n return (\n <div\n ref={setNodeRef}\n style={style}\n className={styles.draggableItem}\n data-dragging={isDragging}\n >\n <div\n className={styles.dragHandle}\n aria-label={`Reorder ${item.label}`}\n {...attributes}\n {...listeners}\n >\n <DragHandleVertical className={styles.icon} />\n </div>\n <div className={styles.itemContent}>\n {renderContent ? renderContent(item) : item.label}\n </div>\n {onRemove && (\n <Button\n className={styles.removeButton}\n onClick={handleRemove}\n aria-label={`Remove ${item.label}`}\n >\n <RemoveIcon className={styles.icon} />\n </Button>\n )}\n </div>\n );\n}\n\nexport interface DraggableListProps<T extends DraggableItem> {\n items: T[];\n onReorder: (fromIndex: number, toIndex: number) => void;\n onRemove: (id: string) => void;\n removeIconVariant?: RemoveIconVariant;\n renderContent?: (item: T) => React.ReactNode;\n emptyMessage?: string;\n className?: string;\n}\n\nexport function DraggableList<T extends DraggableItem>({\n items,\n onReorder,\n onRemove,\n removeIconVariant = \"cross\",\n renderContent,\n emptyMessage,\n className,\n}: DraggableListProps<T>): React.ReactElement {\n const itemIds = useMemo(() => items.map((item) => item.id), [items]);\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n const handleDragEnd = useCallback(\n (event: DragEndEvent) => {\n const { active, over } = event;\n\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 },\n [items, onReorder],\n );\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n useKeyboardEvents(containerRef);\n\n // TODO: Revert when @types/react is fixed\n const DndContext = BaseDndContext as any;\n\n return (\n <div\n ref={containerRef}\n className={classNames(styles.draggableListContainer, className)}\n >\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n >\n <SortableContext\n items={itemIds}\n strategy={verticalListSortingStrategy}\n >\n {items.map((item) => (\n <DraggableListItem<T>\n key={item.id}\n item={item}\n onRemove={onRemove}\n removeIconVariant={removeIconVariant}\n renderContent={renderContent}\n />\n ))}\n </SortableContext>\n </DndContext>\n {items.length === 0 && emptyMessage && (\n <div className={styles.emptyState}>{emptyMessage}</div>\n )}\n </div>\n );\n}\n\nconst useKeyboardEvents = (containerRef: RefObject<HTMLDivElement>) => {\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\n const ARROW_KEYS = new Set([\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n ]);\n\n function handleCapture(event: KeyboardEvent) {\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\n event.stopPropagation();\n\n document.dispatchEvent(\n new KeyboardEvent(\"keydown\", {\n key: event.key,\n code: event.code,\n bubbles: true,\n }),\n );\n }\n\n el.addEventListener(\"keydown\", handleCapture, true);\n return () => el.removeEventListener(\"keydown\", handleCapture, true);\n }, [containerRef]);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -17,8 +17,8 @@
17
17
  .searchBar {
18
18
  display: flex;
19
19
  align-items: center;
20
- gap: var(--osdk-surface-spacing);
21
- padding: var(--osdk-surface-spacing) calc(var(--osdk-surface-spacing) * 1.5);
20
+ gap: calc(var(--osdk-surface-spacing) * 3);
21
+ padding: var(--osdk-surface-spacing) calc(var(--osdk-surface-spacing) * 3);
22
22
  border: var(--osdk-surface-border);
23
23
  border-radius: var(--osdk-surface-border-radius);
24
24
 
@@ -42,9 +42,7 @@ function SelectTrigger({
42
42
  className: styles.osdkSelectPlaceholder
43
43
  }, placeholder)), /*#__PURE__*/React.createElement(BaseUISelect.Icon, {
44
44
  className: styles.osdkSelectIcon
45
- }, /*#__PURE__*/React.createElement(CaretDown, {
46
- color: "currentColor"
47
- }))));
45
+ }, /*#__PURE__*/React.createElement(CaretDown, null))));
48
46
  }
49
47
  function SelectValue(props) {
50
48
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","names":["Select","BaseUISelect","CaretDown","classnames","React","styles","SelectRoot","children","rest","createElement","Root","SelectTrigger","className","placeholder","Trigger","_extends","osdkSelectTrigger","Fragment","osdkSelectValueContainer","Value","osdkSelectValue","osdkSelectPlaceholder","Icon","osdkSelectIcon","color","SelectValue","props","SelectPositioner","Positioner","osdkSelectPositioner","sideOffset","SelectPopup","Popup","osdkSelectPopup","SelectItem","Item","osdkSelectItem","ItemText","Portal"],"sources":["Select.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Select as BaseUISelect,\n type SelectItemProps,\n type SelectPopupProps,\n type SelectPositionerProps,\n type SelectRootProps,\n type SelectTriggerProps,\n type SelectValueProps,\n} from \"@base-ui/react/select\";\nimport { CaretDown } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./Select.module.css\";\n\nexport interface SelectProps<Value, Multiple extends boolean = false>\n extends Omit<SelectRootProps<Value, Multiple>, \"className\">\n{}\n\nfunction SelectRoot<Value, Multiple extends boolean = false>({\n children,\n ...rest\n}: SelectProps<Value, Multiple>): React.ReactElement {\n return (\n <BaseUISelect.Root<Value, Multiple> {...rest}>{children}</BaseUISelect.Root>\n );\n}\n\ninterface SelectTriggerComponentProps\n extends Omit<SelectTriggerProps, \"className\">\n{\n className?: string;\n placeholder?: string;\n}\n\nfunction SelectTrigger({\n className,\n placeholder,\n children,\n ...rest\n}: SelectTriggerComponentProps): React.ReactElement {\n return (\n <BaseUISelect.Trigger\n className={classnames(styles.osdkSelectTrigger, className)}\n {...rest}\n >\n {children ?? (\n <>\n <div className={styles.osdkSelectValueContainer}>\n <BaseUISelect.Value className={styles.osdkSelectValue} />\n {placeholder != null && (\n <span className={styles.osdkSelectPlaceholder}>\n {placeholder}\n </span>\n )}\n </div>\n <BaseUISelect.Icon className={styles.osdkSelectIcon}>\n <CaretDown color=\"currentColor\" />\n </BaseUISelect.Icon>\n </>\n )}\n </BaseUISelect.Trigger>\n );\n}\n\nfunction SelectValue(\n props: Omit<SelectValueProps, \"className\"> & { className?: string },\n): React.ReactElement {\n const { className, ...rest } = props;\n return (\n <BaseUISelect.Value\n className={classnames(styles.osdkSelectValue, className)}\n {...rest}\n />\n );\n}\n\ninterface SelectPositionerComponentProps\n extends Omit<SelectPositionerProps, \"className\">\n{\n className?: string;\n}\n\nfunction SelectPositioner({\n className,\n children,\n ...rest\n}: SelectPositionerComponentProps): React.ReactElement {\n return (\n <BaseUISelect.Positioner\n className={classnames(styles.osdkSelectPositioner, className)}\n sideOffset={4}\n {...rest}\n >\n {children}\n </BaseUISelect.Positioner>\n );\n}\n\ninterface SelectPopupComponentProps\n extends Omit<SelectPopupProps, \"className\">\n{\n className?: string;\n}\n\nfunction SelectPopup({\n className,\n children,\n ...rest\n}: SelectPopupComponentProps): React.ReactElement {\n return (\n <BaseUISelect.Popup\n className={classnames(styles.osdkSelectPopup, className)}\n {...rest}\n >\n {children}\n </BaseUISelect.Popup>\n );\n}\n\ninterface SelectItemComponentProps extends Omit<SelectItemProps, \"className\"> {\n className?: string;\n}\n\nfunction SelectItem({\n className,\n children,\n ...rest\n}: SelectItemComponentProps): React.ReactElement {\n return (\n <BaseUISelect.Item\n className={classnames(styles.osdkSelectItem, className)}\n {...rest}\n >\n <BaseUISelect.ItemText>{children}</BaseUISelect.ItemText>\n </BaseUISelect.Item>\n );\n}\n\nexport const Select: {\n Root: typeof SelectRoot;\n Trigger: typeof SelectTrigger;\n Value: typeof SelectValue;\n Portal: typeof BaseUISelect.Portal;\n Positioner: typeof SelectPositioner;\n Popup: typeof SelectPopup;\n Item: typeof SelectItem;\n} = {\n Root: SelectRoot,\n Trigger: SelectTrigger,\n Value: SelectValue,\n Portal: BaseUISelect.Portal,\n Positioner: SelectPositioner,\n Popup: SelectPopup,\n Item: SelectItem,\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Select.js","names":["Select","BaseUISelect","CaretDown","classnames","React","styles","SelectRoot","children","rest","createElement","Root","SelectTrigger","className","placeholder","Trigger","_extends","osdkSelectTrigger","Fragment","osdkSelectValueContainer","Value","osdkSelectValue","osdkSelectPlaceholder","Icon","osdkSelectIcon","SelectValue","props","SelectPositioner","Positioner","osdkSelectPositioner","sideOffset","SelectPopup","Popup","osdkSelectPopup","SelectItem","Item","osdkSelectItem","ItemText","Portal"],"sources":["Select.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Select as BaseUISelect,\n type SelectItemProps,\n type SelectPopupProps,\n type SelectPositionerProps,\n type SelectRootProps,\n type SelectTriggerProps,\n type SelectValueProps,\n} from \"@base-ui/react/select\";\nimport { CaretDown } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./Select.module.css\";\n\nexport interface SelectProps<Value, Multiple extends boolean = false>\n extends Omit<SelectRootProps<Value, Multiple>, \"className\">\n{}\n\nfunction SelectRoot<Value, Multiple extends boolean = false>({\n children,\n ...rest\n}: SelectProps<Value, Multiple>): React.ReactElement {\n return (\n <BaseUISelect.Root<Value, Multiple> {...rest}>{children}</BaseUISelect.Root>\n );\n}\n\ninterface SelectTriggerComponentProps\n extends Omit<SelectTriggerProps, \"className\">\n{\n className?: string;\n placeholder?: string;\n}\n\nfunction SelectTrigger({\n className,\n placeholder,\n children,\n ...rest\n}: SelectTriggerComponentProps): React.ReactElement {\n return (\n <BaseUISelect.Trigger\n className={classnames(styles.osdkSelectTrigger, className)}\n {...rest}\n >\n {children ?? (\n <>\n <div className={styles.osdkSelectValueContainer}>\n <BaseUISelect.Value className={styles.osdkSelectValue} />\n {placeholder != null && (\n <span className={styles.osdkSelectPlaceholder}>\n {placeholder}\n </span>\n )}\n </div>\n <BaseUISelect.Icon className={styles.osdkSelectIcon}>\n <CaretDown />\n </BaseUISelect.Icon>\n </>\n )}\n </BaseUISelect.Trigger>\n );\n}\n\nfunction SelectValue(\n props: Omit<SelectValueProps, \"className\"> & { className?: string },\n): React.ReactElement {\n const { className, ...rest } = props;\n return (\n <BaseUISelect.Value\n className={classnames(styles.osdkSelectValue, className)}\n {...rest}\n />\n );\n}\n\ninterface SelectPositionerComponentProps\n extends Omit<SelectPositionerProps, \"className\">\n{\n className?: string;\n}\n\nfunction SelectPositioner({\n className,\n children,\n ...rest\n}: SelectPositionerComponentProps): React.ReactElement {\n return (\n <BaseUISelect.Positioner\n className={classnames(styles.osdkSelectPositioner, className)}\n sideOffset={4}\n {...rest}\n >\n {children}\n </BaseUISelect.Positioner>\n );\n}\n\ninterface SelectPopupComponentProps\n extends Omit<SelectPopupProps, \"className\">\n{\n className?: string;\n}\n\nfunction SelectPopup({\n className,\n children,\n ...rest\n}: SelectPopupComponentProps): React.ReactElement {\n return (\n <BaseUISelect.Popup\n className={classnames(styles.osdkSelectPopup, className)}\n {...rest}\n >\n {children}\n </BaseUISelect.Popup>\n );\n}\n\ninterface SelectItemComponentProps extends Omit<SelectItemProps, \"className\"> {\n className?: string;\n}\n\nfunction SelectItem({\n className,\n children,\n ...rest\n}: SelectItemComponentProps): React.ReactElement {\n return (\n <BaseUISelect.Item\n className={classnames(styles.osdkSelectItem, className)}\n {...rest}\n >\n <BaseUISelect.ItemText>{children}</BaseUISelect.ItemText>\n </BaseUISelect.Item>\n );\n}\n\nexport const Select: {\n Root: typeof SelectRoot;\n Trigger: typeof SelectTrigger;\n Value: typeof SelectValue;\n Portal: typeof BaseUISelect.Portal;\n Positioner: typeof SelectPositioner;\n Popup: typeof SelectPopup;\n Item: typeof SelectItem;\n} = {\n Root: SelectRoot,\n Trigger: SelectTrigger,\n Value: SelectValue,\n Portal: BaseUISelect.Portal,\n Positioner: SelectPositioner,\n Popup: SelectPopup,\n Item: SelectItem,\n};\n"],"mappings":"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","ignoreList":[]}
@@ -23,7 +23,6 @@
23
23
  min-height: var(--osdk-select-min-height, 30px);
24
24
  padding: calc(var(--osdk-select-spacing, var(--osdk-surface-spacing)) * 1.5)
25
25
  calc(var(--osdk-select-spacing, var(--osdk-surface-spacing)) * 2.5);
26
- box-sizing: border-box;
27
26
  cursor: pointer;
28
27
  border-radius: var(
29
28
  --osdk-select-border-radius,
@@ -161,7 +160,6 @@
161
160
  max-height: var(--available-height);
162
161
  overflow-y: auto;
163
162
  padding: calc(var(--osdk-select-spacing, var(--osdk-surface-spacing)) * 1.5);
164
- box-sizing: border-box;
165
163
  border-radius: var(
166
164
  --osdk-select-border-radius,
167
165
  var(--osdk-surface-border-radius)
@@ -25,7 +25,6 @@
25
25
  width: var(--osdk-switch-track-width);
26
26
  height: var(--osdk-switch-track-height);
27
27
  padding: 0;
28
- box-sizing: border-box;
29
28
  cursor: pointer;
30
29
  border-radius: var(--osdk-switch-border-radius, var(--osdk-surface-border-radius));
31
30
  position: relative;
@@ -25,7 +25,9 @@ function FilterInputInner({
25
25
  definition,
26
26
  filterState,
27
27
  onFilterStateChanged,
28
- whereClause
28
+ whereClause,
29
+ searchQuery,
30
+ excludeRowOpen
29
31
  }) {
30
32
  return /*#__PURE__*/React.createElement(FilterInputContent, {
31
33
  objectType: objectType,
@@ -33,7 +35,9 @@ function FilterInputInner({
33
35
  definition: definition,
34
36
  filterState: filterState,
35
37
  onFilterStateChanged: onFilterStateChanged,
36
- whereClause: whereClause
38
+ whereClause: whereClause,
39
+ searchQuery: searchQuery,
40
+ excludeRowOpen: excludeRowOpen
37
41
  });
38
42
  }
39
43
  export const FilterInput = /*#__PURE__*/memo(FilterInputInner);
@@ -43,7 +47,9 @@ function FilterInputContent({
43
47
  definition,
44
48
  filterState,
45
49
  onFilterStateChanged,
46
- whereClause
50
+ whereClause,
51
+ searchQuery,
52
+ excludeRowOpen
47
53
  }) {
48
54
  switch (definition.type) {
49
55
  case "HAS_LINK":
@@ -56,7 +62,8 @@ function FilterInputContent({
56
62
  objectSet: objectSet,
57
63
  definition: definition,
58
64
  filterState: filterState,
59
- onFilterStateChanged: onFilterStateChanged
65
+ onFilterStateChanged: onFilterStateChanged,
66
+ searchQuery: searchQuery
60
67
  });
61
68
  case "KEYWORD_SEARCH":
62
69
  return /*#__PURE__*/React.createElement(KeywordSearchInput, {
@@ -85,7 +92,9 @@ function FilterInputContent({
85
92
  definition: definition,
86
93
  filterState: filterState,
87
94
  onFilterStateChanged: onFilterStateChanged,
88
- whereClause: whereClause
95
+ whereClause: whereClause,
96
+ searchQuery: searchQuery,
97
+ excludeRowOpen: excludeRowOpen
89
98
  });
90
99
  default:
91
100
  return /*#__PURE__*/React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"FilterInput.js","names":["React","memo","useCallback","ContainsTextInput","ToggleInput","LinkedPropertyInput","PropertyFilterInput","FilterInputInner","objectType","objectSet","definition","filterState","onFilterStateChanged","whereClause","createElement","FilterInputContent","FilterInput","type","HasLinkInput","KeywordSearchInput","placeholder","label","renderInput","customFilterState","Fragment","state","hasLink","handleChange","enabled","onChange","searchTerm","undefined","operator","newSearchTerm","value"],"sources":["FilterInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectSet, ObjectTypeDefinition, WhereClause } from \"@osdk/api\";\nimport React, { memo, useCallback } from \"react\";\nimport { ContainsTextInput } from \"./base/inputs/ContainsTextInput.js\";\nimport { ToggleInput } from \"./base/inputs/ToggleInput.js\";\nimport type { FilterDefinitionUnion } from \"./FilterListApi.js\";\nimport type { FilterState } from \"./FilterListItemApi.js\";\nimport { LinkedPropertyInput } from \"./inputs/LinkedPropertyInput.js\";\nimport { PropertyFilterInput } from \"./inputs/PropertyFilterInput.js\";\n\ninterface FilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n objectSet: ObjectSet<Q>;\n definition: FilterDefinitionUnion<Q>;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n}\n\nfunction FilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: FilterInputProps<Q>): React.ReactElement {\n return (\n <FilterInputContent\n objectType={objectType}\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n />\n );\n}\n\nexport const FilterInput = memo(FilterInputInner) as typeof FilterInputInner;\n\nfunction FilterInputContent<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: FilterInputProps<Q>): React.ReactElement {\n switch (definition.type) {\n case \"HAS_LINK\":\n return (\n <HasLinkInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"LINKED_PROPERTY\":\n return (\n <LinkedPropertyInput\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"KEYWORD_SEARCH\":\n return (\n <KeywordSearchInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n placeholder={definition.label ?? \"Search...\"}\n />\n );\n\n case \"CUSTOM\": {\n if (!definition.renderInput) {\n return (\n <div data-unsupported=\"true\">Custom filter missing renderInput</div>\n );\n }\n const customFilterState = filterState?.type === \"custom\"\n ? filterState\n : definition.filterState;\n return (\n <>\n {definition.renderInput({\n objectSet,\n filterState: customFilterState,\n onFilterStateChanged: (state) => onFilterStateChanged(state),\n })}\n </>\n );\n }\n\n case \"PROPERTY\":\n return (\n <PropertyFilterInput\n objectType={objectType}\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n />\n );\n\n default:\n return <div data-unsupported=\"true\">Unsupported filter type</div>;\n }\n}\n\ninterface HasLinkInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nconst HasLinkInput = memo(function HasLinkInput({\n filterState,\n onFilterStateChanged,\n}: HasLinkInputProps): React.ReactElement {\n const hasLink = filterState?.type === \"hasLink\"\n ? filterState.hasLink\n : false;\n\n const handleChange = useCallback(\n (hasLink: boolean) => {\n onFilterStateChanged({ type: \"hasLink\", hasLink });\n },\n [onFilterStateChanged],\n );\n\n return <ToggleInput enabled={hasLink} onChange={handleChange} />;\n});\n\ninterface KeywordSearchInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n placeholder: string;\n}\n\nconst KeywordSearchInput = memo(function KeywordSearchInput({\n filterState,\n onFilterStateChanged,\n placeholder,\n}: KeywordSearchInputProps): React.ReactElement {\n const searchTerm = filterState?.type === \"keywordSearch\"\n ? filterState.searchTerm\n : undefined;\n const operator = filterState?.type === \"keywordSearch\"\n ? filterState.operator\n : \"AND\";\n\n const handleChange = useCallback(\n (newSearchTerm: string | undefined) => {\n onFilterStateChanged({\n type: \"keywordSearch\",\n searchTerm: newSearchTerm ?? \"\",\n operator,\n });\n },\n [onFilterStateChanged, operator],\n );\n\n return (\n <ContainsTextInput\n value={searchTerm}\n onChange={handleChange}\n placeholder={placeholder}\n />\n );\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FilterInput.js","names":["React","memo","useCallback","ContainsTextInput","ToggleInput","LinkedPropertyInput","PropertyFilterInput","FilterInputInner","objectType","objectSet","definition","filterState","onFilterStateChanged","whereClause","searchQuery","excludeRowOpen","createElement","FilterInputContent","FilterInput","type","HasLinkInput","KeywordSearchInput","placeholder","label","renderInput","customFilterState","Fragment","state","hasLink","handleChange","enabled","onChange","searchTerm","undefined","operator","newSearchTerm","value"],"sources":["FilterInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectSet, ObjectTypeDefinition, WhereClause } from \"@osdk/api\";\nimport React, { memo, useCallback } from \"react\";\nimport { ContainsTextInput } from \"./base/inputs/ContainsTextInput.js\";\nimport { ToggleInput } from \"./base/inputs/ToggleInput.js\";\nimport type { FilterDefinitionUnion } from \"./FilterListApi.js\";\nimport type { FilterState } from \"./FilterListItemApi.js\";\nimport { LinkedPropertyInput } from \"./inputs/LinkedPropertyInput.js\";\nimport { PropertyFilterInput } from \"./inputs/PropertyFilterInput.js\";\n\ninterface FilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n objectSet: ObjectSet<Q>;\n definition: FilterDefinitionUnion<Q>;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n searchQuery?: string;\n excludeRowOpen?: boolean;\n}\n\nfunction FilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n searchQuery,\n excludeRowOpen,\n}: FilterInputProps<Q>): React.ReactElement {\n return (\n <FilterInputContent\n objectType={objectType}\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n searchQuery={searchQuery}\n excludeRowOpen={excludeRowOpen}\n />\n );\n}\n\nexport const FilterInput = memo(FilterInputInner) as typeof FilterInputInner;\n\nfunction FilterInputContent<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n searchQuery,\n excludeRowOpen,\n}: FilterInputProps<Q>): React.ReactElement {\n switch (definition.type) {\n case \"HAS_LINK\":\n return (\n <HasLinkInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"LINKED_PROPERTY\":\n return (\n <LinkedPropertyInput\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n searchQuery={searchQuery}\n />\n );\n\n case \"KEYWORD_SEARCH\":\n return (\n <KeywordSearchInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n placeholder={definition.label ?? \"Search...\"}\n />\n );\n\n case \"CUSTOM\": {\n if (!definition.renderInput) {\n return (\n <div data-unsupported=\"true\">Custom filter missing renderInput</div>\n );\n }\n const customFilterState = filterState?.type === \"custom\"\n ? filterState\n : definition.filterState;\n return (\n <>\n {definition.renderInput({\n objectSet,\n filterState: customFilterState,\n onFilterStateChanged: (state) => onFilterStateChanged(state),\n })}\n </>\n );\n }\n\n case \"PROPERTY\":\n return (\n <PropertyFilterInput\n objectType={objectType}\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n searchQuery={searchQuery}\n excludeRowOpen={excludeRowOpen}\n />\n );\n\n default:\n return <div data-unsupported=\"true\">Unsupported filter type</div>;\n }\n}\n\ninterface HasLinkInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nconst HasLinkInput = memo(function HasLinkInput({\n filterState,\n onFilterStateChanged,\n}: HasLinkInputProps): React.ReactElement {\n const hasLink = filterState?.type === \"hasLink\"\n ? filterState.hasLink\n : false;\n\n const handleChange = useCallback(\n (hasLink: boolean) => {\n onFilterStateChanged({ type: \"hasLink\", hasLink });\n },\n [onFilterStateChanged],\n );\n\n return <ToggleInput enabled={hasLink} onChange={handleChange} />;\n});\n\ninterface KeywordSearchInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n placeholder: string;\n}\n\nconst KeywordSearchInput = memo(function KeywordSearchInput({\n filterState,\n onFilterStateChanged,\n placeholder,\n}: KeywordSearchInputProps): React.ReactElement {\n const searchTerm = filterState?.type === \"keywordSearch\"\n ? filterState.searchTerm\n : undefined;\n const operator = filterState?.type === \"keywordSearch\"\n ? filterState.operator\n : \"AND\";\n\n const handleChange = useCallback(\n (newSearchTerm: string | undefined) => {\n onFilterStateChanged({\n type: \"keywordSearch\",\n searchTerm: newSearchTerm ?? \"\",\n operator,\n });\n },\n [onFilterStateChanged, operator],\n );\n\n return (\n <ContainsTextInput\n value={searchTerm}\n onChange={handleChange}\n placeholder={placeholder}\n />\n );\n});\n"],"mappings":"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","ignoreList":[]}
@@ -30,7 +30,7 @@ export function FilterList(props) {
30
30
  collapsed,
31
31
  onCollapsedChange,
32
32
  filterDefinitions,
33
- addFilterMode = "controlled",
33
+ addFilterMode = "uncontrolled",
34
34
  showResetButton = false,
35
35
  onReset,
36
36
  showActiveFilterCount = false,
@@ -48,18 +48,21 @@ export function FilterList(props) {
48
48
  activeFilterCount,
49
49
  reset
50
50
  } = useFilterListState(props);
51
- const handleReset = useCallback(() => {
52
- reset();
53
- onReset?.();
54
- }, [reset, onReset]);
55
51
  const uncontrolledAddFilterMode = addFilterMode === "uncontrolled";
56
52
  const getIsVisible = useCallback(def => def.isVisible !== false, []);
57
53
  const {
58
54
  visibleDefinitions: managedVisibleDefinitions,
59
55
  hiddenDefinitions: managedHiddenDefinitions,
60
56
  showFilter,
61
- hideFilter
57
+ hideFilter,
58
+ hasVisibilityChanges,
59
+ resetVisibility
62
60
  } = useFilterVisibility(filterDefinitions, getFilterKey, getIsVisible);
61
+ const handleReset = useCallback(() => {
62
+ reset();
63
+ resetVisibility();
64
+ onReset?.();
65
+ }, [reset, resetVisibility, onReset]);
63
66
  const simpleVisibleDefinitions = useMemo(() => {
64
67
  if (filterDefinitions == null) {
65
68
  return undefined;
@@ -82,10 +85,14 @@ export function FilterList(props) {
82
85
  label: getFilterLabel(def)
83
86
  })), [managedHiddenDefinitions]);
84
87
  const effectiveRenderAddFilterButton = useMemo(() => {
85
- if (uncontrolledAddFilterMode && managedHiddenDefinitions.length > 0) {
88
+ if (uncontrolledAddFilterMode) {
89
+ if (managedHiddenDefinitions.length === 0) {
90
+ return undefined;
91
+ }
86
92
  return () => /*#__PURE__*/React.createElement(AddFilterPopover, {
87
93
  hiddenDefinitions: hiddenFilterItems,
88
- onShowFilter: handleFilterShown
94
+ onShowFilter: handleFilterShown,
95
+ renderTrigger: renderAddFilterButton
89
96
  });
90
97
  }
91
98
  return renderAddFilterButton;
@@ -95,14 +102,18 @@ export function FilterList(props) {
95
102
  definition,
96
103
  filterKey,
97
104
  filterState,
98
- onFilterStateChanged
105
+ onFilterStateChanged,
106
+ searchQuery,
107
+ excludeRowOpen
99
108
  }) => /*#__PURE__*/React.createElement(FilterInput, {
100
109
  objectType: objectType,
101
110
  objectSet: objectSet,
102
111
  definition: definition,
103
112
  filterState: filterState,
104
113
  onFilterStateChanged: onFilterStateChanged,
105
- whereClause: perFilterWhereClauses.get(filterKey) ?? {}
114
+ whereClause: perFilterWhereClauses.get(filterKey) ?? {},
115
+ searchQuery: searchQuery,
116
+ excludeRowOpen: excludeRowOpen
106
117
  }), [objectType, objectSet, perFilterWhereClauses]);
107
118
  return /*#__PURE__*/React.createElement(BaseFilterList, {
108
119
  title: title,
@@ -119,6 +130,7 @@ export function FilterList(props) {
119
130
  onReset: handleReset,
120
131
  showResetButton: showResetButton,
121
132
  showActiveFilterCount: showActiveFilterCount,
133
+ hasVisibilityChanges: hasVisibilityChanges,
122
134
  enableSorting: enableSorting,
123
135
  onFilterRemoved: effectiveOnFilterRemoved,
124
136
  className: className,
@@ -1 +1 @@
1
- {"version":3,"file":"FilterList.js","names":["React","useCallback","useMemo","AddFilterPopover","BaseFilterList","FilterInput","useFilterListState","useFilterVisibility","getFilterKey","getFilterLabel","FilterList","props","objectSet","title","titleIcon","collapsed","onCollapsedChange","filterDefinitions","addFilterMode","showResetButton","onReset","showActiveFilterCount","className","enableSorting","onFilterAdded","onFilterRemoved","renderAddFilterButton","objectType","$objectSetInternals","def","filterStates","setFilterState","perFilterWhereClauses","activeFilterCount","reset","handleReset","uncontrolledAddFilterMode","getIsVisible","isVisible","visibleDefinitions","managedVisibleDefinitions","hiddenDefinitions","managedHiddenDefinitions","showFilter","hideFilter","simpleVisibleDefinitions","undefined","filter","effectiveVisibleDefinitions","handleFilterRemoved","filterKey","handleFilterShown","hiddenFilterItems","map","key","label","effectiveRenderAddFilterButton","length","createElement","onShowFilter","effectiveOnFilterRemoved","renderInput","definition","filterState","onFilterStateChanged","whereClause","get"],"sources":["FilterList.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition, WhereClause } from \"@osdk/api\";\nimport React, { useCallback, useMemo } from \"react\";\nimport { AddFilterPopover } from \"./base/AddFilterPopover.js\";\nimport { BaseFilterList } from \"./base/BaseFilterList.js\";\nimport type { RenderFilterInput } from \"./base/BaseFilterListApi.js\";\nimport { FilterInput } from \"./FilterInput.js\";\nimport type {\n FilterDefinitionUnion,\n FilterListProps,\n} from \"./FilterListApi.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\";\n\nexport function FilterList<Q extends ObjectTypeDefinition>(\n props: FilterListProps<Q>,\n): React.ReactElement {\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\n const objectType = objectSet.$objectSetInternals.def;\n\n const {\n filterStates,\n setFilterState,\n perFilterWhereClauses,\n activeFilterCount,\n reset,\n } = useFilterListState(props);\n\n const handleReset = useCallback(() => {\n reset();\n onReset?.();\n }, [reset, onReset]);\n\n const uncontrolledAddFilterMode = addFilterMode === \"uncontrolled\";\n\n const getIsVisible = useCallback(\n (def: FilterDefinitionUnion<Q>) => def.isVisible !== false,\n [],\n );\n\n const {\n visibleDefinitions: managedVisibleDefinitions,\n hiddenDefinitions: managedHiddenDefinitions,\n showFilter,\n hideFilter,\n } = useFilterVisibility(filterDefinitions, getFilterKey, getIsVisible);\n\n const simpleVisibleDefinitions = useMemo(() => {\n if (filterDefinitions == null) {\n return undefined;\n }\n return filterDefinitions.filter(\n (def: FilterDefinitionUnion<Q>) => def.isVisible !== false,\n );\n }, [filterDefinitions]);\n\n const effectiveVisibleDefinitions = uncontrolledAddFilterMode\n ? managedVisibleDefinitions\n : simpleVisibleDefinitions;\n\n const handleFilterRemoved = useCallback(\n (filterKey: string) => {\n if (uncontrolledAddFilterMode) {\n hideFilter(filterKey);\n }\n onFilterRemoved?.(filterKey);\n },\n [uncontrolledAddFilterMode, hideFilter, onFilterRemoved],\n );\n\n const handleFilterShown = useCallback(\n (filterKey: string) => {\n showFilter(filterKey);\n onFilterAdded?.(filterKey, filterDefinitions ?? []);\n },\n [showFilter, onFilterAdded, filterDefinitions],\n );\n\n const hiddenFilterItems = useMemo(\n () =>\n managedHiddenDefinitions.map((def) => ({\n key: getFilterKey(def),\n label: getFilterLabel(def),\n })),\n [managedHiddenDefinitions],\n );\n\n const effectiveRenderAddFilterButton = useMemo(() => {\n if (uncontrolledAddFilterMode && managedHiddenDefinitions.length > 0) {\n return () => (\n <AddFilterPopover\n hiddenDefinitions={hiddenFilterItems}\n onShowFilter={handleFilterShown}\n />\n );\n }\n return renderAddFilterButton;\n }, [\n uncontrolledAddFilterMode,\n managedHiddenDefinitions.length,\n hiddenFilterItems,\n handleFilterShown,\n renderAddFilterButton,\n ]);\n\n const effectiveOnFilterRemoved = uncontrolledAddFilterMode\n ? handleFilterRemoved\n : onFilterRemoved;\n\n const renderInput = useCallback<RenderFilterInput<FilterDefinitionUnion<Q>>>(\n ({ definition, filterKey, filterState, onFilterStateChanged }) => (\n <FilterInput\n objectType={objectType}\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={perFilterWhereClauses.get(filterKey)\n ?? ({} as WhereClause<Q>)}\n />\n ),\n [objectType, objectSet, perFilterWhereClauses],\n );\n\n return (\n <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}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FilterList.js","names":["React","useCallback","useMemo","AddFilterPopover","BaseFilterList","FilterInput","useFilterListState","useFilterVisibility","getFilterKey","getFilterLabel","FilterList","props","objectSet","title","titleIcon","collapsed","onCollapsedChange","filterDefinitions","addFilterMode","showResetButton","onReset","showActiveFilterCount","className","enableSorting","onFilterAdded","onFilterRemoved","renderAddFilterButton","objectType","$objectSetInternals","def","filterStates","setFilterState","perFilterWhereClauses","activeFilterCount","reset","uncontrolledAddFilterMode","getIsVisible","isVisible","visibleDefinitions","managedVisibleDefinitions","hiddenDefinitions","managedHiddenDefinitions","showFilter","hideFilter","hasVisibilityChanges","resetVisibility","handleReset","simpleVisibleDefinitions","undefined","filter","effectiveVisibleDefinitions","handleFilterRemoved","filterKey","handleFilterShown","hiddenFilterItems","map","key","label","effectiveRenderAddFilterButton","length","createElement","onShowFilter","renderTrigger","effectiveOnFilterRemoved","renderInput","definition","filterState","onFilterStateChanged","searchQuery","excludeRowOpen","whereClause","get"],"sources":["FilterList.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition, WhereClause } from \"@osdk/api\";\nimport React, { useCallback, useMemo } from \"react\";\nimport { AddFilterPopover } from \"./base/AddFilterPopover.js\";\nimport { BaseFilterList } from \"./base/BaseFilterList.js\";\nimport type { RenderFilterInput } from \"./base/BaseFilterListApi.js\";\nimport { FilterInput } from \"./FilterInput.js\";\nimport type {\n FilterDefinitionUnion,\n FilterListProps,\n} from \"./FilterListApi.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\";\n\nexport function FilterList<Q extends ObjectTypeDefinition>(\n props: FilterListProps<Q>,\n): React.ReactElement {\n const {\n objectSet,\n title,\n titleIcon,\n collapsed,\n onCollapsedChange,\n filterDefinitions,\n addFilterMode = \"uncontrolled\",\n showResetButton = false,\n onReset,\n showActiveFilterCount = false,\n className,\n enableSorting,\n onFilterAdded,\n onFilterRemoved,\n renderAddFilterButton,\n } = props;\n\n const objectType = objectSet.$objectSetInternals.def;\n\n const {\n filterStates,\n setFilterState,\n perFilterWhereClauses,\n activeFilterCount,\n reset,\n } = useFilterListState(props);\n\n const uncontrolledAddFilterMode = addFilterMode === \"uncontrolled\";\n\n const getIsVisible = useCallback(\n (def: FilterDefinitionUnion<Q>) => def.isVisible !== false,\n [],\n );\n\n const {\n visibleDefinitions: managedVisibleDefinitions,\n hiddenDefinitions: managedHiddenDefinitions,\n showFilter,\n hideFilter,\n hasVisibilityChanges,\n resetVisibility,\n } = useFilterVisibility(filterDefinitions, getFilterKey, getIsVisible);\n\n const handleReset = useCallback(() => {\n reset();\n resetVisibility();\n onReset?.();\n }, [reset, resetVisibility, onReset]);\n\n const simpleVisibleDefinitions = useMemo(() => {\n if (filterDefinitions == null) {\n return undefined;\n }\n return filterDefinitions.filter(\n (def: FilterDefinitionUnion<Q>) => def.isVisible !== false,\n );\n }, [filterDefinitions]);\n\n const effectiveVisibleDefinitions = uncontrolledAddFilterMode\n ? managedVisibleDefinitions\n : simpleVisibleDefinitions;\n\n const handleFilterRemoved = useCallback(\n (filterKey: string) => {\n if (uncontrolledAddFilterMode) {\n hideFilter(filterKey);\n }\n onFilterRemoved?.(filterKey);\n },\n [uncontrolledAddFilterMode, hideFilter, onFilterRemoved],\n );\n\n const handleFilterShown = useCallback(\n (filterKey: string) => {\n showFilter(filterKey);\n onFilterAdded?.(filterKey, filterDefinitions ?? []);\n },\n [showFilter, onFilterAdded, filterDefinitions],\n );\n\n const hiddenFilterItems = useMemo(\n () =>\n managedHiddenDefinitions.map((def) => ({\n key: getFilterKey(def),\n label: getFilterLabel(def),\n })),\n [managedHiddenDefinitions],\n );\n\n const effectiveRenderAddFilterButton = useMemo(() => {\n if (uncontrolledAddFilterMode) {\n if (managedHiddenDefinitions.length === 0) {\n return undefined;\n }\n return () => (\n <AddFilterPopover\n hiddenDefinitions={hiddenFilterItems}\n onShowFilter={handleFilterShown}\n renderTrigger={renderAddFilterButton}\n />\n );\n }\n return renderAddFilterButton;\n }, [\n uncontrolledAddFilterMode,\n managedHiddenDefinitions.length,\n hiddenFilterItems,\n handleFilterShown,\n renderAddFilterButton,\n ]);\n\n const effectiveOnFilterRemoved = uncontrolledAddFilterMode\n ? handleFilterRemoved\n : onFilterRemoved;\n\n const renderInput = useCallback<RenderFilterInput<FilterDefinitionUnion<Q>>>(\n (\n {\n definition,\n filterKey,\n filterState,\n onFilterStateChanged,\n searchQuery,\n excludeRowOpen,\n },\n ) => (\n <FilterInput\n objectType={objectType}\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={perFilterWhereClauses.get(filterKey)\n ?? ({} as WhereClause<Q>)}\n searchQuery={searchQuery}\n excludeRowOpen={excludeRowOpen}\n />\n ),\n [objectType, objectSet, perFilterWhereClauses],\n );\n\n return (\n <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 hasVisibilityChanges={hasVisibilityChanges}\n enableSorting={enableSorting}\n onFilterRemoved={effectiveOnFilterRemoved}\n className={className}\n renderAddFilterButton={effectiveRenderAddFilterButton}\n />\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterListApi.js","names":[],"sources":["FilterListApi.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n LinkNames,\n ObjectSet,\n ObjectTypeDefinition,\n WhereClause,\n} from \"@osdk/api\";\nimport type React from \"react\";\nimport type {\n FilterState as FilterStateType,\n PropertyFilterDefinition,\n} from \"./FilterListItemApi.js\";\nimport type { CustomFilterDefinition } from \"./types/CustomRendererTypes.js\";\nimport type { KeywordSearchFilterDefinition } from \"./types/KeywordSearchTypes.js\";\nimport type {\n HasLinkFilterDefinition,\n LinkedPropertyFilterDefinition,\n} from \"./types/LinkedFilterTypes.js\";\n\n/**\n * Union type of all filter definition types\n */\nexport type FilterDefinitionUnion<Q extends ObjectTypeDefinition> =\n | PropertyFilterDefinition<Q>\n | HasLinkFilterDefinition<Q>\n | LinkedPropertyFilterDefinition<Q, LinkNames<Q>>\n | KeywordSearchFilterDefinition<Q>\n | CustomFilterDefinition<Q>;\n\n/**\n * Extract the key from a filter definition union\n */\nexport type FilterKey<Q extends ObjectTypeDefinition> =\n FilterDefinitionUnion<Q> extends infer D ? D extends { key: infer K } ? K\n : D extends { linkName: infer L } ? L\n : never\n : never;\n\n/**\n * Extract the filter state from a filter definition union\n */\nexport type FilterState<Q extends ObjectTypeDefinition> =\n FilterDefinitionUnion<Q> extends infer D\n ? D extends { filterState: infer S } ? S\n : never\n : never;\n\n/**\n * Map from filter definition objects to their current state.\n * Uses object identity for keys, ensuring stable lookups across reorders.\n */\nexport type FilterStatesMap<Q extends ObjectTypeDefinition> = Map<\n FilterDefinitionUnion<Q>,\n FilterStateType\n>;\n\nexport interface FilterListProps<Q extends ObjectTypeDefinition> {\n /**\n * The set of objects to be filtered\n */\n objectSet: ObjectSet<Q>;\n\n /**\n * Optional title to display in the filter list header\n */\n title?: string;\n\n /**\n * Optional icon to display next to the title\n */\n titleIcon?: React.ReactNode;\n\n /**\n * The definition for all supported filter items in the list\n * If not supplied, all filterable properties will be available\n */\n filterDefinitions?: Array<FilterDefinitionUnion<Q>>;\n\n /**\n * The current where clause to filter the objectSet.\n * If provided, the filter clause is controlled.\n */\n filterClause?: WhereClause<Q>;\n\n /**\n * Called when the filter clause changes.\n * The filters are joined by the selected filterOperator.\n * Required in controlled mode.\n *\n * @param newClause The updated filter clause\n */\n onFilterClauseChanged?: (newClause: WhereClause<Q>) => void;\n\n /**\n * The logical operator to join multiple filters\n *\n * @default \"and\"\n */\n filterOperator?: \"and\" | \"or\";\n\n /**\n * Called when filter state changes\n *\n * @param definition The filter definition whose state changed\n * @param newState The updated filter state\n */\n onFilterStateChanged?: (\n definition: FilterDefinitionUnion<Q>,\n newState: FilterStateType,\n ) => void;\n\n /**\n * Controls how filter visibility (add/remove) is managed.\n *\n * - `\"controlled\"` (default): The consumer manages which filters are\n * visible via `filterDefinitions`. Filters with `isVisible: false` are\n * excluded from the rendered list.\n * - `\"uncontrolled\"`: FilterList manages visibility internally. An \"Add\n * filter\" popover is rendered for filters with `isVisible: false`, and\n * each visible filter shows a remove button.\n *\n * @default \"controlled\"\n */\n addFilterMode?: \"controlled\" | \"uncontrolled\";\n\n /**\n * Called when a filter is added (shown).\n *\n * In uncontrolled mode, this fires when a user selects a hidden filter\n * from the \"Add filter\" popover.\n *\n * @param filterKey The key of the added filter\n * @param newDefinitions The current filter definitions array\n */\n onFilterAdded?: (\n filterKey: FilterKey<Q>,\n newDefinitions: Array<FilterDefinitionUnion<Q>>,\n ) => void;\n\n /**\n * Called when a filter is removed (hidden).\n *\n * In uncontrolled mode, this fires as a notification after the filter\n * is hidden internally.\n *\n * @param filterKey The key of the removed filter\n */\n onFilterRemoved?: (filterKey: FilterKey<Q>) => void;\n\n /**\n * Enable drag-and-drop reordering of filters.\n * When true, drag handles are rendered and filters can be reordered.\n * Reorder state is managed internally; consumers who need to track order\n * should use controlled filterDefinitions.\n */\n enableSorting?: boolean;\n\n /**\n * Whether the filter list panel is collapsed\n */\n collapsed?: boolean;\n\n /**\n * Called when the collapsed state changes\n */\n onCollapsedChange?: (collapsed: boolean) => void;\n\n /**\n * Initial filter states for hydrating from external storage.\n * These states are merged over definition defaults on mount.\n * Use onFilterStateChanged to persist state changes externally.\n */\n initialFilterStates?: Map<string, FilterStateType>;\n\n /**\n * Show reset filters button in header\n */\n showResetButton?: boolean;\n\n /**\n * Called when reset button is clicked\n */\n onReset?: () => void;\n\n /**\n * Show count of active filters in header\n */\n showActiveFilterCount?: boolean;\n\n /**\n * Additional CSS class name\n */\n className?: string;\n\n /**\n * Custom render function for the \"Add filter\" button.\n * Only used in controlled mode. In uncontrolled mode, the built-in\n * AddFilterPopover is rendered automatically.\n */\n renderAddFilterButton?: () => React.ReactNode;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"FilterListApi.js","names":[],"sources":["FilterListApi.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n LinkNames,\n ObjectSet,\n ObjectTypeDefinition,\n WhereClause,\n} from \"@osdk/api\";\nimport type React from \"react\";\nimport type { ReactNode } from \"react\";\nimport type {\n FilterState as FilterStateType,\n PropertyFilterDefinition,\n} from \"./FilterListItemApi.js\";\nimport type { CustomFilterDefinition } from \"./types/CustomRendererTypes.js\";\nimport type { KeywordSearchFilterDefinition } from \"./types/KeywordSearchTypes.js\";\nimport type {\n HasLinkFilterDefinition,\n LinkedPropertyFilterDefinition,\n} from \"./types/LinkedFilterTypes.js\";\n\n/**\n * Union type of all filter definition types\n */\nexport type FilterDefinitionUnion<Q extends ObjectTypeDefinition> =\n | PropertyFilterDefinition<Q>\n | HasLinkFilterDefinition<Q>\n | LinkedPropertyFilterDefinition<Q, LinkNames<Q>>\n | KeywordSearchFilterDefinition<Q>\n | CustomFilterDefinition<Q>;\n\n/**\n * Extract the key from a filter definition union\n */\nexport type FilterKey<Q extends ObjectTypeDefinition> =\n FilterDefinitionUnion<Q> extends infer D ? D extends { key: infer K } ? K\n : D extends { linkName: infer L } ? L\n : never\n : never;\n\n/**\n * Extract the filter state from a filter definition union\n */\nexport type FilterState<Q extends ObjectTypeDefinition> =\n FilterDefinitionUnion<Q> extends infer D\n ? D extends { filterState: infer S } ? S\n : never\n : never;\n\n/**\n * Map from filter definition objects to their current state.\n * Uses object identity for keys, ensuring stable lookups across reorders.\n */\nexport type FilterStatesMap<Q extends ObjectTypeDefinition> = Map<\n FilterDefinitionUnion<Q>,\n FilterStateType\n>;\n\nexport interface FilterListProps<Q extends ObjectTypeDefinition> {\n /**\n * The set of objects to be filtered\n */\n objectSet: ObjectSet<Q>;\n\n /**\n * Optional title to display in the filter list header\n */\n title?: ReactNode;\n\n /**\n * Optional icon to display next to the title\n */\n titleIcon?: React.ReactNode;\n\n /**\n * The definition for all supported filter items in the list\n * If not supplied, all filterable properties will be available\n */\n filterDefinitions?: Array<FilterDefinitionUnion<Q>>;\n\n /**\n * The current where clause to filter the objectSet.\n * If provided, the filter clause is controlled.\n */\n filterClause?: WhereClause<Q>;\n\n /**\n * Called when the filter clause changes.\n * The filters are joined by the selected filterOperator.\n * Required in controlled mode.\n *\n * @param newClause The updated filter clause\n */\n onFilterClauseChanged?: (newClause: WhereClause<Q>) => void;\n\n /**\n * The logical operator to join multiple filters\n *\n * @default \"and\"\n */\n filterOperator?: \"and\" | \"or\";\n\n /**\n * Called when filter state changes\n *\n * @param definition The filter definition whose state changed\n * @param newState The updated filter state\n */\n onFilterStateChanged?: (\n definition: FilterDefinitionUnion<Q>,\n newState: FilterStateType,\n ) => void;\n\n /**\n * Controls how filter visibility (add/remove) is managed.\n *\n * - `\"uncontrolled\"` (default): FilterList manages visibility internally.\n * An \"Add filter\" popover is rendered for filters with `isVisible: false`,\n * and each visible filter shows a remove button.\n * - `\"controlled\"`: The consumer manages which filters are visible via\n * `filterDefinitions`. Filters with `isVisible: false` are excluded from\n * the rendered list.\n *\n * @default \"uncontrolled\"\n */\n addFilterMode?: \"controlled\" | \"uncontrolled\";\n\n /**\n * Called when a filter is added (shown).\n *\n * In uncontrolled mode, this fires when a user selects a hidden filter\n * from the \"Add filter\" popover.\n *\n * @param filterKey The key of the added filter\n * @param newDefinitions The current filter definitions array\n */\n onFilterAdded?: (\n filterKey: FilterKey<Q>,\n newDefinitions: Array<FilterDefinitionUnion<Q>>,\n ) => void;\n\n /**\n * Called when a filter is removed (hidden).\n *\n * In uncontrolled mode, this fires as a notification after the filter\n * is hidden internally.\n *\n * @param filterKey The key of the removed filter\n */\n onFilterRemoved?: (filterKey: FilterKey<Q>) => void;\n\n /**\n * Enable drag-and-drop reordering of filters.\n * When true, drag handles are rendered and filters can be reordered.\n * Reorder state is managed internally; consumers who need to track order\n * should use controlled filterDefinitions.\n */\n enableSorting?: boolean;\n\n /**\n * Whether the filter list panel is collapsed\n */\n collapsed?: boolean;\n\n /**\n * Called when the collapsed state changes\n */\n onCollapsedChange?: (collapsed: boolean) => void;\n\n /**\n * Initial filter states for hydrating from external storage.\n * These states are merged over definition defaults on mount.\n * Use onFilterStateChanged to persist state changes externally.\n */\n initialFilterStates?: Map<string, FilterStateType>;\n\n /**\n * Show reset filters button in header\n */\n showResetButton?: boolean;\n\n /**\n * Called when reset button is clicked\n */\n onReset?: () => void;\n\n /**\n * Show count of active filters in header\n */\n showActiveFilterCount?: boolean;\n\n /**\n * Additional CSS class name\n */\n className?: string;\n\n /**\n * Custom render function for the \"Add filter\" button.\n *\n * - In uncontrolled mode: customizes the trigger element for the built-in\n * add-filter popover. The popover behavior is handled automatically.\n * - In controlled mode: replaces the entire add-filter button area.\n * The consumer is responsible for all add-filter behavior.\n */\n renderAddFilterButton?: () => React.ReactNode;\n}\n"],"mappings":"","ignoreList":[]}
@@ -19,7 +19,8 @@ import React, { memo, useCallback } from "react";
19
19
  import styles from "./AddFilterPopover.module.css";
20
20
  function AddFilterPopoverInner({
21
21
  hiddenDefinitions,
22
- onShowFilter
22
+ onShowFilter,
23
+ renderTrigger
23
24
  }) {
24
25
  const handleItemClick = useCallback(event => {
25
26
  const key = event.currentTarget.dataset.key;
@@ -28,8 +29,8 @@ function AddFilterPopoverInner({
28
29
  }
29
30
  }, [onShowFilter]);
30
31
  return /*#__PURE__*/React.createElement(Menu.Root, null, /*#__PURE__*/React.createElement(Menu.Trigger, {
31
- className: styles.trigger
32
- }, "+ Add filter"), /*#__PURE__*/React.createElement(Menu.Portal, null, /*#__PURE__*/React.createElement(Menu.Positioner, {
32
+ className: renderTrigger == null ? styles.trigger : undefined
33
+ }, renderTrigger != null ? renderTrigger() : "+ Add filter"), /*#__PURE__*/React.createElement(Menu.Portal, null, /*#__PURE__*/React.createElement(Menu.Positioner, {
33
34
  className: styles.positioner,
34
35
  sideOffset: 4
35
36
  }, /*#__PURE__*/React.createElement(Menu.Popup, {