@osdk/react-components 0.12.0 → 0.13.0

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 (328) hide show
  1. package/AGENTS.md +4 -0
  2. package/CHANGELOG.md +11 -0
  3. package/build/browser/action-form/ActionForm.js +19 -11
  4. package/build/browser/action-form/ActionForm.js.map +1 -1
  5. package/build/browser/action-form/ActionFormApi.js.map +1 -1
  6. package/build/browser/action-form/BaseForm.js +19 -13
  7. package/build/browser/action-form/BaseForm.js.map +1 -1
  8. package/build/browser/action-form/BaseForm.module.css +7 -7
  9. package/build/browser/action-form/FormField.js +5 -2
  10. package/build/browser/action-form/FormField.js.map +1 -1
  11. package/build/browser/action-form/FormField.module.css +6 -1
  12. package/build/browser/action-form/FormField.module.css.js +1 -0
  13. package/build/browser/action-form/FormFieldApi.js +7 -1
  14. package/build/browser/action-form/FormFieldApi.js.map +1 -1
  15. package/build/browser/action-form/FormHeader.module.css +2 -2
  16. package/build/browser/action-form/fields/DateCalendar.js +41 -3
  17. package/build/browser/action-form/fields/DateCalendar.js.map +1 -1
  18. package/build/browser/action-form/fields/DateCalendar.module.css +59 -10
  19. package/build/browser/action-form/fields/DateCalendar.module.css.js +5 -1
  20. package/build/browser/action-form/fields/DateRangeCalendar.js +8 -5
  21. package/build/browser/action-form/fields/DateRangeCalendar.js.map +1 -1
  22. package/build/browser/action-form/fields/DateRangeInputField.js +76 -61
  23. package/build/browser/action-form/fields/DateRangeInputField.js.map +1 -1
  24. package/build/browser/action-form/fields/DateRangeInputField.module.css +0 -15
  25. package/build/browser/action-form/fields/DateRangeInputField.module.css.js +1 -2
  26. package/build/browser/action-form/fields/DatetimePickerField.js +74 -40
  27. package/build/browser/action-form/fields/DatetimePickerField.js.map +1 -1
  28. package/build/browser/action-form/fields/DatetimePickerField.module.css +2 -9
  29. package/build/browser/action-form/fields/FieldBridge.js +1 -1
  30. package/build/browser/action-form/fields/FieldBridge.js.map +1 -1
  31. package/build/browser/action-form/fields/FilePickerField.js +47 -39
  32. package/build/browser/action-form/fields/FilePickerField.js.map +1 -1
  33. package/build/browser/action-form/fields/FilePickerField.module.css +43 -31
  34. package/build/browser/action-form/fields/FilePickerField.module.css.js +2 -2
  35. package/build/browser/action-form/fields/FormFieldRenderer.js +9 -0
  36. package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -1
  37. package/build/browser/action-form/fields/RadioButtonsField.module.css +3 -3
  38. package/build/browser/action-form/fields/SwitchField.js +34 -0
  39. package/build/browser/action-form/fields/SwitchField.js.map +1 -0
  40. package/build/browser/action-form/fields/TimePicker.js +165 -26
  41. package/build/browser/action-form/fields/TimePicker.js.map +1 -1
  42. package/build/browser/action-form/fields/TimePicker.module.css +27 -2
  43. package/build/browser/action-form/fields/TimePicker.module.css.js +3 -1
  44. package/build/browser/action-form/fields/calendarShared.js +5 -0
  45. package/build/browser/action-form/fields/calendarShared.js.map +1 -1
  46. package/build/browser/action-form/fields/useDateEditState.js +3 -4
  47. package/build/browser/action-form/fields/useDateEditState.js.map +1 -1
  48. package/build/browser/base-components/action-button/ActionButton.js +2 -1
  49. package/build/browser/base-components/action-button/ActionButton.js.map +1 -1
  50. package/build/browser/base-components/action-button/ActionButton.module.css +19 -0
  51. package/build/browser/base-components/action-button/ActionButton.module.css.js +2 -1
  52. package/build/browser/base-components/combobox/Combobox.module.css +31 -3
  53. package/build/browser/base-components/select/Select.module.css +18 -0
  54. package/build/browser/base-components/switch/Switch.module.css +18 -6
  55. package/build/browser/filter-list/base/inputs/ListogramInput.js +34 -6
  56. package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -1
  57. package/build/browser/filter-list/base/inputs/ListogramInput.module.css +11 -5
  58. package/build/browser/filter-list/base/inputs/ListogramInput.module.css.js +1 -1
  59. package/build/browser/filter-list/base/inputs/MultiSelectInput.js +20 -12
  60. package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -1
  61. package/build/browser/filter-list/base/inputs/NoValueLabel.js +36 -0
  62. package/build/browser/filter-list/base/inputs/NoValueLabel.js.map +1 -0
  63. package/build/browser/filter-list/base/inputs/NoValueLabel.module.css +20 -0
  64. package/build/browser/filter-list/base/inputs/NoValueLabel.module.css.js +6 -0
  65. package/build/browser/filter-list/base/inputs/NullValueWrapper.js +4 -3
  66. package/build/browser/filter-list/base/inputs/NullValueWrapper.js.map +1 -1
  67. package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css +10 -7
  68. package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css.js +1 -1
  69. package/build/browser/filter-list/base/inputs/SingleSelectInput.js +13 -8
  70. package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
  71. package/build/browser/filter-list/base/inputs/TextTagsInput.js +6 -2
  72. package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -1
  73. package/build/browser/filter-list/hooks/useFilterListState.js +7 -6
  74. package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
  75. package/build/browser/filter-list/hooks/useStableMapEntries.js +35 -0
  76. package/build/browser/filter-list/hooks/useStableMapEntries.js.map +1 -0
  77. package/build/browser/filter-list/utils/filterValues.js +13 -0
  78. package/build/browser/filter-list/utils/filterValues.js.map +1 -1
  79. package/build/browser/object-table/DefaultCellRenderer.js +12 -2
  80. package/build/browser/object-table/DefaultCellRenderer.js.map +1 -1
  81. package/build/browser/object-table/EditableCell.js +14 -4
  82. package/build/browser/object-table/EditableCell.js.map +1 -1
  83. package/build/browser/object-table/EditableCell.module.css +4 -0
  84. package/build/browser/object-table/EditableCell.module.css.js +1 -0
  85. package/build/browser/object-table/ObjectTable.js +3 -1
  86. package/build/browser/object-table/ObjectTable.js.map +1 -1
  87. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  88. package/build/browser/object-table/Table.js +8 -4
  89. package/build/browser/object-table/Table.js.map +1 -1
  90. package/build/browser/object-table/TableBody.js +4 -2
  91. package/build/browser/object-table/TableBody.js.map +1 -1
  92. package/build/browser/object-table/TableRow.js +12 -4
  93. package/build/browser/object-table/TableRow.js.map +1 -1
  94. package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
  95. package/build/browser/object-table/utils/editableUtils.js +39 -0
  96. package/build/browser/object-table/utils/editableUtils.js.map +1 -0
  97. package/build/browser/object-table/utils/shouldShowEditableCell.js +1 -1
  98. package/build/browser/object-table/utils/shouldShowEditableCell.js.map +1 -1
  99. package/build/browser/object-table/utils/types.js.map +1 -1
  100. package/build/browser/styles.css +331 -130
  101. package/build/browser/tokens/component-tokens/button.css +15 -0
  102. package/build/browser/tokens/component-tokens/combobox.css +9 -0
  103. package/build/browser/tokens/component-tokens/datetime-picker.css +2 -2
  104. package/build/browser/tokens/component-tokens/file-picker.css +0 -10
  105. package/build/browser/tokens/component-tokens/filter-list.css +9 -6
  106. package/build/browser/tokens/component-tokens/form-section.css +1 -1
  107. package/build/browser/tokens/component-tokens/form.css +9 -5
  108. package/build/browser/tokens/component-tokens/table.css +3 -5
  109. package/build/browser/tokens.css +1 -0
  110. package/build/browser/util/UserAgent.js +1 -1
  111. package/build/cjs/{DateCalendar-2W4QHEEI.css → DateCalendar-G7RC2FCG.css} +105 -8
  112. package/build/cjs/DateCalendar-G7RC2FCG.css.map +1 -0
  113. package/build/cjs/DateCalendar-RX7HP2XP.cjs +26 -0
  114. package/build/cjs/{DateCalendar-QGSYBWJB.cjs.map → DateCalendar-RX7HP2XP.cjs.map} +1 -1
  115. package/build/cjs/{DateRangeCalendar-M63S2LLG.css → DateRangeCalendar-JBVYJDBJ.css} +105 -8
  116. package/build/cjs/DateRangeCalendar-JBVYJDBJ.css.map +1 -0
  117. package/build/cjs/DateRangeCalendar-OHT4IUWQ.cjs +54 -0
  118. package/build/cjs/DateRangeCalendar-OHT4IUWQ.cjs.map +1 -0
  119. package/build/cjs/{chunk-T7I6O43T.cjs → chunk-6SPXSFPI.cjs} +237 -85
  120. package/build/cjs/chunk-6SPXSFPI.cjs.map +1 -0
  121. package/build/cjs/{chunk-SZXVBDSA.cjs → chunk-6UDBHYSO.cjs} +3 -3
  122. package/build/cjs/{chunk-SZXVBDSA.cjs.map → chunk-6UDBHYSO.cjs.map} +1 -1
  123. package/build/cjs/{chunk-YBDS5WQP.cjs → chunk-7H6WXQ35.cjs} +4 -4
  124. package/build/cjs/{chunk-YBDS5WQP.cjs.map → chunk-7H6WXQ35.cjs.map} +1 -1
  125. package/build/cjs/{chunk-VVJFMOZI.cjs → chunk-I3OSD6CF.cjs} +19 -45
  126. package/build/cjs/chunk-I3OSD6CF.cjs.map +1 -0
  127. package/build/cjs/chunk-MD4KDE44.cjs +41 -0
  128. package/build/cjs/chunk-MD4KDE44.cjs.map +1 -0
  129. package/build/cjs/{chunk-YPXTSEE7.cjs → chunk-MLFMSZJQ.cjs} +85 -38
  130. package/build/cjs/chunk-MLFMSZJQ.cjs.map +1 -0
  131. package/build/cjs/chunk-MQYOHGPY.cjs +52 -0
  132. package/build/cjs/chunk-MQYOHGPY.cjs.map +1 -0
  133. package/build/cjs/{chunk-BJDCC446.cjs → chunk-PTTCWNZZ.cjs} +417 -364
  134. package/build/cjs/chunk-PTTCWNZZ.cjs.map +1 -0
  135. package/build/cjs/{chunk-B2GRQRWU.cjs → chunk-TOJSJN3L.cjs} +44 -8
  136. package/build/cjs/chunk-TOJSJN3L.cjs.map +1 -0
  137. package/build/cjs/{chunk-JLESWL47.cjs → chunk-V7XWTJV7.cjs} +4 -2
  138. package/build/cjs/chunk-V7XWTJV7.cjs.map +1 -0
  139. package/build/cjs/{chunk-L5LPFCXT.cjs → chunk-W2IASYE4.cjs} +163 -125
  140. package/build/cjs/chunk-W2IASYE4.cjs.map +1 -0
  141. package/build/cjs/chunk-X337DNCW.cjs +45 -0
  142. package/build/cjs/chunk-X337DNCW.cjs.map +1 -0
  143. package/build/cjs/{chunk-SB2VTP67.cjs → chunk-Z7VHLTKD.cjs} +2 -64
  144. package/build/cjs/chunk-Z7VHLTKD.cjs.map +1 -0
  145. package/build/cjs/public/experimental/action-form.cjs +11 -9
  146. package/build/cjs/public/experimental/action-form.css +223 -68
  147. package/build/cjs/public/experimental/action-form.css.map +1 -1
  148. package/build/cjs/public/experimental/action-form.d.cts +83 -74
  149. package/build/cjs/public/experimental/filter-list.cjs +9 -8
  150. package/build/cjs/public/experimental/filter-list.css +38 -19
  151. package/build/cjs/public/experimental/filter-list.css.map +1 -1
  152. package/build/cjs/public/experimental/object-table.cjs +14 -12
  153. package/build/cjs/public/experimental/object-table.css +152 -59
  154. package/build/cjs/public/experimental/object-table.css.map +1 -1
  155. package/build/cjs/public/experimental/object-table.d.cts +39 -20
  156. package/build/cjs/public/experimental/pdf-viewer.cjs +24 -24
  157. package/build/cjs/public/experimental.cjs +46 -44
  158. package/build/cjs/public/experimental.css +242 -139
  159. package/build/cjs/public/experimental.css.map +1 -1
  160. package/build/cjs/public/primitives.cjs +8 -7
  161. package/build/cjs/public/primitives.css +15 -0
  162. package/build/cjs/public/primitives.css.map +1 -1
  163. package/build/cjs/public/primitives.d.cts +1 -0
  164. package/build/esm/action-form/ActionForm.js +19 -11
  165. package/build/esm/action-form/ActionForm.js.map +1 -1
  166. package/build/esm/action-form/ActionFormApi.js.map +1 -1
  167. package/build/esm/action-form/BaseForm.js +19 -13
  168. package/build/esm/action-form/BaseForm.js.map +1 -1
  169. package/build/esm/action-form/BaseForm.module.css +7 -7
  170. package/build/esm/action-form/FormField.js +5 -2
  171. package/build/esm/action-form/FormField.js.map +1 -1
  172. package/build/esm/action-form/FormField.module.css +6 -1
  173. package/build/esm/action-form/FormFieldApi.js +7 -1
  174. package/build/esm/action-form/FormFieldApi.js.map +1 -1
  175. package/build/esm/action-form/FormHeader.module.css +2 -2
  176. package/build/esm/action-form/fields/DateCalendar.js +41 -3
  177. package/build/esm/action-form/fields/DateCalendar.js.map +1 -1
  178. package/build/esm/action-form/fields/DateCalendar.module.css +59 -10
  179. package/build/esm/action-form/fields/DateRangeCalendar.js +8 -5
  180. package/build/esm/action-form/fields/DateRangeCalendar.js.map +1 -1
  181. package/build/esm/action-form/fields/DateRangeInputField.js +76 -61
  182. package/build/esm/action-form/fields/DateRangeInputField.js.map +1 -1
  183. package/build/esm/action-form/fields/DateRangeInputField.module.css +0 -15
  184. package/build/esm/action-form/fields/DatetimePickerField.js +74 -40
  185. package/build/esm/action-form/fields/DatetimePickerField.js.map +1 -1
  186. package/build/esm/action-form/fields/DatetimePickerField.module.css +2 -9
  187. package/build/esm/action-form/fields/FieldBridge.js +1 -1
  188. package/build/esm/action-form/fields/FieldBridge.js.map +1 -1
  189. package/build/esm/action-form/fields/FilePickerField.js +47 -39
  190. package/build/esm/action-form/fields/FilePickerField.js.map +1 -1
  191. package/build/esm/action-form/fields/FilePickerField.module.css +43 -31
  192. package/build/esm/action-form/fields/FormFieldRenderer.js +9 -0
  193. package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -1
  194. package/build/esm/action-form/fields/RadioButtonsField.module.css +3 -3
  195. package/build/esm/action-form/fields/SwitchField.js +34 -0
  196. package/build/esm/action-form/fields/SwitchField.js.map +1 -0
  197. package/build/esm/action-form/fields/TimePicker.js +165 -26
  198. package/build/esm/action-form/fields/TimePicker.js.map +1 -1
  199. package/build/esm/action-form/fields/TimePicker.module.css +27 -2
  200. package/build/esm/action-form/fields/calendarShared.js +5 -0
  201. package/build/esm/action-form/fields/calendarShared.js.map +1 -1
  202. package/build/esm/action-form/fields/useDateEditState.js +3 -4
  203. package/build/esm/action-form/fields/useDateEditState.js.map +1 -1
  204. package/build/esm/base-components/action-button/ActionButton.js +2 -1
  205. package/build/esm/base-components/action-button/ActionButton.js.map +1 -1
  206. package/build/esm/base-components/action-button/ActionButton.module.css +19 -0
  207. package/build/esm/base-components/combobox/Combobox.module.css +31 -3
  208. package/build/esm/base-components/select/Select.module.css +18 -0
  209. package/build/esm/base-components/switch/Switch.module.css +18 -6
  210. package/build/esm/filter-list/base/inputs/ListogramInput.js +34 -6
  211. package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -1
  212. package/build/esm/filter-list/base/inputs/ListogramInput.module.css +11 -5
  213. package/build/esm/filter-list/base/inputs/MultiSelectInput.js +20 -12
  214. package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -1
  215. package/build/esm/filter-list/base/inputs/NoValueLabel.js +36 -0
  216. package/build/esm/filter-list/base/inputs/NoValueLabel.js.map +1 -0
  217. package/build/esm/filter-list/base/inputs/NoValueLabel.module.css +20 -0
  218. package/build/esm/filter-list/base/inputs/NullValueWrapper.js +4 -3
  219. package/build/esm/filter-list/base/inputs/NullValueWrapper.js.map +1 -1
  220. package/build/esm/filter-list/base/inputs/NullValueWrapper.module.css +10 -7
  221. package/build/esm/filter-list/base/inputs/SingleSelectInput.js +13 -8
  222. package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
  223. package/build/esm/filter-list/base/inputs/TextTagsInput.js +6 -2
  224. package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -1
  225. package/build/esm/filter-list/hooks/useFilterListState.js +7 -6
  226. package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
  227. package/build/esm/filter-list/hooks/useStableMapEntries.js +35 -0
  228. package/build/esm/filter-list/hooks/useStableMapEntries.js.map +1 -0
  229. package/build/esm/filter-list/utils/filterValues.js +13 -0
  230. package/build/esm/filter-list/utils/filterValues.js.map +1 -1
  231. package/build/esm/object-table/DefaultCellRenderer.js +12 -2
  232. package/build/esm/object-table/DefaultCellRenderer.js.map +1 -1
  233. package/build/esm/object-table/EditableCell.js +14 -4
  234. package/build/esm/object-table/EditableCell.js.map +1 -1
  235. package/build/esm/object-table/EditableCell.module.css +4 -0
  236. package/build/esm/object-table/ObjectTable.js +3 -1
  237. package/build/esm/object-table/ObjectTable.js.map +1 -1
  238. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  239. package/build/esm/object-table/Table.js +8 -4
  240. package/build/esm/object-table/Table.js.map +1 -1
  241. package/build/esm/object-table/TableBody.js +4 -2
  242. package/build/esm/object-table/TableBody.js.map +1 -1
  243. package/build/esm/object-table/TableRow.js +12 -4
  244. package/build/esm/object-table/TableRow.js.map +1 -1
  245. package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
  246. package/build/esm/object-table/utils/editableUtils.js +39 -0
  247. package/build/esm/object-table/utils/editableUtils.js.map +1 -0
  248. package/build/esm/object-table/utils/shouldShowEditableCell.js +1 -1
  249. package/build/esm/object-table/utils/shouldShowEditableCell.js.map +1 -1
  250. package/build/esm/object-table/utils/types.js.map +1 -1
  251. package/build/esm/tokens/component-tokens/button.css +15 -0
  252. package/build/esm/tokens/component-tokens/combobox.css +9 -0
  253. package/build/esm/tokens/component-tokens/datetime-picker.css +2 -2
  254. package/build/esm/tokens/component-tokens/file-picker.css +0 -10
  255. package/build/esm/tokens/component-tokens/filter-list.css +9 -6
  256. package/build/esm/tokens/component-tokens/form-section.css +1 -1
  257. package/build/esm/tokens/component-tokens/form.css +9 -5
  258. package/build/esm/tokens/component-tokens/table.css +3 -5
  259. package/build/esm/tokens.css +1 -0
  260. package/build/esm/util/UserAgent.js +1 -1
  261. package/build/types/action-form/ActionFormApi.d.ts +8 -8
  262. package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
  263. package/build/types/action-form/BaseForm.d.ts.map +1 -1
  264. package/build/types/action-form/FormFieldApi.d.ts +29 -22
  265. package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
  266. package/build/types/action-form/fields/DateCalendar.d.ts +6 -1
  267. package/build/types/action-form/fields/DateCalendar.d.ts.map +1 -1
  268. package/build/types/action-form/fields/DateRangeCalendar.d.ts.map +1 -1
  269. package/build/types/action-form/fields/DateRangeInputField.d.ts.map +1 -1
  270. package/build/types/action-form/fields/DatetimePickerField.d.ts.map +1 -1
  271. package/build/types/action-form/fields/FieldBridge.d.ts.map +1 -1
  272. package/build/types/action-form/fields/FilePickerField.d.ts.map +1 -1
  273. package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -1
  274. package/build/types/action-form/fields/SwitchField.d.ts +7 -0
  275. package/build/types/action-form/fields/SwitchField.d.ts.map +1 -0
  276. package/build/types/action-form/fields/TimePicker.d.ts +4 -5
  277. package/build/types/action-form/fields/TimePicker.d.ts.map +1 -1
  278. package/build/types/action-form/fields/useDateEditState.d.ts +2 -2
  279. package/build/types/base-components/action-button/ActionButton.d.ts +1 -0
  280. package/build/types/base-components/action-button/ActionButton.d.ts.map +1 -1
  281. package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -1
  282. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -1
  283. package/build/types/filter-list/base/inputs/NoValueLabel.d.ts +15 -0
  284. package/build/types/filter-list/base/inputs/NoValueLabel.d.ts.map +1 -0
  285. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts.map +1 -1
  286. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts.map +1 -1
  287. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts.map +1 -1
  288. package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -1
  289. package/build/types/filter-list/hooks/useStableMapEntries.d.ts +9 -0
  290. package/build/types/filter-list/hooks/useStableMapEntries.d.ts.map +1 -0
  291. package/build/types/filter-list/utils/filterValues.d.ts +7 -0
  292. package/build/types/filter-list/utils/filterValues.d.ts.map +1 -1
  293. package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -1
  294. package/build/types/object-table/EditableCell.d.ts +1 -1
  295. package/build/types/object-table/EditableCell.d.ts.map +1 -1
  296. package/build/types/object-table/ObjectTableApi.d.ts +26 -7
  297. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  298. package/build/types/object-table/Table.d.ts +9 -2
  299. package/build/types/object-table/Table.d.ts.map +1 -1
  300. package/build/types/object-table/TableBody.d.ts +2 -1
  301. package/build/types/object-table/TableBody.d.ts.map +1 -1
  302. package/build/types/object-table/TableRow.d.ts +2 -1
  303. package/build/types/object-table/TableRow.d.ts.map +1 -1
  304. package/build/types/object-table/utils/editableUtils.d.ts +16 -0
  305. package/build/types/object-table/utils/editableUtils.d.ts.map +1 -0
  306. package/build/types/object-table/utils/shouldShowEditableCell.d.ts +2 -1
  307. package/build/types/object-table/utils/shouldShowEditableCell.d.ts.map +1 -1
  308. package/build/types/object-table/utils/types.d.ts +4 -11
  309. package/build/types/object-table/utils/types.d.ts.map +1 -1
  310. package/docs/ActionForm.md +176 -0
  311. package/docs/CSSVariables.md +31 -30
  312. package/docs/ObjectTable.md +141 -16
  313. package/package.json +6 -5
  314. package/build/cjs/DateCalendar-2W4QHEEI.css.map +0 -1
  315. package/build/cjs/DateCalendar-QGSYBWJB.cjs +0 -24
  316. package/build/cjs/DateRangeCalendar-JHO2BF3Z.cjs +0 -48
  317. package/build/cjs/DateRangeCalendar-JHO2BF3Z.cjs.map +0 -1
  318. package/build/cjs/DateRangeCalendar-M63S2LLG.css.map +0 -1
  319. package/build/cjs/chunk-B2GRQRWU.cjs.map +0 -1
  320. package/build/cjs/chunk-BJDCC446.cjs.map +0 -1
  321. package/build/cjs/chunk-JLESWL47.cjs.map +0 -1
  322. package/build/cjs/chunk-L5LPFCXT.cjs.map +0 -1
  323. package/build/cjs/chunk-SB2VTP67.cjs.map +0 -1
  324. package/build/cjs/chunk-T7I6O43T.cjs.map +0 -1
  325. package/build/cjs/chunk-UCTQICPR.cjs +0 -10
  326. package/build/cjs/chunk-UCTQICPR.cjs.map +0 -1
  327. package/build/cjs/chunk-VVJFMOZI.cjs.map +0 -1
  328. package/build/cjs/chunk-YPXTSEE7.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/filter-list/base/FilterIcons.tsx","../../src/filter-list/base/FilterList.module.css","../../src/filter-list/base/FilterListContent.module.css","../../src/shared/ErrorBoundary.module.css","../../src/shared/ErrorBoundary.tsx","../../src/filter-list/utils/filterValues.ts","../../src/filter-list/base/DragHandleIcon.tsx","../../src/filter-list/base/FilterListItem.module.css","../../src/filter-list/base/FilterListItem.tsx","../../src/filter-list/base/SortableFilterListItem.tsx","../../src/filter-list/base/FilterListContent.tsx","../../src/filter-list/base/FilterListHeader.module.css","../../src/filter-list/base/FilterListHeader.tsx","../../src/filter-list/base/BaseFilterList.tsx","../../src/filter-list/base/AddFilterPopover.module.css","../../src/filter-list/base/AddFilterPopover.tsx","../../src/filter-list/base/inputs/ContainsTextInput.module.css","../../src/filter-list/base/inputs/ContainsTextInput.tsx","../../src/base-components/switch/Switch.module.css","../../src/base-components/switch/Switch.tsx","../../src/filter-list/base/inputs/ToggleInput.module.css","../../src/filter-list/base/inputs/ToggleInput.tsx","../../src/filter-list/base/inputs/createHistogramBuckets.ts","../../src/filter-list/base/inputs/RangeInput.module.css","../../src/filter-list/base/inputs/shared.module.css","../../src/filter-list/base/inputs/useStableData.ts","../../src/filter-list/base/inputs/RangeInput.tsx","../../src/filter-list/base/inputs/DateRangeInput.tsx","../../src/filter-list/base/inputs/LinkedPropertyInput.module.css","../../src/filter-list/base/inputs/ListogramInput.module.css","../../src/filter-list/base/inputs/ListogramSkeleton.module.css","../../src/filter-list/base/inputs/ListogramSkeleton.tsx","../../src/filter-list/base/inputs/ListogramInput.tsx","../../src/filter-list/base/inputs/MultiDateInput.module.css","../../src/filter-list/base/inputs/MultiDateInput.tsx","../../src/filter-list/base/inputs/MultiSelectInput.module.css","../../src/filter-list/base/inputs/MultiSelectInput.tsx","../../src/filter-list/base/inputs/NullValueWrapper.module.css","../../src/filter-list/base/inputs/NullValueWrapper.tsx","../../src/filter-list/base/inputs/NumberRangeInput.tsx","../../src/filter-list/base/inputs/SingleDateInput.module.css","../../src/filter-list/base/inputs/SingleDateInput.tsx","../../src/filter-list/base/inputs/SingleSelectInput.module.css","../../src/filter-list/base/inputs/SingleSelectInput.tsx","../../src/filter-list/base/inputs/TextTagsInput.module.css","../../src/filter-list/base/inputs/TextTagsInput.tsx","../../src/filter-list/base/inputs/TimelineInput.module.css","../../src/filter-list/base/inputs/TimelineInput.tsx","../../src/filter-list/hooks/usePropertyAggregation.ts","../../src/filter-list/utils/aggregationHelpers.ts","../../src/filter-list/utils/coerceFilterValue.ts","../../src/filter-list/inputs/LinkedPropertyInput.tsx","../../src/filter-list/base/ExcludeDropdown.module.css","../../src/filter-list/base/ExcludeDropdown.tsx","../../src/filter-list/base/FilterInputExcludeRow.tsx","../../src/filter-list/inputs/ContainsTextFilterInput.tsx","../../src/filter-list/inputs/DateRangeFilterInput.tsx","../../src/filter-list/inputs/ListogramFilterInput.tsx","../../src/filter-list/inputs/MultiDateFilterInput.tsx","../../src/filter-list/inputs/MultiSelectFilterInput.tsx","../../src/filter-list/inputs/NumberRangeFilterInput.tsx","../../src/filter-list/inputs/SingleDateFilterInput.tsx","../../src/filter-list/inputs/SingleSelectFilterInput.tsx","../../src/filter-list/inputs/TextTagsFilterInput.tsx","../../src/filter-list/inputs/TimelineFilterInput.tsx","../../src/filter-list/inputs/ToggleFilterInput.tsx","../../src/filter-list/inputs/PropertyFilterInput.tsx","../../src/filter-list/inputs/StaticValuesFilterInput.tsx","../../src/filter-list/FilterInput.tsx","../../src/filter-list/utils/getFilterKey.ts","../../src/filter-list/utils/filterStateToWhereClause.ts","../../src/filter-list/hooks/useFilterListState.ts","../../src/filter-list/hooks/useFilterVisibility.ts","../../src/filter-list/utils/getFilterLabel.ts","../../src/filter-list/FilterList.tsx","../../src/filter-list/utils/filterStateSerialization.ts","../../src/public/experimental/filter-list.ts"],"names":["React","Cross","Search","More","ChevronDown","DoubleChevronLeft","DoubleChevronRight","Reset","Tick","Disable","Component","Button","useState","useCallback","classnames","Input","useSortable","useMemo","CSS","memo","getFilterKey","getFilterLabel","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","useSensors","arrayMove","DndContext","closestCenter","SortableContext","verticalListSortingStrategy","DragOverlay","SearchableMenu","useRef","debounce","useEffect","_extends","BaseUISwitch","useId","formatDateForInput","parseDateFromInput","SkeletonBar","Checkbox","formatDateForDisplay","Combobox","TagItem","useOsdkAggregation","assertUnreachable","Menu","value","includeNull","selectedDates","selectedValues","selectedDate","startDate","endDate","enabled","HasLinkInput","hasLink","KeywordSearchInput","key","useOsdkMetadata","FilterList","withOsdkMetrics"],"mappings":"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","file":"chunk-L5LPFCXT.cjs","sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ChevronDown, Cross, Disable, DoubleChevronLeft, DoubleChevronRight, More, Reset, Search, Tick } from \"@blueprintjs/icons\";\nimport React from \"react\";\nexport function RemoveIcon() {\n return /*#__PURE__*/React.createElement(Cross, {\n size: 14\n });\n}\nexport function SearchIcon() {\n return /*#__PURE__*/React.createElement(Search, {\n size: 14\n });\n}\nexport function OverflowMenuIcon() {\n return /*#__PURE__*/React.createElement(More, {\n size: 14\n });\n}\nexport function ChevronDownIcon() {\n return /*#__PURE__*/React.createElement(ChevronDown, {\n size: 10\n });\n}\nexport function CollapseIcon() {\n return /*#__PURE__*/React.createElement(DoubleChevronLeft, {\n size: 14\n });\n}\nexport function ExpandIcon() {\n return /*#__PURE__*/React.createElement(DoubleChevronRight, {\n size: 14\n });\n}\nexport function ResetIcon() {\n return /*#__PURE__*/React.createElement(Reset, {\n size: 12\n });\n}\nexport function CheckIcon() {\n return /*#__PURE__*/React.createElement(Tick, {\n size: 12\n });\n}\nexport function ExcludeIcon() {\n return /*#__PURE__*/React.createElement(Disable, {\n color: \"currentColor\",\n size: 12\n });\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.filterList {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.filterListCollapsed {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: var(--osdk-filter-list-collapsed-width);\n height: 100%;\n background: var(--osdk-filter-list-bg);\n border: var(--osdk-filter-list-border);\n border-radius: var(--osdk-filter-list-border-radius);\n padding: var(--osdk-surface-spacing) 0;\n gap: var(--osdk-surface-spacing);\n}\n\n.expandedContent {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n background: var(--osdk-filter-list-bg);\n border: var(--osdk-filter-list-border);\n border-radius: var(--osdk-filter-list-border-radius);\n box-shadow: var(--osdk-filter-list-shadow);\n padding: var(--osdk-filter-list-padding);\n gap: var(--osdk-filter-list-gap);\n}\n\n.scrollableContent {\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n}\n\n.hiddenContent {\n display: none;\n}\n\n.expandButton {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-header-button-padding);\n border: none;\n background: var(--osdk-filter-header-button-bg);\n cursor: pointer;\n border-radius: var(--osdk-filter-header-button-border-radius);\n color: var(--osdk-filter-header-collapse-icon-color);\n transition: background-color var(--osdk-filter-header-button-transition);\n\n &:hover {\n background: var(--osdk-filter-header-button-bg-hover);\n }\n\n &:active {\n background: var(--osdk-filter-header-button-bg-active);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n\n.collapsedLabel {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n font-family: var(--osdk-filter-list-collapsed-label-font-family);\n font-size: var(--osdk-filter-list-collapsed-label-font-size);\n color: var(--osdk-filter-list-collapsed-label-color);\n font-weight: var(--osdk-filter-header-font-weight);\n user-select: none;\n}\n\n.addButtonContainer {\n display: flex;\n justify-content: center;\n padding: var(--osdk-filter-list-addButton-container-padding);\n background: var(--osdk-filter-list-addButton-container-bg);\n border-top: var(--osdk-filter-list-addButton-container-border-top);\n flex-shrink: 0;\n}\n\n.addButtonContainer > * {\n flex: 1;\n}\n\n.addButton {\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: var(--osdk-filter-header-font-family);\n font-size: var(--osdk-filter-header-reset-font-size);\n color: var(--osdk-typography-color-default-rest);\n background: var(--osdk-filter-header-button-bg);\n border: var(--osdk-filter-list-addButton-border);\n cursor: pointer;\n padding: var(--osdk-filter-header-reset-padding);\n min-height: var(--osdk-filter-list-addButton-height);\n border-radius: var(--osdk-filter-header-button-border-radius);\n transition: background-color var(--osdk-filter-header-button-transition);\n\n &:hover {\n background: var(--osdk-filter-header-button-bg-hover);\n }\n\n &:active {\n background: var(--osdk-filter-header-button-bg-active);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.content {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-list-content-gap);\n}\n\n.emptyMessage {\n margin: 0;\n color: var(--osdk-filter-list-empty-text-color);\n font-size: var(--osdk-filter-list-empty-font-size);\n}\n\n.dragOverlay {\n box-shadow: var(--osdk-filter-item-drag-overlay-shadow);\n border-radius: var(--osdk-filter-item-drag-overlay-border-radius);\n background: var(--osdk-filter-item-drag-overlay-bg);\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.errorContainer {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--osdk-error-boundary-gap, 8px);\n padding: var(--osdk-error-boundary-padding, 8px);\n border-radius: var(--osdk-error-boundary-border-radius, 4px);\n background-color: var(--osdk-error-boundary-bg, color-mix(in srgb, var(--osdk-intent-danger-rest, #c23030) 5%, transparent));\n}\n\n.errorMessage {\n margin: 0;\n font-size: var(--osdk-error-boundary-font-size, 13px);\n color: var(--osdk-error-boundary-text-color, var(--osdk-intent-danger-rest, #c23030));\n}\n\n.retryButton {\n padding: var(--osdk-error-boundary-button-padding, 4px 8px);\n border: var(--osdk-surface-border-width, 1px) solid var(--osdk-error-boundary-button-border-color, currentColor);\n border-radius: var(--osdk-error-boundary-button-border-radius, 3px);\n background: transparent;\n font-size: var(--osdk-error-boundary-button-font-size, 12px);\n color: var(--osdk-error-boundary-button-color, inherit);\n cursor: pointer;\n transition: background-color var(--osdk-filter-input-transition, 150ms ease);\n\n &:hover {\n background-color: var(--osdk-error-boundary-button-hover-bg, color-mix(in srgb, currentColor 5%, transparent));\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width, 2px) solid var(--osdk-filter-input-focus-outline-color, rgba(45, 114, 210, 0.6));\n outline-offset: var(--osdk-filter-input-focus-outline-offset, 2px);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport React, { Component } from \"react\";\nimport styles from \"./ErrorBoundary.module.css\";\nexport class ErrorBoundary extends Component {\n state = {\n hasError: false,\n error: null\n };\n static getDerivedStateFromError(error) {\n return {\n hasError: true,\n error\n };\n }\n componentDidCatch(error, errorInfo) {\n // eslint-disable-next-line no-console\n console.error(\"[ErrorBoundary]\", error);\n // eslint-disable-next-line no-console\n console.error(\"[ErrorBoundary] Component stack:\", errorInfo.componentStack);\n this.props.onError?.(error);\n }\n handleRetry = () => {\n this.setState({\n hasError: false,\n error: null\n });\n };\n render() {\n if (this.state.hasError) {\n if (this.props.fallback) {\n return this.props.fallback;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.errorContainer\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: styles.errorMessage\n }, this.props.errorMessage ?? \"Something went wrong\"), /*#__PURE__*/React.createElement(Button, {\n className: styles.retryButton,\n onClick: this.handleRetry,\n \"aria-label\": \"Retry\"\n }, \"Retry\"));\n }\n return this.props.children;\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** Returns true for filter state types that support in-filter search. */\nexport function supportsSearch(state) {\n if (!state) {\n return false;\n }\n switch (state.type) {\n case \"SELECT\":\n case \"EXACT_MATCH\":\n return true;\n case \"CONTAINS_TEXT\":\n case \"NUMBER_RANGE\":\n case \"DATE_RANGE\":\n case \"TOGGLE\":\n case \"hasLink\":\n case \"linkedProperty\":\n case \"keywordSearch\":\n case \"TIMELINE\":\n case \"custom\":\n return false;\n default:\n {\n const _exhaustive = state;\n return false;\n }\n }\n}\n\n/** Returns true for filter state types that support isExcluding. */\nexport function supportsExcluding(state) {\n if (!state) {\n return false;\n }\n switch (state.type) {\n case \"SELECT\":\n case \"EXACT_MATCH\":\n case \"CONTAINS_TEXT\":\n case \"TIMELINE\":\n return true;\n case \"NUMBER_RANGE\":\n case \"DATE_RANGE\":\n case \"TOGGLE\":\n case \"hasLink\":\n case \"linkedProperty\":\n case \"keywordSearch\":\n case \"custom\":\n return false;\n default:\n {\n const _exhaustive = state;\n return false;\n }\n }\n}\n\n/** Case-insensitive substring filter for search functionality. */\nexport function filterValuesBySearch(values, searchValue, getValue) {\n const trimmed = searchValue.trim();\n if (!trimmed) return values;\n const lowerSearch = trimmed.toLowerCase();\n return values.filter(v => getValue(v).toLowerCase().includes(lowerSearch));\n}\n\n/** Check if a filter state has an active (non-empty) value. */\nexport function filterHasActiveState(state) {\n if (!state) return false;\n switch (state.type) {\n case \"SELECT\":\n return state.selectedValues.length > 0;\n case \"EXACT_MATCH\":\n return state.values.length > 0;\n case \"CONTAINS_TEXT\":\n return state.value !== undefined && state.value !== \"\";\n case \"NUMBER_RANGE\":\n return state.minValue !== undefined || state.maxValue !== undefined || state.includeNull === true;\n case \"DATE_RANGE\":\n return state.minValue !== undefined || state.maxValue !== undefined || state.includeNull === true;\n case \"TOGGLE\":\n return state.enabled;\n case \"hasLink\":\n return state.hasLink;\n case \"linkedProperty\":\n return filterHasActiveState(state.linkedFilterState);\n case \"keywordSearch\":\n return state.searchTerm !== undefined && state.searchTerm !== \"\";\n case \"TIMELINE\":\n return state.startDate !== undefined || state.endDate !== undefined;\n case \"custom\":\n return true;\n default:\n {\n const _exhaustive = state;\n return false;\n }\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nexport function DragHandleIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"5.5\",\n cy: \"3.5\",\n r: \"1.5\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"10.5\",\n cy: \"3.5\",\n r: \"1.5\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"5.5\",\n cy: \"8\",\n r: \"1.5\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"10.5\",\n cy: \"8\",\n r: \"1.5\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"5.5\",\n cy: \"12.5\",\n r: \"1.5\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"10.5\",\n cy: \"12.5\",\n r: \"1.5\"\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.filterItem {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-item-gap);\n border-radius: var(--osdk-filter-item-border-radius);\n padding: var(--osdk-filter-item-padding);\n}\n\n.itemHeader {\n display: flex;\n align-items: center;\n}\n\n.itemLabel {\n flex: 1;\n font-family: var(--osdk-filter-item-label-font-family);\n font-size: var(--osdk-filter-item-label-font-size);\n font-weight: var(--osdk-filter-item-label-font-weight);\n color: var(--osdk-filter-item-label-color);\n}\n\n.itemContent {\n display: flex;\n flex-direction: column;\n min-width: 0;\n overflow: hidden;\n}\n\n.dragHandle {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-item-drag-handle-padding);\n margin-right: var(--osdk-surface-spacing);\n border: none;\n background: var(--osdk-filter-item-drag-handle-bg);\n cursor: var(--osdk-drag-handle-cursor);\n border-radius: var(--osdk-filter-item-drag-handle-border-radius);\n color: var(--osdk-filter-item-drag-handle-color);\n touch-action: none;\n\n &:hover {\n color: var(--osdk-filter-item-drag-handle-color-hover);\n background: var(--osdk-filter-item-drag-handle-bg-hover);\n }\n\n &:active {\n cursor: var(--osdk-drag-handle-cursor-active);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-item-drag-handle-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n}\n\n.headerActionButton {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-item-header-action-padding);\n margin-left: calc(var(--osdk-surface-spacing) * 0.5);\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: var(--osdk-filter-item-header-action-border-radius);\n color: var(--osdk-filter-item-header-action-color);\n opacity: 0;\n transition: opacity var(--osdk-filter-header-button-transition),\n background-color var(--osdk-filter-header-button-transition);\n\n &:hover {\n color: var(--osdk-typography-color-default-rest);\n background: var(--osdk-filter-item-header-action-bg-hover);\n }\n\n &:focus-visible {\n opacity: 1;\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n\n.filterItem:hover .headerActionButton {\n opacity: 1;\n}\n\n.headerActionButton[data-popup-open],\n.headerActionButton[aria-pressed=\"true\"] {\n opacity: 1;\n}\n\n.searchRow {\n display: flex;\n align-items: center;\n background: var(--osdk-filter-input-bg);\n border: var(--osdk-filter-input-border);\n border-radius: var(--osdk-filter-input-border-radius);\n padding: var(--osdk-filter-input-padding);\n gap: var(--osdk-filter-input-gap);\n}\n\n.searchInput {\n flex: 1;\n border: none;\n background: transparent;\n font-family: var(--osdk-filter-input-font-family);\n font-size: var(--osdk-filter-input-font-size);\n color: var(--osdk-filter-input-color);\n outline: none;\n\n &::placeholder {\n color: var(--osdk-filter-input-placeholder-color);\n }\n}\n\n.searchClearButton {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-input-clear-padding);\n border: none;\n background: var(--osdk-filter-input-clear-bg);\n color: var(--osdk-filter-input-icon-color);\n cursor: pointer;\n border-radius: var(--osdk-filter-input-clear-border-radius);\n transition: background-color var(--osdk-filter-input-transition);\n\n &:hover {\n background: var(--osdk-filter-input-clear-bg-hover);\n }\n\n &:active {\n background: var(--osdk-filter-input-clear-bg-active);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n\n.excludeRow {\n display: flex;\n align-items: center;\n opacity: 0;\n height: 0;\n overflow: hidden;\n transition: opacity var(--osdk-filter-header-button-transition),\n height var(--osdk-filter-header-button-transition);\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n\n.excludeRowVisible {\n opacity: 1;\n height: auto;\n overflow: visible;\n}\n\n.excludeCountLabel {\n font-family: var(--osdk-filter-item-exclude-dropdown-font-family);\n font-size: var(--osdk-filter-item-exclude-dropdown-font-size);\n color: var(--osdk-filter-item-exclude-dropdown-color);\n margin-left: calc(var(--osdk-surface-spacing) * 0.5);\n}\n\n.clearAllButton {\n margin-left: auto;\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--osdk-filter-item-exclude-dropdown-font-family);\n font-size: var(--osdk-filter-item-exclude-dropdown-font-size);\n color: var(--osdk-filter-item-exclude-dropdown-color);\n padding: 0;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.dragging {\n opacity: var(--osdk-filter-item-dragging-opacity);\n}\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Input } from \"@base-ui/react/input\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useState } from \"react\";\nimport { ErrorBoundary } from \"../../shared/ErrorBoundary.js\";\nimport { supportsExcluding, supportsSearch } from \"../utils/filterValues.js\";\nimport { DragHandleIcon } from \"./DragHandleIcon.js\";\nimport { OverflowMenuIcon, RemoveIcon, SearchIcon } from \"./FilterIcons.js\";\nimport styles from \"./FilterListItem.module.css\";\nfunction hasActiveSelection(filterState) {\n if (filterState == null) {\n return false;\n }\n switch (filterState.type) {\n case \"EXACT_MATCH\":\n return filterState.values.length > 0;\n case \"SELECT\":\n return filterState.selectedValues.length > 0;\n case \"CONTAINS_TEXT\":\n return filterState.value != null && filterState.value.length > 0;\n case \"NUMBER_RANGE\":\n return filterState.minValue != null || filterState.maxValue != null;\n case \"DATE_RANGE\":\n return filterState.minValue != null || filterState.maxValue != null;\n case \"TIMELINE\":\n return filterState.startDate != null || filterState.endDate != null;\n case \"TOGGLE\":\n return filterState.enabled;\n case \"keywordSearch\":\n return filterState.searchTerm.length > 0;\n case \"hasLink\":\n return filterState.hasLink;\n case \"linkedProperty\":\n return hasActiveSelection(filterState.linkedFilterState);\n case \"custom\":\n return true;\n default:\n return false;\n }\n}\nfunction FilterListItemInner({\n definition,\n filterKey,\n label,\n filterState,\n onFilterStateChanged,\n onFilterRemoved,\n renderInput,\n dragHandleAttributes,\n dragHandleListeners,\n className,\n style\n}) {\n const [searchState, setSearchState] = useState({\n type: \"closed\"\n });\n const [excludeRowOpen, setExcludeRowOpen] = useState(false);\n const handleFilterStateChanged = useCallback(newState => {\n onFilterStateChanged(filterKey, newState);\n }, [filterKey, onFilterStateChanged]);\n const handleToggleSearch = useCallback(() => {\n setSearchState(prev => prev.type === \"closed\" ? {\n type: \"open\",\n query: \"\"\n } : {\n type: \"closed\"\n });\n }, []);\n const handleSearchChange = useCallback(e => {\n setSearchState({\n type: \"open\",\n query: e.target.value\n });\n }, []);\n const handleSearchClear = useCallback(() => {\n setSearchState({\n type: \"open\",\n query: \"\"\n });\n }, []);\n const handleRemove = useCallback(() => {\n onFilterRemoved?.(filterKey);\n }, [filterKey, onFilterRemoved]);\n const handleToggleExcludeRow = useCallback(() => {\n setExcludeRowOpen(prev => !prev);\n }, []);\n const searchInputRef = useCallback(element => {\n element?.focus({\n preventScroll: true\n });\n }, []);\n const showExcludeDropdown = supportsExcluding(filterState);\n const showSearch = supportsSearch(filterState);\n const hasOverflowActions = showExcludeDropdown;\n const searchOpen = searchState.type === \"open\";\n const searchQuery = searchState.type === \"open\" ? searchState.query : \"\";\n const searchQueryForInput = searchState.type === \"open\" ? searchState.query : undefined;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.filterItem, className),\n style: style,\n \"data-has-selection\": hasActiveSelection(filterState) || undefined\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.itemHeader\n }, dragHandleAttributes && /*#__PURE__*/React.createElement(Button, _extends({\n className: styles.dragHandle,\n \"aria-label\": `Reorder ${label}`\n }, dragHandleAttributes, dragHandleListeners), /*#__PURE__*/React.createElement(DragHandleIcon, null)), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.itemLabel\n }, label), showSearch && /*#__PURE__*/React.createElement(Button, {\n className: styles.headerActionButton,\n onClick: handleToggleSearch,\n \"aria-label\": \"Search values\",\n \"aria-pressed\": searchOpen\n }, /*#__PURE__*/React.createElement(SearchIcon, null)), onFilterRemoved && /*#__PURE__*/React.createElement(Button, {\n className: styles.headerActionButton,\n onClick: handleRemove,\n \"aria-label\": `Remove ${label} filter`\n }, /*#__PURE__*/React.createElement(RemoveIcon, null)), hasOverflowActions && /*#__PURE__*/React.createElement(Button, {\n className: styles.headerActionButton,\n onClick: handleToggleExcludeRow,\n \"aria-label\": \"More actions\",\n \"aria-pressed\": excludeRowOpen\n }, /*#__PURE__*/React.createElement(OverflowMenuIcon, null))), searchOpen && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.searchRow\n }, /*#__PURE__*/React.createElement(Input, {\n type: \"text\",\n className: styles.searchInput,\n value: searchQuery,\n onChange: handleSearchChange,\n placeholder: \"Search property values...\",\n \"aria-label\": \"Search property values\",\n ref: searchInputRef\n }), searchQuery && /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n className: styles.searchClearButton,\n onClick: handleSearchClear,\n \"aria-label\": \"Clear search\"\n }, /*#__PURE__*/React.createElement(RemoveIcon, null))), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.itemContent\n }, /*#__PURE__*/React.createElement(ErrorBoundary, {\n errorMessage: \"Error loading filter\"\n }, renderInput({\n definition,\n filterKey,\n filterState,\n onFilterStateChanged: handleFilterStateChanged,\n searchQuery: searchQueryForInput,\n excludeRowOpen\n }))));\n}\nexport const FilterListItem = /*#__PURE__*/memo(FilterListItemInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useSortable } from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport classnames from \"classnames\";\nimport React, { memo, useMemo } from \"react\";\nimport { FilterListItem } from \"./FilterListItem.js\";\nimport styles from \"./FilterListItem.module.css\";\nfunction SortableFilterListItemInner({\n id,\n definition,\n filterKey,\n label,\n filterState,\n onFilterStateChanged,\n onFilterRemoved,\n renderInput\n}) {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging\n } = useSortable({\n id\n });\n const style = useMemo(() => ({\n transform: CSS.Transform.toString(transform),\n transition: transition ?? undefined\n }), [transform, transition]);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: setNodeRef,\n style: style,\n className: classnames(isDragging && styles.dragging)\n }, /*#__PURE__*/React.createElement(FilterListItem, {\n definition: definition,\n filterKey: filterKey,\n label: label,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n onFilterRemoved: onFilterRemoved,\n renderInput: renderInput,\n dragHandleAttributes: attributes,\n dragHandleListeners: listeners\n }));\n}\nexport const SortableFilterListItem = /*#__PURE__*/memo(SortableFilterListItemInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { closestCenter, DndContext, DragOverlay, KeyboardSensor, PointerSensor, useSensor, useSensors } from \"@dnd-kit/core\";\nimport { arrayMove, SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy } from \"@dnd-kit/sortable\";\nimport classnames from \"classnames\";\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport styles from \"./FilterListContent.module.css\";\nimport { FilterListItem } from \"./FilterListItem.js\";\nimport { SortableFilterListItem } from \"./SortableFilterListItem.js\";\nconst restrictToVerticalAxis = ({\n transform\n}) => ({\n ...transform,\n x: 0\n});\nconst POINTER_ACTIVATION_CONSTRAINT = {\n distance: 8\n};\nconst MODIFIERS = [restrictToVerticalAxis];\nconst DRAG_OVERLAY_HANDLE_ATTRIBUTES = {\n role: \"button\",\n tabIndex: -1,\n \"aria-disabled\": true,\n \"aria-pressed\": undefined,\n \"aria-roledescription\": \"sortable\",\n \"aria-describedby\": \"\"\n};\nexport function FilterListContent({\n filterDefinitions,\n filterStates,\n onFilterStateChanged,\n onFilterRemoved,\n onOrderChange,\n renderInput,\n getFilterKey,\n getFilterLabel,\n enableSorting,\n className,\n style\n}) {\n const [activeId, setActiveId] = useState(null);\n const sortableIds = useMemo(() => enableSorting && filterDefinitions ? filterDefinitions.map(def => getFilterKey(def)) : [], [enableSorting, filterDefinitions, getFilterKey]);\n const pointerSensor = useSensor(PointerSensor, {\n activationConstraint: POINTER_ACTIVATION_CONSTRAINT\n });\n const keyboardSensor = useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates\n });\n const sensors = useSensors(pointerSensor, keyboardSensor);\n const activeIndex = activeId != null ? sortableIds.indexOf(String(activeId)) : -1;\n const activeDefinition = activeIndex >= 0 && filterDefinitions ? filterDefinitions[activeIndex] : undefined;\n const activeFilterKey = useMemo(() => activeDefinition ? getFilterKey(activeDefinition) : undefined, [activeDefinition, getFilterKey]);\n const handleDragStart = useCallback(event => {\n setActiveId(event.active.id);\n }, []);\n const handleDragEnd = useCallback(event => {\n setActiveId(null);\n const {\n active,\n over\n } = event;\n if (!over || active.id === over.id) {\n return;\n }\n const oldIndex = sortableIds.indexOf(String(active.id));\n const newIndex = sortableIds.indexOf(String(over.id));\n if (oldIndex !== -1 && newIndex !== -1) {\n const next = arrayMove(sortableIds, oldIndex, newIndex);\n onOrderChange?.(next);\n }\n }, [sortableIds, onOrderChange]);\n const handleDragCancel = useCallback(() => {\n setActiveId(null);\n }, []);\n const announcements = useMemo(() => ({\n onDragStart({\n active\n }) {\n const idx = sortableIds.indexOf(String(active.id));\n const def = idx >= 0 && filterDefinitions ? filterDefinitions[idx] : undefined;\n const label = def ? getFilterLabel(def) : \"filter\";\n return `Picked up ${label} filter`;\n },\n onDragOver({\n over\n }) {\n if (!over) {\n return \"Not over a droppable area\";\n }\n const overIdx = sortableIds.indexOf(String(over.id));\n return `Moved to position ${overIdx + 1} of ${sortableIds.length}`;\n },\n onDragEnd({\n active,\n over\n }) {\n const idx = sortableIds.indexOf(String(active.id));\n const def = idx >= 0 && filterDefinitions ? filterDefinitions[idx] : undefined;\n const label = def ? getFilterLabel(def) : \"filter\";\n if (over && active.id !== over.id) {\n const overIdx = sortableIds.indexOf(String(over.id));\n return `Dropped ${label} filter at position ${overIdx + 1}`;\n }\n return `Dropped ${label} filter back in its original position`;\n },\n onDragCancel({\n active\n }) {\n const idx = sortableIds.indexOf(String(active.id));\n const def = idx >= 0 && filterDefinitions ? filterDefinitions[idx] : undefined;\n const label = def ? getFilterLabel(def) : \"filter\";\n return `Cancelled dragging ${label} filter`;\n }\n }), [filterDefinitions, sortableIds, getFilterLabel]);\n const accessibility = useMemo(() => ({\n announcements\n }), [announcements]);\n if (!filterDefinitions || filterDefinitions.length === 0) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.content, className),\n style: style,\n \"data-empty\": \"true\"\n });\n }\n if (enableSorting) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.content, className),\n style: style\n }, /*#__PURE__*/React.createElement(DndContext, {\n sensors: sensors,\n collisionDetection: closestCenter,\n modifiers: MODIFIERS,\n onDragStart: handleDragStart,\n onDragEnd: handleDragEnd,\n onDragCancel: handleDragCancel,\n accessibility: accessibility\n }, /*#__PURE__*/React.createElement(SortableContext, {\n items: sortableIds,\n strategy: verticalListSortingStrategy\n }, filterDefinitions.map((definition, index) => {\n const id = sortableIds[index];\n const filterKey = getFilterKey(definition);\n const label = getFilterLabel(definition);\n const state = filterStates.get(filterKey);\n return /*#__PURE__*/React.createElement(SortableFilterListItem, {\n key: id,\n id: id,\n definition: definition,\n filterKey: filterKey,\n label: label,\n filterState: state,\n onFilterStateChanged: onFilterStateChanged,\n onFilterRemoved: onFilterRemoved,\n renderInput: renderInput\n });\n })), /*#__PURE__*/React.createElement(DragOverlay, {\n dropAnimation: null,\n className: styles.dragOverlay\n }, activeDefinition && activeFilterKey && /*#__PURE__*/React.createElement(FilterListItem, {\n definition: activeDefinition,\n filterKey: activeFilterKey,\n label: getFilterLabel(activeDefinition),\n filterState: filterStates.get(activeFilterKey),\n onFilterStateChanged: onFilterStateChanged,\n onFilterRemoved: onFilterRemoved,\n renderInput: renderInput,\n dragHandleAttributes: DRAG_OVERLAY_HANDLE_ATTRIBUTES\n }))));\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.content, className),\n style: style\n }, filterDefinitions.map(definition => {\n const filterKey = getFilterKey(definition);\n const state = filterStates.get(filterKey);\n return /*#__PURE__*/React.createElement(FilterListItem, {\n key: filterKey,\n definition: definition,\n filterKey: filterKey,\n label: getFilterLabel(definition),\n filterState: state,\n onFilterStateChanged: onFilterStateChanged,\n onFilterRemoved: onFilterRemoved,\n renderInput: renderInput\n });\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--osdk-filter-header-padding);\n gap: var(--osdk-filter-header-gap);\n border-bottom: var(--osdk-filter-header-border-bottom);\n flex-shrink: 0;\n}\n\n.titleContainer {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-header-titleContainer-gap);\n flex: 1;\n min-width: 0;\n}\n\n.title {\n font-family: var(--osdk-filter-header-font-family);\n font-size: var(--osdk-filter-header-font-size);\n font-weight: var(--osdk-filter-header-font-weight);\n color: var(--osdk-filter-header-color);\n margin: 0;\n}\n\n.titleIcon {\n color: var(--osdk-filter-header-icon-color);\n display: flex;\n align-items: center;\n}\n\n.activeCount {\n font-family: var(--osdk-filter-header-font-family);\n font-size: var(--osdk-filter-header-activeCount-font-size);\n color: var(--osdk-filter-header-activeCount-color);\n font-variant-numeric: tabular-nums;\n}\n\n.actions {\n display: flex;\n align-items: center;\n gap: var(--osdk-surface-spacing);\n\n &:empty {\n display: none;\n }\n}\n\n.collapseButton {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-header-button-padding);\n border: none;\n background: var(--osdk-filter-header-button-bg);\n cursor: pointer;\n border-radius: var(--osdk-filter-header-button-border-radius);\n transition: background-color var(--osdk-filter-header-button-transition);\n color: var(--osdk-filter-header-collapse-icon-color);\n\n &:hover {\n background: var(--osdk-filter-header-button-bg-hover);\n }\n\n &:active {\n background: var(--osdk-filter-header-button-bg-active);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n\n.resetButton {\n display: flex;\n align-items: center;\n gap: calc(var(--osdk-surface-spacing) * 0.5);\n font-family: var(--osdk-filter-header-font-family);\n font-size: var(--osdk-filter-header-reset-font-size);\n color: var(--osdk-filter-header-reset-color);\n background: var(--osdk-filter-header-button-bg);\n border: var(--osdk-filter-header-reset-border);\n cursor: pointer;\n padding: var(--osdk-filter-header-reset-padding);\n border-radius: var(--osdk-filter-header-reset-border-radius);\n transition: background-color var(--osdk-filter-header-button-transition);\n\n &:hover:not(:disabled) {\n background: var(--osdk-filter-header-button-bg-hover);\n }\n\n &:disabled {\n color: var(--osdk-filter-header-reset-color-disabled);\n border: var(--osdk-filter-header-reset-border-disabled);\n cursor: not-allowed;\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport React, { memo, useCallback } from \"react\";\nimport { CollapseIcon, ResetIcon } from \"./FilterIcons.js\";\nimport styles from \"./FilterListHeader.module.css\";\nfunction FilterListHeaderInner({\n title,\n titleIcon,\n collapsed = false,\n onCollapsedChange,\n showResetButton,\n onReset,\n showActiveFilterCount,\n activeFilterCount = 0,\n hasVisibilityChanges = false\n}) {\n const showCollapseButton = onCollapsedChange != null;\n const handleCollapseClick = useCallback(() => {\n onCollapsedChange?.(!collapsed);\n }, [onCollapsedChange, collapsed]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.header\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.titleContainer\n }, titleIcon && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.titleIcon\n }, titleIcon), title && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.title\n }, title), showActiveFilterCount && activeFilterCount > 0 && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.activeCount\n }, \"(\", activeFilterCount, \")\")), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.actions\n }, showResetButton && /*#__PURE__*/React.createElement(Button, {\n className: styles.resetButton,\n onClick: onReset,\n disabled: activeFilterCount === 0 && !hasVisibilityChanges\n }, /*#__PURE__*/React.createElement(ResetIcon, null), \" Reset filters\"), showCollapseButton && /*#__PURE__*/React.createElement(Button, {\n className: styles.collapseButton,\n onClick: handleCollapseClick,\n \"aria-expanded\": !collapsed,\n \"aria-label\": collapsed ? \"Expand filters\" : \"Collapse filters\"\n }, /*#__PURE__*/React.createElement(CollapseIcon, null))));\n}\nexport const FilterListHeader = /*#__PURE__*/memo(FilterListHeaderInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport classnames from \"classnames\";\nimport React, { useCallback } from \"react\";\nimport { ExpandIcon } from \"./FilterIcons.js\";\nimport styles from \"./FilterList.module.css\";\nimport { FilterListContent } from \"./FilterListContent.js\";\nimport { FilterListHeader } from \"./FilterListHeader.js\";\nexport function BaseFilterList(props) {\n const {\n title,\n titleIcon,\n collapsed = false,\n onCollapsedChange,\n filterDefinitions,\n filterStates,\n onFilterStateChanged,\n renderInput,\n getFilterKey,\n getFilterLabel,\n activeFilterCount,\n onReset,\n onFilterAdded,\n onFilterRemoved,\n onOrderChange,\n showResetButton = false,\n showActiveFilterCount = false,\n hasVisibilityChanges,\n enableSorting,\n className,\n renderAddFilterButton\n } = props;\n const showHeader = title || titleIcon || showResetButton || showActiveFilterCount || onCollapsedChange;\n const showAddButton = renderAddFilterButton != null || onFilterAdded != null;\n const handleExpand = useCallback(() => {\n onCollapsedChange?.(false);\n }, [onCollapsedChange]);\n const isCollapsed = collapsed && onCollapsedChange != null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.filterList, className)\n }, isCollapsed && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.filterListCollapsed,\n \"data-collapsed\": \"true\"\n }, /*#__PURE__*/React.createElement(Button, {\n className: styles.expandButton,\n onClick: handleExpand,\n \"aria-label\": \"Expand filters\"\n }, /*#__PURE__*/React.createElement(ExpandIcon, null)), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.collapsedLabel\n }, title ?? \"Filters\")), /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.expandedContent, isCollapsed && styles.hiddenContent),\n \"data-active-count\": activeFilterCount\n }, showHeader && /*#__PURE__*/React.createElement(FilterListHeader, {\n title: title,\n titleIcon: titleIcon,\n collapsed: collapsed,\n onCollapsedChange: onCollapsedChange,\n showResetButton: showResetButton,\n onReset: onReset,\n showActiveFilterCount: showActiveFilterCount,\n activeFilterCount: activeFilterCount,\n hasVisibilityChanges: hasVisibilityChanges\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.scrollableContent\n }, /*#__PURE__*/React.createElement(FilterListContent, {\n filterDefinitions: filterDefinitions,\n filterStates: filterStates,\n onFilterStateChanged: onFilterStateChanged,\n onFilterRemoved: onFilterRemoved,\n onOrderChange: onOrderChange,\n renderInput: renderInput,\n getFilterKey: getFilterKey,\n getFilterLabel: getFilterLabel,\n enableSorting: enableSorting\n })), showAddButton && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.addButtonContainer\n }, renderAddFilterButton ? renderAddFilterButton() : /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n className: styles.addButton,\n onClick: onFilterAdded\n }, \"+ Add filter\"))));\n}","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: var(--osdk-filter-header-font-family);\n font-size: var(--osdk-filter-header-reset-font-size);\n color: var(--osdk-typography-color-default-rest);\n background: var(--osdk-filter-header-button-bg);\n border: var(--osdk-filter-list-addButton-border);\n cursor: pointer;\n padding: var(--osdk-filter-header-reset-padding);\n min-height: var(--osdk-filter-list-addButton-height);\n border-radius: var(--osdk-filter-header-button-border-radius);\n transition: background-color var(--osdk-filter-header-button-transition);\n width: 100%;\n\n &:hover {\n background: var(--osdk-filter-header-button-bg-hover);\n }\n\n &:active {\n background: var(--osdk-filter-header-button-bg-active);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo } from \"react\";\nimport { SearchableMenu } from \"../../base-components/searchable-menu/SearchableMenu.js\";\nimport styles from \"./AddFilterPopover.module.css\";\nfunction AddFilterPopoverInner({\n hiddenDefinitions,\n onShowFilter,\n renderTrigger\n}) {\n return /*#__PURE__*/React.createElement(SearchableMenu, {\n items: hiddenDefinitions,\n onItemSelected: onShowFilter,\n trigger: renderTrigger != null ? renderTrigger() : \"+ Add filter\",\n triggerClassName: renderTrigger == null ? styles.trigger : undefined,\n searchPlaceholder: \"Search filters\",\n emptyMessage: \"No matching filters\"\n });\n}\nexport const AddFilterPopover = /*#__PURE__*/memo(AddFilterPopoverInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.textInput {\n position: relative;\n}\n\n.inputGroup {\n display: flex;\n align-items: center;\n background: var(--osdk-filter-input-bg);\n border: var(--osdk-filter-input-border);\n border-radius: var(--osdk-filter-input-border-radius);\n padding: var(--osdk-filter-input-padding);\n gap: var(--osdk-filter-input-gap);\n transition: border-color var(--osdk-filter-input-transition);\n\n &:focus-within {\n border-color: var(--osdk-filter-input-focus-border);\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n\n.searchIcon {\n color: var(--osdk-filter-input-icon-color);\n flex-shrink: 0;\n display: flex;\n align-items: center;\n}\n\n.input {\n flex: 1;\n border: none;\n background: transparent;\n font-family: var(--osdk-filter-input-font-family);\n font-size: var(--osdk-filter-input-font-size);\n color: var(--osdk-filter-input-color);\n outline: none;\n\n &::placeholder {\n color: var(--osdk-filter-input-placeholder-color);\n }\n}\n\n.clearButton {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-input-clear-padding);\n border: none;\n background: var(--osdk-filter-input-clear-bg);\n color: var(--osdk-filter-input-icon-color);\n cursor: pointer;\n border-radius: var(--osdk-filter-input-clear-border-radius);\n transition: background-color var(--osdk-filter-input-transition);\n\n &:hover {\n background: var(--osdk-filter-input-clear-bg-hover);\n }\n\n &:active {\n background: var(--osdk-filter-input-clear-bg-active);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Input } from \"@base-ui/react/input\";\nimport { Cross, Search } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport { debounce } from \"lodash-es\";\nimport React, { memo, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport styles from \"./ContainsTextInput.module.css\";\nfunction ContainsTextInputInner({\n value,\n onChange,\n placeholder = \"Search...\",\n debounceMs = 300,\n className,\n style,\n renderSearchIcon,\n renderClearIcon\n}) {\n const [localValue, setLocalValue] = useState(value ?? \"\");\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n const debouncedOnChange = useMemo(() => debounce(newValue => {\n onChangeRef.current(newValue.length > 0 ? newValue : undefined);\n }, debounceMs), [debounceMs]);\n useEffect(() => {\n return () => {\n debouncedOnChange.cancel();\n };\n }, [debouncedOnChange]);\n useEffect(() => {\n setLocalValue(value ?? \"\");\n debouncedOnChange.cancel();\n }, [value, debouncedOnChange]);\n const handleInputChange = useCallback(e => {\n setLocalValue(e.target.value);\n debouncedOnChange(e.target.value);\n }, [debouncedOnChange]);\n const handleClear = useCallback(() => {\n setLocalValue(\"\");\n debouncedOnChange.cancel();\n onChangeRef.current(undefined);\n }, [debouncedOnChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.textInput, className),\n style: style,\n \"data-has-value\": !!localValue\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.inputGroup\n }, renderSearchIcon ? renderSearchIcon() : /*#__PURE__*/React.createElement(\"span\", {\n className: styles.searchIcon\n }, /*#__PURE__*/React.createElement(Search, null)), /*#__PURE__*/React.createElement(Input, {\n type: \"text\",\n className: styles.input,\n value: localValue,\n onChange: handleInputChange,\n placeholder: placeholder,\n \"aria-label\": placeholder\n }), localValue && /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n className: styles.clearButton,\n onClick: handleClear,\n \"aria-label\": \"Clear search\"\n }, renderClearIcon ? renderClearIcon() : /*#__PURE__*/React.createElement(Cross, null))));\n}\nexport const ContainsTextInput = /*#__PURE__*/memo(ContainsTextInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.osdkSwitchRoot {\n --osdk-switch-track-width: var(--osdk-switch-track-width-override, 28px);\n --osdk-switch-track-height: var(--osdk-switch-track-height-override, 16px);\n --osdk-switch-thumb-size: var(--osdk-switch-thumb-size-override, 12px);\n --osdk-switch-thumb-offset: var(--osdk-switch-thumb-offset-override, 2px);\n\n display: inline-flex;\n align-items: center;\n width: var(--osdk-switch-track-width);\n height: var(--osdk-switch-track-height);\n padding: 0;\n cursor: pointer;\n border-radius: var(--osdk-switch-border-radius, var(--osdk-surface-border-radius));\n position: relative;\n border: none;\n transition: background-color var(--osdk-switch-transition-duration, var(--osdk-emphasis-transition-duration))\n var(--osdk-switch-transition-ease, var(--osdk-emphasis-ease-default));\n\n &[data-unchecked] {\n background-color: var(--osdk-switch-track-bg, var(--osdk-intent-default-rest));\n\n &:hover {\n background-color: var(--osdk-switch-track-bg-hover, var(--osdk-intent-default-hover));\n }\n\n &:active {\n background-color: var(--osdk-switch-track-bg-active, var(--osdk-intent-default-active));\n }\n }\n\n &[data-checked] {\n background-color: var(--osdk-switch-track-bg-checked, var(--osdk-intent-primary-rest));\n\n &:hover {\n background-color: var(--osdk-switch-track-bg-checked-hover, var(--osdk-intent-primary-hover));\n }\n\n &:active {\n background-color: var(--osdk-switch-track-bg-checked-active, var(--osdk-intent-primary-active));\n }\n }\n\n &[data-disabled] {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n &:focus-visible {\n outline: var(--osdk-switch-focus-width, var(--osdk-emphasis-focus-width)) solid\n var(--osdk-switch-focus-color, var(--osdk-emphasis-focus-color));\n outline-offset: var(--osdk-switch-focus-offset, var(--osdk-emphasis-focus-offset));\n }\n}\n\n.osdkSwitchThumb {\n display: block;\n width: var(--osdk-switch-thumb-size);\n height: var(--osdk-switch-thumb-size);\n background-color: var(--osdk-switch-thumb-bg, var(--osdk-palette-white));\n border-radius: 50%;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n transition: left var(--osdk-switch-transition-duration, var(--osdk-emphasis-transition-duration))\n var(--osdk-switch-transition-ease, var(--osdk-emphasis-ease-default));\n\n &[data-unchecked] {\n left: var(--osdk-switch-thumb-offset);\n }\n\n &[data-checked] {\n left: calc(var(--osdk-switch-track-width) - var(--osdk-switch-thumb-size) - var(--osdk-switch-thumb-offset));\n }\n}\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Switch as BaseUISwitch } from \"@base-ui/react/switch\";\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./Switch.module.css\";\nexport function Switch({\n className,\n thumbProps,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUISwitch.Root, _extends({\n className: classnames(styles.osdkSwitchRoot, className)\n }, rest), /*#__PURE__*/React.createElement(BaseUISwitch.Thumb, _extends({}, thumbProps, {\n className: classnames(styles.osdkSwitchThumb, thumbProps?.className)\n })));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.toggleInput {\n display: flex;\n align-items: center;\n}\n\n.toggleLabel {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-toggle-label-gap);\n cursor: pointer;\n}\n\n.labelText {\n font-family: var(--osdk-filter-toggle-label-font-family);\n font-size: var(--osdk-filter-toggle-label-font-size);\n line-height: var(--osdk-filter-toggle-label-line-height);\n color: var(--osdk-filter-toggle-label-color);\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classnames from \"classnames\";\nimport React, { memo } from \"react\";\nimport { Switch } from \"../../../base-components/switch/Switch.js\";\nimport styles from \"./ToggleInput.module.css\";\nfunction ToggleInputInner({\n enabled,\n onChange,\n label,\n className,\n style\n}) {\n const rootClassName = classnames(styles.toggleInput, className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: rootClassName,\n style: style,\n \"data-enabled\": enabled\n }, /*#__PURE__*/React.createElement(\"label\", {\n className: styles.toggleLabel\n }, /*#__PURE__*/React.createElement(Switch, {\n checked: enabled,\n onCheckedChange: onChange\n }), label && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.labelText\n }, label)));\n}\nexport const ToggleInput = /*#__PURE__*/memo(ToggleInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const HISTOGRAM_BUCKETS = 20;\nexport function createHistogramBuckets(pairs, range, toNumber, fromNumber) {\n if (pairs.length === 0) return [];\n const minNum = toNumber(range.min);\n const maxNum = toNumber(range.max);\n const rangeSize = maxNum - minNum;\n\n // Handle single-value case\n if (rangeSize === 0) {\n const totalCount = pairs.reduce((sum, p) => sum + p.count, 0);\n return [{\n min: range.min,\n max: range.max,\n count: totalCount\n }];\n }\n\n // Create buckets\n const bucketSize = rangeSize / HISTOGRAM_BUCKETS;\n const bucketCounts = new Array(HISTOGRAM_BUCKETS).fill(0);\n for (const {\n value,\n count\n } of pairs) {\n const bucketIndex = Math.min(Math.floor((toNumber(value) - minNum) / bucketSize), HISTOGRAM_BUCKETS - 1);\n bucketCounts[bucketIndex] += count;\n }\n return bucketCounts.map((count, i) => ({\n min: fromNumber(minNum + i * bucketSize),\n max: fromNumber(minNum + (i + 1) * bucketSize),\n count\n }));\n}\nexport function getMaxBucketCount(buckets) {\n return Math.max(...buckets.map(b => b.count), 1);\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.rangeInput {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-range-gap);\n min-width: 0;\n transition: opacity var(--osdk-filter-content-fade-duration);\n}\n\n.rangeInput[data-loading=\"true\"] {\n opacity: 0.5;\n}\n\n.histogramContainer {\n display: flex;\n align-items: flex-end;\n height: var(--osdk-filter-range-histogram-height);\n gap: var(--osdk-filter-range-histogram-bar-gap);\n padding-bottom: var(--osdk-filter-range-histogram-padding-bottom);\n padding-inline: var(--osdk-filter-range-histogram-padding-inline);\n overflow: hidden;\n}\n\n.histogramBar {\n flex: 1;\n background: var(--osdk-filter-range-histogram-bar-color);\n min-width: var(--osdk-filter-range-histogram-bar-min-width);\n transition: background-color var(--osdk-filter-range-histogram-bar-transition);\n}\n\n.histogramBar[data-in-range=\"true\"] {\n background: var(--osdk-filter-range-histogram-bar-active-color);\n}\n\n.rangeInputs {\n display: flex;\n align-items: flex-end;\n gap: var(--osdk-filter-range-inputs-gap);\n min-width: 0;\n}\n\n.inputWrapper {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-range-input-wrapper-gap);\n min-width: 0;\n}\n\n.inputLabel {\n font-family: var(--osdk-filter-range-label-font-family);\n font-size: var(--osdk-filter-range-label-font-size);\n color: var(--osdk-filter-range-label-color);\n}\n\n.input {\n font-family: var(--osdk-filter-input-font-family);\n font-size: var(--osdk-filter-input-font-size);\n padding: var(--osdk-filter-input-padding);\n border: var(--osdk-filter-input-border);\n border-radius: var(--osdk-filter-input-border-radius);\n background: var(--osdk-filter-input-bg);\n color: var(--osdk-filter-input-color);\n min-width: 0;\n\n &:focus {\n border-color: var(--osdk-filter-input-focus-border);\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n &::placeholder {\n color: var(--osdk-filter-input-placeholder-color);\n }\n}\n\n.separator {\n display: flex;\n align-items: center;\n height: calc(\n var(--osdk-filter-input-font-size) + var(--osdk-filter-input-padding) * 2\n );\n color: var(--osdk-filter-range-separator-color);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .histogramContainer,\n .rangeInput {\n transition: none;\n }\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* Shared message styles for filter inputs */\n.loadingMessage,\n.errorMessage,\n.emptyMessage {\n font-family: var(--osdk-filter-message-font-family);\n font-size: var(--osdk-filter-message-font-size);\n padding: var(--osdk-filter-message-padding);\n}\n\n.loadingMessage,\n.emptyMessage {\n color: var(--osdk-filter-message-color-muted);\n}\n\n.errorMessage {\n color: var(--osdk-filter-message-color-danger);\n}\n\n/* Shared tag styles */\n.tagContainer {\n display: flex;\n flex-wrap: wrap;\n gap: var(--osdk-filter-tag-container-gap);\n}\n\n.tag {\n display: inline-flex;\n align-items: center;\n gap: var(--osdk-filter-tag-gap);\n padding: var(--osdk-filter-tag-padding);\n border-radius: var(--osdk-filter-tag-border-radius);\n background-color: var(--osdk-filter-tag-bg);\n font-family: var(--osdk-filter-tag-font-family);\n font-size: var(--osdk-filter-tag-font-size);\n line-height: var(--osdk-filter-tag-line-height);\n color: var(--osdk-filter-tag-color);\n}\n\n.tagRemove {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--osdk-filter-tag-remove-color);\n font-size: var(--osdk-filter-tag-remove-font-size);\n line-height: 1;\n transition: color var(--osdk-filter-tag-remove-transition);\n\n &:hover {\n color: var(--osdk-filter-tag-remove-color-hover);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useRef } from \"react\";\n\n// Preserves the last non-loading data value so filter inputs don't flash\n// blank during revalidation. @osdk/react hooks don't provide stale-while-\n// revalidate behavior natively, so this bridges the gap at the UI layer.\nexport function useStableData(data, isLoading) {\n const ref = useRef(data);\n if (!isLoading) {\n ref.current = data;\n }\n return ref.current;\n}","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Input } from \"@base-ui/react/input\";\nimport classnames from \"classnames\";\nimport { debounce } from \"lodash-es\";\nimport React, { memo, useCallback, useEffect, useId, useMemo, useRef, useState } from \"react\";\nimport { createHistogramBuckets, getMaxBucketCount } from \"./createHistogramBuckets.js\";\nimport styles from \"./RangeInput.module.css\";\nimport sharedStyles from \"./shared.module.css\";\nimport { useStableData } from \"./useStableData.js\";\nconst DEBOUNCE_MS = 300;\nfunction RangeInputInner({\n valueCountPairs,\n isLoading,\n minValue,\n maxValue,\n onChange,\n showHistogram = true,\n className,\n style,\n config\n}) {\n const minInputId = useId();\n const maxInputId = useId();\n const [localMin, setLocalMin] = useState(config.formatValue(minValue));\n const [localMax, setLocalMax] = useState(config.formatValue(maxValue));\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n const minValueRef = useRef(minValue);\n minValueRef.current = minValue;\n const maxValueRef = useRef(maxValue);\n maxValueRef.current = maxValue;\n const debouncedMinChange = useMemo(() => debounce(newValue => {\n const parsed = config.parseValue(newValue);\n onChangeRef.current(parsed, maxValueRef.current);\n }, DEBOUNCE_MS), [config]);\n const debouncedMaxChange = useMemo(() => debounce(newValue => {\n const parsed = config.parseValue(newValue);\n onChangeRef.current(minValueRef.current, parsed);\n }, DEBOUNCE_MS), [config]);\n useEffect(() => {\n setLocalMin(config.formatValue(minValue));\n debouncedMinChange.cancel();\n }, [minValue, config, debouncedMinChange]);\n useEffect(() => {\n setLocalMax(config.formatValue(maxValue));\n debouncedMaxChange.cancel();\n }, [maxValue, config, debouncedMaxChange]);\n useEffect(() => {\n return () => {\n debouncedMinChange.cancel();\n debouncedMaxChange.cancel();\n };\n }, [debouncedMinChange, debouncedMaxChange]);\n const displayPairs = useStableData(valueCountPairs, isLoading);\n const computedRange = useMemo(() => {\n if (displayPairs.length === 0) return {\n min: undefined,\n max: undefined\n };\n const min = displayPairs.reduce((acc, p) => Math.min(acc, config.toNumber(p.value)), Infinity);\n const max = displayPairs.reduce((acc, p) => Math.max(acc, config.toNumber(p.value)), -Infinity);\n return {\n min: config.fromNumber(min),\n max: config.fromNumber(max)\n };\n }, [displayPairs, config]);\n const dataRange = useMemo(() => ({\n dataMin: computedRange.min,\n dataMax: computedRange.max\n }), [computedRange.min, computedRange.max]);\n const buckets = useMemo(() => {\n if (!showHistogram || displayPairs.length === 0 || computedRange.min === undefined || computedRange.max === undefined) {\n return [];\n }\n return createHistogramBuckets(displayPairs, {\n min: computedRange.min,\n max: computedRange.max\n }, config.toNumber, config.fromNumber);\n }, [showHistogram, displayPairs, computedRange, config]);\n const maxBucketCount = useMemo(() => getMaxBucketCount(buckets), [buckets]);\n const handleMinChange = useCallback(e => {\n const newValue = e.target.value;\n setLocalMin(newValue);\n debouncedMinChange(newValue);\n }, [debouncedMinChange]);\n const handleMaxChange = useCallback(e => {\n const newValue = e.target.value;\n setLocalMax(newValue);\n debouncedMaxChange(newValue);\n }, [debouncedMaxChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.rangeInput, className),\n style: style,\n \"data-loading\": isLoading\n }, showHistogram && buckets.length === 0 && !isLoading && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.emptyMessage\n }, \"No values available\"), showHistogram && buckets.length > 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.histogramContainer\n }, buckets.map((bucket, index) => {\n const height = bucket.count / maxBucketCount * 100;\n const isInRange = (minValue === undefined || config.toNumber(bucket.max) >= config.toNumber(minValue)) && (maxValue === undefined || config.toNumber(bucket.min) <= config.toNumber(maxValue));\n return /*#__PURE__*/React.createElement(\"div\", {\n key: index,\n className: styles.histogramBar,\n \"data-in-range\": isInRange,\n style: {\n height: `${Math.max(height, 2)}%`\n },\n title: config.formatTooltip(bucket.min, bucket.max, bucket.count)\n });\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.rangeInputs\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.inputWrapper\n }, /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: minInputId,\n className: styles.inputLabel\n }, config.minLabel), /*#__PURE__*/React.createElement(Input, _extends({\n id: minInputId,\n type: config.inputType,\n className: styles.input,\n value: localMin,\n onChange: handleMinChange,\n placeholder: dataRange.dataMin !== undefined && config.formatPlaceholder ? config.formatPlaceholder(dataRange.dataMin) : undefined\n }, config.inputProps))), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.separator,\n \"aria-hidden\": \"true\"\n }, \"\\u2013\"), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.inputWrapper\n }, /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: maxInputId,\n className: styles.inputLabel\n }, config.maxLabel), /*#__PURE__*/React.createElement(Input, _extends({\n id: maxInputId,\n type: config.inputType,\n className: styles.input,\n value: localMax,\n onChange: handleMaxChange,\n placeholder: dataRange.dataMax !== undefined && config.formatPlaceholder ? config.formatPlaceholder(dataRange.dataMax) : undefined\n }, config.inputProps)))));\n}\nexport const RangeInput = /*#__PURE__*/memo(RangeInputInner);","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo } from \"react\";\nimport { formatDateForInput, parseDateFromInput } from \"../../../shared/dateUtils.js\";\nimport { RangeInput } from \"./RangeInput.js\";\nconst dateConfig = {\n inputType: \"date\",\n formatValue: formatDateForInput,\n parseValue: parseDateFromInput,\n toNumber: d => d.getTime(),\n fromNumber: t => new Date(t),\n minLabel: \"From\",\n maxLabel: \"To\",\n formatTooltip: (min, max, count) => `${formatDateForInput(min)} - ${formatDateForInput(max)}: ${count.toLocaleString()}`\n};\nfunction DateRangeInputInner(props) {\n return /*#__PURE__*/React.createElement(RangeInput, _extends({}, props, {\n config: dateConfig\n }));\n}\nexport const DateRangeInput = /*#__PURE__*/memo(DateRangeInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.linkedProperty {\n display: flex;\n flex-direction: column;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.listogram {\n display: flex;\n flex-direction: column;\n transition: opacity var(--osdk-filter-content-fade-duration);\n}\n\n.listogram[data-loading=\"true\"] {\n opacity: 0.5;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .listogram {\n transition: none;\n }\n}\n\n.container {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-listogram-gap);\n}\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-listogram-row-gap);\n padding: var(--osdk-filter-listogram-row-padding);\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: var(--osdk-filter-listogram-row-border-radius);\n text-align: left;\n width: 100%;\n transition: background-color var(--osdk-filter-listogram-row-transition);\n\n &:hover {\n background: var(--osdk-filter-listogram-row-bg-hover);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-listogram-row-focus-outline);\n outline-offset: var(--osdk-filter-listogram-row-focus-offset);\n }\n}\n\n.row[aria-pressed=\"true\"] {\n background: var(--osdk-filter-listogram-row-bg-active);\n}\n\n.label {\n flex: 1;\n font-family: var(--osdk-filter-listogram-label-font-family);\n font-size: var(--osdk-filter-listogram-label-font-size);\n color: var(--osdk-filter-listogram-label-color);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.label[data-excluding] {\n text-decoration: line-through;\n}\n\n.emptyLabel {\n color: var(--osdk-filter-listogram-empty-label-color);\n font-style: var(--osdk-filter-listogram-empty-label-font-style);\n}\n\n.bar {\n width: var(--osdk-filter-listogram-bar-width);\n flex-shrink: 0;\n height: var(--osdk-filter-listogram-bar-height);\n background: var(--osdk-filter-listogram-bar-bg);\n border-radius: var(--osdk-filter-listogram-bar-border-radius);\n overflow: hidden;\n}\n\n.barFill {\n display: block;\n height: 100%;\n width: 100%;\n background: var(--osdk-filter-listogram-row-bar-color, var(--osdk-filter-listogram-bar-color));\n border-radius: var(--osdk-filter-listogram-bar-border-radius);\n transform-origin: left;\n transform: scaleX(var(--osdk-filter-listogram-bar-fill-scale, 0));\n transition: transform var(--osdk-filter-listogram-bar-fill-transition);\n}\n\n.row[aria-pressed=\"true\"] .barFill {\n background: var(--osdk-filter-listogram-row-bar-color, var(--osdk-filter-listogram-selected-color));\n}\n\n.viewAllButton {\n display: flex;\n align-items: center;\n border: none;\n background: transparent;\n cursor: pointer;\n font-family: var(--osdk-filter-listogram-label-font-family);\n font-size: var(--osdk-filter-listogram-view-all-font-size);\n color: var(--osdk-filter-listogram-view-all-color);\n padding: var(--osdk-filter-listogram-row-padding);\n text-align: left;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-listogram-row-focus-outline);\n outline-offset: var(--osdk-filter-listogram-row-focus-offset);\n }\n}\n\n.checkbox {\n display: flex;\n}\n\n.count {\n font-family: var(--osdk-filter-listogram-count-font-family);\n font-size: var(--osdk-filter-listogram-count-font-size);\n font-variant-numeric: tabular-nums;\n color: var(--osdk-filter-listogram-count-color);\n min-width: 3ch;\n text-align: right;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.container {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-listogram-gap);\n}\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-listogram-row-gap);\n padding: var(--osdk-filter-listogram-row-padding);\n}\n\n.flexBar {\n flex: 1;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport { SkeletonBar } from \"../../../base-components/skeleton/SkeletonBar.js\";\nimport styles from \"./ListogramSkeleton.module.css\";\nconst SKELETON_ROWS = [{\n textWidth: \"50%\"\n}, {\n textWidth: \"35%\"\n}, {\n textWidth: \"60%\"\n}];\nexport function ListogramSkeleton() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.container\n }, SKELETON_ROWS.map((row, index) => /*#__PURE__*/React.createElement(\"div\", {\n key: index,\n className: styles.row\n }, /*#__PURE__*/React.createElement(SkeletonBar, {\n height: \"var(--osdk-filter-skeleton-text-height)\",\n maxWidth: row.textWidth,\n className: styles.flexBar\n }), /*#__PURE__*/React.createElement(SkeletonBar, {\n width: \"var(--osdk-filter-listogram-bar-width)\",\n height: \"var(--osdk-filter-listogram-bar-height)\"\n }), /*#__PURE__*/React.createElement(SkeletonBar, {\n width: \"var(--osdk-filter-skeleton-count-width)\",\n height: \"var(--osdk-filter-skeleton-text-height)\"\n }))));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo, useState } from \"react\";\nimport { Checkbox } from \"../../../base-components/checkbox/Checkbox.js\";\nimport { filterValuesBySearch } from \"../../utils/filterValues.js\";\nimport styles from \"./ListogramInput.module.css\";\nimport { ListogramSkeleton } from \"./ListogramSkeleton.js\";\nimport sharedStyles from \"./shared.module.css\";\nimport { useStableData } from \"./useStableData.js\";\nfunction ListogramInputInner({\n values,\n maxCount,\n isLoading,\n error,\n selectedValues,\n onChange,\n colorMap,\n displayMode = \"full\",\n showCount = true,\n isExcluding,\n className,\n style,\n maxVisibleItems,\n searchQuery,\n renderValue\n}) {\n const [isExpanded, setIsExpanded] = useState(false);\n const stableValues = useStableData(values, isLoading);\n const selectedSet = useMemo(() => new Set(selectedValues), [selectedValues]);\n const toggleValue = useCallback(value => {\n if (selectedSet.has(value)) {\n onChange(selectedValues.filter(v => v !== value));\n } else {\n onChange([...selectedValues, value]);\n }\n }, [selectedValues, selectedSet, onChange]);\n const filteredValues = useMemo(() => {\n if (searchQuery) {\n return filterValuesBySearch(stableValues, searchQuery, v => renderValue?.(v.value) ?? v.value);\n }\n return stableValues;\n }, [stableValues, searchQuery, renderValue]);\n const sortedValues = useMemo(() => {\n const selected = filteredValues.filter(v => selectedSet.has(v.value));\n const unselected = filteredValues.filter(v => !selectedSet.has(v.value));\n return [...selected, ...unselected];\n }, [filteredValues, selectedSet]);\n const displayValues = useMemo(() => {\n if (isExpanded || !maxVisibleItems) return sortedValues;\n return sortedValues.slice(0, maxVisibleItems);\n }, [sortedValues, maxVisibleItems, isExpanded]);\n const hasMore = maxVisibleItems != null && sortedValues.length > maxVisibleItems;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.listogram, className),\n style: style,\n \"data-loading\": isLoading && filteredValues.length > 0\n }, error && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.errorMessage\n }, \"Error loading values: \", error.message), !error && filteredValues.length === 0 && isLoading && /*#__PURE__*/React.createElement(ListogramSkeleton, null), !error && filteredValues.length === 0 && !isLoading && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.emptyMessage\n }, \"No values available\"), filteredValues.length > 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.container\n }, displayValues.map(({\n value,\n count\n }) => {\n const percentage = maxCount > 0 ? count / maxCount * 100 : 0;\n const perRowColor = colorMap?.[value];\n const isEmpty = value === \"\";\n const displayLabel = isEmpty ? \"No value\" : renderValue?.(value) ?? value;\n return /*#__PURE__*/React.createElement(Button, {\n key: value,\n className: styles.row\n // eslint-disable-next-line react/jsx-no-bind\n ,\n onClick: () => toggleValue(value),\n \"aria-pressed\": selectedSet.has(value),\n style: perRowColor || percentage > 0 ? {\n \"--osdk-filter-listogram-bar-fill-scale\": percentage / 100,\n ...(perRowColor ? {\n \"--osdk-filter-listogram-row-bar-color\": perRowColor\n } : undefined)\n } : undefined\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.checkbox,\n onClick: e => e.stopPropagation()\n }, /*#__PURE__*/React.createElement(Checkbox, {\n checked: selectedSet.has(value)\n // eslint-disable-next-line react/jsx-no-bind\n ,\n onCheckedChange: () => toggleValue(value),\n isExcluding: isExcluding\n })), /*#__PURE__*/React.createElement(\"span\", {\n className: classnames(styles.label, isEmpty && styles.emptyLabel),\n \"data-excluding\": isExcluding && selectedSet.has(value) || undefined\n }, displayLabel), showCount && displayMode !== \"minimal\" && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.count\n }, count.toLocaleString()), displayMode === \"full\" && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.bar\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.barFill\n })));\n }), hasMore && !isExpanded && /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n className: styles.viewAllButton\n // eslint-disable-next-line react/jsx-no-bind\n ,\n onClick: () => setIsExpanded(true)\n }, \"View all (\", sortedValues.length, \")\")));\n}\nexport const ListogramInput = /*#__PURE__*/memo(ListogramInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.multiDate {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-multiselect-gap);\n}\n\n.clearAll {\n font-family: var(--osdk-filter-date-clear-font-family);\n font-size: var(--osdk-filter-date-clear-font-size);\n color: var(--osdk-filter-date-clear-color);\n background: transparent;\n border: none;\n cursor: pointer;\n padding: var(--osdk-filter-date-clear-padding);\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.calendarContainer {\n display: flex;\n}\n\n.input {\n flex: 1;\n font-family: var(--osdk-filter-input-font-family);\n font-size: var(--osdk-filter-timeline-input-font-size);\n padding: var(--osdk-filter-input-padding);\n border: var(--osdk-filter-input-border);\n border-radius: var(--osdk-filter-input-border-radius);\n background: var(--osdk-filter-input-bg);\n color: var(--osdk-filter-input-color);\n\n &:focus {\n border-color: var(--osdk-filter-input-focus-border);\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Input } from \"@base-ui/react/input\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback } from \"react\";\nimport { formatDateForDisplay, formatDateForInput, parseDateFromInput } from \"../../../shared/dateUtils.js\";\nimport styles from \"./MultiDateInput.module.css\";\nimport sharedStyles from \"./shared.module.css\";\nfunction MultiDateInputInner({\n selectedDates,\n onChange,\n className,\n style,\n minDate,\n maxDate,\n showClearAll = true\n}) {\n const addDate = useCallback(date => {\n const dateStr = formatDateForInput(date);\n const exists = selectedDates.some(d => formatDateForInput(d) === dateStr);\n if (!exists) {\n onChange([...selectedDates, date].sort((a, b) => a.getTime() - b.getTime()));\n }\n }, [selectedDates, onChange]);\n const removeDate = useCallback(date => {\n const dateStr = formatDateForInput(date);\n onChange(selectedDates.filter(d => formatDateForInput(d) !== dateStr));\n }, [selectedDates, onChange]);\n const clearAll = useCallback(() => {\n onChange([]);\n }, [onChange]);\n const handleDateChange = useCallback(e => {\n const date = parseDateFromInput(e.target.value);\n if (date) {\n addDate(date);\n e.target.value = \"\";\n }\n }, [addDate]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.multiDate, className),\n style: style\n }, selectedDates.length > 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.tagContainer\n }, selectedDates.map(date => /*#__PURE__*/React.createElement(\"span\", {\n key: date.toISOString(),\n className: sharedStyles.tag\n }, formatDateForDisplay(date), /*#__PURE__*/React.createElement(Button, {\n className: sharedStyles.tagRemove,\n onClick: () => removeDate(date),\n \"aria-label\": `Remove ${formatDateForDisplay(date)}`\n }, \"\\xD7\"))), showClearAll && selectedDates.length > 1 && /*#__PURE__*/React.createElement(Button, {\n className: styles.clearAll,\n onClick: clearAll,\n \"aria-label\": \"Clear all dates\"\n }, \"Clear all\")), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.calendarContainer\n }, /*#__PURE__*/React.createElement(Input, {\n type: \"date\",\n className: styles.input,\n onChange: handleDateChange,\n min: minDate ? formatDateForInput(minDate) : undefined,\n max: maxDate ? formatDateForInput(maxDate) : undefined,\n \"aria-label\": \"Add date\"\n })));\n}\nexport const MultiDateInput = /*#__PURE__*/memo(MultiDateInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.multiSelect {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-multiselect-gap);\n}\n\n.itemLabel {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.itemCount {\n font-family: var(--osdk-filter-multiselect-count-font-family);\n font-size: var(--osdk-filter-multiselect-count-font-size);\n font-variant-numeric: tabular-nums;\n color: var(--osdk-filter-multiselect-count-color);\n flex-shrink: 0;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { Combobox } from \"../../../base-components/combobox/Combobox.js\";\nimport styles from \"./MultiSelectInput.module.css\";\nimport sharedStyles from \"./shared.module.css\";\nfunction MultiSelectInputInner({\n values,\n isLoading,\n error,\n selectedValues,\n onChange,\n className,\n style,\n placeholder = \"Select values...\",\n showCounts = true,\n ariaLabel = \"Search values\",\n renderValue\n}) {\n const handleValueChange = useCallback(newValues => {\n onChange(newValues ?? []);\n }, [onChange]);\n const items = useMemo(() => values.map(({\n value\n }) => value), [values]);\n const countByValue = useMemo(() => new Map(values.map(({\n value,\n count\n }) => [value, count])), [values]);\n const comboboxFilter = useMemo(() => renderValue ? (itemValue, query) => renderValue(itemValue).toLowerCase().includes(query.toLowerCase()) : undefined, [renderValue]);\n const renderItem = useCallback(value => /*#__PURE__*/React.createElement(Combobox.Item, {\n key: value,\n value: value\n }, /*#__PURE__*/React.createElement(Combobox.ItemIndicator, null), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.itemLabel\n }, renderValue ? renderValue(value) : value), showCounts && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.itemCount\n }, \"(\", (countByValue.get(value) ?? 0).toLocaleString(), \")\")), [countByValue, showCounts, renderValue]);\n const renderChips = useCallback(selectedItems => /*#__PURE__*/React.createElement(React.Fragment, null, selectedItems.map(value => /*#__PURE__*/React.createElement(Combobox.Chip, {\n key: value,\n \"aria-label\": value\n }, renderValue ? renderValue(value) : value, /*#__PURE__*/React.createElement(Combobox.ChipRemove, null))), /*#__PURE__*/React.createElement(Combobox.Input, {\n placeholder: selectedItems.length > 0 ? \"\" : placeholder,\n \"aria-label\": ariaLabel\n })), [placeholder, ariaLabel, renderValue]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.multiSelect, className),\n style: style,\n \"data-loading\": isLoading\n }, error && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.errorMessage\n }, \"Error loading options: \", error.message), !error && values.length === 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.emptyMessage\n }, isLoading ? \"Loading options...\" : \"No options available\"), (values.length > 0 || isLoading) && /*#__PURE__*/React.createElement(Combobox.Root, {\n multiple: true,\n value: selectedValues,\n onValueChange: handleValueChange,\n items: items,\n filter: comboboxFilter\n }, isLoading && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.loadingMessage\n }, \"Updating...\"), /*#__PURE__*/React.createElement(Combobox.Chips, null, /*#__PURE__*/React.createElement(Combobox.Value, null, renderChips)), /*#__PURE__*/React.createElement(Combobox.Portal, null, /*#__PURE__*/React.createElement(Combobox.Positioner, null, /*#__PURE__*/React.createElement(Combobox.Popup, null, /*#__PURE__*/React.createElement(Combobox.Empty, null, \"No matching options\"), /*#__PURE__*/React.createElement(Combobox.List, null, renderItem))))));\n}\nexport const MultiSelectInput = /*#__PURE__*/memo(MultiSelectInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.nullWrapper {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-null-wrapper-gap);\n}\n\n.nullValueRow {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--osdk-filter-null-row-padding);\n border-top: var(--osdk-filter-null-row-border-top);\n}\n\n.nullLabel {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-null-label-gap);\n cursor: pointer;\n}\n\n.nullLabelText {\n font-family: var(--osdk-filter-null-label-font-family);\n font-size: var(--osdk-filter-null-label-font-size);\n line-height: var(--osdk-filter-null-label-line-height);\n color: var(--osdk-filter-null-label-color);\n}\n\n.count {\n font-family: var(--osdk-filter-null-count-font-family);\n font-size: var(--osdk-filter-null-count-font-size);\n font-variant-numeric: tabular-nums;\n color: var(--osdk-filter-null-count-color);\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classnames from \"classnames\";\nimport React, { memo, useCallback } from \"react\";\nimport { Checkbox } from \"../../../base-components/checkbox/Checkbox.js\";\nimport styles from \"./NullValueWrapper.module.css\";\nimport sharedStyles from \"./shared.module.css\";\nfunction NullValueWrapperInner({\n nullCount,\n isLoading,\n error,\n includeNull = false,\n onIncludeNullChange,\n showNullCount = true,\n children,\n className,\n style\n}) {\n const handleToggle = useCallback(() => {\n onIncludeNullChange(!includeNull);\n }, [includeNull, onIncludeNullChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.nullWrapper, className),\n style: style\n }, children, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.nullValueRow,\n \"data-checked\": includeNull,\n \"data-loading\": isLoading\n }, /*#__PURE__*/React.createElement(\"label\", {\n className: styles.nullLabel\n }, /*#__PURE__*/React.createElement(Checkbox, {\n checked: includeNull,\n onCheckedChange: handleToggle\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.nullLabelText\n }, \"No value\")), showNullCount && !error && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.count\n }, nullCount.toLocaleString())), error && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.errorMessage\n }, \"Failed to load null count\"));\n}\nexport const NullValueWrapper = /*#__PURE__*/memo(NullValueWrapperInner);","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo } from \"react\";\nimport { RangeInput } from \"./RangeInput.js\";\nfunction formatNumber(value) {\n return value !== undefined ? String(value) : \"\";\n}\nfunction parseNumber(value) {\n if (value === \"\") return undefined;\n const parsed = parseFloat(value);\n return isNaN(parsed) ? undefined : parsed;\n}\nconst numberConfig = {\n inputType: \"number\",\n formatValue: formatNumber,\n parseValue: parseNumber,\n toNumber: v => v,\n fromNumber: v => v,\n minLabel: \"Min\",\n maxLabel: \"Max\",\n formatTooltip: (min, max, count) => `${min.toFixed(1)} - ${max.toFixed(1)}: ${count.toLocaleString()}`,\n formatPlaceholder: value => value.toFixed(0),\n inputProps: {\n step: \"any\"\n }\n};\nfunction NumberRangeInputInner(props) {\n return /*#__PURE__*/React.createElement(RangeInput, _extends({}, props, {\n config: numberConfig\n }));\n}\nexport const NumberRangeInput = /*#__PURE__*/memo(NumberRangeInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.singleDate {\n display: flex;\n flex-direction: column;\n}\n\n.dateContainer {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-select-container-gap);\n}\n\n.input {\n flex: 1;\n font-family: var(--osdk-filter-input-font-family);\n font-size: var(--osdk-filter-timeline-input-font-size);\n padding: var(--osdk-filter-input-padding);\n border: var(--osdk-filter-input-border);\n border-radius: var(--osdk-filter-input-border-radius);\n background: var(--osdk-filter-input-bg);\n color: var(--osdk-filter-input-color);\n\n &:focus {\n border-color: var(--osdk-filter-input-focus-border);\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n}\n\n.clearButton {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-input-clear-padding);\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--osdk-filter-input-icon-color);\n border-radius: var(--osdk-filter-input-clear-border-radius);\n transition: background-color var(--osdk-filter-input-transition);\n\n &:hover {\n background: var(--osdk-filter-input-clear-bg-hover);\n }\n\n &:active {\n background: var(--osdk-filter-input-clear-bg-active);\n }\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Input } from \"@base-ui/react/input\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback } from \"react\";\nimport { formatDateForInput, parseDateFromInput } from \"../../../shared/dateUtils.js\";\nimport styles from \"./SingleDateInput.module.css\";\nfunction SingleDateInputInner({\n selectedDate,\n onChange,\n className,\n style,\n minDate,\n maxDate,\n placeholder = \"Select a date...\",\n showClearButton = true\n}) {\n const handleChange = useCallback(e => {\n const date = parseDateFromInput(e.target.value);\n onChange(date);\n }, [onChange]);\n const handleClear = useCallback(() => {\n onChange(undefined);\n }, [onChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.singleDate, className),\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.dateContainer\n }, /*#__PURE__*/React.createElement(Input, {\n type: \"date\",\n className: styles.input,\n value: formatDateForInput(selectedDate),\n onChange: handleChange,\n min: minDate ? formatDateForInput(minDate) : undefined,\n max: maxDate ? formatDateForInput(maxDate) : undefined,\n placeholder: placeholder,\n \"aria-label\": \"Select date\"\n }), showClearButton && selectedDate !== undefined && /*#__PURE__*/React.createElement(Button, {\n className: styles.clearButton,\n onClick: handleClear,\n \"aria-label\": \"Clear date\"\n }, \"\\xD7\")));\n}\nexport const SingleDateInput = /*#__PURE__*/memo(SingleDateInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.singleSelect {\n display: flex;\n flex-direction: column;\n}\n\n.selectContainer {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-select-container-gap);\n position: relative;\n}\n\n.clearButton {\n flex-shrink: 0;\n}\n\n.itemLabel {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.itemCount {\n font-variant-numeric: tabular-nums;\n color: var(--osdk-typography-color-muted);\n flex-shrink: 0;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { Combobox } from \"../../../base-components/combobox/Combobox.js\";\nimport sharedStyles from \"./shared.module.css\";\nimport styles from \"./SingleSelectInput.module.css\";\nfunction SingleSelectInputInner({\n values,\n isLoading,\n error,\n selectedValue,\n onChange,\n className,\n style,\n placeholder = \"Select a value...\",\n showClearButton = true,\n showCounts = false,\n ariaLabel = \"Select value\",\n renderValue\n}) {\n const handleValueChange = useCallback(value => {\n onChange(value ?? undefined);\n }, [onChange]);\n const items = useMemo(() => values.map(({\n value\n }) => value), [values]);\n const countByValue = useMemo(() => new Map(values.map(({\n value,\n count\n }) => [value, count])), [values]);\n const comboboxFilter = useMemo(() => renderValue ? (itemValue, query) => renderValue(itemValue).toLowerCase().includes(query.toLowerCase()) : undefined, [renderValue]);\n const renderItem = useCallback(value => /*#__PURE__*/React.createElement(Combobox.Item, {\n key: value,\n value: value\n }, /*#__PURE__*/React.createElement(Combobox.ItemIndicator, null), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.itemLabel\n }, renderValue ? renderValue(value) : value), showCounts && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.itemCount\n }, \"(\", (countByValue.get(value) ?? 0).toLocaleString(), \")\")), [countByValue, showCounts, renderValue]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.singleSelect, className),\n style: style,\n \"data-loading\": isLoading\n }, isLoading && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.loadingMessage\n }, \"Loading options...\"), error && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.errorMessage\n }, \"Error loading options: \", error.message), !isLoading && !error && values.length === 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.emptyMessage\n }, \"No options available\"), (values.length > 0 || isLoading) && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.selectContainer\n }, /*#__PURE__*/React.createElement(Combobox.Root, {\n value: selectedValue ?? null,\n onValueChange: handleValueChange,\n items: items,\n filter: comboboxFilter\n }, /*#__PURE__*/React.createElement(Combobox.SearchInput, {\n placeholder: placeholder,\n \"aria-label\": ariaLabel\n }), showClearButton && selectedValue !== undefined && /*#__PURE__*/React.createElement(Combobox.Clear, {\n className: styles.clearButton\n }), /*#__PURE__*/React.createElement(Combobox.Portal, null, /*#__PURE__*/React.createElement(Combobox.Positioner, null, /*#__PURE__*/React.createElement(Combobox.Popup, null, /*#__PURE__*/React.createElement(Combobox.Empty, null, \"No matching options\"), /*#__PURE__*/React.createElement(Combobox.List, null, renderItem)))))));\n}\nexport const SingleSelectInput = /*#__PURE__*/memo(SingleSelectInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.textTags {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-texttags-gap);\n}\n\n.input {\n flex: 1;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo, useState } from \"react\";\nimport { Combobox } from \"../../../base-components/combobox/Combobox.js\";\nimport sharedStyles from \"./shared.module.css\";\nimport styles from \"./TextTagsInput.module.css\";\nconst TAG_SEPARATOR_PATTERN = /[,\\n]/;\nconst TagItem = /*#__PURE__*/memo(function TagItem({\n tag,\n onRemove\n}) {\n const handleRemove = useCallback(() => {\n onRemove(tag);\n }, [tag, onRemove]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: sharedStyles.tag\n }, tag, /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n className: sharedStyles.tagRemove,\n onClick: handleRemove,\n \"aria-label\": `Remove ${tag}`\n }, \"\\xD7\"));\n});\nfunction TextTagsInputInner({\n suggestions,\n isLoading,\n error,\n tags,\n onChange,\n className,\n style,\n placeholder = \"Add a tag...\",\n allowCustomTags = true,\n suggestionLimit = 10,\n ariaLabel = \"Add tag\"\n}) {\n const [inputValue, setInputValue] = useState(\"\");\n const filteredSuggestions = useMemo(() => {\n if (!suggestionLimit) return [];\n const lowerInput = inputValue.toLowerCase();\n return suggestions.filter(s => (!inputValue.trim() || s.value.toLowerCase().includes(lowerInput)) && !tags.includes(s.value)).slice(0, suggestionLimit);\n }, [suggestions, inputValue, tags, suggestionLimit]);\n const addTag = useCallback(tag => {\n const trimmedTag = tag.trim();\n if (trimmedTag && !tags.includes(trimmedTag)) {\n onChange([...tags, trimmedTag]);\n }\n setInputValue(\"\");\n }, [tags, onChange]);\n const removeTag = useCallback(tag => {\n onChange(tags.filter(t => t !== tag));\n }, [tags, onChange]);\n const handleValueChange = useCallback(newTags => {\n onChange(newTags ?? []);\n }, [onChange]);\n const handleInputValueChange = useCallback(value => {\n setInputValue(value);\n }, []);\n const handleKeyDown = useCallback(e => {\n if (e.key === \"Enter\" && inputValue.trim()) {\n if (filteredSuggestions.length > 0) {\n return;\n }\n e.preventDefault();\n if (allowCustomTags) {\n addTag(inputValue);\n }\n } else if (e.key === \"Backspace\" && !inputValue && tags.length > 0) {\n removeTag(tags[tags.length - 1]);\n }\n }, [inputValue, tags, addTag, removeTag, allowCustomTags, filteredSuggestions]);\n const handlePaste = useCallback(e => {\n const pastedText = e.clipboardData.getData(\"text\");\n if (TAG_SEPARATOR_PATTERN.test(pastedText)) {\n e.preventDefault();\n const newTags = pastedText.split(TAG_SEPARATOR_PATTERN).map(t => t.trim()).filter(t => t && !tags.includes(t));\n if (newTags.length > 0) {\n onChange([...tags, ...newTags]);\n }\n }\n }, [tags, onChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.textTags, className),\n style: style,\n \"data-loading\": isLoading\n }, error && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.errorMessage\n }, \"Error loading suggestions: \", error.message), /*#__PURE__*/React.createElement(Combobox.Root, {\n multiple: true,\n value: tags,\n onValueChange: handleValueChange,\n inputValue: inputValue,\n onInputValueChange: handleInputValueChange\n }, tags.length > 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.tagContainer\n }, tags.map(tag => /*#__PURE__*/React.createElement(TagItem, {\n key: tag,\n tag: tag,\n onRemove: removeTag\n }))), /*#__PURE__*/React.createElement(Combobox.SearchInput, {\n className: styles.input,\n placeholder: tags.length > 0 ? \"\" : placeholder,\n onKeyDown: handleKeyDown,\n onPaste: handlePaste,\n \"aria-label\": ariaLabel\n }), /*#__PURE__*/React.createElement(Combobox.Portal, null, /*#__PURE__*/React.createElement(Combobox.Positioner, null, /*#__PURE__*/React.createElement(Combobox.Popup, null, filteredSuggestions.length === 0 ? allowCustomTags && inputValue.trim() ? /*#__PURE__*/React.createElement(Combobox.Empty, null, \"Press Enter to add \\\"\", inputValue, \"\\\"\") : /*#__PURE__*/React.createElement(Combobox.Empty, null, suggestionLimit ? \"No suggestions\" : \"Type to add a tag\") : filteredSuggestions.map(({\n value,\n count\n }) => /*#__PURE__*/React.createElement(Combobox.Item, {\n key: value,\n value: value\n }, value, \" (\", count.toLocaleString(), \")\")))))), isLoading && !!suggestionLimit && /*#__PURE__*/React.createElement(\"div\", {\n className: sharedStyles.loadingMessage\n }, \"Loading suggestions...\"));\n}\nexport const TextTagsInput = /*#__PURE__*/memo(TextTagsInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.timeline {\n display: flex;\n flex-direction: column;\n gap: var(--osdk-filter-range-gap);\n}\n\n.labels {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-timeline-labels-gap);\n font-family: var(--osdk-filter-timeline-labels-font-family);\n font-size: var(--osdk-filter-timeline-labels-font-size);\n color: var(--osdk-filter-timeline-labels-color);\n}\n\n.clearButton {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--osdk-filter-timeline-button-padding);\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--osdk-filter-timeline-button-color);\n border-radius: var(--osdk-filter-timeline-button-border-radius);\n margin-left: auto;\n\n &:hover {\n background: var(--osdk-filter-timeline-button-bg-hover);\n color: var(--osdk-filter-timeline-button-color-hover);\n }\n}\n\n.brush {\n display: flex;\n align-items: center;\n gap: var(--osdk-filter-timeline-labels-gap);\n}\n\n.brush span {\n color: var(--osdk-filter-timeline-brush-color);\n}\n\n.input {\n flex: 1;\n font-family: var(--osdk-filter-input-font-family);\n font-size: var(--osdk-filter-timeline-input-font-size);\n padding: var(--osdk-filter-input-padding);\n border: var(--osdk-filter-input-border);\n border-radius: var(--osdk-filter-input-border-radius);\n background: var(--osdk-filter-input-bg);\n color: var(--osdk-filter-input-color);\n\n &:focus {\n border-color: var(--osdk-filter-input-focus-border);\n outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Input } from \"@base-ui/react/input\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { formatDateForDisplay, formatDateForInput, parseDateFromInput } from \"../../../shared/dateUtils.js\";\nimport styles from \"./TimelineInput.module.css\";\nfunction TimelineInputInner({\n startDate,\n endDate,\n onChange,\n className,\n minDate,\n maxDate\n}) {\n const handleStartChange = useCallback(e => {\n const date = parseDateFromInput(e.target.value);\n onChange(date, endDate);\n }, [onChange, endDate]);\n const handleEndChange = useCallback(e => {\n const date = parseDateFromInput(e.target.value);\n onChange(startDate, date);\n }, [onChange, startDate]);\n const handleClear = useCallback(() => {\n onChange(undefined, undefined);\n }, [onChange]);\n const startInputMax = useMemo(() => endDate ?? maxDate, [endDate, maxDate]);\n const endInputMin = useMemo(() => startDate ?? minDate, [startDate, minDate]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.timeline, className)\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.labels\n }, /*#__PURE__*/React.createElement(\"span\", null, formatDateForDisplay(startDate, \"—\")), /*#__PURE__*/React.createElement(\"span\", null, \"to\"), /*#__PURE__*/React.createElement(\"span\", null, formatDateForDisplay(endDate, \"—\")), (startDate || endDate) && /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n onClick: handleClear,\n \"aria-label\": \"Clear range\",\n className: styles.clearButton\n }, \"\\xD7\")), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.brush\n }, /*#__PURE__*/React.createElement(Input, {\n type: \"date\",\n className: styles.input,\n value: formatDateForInput(startDate),\n onChange: handleStartChange,\n min: minDate ? formatDateForInput(minDate) : undefined,\n max: startInputMax ? formatDateForInput(startInputMax) : undefined,\n \"aria-label\": \"Start date\"\n }), /*#__PURE__*/React.createElement(\"span\", null, \"\\u2014\"), /*#__PURE__*/React.createElement(Input, {\n type: \"date\",\n className: styles.input,\n value: formatDateForInput(endDate),\n onChange: handleEndChange,\n min: endInputMin ? formatDateForInput(endInputMin) : undefined,\n max: maxDate ? formatDateForInput(maxDate) : undefined,\n \"aria-label\": \"End date\"\n })));\n}\nexport const TimelineInput = /*#__PURE__*/memo(TimelineInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useOsdkAggregation } from \"@osdk/react\";\nimport { useMemo } from \"react\";\nexport function usePropertyAggregation(objectType, propertyKey, objectSet, options) {\n // AggregateOpts requires specific property keys from Q, but we're dynamically\n // using propertyKey. The cast is unavoidable for this dynamic filter pattern.\n const aggregateOptions = useMemo(() => ({\n $select: {\n $count: \"unordered\"\n },\n $groupBy: {\n [propertyKey]: {\n $exact: {\n $includeNullValue: true\n }\n }\n }\n }), [propertyKey]);\n const aggregationArgs = useMemo(() => ({\n aggregate: aggregateOptions,\n where: options?.where,\n objectSet\n }), [aggregateOptions, options?.where, objectSet]);\n const {\n data: countData,\n isLoading,\n error\n } = useOsdkAggregation(objectType, aggregationArgs);\n const result = useMemo(() => {\n if (!countData) {\n return {\n data: [],\n maxCount: 0\n };\n }\n const values = [];\n let maxCount = 0;\n\n // The aggregation result type varies by query structure. Since we're building\n // the query dynamically based on propertyKey, we cast to a known shape that\n // matches the $groupBy + $count aggregation pattern.\n const dataArray = countData;\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey];\n const count = item.$count ?? 0;\n if (rawValue == null) {\n values.push({\n value: \"\",\n count,\n isNull: true\n });\n } else {\n values.push({\n value: String(rawValue),\n count\n });\n }\n maxCount = Math.max(maxCount, count);\n }\n const sortBy = options?.sortBy ?? \"count\";\n if (sortBy === \"count\") {\n values.sort((a, b) => b.count - a.count || a.value.localeCompare(b.value));\n } else {\n values.sort((a, b) => a.value.localeCompare(b.value));\n }\n if (options?.limit && values.length > options.limit) {\n return {\n data: values.slice(0, options.limit),\n maxCount\n };\n }\n return {\n data: values,\n maxCount\n };\n }, [countData, propertyKey, options?.limit, options?.sortBy]);\n return {\n data: result.data,\n maxCount: result.maxCount,\n isLoading,\n error: error ?? null\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function createGroupByAggregateOptions(propertyKey) {\n return {\n $select: {\n $count: \"unordered\"\n },\n $groupBy: {\n [propertyKey]: \"exact\"\n }\n };\n}\nexport function createNullCountAggregateOptions() {\n return {\n $select: {\n $count: \"unordered\"\n }\n };\n}\n\n/** Shape returned by $groupBy + $count aggregations when iterated. */\n\nexport function createNullWhereClause(propertyKey) {\n return {\n [propertyKey]: {\n $isNull: true\n }\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Coerces a filter value to a string for display.\n * Returns undefined if the value is undefined.\n */\nexport function coerceToString(value) {\n if (value === undefined) return undefined;\n return String(value);\n}\n\n/**\n * Coerces an array of filter values to string[] for display.\n */\nexport function coerceToStringArray(values) {\n if (values === undefined) return [];\n return values.map(v => String(v));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useOsdkAggregation } from \"@osdk/react\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport { ContainsTextInput } from \"../base/inputs/ContainsTextInput.js\";\nimport { DateRangeInput } from \"../base/inputs/DateRangeInput.js\";\nimport styles from \"../base/inputs/LinkedPropertyInput.module.css\";\nimport { ListogramInput } from \"../base/inputs/ListogramInput.js\";\nimport { MultiDateInput } from \"../base/inputs/MultiDateInput.js\";\nimport { MultiSelectInput } from \"../base/inputs/MultiSelectInput.js\";\nimport { NullValueWrapper } from \"../base/inputs/NullValueWrapper.js\";\nimport { NumberRangeInput } from \"../base/inputs/NumberRangeInput.js\";\nimport { SingleDateInput } from \"../base/inputs/SingleDateInput.js\";\nimport { SingleSelectInput } from \"../base/inputs/SingleSelectInput.js\";\nimport { TextTagsInput } from \"../base/inputs/TextTagsInput.js\";\nimport { TimelineInput } from \"../base/inputs/TimelineInput.js\";\nimport { ToggleInput } from \"../base/inputs/ToggleInput.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { createGroupByAggregateOptions, createNullCountAggregateOptions, createNullWhereClause } from \"../utils/aggregationHelpers.js\";\nimport { coerceToString, coerceToStringArray } from \"../utils/coerceFilterValue.js\";\nfunction LinkedPropertyInputInner({\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n searchQuery,\n className,\n style\n}) {\n const linkedObjectSet = useMemo(() => objectSet.pivotTo(definition.linkName), [objectSet, definition.linkName]);\n const linkedObjectType = linkedObjectSet.$objectSetInternals.def;\n const linkedPropertyKey = definition.linkedPropertyKey;\n const innerState = filterState?.type === \"linkedProperty\" ? filterState.linkedFilterState : undefined;\n const isExcluding = innerState?.isExcluding ?? false;\n const includeNull = innerState?.includeNull;\n const wrappedOnChange = useCallback(innerFilterState => {\n onFilterStateChanged({\n type: \"linkedProperty\",\n linkedFilterState: innerFilterState\n });\n }, [onFilterStateChanged]);\n const onSelectChange = useCallback(selectedValues => {\n wrappedOnChange({\n type: \"SELECT\",\n selectedValues,\n isExcluding\n });\n }, [wrappedOnChange, isExcluding]);\n const onSingleSelectChange = useCallback(selectedValue => {\n wrappedOnChange({\n type: \"SELECT\",\n selectedValues: selectedValue !== undefined ? [selectedValue] : [],\n isExcluding\n });\n }, [wrappedOnChange, isExcluding]);\n const onContainsTextChange = useCallback(value => {\n wrappedOnChange({\n type: \"CONTAINS_TEXT\",\n value\n });\n }, [wrappedOnChange]);\n const onToggleChange = useCallback(enabled => {\n wrappedOnChange({\n type: \"TOGGLE\",\n enabled\n });\n }, [wrappedOnChange]);\n const onNumberRangeChange = useCallback((minValue, maxValue) => {\n wrappedOnChange({\n type: \"NUMBER_RANGE\",\n minValue,\n maxValue,\n includeNull\n });\n }, [wrappedOnChange, includeNull]);\n const onDateRangeChange = useCallback((minValue, maxValue) => {\n wrappedOnChange({\n type: \"DATE_RANGE\",\n minValue,\n maxValue,\n includeNull\n });\n }, [wrappedOnChange, includeNull]);\n const onExactMatchChange = useCallback(values => {\n wrappedOnChange({\n type: \"EXACT_MATCH\",\n values,\n isExcluding\n });\n }, [wrappedOnChange, isExcluding]);\n const onDateSelectChange = useCallback(date => {\n wrappedOnChange({\n type: \"SELECT\",\n selectedValues: date !== undefined ? [date] : [],\n isExcluding\n });\n }, [wrappedOnChange, isExcluding]);\n const onMultiDateChange = useCallback(dates => {\n wrappedOnChange({\n type: \"SELECT\",\n selectedValues: dates\n });\n }, [wrappedOnChange]);\n const onTimelineChange = useCallback((start, end) => {\n wrappedOnChange({\n type: \"TIMELINE\",\n startDate: start,\n endDate: end,\n isExcluding\n });\n }, [wrappedOnChange, isExcluding]);\n const onNullChange = useCallback(newIncludeNull => {\n if (innerState?.type === \"NUMBER_RANGE\") {\n wrappedOnChange({\n ...innerState,\n includeNull: newIncludeNull\n });\n } else if (innerState?.type === \"DATE_RANGE\") {\n wrappedOnChange({\n ...innerState,\n includeNull: newIncludeNull\n });\n } else {\n wrappedOnChange({\n type: \"NUMBER_RANGE\",\n minValue: undefined,\n maxValue: undefined,\n includeNull: newIncludeNull\n });\n }\n }, [wrappedOnChange, innerState]);\n const content = (() => {\n switch (definition.linkedFilterComponent) {\n case \"MULTI_SELECT\":\n {\n const values = innerState?.type === \"SELECT\" ? coerceToStringArray(innerState.selectedValues) : [];\n return /*#__PURE__*/React.createElement(LinkedMultiSelectInput, {\n objectType: linkedObjectType,\n objectSet: linkedObjectSet,\n propertyKey: linkedPropertyKey,\n selectedValues: values,\n onChange: onSelectChange,\n showCount: definition.showCount\n });\n }\n case \"SINGLE_SELECT\":\n {\n const value = innerState?.type === \"SELECT\" ? coerceToString(innerState.selectedValues[0]) : undefined;\n return /*#__PURE__*/React.createElement(LinkedSingleSelectInput, {\n objectType: linkedObjectType,\n objectSet: linkedObjectSet,\n propertyKey: linkedPropertyKey,\n selectedValue: value,\n onChange: onSingleSelectChange,\n showCount: definition.showCount\n });\n }\n case \"CONTAINS_TEXT\":\n {\n const value = innerState?.type === \"CONTAINS_TEXT\" ? innerState.value : undefined;\n return /*#__PURE__*/React.createElement(ContainsTextInput, {\n value: value,\n onChange: onContainsTextChange,\n placeholder: `Search ${String(definition.linkedPropertyKey)}...`\n });\n }\n case \"TOGGLE\":\n {\n const enabled = innerState?.type === \"TOGGLE\" ? innerState.enabled : false;\n return /*#__PURE__*/React.createElement(ToggleInput, {\n enabled: enabled,\n onChange: onToggleChange\n });\n }\n case \"NUMBER_RANGE\":\n {\n const nr = innerState?.type === \"NUMBER_RANGE\" ? innerState : undefined;\n return /*#__PURE__*/React.createElement(LinkedNumberRangeInput, {\n objectType: linkedObjectType,\n objectSet: linkedObjectSet,\n propertyKey: linkedPropertyKey,\n minValue: nr?.minValue,\n maxValue: nr?.maxValue,\n includeNull: nr?.includeNull,\n onChange: onNumberRangeChange,\n onNullChange: onNullChange\n });\n }\n case \"DATE_RANGE\":\n {\n const dr = innerState?.type === \"DATE_RANGE\" ? innerState : undefined;\n return /*#__PURE__*/React.createElement(LinkedDateRangeInput, {\n objectType: linkedObjectType,\n objectSet: linkedObjectSet,\n propertyKey: linkedPropertyKey,\n minValue: dr?.minValue,\n maxValue: dr?.maxValue,\n includeNull: dr?.includeNull,\n onChange: onDateRangeChange,\n onNullChange: onNullChange\n });\n }\n case \"LISTOGRAM\":\n {\n const exactState = innerState?.type === \"EXACT_MATCH\" ? innerState : undefined;\n const selectedValues = exactState ? coerceToStringArray(exactState.values) : [];\n return /*#__PURE__*/React.createElement(LinkedListogramInput, {\n objectType: linkedObjectType,\n objectSet: linkedObjectSet,\n propertyKey: linkedPropertyKey,\n selectedValues: selectedValues,\n onChange: onExactMatchChange,\n searchQuery: searchQuery,\n showCount: definition.showCount\n });\n }\n case \"TEXT_TAGS\":\n {\n const exactState = innerState?.type === \"EXACT_MATCH\" ? innerState : undefined;\n const tags = exactState ? coerceToStringArray(exactState.values) : [];\n return /*#__PURE__*/React.createElement(LinkedTextTagsInput, {\n objectType: linkedObjectType,\n objectSet: linkedObjectSet,\n propertyKey: linkedPropertyKey,\n tags: tags,\n onChange: onExactMatchChange\n });\n }\n case \"SINGLE_DATE\":\n {\n const selectedDate = innerState?.type === \"SELECT\" ? innerState.selectedValues[0] instanceof Date ? innerState.selectedValues[0] : undefined : undefined;\n return /*#__PURE__*/React.createElement(SingleDateInput, {\n selectedDate: selectedDate,\n onChange: onDateSelectChange,\n showClearButton: true\n });\n }\n case \"MULTI_DATE\":\n {\n const selectedDates = innerState?.type === \"SELECT\" ? innerState.selectedValues.filter(v => v instanceof Date) : [];\n return /*#__PURE__*/React.createElement(MultiDateInput, {\n selectedDates: selectedDates,\n onChange: onMultiDateChange,\n showClearAll: true\n });\n }\n case \"TIMELINE\":\n {\n const tl = innerState?.type === \"TIMELINE\" ? innerState : undefined;\n return /*#__PURE__*/React.createElement(TimelineInput, {\n startDate: tl?.startDate,\n endDate: tl?.endDate,\n onChange: onTimelineChange\n });\n }\n default:\n return assertUnreachable(definition.linkedFilterComponent);\n }\n })();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(styles.linkedProperty, className),\n style: style\n }, content);\n}\nexport const LinkedPropertyInput = /*#__PURE__*/memo(LinkedPropertyInputInner);\nfunction LinkedMultiSelectInput({\n objectType,\n objectSet,\n propertyKey,\n selectedValues,\n onChange,\n showCount\n}) {\n const {\n data,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey, objectSet);\n return /*#__PURE__*/React.createElement(MultiSelectInput, {\n values: data,\n isLoading: isLoading,\n error: error,\n selectedValues: selectedValues,\n onChange: onChange,\n showCounts: showCount\n });\n}\nfunction LinkedSingleSelectInput({\n objectType,\n objectSet,\n propertyKey,\n selectedValue,\n onChange,\n showCount\n}) {\n const {\n data,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey, objectSet);\n return /*#__PURE__*/React.createElement(SingleSelectInput, {\n values: data,\n isLoading: isLoading,\n error: error,\n selectedValue: selectedValue,\n onChange: onChange,\n showCounts: showCount,\n ariaLabel: `Select ${propertyKey}`\n });\n}\nfunction LinkedListogramInput({\n objectType,\n objectSet,\n propertyKey,\n selectedValues,\n onChange,\n searchQuery,\n showCount\n}) {\n const {\n data,\n maxCount,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey, objectSet);\n return /*#__PURE__*/React.createElement(ListogramInput, {\n values: data,\n maxCount: maxCount,\n isLoading: isLoading,\n error: error,\n selectedValues: selectedValues,\n onChange: onChange,\n searchQuery: searchQuery,\n showCount: showCount\n });\n}\nfunction LinkedTextTagsInput({\n objectType,\n objectSet,\n propertyKey,\n tags,\n onChange\n}) {\n const aggregationOptions = useMemo(() => ({\n limit: 50\n }), []);\n const {\n data,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);\n return /*#__PURE__*/React.createElement(TextTagsInput, {\n suggestions: data,\n isLoading: isLoading,\n error: error,\n tags: tags,\n onChange: onChange,\n suggestionLimit: 10\n });\n}\nfunction useLinkedRangeData(objectType, propertyKey, objectSet) {\n const aggregateOptions = useMemo(() => createGroupByAggregateOptions(propertyKey), [propertyKey]);\n const histogramArgs = useMemo(() => ({\n aggregate: aggregateOptions,\n objectSet\n }), [aggregateOptions, objectSet]);\n const {\n data: aggregateData,\n isLoading: histLoading\n } = useOsdkAggregation(objectType, histogramArgs);\n const nullCountAggregateOptions = useMemo(() => createNullCountAggregateOptions(), []);\n const nullWhereClause = useMemo(() => createNullWhereClause(propertyKey), [propertyKey]);\n const nullCountArgs = useMemo(() => ({\n where: nullWhereClause,\n aggregate: nullCountAggregateOptions,\n objectSet\n }), [nullWhereClause, nullCountAggregateOptions, objectSet]);\n const {\n data: nullCountData,\n isLoading: nullLoading\n } = useOsdkAggregation(objectType, nullCountArgs);\n const nullCount = useMemo(() => {\n if (!nullCountData) return 0;\n const result = nullCountData;\n if (\"$count\" in result && typeof result.$count === \"number\") {\n return result.$count;\n }\n return 0;\n }, [nullCountData]);\n return {\n aggregateData,\n histLoading,\n nullCount,\n nullLoading\n };\n}\nfunction LinkedNumberRangeInput({\n objectType,\n objectSet,\n propertyKey,\n minValue,\n maxValue,\n includeNull,\n onChange,\n onNullChange\n}) {\n const {\n aggregateData,\n histLoading,\n nullCount,\n nullLoading\n } = useLinkedRangeData(objectType, propertyKey, objectSet);\n const valueCountPairs = useMemo(() => {\n if (!aggregateData) return [];\n const dataArray = aggregateData;\n const pairs = [];\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey];\n if (rawValue != null) {\n const parsed = parseFloat(String(rawValue));\n if (!isNaN(parsed)) {\n pairs.push({\n value: parsed,\n count: item.$count ?? 0\n });\n }\n }\n }\n return pairs;\n }, [aggregateData, propertyKey]);\n return /*#__PURE__*/React.createElement(NullValueWrapper, {\n nullCount: nullCount,\n isLoading: nullLoading,\n includeNull: includeNull,\n onIncludeNullChange: onNullChange\n }, /*#__PURE__*/React.createElement(NumberRangeInput, {\n valueCountPairs: valueCountPairs,\n isLoading: histLoading,\n minValue: minValue,\n maxValue: maxValue,\n onChange: onChange\n }));\n}\nfunction LinkedDateRangeInput({\n objectType,\n objectSet,\n propertyKey,\n minValue,\n maxValue,\n includeNull,\n onChange,\n onNullChange\n}) {\n const {\n aggregateData,\n histLoading,\n nullCount,\n nullLoading\n } = useLinkedRangeData(objectType, propertyKey, objectSet);\n const valueCountPairs = useMemo(() => {\n if (!aggregateData) return [];\n const dataArray = aggregateData;\n const pairs = [];\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey];\n if (rawValue != null) {\n const date = new Date(String(rawValue));\n if (!isNaN(date.getTime())) {\n pairs.push({\n value: date,\n count: item.$count ?? 0\n });\n }\n }\n }\n return pairs;\n }, [aggregateData, propertyKey]);\n return /*#__PURE__*/React.createElement(NullValueWrapper, {\n nullCount: nullCount,\n isLoading: nullLoading,\n includeNull: includeNull,\n onIncludeNullChange: onNullChange\n }, /*#__PURE__*/React.createElement(DateRangeInput, {\n valueCountPairs: valueCountPairs,\n isLoading: histLoading,\n minValue: minValue,\n maxValue: maxValue,\n onChange: onChange\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.excludeDropdownContainer {\n display: flex;\n align-items: center;\n}\n\n.trigger {\n display: inline-flex;\n align-items: center;\n gap: calc(var(--osdk-surface-spacing) * 0.5);\n border: none;\n background: transparent;\n cursor: pointer;\n font-family: var(--osdk-filter-item-exclude-dropdown-font-family);\n font-size: var(--osdk-filter-item-exclude-dropdown-font-size);\n color: var(--osdk-filter-item-exclude-dropdown-trigger-color);\n padding: calc(var(--osdk-surface-spacing) * 1)\n calc(var(--osdk-surface-spacing) * 1);\n border-radius: var(--osdk-filter-item-exclude-dropdown-trigger-border-radius);\n\n &:hover {\n background: var(--osdk-filter-item-header-action-bg-hover);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid\n var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n}\n\n.triggerLabel {\n white-space: nowrap;\n}\n\n.positioner {\n z-index: var(--osdk-surface-z-index-3);\n}\n\n.popup {\n background: var(--osdk-filter-item-menu-bg);\n border: var(--osdk-filter-item-menu-border);\n border-radius: var(--osdk-filter-item-menu-border-radius);\n box-shadow: var(--osdk-filter-item-menu-shadow);\n padding: var(--osdk-filter-item-menu-padding);\n min-width: var(--osdk-filter-item-exclude-dropdown-min-width);\n}\n\n.menuItem {\n display: flex;\n align-items: center;\n gap: var(--osdk-surface-spacing);\n padding: var(--osdk-filter-item-menu-item-padding);\n font-family: var(--osdk-filter-item-menu-item-font-family);\n font-size: var(--osdk-filter-item-menu-item-font-size);\n color: var(--osdk-filter-item-menu-item-color);\n border-radius: var(--osdk-filter-item-menu-item-border-radius);\n cursor: pointer;\n border: none;\n background: transparent;\n width: 100%;\n text-align: left;\n\n &:hover,\n &[data-highlighted] {\n background: var(--osdk-filter-item-menu-item-bg-hover);\n }\n\n &:focus-visible {\n outline: var(--osdk-filter-input-focus-outline-width) solid\n var(--osdk-filter-input-focus-outline-color);\n outline-offset: var(--osdk-filter-input-focus-outline-offset);\n }\n}\n\n.menuItemCheck {\n display: flex;\n align-items: center;\n width: var(--osdk-filter-item-menu-check-size);\n flex-shrink: 0;\n}\n","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Menu } from \"@base-ui/react/menu\";\nimport React, { memo, useCallback } from \"react\";\nimport styles from \"./ExcludeDropdown.module.css\";\nimport { CheckIcon, ChevronDownIcon, ExcludeIcon } from \"./FilterIcons.js\";\nfunction ExcludeDropdownInner({\n isExcluding,\n onToggleExclude\n}) {\n const label = isExcluding ? \"Excluding\" : \"Keeping\";\n const handleSelectKeeping = useCallback(() => {\n if (isExcluding) {\n onToggleExclude();\n }\n }, [isExcluding, onToggleExclude]);\n const handleSelectExcluding = useCallback(() => {\n if (!isExcluding) {\n onToggleExclude();\n }\n }, [isExcluding, onToggleExclude]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.excludeDropdownContainer\n }, /*#__PURE__*/React.createElement(Menu.Root, null, /*#__PURE__*/React.createElement(Menu.Trigger, {\n className: styles.trigger,\n \"aria-label\": label,\n \"data-excluding\": isExcluding || undefined\n }, isExcluding && /*#__PURE__*/React.createElement(ExcludeIcon, null), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.triggerLabel\n }, label), /*#__PURE__*/React.createElement(ChevronDownIcon, null)), /*#__PURE__*/React.createElement(Menu.Portal, null, /*#__PURE__*/React.createElement(Menu.Positioner, {\n className: styles.positioner,\n sideOffset: 4\n }, /*#__PURE__*/React.createElement(Menu.Popup, {\n className: styles.popup\n }, /*#__PURE__*/React.createElement(Menu.Item, {\n className: styles.menuItem,\n onClick: handleSelectKeeping\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.menuItemCheck\n }, !isExcluding && /*#__PURE__*/React.createElement(CheckIcon, null)), \"Keeping\"), /*#__PURE__*/React.createElement(Menu.Item, {\n className: styles.menuItem,\n onClick: handleSelectExcluding\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.menuItemCheck\n }, isExcluding && /*#__PURE__*/React.createElement(CheckIcon, null)), \"Excluding\"))))));\n}\nexport const ExcludeDropdown = /*#__PURE__*/memo(ExcludeDropdownInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { supportsExcluding } from \"../utils/filterValues.js\";\nimport { ExcludeDropdown } from \"./ExcludeDropdown.js\";\nimport styles from \"./FilterListItem.module.css\";\nfunction getSelectedCount(filterState) {\n if (!filterState) return 0;\n if (filterState.type === \"EXACT_MATCH\") return filterState.values.length;\n if (filterState.type === \"SELECT\") return filterState.selectedValues.length;\n return 0;\n}\nfunction FilterInputExcludeRowInner({\n excludeRowOpen,\n filterState,\n onFilterStateChanged,\n totalValueCount,\n onClearAll,\n children\n}) {\n const handleToggleExclude = useCallback(() => {\n if (filterState) {\n onFilterStateChanged({\n ...filterState,\n isExcluding: !filterState.isExcluding\n });\n }\n }, [filterState, onFilterStateChanged]);\n const isExcluding = filterState?.isExcluding ?? false;\n const isOpen = excludeRowOpen ?? false;\n const selectedCount = useMemo(() => getSelectedCount(filterState), [filterState]);\n if (!supportsExcluding(filterState)) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, children);\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n \"data-exclude-row\": true,\n className: classnames(styles.excludeRow, {\n [styles.excludeRowVisible]: isOpen\n })\n }, /*#__PURE__*/React.createElement(ExcludeDropdown, {\n isExcluding: isExcluding,\n onToggleExclude: handleToggleExclude\n }), totalValueCount != null && totalValueCount > 0 && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.excludeCountLabel,\n title: \"Approximate count of unique values\"\n }, selectedCount.toLocaleString(), \" of\", \" \", totalValueCount.toLocaleString(), \" values\"), onClearAll && selectedCount > 0 && /*#__PURE__*/React.createElement(Button, {\n className: styles.clearAllButton,\n onClick: onClearAll\n }, \"Clear all\")), children);\n}\nexport const FilterInputExcludeRow = /*#__PURE__*/memo(FilterInputExcludeRowInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { ContainsTextInput } from \"../base/inputs/ContainsTextInput.js\";\nfunction ContainsTextFilterInputInner({\n propertyKey,\n filterState,\n onFilterStateChanged\n}) {\n const value = useMemo(() => filterState?.type === \"CONTAINS_TEXT\" ? filterState.value : undefined, [filterState]);\n const handleChange = useCallback(value => {\n onFilterStateChanged({\n type: \"CONTAINS_TEXT\",\n value\n });\n }, [onFilterStateChanged]);\n return /*#__PURE__*/React.createElement(ContainsTextInput, {\n value: value,\n onChange: handleChange,\n placeholder: \"Search...\"\n });\n}\nexport const ContainsTextFilterInput = /*#__PURE__*/memo(ContainsTextFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useOsdkAggregation } from \"@osdk/react\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { DateRangeInput } from \"../base/inputs/DateRangeInput.js\";\nimport { NullValueWrapper } from \"../base/inputs/NullValueWrapper.js\";\nimport { createGroupByAggregateOptions, createNullCountAggregateOptions, createNullWhereClause } from \"../utils/aggregationHelpers.js\";\nfunction DateRangeFilterInputInner({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause\n}) {\n const dateRangeState = filterState?.type === \"DATE_RANGE\" ? filterState : undefined;\n const includeNull = filterState?.includeNull;\n const handleNullChange = useCallback(includeNull => {\n onFilterStateChanged({\n type: \"DATE_RANGE\",\n minValue: dateRangeState?.minValue,\n maxValue: dateRangeState?.maxValue,\n includeNull\n });\n }, [onFilterStateChanged, dateRangeState?.minValue, dateRangeState?.maxValue]);\n const handleRangeChange = useCallback((minValue, maxValue) => {\n onFilterStateChanged({\n type: \"DATE_RANGE\",\n minValue,\n maxValue,\n includeNull\n });\n }, [onFilterStateChanged, includeNull]);\n const aggregateOptions = useMemo(() => createGroupByAggregateOptions(propertyKey), [propertyKey]);\n const histogramArgs = useMemo(() => ({\n aggregate: aggregateOptions,\n objectSet,\n where: whereClause\n }), [aggregateOptions, objectSet, whereClause]);\n const {\n data: aggregateData,\n isLoading: histLoading\n } = useOsdkAggregation(objectType, histogramArgs);\n const valueCountPairs = useMemo(() => {\n if (!aggregateData) return [];\n const dataArray = aggregateData;\n const pairs = [];\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey];\n if (rawValue != null) {\n const date = new Date(String(rawValue));\n if (!isNaN(date.getTime())) {\n pairs.push({\n value: date,\n count: item.$count ?? 0\n });\n }\n }\n }\n return pairs;\n }, [aggregateData, propertyKey]);\n const nullCountAggregateOptions = useMemo(() => createNullCountAggregateOptions(), []);\n\n // Combine null-check with cross-filter where clause so the null count\n // reflects the filtered dataset, not the full dataset\n const nullCountWhereClause = useMemo(() => ({\n $and: [createNullWhereClause(propertyKey), whereClause]\n }), [propertyKey, whereClause]);\n const nullCountArgs = useMemo(() => ({\n where: nullCountWhereClause,\n aggregate: nullCountAggregateOptions,\n objectSet\n }), [nullCountWhereClause, nullCountAggregateOptions, objectSet]);\n const {\n data: nullCountData,\n isLoading: nullLoading,\n error: nullError\n } = useOsdkAggregation(objectType, nullCountArgs);\n const nullCount = useMemo(() => {\n if (!nullCountData) return 0;\n const result = nullCountData;\n if (\"$count\" in result && typeof result.$count === \"number\") {\n return result.$count;\n }\n return 0;\n }, [nullCountData]);\n const isLoading = histLoading || nullLoading;\n return /*#__PURE__*/React.createElement(NullValueWrapper, {\n nullCount: nullCount,\n isLoading: isLoading,\n error: nullError,\n includeNull: includeNull,\n onIncludeNullChange: handleNullChange\n }, /*#__PURE__*/React.createElement(DateRangeInput, {\n valueCountPairs: valueCountPairs,\n isLoading: isLoading,\n minValue: dateRangeState?.minValue,\n maxValue: dateRangeState?.maxValue,\n onChange: handleRangeChange\n }));\n}\nexport const DateRangeFilterInput = /*#__PURE__*/memo(DateRangeFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { FilterInputExcludeRow } from \"../base/FilterInputExcludeRow.js\";\nimport { ListogramInput } from \"../base/inputs/ListogramInput.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToStringArray } from \"../utils/coerceFilterValue.js\";\nfunction ListogramFilterInputInner({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n colorMap,\n displayMode,\n showCount,\n maxVisibleItems,\n searchQuery,\n excludeRowOpen,\n renderValue\n}) {\n const selectedValues = useMemo(() => filterState?.type === \"EXACT_MATCH\" ? coerceToStringArray(filterState.values) : [], [filterState]);\n const isExcluding = filterState?.isExcluding ?? false;\n const handleClearAll = useCallback(() => {\n onFilterStateChanged({\n type: \"EXACT_MATCH\",\n values: [],\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n const handleChange = useCallback(values => {\n onFilterStateChanged({\n type: \"EXACT_MATCH\",\n values,\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n const sortBy = displayMode === \"minimal\" ? \"value\" : \"count\";\n const aggregationOptions = useMemo(() => ({\n where: whereClause,\n sortBy\n }), [whereClause, sortBy]);\n const {\n data,\n maxCount,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);\n return /*#__PURE__*/React.createElement(FilterInputExcludeRow, {\n excludeRowOpen: excludeRowOpen,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n totalValueCount: data.length,\n onClearAll: handleClearAll\n }, /*#__PURE__*/React.createElement(ListogramInput, {\n values: data,\n maxCount: maxCount,\n isLoading: isLoading,\n error: error,\n selectedValues: selectedValues,\n onChange: handleChange,\n colorMap: colorMap,\n displayMode: displayMode,\n showCount: showCount,\n isExcluding: isExcluding,\n maxVisibleItems: maxVisibleItems,\n searchQuery: searchQuery,\n renderValue: renderValue\n }));\n}\nexport const ListogramFilterInput = /*#__PURE__*/memo(ListogramFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { MultiDateInput } from \"../base/inputs/MultiDateInput.js\";\nfunction MultiDateFilterInputInner({\n filterState,\n onFilterStateChanged\n}) {\n const selectedDates = useMemo(() => filterState?.type === \"SELECT\" ? filterState.selectedValues.filter(v => v instanceof Date) : [], [filterState]);\n const isExcluding = filterState?.isExcluding ?? false;\n const handleChange = useCallback(selectedDates => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: selectedDates,\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n return /*#__PURE__*/React.createElement(MultiDateInput, {\n selectedDates: selectedDates,\n onChange: handleChange\n });\n}\nexport const MultiDateFilterInput = /*#__PURE__*/memo(MultiDateFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { FilterInputExcludeRow } from \"../base/FilterInputExcludeRow.js\";\nimport { MultiSelectInput } from \"../base/inputs/MultiSelectInput.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToStringArray } from \"../utils/coerceFilterValue.js\";\nfunction MultiSelectFilterInputInner({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n excludeRowOpen,\n renderValue,\n showCount\n}) {\n const selectedValues = useMemo(() => filterState?.type === \"SELECT\" ? coerceToStringArray(filterState.selectedValues) : [], [filterState]);\n const isExcluding = filterState?.isExcluding ?? false;\n const handleClearAll = useCallback(() => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: [],\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n const handleChange = useCallback(selectedValues => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues,\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n const aggregationOptions = useMemo(() => ({\n where: whereClause\n }), [whereClause]);\n const {\n data,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);\n return /*#__PURE__*/React.createElement(FilterInputExcludeRow, {\n excludeRowOpen: excludeRowOpen,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n totalValueCount: data.length,\n onClearAll: handleClearAll\n }, /*#__PURE__*/React.createElement(MultiSelectInput, {\n values: data,\n isLoading: isLoading,\n error: error,\n selectedValues: selectedValues,\n onChange: handleChange,\n showCounts: showCount,\n ariaLabel: `Search ${propertyKey} values`,\n renderValue: renderValue\n }));\n}\nexport const MultiSelectFilterInput = /*#__PURE__*/memo(MultiSelectFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useOsdkAggregation } from \"@osdk/react\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { NullValueWrapper } from \"../base/inputs/NullValueWrapper.js\";\nimport { NumberRangeInput } from \"../base/inputs/NumberRangeInput.js\";\nimport { createGroupByAggregateOptions, createNullCountAggregateOptions, createNullWhereClause } from \"../utils/aggregationHelpers.js\";\nfunction NumberRangeFilterInputInner({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause\n}) {\n const numberRangeState = filterState?.type === \"NUMBER_RANGE\" ? filterState : undefined;\n const includeNull = filterState?.includeNull;\n const handleNullChange = useCallback(includeNull => {\n onFilterStateChanged({\n type: \"NUMBER_RANGE\",\n minValue: numberRangeState?.minValue,\n maxValue: numberRangeState?.maxValue,\n includeNull\n });\n }, [onFilterStateChanged, numberRangeState?.minValue, numberRangeState?.maxValue]);\n const handleRangeChange = useCallback((minValue, maxValue) => {\n onFilterStateChanged({\n type: \"NUMBER_RANGE\",\n minValue,\n maxValue,\n includeNull\n });\n }, [onFilterStateChanged, includeNull]);\n const aggregateOptions = useMemo(() => createGroupByAggregateOptions(propertyKey), [propertyKey]);\n const histogramArgs = useMemo(() => ({\n aggregate: aggregateOptions,\n objectSet,\n where: whereClause\n }), [aggregateOptions, objectSet, whereClause]);\n const {\n data: aggregateData,\n isLoading: histLoading\n } = useOsdkAggregation(objectType, histogramArgs);\n const valueCountPairs = useMemo(() => {\n if (!aggregateData) return [];\n const dataArray = aggregateData;\n const pairs = [];\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey];\n if (rawValue != null) {\n const parsed = parseFloat(String(rawValue));\n if (!isNaN(parsed)) {\n pairs.push({\n value: parsed,\n count: item.$count ?? 0\n });\n }\n }\n }\n return pairs;\n }, [aggregateData, propertyKey]);\n const nullCountAggregateOptions = useMemo(() => createNullCountAggregateOptions(), []);\n\n // Combine null-check with cross-filter where clause so the null count\n // reflects the filtered dataset, not the full dataset\n const nullCountWhereClause = useMemo(() => ({\n $and: [createNullWhereClause(propertyKey), whereClause]\n }), [propertyKey, whereClause]);\n const nullCountArgs = useMemo(() => ({\n where: nullCountWhereClause,\n aggregate: nullCountAggregateOptions,\n objectSet\n }), [nullCountWhereClause, nullCountAggregateOptions, objectSet]);\n const {\n data: nullCountData,\n isLoading: nullLoading,\n error: nullError\n } = useOsdkAggregation(objectType, nullCountArgs);\n const nullCount = useMemo(() => {\n if (!nullCountData) return 0;\n const result = nullCountData;\n if (\"$count\" in result && typeof result.$count === \"number\") {\n return result.$count;\n }\n return 0;\n }, [nullCountData]);\n const isLoading = histLoading || nullLoading;\n return /*#__PURE__*/React.createElement(NullValueWrapper, {\n nullCount: nullCount,\n isLoading: isLoading,\n error: nullError,\n includeNull: includeNull,\n onIncludeNullChange: handleNullChange\n }, /*#__PURE__*/React.createElement(NumberRangeInput, {\n valueCountPairs: valueCountPairs,\n isLoading: isLoading,\n minValue: numberRangeState?.minValue,\n maxValue: numberRangeState?.maxValue,\n onChange: handleRangeChange\n }));\n}\nexport const NumberRangeFilterInput = /*#__PURE__*/memo(NumberRangeFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { SingleDateInput } from \"../base/inputs/SingleDateInput.js\";\nfunction SingleDateFilterInputInner({\n filterState,\n onFilterStateChanged\n}) {\n const selectedDate = useMemo(() => filterState?.type === \"SELECT\" ? filterState.selectedValues[0] instanceof Date ? filterState.selectedValues[0] : undefined : undefined, [filterState]);\n const isExcluding = filterState?.isExcluding ?? false;\n const handleChange = useCallback(selectedDate => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: selectedDate !== undefined ? [selectedDate] : [],\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n return /*#__PURE__*/React.createElement(SingleDateInput, {\n selectedDate: selectedDate,\n onChange: handleChange\n });\n}\nexport const SingleDateFilterInput = /*#__PURE__*/memo(SingleDateFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { FilterInputExcludeRow } from \"../base/FilterInputExcludeRow.js\";\nimport { SingleSelectInput } from \"../base/inputs/SingleSelectInput.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToString } from \"../utils/coerceFilterValue.js\";\nfunction SingleSelectFilterInputInner({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n excludeRowOpen,\n renderValue,\n showCount\n}) {\n const selectedValue = useMemo(() => filterState?.type === \"SELECT\" ? coerceToString(filterState.selectedValues[0]) : undefined, [filterState]);\n const isExcluding = filterState?.isExcluding ?? false;\n const handleClearAll = useCallback(() => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: [],\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n const handleChange = useCallback(value => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: value !== undefined ? [value] : [],\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n const aggregationOptions = useMemo(() => ({\n where: whereClause\n }), [whereClause]);\n const {\n data,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);\n return /*#__PURE__*/React.createElement(FilterInputExcludeRow, {\n excludeRowOpen: excludeRowOpen,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n totalValueCount: data.length,\n onClearAll: handleClearAll\n }, /*#__PURE__*/React.createElement(SingleSelectInput, {\n values: data,\n isLoading: isLoading,\n error: error,\n selectedValue: selectedValue,\n onChange: handleChange,\n showCounts: showCount,\n ariaLabel: `Select ${propertyKey}`,\n renderValue: renderValue\n }));\n}\nexport const SingleSelectFilterInput = /*#__PURE__*/memo(SingleSelectFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { FilterInputExcludeRow } from \"../base/FilterInputExcludeRow.js\";\nimport { TextTagsInput } from \"../base/inputs/TextTagsInput.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToStringArray } from \"../utils/coerceFilterValue.js\";\nfunction TextTagsFilterInputInner({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n excludeRowOpen\n}) {\n const tags = useMemo(() => filterState?.type === \"EXACT_MATCH\" ? coerceToStringArray(filterState.values) : [], [filterState]);\n const isExcluding = filterState?.isExcluding ?? false;\n const handleClearAll = useCallback(() => {\n onFilterStateChanged({\n type: \"EXACT_MATCH\",\n values: [],\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n const handleChange = useCallback(values => {\n onFilterStateChanged({\n type: \"EXACT_MATCH\",\n values,\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n const aggregationOptions = useMemo(() => ({\n where: whereClause\n }), [whereClause]);\n const {\n data,\n isLoading,\n error\n } = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);\n return /*#__PURE__*/React.createElement(FilterInputExcludeRow, {\n excludeRowOpen: excludeRowOpen,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n totalValueCount: data.length,\n onClearAll: handleClearAll\n }, /*#__PURE__*/React.createElement(TextTagsInput, {\n suggestions: data,\n isLoading: isLoading,\n error: error,\n tags: tags,\n onChange: handleChange\n }));\n}\nexport const TextTagsFilterInput = /*#__PURE__*/memo(TextTagsFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { TimelineInput } from \"../base/inputs/TimelineInput.js\";\nfunction TimelineFilterInputInner({\n filterState,\n onFilterStateChanged\n}) {\n const {\n startDate,\n endDate\n } = useMemo(() => filterState?.type === \"TIMELINE\" ? {\n startDate: filterState.startDate,\n endDate: filterState.endDate\n } : {\n startDate: undefined,\n endDate: undefined\n }, [filterState]);\n const isExcluding = filterState?.isExcluding ?? false;\n const handleChange = useCallback((startDate, endDate) => {\n onFilterStateChanged({\n type: \"TIMELINE\",\n startDate,\n endDate,\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n return /*#__PURE__*/React.createElement(TimelineInput, {\n startDate: startDate,\n endDate: endDate,\n onChange: handleChange\n });\n}\nexport const TimelineFilterInput = /*#__PURE__*/memo(TimelineFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback } from \"react\";\nimport { ToggleInput } from \"../base/inputs/ToggleInput.js\";\nfunction ToggleFilterInputInner({\n filterState,\n onFilterStateChanged\n}) {\n const enabled = filterState?.type === \"TOGGLE\" ? filterState.enabled : false;\n const handleChange = useCallback(enabled => {\n onFilterStateChanged({\n type: \"TOGGLE\",\n enabled\n });\n }, [onFilterStateChanged]);\n return /*#__PURE__*/React.createElement(ToggleInput, {\n enabled: enabled,\n onChange: handleChange\n });\n}\nexport const ToggleFilterInput = /*#__PURE__*/memo(ToggleFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo } from \"react\";\nimport { FilterInputExcludeRow } from \"../base/FilterInputExcludeRow.js\";\nimport { ContainsTextFilterInput } from \"./ContainsTextFilterInput.js\";\nimport { DateRangeFilterInput } from \"./DateRangeFilterInput.js\";\nimport { ListogramFilterInput } from \"./ListogramFilterInput.js\";\nimport { MultiDateFilterInput } from \"./MultiDateFilterInput.js\";\nimport { MultiSelectFilterInput } from \"./MultiSelectFilterInput.js\";\nimport { NumberRangeFilterInput } from \"./NumberRangeFilterInput.js\";\nimport { SingleDateFilterInput } from \"./SingleDateFilterInput.js\";\nimport { SingleSelectFilterInput } from \"./SingleSelectFilterInput.js\";\nimport { TextTagsFilterInput } from \"./TextTagsFilterInput.js\";\nimport { TimelineFilterInput } from \"./TimelineFilterInput.js\";\nimport { ToggleFilterInput } from \"./ToggleFilterInput.js\";\nfunction PropertyFilterInputInner({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n searchQuery,\n excludeRowOpen\n}) {\n switch (definition.filterComponent) {\n case \"CONTAINS_TEXT\":\n return /*#__PURE__*/React.createElement(FilterInputExcludeRow, {\n excludeRowOpen: excludeRowOpen,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n }, /*#__PURE__*/React.createElement(ContainsTextFilterInput, {\n propertyKey: definition.key,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n }));\n case \"TOGGLE\":\n return /*#__PURE__*/React.createElement(ToggleFilterInput, {\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n });\n case \"NUMBER_RANGE\":\n return /*#__PURE__*/React.createElement(NumberRangeFilterInput, {\n objectType: objectType,\n objectSet: objectSet,\n propertyKey: definition.key,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: whereClause\n });\n case \"DATE_RANGE\":\n return /*#__PURE__*/React.createElement(DateRangeFilterInput, {\n objectType: objectType,\n objectSet: objectSet,\n propertyKey: definition.key,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: whereClause\n });\n case \"SINGLE_SELECT\":\n return /*#__PURE__*/React.createElement(SingleSelectFilterInput, {\n objectType: objectType,\n objectSet: objectSet,\n propertyKey: definition.key,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: whereClause,\n excludeRowOpen: excludeRowOpen,\n renderValue: definition.renderValue,\n showCount: definition.showCount\n });\n case \"MULTI_SELECT\":\n return /*#__PURE__*/React.createElement(MultiSelectFilterInput, {\n objectType: objectType,\n objectSet: objectSet,\n propertyKey: definition.key,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: whereClause,\n excludeRowOpen: excludeRowOpen,\n renderValue: definition.renderValue,\n showCount: definition.showCount\n });\n case \"SINGLE_DATE\":\n return /*#__PURE__*/React.createElement(SingleDateFilterInput, {\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n });\n case \"MULTI_DATE\":\n return /*#__PURE__*/React.createElement(MultiDateFilterInput, {\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n });\n case \"LISTOGRAM\":\n return /*#__PURE__*/React.createElement(ListogramFilterInput, {\n objectType: objectType,\n objectSet: objectSet,\n propertyKey: definition.key,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: whereClause,\n colorMap: definition.colorMap,\n displayMode: definition.listogramConfig?.displayMode,\n showCount: definition.showCount,\n maxVisibleItems: definition.listogramConfig?.maxVisibleItems ?? 5,\n searchQuery: searchQuery,\n excludeRowOpen: excludeRowOpen,\n renderValue: definition.renderValue\n });\n case \"TEXT_TAGS\":\n return /*#__PURE__*/React.createElement(TextTagsFilterInput, {\n objectType: objectType,\n objectSet: objectSet,\n propertyKey: definition.key,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: whereClause,\n excludeRowOpen: excludeRowOpen\n });\n case \"TIMELINE\":\n return /*#__PURE__*/React.createElement(FilterInputExcludeRow, {\n excludeRowOpen: excludeRowOpen,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n }, /*#__PURE__*/React.createElement(TimelineFilterInput, {\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n }));\n default:\n return /*#__PURE__*/React.createElement(\"div\", {\n \"data-unsupported\": \"true\"\n }, \"Unsupported filter component: \", definition.filterComponent);\n }\n}\nexport const PropertyFilterInput = /*#__PURE__*/memo(PropertyFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport { FilterInputExcludeRow } from \"../base/FilterInputExcludeRow.js\";\nimport { ListogramInput } from \"../base/inputs/ListogramInput.js\";\nimport { MultiSelectInput } from \"../base/inputs/MultiSelectInput.js\";\nimport { SingleSelectInput } from \"../base/inputs/SingleSelectInput.js\";\nimport { TextTagsInput } from \"../base/inputs/TextTagsInput.js\";\nimport { coerceToString, coerceToStringArray } from \"../utils/coerceFilterValue.js\";\n/**\n * Hooks for EXACT_MATCH state management (used by LISTOGRAM and TEXT_TAGS).\n */\nfunction useExactMatchState(filterState, onFilterStateChanged, isExcluding) {\n const selectedValues = useMemo(() => filterState?.type === \"EXACT_MATCH\" ? coerceToStringArray(filterState.values) : [], [filterState]);\n const handleClearAll = useCallback(() => {\n onFilterStateChanged({\n type: \"EXACT_MATCH\",\n values: [],\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n const handleChange = useCallback(values => {\n onFilterStateChanged({\n type: \"EXACT_MATCH\",\n values,\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n return {\n selectedValues,\n handleClearAll,\n handleChange\n };\n}\n\n/**\n * Hooks for SELECT state management (used by SINGLE_SELECT and MULTI_SELECT).\n */\nfunction useSelectState(filterState, onFilterStateChanged, isExcluding) {\n const selectedValue = useMemo(() => filterState?.type === \"SELECT\" ? coerceToString(filterState.selectedValues[0]) : undefined, [filterState]);\n const selectedValues = useMemo(() => filterState?.type === \"SELECT\" ? coerceToStringArray(filterState.selectedValues) : [], [filterState]);\n const handleClearAll = useCallback(() => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: [],\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n const handleSingleChange = useCallback(value => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: value !== undefined ? [value] : [],\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n const handleMultiChange = useCallback(selectedValues => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues,\n isExcluding\n });\n }, [onFilterStateChanged, isExcluding]);\n return {\n selectedValue,\n selectedValues,\n handleClearAll,\n handleSingleChange,\n handleMultiChange\n };\n}\nfunction StaticValuesFilterInputInner({\n definition,\n filterState,\n onFilterStateChanged,\n searchQuery,\n excludeRowOpen\n}) {\n const aggregationValues = useMemo(() => definition.values.map(value => ({\n value,\n count: 0\n })), [definition.values]);\n const isExcluding = filterState?.isExcluding ?? false;\n const exactMatch = useExactMatchState(filterState, onFilterStateChanged, isExcluding);\n const select = useSelectState(filterState, onFilterStateChanged, isExcluding);\n switch (definition.filterComponent) {\n case \"LISTOGRAM\":\n return /*#__PURE__*/React.createElement(FilterInputExcludeRow, {\n excludeRowOpen: excludeRowOpen,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n totalValueCount: aggregationValues.length,\n onClearAll: exactMatch.handleClearAll\n }, /*#__PURE__*/React.createElement(ListogramInput, {\n values: aggregationValues,\n maxCount: 0,\n isLoading: false,\n error: null,\n selectedValues: exactMatch.selectedValues,\n onChange: exactMatch.handleChange,\n colorMap: definition.colorMap,\n displayMode: definition.listogramConfig?.displayMode,\n showCount: definition.showCount,\n isExcluding: isExcluding,\n maxVisibleItems: definition.listogramConfig?.maxVisibleItems ?? 5,\n searchQuery: searchQuery,\n renderValue: definition.renderValue\n }));\n case \"SINGLE_SELECT\":\n return /*#__PURE__*/React.createElement(FilterInputExcludeRow, {\n excludeRowOpen: excludeRowOpen,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n totalValueCount: aggregationValues.length,\n onClearAll: select.handleClearAll\n }, /*#__PURE__*/React.createElement(SingleSelectInput, {\n values: aggregationValues,\n isLoading: false,\n error: null,\n selectedValue: select.selectedValue,\n onChange: select.handleSingleChange,\n showCounts: definition.showCount,\n ariaLabel: `Select ${definition.key}`,\n renderValue: definition.renderValue\n }));\n case \"MULTI_SELECT\":\n return /*#__PURE__*/React.createElement(FilterInputExcludeRow, {\n excludeRowOpen: excludeRowOpen,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n totalValueCount: aggregationValues.length,\n onClearAll: select.handleClearAll\n }, /*#__PURE__*/React.createElement(MultiSelectInput, {\n values: aggregationValues,\n isLoading: false,\n error: null,\n selectedValues: select.selectedValues,\n onChange: select.handleMultiChange,\n showCounts: definition.showCount,\n ariaLabel: `Search ${definition.key} values`,\n renderValue: definition.renderValue\n }));\n case \"TEXT_TAGS\":\n return /*#__PURE__*/React.createElement(FilterInputExcludeRow, {\n excludeRowOpen: excludeRowOpen,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n totalValueCount: aggregationValues.length,\n onClearAll: exactMatch.handleClearAll\n }, /*#__PURE__*/React.createElement(TextTagsInput, {\n suggestions: aggregationValues,\n isLoading: false,\n error: null,\n tags: exactMatch.selectedValues,\n onChange: exactMatch.handleChange\n }));\n default:\n return assertUnreachable(definition.filterComponent);\n }\n}\nexport const StaticValuesFilterInput = /*#__PURE__*/memo(StaticValuesFilterInputInner);","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { memo, useCallback } from \"react\";\nimport { ContainsTextInput } from \"./base/inputs/ContainsTextInput.js\";\nimport { ToggleInput } from \"./base/inputs/ToggleInput.js\";\nimport { LinkedPropertyInput } from \"./inputs/LinkedPropertyInput.js\";\nimport { PropertyFilterInput } from \"./inputs/PropertyFilterInput.js\";\nimport { StaticValuesFilterInput } from \"./inputs/StaticValuesFilterInput.js\";\nfunction FilterInputInner({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n searchQuery,\n excludeRowOpen\n}) {\n return /*#__PURE__*/React.createElement(FilterInputContent, {\n objectType: objectType,\n objectSet: objectSet,\n definition: definition,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: whereClause,\n searchQuery: searchQuery,\n excludeRowOpen: excludeRowOpen\n });\n}\nexport const FilterInput = /*#__PURE__*/memo(FilterInputInner);\nfunction FilterInputContent({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n searchQuery,\n excludeRowOpen\n}) {\n switch (definition.type) {\n case \"HAS_LINK\":\n return /*#__PURE__*/React.createElement(HasLinkInput, {\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged\n });\n case \"LINKED_PROPERTY\":\n {\n if (objectSet == null) {\n return /*#__PURE__*/React.createElement(React.Fragment, null);\n }\n return /*#__PURE__*/React.createElement(LinkedPropertyInput, {\n objectSet: objectSet,\n definition: definition,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n searchQuery: searchQuery\n });\n }\n case \"KEYWORD_SEARCH\":\n return /*#__PURE__*/React.createElement(KeywordSearchInput, {\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n placeholder: definition.label ?? \"Search...\"\n });\n case \"CUSTOM\":\n {\n if (!definition.renderInput) {\n return /*#__PURE__*/React.createElement(\"div\", {\n \"data-unsupported\": \"true\"\n }, \"Custom filter missing renderInput\");\n }\n const customFilterState = filterState?.type === \"custom\" ? filterState : definition.filterState;\n return /*#__PURE__*/React.createElement(React.Fragment, null, definition.renderInput({\n objectType,\n objectSet,\n filterState: customFilterState,\n onFilterStateChanged: state => onFilterStateChanged(state)\n }));\n }\n case \"PROPERTY\":\n return /*#__PURE__*/React.createElement(PropertyFilterInput, {\n objectType: objectType,\n objectSet: objectSet,\n definition: definition,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: whereClause,\n searchQuery: searchQuery,\n excludeRowOpen: excludeRowOpen\n });\n case \"STATIC_VALUES\":\n return /*#__PURE__*/React.createElement(StaticValuesFilterInput, {\n definition: definition,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n searchQuery: searchQuery,\n excludeRowOpen: excludeRowOpen\n });\n default:\n return /*#__PURE__*/React.createElement(\"div\", {\n \"data-unsupported\": \"true\"\n }, \"Unsupported filter type\");\n }\n}\nconst HasLinkInput = /*#__PURE__*/memo(function HasLinkInput({\n filterState,\n onFilterStateChanged\n}) {\n const hasLink = filterState?.type === \"hasLink\" ? filterState.hasLink : false;\n const handleChange = useCallback(hasLink => {\n onFilterStateChanged({\n type: \"hasLink\",\n hasLink\n });\n }, [onFilterStateChanged]);\n return /*#__PURE__*/React.createElement(ToggleInput, {\n enabled: hasLink,\n onChange: handleChange\n });\n});\nconst KeywordSearchInput = /*#__PURE__*/memo(function KeywordSearchInput({\n filterState,\n onFilterStateChanged,\n placeholder\n}) {\n const searchTerm = filterState?.type === \"keywordSearch\" ? filterState.searchTerm : undefined;\n const operator = filterState?.type === \"keywordSearch\" ? filterState.operator : \"AND\";\n const handleChange = useCallback(newSearchTerm => {\n onFilterStateChanged({\n type: \"keywordSearch\",\n searchTerm: newSearchTerm ?? \"\",\n operator\n });\n }, [onFilterStateChanged, operator]);\n return /*#__PURE__*/React.createElement(ContainsTextInput, {\n value: searchTerm,\n onChange: handleChange,\n placeholder: placeholder\n });\n});","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nexport function getFilterKey(definition) {\n switch (definition.type) {\n case \"PROPERTY\":\n return definition.id ?? definition.key;\n case \"HAS_LINK\":\n return definition.id ?? `hasLink:${definition.linkName}`;\n case \"LINKED_PROPERTY\":\n return definition.id ?? `linkedProperty:${definition.linkName}:${definition.linkedPropertyKey}`;\n case \"KEYWORD_SEARCH\":\n return definition.id ?? `keywordSearch-${Array.isArray(definition.properties) ? definition.properties.join(\"-\") : \"all\"}`;\n case \"CUSTOM\":\n return definition.id ?? definition.key;\n case \"STATIC_VALUES\":\n return definition.id ?? definition.key;\n default:\n return assertUnreachable(definition);\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport { formatDateForInput } from \"../../shared/dateUtils.js\";\nimport { getFilterKey } from \"./getFilterKey.js\";\nfunction isCompoundFilter(f) {\n return typeof f === \"object\" && f != null && \"__compound\" in f;\n}\nconst NUMERIC_BOUNDS = {\n byte: {\n min: -128,\n max: 127\n },\n short: {\n min: -32_768,\n max: 32_767\n },\n integer: {\n min: -2_147_483_648,\n max: 2_147_483_647\n },\n long: {\n min: Number.MIN_SAFE_INTEGER,\n max: Number.MAX_SAFE_INTEGER\n }\n};\nfunction clampToPropertyBounds(value, propertyType) {\n if (propertyType === undefined) {\n return value;\n }\n const bounds = NUMERIC_BOUNDS[propertyType];\n if (bounds === undefined) {\n return value;\n }\n return Math.max(bounds.min, Math.min(bounds.max, value));\n}\nfunction formatDateValue(date, propertyType) {\n if (propertyType === \"datetime\") {\n return formatDateForInput(date);\n }\n return date.toISOString();\n}\nfunction filterStateToPropertyFilter(state, propertyType) {\n switch (state.type) {\n case \"CONTAINS_TEXT\":\n {\n if (!state.value) {\n return undefined;\n }\n return {\n $containsAnyTerm: state.value\n };\n }\n case \"TOGGLE\":\n {\n return state.enabled;\n }\n case \"DATE_RANGE\":\n {\n const conditions = [];\n if (state.minValue !== undefined) {\n conditions.push({\n $gte: formatDateValue(state.minValue, propertyType)\n });\n }\n if (state.maxValue !== undefined) {\n conditions.push({\n $lte: formatDateValue(state.maxValue, propertyType)\n });\n }\n if (conditions.length === 0 && !state.includeNull) {\n return undefined;\n }\n if (conditions.length === 0 && state.includeNull) {\n return {\n $isNull: true\n };\n }\n if (conditions.length === 1 && !state.includeNull) {\n return conditions[0];\n }\n return {\n __compound: true,\n conditions,\n includeNull: state.includeNull ?? false\n };\n }\n case \"NUMBER_RANGE\":\n {\n const conditions = [];\n if (state.minValue !== undefined) {\n conditions.push({\n $gte: clampToPropertyBounds(state.minValue, propertyType)\n });\n }\n if (state.maxValue !== undefined) {\n conditions.push({\n $lte: clampToPropertyBounds(state.maxValue, propertyType)\n });\n }\n if (conditions.length === 0 && !state.includeNull) {\n return undefined;\n }\n if (conditions.length === 0 && state.includeNull) {\n return {\n $isNull: true\n };\n }\n if (conditions.length === 1 && !state.includeNull) {\n return conditions[0];\n }\n return {\n __compound: true,\n conditions,\n includeNull: state.includeNull ?? false\n };\n }\n case \"EXACT_MATCH\":\n {\n return buildValueOrNullFilter(state.values);\n }\n case \"SELECT\":\n {\n if (state.selectedValues.length === 0) {\n return undefined;\n }\n const values = state.selectedValues.map(v => v instanceof Date ? formatDateValue(v, propertyType) : v);\n return buildValueOrNullFilter(values);\n }\n case \"TIMELINE\":\n {\n const conditions = [];\n if (state.startDate !== undefined) {\n conditions.push({\n $gte: formatDateValue(state.startDate, propertyType)\n });\n }\n if (state.endDate !== undefined) {\n conditions.push({\n $lte: formatDateValue(state.endDate, propertyType)\n });\n }\n if (conditions.length === 0) {\n return undefined;\n }\n if (conditions.length === 1) {\n return conditions[0];\n }\n return {\n __compound: true,\n conditions,\n includeNull: false\n };\n }\n\n // These filter types are handled separately in buildWhereClause\n // since they need access to the full definition, not just state\n case \"hasLink\":\n case \"linkedProperty\":\n case \"keywordSearch\":\n case \"custom\":\n return undefined;\n default:\n return assertUnreachable(state);\n }\n}\n\n/**\n * Builds a WhereClause from filter definitions and their current states.\n *\n * The filterStates map uses string keys derived from filter definitions via\n * getFilterKey(). This ensures stable state lookups even when filters are\n * reordered or definition object references change.\n *\n * Note: The `as WhereClause<Q>` casts are necessary because we're building\n * clauses dynamically from property keys determined at runtime. TypeScript\n * cannot verify that the constructed clause structure matches the generic Q's\n * expected shape, but the structure is guaranteed to be valid by construction.\n */\n/**\n * Builds a WHERE clause fragment for a single property key from filter state.\n * Shared by PROPERTY and STATIC_VALUES filter types.\n */\nfunction buildPropertyKeyClause(key, state, propertyType) {\n const filter = filterStateToPropertyFilter(state, propertyType);\n if (filter === undefined) {\n return undefined;\n }\n const isExcluding = \"isExcluding\" in state && state.isExcluding;\n if (isCompoundFilter(filter)) {\n const fieldClauses = filter.conditions.map(c => ({\n [key]: c\n }));\n let rangeClause = fieldClauses.length === 1 ? fieldClauses[0] : {\n $and: fieldClauses\n };\n if (filter.includeNull) {\n rangeClause = {\n $or: [rangeClause, {\n [key]: {\n $isNull: true\n }\n }]\n };\n }\n return isExcluding ? {\n $not: rangeClause\n } : rangeClause;\n } else {\n const clause = {\n [key]: filter\n };\n return isExcluding ? {\n $not: clause\n } : clause;\n }\n}\nexport function buildWhereClause(definitions, filterStates, propertyTypes, excludeFilterKey) {\n if (!definitions || definitions.length === 0) {\n return {};\n }\n const clauses = [];\n for (const definition of definitions) {\n const key = getFilterKey(definition);\n if (key === excludeFilterKey) {\n continue;\n }\n const state = filterStates.get(key);\n if (!state) {\n continue;\n }\n switch (definition.type) {\n case \"PROPERTY\":\n {\n const propertyType = propertyTypes?.get(definition.key)?.type;\n const clause = buildPropertyKeyClause(definition.key, state, propertyType);\n if (clause !== undefined) {\n clauses.push(clause);\n }\n break;\n }\n case \"HAS_LINK\":\n {\n if (state.type !== \"hasLink\") {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(`[FilterList] State type mismatch for hasLink filter \"${definition.linkName}\": expected hasLink, got ${state.type}`);\n }\n break;\n }\n if (!state.hasLink) {\n break;\n }\n clauses.push({\n [definition.linkName]: {\n $isNotNull: true\n }\n });\n break;\n }\n case \"LINKED_PROPERTY\":\n {\n // OSDK WhereClause does not support filtering through links.\n // Link-based filtering requires ObjectSet operations (pivotTo/intersect).\n // LinkedProperty filters render UI for selection but cannot be included\n // in the where clause. Consumers needing linked property filtering must\n // implement it using ObjectSet.pivotTo() and intersect().\n break;\n }\n case \"KEYWORD_SEARCH\":\n {\n if (state.type !== \"keywordSearch\") {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(`[FilterList] State type mismatch for keywordSearch filter: expected keywordSearch, got ${state.type}`);\n }\n break;\n }\n if (!state.searchTerm) {\n break;\n }\n // TypeScript narrows state to KeywordSearchFilterState\n const searchTerm = state.searchTerm.trim();\n if (!searchTerm) {\n break;\n }\n const properties = definition.properties;\n let propertiesToSearch;\n if (properties === \"all\") {\n if (propertyTypes && propertyTypes.size > 0) {\n propertiesToSearch = [];\n for (const [key, info] of propertyTypes) {\n if (info.type === \"string\" && !info.multiplicity) {\n propertiesToSearch.push(key);\n }\n }\n } else {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"[FilterList] Keyword search with properties: 'all' requires propertyTypes to be provided. Filter will be skipped.\");\n }\n break;\n }\n } else {\n propertiesToSearch = properties;\n }\n if (propertiesToSearch.length === 0) {\n break;\n }\n const containsOp = state.operator === \"AND\" ? \"$containsAllTerms\" : \"$containsAnyTerm\";\n const propertySearches = propertiesToSearch.map(prop => ({\n [prop]: {\n [containsOp]: searchTerm\n }\n }));\n let searchClause;\n if (propertySearches.length === 1) {\n searchClause = propertySearches[0];\n } else {\n searchClause = {\n $or: propertySearches\n };\n }\n clauses.push(state.isExcluding ? {\n $not: searchClause\n } : searchClause);\n break;\n }\n case \"CUSTOM\":\n {\n if (state.type !== \"custom\") {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(`[FilterList] State type mismatch for custom filter \"${definition.key}\": expected custom, got ${state.type}`);\n }\n break;\n }\n // TypeScript narrows state to CustomFilterState\n const customClause = definition.toWhereClause(state);\n if (customClause && Object.keys(customClause).length > 0) {\n clauses.push(customClause);\n }\n break;\n }\n case \"STATIC_VALUES\":\n {\n if (definition.toWhereClause) {\n const staticClause = definition.toWhereClause(state);\n if (staticClause && Object.keys(staticClause).length > 0) {\n clauses.push(staticClause);\n }\n } else {\n const clause = buildPropertyKeyClause(definition.key, state);\n if (clause !== undefined) {\n clauses.push(clause);\n }\n }\n break;\n }\n default:\n assertUnreachable(definition);\n }\n }\n if (clauses.length === 0) {\n return {};\n }\n if (clauses.length === 1) {\n return clauses[0];\n }\n return {\n $and: clauses\n };\n}\n\n/** Splits values into non-empty and empty, returning $isNull for empty strings. */\nfunction buildValueOrNullFilter(values) {\n if (values.length === 0) {\n return undefined;\n }\n const nonEmpty = values.filter(v => v !== \"\");\n const hasEmpty = nonEmpty.length < values.length;\n const valueClause = nonEmpty.length === 0 ? undefined : nonEmpty.length === 1 ? nonEmpty[0] : {\n $in: nonEmpty\n };\n if (!hasEmpty) {\n return valueClause;\n }\n if (valueClause === undefined) {\n return {\n $isNull: true\n };\n }\n return {\n __compound: true,\n conditions: [valueClause],\n includeNull: true\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useOsdkMetadata } from \"@osdk/react\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport { buildWhereClause } from \"../utils/filterStateToWhereClause.js\";\nimport { filterHasActiveState } from \"../utils/filterValues.js\";\nimport { getFilterKey } from \"../utils/getFilterKey.js\";\n/**\n * Build initial states from filter definitions.\n * Uses string keys derived from getFilterKey() for stable lookups.\n */\nfunction buildInitialStates(definitions) {\n const states = new Map();\n if (!definitions) {\n return states;\n }\n for (const definition of definitions) {\n const key = getFilterKey(definition);\n switch (definition.type) {\n case \"PROPERTY\":\n {\n const state = definition.filterState;\n if (state) {\n states.set(key, state);\n }\n break;\n }\n case \"HAS_LINK\":\n case \"KEYWORD_SEARCH\":\n case \"CUSTOM\":\n {\n const state = definition.defaultFilterState;\n if (state) {\n states.set(key, state);\n }\n break;\n }\n case \"STATIC_VALUES\":\n {\n const state = definition.filterState;\n if (state) {\n states.set(key, state);\n }\n break;\n }\n case \"LINKED_PROPERTY\":\n {\n const innerState = definition.defaultLinkedFilterState;\n if (innerState) {\n const state = {\n type: \"linkedProperty\",\n linkedFilterState: innerState\n };\n states.set(key, state);\n }\n break;\n }\n default:\n assertUnreachable(definition);\n }\n }\n return states;\n}\nexport function useFilterListState(props) {\n const {\n objectType,\n filterDefinitions,\n onFilterStateChanged,\n onFilterClauseChanged,\n initialFilterStates\n } = props;\n const {\n metadata\n } = useOsdkMetadata(objectType);\n const onFilterClauseChangedRef = useRef(onFilterClauseChanged);\n onFilterClauseChangedRef.current = onFilterClauseChanged;\n const propertyTypes = useMemo(() => {\n const map = new Map();\n if (metadata?.properties) {\n for (const [key, prop] of Object.entries(metadata.properties)) {\n if (typeof prop.type === \"string\") {\n map.set(key, {\n type: prop.type,\n multiplicity: prop.multiplicity === true\n });\n }\n }\n }\n return map;\n }, [metadata?.properties]);\n const [filterStates, setFilterStates] = useState(() => {\n const states = buildInitialStates(filterDefinitions);\n if (initialFilterStates) {\n for (const [key, state] of initialFilterStates) {\n states.set(key, state);\n }\n }\n return states;\n });\n const setFilterState = useCallback((filterKey, state) => {\n setFilterStates(prev => {\n const next = new Map(prev);\n next.set(filterKey, state);\n return next;\n });\n const definition = filterDefinitions?.find(d => getFilterKey(d) === filterKey);\n if (definition) {\n onFilterStateChanged?.(definition, state);\n }\n }, [filterDefinitions, onFilterStateChanged]);\n const clearFilterState = useCallback(filterKey => {\n setFilterStates(prev => {\n const next = new Map(prev);\n next.delete(filterKey);\n return next;\n });\n }, []);\n const whereClause = useMemo(() => buildWhereClause(filterDefinitions, filterStates, propertyTypes), [filterDefinitions, filterStates, propertyTypes]);\n useEffect(() => {\n onFilterClauseChangedRef.current?.(whereClause);\n }, [whereClause]);\n const perFilterWhereClauses = useMemo(() => {\n const map = new Map();\n if (!filterDefinitions) {\n return map;\n }\n for (const definition of filterDefinitions) {\n const key = getFilterKey(definition);\n map.set(key, buildWhereClause(filterDefinitions, filterStates, propertyTypes, key));\n }\n return map;\n }, [filterDefinitions, filterStates, propertyTypes]);\n const activeFilterCount = useMemo(() => {\n let count = 0;\n for (const state of filterStates.values()) {\n if (filterHasActiveState(state)) {\n count++;\n }\n }\n return count;\n }, [filterStates]);\n const reset = useCallback(() => {\n setFilterStates(buildInitialStates(filterDefinitions));\n }, [filterDefinitions]);\n return useMemo(() => ({\n filterStates,\n setFilterState,\n clearFilterState,\n whereClause,\n perFilterWhereClauses,\n activeFilterCount,\n reset\n }), [filterStates, setFilterState, clearFilterState, whereClause, perFilterWhereClauses, activeFilterCount, reset]);\n}","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { getFilterKey } from \"../utils/getFilterKey.js\";\nexport function useFilterVisibility(filterDefinitions, onVisibilityChange) {\n const allKeys = useMemo(() => filterDefinitions?.map(getFilterKey) ?? [], [filterDefinitions]);\n const defaultVisibleKeyOrder = useMemo(() => filterDefinitions?.filter(def => def.isVisible !== false).map(getFilterKey) ?? [], [filterDefinitions]);\n const [visibleKeyOrder, setVisibleKeyOrder] = useState(() => defaultVisibleKeyOrder);\n\n // Sync state when filterDefinitions changes\n useEffect(() => {\n setVisibleKeyOrder(defaultVisibleKeyOrder);\n }, [defaultVisibleKeyOrder]);\n\n // Keep a ref to onVisibilityChange so callbacks don't need it as a dependency\n const onVisibilityChangeRef = useRef(onVisibilityChange);\n onVisibilityChangeRef.current = onVisibilityChange;\n const fireVisibilityChange = useCallback(nextVisibleKeyOrder => {\n if (!onVisibilityChangeRef.current) return;\n const visibleSet = new Set(nextVisibleKeyOrder);\n const hiddenKeys = allKeys.filter(k => !visibleSet.has(k));\n onVisibilityChangeRef.current(nextVisibleKeyOrder, hiddenKeys);\n }, [allKeys]);\n const defByKey = useMemo(() => {\n const map = new Map();\n if (filterDefinitions == null) return map;\n for (const def of filterDefinitions) {\n map.set(getFilterKey(def), def);\n }\n return map;\n }, [filterDefinitions]);\n const {\n visibleDefinitions,\n hiddenDefinitions\n } = useMemo(() => {\n if (filterDefinitions == null) {\n return {\n visibleDefinitions: [],\n hiddenDefinitions: []\n };\n }\n const visibleSet = new Set(visibleKeyOrder);\n const visible = [];\n const hidden = [];\n for (const key of visibleKeyOrder) {\n const def = defByKey.get(key);\n if (def != null) {\n visible.push(def);\n }\n }\n for (const key of allKeys) {\n if (!visibleSet.has(key)) {\n const def = defByKey.get(key);\n if (def != null) {\n hidden.push(def);\n }\n }\n }\n return {\n visibleDefinitions: visible,\n hiddenDefinitions: hidden\n };\n }, [filterDefinitions, defByKey, visibleKeyOrder, allKeys]);\n const showFilter = useCallback(key => {\n setVisibleKeyOrder(prev => {\n if (prev.includes(key)) return prev;\n const next = [...prev, key];\n fireVisibilityChange(next);\n return next;\n });\n }, [fireVisibilityChange]);\n const hideFilter = useCallback(key => {\n setVisibleKeyOrder(prev => {\n const next = prev.filter(k => k !== key);\n fireVisibilityChange(next);\n return next;\n });\n }, [fireVisibilityChange]);\n const reorderVisible = useCallback(keys => {\n setVisibleKeyOrder(prev => {\n if (keys.length === prev.length && keys.every((k, i) => k === prev[i])) {\n return prev;\n }\n fireVisibilityChange(keys);\n return keys;\n });\n }, [fireVisibilityChange]);\n const resetVisibility = useCallback(() => {\n setVisibleKeyOrder(prev => {\n if (defaultVisibleKeyOrder.length === prev.length && defaultVisibleKeyOrder.every((k, i) => k === prev[i])) {\n return prev;\n }\n fireVisibilityChange(defaultVisibleKeyOrder);\n return defaultVisibleKeyOrder;\n });\n }, [defaultVisibleKeyOrder, fireVisibilityChange]);\n const hasVisibilityChanges = useMemo(() => {\n if (visibleKeyOrder.length !== defaultVisibleKeyOrder.length) {\n return true;\n }\n return !visibleKeyOrder.every((key, i) => key === defaultVisibleKeyOrder[i]);\n }, [visibleKeyOrder, defaultVisibleKeyOrder]);\n return {\n visibleDefinitions,\n hiddenDefinitions,\n showFilter,\n hideFilter,\n reorderVisible,\n hasVisibilityChanges,\n resetVisibility\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nexport function getFilterLabel(definition) {\n if (\"label\" in definition && definition.label) {\n return definition.label;\n }\n switch (definition.type) {\n case \"PROPERTY\":\n return definition.key;\n case \"HAS_LINK\":\n case \"LINKED_PROPERTY\":\n return definition.linkName;\n case \"KEYWORD_SEARCH\":\n return \"Search\";\n case \"CUSTOM\":\n return definition.key;\n case \"STATIC_VALUES\":\n return definition.key;\n default:\n return assertUnreachable(definition);\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useCallback, useMemo } from \"react\";\nimport { AddFilterPopover } from \"./base/AddFilterPopover.js\";\nimport { BaseFilterList } from \"./base/BaseFilterList.js\";\nimport { FilterInput } from \"./FilterInput.js\";\nimport { useFilterListState } from \"./hooks/useFilterListState.js\";\nimport { useFilterVisibility } from \"./hooks/useFilterVisibility.js\";\nimport { getFilterKey } from \"./utils/getFilterKey.js\";\nimport { getFilterLabel } from \"./utils/getFilterLabel.js\";\nexport function FilterList(props) {\n const {\n objectType,\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 onFilterVisibilityChange,\n renderAddFilterButton\n } = props;\n const {\n filterStates,\n setFilterState,\n clearFilterState,\n perFilterWhereClauses,\n activeFilterCount,\n reset\n } = useFilterListState(props);\n const uncontrolledAddFilterMode = addFilterMode === \"uncontrolled\";\n const handleVisibilityChange = useCallback((visibleKeys, hiddenKeys) => {\n if (!onFilterVisibilityChange) {\n return;\n }\n const states = [...visibleKeys.map(key => ({\n filterKey: key,\n isVisible: true\n })), ...hiddenKeys.map(key => ({\n filterKey: key,\n isVisible: false\n }))];\n onFilterVisibilityChange(states);\n }, [onFilterVisibilityChange]);\n const {\n visibleDefinitions: managedVisibleDefinitions,\n hiddenDefinitions: managedHiddenDefinitions,\n showFilter,\n hideFilter,\n reorderVisible,\n hasVisibilityChanges,\n resetVisibility\n } = useFilterVisibility(filterDefinitions, uncontrolledAddFilterMode ? handleVisibilityChange : undefined);\n const handleReset = useCallback(() => {\n reset();\n resetVisibility();\n onReset?.();\n }, [reset, resetVisibility, onReset]);\n const simpleVisibleDefinitions = useMemo(() => {\n if (filterDefinitions == null) {\n return undefined;\n }\n return filterDefinitions.filter(def => def.isVisible !== false);\n }, [filterDefinitions]);\n const effectiveVisibleDefinitions = uncontrolledAddFilterMode ? managedVisibleDefinitions : simpleVisibleDefinitions;\n const handleFilterRemoved = useCallback(filterKey => {\n clearFilterState(filterKey);\n if (uncontrolledAddFilterMode) {\n hideFilter(filterKey);\n }\n onFilterRemoved?.(filterKey);\n }, [clearFilterState, uncontrolledAddFilterMode, hideFilter, onFilterRemoved]);\n const handleFilterShown = useCallback(filterKey => {\n showFilter(filterKey);\n onFilterAdded?.(filterKey, filterDefinitions ?? []);\n }, [showFilter, onFilterAdded, filterDefinitions]);\n const handleOrderChange = useCallback(orderedKeys => {\n reorderVisible(orderedKeys);\n }, [reorderVisible]);\n const hiddenFilterItems = useMemo(() => managedHiddenDefinitions.map(def => ({\n key: getFilterKey(def),\n label: getFilterLabel(def)\n })), [managedHiddenDefinitions]);\n const effectiveRenderAddFilterButton = useMemo(() => {\n if (uncontrolledAddFilterMode) {\n if (managedHiddenDefinitions.length === 0) {\n return undefined;\n }\n return () => /*#__PURE__*/React.createElement(AddFilterPopover, {\n hiddenDefinitions: hiddenFilterItems,\n onShowFilter: handleFilterShown,\n renderTrigger: renderAddFilterButton\n });\n }\n return renderAddFilterButton;\n }, [uncontrolledAddFilterMode, managedHiddenDefinitions.length, hiddenFilterItems, handleFilterShown, renderAddFilterButton]);\n const effectiveOnFilterRemoved = uncontrolledAddFilterMode ? handleFilterRemoved : onFilterRemoved;\n const renderInput = useCallback(({\n definition,\n filterKey,\n filterState,\n onFilterStateChanged,\n searchQuery,\n excludeRowOpen\n }) => /*#__PURE__*/React.createElement(FilterInput, {\n objectType: objectType,\n objectSet: objectSet,\n definition: definition,\n filterState: filterState,\n onFilterStateChanged: onFilterStateChanged,\n whereClause: perFilterWhereClauses.get(filterKey) ?? {},\n searchQuery: searchQuery,\n excludeRowOpen: excludeRowOpen\n }), [objectType, objectSet, perFilterWhereClauses]);\n return /*#__PURE__*/React.createElement(BaseFilterList, {\n title: title,\n titleIcon: titleIcon,\n collapsed: collapsed,\n onCollapsedChange: onCollapsedChange,\n filterDefinitions: effectiveVisibleDefinitions,\n filterStates: filterStates,\n onFilterStateChanged: setFilterState,\n renderInput: renderInput,\n getFilterKey: getFilterKey,\n getFilterLabel: getFilterLabel,\n activeFilterCount: activeFilterCount,\n onReset: handleReset,\n showResetButton: showResetButton,\n showActiveFilterCount: showActiveFilterCount,\n hasVisibilityChanges: hasVisibilityChanges,\n enableSorting: enableSorting,\n onFilterRemoved: effectiveOnFilterRemoved,\n onOrderChange: handleOrderChange,\n className: className,\n renderAddFilterButton: effectiveRenderAddFilterButton\n });\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst DATE_PREFIX = \"__date__:\";\nfunction replacer(_key, value) {\n if (value instanceof Date) {\n return DATE_PREFIX + value.toISOString();\n }\n return value;\n}\nfunction reviver(_key, value) {\n if (typeof value === \"string\" && value.startsWith(DATE_PREFIX)) {\n return new Date(value.slice(DATE_PREFIX.length));\n }\n return value;\n}\nexport function serializeFilterStates(states) {\n const entries = Array.from(states.entries());\n return JSON.stringify(entries, replacer);\n}\nexport function deserializeFilterStates(json) {\n try {\n const entries = JSON.parse(json, reviver);\n return new Map(entries);\n } catch {\n return new Map();\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { BaseFilterList } from \"../../filter-list/base/BaseFilterList.js\";\nimport { FilterList as _FilterList } from \"../../filter-list/FilterList.js\";\nimport { withOsdkMetrics } from \"../../util/withOsdkMetrics.js\";\nexport const FilterList = withOsdkMetrics(_FilterList, \"FilterList\");\nexport { deserializeFilterStates, serializeFilterStates } from \"../../filter-list/utils/filterStateSerialization.js\";"]}