@osdk/react-components 0.34.0 → 0.34.1-main-e39a72892d538f3130e2cd51cee05d83d11fa493

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 (987) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/build/browser/action-form/ActionForm.js.map +1 -1
  3. package/build/browser/action-form/ActionFormApi.js.map +1 -1
  4. package/build/browser/action-form/BaseForm.js +3 -3
  5. package/build/browser/action-form/BaseForm.js.map +1 -1
  6. package/build/browser/action-form/FormField.js.map +1 -1
  7. package/build/browser/action-form/FormFieldApi.js.map +1 -1
  8. package/build/browser/action-form/FormHeader.js.map +1 -1
  9. package/build/browser/action-form/FormSection.js.map +1 -1
  10. package/build/browser/action-form/fields/AsyncDropdownField.js +1 -1
  11. package/build/browser/action-form/fields/AsyncDropdownField.js.map +1 -1
  12. package/build/browser/action-form/fields/CustomField.js.map +1 -1
  13. package/build/browser/action-form/fields/DropdownField.js +2 -2
  14. package/build/browser/action-form/fields/DropdownField.js.map +1 -1
  15. package/build/browser/action-form/fields/FieldBridge.js.map +1 -1
  16. package/build/browser/action-form/fields/FilePickerField.js.map +1 -1
  17. package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -1
  18. package/build/browser/action-form/fields/NumberInputField.js.map +1 -1
  19. package/build/browser/action-form/fields/ObjectSelectField.js.map +1 -1
  20. package/build/browser/action-form/fields/ObjectSetField.js.map +1 -1
  21. package/build/browser/action-form/fields/RadioButtonsField.js.map +1 -1
  22. package/build/browser/action-form/fields/SwitchField.js.map +1 -1
  23. package/build/browser/action-form/fields/TextAreaField.js.map +1 -1
  24. package/build/browser/action-form/fields/TextInputField.js.map +1 -1
  25. package/build/browser/action-form/utils/coerceFieldValue.js.map +1 -1
  26. package/build/browser/action-form/utils/extractValidationRules.js.map +1 -1
  27. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js.map +1 -1
  28. package/build/browser/aip-agent-chat/AipAgentChat.js.map +1 -1
  29. package/build/browser/aip-agent-chat/BaseAipAgentChat.js +1 -1
  30. package/build/browser/aip-agent-chat/BaseAipAgentChat.js.map +1 -1
  31. package/build/browser/aip-agent-chat/components/AipAgentChatComposer.js.map +1 -1
  32. package/build/browser/aip-agent-chat/components/AipAgentChatLoader.js.map +1 -1
  33. package/build/browser/aip-agent-chat/components/AipAgentChatMessage.js.map +1 -1
  34. package/build/browser/aip-agent-chat/components/AipAgentChatMessageList.js +1 -1
  35. package/build/browser/aip-agent-chat/components/AipAgentChatMessageList.js.map +1 -1
  36. package/build/browser/aip-agent-chat/components/AipAgentChatModelPicker.js.map +1 -1
  37. package/build/browser/aip-agent-chat/hooks/useChatAutoScroll.js.map +1 -1
  38. package/build/browser/base-components/action-button/ActionButton.js.map +1 -1
  39. package/build/browser/base-components/callout/Callout.js.map +1 -1
  40. package/build/browser/base-components/checkbox/Checkbox.js.map +1 -1
  41. package/build/browser/base-components/combobox/Combobox.js.map +1 -1
  42. package/build/browser/base-components/dialog/Dialog.js.map +1 -1
  43. package/build/browser/base-components/draggable-list/DraggableList.js +1 -1
  44. package/build/browser/base-components/draggable-list/DraggableList.js.map +1 -1
  45. package/build/browser/base-components/icon/BlueprintIcon.js.map +1 -1
  46. package/build/browser/base-components/search-bar/SearchBar.js.map +1 -1
  47. package/build/browser/base-components/searchable-menu/SearchableMenu.js.map +1 -1
  48. package/build/browser/base-components/select/Select.js.map +1 -1
  49. package/build/browser/base-components/skeleton/SkeletonBar.js.map +1 -1
  50. package/build/browser/base-components/switch/Switch.js.map +1 -1
  51. package/build/browser/base-components/tooltip/Tooltip.js.map +1 -1
  52. package/build/browser/cbac-picker/CbacBanner.js.map +1 -1
  53. package/build/browser/cbac-picker/CbacBannerPopover.js.map +1 -1
  54. package/build/browser/cbac-picker/CbacPicker.js.map +1 -1
  55. package/build/browser/cbac-picker/CbacPickerDialog.js.map +1 -1
  56. package/build/browser/cbac-picker/base/BaseCbacBanner.js.map +1 -1
  57. package/build/browser/cbac-picker/base/BaseCbacBannerPopover.js.map +1 -1
  58. package/build/browser/cbac-picker/base/BaseCbacPicker.js +1 -1
  59. package/build/browser/cbac-picker/base/BaseCbacPicker.js.map +1 -1
  60. package/build/browser/cbac-picker/base/BaseCbacPickerDialog.js.map +1 -1
  61. package/build/browser/cbac-picker/base/CategoryMarkingGroup.js +1 -1
  62. package/build/browser/cbac-picker/base/CategoryMarkingGroup.js.map +1 -1
  63. package/build/browser/cbac-picker/base/CbacPickerDialogFooter.js.map +1 -1
  64. package/build/browser/cbac-picker/base/InfoBanner.js.map +1 -1
  65. package/build/browser/cbac-picker/base/MarkingButton.js +1 -1
  66. package/build/browser/cbac-picker/base/MarkingButton.js.map +1 -1
  67. package/build/browser/cbac-picker/base/MaxClassificationField.js.map +1 -1
  68. package/build/browser/cbac-picker/base/OverflowButton.js +1 -1
  69. package/build/browser/cbac-picker/base/OverflowButton.js.map +1 -1
  70. package/build/browser/cbac-picker/base/OverflowItem.js +1 -1
  71. package/build/browser/cbac-picker/base/OverflowItem.js.map +1 -1
  72. package/build/browser/cbac-picker/base/ValidationWarning.js.map +1 -1
  73. package/build/browser/cbac-picker/base/selectionStateHelpers.js.map +1 -1
  74. package/build/browser/cbac-picker/useCbacPickerState.js.map +1 -1
  75. package/build/browser/cbac-picker/useCbacSelection.js.map +1 -1
  76. package/build/browser/cbac-picker/useConstraintCallout.js.map +1 -1
  77. package/build/browser/cbac-picker/utils/cbacPickerUtils.js.map +1 -1
  78. package/build/browser/cbac-picker/utils/errorMessages.js.map +1 -1
  79. package/build/browser/cbac-picker/utils/selectionLogic.js.map +1 -1
  80. package/build/browser/cbac-picker/utils/validationMessages.js.map +1 -1
  81. package/build/browser/document-viewer/DocumentViewer.js +1 -1
  82. package/build/browser/document-viewer/DocumentViewer.js.map +1 -1
  83. package/build/browser/document-viewer/DocumentViewerApi.js.map +1 -1
  84. package/build/browser/document-viewer/TiffDocumentViewer.js +1 -1
  85. package/build/browser/document-viewer/TiffDocumentViewer.js.map +1 -1
  86. package/build/browser/document-viewer/hooks/useTiffToPdf.js.map +1 -1
  87. package/build/browser/email-viewer/BaseEmailViewer.js.map +1 -1
  88. package/build/browser/email-viewer/EmailViewer.js +1 -1
  89. package/build/browser/email-viewer/EmailViewer.js.map +1 -1
  90. package/build/browser/email-viewer/EmailViewerApi.js.map +1 -1
  91. package/build/browser/email-viewer/parseEmail.js.map +1 -1
  92. package/build/browser/excel-viewer/BaseExcelViewer.js +1 -0
  93. package/build/browser/excel-viewer/BaseExcelViewer.js.map +1 -1
  94. package/build/browser/excel-viewer/ExcelViewer.js +1 -1
  95. package/build/browser/excel-viewer/ExcelViewer.js.map +1 -1
  96. package/build/browser/excel-viewer/ExcelViewerApi.js.map +1 -1
  97. package/build/browser/excel-viewer/parseSpreadsheet.js.map +1 -1
  98. package/build/browser/filter-list/FilterInput.js.map +1 -1
  99. package/build/browser/filter-list/FilterList.js.map +1 -1
  100. package/build/browser/filter-list/FilterListApi.js.map +1 -1
  101. package/build/browser/filter-list/FilterListItemApi.js.map +1 -1
  102. package/build/browser/filter-list/base/AddFilterPopover.js +1 -1
  103. package/build/browser/filter-list/base/AddFilterPopover.js.map +1 -1
  104. package/build/browser/filter-list/base/BaseFilterList.js +1 -1
  105. package/build/browser/filter-list/base/BaseFilterList.js.map +1 -1
  106. package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -1
  107. package/build/browser/filter-list/base/ExcludeDropdown.js +1 -1
  108. package/build/browser/filter-list/base/ExcludeDropdown.js.map +1 -1
  109. package/build/browser/filter-list/base/FilterInputExcludeRow.js.map +1 -1
  110. package/build/browser/filter-list/base/FilterListContent.js +1 -1
  111. package/build/browser/filter-list/base/FilterListContent.js.map +1 -1
  112. package/build/browser/filter-list/base/FilterListHeader.js.map +1 -1
  113. package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
  114. package/build/browser/filter-list/base/FilterPopover.js.map +1 -1
  115. package/build/browser/filter-list/base/SortableFilterListItem.js.map +1 -1
  116. package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
  117. package/build/browser/filter-list/base/inputs/DateRangeHistogramInput.js.map +1 -1
  118. package/build/browser/filter-list/base/inputs/EmptyStringLabel.js +1 -0
  119. package/build/browser/filter-list/base/inputs/EmptyStringLabel.js.map +1 -1
  120. package/build/browser/filter-list/base/inputs/HistogramTooltip.js.map +1 -1
  121. package/build/browser/filter-list/base/inputs/ListogramInput.js +2 -2
  122. package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -1
  123. package/build/browser/filter-list/base/inputs/ListogramSkeleton.js.map +1 -1
  124. package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -1
  125. package/build/browser/filter-list/base/inputs/MultiSelectDropdownLayout.js.map +1 -1
  126. package/build/browser/filter-list/base/inputs/MultiSelectInlineLayout.js.map +1 -1
  127. package/build/browser/filter-list/base/inputs/MultiSelectInput.js +2 -2
  128. package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -1
  129. package/build/browser/filter-list/base/inputs/NoValueLabel.js.map +1 -1
  130. package/build/browser/filter-list/base/inputs/NullValueWrapper.js.map +1 -1
  131. package/build/browser/filter-list/base/inputs/NumberRangeInput.js.map +1 -1
  132. package/build/browser/filter-list/base/inputs/OptionLabel.js.map +1 -1
  133. package/build/browser/filter-list/base/inputs/RangeInput.js +1 -1
  134. package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -1
  135. package/build/browser/filter-list/base/inputs/SelectInputSkeleton.js.map +1 -1
  136. package/build/browser/filter-list/base/inputs/SingleDateInput.js.map +1 -1
  137. package/build/browser/filter-list/base/inputs/SingleSelectInput.js +1 -1
  138. package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
  139. package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -1
  140. package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -1
  141. package/build/browser/filter-list/base/inputs/ToggleInput.js.map +1 -1
  142. package/build/browser/filter-list/base/inputs/comboboxFilter.js.map +1 -1
  143. package/build/browser/filter-list/base/inputs/createDateHistogramBuckets.js.map +1 -1
  144. package/build/browser/filter-list/base/inputs/createHistogramBuckets.js.map +1 -1
  145. package/build/browser/filter-list/hooks/useDualScopeAggregation.js.map +1 -1
  146. package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
  147. package/build/browser/filter-list/hooks/useFilterPropertyAggregation.js.map +1 -1
  148. package/build/browser/filter-list/hooks/useFilterVisibility.js.map +1 -1
  149. package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -1
  150. package/build/browser/filter-list/inputs/ContainsTextFilterInput.js.map +1 -1
  151. package/build/browser/filter-list/inputs/DateRangeFilterInput.js.map +1 -1
  152. package/build/browser/filter-list/inputs/LinkedPropertyInput.js +1 -1
  153. package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
  154. package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -1
  155. package/build/browser/filter-list/inputs/MultiDateFilterInput.js.map +1 -1
  156. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
  157. package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
  158. package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -1
  159. package/build/browser/filter-list/inputs/SingleDateFilterInput.js.map +1 -1
  160. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
  161. package/build/browser/filter-list/inputs/StaticValuesFilterInput.js.map +1 -1
  162. package/build/browser/filter-list/inputs/TextTagsFilterInput.js.map +1 -1
  163. package/build/browser/filter-list/inputs/TimelineFilterInput.js.map +1 -1
  164. package/build/browser/filter-list/inputs/ToggleFilterInput.js.map +1 -1
  165. package/build/browser/filter-list/types/CustomRendererTypes.js.map +1 -1
  166. package/build/browser/filter-list/types/KeywordSearchTypes.js.map +1 -1
  167. package/build/browser/filter-list/types/LinkedFilterTypes.js.map +1 -1
  168. package/build/browser/filter-list/types/StaticValuesTypes.js.map +1 -1
  169. package/build/browser/filter-list/utils/aggregationHelpers.js.map +1 -1
  170. package/build/browser/filter-list/utils/coerceFilterValue.js.map +1 -1
  171. package/build/browser/filter-list/utils/emptyFilterDisplayState.js.map +1 -1
  172. package/build/browser/filter-list/utils/filterStateSerialization.js.map +1 -1
  173. package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  174. package/build/browser/filter-list/utils/filterValues.js.map +1 -1
  175. package/build/browser/filter-list/utils/getFilterKey.js.map +1 -1
  176. package/build/browser/filter-list/utils/getFilterLabel.js.map +1 -1
  177. package/build/browser/filter-list/utils/narrowObjectSet.js.map +1 -1
  178. package/build/browser/filter-list/utils/summarizeFilterValue.js.map +1 -1
  179. package/build/browser/images/image-viewer/BaseImageViewer.js.map +1 -1
  180. package/build/browser/images/image-viewer/ImageViewer.js.map +1 -1
  181. package/build/browser/images/image-viewer/ImageViewerApi.js.map +1 -1
  182. package/build/browser/images/tiff-renderer/TiffRenderer.js +1 -0
  183. package/build/browser/images/tiff-renderer/TiffRenderer.js.map +1 -1
  184. package/build/browser/images/tiff-renderer/TiffViewerMedia.js.map +1 -1
  185. package/build/browser/markdown-renderer/MarkdownRenderer.js.map +1 -1
  186. package/build/browser/markdown-renderer/MarkdownViewerMedia.js.map +1 -1
  187. package/build/browser/object-table/CellContextMenu.js.map +1 -1
  188. package/build/browser/object-table/ColumnConfigDialog.js.map +1 -1
  189. package/build/browser/object-table/DefaultCellRenderer.js +4 -3
  190. package/build/browser/object-table/DefaultCellRenderer.js.map +1 -1
  191. package/build/browser/object-table/EditableCell.js +1 -1
  192. package/build/browser/object-table/EditableCell.js.map +1 -1
  193. package/build/browser/object-table/LoadingCell.js.map +1 -1
  194. package/build/browser/object-table/LoadingRow.js +1 -1
  195. package/build/browser/object-table/LoadingRow.js.map +1 -1
  196. package/build/browser/object-table/LoadingStateTable.js +3 -3
  197. package/build/browser/object-table/LoadingStateTable.js.map +1 -1
  198. package/build/browser/object-table/MultiColumnSortDialog.js +1 -1
  199. package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -1
  200. package/build/browser/object-table/NonIdealState.js.map +1 -1
  201. package/build/browser/object-table/ObjectTable.js.map +1 -1
  202. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  203. package/build/browser/object-table/SelectionCells.js.map +1 -1
  204. package/build/browser/object-table/SortableItemsList.js.map +1 -1
  205. package/build/browser/object-table/Table.js +1 -1
  206. package/build/browser/object-table/Table.js.map +1 -1
  207. package/build/browser/object-table/TableBody.js +1 -1
  208. package/build/browser/object-table/TableBody.js.map +1 -1
  209. package/build/browser/object-table/TableCell.js +1 -1
  210. package/build/browser/object-table/TableCell.js.map +1 -1
  211. package/build/browser/object-table/TableEditContainer.js.map +1 -1
  212. package/build/browser/object-table/TableHeader.js +1 -1
  213. package/build/browser/object-table/TableHeader.js.map +1 -1
  214. package/build/browser/object-table/TableHeaderContent.js.map +1 -1
  215. package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
  216. package/build/browser/object-table/TableRow.js.map +1 -1
  217. package/build/browser/object-table/components/AsyncValueCell.js.map +1 -1
  218. package/build/browser/object-table/components/CbacMarkingCell.js.map +1 -1
  219. package/build/browser/object-table/components/DatePickerCellField.js +1 -1
  220. package/build/browser/object-table/components/DatePickerCellField.js.map +1 -1
  221. package/build/browser/object-table/components/DropdownCellField.js +1 -1
  222. package/build/browser/object-table/components/DropdownCellField.js.map +1 -1
  223. package/build/browser/object-table/components/MandatoryMarkingCell.js.map +1 -1
  224. package/build/browser/object-table/components/ReadonlyDisplayCell.js.map +1 -1
  225. package/build/browser/object-table/components/TextInputCellField.js.map +1 -1
  226. package/build/browser/object-table/hooks/useCellContextMenu.js.map +1 -1
  227. package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
  228. package/build/browser/object-table/hooks/useColumnPinning.js.map +1 -1
  229. package/build/browser/object-table/hooks/useColumnResize.js.map +1 -1
  230. package/build/browser/object-table/hooks/useColumnVisibility.js.map +1 -1
  231. package/build/browser/object-table/hooks/useEditableTable.js.map +1 -1
  232. package/build/browser/object-table/hooks/useFocusedRow.js.map +1 -1
  233. package/build/browser/object-table/hooks/useFunctionColumnsData.js.map +1 -1
  234. package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
  235. package/build/browser/object-table/hooks/useObjectTableSnapshot.js.map +1 -1
  236. package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
  237. package/build/browser/object-table/hooks/useSelectionColumn.js.map +1 -1
  238. package/build/browser/object-table/hooks/useTableSorting.js.map +1 -1
  239. package/build/browser/object-table/utils/AsyncCellData.js.map +1 -1
  240. package/build/browser/object-table/utils/PortalTracker.js.map +1 -1
  241. package/build/browser/object-table/utils/deriveSelectionObjectSet.js.map +1 -1
  242. package/build/browser/object-table/utils/editableUtils.js.map +1 -1
  243. package/build/browser/object-table/utils/functionColumns.js.map +1 -1
  244. package/build/browser/object-table/utils/getColumnPinningStyles.js.map +1 -1
  245. package/build/browser/object-table/utils/getRowId.js.map +1 -1
  246. package/build/browser/object-table/utils/objectTableSnapshot.js.map +1 -1
  247. package/build/browser/object-table/utils/shouldShowEditableCell.js.map +1 -1
  248. package/build/browser/object-table/utils/types.js.map +1 -1
  249. package/build/browser/pdf-viewer/PdfRenderer.js.map +1 -1
  250. package/build/browser/pdf-viewer/PdfViewer.js.map +1 -1
  251. package/build/browser/pdf-viewer/PdfViewerContext.js.map +1 -1
  252. package/build/browser/pdf-viewer/components/PdfAnnotationOverlay.js.map +1 -1
  253. package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -1
  254. package/build/browser/pdf-viewer/components/PdfViewerContent.js +1 -1
  255. package/build/browser/pdf-viewer/components/PdfViewerContent.js.map +1 -1
  256. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js +1 -1
  257. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -1
  258. package/build/browser/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -1
  259. package/build/browser/pdf-viewer/components/PdfViewerSidebar.js +1 -1
  260. package/build/browser/pdf-viewer/components/PdfViewerSidebar.js.map +1 -1
  261. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -1
  262. package/build/browser/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -1
  263. package/build/browser/pdf-viewer/components/PdfViewerToolbar.js.map +1 -1
  264. package/build/browser/pdf-viewer/constants.js.map +1 -1
  265. package/build/browser/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -1
  266. package/build/browser/pdf-viewer/hooks/usePdfAnnotationsByPage.js.map +1 -1
  267. package/build/browser/pdf-viewer/hooks/usePdfDocument.js.map +1 -1
  268. package/build/browser/pdf-viewer/hooks/usePdfFormFields.js.map +1 -1
  269. package/build/browser/pdf-viewer/hooks/usePdfHighlightMode.js.map +1 -1
  270. package/build/browser/pdf-viewer/hooks/usePdfOutline.js.map +1 -1
  271. package/build/browser/pdf-viewer/hooks/usePdfViewer.js.map +1 -1
  272. package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -1
  273. package/build/browser/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -1
  274. package/build/browser/pdf-viewer/hooks/usePdfViewerState.js.map +1 -1
  275. package/build/browser/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -1
  276. package/build/browser/public/experimental/action-form.js.map +1 -1
  277. package/build/browser/public/experimental/cbac-picker.js.map +1 -1
  278. package/build/browser/public/experimental/document-viewer.js.map +1 -1
  279. package/build/browser/public/experimental/email-viewer.js.map +1 -1
  280. package/build/browser/public/experimental/excel-viewer.js.map +1 -1
  281. package/build/browser/public/experimental/filter-list.js.map +1 -1
  282. package/build/browser/public/experimental/image-viewer.js.map +1 -1
  283. package/build/browser/public/experimental/markdown-renderer.js.map +1 -1
  284. package/build/browser/public/experimental/object-table.js.map +1 -1
  285. package/build/browser/public/experimental/pdf-viewer.js.map +1 -1
  286. package/build/browser/public/experimental/tiff-renderer.js.map +1 -1
  287. package/build/browser/public/experimental/video-viewer.js.map +1 -1
  288. package/build/browser/public/experimental/xml-viewer.js.map +1 -1
  289. package/build/browser/shared/ErrorBoundary.js.map +1 -1
  290. package/build/browser/shared/PortalContainerContext.js.map +1 -1
  291. package/build/browser/shared/PortalDismissLayer.js.map +1 -1
  292. package/build/browser/shared/calendar/DateCalendar.js +1 -1
  293. package/build/browser/shared/calendar/DateCalendar.js.map +1 -1
  294. package/build/browser/shared/calendar/DatePicker.js +2 -2
  295. package/build/browser/shared/calendar/DatePicker.js.map +1 -1
  296. package/build/browser/shared/calendar/DateRangeCalendar.js.map +1 -1
  297. package/build/browser/shared/calendar/DateRangePicker.js +2 -2
  298. package/build/browser/shared/calendar/DateRangePicker.js.map +1 -1
  299. package/build/browser/shared/calendar/LazyDateCalendar.js.map +1 -1
  300. package/build/browser/shared/calendar/LazyDateRangeCalendar.js.map +1 -1
  301. package/build/browser/shared/calendar/TimePicker.js.map +1 -1
  302. package/build/browser/shared/calendar/calendarShared.js.map +1 -1
  303. package/build/browser/shared/calendar/useDateEditState.js.map +1 -1
  304. package/build/browser/shared/dateUtils.js.map +1 -1
  305. package/build/browser/shared/hooks/useAsyncAction.js.map +1 -1
  306. package/build/browser/shared/hooks/useDebouncedValue.js.map +1 -1
  307. package/build/browser/shared/hooks/useEventCallback.js.map +1 -1
  308. package/build/browser/shared/hooks/useInfiniteScroll.js.map +1 -1
  309. package/build/browser/shared/hooks/useMediaContents.js.map +1 -1
  310. package/build/browser/theme/OsdkThemeContext.js.map +1 -1
  311. package/build/browser/theme/OsdkThemeProvider.js.map +1 -1
  312. package/build/browser/theme/useOsdkTheme.js.map +1 -1
  313. package/build/browser/theme/useSystemTheme.js.map +1 -1
  314. package/build/browser/util/UserAgent.js +1 -1
  315. package/build/browser/util/UserAgent.js.map +1 -1
  316. package/build/browser/util/withOsdkMetrics.js.map +1 -1
  317. package/build/browser/video-viewer/BaseVideoViewer.js.map +1 -1
  318. package/build/browser/video-viewer/VideoViewer.js.map +1 -1
  319. package/build/browser/video-viewer/VideoViewerApi.js.map +1 -1
  320. package/build/browser/xml-viewer/BaseXmlViewer.js.map +1 -1
  321. package/build/browser/xml-viewer/XmlViewer.js.map +1 -1
  322. package/build/browser/xml-viewer/XmlViewerApi.js.map +1 -1
  323. package/build/cjs/{DateCalendar-OCDSESQR.cjs → DateCalendar-FCZXD24P.cjs} +6 -6
  324. package/build/cjs/{DateCalendar-OCDSESQR.cjs.map → DateCalendar-FCZXD24P.cjs.map} +1 -1
  325. package/build/cjs/{DateCalendar-FTW3OIEP.css → DateCalendar-VBZGPZ5P.css} +39 -39
  326. package/build/cjs/DateCalendar-VBZGPZ5P.css.map +1 -0
  327. package/build/cjs/{DateRangeCalendar-I4JHCZAK.css → DateRangeCalendar-2M2I5Q3Z.css} +39 -39
  328. package/build/cjs/DateRangeCalendar-2M2I5Q3Z.css.map +1 -0
  329. package/build/cjs/DateRangeCalendar-XN2ZWAFK.cjs +12 -0
  330. package/build/cjs/{DateRangeCalendar-PHC3VPW3.cjs.map → DateRangeCalendar-XN2ZWAFK.cjs.map} +1 -1
  331. package/build/cjs/{chunk-DA22W6ZO.cjs → chunk-BE226IHU.cjs} +8 -8
  332. package/build/cjs/chunk-BE226IHU.cjs.map +1 -0
  333. package/build/cjs/{chunk-XWT6S3FL.cjs → chunk-BFRUHBWM.cjs} +12 -12
  334. package/build/cjs/{chunk-XWT6S3FL.cjs.map → chunk-BFRUHBWM.cjs.map} +1 -1
  335. package/build/cjs/chunk-CXMIRPQU.cjs +11 -0
  336. package/build/cjs/{chunk-PYOEFNQH.cjs.map → chunk-CXMIRPQU.cjs.map} +1 -1
  337. package/build/cjs/{chunk-CASYBF4M.cjs → chunk-ENE2RWIL.cjs} +25 -23
  338. package/build/cjs/chunk-ENE2RWIL.cjs.map +1 -0
  339. package/build/cjs/{chunk-IHVPE5CD.cjs → chunk-G6AOIKDH.cjs} +66 -66
  340. package/build/cjs/chunk-G6AOIKDH.cjs.map +1 -0
  341. package/build/cjs/{chunk-U74WOMFV.cjs → chunk-GJ2KJKWI.cjs} +17 -17
  342. package/build/cjs/{chunk-U74WOMFV.cjs.map → chunk-GJ2KJKWI.cjs.map} +1 -1
  343. package/build/cjs/chunk-HBU5ZLVP.cjs +11 -0
  344. package/build/cjs/{chunk-F4JELV7M.cjs.map → chunk-HBU5ZLVP.cjs.map} +1 -1
  345. package/build/cjs/{chunk-KNZXFIIH.cjs → chunk-HWWTZKC5.cjs} +24 -24
  346. package/build/cjs/{chunk-KNZXFIIH.cjs.map → chunk-HWWTZKC5.cjs.map} +1 -1
  347. package/build/cjs/{chunk-YTDSW5OV.cjs → chunk-IHTYJU2F.cjs} +29 -28
  348. package/build/cjs/chunk-IHTYJU2F.cjs.map +1 -0
  349. package/build/cjs/{chunk-5KTGUKJT.cjs → chunk-JCN6P3YW.cjs} +4 -4
  350. package/build/cjs/{chunk-5KTGUKJT.cjs.map → chunk-JCN6P3YW.cjs.map} +1 -1
  351. package/build/cjs/{chunk-XK4H7EHE.cjs → chunk-KQ4B2XDH.cjs} +5 -5
  352. package/build/cjs/chunk-KQ4B2XDH.cjs.map +1 -0
  353. package/build/cjs/{chunk-IISDOJPR.cjs → chunk-LB3IHFAB.cjs} +2 -2
  354. package/build/cjs/{chunk-IISDOJPR.cjs.map → chunk-LB3IHFAB.cjs.map} +1 -1
  355. package/build/cjs/{chunk-PUQBJVFU.cjs → chunk-MUDJXY6I.cjs} +22 -22
  356. package/build/cjs/{chunk-PUQBJVFU.cjs.map → chunk-MUDJXY6I.cjs.map} +1 -1
  357. package/build/cjs/chunk-NN5IHTYW.cjs +11 -0
  358. package/build/cjs/{chunk-W6DWGABB.cjs.map → chunk-NN5IHTYW.cjs.map} +1 -1
  359. package/build/cjs/{chunk-PKJFOG2Z.cjs → chunk-OISZU73V.cjs} +2 -2
  360. package/build/cjs/{chunk-PKJFOG2Z.cjs.map → chunk-OISZU73V.cjs.map} +1 -1
  361. package/build/cjs/chunk-PPVWOEYX.cjs +11 -0
  362. package/build/cjs/{chunk-VRTFHF24.cjs.map → chunk-PPVWOEYX.cjs.map} +1 -1
  363. package/build/cjs/{chunk-3SJODG6U.cjs → chunk-S2FQCZAB.cjs} +2 -2
  364. package/build/cjs/{chunk-3SJODG6U.cjs.map → chunk-S2FQCZAB.cjs.map} +1 -1
  365. package/build/cjs/{chunk-4VNWCW75.cjs → chunk-V3ZJM4N2.cjs} +16 -16
  366. package/build/cjs/chunk-V3ZJM4N2.cjs.map +1 -0
  367. package/build/cjs/{chunk-MMPVBH5H.cjs → chunk-VT7TNOMD.cjs} +24 -21
  368. package/build/cjs/chunk-VT7TNOMD.cjs.map +1 -0
  369. package/build/cjs/chunk-WKKN2KJU.cjs +11 -0
  370. package/build/cjs/{chunk-Q5H4KPSL.cjs.map → chunk-WKKN2KJU.cjs.map} +1 -1
  371. package/build/cjs/{chunk-WE4REEMW.cjs → chunk-YIBSLDUU.cjs} +3 -3
  372. package/build/cjs/chunk-YIBSLDUU.cjs.map +1 -0
  373. package/build/cjs/chunk-YK3PUDSD.cjs +11 -0
  374. package/build/cjs/{chunk-LGGRMQCE.cjs.map → chunk-YK3PUDSD.cjs.map} +1 -1
  375. package/build/cjs/public/experimental/action-form.cjs +8 -8
  376. package/build/cjs/public/experimental/action-form.css +98 -98
  377. package/build/cjs/public/experimental/action-form.css.map +1 -1
  378. package/build/cjs/public/experimental/aip-agent-chat.cjs +2 -0
  379. package/build/cjs/public/experimental/aip-agent-chat.cjs.map +1 -1
  380. package/build/cjs/public/experimental/cbac-picker.cjs +11 -11
  381. package/build/cjs/public/experimental/cbac-picker.css +110 -110
  382. package/build/cjs/public/experimental/cbac-picker.css.map +1 -1
  383. package/build/cjs/public/experimental/document-viewer.cjs +8 -8
  384. package/build/cjs/public/experimental/document-viewer.css +72 -72
  385. package/build/cjs/public/experimental/document-viewer.css.map +1 -1
  386. package/build/cjs/public/experimental/email-viewer.cjs +5 -5
  387. package/build/cjs/public/experimental/excel-viewer.cjs +5 -5
  388. package/build/cjs/public/experimental/filter-list.cjs +18 -18
  389. package/build/cjs/public/experimental/filter-list.css +225 -225
  390. package/build/cjs/public/experimental/filter-list.css.map +1 -1
  391. package/build/cjs/public/experimental/image-viewer.cjs +3 -3
  392. package/build/cjs/public/experimental/markdown-renderer.cjs +3 -3
  393. package/build/cjs/public/experimental/object-table.cjs +12 -12
  394. package/build/cjs/public/experimental/object-table.css +151 -151
  395. package/build/cjs/public/experimental/object-table.css.map +1 -1
  396. package/build/cjs/public/experimental/pdf-viewer.cjs +25 -25
  397. package/build/cjs/public/experimental/pdf-viewer.css +72 -72
  398. package/build/cjs/public/experimental/pdf-viewer.css.map +1 -1
  399. package/build/cjs/public/experimental/pdf-viewer.d.cts +1 -1
  400. package/build/cjs/public/experimental/tiff-renderer.cjs +5 -5
  401. package/build/cjs/public/experimental/video-viewer.cjs +3 -3
  402. package/build/cjs/public/experimental/xml-viewer.cjs +3 -3
  403. package/build/cjs/public/experimental.cjs +86 -86
  404. package/build/cjs/public/experimental.css +632 -632
  405. package/build/cjs/public/experimental.css.map +1 -1
  406. package/build/esm/action-form/ActionForm.js.map +1 -1
  407. package/build/esm/action-form/ActionFormApi.js.map +1 -1
  408. package/build/esm/action-form/BaseForm.js +3 -3
  409. package/build/esm/action-form/BaseForm.js.map +1 -1
  410. package/build/esm/action-form/FormField.js.map +1 -1
  411. package/build/esm/action-form/FormFieldApi.js.map +1 -1
  412. package/build/esm/action-form/FormHeader.js.map +1 -1
  413. package/build/esm/action-form/FormSection.js.map +1 -1
  414. package/build/esm/action-form/fields/AsyncDropdownField.js +1 -1
  415. package/build/esm/action-form/fields/AsyncDropdownField.js.map +1 -1
  416. package/build/esm/action-form/fields/CustomField.js.map +1 -1
  417. package/build/esm/action-form/fields/DropdownField.js +2 -2
  418. package/build/esm/action-form/fields/DropdownField.js.map +1 -1
  419. package/build/esm/action-form/fields/FieldBridge.js.map +1 -1
  420. package/build/esm/action-form/fields/FilePickerField.js.map +1 -1
  421. package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -1
  422. package/build/esm/action-form/fields/NumberInputField.js.map +1 -1
  423. package/build/esm/action-form/fields/ObjectSelectField.js.map +1 -1
  424. package/build/esm/action-form/fields/ObjectSetField.js.map +1 -1
  425. package/build/esm/action-form/fields/RadioButtonsField.js.map +1 -1
  426. package/build/esm/action-form/fields/SwitchField.js.map +1 -1
  427. package/build/esm/action-form/fields/TextAreaField.js.map +1 -1
  428. package/build/esm/action-form/fields/TextInputField.js.map +1 -1
  429. package/build/esm/action-form/utils/coerceFieldValue.js.map +1 -1
  430. package/build/esm/action-form/utils/extractValidationRules.js.map +1 -1
  431. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js.map +1 -1
  432. package/build/esm/aip-agent-chat/AipAgentChat.js.map +1 -1
  433. package/build/esm/aip-agent-chat/BaseAipAgentChat.js +1 -1
  434. package/build/esm/aip-agent-chat/BaseAipAgentChat.js.map +1 -1
  435. package/build/esm/aip-agent-chat/components/AipAgentChatComposer.js.map +1 -1
  436. package/build/esm/aip-agent-chat/components/AipAgentChatLoader.js.map +1 -1
  437. package/build/esm/aip-agent-chat/components/AipAgentChatMessage.js.map +1 -1
  438. package/build/esm/aip-agent-chat/components/AipAgentChatMessageList.js +1 -1
  439. package/build/esm/aip-agent-chat/components/AipAgentChatMessageList.js.map +1 -1
  440. package/build/esm/aip-agent-chat/components/AipAgentChatModelPicker.js.map +1 -1
  441. package/build/esm/aip-agent-chat/hooks/useChatAutoScroll.js.map +1 -1
  442. package/build/esm/base-components/action-button/ActionButton.js.map +1 -1
  443. package/build/esm/base-components/callout/Callout.js.map +1 -1
  444. package/build/esm/base-components/checkbox/Checkbox.js.map +1 -1
  445. package/build/esm/base-components/combobox/Combobox.js.map +1 -1
  446. package/build/esm/base-components/dialog/Dialog.js.map +1 -1
  447. package/build/esm/base-components/draggable-list/DraggableList.js +1 -1
  448. package/build/esm/base-components/draggable-list/DraggableList.js.map +1 -1
  449. package/build/esm/base-components/icon/BlueprintIcon.js.map +1 -1
  450. package/build/esm/base-components/search-bar/SearchBar.js.map +1 -1
  451. package/build/esm/base-components/searchable-menu/SearchableMenu.js.map +1 -1
  452. package/build/esm/base-components/select/Select.js.map +1 -1
  453. package/build/esm/base-components/skeleton/SkeletonBar.js.map +1 -1
  454. package/build/esm/base-components/switch/Switch.js.map +1 -1
  455. package/build/esm/base-components/tooltip/Tooltip.js.map +1 -1
  456. package/build/esm/cbac-picker/CbacBanner.js.map +1 -1
  457. package/build/esm/cbac-picker/CbacBannerPopover.js.map +1 -1
  458. package/build/esm/cbac-picker/CbacPicker.js.map +1 -1
  459. package/build/esm/cbac-picker/CbacPickerDialog.js.map +1 -1
  460. package/build/esm/cbac-picker/base/BaseCbacBanner.js.map +1 -1
  461. package/build/esm/cbac-picker/base/BaseCbacBannerPopover.js.map +1 -1
  462. package/build/esm/cbac-picker/base/BaseCbacPicker.js +1 -1
  463. package/build/esm/cbac-picker/base/BaseCbacPicker.js.map +1 -1
  464. package/build/esm/cbac-picker/base/BaseCbacPickerDialog.js.map +1 -1
  465. package/build/esm/cbac-picker/base/CategoryMarkingGroup.js +1 -1
  466. package/build/esm/cbac-picker/base/CategoryMarkingGroup.js.map +1 -1
  467. package/build/esm/cbac-picker/base/CbacPickerDialogFooter.js.map +1 -1
  468. package/build/esm/cbac-picker/base/InfoBanner.js.map +1 -1
  469. package/build/esm/cbac-picker/base/MarkingButton.js +1 -1
  470. package/build/esm/cbac-picker/base/MarkingButton.js.map +1 -1
  471. package/build/esm/cbac-picker/base/MaxClassificationField.js.map +1 -1
  472. package/build/esm/cbac-picker/base/OverflowButton.js +1 -1
  473. package/build/esm/cbac-picker/base/OverflowButton.js.map +1 -1
  474. package/build/esm/cbac-picker/base/OverflowItem.js +1 -1
  475. package/build/esm/cbac-picker/base/OverflowItem.js.map +1 -1
  476. package/build/esm/cbac-picker/base/ValidationWarning.js.map +1 -1
  477. package/build/esm/cbac-picker/base/selectionStateHelpers.js.map +1 -1
  478. package/build/esm/cbac-picker/useCbacPickerState.js.map +1 -1
  479. package/build/esm/cbac-picker/useCbacSelection.js.map +1 -1
  480. package/build/esm/cbac-picker/useConstraintCallout.js.map +1 -1
  481. package/build/esm/cbac-picker/utils/cbacPickerUtils.js.map +1 -1
  482. package/build/esm/cbac-picker/utils/errorMessages.js.map +1 -1
  483. package/build/esm/cbac-picker/utils/selectionLogic.js.map +1 -1
  484. package/build/esm/cbac-picker/utils/validationMessages.js.map +1 -1
  485. package/build/esm/document-viewer/DocumentViewer.js +1 -1
  486. package/build/esm/document-viewer/DocumentViewer.js.map +1 -1
  487. package/build/esm/document-viewer/DocumentViewerApi.js.map +1 -1
  488. package/build/esm/document-viewer/TiffDocumentViewer.js +1 -1
  489. package/build/esm/document-viewer/TiffDocumentViewer.js.map +1 -1
  490. package/build/esm/document-viewer/hooks/useTiffToPdf.js.map +1 -1
  491. package/build/esm/email-viewer/BaseEmailViewer.js.map +1 -1
  492. package/build/esm/email-viewer/EmailViewer.js +1 -1
  493. package/build/esm/email-viewer/EmailViewer.js.map +1 -1
  494. package/build/esm/email-viewer/EmailViewerApi.js.map +1 -1
  495. package/build/esm/email-viewer/parseEmail.js.map +1 -1
  496. package/build/esm/excel-viewer/BaseExcelViewer.js +1 -0
  497. package/build/esm/excel-viewer/BaseExcelViewer.js.map +1 -1
  498. package/build/esm/excel-viewer/ExcelViewer.js +1 -1
  499. package/build/esm/excel-viewer/ExcelViewer.js.map +1 -1
  500. package/build/esm/excel-viewer/ExcelViewerApi.js.map +1 -1
  501. package/build/esm/excel-viewer/parseSpreadsheet.js.map +1 -1
  502. package/build/esm/filter-list/FilterInput.js.map +1 -1
  503. package/build/esm/filter-list/FilterList.js.map +1 -1
  504. package/build/esm/filter-list/FilterListApi.js.map +1 -1
  505. package/build/esm/filter-list/FilterListItemApi.js.map +1 -1
  506. package/build/esm/filter-list/base/AddFilterPopover.js +1 -1
  507. package/build/esm/filter-list/base/AddFilterPopover.js.map +1 -1
  508. package/build/esm/filter-list/base/BaseFilterList.js +1 -1
  509. package/build/esm/filter-list/base/BaseFilterList.js.map +1 -1
  510. package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -1
  511. package/build/esm/filter-list/base/ExcludeDropdown.js +1 -1
  512. package/build/esm/filter-list/base/ExcludeDropdown.js.map +1 -1
  513. package/build/esm/filter-list/base/FilterInputExcludeRow.js.map +1 -1
  514. package/build/esm/filter-list/base/FilterListContent.js +1 -1
  515. package/build/esm/filter-list/base/FilterListContent.js.map +1 -1
  516. package/build/esm/filter-list/base/FilterListHeader.js.map +1 -1
  517. package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
  518. package/build/esm/filter-list/base/FilterPopover.js.map +1 -1
  519. package/build/esm/filter-list/base/SortableFilterListItem.js.map +1 -1
  520. package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
  521. package/build/esm/filter-list/base/inputs/DateRangeHistogramInput.js.map +1 -1
  522. package/build/esm/filter-list/base/inputs/EmptyStringLabel.js +1 -0
  523. package/build/esm/filter-list/base/inputs/EmptyStringLabel.js.map +1 -1
  524. package/build/esm/filter-list/base/inputs/HistogramTooltip.js.map +1 -1
  525. package/build/esm/filter-list/base/inputs/ListogramInput.js +2 -2
  526. package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -1
  527. package/build/esm/filter-list/base/inputs/ListogramSkeleton.js.map +1 -1
  528. package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -1
  529. package/build/esm/filter-list/base/inputs/MultiSelectDropdownLayout.js.map +1 -1
  530. package/build/esm/filter-list/base/inputs/MultiSelectInlineLayout.js.map +1 -1
  531. package/build/esm/filter-list/base/inputs/MultiSelectInput.js +2 -2
  532. package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -1
  533. package/build/esm/filter-list/base/inputs/NoValueLabel.js.map +1 -1
  534. package/build/esm/filter-list/base/inputs/NullValueWrapper.js.map +1 -1
  535. package/build/esm/filter-list/base/inputs/NumberRangeInput.js.map +1 -1
  536. package/build/esm/filter-list/base/inputs/OptionLabel.js.map +1 -1
  537. package/build/esm/filter-list/base/inputs/RangeInput.js +1 -1
  538. package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -1
  539. package/build/esm/filter-list/base/inputs/SelectInputSkeleton.js.map +1 -1
  540. package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -1
  541. package/build/esm/filter-list/base/inputs/SingleSelectInput.js +1 -1
  542. package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
  543. package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -1
  544. package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -1
  545. package/build/esm/filter-list/base/inputs/ToggleInput.js.map +1 -1
  546. package/build/esm/filter-list/base/inputs/comboboxFilter.js.map +1 -1
  547. package/build/esm/filter-list/base/inputs/createDateHistogramBuckets.js.map +1 -1
  548. package/build/esm/filter-list/base/inputs/createHistogramBuckets.js.map +1 -1
  549. package/build/esm/filter-list/hooks/useDualScopeAggregation.js.map +1 -1
  550. package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
  551. package/build/esm/filter-list/hooks/useFilterPropertyAggregation.js.map +1 -1
  552. package/build/esm/filter-list/hooks/useFilterVisibility.js.map +1 -1
  553. package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -1
  554. package/build/esm/filter-list/inputs/ContainsTextFilterInput.js.map +1 -1
  555. package/build/esm/filter-list/inputs/DateRangeFilterInput.js.map +1 -1
  556. package/build/esm/filter-list/inputs/LinkedPropertyInput.js +1 -1
  557. package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
  558. package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -1
  559. package/build/esm/filter-list/inputs/MultiDateFilterInput.js.map +1 -1
  560. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
  561. package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
  562. package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -1
  563. package/build/esm/filter-list/inputs/SingleDateFilterInput.js.map +1 -1
  564. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
  565. package/build/esm/filter-list/inputs/StaticValuesFilterInput.js.map +1 -1
  566. package/build/esm/filter-list/inputs/TextTagsFilterInput.js.map +1 -1
  567. package/build/esm/filter-list/inputs/TimelineFilterInput.js.map +1 -1
  568. package/build/esm/filter-list/inputs/ToggleFilterInput.js.map +1 -1
  569. package/build/esm/filter-list/types/CustomRendererTypes.js.map +1 -1
  570. package/build/esm/filter-list/types/KeywordSearchTypes.js.map +1 -1
  571. package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -1
  572. package/build/esm/filter-list/types/StaticValuesTypes.js.map +1 -1
  573. package/build/esm/filter-list/utils/aggregationHelpers.js.map +1 -1
  574. package/build/esm/filter-list/utils/coerceFilterValue.js.map +1 -1
  575. package/build/esm/filter-list/utils/emptyFilterDisplayState.js.map +1 -1
  576. package/build/esm/filter-list/utils/filterStateSerialization.js.map +1 -1
  577. package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  578. package/build/esm/filter-list/utils/filterValues.js.map +1 -1
  579. package/build/esm/filter-list/utils/getFilterKey.js.map +1 -1
  580. package/build/esm/filter-list/utils/getFilterLabel.js.map +1 -1
  581. package/build/esm/filter-list/utils/narrowObjectSet.js.map +1 -1
  582. package/build/esm/filter-list/utils/summarizeFilterValue.js.map +1 -1
  583. package/build/esm/images/image-viewer/BaseImageViewer.js.map +1 -1
  584. package/build/esm/images/image-viewer/ImageViewer.js.map +1 -1
  585. package/build/esm/images/image-viewer/ImageViewerApi.js.map +1 -1
  586. package/build/esm/images/tiff-renderer/TiffRenderer.js +1 -0
  587. package/build/esm/images/tiff-renderer/TiffRenderer.js.map +1 -1
  588. package/build/esm/images/tiff-renderer/TiffViewerMedia.js.map +1 -1
  589. package/build/esm/markdown-renderer/MarkdownRenderer.js.map +1 -1
  590. package/build/esm/markdown-renderer/MarkdownViewerMedia.js.map +1 -1
  591. package/build/esm/object-table/CellContextMenu.js.map +1 -1
  592. package/build/esm/object-table/ColumnConfigDialog.js.map +1 -1
  593. package/build/esm/object-table/DefaultCellRenderer.js +4 -3
  594. package/build/esm/object-table/DefaultCellRenderer.js.map +1 -1
  595. package/build/esm/object-table/EditableCell.js +1 -1
  596. package/build/esm/object-table/EditableCell.js.map +1 -1
  597. package/build/esm/object-table/LoadingCell.js.map +1 -1
  598. package/build/esm/object-table/LoadingRow.js +1 -1
  599. package/build/esm/object-table/LoadingRow.js.map +1 -1
  600. package/build/esm/object-table/LoadingStateTable.js +3 -3
  601. package/build/esm/object-table/LoadingStateTable.js.map +1 -1
  602. package/build/esm/object-table/MultiColumnSortDialog.js +1 -1
  603. package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -1
  604. package/build/esm/object-table/NonIdealState.js.map +1 -1
  605. package/build/esm/object-table/ObjectTable.js.map +1 -1
  606. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  607. package/build/esm/object-table/SelectionCells.js.map +1 -1
  608. package/build/esm/object-table/SortableItemsList.js.map +1 -1
  609. package/build/esm/object-table/Table.js +1 -1
  610. package/build/esm/object-table/Table.js.map +1 -1
  611. package/build/esm/object-table/TableBody.js +1 -1
  612. package/build/esm/object-table/TableBody.js.map +1 -1
  613. package/build/esm/object-table/TableCell.js +1 -1
  614. package/build/esm/object-table/TableCell.js.map +1 -1
  615. package/build/esm/object-table/TableEditContainer.js.map +1 -1
  616. package/build/esm/object-table/TableHeader.js +1 -1
  617. package/build/esm/object-table/TableHeader.js.map +1 -1
  618. package/build/esm/object-table/TableHeaderContent.js.map +1 -1
  619. package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
  620. package/build/esm/object-table/TableRow.js.map +1 -1
  621. package/build/esm/object-table/components/AsyncValueCell.js.map +1 -1
  622. package/build/esm/object-table/components/CbacMarkingCell.js.map +1 -1
  623. package/build/esm/object-table/components/DatePickerCellField.js +1 -1
  624. package/build/esm/object-table/components/DatePickerCellField.js.map +1 -1
  625. package/build/esm/object-table/components/DropdownCellField.js +1 -1
  626. package/build/esm/object-table/components/DropdownCellField.js.map +1 -1
  627. package/build/esm/object-table/components/MandatoryMarkingCell.js.map +1 -1
  628. package/build/esm/object-table/components/ReadonlyDisplayCell.js.map +1 -1
  629. package/build/esm/object-table/components/TextInputCellField.js.map +1 -1
  630. package/build/esm/object-table/hooks/useCellContextMenu.js.map +1 -1
  631. package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
  632. package/build/esm/object-table/hooks/useColumnPinning.js.map +1 -1
  633. package/build/esm/object-table/hooks/useColumnResize.js.map +1 -1
  634. package/build/esm/object-table/hooks/useColumnVisibility.js.map +1 -1
  635. package/build/esm/object-table/hooks/useEditableTable.js.map +1 -1
  636. package/build/esm/object-table/hooks/useFocusedRow.js.map +1 -1
  637. package/build/esm/object-table/hooks/useFunctionColumnsData.js.map +1 -1
  638. package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
  639. package/build/esm/object-table/hooks/useObjectTableSnapshot.js.map +1 -1
  640. package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
  641. package/build/esm/object-table/hooks/useSelectionColumn.js.map +1 -1
  642. package/build/esm/object-table/hooks/useTableSorting.js.map +1 -1
  643. package/build/esm/object-table/utils/AsyncCellData.js.map +1 -1
  644. package/build/esm/object-table/utils/PortalTracker.js.map +1 -1
  645. package/build/esm/object-table/utils/deriveSelectionObjectSet.js.map +1 -1
  646. package/build/esm/object-table/utils/editableUtils.js.map +1 -1
  647. package/build/esm/object-table/utils/functionColumns.js.map +1 -1
  648. package/build/esm/object-table/utils/getColumnPinningStyles.js.map +1 -1
  649. package/build/esm/object-table/utils/getRowId.js.map +1 -1
  650. package/build/esm/object-table/utils/objectTableSnapshot.js.map +1 -1
  651. package/build/esm/object-table/utils/shouldShowEditableCell.js.map +1 -1
  652. package/build/esm/object-table/utils/types.js.map +1 -1
  653. package/build/esm/pdf-viewer/PdfRenderer.js.map +1 -1
  654. package/build/esm/pdf-viewer/PdfViewer.js.map +1 -1
  655. package/build/esm/pdf-viewer/PdfViewerContext.js.map +1 -1
  656. package/build/esm/pdf-viewer/components/PdfAnnotationOverlay.js.map +1 -1
  657. package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -1
  658. package/build/esm/pdf-viewer/components/PdfViewerContent.js +1 -1
  659. package/build/esm/pdf-viewer/components/PdfViewerContent.js.map +1 -1
  660. package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js +1 -1
  661. package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -1
  662. package/build/esm/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -1
  663. package/build/esm/pdf-viewer/components/PdfViewerSidebar.js +1 -1
  664. package/build/esm/pdf-viewer/components/PdfViewerSidebar.js.map +1 -1
  665. package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -1
  666. package/build/esm/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -1
  667. package/build/esm/pdf-viewer/components/PdfViewerToolbar.js.map +1 -1
  668. package/build/esm/pdf-viewer/constants.js.map +1 -1
  669. package/build/esm/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -1
  670. package/build/esm/pdf-viewer/hooks/usePdfAnnotationsByPage.js.map +1 -1
  671. package/build/esm/pdf-viewer/hooks/usePdfDocument.js.map +1 -1
  672. package/build/esm/pdf-viewer/hooks/usePdfFormFields.js.map +1 -1
  673. package/build/esm/pdf-viewer/hooks/usePdfHighlightMode.js.map +1 -1
  674. package/build/esm/pdf-viewer/hooks/usePdfOutline.js.map +1 -1
  675. package/build/esm/pdf-viewer/hooks/usePdfViewer.js.map +1 -1
  676. package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -1
  677. package/build/esm/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -1
  678. package/build/esm/pdf-viewer/hooks/usePdfViewerState.js.map +1 -1
  679. package/build/esm/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -1
  680. package/build/esm/public/experimental/action-form.js.map +1 -1
  681. package/build/esm/public/experimental/cbac-picker.js.map +1 -1
  682. package/build/esm/public/experimental/document-viewer.js.map +1 -1
  683. package/build/esm/public/experimental/email-viewer.js.map +1 -1
  684. package/build/esm/public/experimental/excel-viewer.js.map +1 -1
  685. package/build/esm/public/experimental/filter-list.js.map +1 -1
  686. package/build/esm/public/experimental/image-viewer.js.map +1 -1
  687. package/build/esm/public/experimental/markdown-renderer.js.map +1 -1
  688. package/build/esm/public/experimental/object-table.js.map +1 -1
  689. package/build/esm/public/experimental/pdf-viewer.js.map +1 -1
  690. package/build/esm/public/experimental/tiff-renderer.js.map +1 -1
  691. package/build/esm/public/experimental/video-viewer.js.map +1 -1
  692. package/build/esm/public/experimental/xml-viewer.js.map +1 -1
  693. package/build/esm/shared/ErrorBoundary.js.map +1 -1
  694. package/build/esm/shared/PortalContainerContext.js.map +1 -1
  695. package/build/esm/shared/PortalDismissLayer.js.map +1 -1
  696. package/build/esm/shared/calendar/DateCalendar.js +1 -1
  697. package/build/esm/shared/calendar/DateCalendar.js.map +1 -1
  698. package/build/esm/shared/calendar/DatePicker.js +2 -2
  699. package/build/esm/shared/calendar/DatePicker.js.map +1 -1
  700. package/build/esm/shared/calendar/DateRangeCalendar.js.map +1 -1
  701. package/build/esm/shared/calendar/DateRangePicker.js +2 -2
  702. package/build/esm/shared/calendar/DateRangePicker.js.map +1 -1
  703. package/build/esm/shared/calendar/LazyDateCalendar.js.map +1 -1
  704. package/build/esm/shared/calendar/LazyDateRangeCalendar.js.map +1 -1
  705. package/build/esm/shared/calendar/TimePicker.js.map +1 -1
  706. package/build/esm/shared/calendar/calendarShared.js.map +1 -1
  707. package/build/esm/shared/calendar/useDateEditState.js.map +1 -1
  708. package/build/esm/shared/dateUtils.js.map +1 -1
  709. package/build/esm/shared/hooks/useAsyncAction.js.map +1 -1
  710. package/build/esm/shared/hooks/useDebouncedValue.js.map +1 -1
  711. package/build/esm/shared/hooks/useEventCallback.js.map +1 -1
  712. package/build/esm/shared/hooks/useInfiniteScroll.js.map +1 -1
  713. package/build/esm/shared/hooks/useMediaContents.js.map +1 -1
  714. package/build/esm/theme/OsdkThemeContext.js.map +1 -1
  715. package/build/esm/theme/OsdkThemeProvider.js.map +1 -1
  716. package/build/esm/theme/useOsdkTheme.js.map +1 -1
  717. package/build/esm/theme/useSystemTheme.js.map +1 -1
  718. package/build/esm/util/UserAgent.js +1 -1
  719. package/build/esm/util/UserAgent.js.map +1 -1
  720. package/build/esm/util/withOsdkMetrics.js.map +1 -1
  721. package/build/esm/video-viewer/BaseVideoViewer.js.map +1 -1
  722. package/build/esm/video-viewer/VideoViewer.js.map +1 -1
  723. package/build/esm/video-viewer/VideoViewerApi.js.map +1 -1
  724. package/build/esm/xml-viewer/BaseXmlViewer.js.map +1 -1
  725. package/build/esm/xml-viewer/XmlViewer.js.map +1 -1
  726. package/build/esm/xml-viewer/XmlViewerApi.js.map +1 -1
  727. package/build/types/action-form/ActionForm.d.ts.map +1 -1
  728. package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
  729. package/build/types/action-form/BaseForm.d.ts.map +1 -1
  730. package/build/types/action-form/FormField.d.ts.map +1 -1
  731. package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
  732. package/build/types/action-form/FormHeader.d.ts.map +1 -1
  733. package/build/types/action-form/FormSection.d.ts.map +1 -1
  734. package/build/types/action-form/fields/AsyncDropdownField.d.ts.map +1 -1
  735. package/build/types/action-form/fields/CustomField.d.ts.map +1 -1
  736. package/build/types/action-form/fields/DropdownField.d.ts.map +1 -1
  737. package/build/types/action-form/fields/FieldBridge.d.ts.map +1 -1
  738. package/build/types/action-form/fields/FilePickerField.d.ts.map +1 -1
  739. package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -1
  740. package/build/types/action-form/fields/NumberInputField.d.ts.map +1 -1
  741. package/build/types/action-form/fields/ObjectSelectField.d.ts.map +1 -1
  742. package/build/types/action-form/fields/ObjectSetField.d.ts.map +1 -1
  743. package/build/types/action-form/fields/RadioButtonsField.d.ts.map +1 -1
  744. package/build/types/action-form/fields/SwitchField.d.ts.map +1 -1
  745. package/build/types/action-form/fields/TextAreaField.d.ts.map +1 -1
  746. package/build/types/action-form/fields/TextInputField.d.ts.map +1 -1
  747. package/build/types/action-form/utils/extractValidationRules.d.ts.map +1 -1
  748. package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts.map +1 -1
  749. package/build/types/aip-agent-chat/AipAgentChat.d.ts.map +1 -1
  750. package/build/types/aip-agent-chat/BaseAipAgentChat.d.ts.map +1 -1
  751. package/build/types/aip-agent-chat/components/AipAgentChatComposer.d.ts.map +1 -1
  752. package/build/types/aip-agent-chat/components/AipAgentChatLoader.d.ts.map +1 -1
  753. package/build/types/aip-agent-chat/components/AipAgentChatMessage.d.ts.map +1 -1
  754. package/build/types/aip-agent-chat/components/AipAgentChatMessageList.d.ts.map +1 -1
  755. package/build/types/aip-agent-chat/components/AipAgentChatModelPicker.d.ts.map +1 -1
  756. package/build/types/base-components/action-button/ActionButton.d.ts.map +1 -1
  757. package/build/types/base-components/callout/Callout.d.ts.map +1 -1
  758. package/build/types/base-components/checkbox/Checkbox.d.ts.map +1 -1
  759. package/build/types/base-components/combobox/Combobox.d.ts.map +1 -1
  760. package/build/types/base-components/dialog/Dialog.d.ts.map +1 -1
  761. package/build/types/base-components/draggable-list/DraggableList.d.ts.map +1 -1
  762. package/build/types/base-components/search-bar/SearchBar.d.ts.map +1 -1
  763. package/build/types/base-components/searchable-menu/SearchableMenu.d.ts.map +1 -1
  764. package/build/types/base-components/select/Select.d.ts.map +1 -1
  765. package/build/types/base-components/skeleton/SkeletonBar.d.ts.map +1 -1
  766. package/build/types/base-components/switch/Switch.d.ts.map +1 -1
  767. package/build/types/base-components/tooltip/Tooltip.d.ts.map +1 -1
  768. package/build/types/cbac-picker/CbacBanner.d.ts.map +1 -1
  769. package/build/types/cbac-picker/CbacBannerPopover.d.ts.map +1 -1
  770. package/build/types/cbac-picker/CbacPicker.d.ts.map +1 -1
  771. package/build/types/cbac-picker/CbacPickerDialog.d.ts.map +1 -1
  772. package/build/types/cbac-picker/base/BaseCbacBanner.d.ts.map +1 -1
  773. package/build/types/cbac-picker/base/BaseCbacBannerPopover.d.ts.map +1 -1
  774. package/build/types/cbac-picker/base/BaseCbacPicker.d.ts.map +1 -1
  775. package/build/types/cbac-picker/base/BaseCbacPickerDialog.d.ts.map +1 -1
  776. package/build/types/cbac-picker/base/CategoryMarkingGroup.d.ts.map +1 -1
  777. package/build/types/cbac-picker/base/CbacPickerDialogFooter.d.ts.map +1 -1
  778. package/build/types/cbac-picker/base/InfoBanner.d.ts.map +1 -1
  779. package/build/types/cbac-picker/base/MarkingButton.d.ts.map +1 -1
  780. package/build/types/cbac-picker/base/MaxClassificationField.d.ts.map +1 -1
  781. package/build/types/cbac-picker/base/OverflowButton.d.ts.map +1 -1
  782. package/build/types/cbac-picker/base/OverflowItem.d.ts.map +1 -1
  783. package/build/types/cbac-picker/base/ValidationWarning.d.ts.map +1 -1
  784. package/build/types/cbac-picker/useCbacPickerState.d.ts.map +1 -1
  785. package/build/types/cbac-picker/useCbacSelection.d.ts.map +1 -1
  786. package/build/types/cbac-picker/useConstraintCallout.d.ts.map +1 -1
  787. package/build/types/cbac-picker/utils/errorMessages.d.ts.map +1 -1
  788. package/build/types/document-viewer/DocumentViewer.d.ts.map +1 -1
  789. package/build/types/document-viewer/DocumentViewerApi.d.ts.map +1 -1
  790. package/build/types/document-viewer/TiffDocumentViewer.d.ts.map +1 -1
  791. package/build/types/document-viewer/hooks/useTiffToPdf.d.ts.map +1 -1
  792. package/build/types/email-viewer/BaseEmailViewer.d.ts.map +1 -1
  793. package/build/types/email-viewer/EmailViewer.d.ts.map +1 -1
  794. package/build/types/email-viewer/EmailViewerApi.d.ts.map +1 -1
  795. package/build/types/email-viewer/parseEmail.d.ts.map +1 -1
  796. package/build/types/excel-viewer/BaseExcelViewer.d.ts.map +1 -1
  797. package/build/types/excel-viewer/ExcelViewer.d.ts.map +1 -1
  798. package/build/types/excel-viewer/ExcelViewerApi.d.ts.map +1 -1
  799. package/build/types/excel-viewer/parseSpreadsheet.d.ts.map +1 -1
  800. package/build/types/filter-list/FilterInput.d.ts.map +1 -1
  801. package/build/types/filter-list/FilterList.d.ts.map +1 -1
  802. package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
  803. package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
  804. package/build/types/filter-list/base/AddFilterPopover.d.ts.map +1 -1
  805. package/build/types/filter-list/base/BaseFilterList.d.ts.map +1 -1
  806. package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -1
  807. package/build/types/filter-list/base/ExcludeDropdown.d.ts.map +1 -1
  808. package/build/types/filter-list/base/FilterInputExcludeRow.d.ts.map +1 -1
  809. package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -1
  810. package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -1
  811. package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -1
  812. package/build/types/filter-list/base/FilterPopover.d.ts.map +1 -1
  813. package/build/types/filter-list/base/SortableFilterListItem.d.ts.map +1 -1
  814. package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts.map +1 -1
  815. package/build/types/filter-list/base/inputs/DateRangeHistogramInput.d.ts.map +1 -1
  816. package/build/types/filter-list/base/inputs/EmptyStringLabel.d.ts.map +1 -1
  817. package/build/types/filter-list/base/inputs/HistogramTooltip.d.ts.map +1 -1
  818. package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -1
  819. package/build/types/filter-list/base/inputs/ListogramSkeleton.d.ts.map +1 -1
  820. package/build/types/filter-list/base/inputs/MultiDateInput.d.ts.map +1 -1
  821. package/build/types/filter-list/base/inputs/MultiSelectDropdownLayout.d.ts.map +1 -1
  822. package/build/types/filter-list/base/inputs/MultiSelectInlineLayout.d.ts.map +1 -1
  823. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -1
  824. package/build/types/filter-list/base/inputs/NoValueLabel.d.ts.map +1 -1
  825. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts.map +1 -1
  826. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts.map +1 -1
  827. package/build/types/filter-list/base/inputs/OptionLabel.d.ts.map +1 -1
  828. package/build/types/filter-list/base/inputs/RangeInput.d.ts.map +1 -1
  829. package/build/types/filter-list/base/inputs/SelectInputSkeleton.d.ts.map +1 -1
  830. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -1
  831. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts.map +1 -1
  832. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts.map +1 -1
  833. package/build/types/filter-list/base/inputs/TimelineInput.d.ts.map +1 -1
  834. package/build/types/filter-list/base/inputs/ToggleInput.d.ts.map +1 -1
  835. package/build/types/filter-list/base/inputs/createDateHistogramBuckets.d.ts.map +1 -1
  836. package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts.map +1 -1
  837. package/build/types/filter-list/hooks/useDualScopeAggregation.d.ts.map +1 -1
  838. package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -1
  839. package/build/types/filter-list/hooks/useFilterPropertyAggregation.d.ts.map +1 -1
  840. package/build/types/filter-list/hooks/useFilterVisibility.d.ts.map +1 -1
  841. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -1
  842. package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts.map +1 -1
  843. package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts.map +1 -1
  844. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -1
  845. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -1
  846. package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts.map +1 -1
  847. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -1
  848. package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -1
  849. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -1
  850. package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts.map +1 -1
  851. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -1
  852. package/build/types/filter-list/inputs/StaticValuesFilterInput.d.ts.map +1 -1
  853. package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts.map +1 -1
  854. package/build/types/filter-list/inputs/TimelineFilterInput.d.ts.map +1 -1
  855. package/build/types/filter-list/inputs/ToggleFilterInput.d.ts.map +1 -1
  856. package/build/types/filter-list/types/CustomRendererTypes.d.ts.map +1 -1
  857. package/build/types/filter-list/types/KeywordSearchTypes.d.ts.map +1 -1
  858. package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -1
  859. package/build/types/filter-list/types/StaticValuesTypes.d.ts.map +1 -1
  860. package/build/types/filter-list/utils/aggregationHelpers.d.ts.map +1 -1
  861. package/build/types/filter-list/utils/emptyFilterDisplayState.d.ts.map +1 -1
  862. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -1
  863. package/build/types/filter-list/utils/filterValues.d.ts.map +1 -1
  864. package/build/types/filter-list/utils/getFilterKey.d.ts.map +1 -1
  865. package/build/types/filter-list/utils/getFilterLabel.d.ts.map +1 -1
  866. package/build/types/filter-list/utils/narrowObjectSet.d.ts.map +1 -1
  867. package/build/types/filter-list/utils/summarizeFilterValue.d.ts.map +1 -1
  868. package/build/types/images/image-viewer/BaseImageViewer.d.ts.map +1 -1
  869. package/build/types/images/image-viewer/ImageViewer.d.ts.map +1 -1
  870. package/build/types/images/image-viewer/ImageViewerApi.d.ts.map +1 -1
  871. package/build/types/images/tiff-renderer/TiffRenderer.d.ts.map +1 -1
  872. package/build/types/images/tiff-renderer/TiffViewerMedia.d.ts.map +1 -1
  873. package/build/types/markdown-renderer/MarkdownRenderer.d.ts.map +1 -1
  874. package/build/types/markdown-renderer/MarkdownViewerMedia.d.ts.map +1 -1
  875. package/build/types/object-table/CellContextMenu.d.ts.map +1 -1
  876. package/build/types/object-table/ColumnConfigDialog.d.ts.map +1 -1
  877. package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -1
  878. package/build/types/object-table/EditableCell.d.ts.map +1 -1
  879. package/build/types/object-table/LoadingCell.d.ts.map +1 -1
  880. package/build/types/object-table/LoadingRow.d.ts.map +1 -1
  881. package/build/types/object-table/LoadingStateTable.d.ts.map +1 -1
  882. package/build/types/object-table/MultiColumnSortDialog.d.ts.map +1 -1
  883. package/build/types/object-table/NonIdealState.d.ts.map +1 -1
  884. package/build/types/object-table/ObjectTable.d.ts.map +1 -1
  885. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  886. package/build/types/object-table/SelectionCells.d.ts.map +1 -1
  887. package/build/types/object-table/SortableItemsList.d.ts.map +1 -1
  888. package/build/types/object-table/Table.d.ts.map +1 -1
  889. package/build/types/object-table/TableBody.d.ts.map +1 -1
  890. package/build/types/object-table/TableCell.d.ts.map +1 -1
  891. package/build/types/object-table/TableEditContainer.d.ts.map +1 -1
  892. package/build/types/object-table/TableHeader.d.ts.map +1 -1
  893. package/build/types/object-table/TableHeaderContent.d.ts.map +1 -1
  894. package/build/types/object-table/TableHeaderWithPopover.d.ts.map +1 -1
  895. package/build/types/object-table/TableRow.d.ts.map +1 -1
  896. package/build/types/object-table/components/AsyncValueCell.d.ts.map +1 -1
  897. package/build/types/object-table/components/CbacMarkingCell.d.ts.map +1 -1
  898. package/build/types/object-table/components/DatePickerCellField.d.ts.map +1 -1
  899. package/build/types/object-table/components/DropdownCellField.d.ts.map +1 -1
  900. package/build/types/object-table/components/MandatoryMarkingCell.d.ts.map +1 -1
  901. package/build/types/object-table/components/ReadonlyDisplayCell.d.ts.map +1 -1
  902. package/build/types/object-table/components/TextInputCellField.d.ts.map +1 -1
  903. package/build/types/object-table/hooks/useColumnDefs.d.ts.map +1 -1
  904. package/build/types/object-table/hooks/useColumnPinning.d.ts.map +1 -1
  905. package/build/types/object-table/hooks/useColumnVisibility.d.ts.map +1 -1
  906. package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -1
  907. package/build/types/object-table/hooks/useFocusedRow.d.ts.map +1 -1
  908. package/build/types/object-table/hooks/useFunctionColumnsData.d.ts.map +1 -1
  909. package/build/types/object-table/hooks/useObjectTableData.d.ts.map +1 -1
  910. package/build/types/object-table/hooks/useObjectTableSnapshot.d.ts.map +1 -1
  911. package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
  912. package/build/types/object-table/hooks/useSelectionColumn.d.ts.map +1 -1
  913. package/build/types/object-table/hooks/useTableSorting.d.ts.map +1 -1
  914. package/build/types/object-table/utils/AsyncCellData.d.ts.map +1 -1
  915. package/build/types/object-table/utils/PortalTracker.d.ts.map +1 -1
  916. package/build/types/object-table/utils/deriveSelectionObjectSet.d.ts.map +1 -1
  917. package/build/types/object-table/utils/functionColumns.d.ts.map +1 -1
  918. package/build/types/object-table/utils/getRowId.d.ts.map +1 -1
  919. package/build/types/object-table/utils/objectTableSnapshot.d.ts.map +1 -1
  920. package/build/types/object-table/utils/types.d.ts.map +1 -1
  921. package/build/types/pdf-viewer/PdfRenderer.d.ts.map +1 -1
  922. package/build/types/pdf-viewer/PdfViewer.d.ts.map +1 -1
  923. package/build/types/pdf-viewer/PdfViewerContext.d.ts.map +1 -1
  924. package/build/types/pdf-viewer/components/PdfAnnotationOverlay.d.ts.map +1 -1
  925. package/build/types/pdf-viewer/components/PdfViewerAnnotationLayer.d.ts.map +1 -1
  926. package/build/types/pdf-viewer/components/PdfViewerContent.d.ts.map +1 -1
  927. package/build/types/pdf-viewer/components/PdfViewerOutlineSidebar.d.ts.map +1 -1
  928. package/build/types/pdf-viewer/components/PdfViewerSearchBar.d.ts.map +1 -1
  929. package/build/types/pdf-viewer/components/PdfViewerSidebar.d.ts.map +1 -1
  930. package/build/types/pdf-viewer/components/PdfViewerSidebarHeader.d.ts.map +1 -1
  931. package/build/types/pdf-viewer/components/PdfViewerThumbnail.d.ts.map +1 -1
  932. package/build/types/pdf-viewer/components/PdfViewerToolbar.d.ts.map +1 -1
  933. package/build/types/pdf-viewer/constants.d.ts.map +1 -1
  934. package/build/types/pdf-viewer/hooks/usePdfAnnotationPortals.d.ts.map +1 -1
  935. package/build/types/pdf-viewer/hooks/usePdfAnnotationsByPage.d.ts.map +1 -1
  936. package/build/types/pdf-viewer/hooks/usePdfFormFields.d.ts.map +1 -1
  937. package/build/types/pdf-viewer/hooks/usePdfHighlightMode.d.ts.map +1 -1
  938. package/build/types/pdf-viewer/hooks/usePdfOutline.d.ts.map +1 -1
  939. package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts.map +1 -1
  940. package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts.map +1 -1
  941. package/build/types/pdf-viewer/hooks/usePdfViewerSearch.d.ts.map +1 -1
  942. package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts.map +1 -1
  943. package/build/types/pdf-viewer/hooks/usePdfViewerSync.d.ts.map +1 -1
  944. package/build/types/shared/ErrorBoundary.d.ts.map +1 -1
  945. package/build/types/shared/PortalContainerContext.d.ts.map +1 -1
  946. package/build/types/shared/PortalDismissLayer.d.ts.map +1 -1
  947. package/build/types/shared/calendar/DateCalendar.d.ts.map +1 -1
  948. package/build/types/shared/calendar/DatePicker.d.ts.map +1 -1
  949. package/build/types/shared/calendar/DateRangeCalendar.d.ts.map +1 -1
  950. package/build/types/shared/calendar/DateRangePicker.d.ts.map +1 -1
  951. package/build/types/shared/calendar/LazyDateCalendar.d.ts.map +1 -1
  952. package/build/types/shared/calendar/LazyDateRangeCalendar.d.ts.map +1 -1
  953. package/build/types/shared/calendar/TimePicker.d.ts.map +1 -1
  954. package/build/types/shared/calendar/useDateEditState.d.ts.map +1 -1
  955. package/build/types/shared/dateUtils.d.ts.map +1 -1
  956. package/build/types/shared/hooks/useAsyncAction.d.ts.map +1 -1
  957. package/build/types/shared/hooks/useInfiniteScroll.d.ts.map +1 -1
  958. package/build/types/theme/OsdkThemeContext.d.ts.map +1 -1
  959. package/build/types/theme/OsdkThemeProvider.d.ts.map +1 -1
  960. package/build/types/theme/useOsdkTheme.d.ts.map +1 -1
  961. package/build/types/theme/useSystemTheme.d.ts.map +1 -1
  962. package/build/types/util/UserAgent.d.ts.map +1 -1
  963. package/build/types/util/withOsdkMetrics.d.ts.map +1 -1
  964. package/build/types/video-viewer/BaseVideoViewer.d.ts.map +1 -1
  965. package/build/types/video-viewer/VideoViewer.d.ts.map +1 -1
  966. package/build/types/video-viewer/VideoViewerApi.d.ts.map +1 -1
  967. package/build/types/xml-viewer/BaseXmlViewer.d.ts.map +1 -1
  968. package/build/types/xml-viewer/XmlViewer.d.ts.map +1 -1
  969. package/build/types/xml-viewer/XmlViewerApi.d.ts.map +1 -1
  970. package/package.json +9 -10
  971. package/build/cjs/DateCalendar-FTW3OIEP.css.map +0 -1
  972. package/build/cjs/DateRangeCalendar-I4JHCZAK.css.map +0 -1
  973. package/build/cjs/DateRangeCalendar-PHC3VPW3.cjs +0 -12
  974. package/build/cjs/chunk-4VNWCW75.cjs.map +0 -1
  975. package/build/cjs/chunk-CASYBF4M.cjs.map +0 -1
  976. package/build/cjs/chunk-DA22W6ZO.cjs.map +0 -1
  977. package/build/cjs/chunk-F4JELV7M.cjs +0 -11
  978. package/build/cjs/chunk-IHVPE5CD.cjs.map +0 -1
  979. package/build/cjs/chunk-LGGRMQCE.cjs +0 -11
  980. package/build/cjs/chunk-MMPVBH5H.cjs.map +0 -1
  981. package/build/cjs/chunk-PYOEFNQH.cjs +0 -11
  982. package/build/cjs/chunk-Q5H4KPSL.cjs +0 -11
  983. package/build/cjs/chunk-VRTFHF24.cjs +0 -11
  984. package/build/cjs/chunk-W6DWGABB.cjs +0 -11
  985. package/build/cjs/chunk-WE4REEMW.cjs.map +0 -1
  986. package/build/cjs/chunk-XK4H7EHE.cjs.map +0 -1
  987. package/build/cjs/chunk-YTDSW5OV.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RangeInput.js","names":["Button","Input","classnames","debounce","React","memo","useCallback","useEffect","useId","useMemo","useRef","useState","DatePicker","createHistogramBuckets","getMaxBucketCount","niceTicks","HistogramTooltip","styles","sharedStyles","useStableData","DEBOUNCE_MS","SVG_W","SVG_H","PAD_LEFT","PAD_RIGHT","PAD_TOP","PAD_BOTTOM","PLOT_W","PLOT_H","BAR_GAP","COUNT_LABEL_FONT_SIZE","X_TICK_FONT_SIZE","X_TICK_LABEL_Y","computeBarLayout","bucketCount","barW","xLeft","i","xCenter","niceStep","rough","exponent","Math","floor","log10","fraction","pow","niceFraction","formatTickAdaptive","value","step","absValue","abs","Number","isInteger","String","magnitudeExp","magnitude","compactStep","decimals","max","min","ceil","toLocaleString","undefined","notation","maximumFractionDigits","minimumFractionDigits","useGrouping","RangeInputInner","valueCountPairs","isLoading","minValue","maxValue","onChange","showHistogram","className","style","config","histogramData","clickToFilter","minInputId","maxInputId","localMin","setLocalMin","formatValue","localMax","setLocalMax","onChangeRef","current","minValueRef","maxValueRef","debouncedMinChange","newValue","parsed","parseValue","debouncedMaxChange","handleDateMinChange","next","dispatch","handleDateMaxChange","cancel","displayPairs","computedRange","length","reduce","acc","p","toNumber","Infinity","fromNumber","dataRange","dataMin","dataMax","buckets","subtitle","maxBucketCount","yTicks","yTopValue","barLayout","dataBounds","minN","maxN","isDateLike","tickLabel","numericTicks","start","end","all","v","rounded","round","push","label","maxLabelLen","map","t","fits","stride","picked","COUNT_LABEL_THRESHOLD","skipCountLabel","dragRangeRef","dragStartCoordsRef","dragRange","setDragRange","bucketsRef","configRef","selectionBandIndices","lo","hi","commitDragRange","treatAsClick","currentBuckets","currentConfig","minBucket","maxBucket","currentMin","currentMax","bucketMinN","bucketMaxN","svgRef","setSvgRef","el","hoveredIndex","setHoveredIndex","bucketIndexAtClient","clientX","clientY","svg","ctm","getScreenCTM","pt","createSVGPoint","x","y","local","matrixTransform","inverse","localX","slotW","idx","bucketIndexFromTarget","target","Element","dataIdx","getAttribute","parseInt","isNaN","handlePlotPointerDown","e","startIdx","preventDefault","currentTarget","setPointerCapture","pointerId","handlePlotPointerMove","handlePlotPointerUp","startCoords","dx","dy","handlePlotPointerCancel","handlePlotPointerLeave","handleClearFilter","hasActiveFilter","handleMinChange","handleMaxChange","createElement","rangeInput","emptyMessage","clearButton","onClick","disabled","histogramWrapper","ref","histogramSvg","viewBox","preserveAspectRatio","role","onPointerDown","onPointerUp","onPointerCancel","onPointerMove","onPointerLeave","axisLines","tickValue","yFrac","key","axisLine","x1","x2","y1","y2","vectorEffect","yAxisLabel","textAnchor","selectionBand","width","height","bars","bucket","index","heightFrac","count","barH","isInRange","isInDragRange","histogramBar","formatTooltip","countLabels","cx","barTop","insideBar","countLabel","xTicks","xTickLabel","xFrac","text","svgWidth","svgHeight","svgElement","inputType","DateRangeInputs","onMinChange","onMaxChange","formatDate","minLabel","maxLabel","rangeInputs","inputWrapper","htmlFor","inputLabel","RangeBoundInput","id","placeholder","formatPlaceholder","inputProps","ariaLabel","separator","handleNativeChange","_extends","type","input","RangeInput"],"sources":["RangeInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Input } from \"@base-ui/react/input\";\nimport classnames from \"classnames\";\nimport { debounce } from \"lodash-es\";\nimport React, {\n memo,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { DatePicker } from \"../../../shared/calendar/index.js\";\nimport {\n createHistogramBuckets,\n getMaxBucketCount,\n type HistogramBucket,\n niceTicks,\n} from \"./createHistogramBuckets.js\";\nimport { HistogramTooltip } from \"./HistogramTooltip.js\";\nimport styles from \"./RangeInput.module.css\";\nimport sharedStyles from \"./shared.module.css\";\nimport { useStableData } from \"./useStableData.js\";\n\nconst DEBOUNCE_MS = 300;\n\n/** SVG viewBox. The bars/axisLines stretch with the container; text font\n * size is in viewBox units so it stays readable across container widths. */\nconst SVG_W = 400;\nconst SVG_H = 180;\nconst PAD_LEFT = 30;\nconst PAD_RIGHT = 10;\nconst PAD_TOP = 20;\nconst PAD_BOTTOM = 48;\nconst PLOT_W = SVG_W - PAD_LEFT - PAD_RIGHT;\nconst PLOT_H = SVG_H - PAD_TOP - PAD_BOTTOM;\nconst BAR_GAP = 2;\n/** Must match --osdk-filter-range-histogram-label-font-size. */\nconst COUNT_LABEL_FONT_SIZE = 16;\n/** Must match --osdk-filter-range-histogram-axis-font-size (body-large = 16px). */\nconst X_TICK_FONT_SIZE = 16;\nconst X_TICK_LABEL_Y = PAD_TOP + PLOT_H + 22;\n\ninterface BarLayout {\n barW: number;\n xLeft: (i: number) => number;\n xCenter: (i: number) => number;\n}\n\nfunction computeBarLayout(bucketCount: number): BarLayout | null {\n if (bucketCount === 0) {\n return null;\n }\n const barW = (PLOT_W - BAR_GAP * (bucketCount - 1)) / bucketCount;\n return {\n barW,\n xLeft: (i: number) => PAD_LEFT + i * (barW + BAR_GAP),\n xCenter: (i: number) => PAD_LEFT + i * (barW + BAR_GAP) + barW / 2,\n };\n}\n\n/** Round `rough` to the nearest 1/2/5 × 10^n — produces \"nice\" axis steps. */\nfunction niceStep(rough: number): number {\n if (rough <= 0) {\n return 1;\n }\n const exponent = Math.floor(Math.log10(rough));\n const fraction = rough / Math.pow(10, exponent);\n const niceFraction = fraction <= 1\n ? 1\n : fraction <= 2\n ? 2\n : fraction <= 5\n ? 5\n : 10;\n return niceFraction * Math.pow(10, exponent);\n}\n\n/**\n * Format a numeric tick label with precision derived from the step size, so\n * adjacent ticks always render to distinct strings even on tightly-clustered\n * data (where compact notation with 1 decimal would round multiple ticks to\n * the same label).\n */\nfunction formatTickAdaptive(value: number, step: number): string {\n const absValue = Math.abs(value);\n if (\n absValue < 10_000\n && Number.isInteger(value)\n && Number.isInteger(step)\n ) {\n return String(value);\n }\n if (absValue >= 1000) {\n const magnitudeExp = Math.floor(Math.log10(absValue) / 3) * 3;\n const magnitude = Math.pow(10, magnitudeExp);\n const compactStep = step / magnitude;\n if (compactStep >= 0.05) {\n const decimals = Math.max(\n 0,\n Math.min(2, Math.ceil(-Math.log10(compactStep))),\n );\n return value.toLocaleString(undefined, {\n notation: \"compact\",\n maximumFractionDigits: decimals,\n minimumFractionDigits: 0,\n });\n }\n }\n return value.toLocaleString(undefined, {\n maximumFractionDigits: 0,\n useGrouping: true,\n });\n}\n\nexport interface RangeInputConfig<T> {\n inputType: \"number\" | \"date\";\n formatValue: (value: T | undefined) => string;\n parseValue: (value: string) => T | undefined;\n toNumber: (value: T) => number;\n fromNumber: (value: number) => T;\n minLabel: string;\n maxLabel: string;\n formatTooltip: (min: T, max: T, count: number) => string;\n formatPlaceholder?: (value: T) => string;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /**\n * For `inputType === \"date\"`: forwarded to each `DatePicker` (From/To)\n * so the histogram From/To inputs render the consumer-provided display\n * string instead of ISO. Ignored for number ranges.\n */\n formatDate?: (date: Date) => string;\n}\n\nexport interface RangeInputProps<T> {\n valueCountPairs: Array<{ value: T; count: number }>;\n isLoading: boolean;\n minValue: T | undefined;\n maxValue: T | undefined;\n onChange: (min: T | undefined, max: T | undefined) => void;\n showHistogram?: boolean;\n className?: string;\n style?: React.CSSProperties;\n config: RangeInputConfig<T>;\n /**\n * Optional pre-computed histogram. If provided, `RangeInput` skips its\n * built-in bucketer and uses these buckets verbatim. Use this when the\n * caller has domain knowledge that improves on uniform numeric bucketing\n * — e.g. `createDateHistogramBuckets` snaps to calendar boundaries and\n * supplies per-bucket tick labels.\n */\n histogramData?: {\n buckets: Array<HistogramBucket<T>>;\n subtitle?: string;\n };\n /**\n * When true, clicking a histogram bar replaces the filter range with\n * that bucket's `[min, max]`. Default `false` (no behavior change).\n */\n clickToFilter?: boolean;\n}\n\nfunction RangeInputInner<T>({\n valueCountPairs,\n isLoading,\n minValue,\n maxValue,\n onChange,\n showHistogram = true,\n className,\n style,\n config,\n histogramData,\n clickToFilter = false,\n}: RangeInputProps<T>): React.ReactElement {\n const minInputId = useId();\n const maxInputId = useId();\n\n const [localMin, setLocalMin] = useState<string>(\n config.formatValue(minValue),\n );\n const [localMax, setLocalMax] = useState<string>(\n config.formatValue(maxValue),\n );\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\n const debouncedMinChange = useMemo(\n () =>\n debounce((newValue: string) => {\n const parsed = config.parseValue(newValue);\n onChangeRef.current(parsed, maxValueRef.current);\n }, DEBOUNCE_MS),\n [config],\n );\n\n const debouncedMaxChange = useMemo(\n () =>\n debounce((newValue: string) => {\n const parsed = config.parseValue(newValue);\n onChangeRef.current(minValueRef.current, parsed);\n }, DEBOUNCE_MS),\n [config],\n );\n\n // Date branch handlers — only invoked when `config.inputType === \"date\"`,\n // so T is Date. Reusing the refs above keeps the callbacks identity-stable\n // across renders, so the cross-bound update of one boundary doesn't bust\n // the React.memo on the OTHER DatePicker.\n const handleDateMinChange = useCallback((next: Date | null): void => {\n const dispatch = onChangeRef.current as RangeOnChange<Date>;\n dispatch(next ?? undefined, maxValueRef.current as Date | undefined);\n }, []);\n const handleDateMaxChange = useCallback((next: Date | null): void => {\n const dispatch = onChangeRef.current as RangeOnChange<Date>;\n dispatch(minValueRef.current as Date | undefined, next ?? undefined);\n }, []);\n\n useEffect(() => {\n setLocalMin(config.formatValue(minValue));\n debouncedMinChange.cancel();\n }, [minValue, config, debouncedMinChange]);\n\n useEffect(() => {\n setLocalMax(config.formatValue(maxValue));\n debouncedMaxChange.cancel();\n }, [maxValue, config, debouncedMaxChange]);\n\n useEffect(() => {\n return () => {\n debouncedMinChange.cancel();\n debouncedMaxChange.cancel();\n };\n }, [debouncedMinChange, debouncedMaxChange]);\n\n const displayPairs = useStableData(valueCountPairs, isLoading);\n\n const computedRange = useMemo(() => {\n if (displayPairs.length === 0) {\n return { min: undefined, max: undefined };\n }\n const min = displayPairs.reduce(\n (acc, p) => Math.min(acc, config.toNumber(p.value)),\n Infinity,\n );\n const max = displayPairs.reduce(\n (acc, p) => Math.max(acc, config.toNumber(p.value)),\n -Infinity,\n );\n return {\n min: config.fromNumber(min),\n max: config.fromNumber(max),\n };\n }, [displayPairs, config]);\n\n const dataRange = useMemo(() => ({\n dataMin: computedRange.min,\n dataMax: computedRange.max,\n }), [computedRange.min, computedRange.max]);\n\n const buckets = useMemo<Array<HistogramBucket<T>>>(() => {\n if (histogramData) {\n return histogramData.buckets;\n }\n if (\n !showHistogram\n || displayPairs.length === 0\n || computedRange.min === undefined\n || computedRange.max === undefined\n ) {\n return [];\n }\n return createHistogramBuckets(\n displayPairs,\n { min: computedRange.min, max: computedRange.max },\n config.toNumber,\n config.fromNumber,\n );\n }, [\n histogramData,\n showHistogram,\n displayPairs,\n computedRange,\n config,\n ]);\n\n const subtitle = histogramData?.subtitle ?? \"\";\n\n const maxBucketCount = useMemo(() => getMaxBucketCount(buckets), [buckets]);\n const yTicks = useMemo(() => niceTicks(maxBucketCount), [maxBucketCount]);\n const yTopValue = yTicks[yTicks.length - 1] || maxBucketCount || 1;\n\n const barLayout = useMemo(\n () => computeBarLayout(buckets.length),\n [buckets.length],\n );\n\n const dataBounds = useMemo<{ minN: number; maxN: number } | null>(() => {\n if (buckets.length === 0) {\n return null;\n }\n return {\n minN: config.toNumber(buckets[0].min),\n maxN: config.toNumber(buckets[buckets.length - 1].max),\n };\n }, [buckets, config]);\n\n // Date histograms ship per-bucket `tickLabel` (Jan, Feb, …); numeric\n // histograms don't. For the latter we compute \"nice\" tick values\n // *within* the data range so labels reflect the actual values rather\n // than offsets-from-zero.\n const isDateLike = buckets.length > 0 && buckets[0].tickLabel != null;\n const numericTicks = useMemo<Array<{ value: number; label: string }>>(() => {\n if (isDateLike || dataBounds == null) {\n return [];\n }\n const { minN, maxN } = dataBounds;\n if (maxN <= minN) {\n return [];\n }\n const step = niceStep((maxN - minN) / 8);\n const start = Math.ceil(minN / step) * step;\n const end = Math.floor(maxN / step) * step;\n const all: Array<{ value: number; label: string }> = [];\n for (let v = start; v <= end + step / 2; v += step) {\n const rounded = Math.round(v / step) * step;\n all.push({ value: rounded, label: formatTickAdaptive(rounded, step) });\n }\n if (all.length <= 2) {\n return all;\n }\n const maxLabelLen = Math.max(...all.map((t) => t.label.length));\n const minSpacing = maxLabelLen * X_TICK_FONT_SIZE * 0.6 + 8;\n const fits = Math.max(2, Math.floor(PLOT_W / minSpacing) + 1);\n if (all.length <= fits) {\n return all;\n }\n const stride = Math.ceil((all.length - 1) / (fits - 1));\n const picked: Array<{ value: number; label: string }> = [];\n for (let i = 0; i < all.length; i += stride) {\n picked.push(all[i]);\n }\n if (picked[picked.length - 1] !== all[all.length - 1]) {\n picked.push(all[all.length - 1]);\n }\n return picked;\n }, [dataBounds, isDateLike]);\n\n // Skip count labels when there are too many bars to fit them readably.\n // Threshold of 10 matches the PRD heuristic.\n const COUNT_LABEL_THRESHOLD = 10;\n const skipCountLabel = useCallback(\n (i: number) => {\n if (buckets.length <= COUNT_LABEL_THRESHOLD) {\n return false;\n }\n const stride = Math.ceil(buckets.length / COUNT_LABEL_THRESHOLD);\n return i % stride !== 0;\n },\n [buckets.length],\n );\n\n // Drag range tracked in a ref so synchronous read/write across\n // pointerdown → pointermove → pointerup is reliable. A separate state\n // value mirrors the ref so the SVG re-renders to highlight the dragged\n // range while the user is dragging. Start coords are tracked separately\n // so a near-zero-movement pointerup gets treated as a click (which can\n // clear an in-band filter) instead of a single-bucket drag commit.\n const dragRangeRef = useRef<{ start: number; end: number } | null>(null);\n const dragStartCoordsRef = useRef<{ x: number; y: number } | null>(null);\n const [dragRange, setDragRange] = useState<\n { start: number; end: number } | null\n >(null);\n\n const bucketsRef = useRef(buckets);\n bucketsRef.current = buckets;\n const configRef = useRef(config);\n configRef.current = config;\n\n // Bucket-index bounds [lo, hi] for the translucent selection band that sits\n // behind the bars. During a drag we use the live drag range; otherwise we\n // map the committed minValue/maxValue back to the buckets they cover.\n const selectionBandIndices = useMemo<\n { lo: number; hi: number } | null\n >(() => {\n if (dragRange != null) {\n return {\n lo: Math.min(dragRange.start, dragRange.end),\n hi: Math.max(dragRange.start, dragRange.end),\n };\n }\n if (\n minValue === undefined\n || maxValue === undefined\n || buckets.length === 0\n ) {\n return null;\n }\n const minN = config.toNumber(minValue);\n const maxN = config.toNumber(maxValue);\n let lo = -1;\n let hi = -1;\n // Buckets are half-open [min, max). Use strict inequality on the shared\n // endpoints so a bucket that ends exactly at the filter's minN (or starts\n // exactly at maxN) is NOT pulled into the band — otherwise the band over-\n // extends by one bucket on each side after commit.\n for (let i = 0; i < buckets.length; i++) {\n if (lo === -1 && config.toNumber(buckets[i].max) > minN) {\n lo = i;\n }\n if (config.toNumber(buckets[i].min) < maxN) {\n hi = i;\n }\n }\n if (lo === -1 || hi === -1 || lo > hi) {\n return null;\n }\n return { lo, hi };\n }, [dragRange, minValue, maxValue, buckets, config]);\n\n const commitDragRange = useCallback(\n (start: number, end: number, treatAsClick: boolean) => {\n const currentBuckets = bucketsRef.current;\n const currentConfig = configRef.current;\n const lo = Math.min(start, end);\n const hi = Math.max(start, end);\n const minBucket = currentBuckets[lo];\n const maxBucket = currentBuckets[hi];\n if (minBucket == null || maxBucket == null) {\n return;\n }\n\n // A click (vs a drag) within the existing selection band clears the\n // filter — a stray click anywhere inside the highlighted area can be\n // undone without reaching for the inputs. A short drag inside one\n // bucket no longer triggers the clear path because the threshold\n // disambiguates click from micro-drag.\n const currentMin = minValueRef.current;\n const currentMax = maxValueRef.current;\n if (\n treatAsClick\n && start === end\n && currentMin !== undefined\n && currentMax !== undefined\n ) {\n const minN = currentConfig.toNumber(currentMin);\n const maxN = currentConfig.toNumber(currentMax);\n const bucketMinN = currentConfig.toNumber(minBucket.min);\n const bucketMaxN = currentConfig.toNumber(minBucket.max);\n const inBand = minN <= bucketMaxN && maxN >= bucketMinN;\n if (inBand) {\n onChangeRef.current(undefined, undefined);\n return;\n }\n }\n onChangeRef.current(minBucket.min, maxBucket.max);\n },\n [],\n );\n\n // Distance (in client px) below which a pointerup is treated as a click\n // — see commitDragRange for the reason. 4px squared = 16.\n const DRAG_VS_CLICK_THRESHOLD_SQ = 16;\n\n const svgRef = useRef<SVGSVGElement | null>(null);\n const setSvgRef = useCallback((el: SVGSVGElement | null) => {\n svgRef.current = el;\n }, []);\n const [hoveredIndex, setHoveredIndex] = useState<number | null>(null);\n\n const bucketIndexAtClient = useCallback(\n (clientX: number, clientY: number): number | null => {\n const svg = svgRef.current;\n const bucketCount = bucketsRef.current.length;\n if (!svg || bucketCount === 0) {\n return null;\n }\n const ctm = svg.getScreenCTM();\n if (!ctm) {\n return null;\n }\n const pt = svg.createSVGPoint();\n pt.x = clientX;\n pt.y = clientY;\n const local = pt.matrixTransform(ctm.inverse());\n const localX = local.x - PAD_LEFT;\n const slotW = (PLOT_W + BAR_GAP) / bucketCount;\n const barW = slotW - BAR_GAP;\n // Snap to the bar whose center is nearest, so a pointer that lands in\n // the inter-bar gap selects the visually-closer bar.\n const idx = Math.round((localX - barW / 2) / slotW);\n return Math.max(0, Math.min(bucketCount - 1, idx));\n },\n [],\n );\n\n const bucketIndexFromTarget = useCallback(\n (target: EventTarget | null): number | null => {\n if (!(target instanceof Element)) {\n return null;\n }\n const dataIdx = target.getAttribute(\"data-bucket-index\");\n if (dataIdx == null) {\n return null;\n }\n const parsed = parseInt(dataIdx, 10);\n return Number.isNaN(parsed) ? null : parsed;\n },\n [],\n );\n\n const handlePlotPointerDown = useCallback(\n (e: React.PointerEvent<SVGSVGElement>) => {\n if (!clickToFilter) {\n return;\n }\n // Prefer the bucket index stamped on the bar via `data-bucket-index`\n // for the common case (also avoids `getScreenCTM` coord math). Fall\n // back to client-coord math when the press lands on the empty plot\n // background between bars.\n const startIdx = bucketIndexFromTarget(e.target)\n ?? bucketIndexAtClient(e.clientX, e.clientY);\n if (startIdx == null) {\n return;\n }\n e.preventDefault();\n // setPointerCapture routes subsequent move/up/cancel events to the\n // SVG even when the pointer leaves it, so we don't need\n // document-level listeners — and pointercancel handles\n // release-outside-window cases that mouseup can't.\n e.currentTarget.setPointerCapture(e.pointerId);\n setHoveredIndex(null);\n dragStartCoordsRef.current = { x: e.clientX, y: e.clientY };\n dragRangeRef.current = { start: startIdx, end: startIdx };\n setDragRange({ start: startIdx, end: startIdx });\n },\n [clickToFilter, bucketIndexFromTarget, bucketIndexAtClient],\n );\n\n const handlePlotPointerMove = useCallback(\n (e: React.PointerEvent<SVGSVGElement>) => {\n // Prefer the bucket-index attribute on the bar; fall back to client\n // coords for moves that land on the empty plot background between\n // bars (or that cross gaps during a drag).\n const idx = bucketIndexFromTarget(e.target)\n ?? bucketIndexAtClient(e.clientX, e.clientY);\n if (idx == null) {\n return;\n }\n if (dragRangeRef.current == null) {\n setHoveredIndex(idx);\n return;\n }\n const next = { ...dragRangeRef.current, end: idx };\n dragRangeRef.current = next;\n setDragRange(next);\n },\n [bucketIndexFromTarget, bucketIndexAtClient],\n );\n\n const handlePlotPointerUp = useCallback(\n (e: React.PointerEvent<SVGSVGElement>) => {\n const current = dragRangeRef.current;\n const startCoords = dragStartCoordsRef.current;\n dragRangeRef.current = null;\n dragStartCoordsRef.current = null;\n setDragRange(null);\n if (current == null || startCoords == null) {\n return;\n }\n const dx = e.clientX - startCoords.x;\n const dy = e.clientY - startCoords.y;\n const treatAsClick = dx * dx + dy * dy < DRAG_VS_CLICK_THRESHOLD_SQ;\n commitDragRange(current.start, current.end, treatAsClick);\n },\n [commitDragRange],\n );\n\n const handlePlotPointerCancel = useCallback(() => {\n dragRangeRef.current = null;\n dragStartCoordsRef.current = null;\n setDragRange(null);\n }, []);\n\n const handlePlotPointerLeave = useCallback(() => {\n if (dragRangeRef.current == null) {\n setHoveredIndex(null);\n }\n }, []);\n\n const handleClearFilter = useCallback(() => {\n onChangeRef.current(undefined, undefined);\n }, []);\n\n const hasActiveFilter = minValue !== undefined || maxValue !== undefined;\n\n const handleMinChange = useCallback(\n (next: string) => {\n setLocalMin(next);\n debouncedMinChange(next);\n },\n [debouncedMinChange],\n );\n\n const handleMaxChange = useCallback(\n (next: string) => {\n setLocalMax(next);\n debouncedMaxChange(next);\n },\n [debouncedMaxChange],\n );\n\n return (\n <div\n className={classnames(styles.rangeInput, className)}\n style={style}\n data-loading={isLoading}\n >\n {showHistogram && buckets.length === 0 && !isLoading && (\n <div className={sharedStyles.emptyMessage}>\n No values available\n </div>\n )}\n\n <Button\n className={styles.clearButton}\n data-active={hasActiveFilter || undefined}\n onClick={handleClearFilter}\n disabled={!hasActiveFilter}\n >\n Clear\n </Button>\n\n {showHistogram && buckets.length > 0 && barLayout != null && (\n <div className={styles.histogramWrapper}>\n <svg\n ref={setSvgRef}\n className={styles.histogramSvg}\n data-click-to-filter={clickToFilter || undefined}\n viewBox={`0 0 ${SVG_W} ${SVG_H}`}\n preserveAspectRatio=\"xMidYMid meet\"\n role=\"img\"\n aria-label=\"Histogram of value counts\"\n onPointerDown={clickToFilter ? handlePlotPointerDown : undefined}\n onPointerUp={clickToFilter ? handlePlotPointerUp : undefined}\n onPointerCancel={clickToFilter\n ? handlePlotPointerCancel\n : undefined}\n onPointerMove={handlePlotPointerMove}\n onPointerLeave={handlePlotPointerLeave}\n >\n <g className={styles.axisLines}>\n {yTicks.map((tickValue) => {\n const yFrac = yTopValue > 0 ? tickValue / yTopValue : 0;\n const y = PAD_TOP + PLOT_H - yFrac * PLOT_H;\n return (\n <g key={tickValue}>\n <line\n className={styles.axisLine}\n x1={PAD_LEFT}\n x2={SVG_W - PAD_RIGHT}\n y1={y}\n y2={y}\n vectorEffect=\"non-scaling-stroke\"\n />\n <text\n className={styles.yAxisLabel}\n x={PAD_LEFT - 4}\n y={y + 3}\n textAnchor=\"end\"\n >\n {tickValue}\n </text>\n </g>\n );\n })}\n </g>\n\n {selectionBandIndices != null && (\n <rect\n className={styles.selectionBand}\n x={barLayout.xLeft(selectionBandIndices.lo)}\n y={PAD_TOP}\n width={barLayout.xLeft(selectionBandIndices.hi)\n + barLayout.barW\n - barLayout.xLeft(selectionBandIndices.lo)}\n height={PLOT_H}\n data-dragging={dragRange != null || undefined}\n />\n )}\n\n <g className={styles.bars}>\n {buckets.map((bucket, index) => {\n const x = barLayout.xLeft(index);\n const heightFrac = yTopValue > 0\n ? bucket.count / yTopValue\n : 0;\n const barH = Math.max(0, heightFrac * PLOT_H);\n const y = PAD_TOP + PLOT_H - barH;\n // Buckets are half-open [min, max). Strict inequality on the\n // shared endpoints keeps adjacent buckets out of the active\n // styling when the filter starts/ends exactly on a boundary.\n const isInRange = (minValue === undefined\n || config.toNumber(bucket.max) > config.toNumber(minValue))\n && (maxValue === undefined\n || config.toNumber(bucket.min)\n < config.toNumber(maxValue));\n const isInDragRange = dragRange != null\n && index >= Math.min(dragRange.start, dragRange.end)\n && index <= Math.max(dragRange.start, dragRange.end);\n return (\n <rect\n key={index}\n className={styles.histogramBar}\n data-in-range={isInRange || isInDragRange}\n data-click-to-filter={clickToFilter || undefined}\n data-dragging={isInDragRange || undefined}\n x={x}\n y={y}\n width={Math.max(barLayout.barW, 0.5)}\n height={barH}\n data-bucket-index={index}\n >\n <title>\n {config.formatTooltip(\n bucket.min,\n bucket.max,\n bucket.count,\n )}\n </title>\n </rect>\n );\n })}\n </g>\n\n <g className={styles.countLabels}>\n {buckets.map((bucket, index) => {\n if (bucket.count === 0) {\n return null;\n }\n if (skipCountLabel(index)) {\n return null;\n }\n const cx = barLayout.xCenter(index);\n const heightFrac = yTopValue > 0\n ? bucket.count / yTopValue\n : 0;\n const barH = heightFrac * PLOT_H;\n const barTop = PAD_TOP + PLOT_H - barH;\n // If the label would render above the SVG's content area,\n // tuck it inside the top of the bar instead so it doesn't\n // get clipped by the popover/container.\n const insideBar = barTop - COUNT_LABEL_FONT_SIZE - 2 < 0;\n const y = insideBar\n ? barTop + COUNT_LABEL_FONT_SIZE\n : barTop - 4;\n return (\n <text\n key={index}\n className={styles.countLabel}\n data-inside-bar={insideBar || undefined}\n x={cx}\n y={y}\n textAnchor=\"middle\"\n >\n {bucket.count.toLocaleString()}\n </text>\n );\n })}\n </g>\n\n <g className={styles.xTicks}>\n {isDateLike\n ? buckets.map((bucket, index) => {\n if (bucket.tickLabel == null) {\n return null;\n }\n if (\n buckets.length > COUNT_LABEL_THRESHOLD\n && skipCountLabel(index)\n ) {\n return null;\n }\n return (\n <text\n key={index}\n className={styles.xTickLabel}\n x={barLayout.xCenter(index)}\n y={X_TICK_LABEL_Y}\n textAnchor=\"middle\"\n >\n {bucket.tickLabel}\n </text>\n );\n })\n : dataBounds != null\n ? numericTicks.map(({ value, label }, i) => {\n const xFrac = (value - dataBounds.minN)\n / (dataBounds.maxN - dataBounds.minN);\n const x = PAD_LEFT + xFrac * PLOT_W;\n return (\n <text\n key={i}\n className={styles.xTickLabel}\n x={x}\n y={X_TICK_LABEL_Y}\n textAnchor=\"middle\"\n >\n {label}\n </text>\n );\n })\n : null}\n </g>\n\n {subtitle && (\n <text\n className={styles.subtitle}\n x={SVG_W / 2}\n y={SVG_H - 8}\n textAnchor=\"middle\"\n >\n {subtitle}\n </text>\n )}\n </svg>\n {hoveredIndex != null && dragRange == null\n && buckets[hoveredIndex] != null && (\n <HistogramTooltip\n text={config.formatTooltip(\n buckets[hoveredIndex].min,\n buckets[hoveredIndex].max,\n buckets[hoveredIndex].count,\n )}\n cx={barLayout.xCenter(hoveredIndex)}\n barTop={PAD_TOP + PLOT_H\n - (yTopValue > 0\n ? buckets[hoveredIndex].count / yTopValue\n : 0) * PLOT_H}\n svgWidth={SVG_W}\n svgHeight={SVG_H}\n svgElement={svgRef.current}\n />\n )}\n </div>\n )}\n\n {config.inputType === \"date\"\n ? (\n <DateRangeInputs\n minValue={minValue as Date | undefined}\n maxValue={maxValue as Date | undefined}\n onMinChange={handleDateMinChange}\n onMaxChange={handleDateMaxChange}\n formatDate={config.formatDate}\n minLabel={config.minLabel}\n maxLabel={config.maxLabel}\n />\n )\n : (\n <div className={styles.rangeInputs}>\n <div className={styles.inputWrapper}>\n <label htmlFor={minInputId} className={styles.inputLabel}>\n {config.minLabel}\n </label>\n <RangeBoundInput\n id={minInputId}\n value={localMin}\n onChange={handleMinChange}\n placeholder={dataRange.dataMin !== undefined\n && config.formatPlaceholder\n ? config.formatPlaceholder(dataRange.dataMin)\n : undefined}\n inputProps={config.inputProps}\n ariaLabel={config.minLabel}\n />\n </div>\n\n <span className={styles.separator} aria-hidden=\"true\">\n –\n </span>\n\n <div className={styles.inputWrapper}>\n <label htmlFor={maxInputId} className={styles.inputLabel}>\n {config.maxLabel}\n </label>\n <RangeBoundInput\n id={maxInputId}\n value={localMax}\n onChange={handleMaxChange}\n placeholder={dataRange.dataMax !== undefined\n && config.formatPlaceholder\n ? config.formatPlaceholder(dataRange.dataMax)\n : undefined}\n inputProps={config.inputProps}\n ariaLabel={config.maxLabel}\n />\n </div>\n </div>\n )}\n </div>\n );\n}\n\ntype RangeOnChange<T> = (\n min: T | undefined,\n max: T | undefined,\n) => void;\n\ninterface DateRangeInputsProps {\n minValue: Date | undefined;\n maxValue: Date | undefined;\n onMinChange: (next: Date | null) => void;\n onMaxChange: (next: Date | null) => void;\n formatDate: ((date: Date) => string) | undefined;\n minLabel: string;\n maxLabel: string;\n}\n\nfunction DateRangeInputs({\n minValue,\n maxValue,\n onMinChange,\n onMaxChange,\n formatDate,\n minLabel,\n maxLabel,\n}: DateRangeInputsProps): React.ReactElement {\n return (\n <div className={styles.rangeInputs}>\n <DatePicker\n value={minValue ?? null}\n onChange={onMinChange}\n max={maxValue}\n placeholder={minLabel}\n ariaLabel={minLabel}\n formatDate={formatDate}\n />\n <DatePicker\n value={maxValue ?? null}\n onChange={onMaxChange}\n min={minValue}\n placeholder={maxLabel}\n ariaLabel={maxLabel}\n formatDate={formatDate}\n />\n </div>\n );\n}\n\ninterface RangeBoundInputProps {\n id: string;\n value: string;\n onChange: (next: string) => void;\n placeholder: string | undefined;\n inputProps: React.InputHTMLAttributes<HTMLInputElement> | undefined;\n ariaLabel: string;\n}\n\nfunction RangeBoundInput({\n id,\n value,\n onChange,\n placeholder,\n inputProps,\n ariaLabel,\n}: RangeBoundInputProps): React.ReactElement {\n const handleNativeChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e.target.value);\n },\n [onChange],\n );\n return (\n <Input\n id={id}\n type=\"number\"\n className={styles.input}\n value={value}\n onChange={handleNativeChange}\n placeholder={placeholder}\n aria-label={ariaLabel}\n {...inputProps}\n />\n );\n}\n\nexport const RangeInput = memo(RangeInputInner) as typeof RangeInputInner;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"RangeInput.js","names":["Button","Input","classnames","debounce","React","memo","useCallback","useEffect","useId","useMemo","useRef","useState","DatePicker","createHistogramBuckets","getMaxBucketCount","niceTicks","HistogramTooltip","useStableData","styles","sharedStyles","DEBOUNCE_MS","SVG_W","SVG_H","PAD_LEFT","PAD_RIGHT","PAD_TOP","PAD_BOTTOM","PLOT_W","PLOT_H","BAR_GAP","COUNT_LABEL_FONT_SIZE","X_TICK_FONT_SIZE","X_TICK_LABEL_Y","computeBarLayout","bucketCount","barW","xLeft","i","xCenter","niceStep","rough","exponent","Math","floor","log10","fraction","pow","niceFraction","formatTickAdaptive","value","step","absValue","abs","Number","isInteger","String","magnitudeExp","magnitude","compactStep","decimals","max","min","ceil","toLocaleString","undefined","notation","maximumFractionDigits","minimumFractionDigits","useGrouping","RangeInputInner","valueCountPairs","isLoading","minValue","maxValue","onChange","showHistogram","className","style","config","histogramData","clickToFilter","minInputId","maxInputId","localMin","setLocalMin","formatValue","localMax","setLocalMax","onChangeRef","current","minValueRef","maxValueRef","debouncedMinChange","newValue","parsed","parseValue","debouncedMaxChange","handleDateMinChange","next","dispatch","handleDateMaxChange","cancel","displayPairs","computedRange","length","reduce","acc","p","toNumber","Infinity","fromNumber","dataRange","dataMin","dataMax","buckets","subtitle","maxBucketCount","yTicks","yTopValue","barLayout","dataBounds","minN","maxN","isDateLike","tickLabel","numericTicks","start","end","all","v","rounded","round","push","label","maxLabelLen","map","t","fits","stride","picked","COUNT_LABEL_THRESHOLD","skipCountLabel","dragRangeRef","dragStartCoordsRef","dragRange","setDragRange","bucketsRef","configRef","selectionBandIndices","lo","hi","commitDragRange","treatAsClick","currentBuckets","currentConfig","minBucket","maxBucket","currentMin","currentMax","bucketMinN","bucketMaxN","svgRef","setSvgRef","el","hoveredIndex","setHoveredIndex","bucketIndexAtClient","clientX","clientY","svg","ctm","getScreenCTM","pt","createSVGPoint","x","y","local","matrixTransform","inverse","localX","slotW","idx","bucketIndexFromTarget","target","Element","dataIdx","getAttribute","parseInt","isNaN","handlePlotPointerDown","e","startIdx","preventDefault","currentTarget","setPointerCapture","pointerId","handlePlotPointerMove","handlePlotPointerUp","startCoords","dx","dy","handlePlotPointerCancel","handlePlotPointerLeave","handleClearFilter","hasActiveFilter","handleMinChange","handleMaxChange","createElement","rangeInput","emptyMessage","clearButton","onClick","disabled","histogramWrapper","ref","histogramSvg","viewBox","preserveAspectRatio","role","onPointerDown","onPointerUp","onPointerCancel","onPointerMove","onPointerLeave","axisLines","tickValue","yFrac","key","axisLine","x1","x2","y1","y2","vectorEffect","yAxisLabel","textAnchor","selectionBand","width","height","bars","bucket","index","heightFrac","count","barH","isInRange","isInDragRange","histogramBar","formatTooltip","countLabels","cx","barTop","insideBar","countLabel","xTicks","xTickLabel","xFrac","text","svgWidth","svgHeight","svgElement","inputType","DateRangeInputs","onMinChange","onMaxChange","formatDate","minLabel","maxLabel","rangeInputs","inputWrapper","htmlFor","inputLabel","RangeBoundInput","id","placeholder","formatPlaceholder","inputProps","ariaLabel","separator","handleNativeChange","_extends","type","input","RangeInput"],"sources":["RangeInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Input } from \"@base-ui/react/input\";\nimport classnames from \"classnames\";\nimport { debounce } from \"lodash-es\";\nimport React, {\n memo,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { DatePicker } from \"../../../shared/calendar/index.js\";\nimport {\n createHistogramBuckets,\n getMaxBucketCount,\n type HistogramBucket,\n niceTicks,\n} from \"./createHistogramBuckets.js\";\nimport { HistogramTooltip } from \"./HistogramTooltip.js\";\nimport { useStableData } from \"./useStableData.js\";\n\nimport styles from \"./RangeInput.module.css\";\nimport sharedStyles from \"./shared.module.css\";\n\nconst DEBOUNCE_MS = 300;\n\n/** SVG viewBox. The bars/axisLines stretch with the container; text font\n * size is in viewBox units so it stays readable across container widths. */\nconst SVG_W = 400;\nconst SVG_H = 180;\nconst PAD_LEFT = 30;\nconst PAD_RIGHT = 10;\nconst PAD_TOP = 20;\nconst PAD_BOTTOM = 48;\nconst PLOT_W = SVG_W - PAD_LEFT - PAD_RIGHT;\nconst PLOT_H = SVG_H - PAD_TOP - PAD_BOTTOM;\nconst BAR_GAP = 2;\n/** Must match --osdk-filter-range-histogram-label-font-size. */\nconst COUNT_LABEL_FONT_SIZE = 16;\n/** Must match --osdk-filter-range-histogram-axis-font-size (body-large = 16px). */\nconst X_TICK_FONT_SIZE = 16;\nconst X_TICK_LABEL_Y = PAD_TOP + PLOT_H + 22;\n\ninterface BarLayout {\n barW: number;\n xLeft: (i: number) => number;\n xCenter: (i: number) => number;\n}\n\nfunction computeBarLayout(bucketCount: number): BarLayout | null {\n if (bucketCount === 0) {\n return null;\n }\n const barW = (PLOT_W - BAR_GAP * (bucketCount - 1)) / bucketCount;\n return {\n barW,\n xLeft: (i: number) => PAD_LEFT + i * (barW + BAR_GAP),\n xCenter: (i: number) => PAD_LEFT + i * (barW + BAR_GAP) + barW / 2,\n };\n}\n\n/** Round `rough` to the nearest 1/2/5 × 10^n — produces \"nice\" axis steps. */\nfunction niceStep(rough: number): number {\n if (rough <= 0) {\n return 1;\n }\n const exponent = Math.floor(Math.log10(rough));\n const fraction = rough / Math.pow(10, exponent);\n const niceFraction =\n fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * Math.pow(10, exponent);\n}\n\n/**\n * Format a numeric tick label with precision derived from the step size, so\n * adjacent ticks always render to distinct strings even on tightly-clustered\n * data (where compact notation with 1 decimal would round multiple ticks to\n * the same label).\n */\nfunction formatTickAdaptive(value: number, step: number): string {\n const absValue = Math.abs(value);\n if (absValue < 10_000 && Number.isInteger(value) && Number.isInteger(step)) {\n return String(value);\n }\n if (absValue >= 1000) {\n const magnitudeExp = Math.floor(Math.log10(absValue) / 3) * 3;\n const magnitude = Math.pow(10, magnitudeExp);\n const compactStep = step / magnitude;\n if (compactStep >= 0.05) {\n const decimals = Math.max(\n 0,\n Math.min(2, Math.ceil(-Math.log10(compactStep)))\n );\n return value.toLocaleString(undefined, {\n notation: \"compact\",\n maximumFractionDigits: decimals,\n minimumFractionDigits: 0,\n });\n }\n }\n return value.toLocaleString(undefined, {\n maximumFractionDigits: 0,\n useGrouping: true,\n });\n}\n\nexport interface RangeInputConfig<T> {\n inputType: \"number\" | \"date\";\n formatValue: (value: T | undefined) => string;\n parseValue: (value: string) => T | undefined;\n toNumber: (value: T) => number;\n fromNumber: (value: number) => T;\n minLabel: string;\n maxLabel: string;\n formatTooltip: (min: T, max: T, count: number) => string;\n formatPlaceholder?: (value: T) => string;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /**\n * For `inputType === \"date\"`: forwarded to each `DatePicker` (From/To)\n * so the histogram From/To inputs render the consumer-provided display\n * string instead of ISO. Ignored for number ranges.\n */\n formatDate?: (date: Date) => string;\n}\n\nexport interface RangeInputProps<T> {\n valueCountPairs: Array<{ value: T; count: number }>;\n isLoading: boolean;\n minValue: T | undefined;\n maxValue: T | undefined;\n onChange: (min: T | undefined, max: T | undefined) => void;\n showHistogram?: boolean;\n className?: string;\n style?: React.CSSProperties;\n config: RangeInputConfig<T>;\n /**\n * Optional pre-computed histogram. If provided, `RangeInput` skips its\n * built-in bucketer and uses these buckets verbatim. Use this when the\n * caller has domain knowledge that improves on uniform numeric bucketing\n * — e.g. `createDateHistogramBuckets` snaps to calendar boundaries and\n * supplies per-bucket tick labels.\n */\n histogramData?: {\n buckets: Array<HistogramBucket<T>>;\n subtitle?: string;\n };\n /**\n * When true, clicking a histogram bar replaces the filter range with\n * that bucket's `[min, max]`. Default `false` (no behavior change).\n */\n clickToFilter?: boolean;\n}\n\nfunction RangeInputInner<T>({\n valueCountPairs,\n isLoading,\n minValue,\n maxValue,\n onChange,\n showHistogram = true,\n className,\n style,\n config,\n histogramData,\n clickToFilter = false,\n}: RangeInputProps<T>): React.ReactElement {\n const minInputId = useId();\n const maxInputId = useId();\n\n const [localMin, setLocalMin] = useState<string>(\n config.formatValue(minValue)\n );\n const [localMax, setLocalMax] = useState<string>(\n config.formatValue(maxValue)\n );\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\n const debouncedMinChange = useMemo(\n () =>\n debounce((newValue: string) => {\n const parsed = config.parseValue(newValue);\n onChangeRef.current(parsed, maxValueRef.current);\n }, DEBOUNCE_MS),\n [config]\n );\n\n const debouncedMaxChange = useMemo(\n () =>\n debounce((newValue: string) => {\n const parsed = config.parseValue(newValue);\n onChangeRef.current(minValueRef.current, parsed);\n }, DEBOUNCE_MS),\n [config]\n );\n\n // Date branch handlers — only invoked when `config.inputType === \"date\"`,\n // so T is Date. Reusing the refs above keeps the callbacks identity-stable\n // across renders, so the cross-bound update of one boundary doesn't bust\n // the React.memo on the OTHER DatePicker.\n const handleDateMinChange = useCallback((next: Date | null): void => {\n const dispatch = onChangeRef.current as RangeOnChange<Date>;\n dispatch(next ?? undefined, maxValueRef.current as Date | undefined);\n }, []);\n const handleDateMaxChange = useCallback((next: Date | null): void => {\n const dispatch = onChangeRef.current as RangeOnChange<Date>;\n dispatch(minValueRef.current as Date | undefined, next ?? undefined);\n }, []);\n\n useEffect(() => {\n setLocalMin(config.formatValue(minValue));\n debouncedMinChange.cancel();\n }, [minValue, config, debouncedMinChange]);\n\n useEffect(() => {\n setLocalMax(config.formatValue(maxValue));\n debouncedMaxChange.cancel();\n }, [maxValue, config, debouncedMaxChange]);\n\n useEffect(() => {\n return () => {\n debouncedMinChange.cancel();\n debouncedMaxChange.cancel();\n };\n }, [debouncedMinChange, debouncedMaxChange]);\n\n const displayPairs = useStableData(valueCountPairs, isLoading);\n\n const computedRange = useMemo(() => {\n if (displayPairs.length === 0) {\n return { min: undefined, max: undefined };\n }\n const min = displayPairs.reduce(\n (acc, p) => Math.min(acc, config.toNumber(p.value)),\n Infinity\n );\n const max = displayPairs.reduce(\n (acc, p) => Math.max(acc, config.toNumber(p.value)),\n -Infinity\n );\n return {\n min: config.fromNumber(min),\n max: config.fromNumber(max),\n };\n }, [displayPairs, config]);\n\n const dataRange = useMemo(\n () => ({\n dataMin: computedRange.min,\n dataMax: computedRange.max,\n }),\n [computedRange.min, computedRange.max]\n );\n\n const buckets = useMemo<Array<HistogramBucket<T>>>(() => {\n if (histogramData) {\n return histogramData.buckets;\n }\n if (\n !showHistogram ||\n displayPairs.length === 0 ||\n computedRange.min === undefined ||\n computedRange.max === undefined\n ) {\n return [];\n }\n return createHistogramBuckets(\n displayPairs,\n { min: computedRange.min, max: computedRange.max },\n config.toNumber,\n config.fromNumber\n );\n }, [histogramData, showHistogram, displayPairs, computedRange, config]);\n\n const subtitle = histogramData?.subtitle ?? \"\";\n\n const maxBucketCount = useMemo(() => getMaxBucketCount(buckets), [buckets]);\n const yTicks = useMemo(() => niceTicks(maxBucketCount), [maxBucketCount]);\n const yTopValue = yTicks[yTicks.length - 1] || maxBucketCount || 1;\n\n const barLayout = useMemo(\n () => computeBarLayout(buckets.length),\n [buckets.length]\n );\n\n const dataBounds = useMemo<{ minN: number; maxN: number } | null>(() => {\n if (buckets.length === 0) {\n return null;\n }\n return {\n minN: config.toNumber(buckets[0].min),\n maxN: config.toNumber(buckets[buckets.length - 1].max),\n };\n }, [buckets, config]);\n\n // Date histograms ship per-bucket `tickLabel` (Jan, Feb, …); numeric\n // histograms don't. For the latter we compute \"nice\" tick values\n // *within* the data range so labels reflect the actual values rather\n // than offsets-from-zero.\n const isDateLike = buckets.length > 0 && buckets[0].tickLabel != null;\n const numericTicks = useMemo<Array<{ value: number; label: string }>>(() => {\n if (isDateLike || dataBounds == null) {\n return [];\n }\n const { minN, maxN } = dataBounds;\n if (maxN <= minN) {\n return [];\n }\n const step = niceStep((maxN - minN) / 8);\n const start = Math.ceil(minN / step) * step;\n const end = Math.floor(maxN / step) * step;\n const all: Array<{ value: number; label: string }> = [];\n for (let v = start; v <= end + step / 2; v += step) {\n const rounded = Math.round(v / step) * step;\n all.push({ value: rounded, label: formatTickAdaptive(rounded, step) });\n }\n if (all.length <= 2) {\n return all;\n }\n const maxLabelLen = Math.max(...all.map((t) => t.label.length));\n const minSpacing = maxLabelLen * X_TICK_FONT_SIZE * 0.6 + 8;\n const fits = Math.max(2, Math.floor(PLOT_W / minSpacing) + 1);\n if (all.length <= fits) {\n return all;\n }\n const stride = Math.ceil((all.length - 1) / (fits - 1));\n const picked: Array<{ value: number; label: string }> = [];\n for (let i = 0; i < all.length; i += stride) {\n picked.push(all[i]);\n }\n if (picked[picked.length - 1] !== all[all.length - 1]) {\n picked.push(all[all.length - 1]);\n }\n return picked;\n }, [dataBounds, isDateLike]);\n\n // Skip count labels when there are too many bars to fit them readably.\n // Threshold of 10 matches the PRD heuristic.\n const COUNT_LABEL_THRESHOLD = 10;\n const skipCountLabel = useCallback(\n (i: number) => {\n if (buckets.length <= COUNT_LABEL_THRESHOLD) {\n return false;\n }\n const stride = Math.ceil(buckets.length / COUNT_LABEL_THRESHOLD);\n return i % stride !== 0;\n },\n [buckets.length]\n );\n\n // Drag range tracked in a ref so synchronous read/write across\n // pointerdown → pointermove → pointerup is reliable. A separate state\n // value mirrors the ref so the SVG re-renders to highlight the dragged\n // range while the user is dragging. Start coords are tracked separately\n // so a near-zero-movement pointerup gets treated as a click (which can\n // clear an in-band filter) instead of a single-bucket drag commit.\n const dragRangeRef = useRef<{ start: number; end: number } | null>(null);\n const dragStartCoordsRef = useRef<{ x: number; y: number } | null>(null);\n const [dragRange, setDragRange] = useState<{\n start: number;\n end: number;\n } | null>(null);\n\n const bucketsRef = useRef(buckets);\n bucketsRef.current = buckets;\n const configRef = useRef(config);\n configRef.current = config;\n\n // Bucket-index bounds [lo, hi] for the translucent selection band that sits\n // behind the bars. During a drag we use the live drag range; otherwise we\n // map the committed minValue/maxValue back to the buckets they cover.\n const selectionBandIndices = useMemo<{\n lo: number;\n hi: number;\n } | null>(() => {\n if (dragRange != null) {\n return {\n lo: Math.min(dragRange.start, dragRange.end),\n hi: Math.max(dragRange.start, dragRange.end),\n };\n }\n if (\n minValue === undefined ||\n maxValue === undefined ||\n buckets.length === 0\n ) {\n return null;\n }\n const minN = config.toNumber(minValue);\n const maxN = config.toNumber(maxValue);\n let lo = -1;\n let hi = -1;\n // Buckets are half-open [min, max). Use strict inequality on the shared\n // endpoints so a bucket that ends exactly at the filter's minN (or starts\n // exactly at maxN) is NOT pulled into the band — otherwise the band over-\n // extends by one bucket on each side after commit.\n for (let i = 0; i < buckets.length; i++) {\n if (lo === -1 && config.toNumber(buckets[i].max) > minN) {\n lo = i;\n }\n if (config.toNumber(buckets[i].min) < maxN) {\n hi = i;\n }\n }\n if (lo === -1 || hi === -1 || lo > hi) {\n return null;\n }\n return { lo, hi };\n }, [dragRange, minValue, maxValue, buckets, config]);\n\n const commitDragRange = useCallback(\n (start: number, end: number, treatAsClick: boolean) => {\n const currentBuckets = bucketsRef.current;\n const currentConfig = configRef.current;\n const lo = Math.min(start, end);\n const hi = Math.max(start, end);\n const minBucket = currentBuckets[lo];\n const maxBucket = currentBuckets[hi];\n if (minBucket == null || maxBucket == null) {\n return;\n }\n\n // A click (vs a drag) within the existing selection band clears the\n // filter — a stray click anywhere inside the highlighted area can be\n // undone without reaching for the inputs. A short drag inside one\n // bucket no longer triggers the clear path because the threshold\n // disambiguates click from micro-drag.\n const currentMin = minValueRef.current;\n const currentMax = maxValueRef.current;\n if (\n treatAsClick &&\n start === end &&\n currentMin !== undefined &&\n currentMax !== undefined\n ) {\n const minN = currentConfig.toNumber(currentMin);\n const maxN = currentConfig.toNumber(currentMax);\n const bucketMinN = currentConfig.toNumber(minBucket.min);\n const bucketMaxN = currentConfig.toNumber(minBucket.max);\n const inBand = minN <= bucketMaxN && maxN >= bucketMinN;\n if (inBand) {\n onChangeRef.current(undefined, undefined);\n return;\n }\n }\n onChangeRef.current(minBucket.min, maxBucket.max);\n },\n []\n );\n\n // Distance (in client px) below which a pointerup is treated as a click\n // — see commitDragRange for the reason. 4px squared = 16.\n const DRAG_VS_CLICK_THRESHOLD_SQ = 16;\n\n const svgRef = useRef<SVGSVGElement | null>(null);\n const setSvgRef = useCallback((el: SVGSVGElement | null) => {\n svgRef.current = el;\n }, []);\n const [hoveredIndex, setHoveredIndex] = useState<number | null>(null);\n\n const bucketIndexAtClient = useCallback(\n (clientX: number, clientY: number): number | null => {\n const svg = svgRef.current;\n const bucketCount = bucketsRef.current.length;\n if (!svg || bucketCount === 0) {\n return null;\n }\n const ctm = svg.getScreenCTM();\n if (!ctm) {\n return null;\n }\n const pt = svg.createSVGPoint();\n pt.x = clientX;\n pt.y = clientY;\n const local = pt.matrixTransform(ctm.inverse());\n const localX = local.x - PAD_LEFT;\n const slotW = (PLOT_W + BAR_GAP) / bucketCount;\n const barW = slotW - BAR_GAP;\n // Snap to the bar whose center is nearest, so a pointer that lands in\n // the inter-bar gap selects the visually-closer bar.\n const idx = Math.round((localX - barW / 2) / slotW);\n return Math.max(0, Math.min(bucketCount - 1, idx));\n },\n []\n );\n\n const bucketIndexFromTarget = useCallback(\n (target: EventTarget | null): number | null => {\n if (!(target instanceof Element)) {\n return null;\n }\n const dataIdx = target.getAttribute(\"data-bucket-index\");\n if (dataIdx == null) {\n return null;\n }\n const parsed = parseInt(dataIdx, 10);\n return Number.isNaN(parsed) ? null : parsed;\n },\n []\n );\n\n const handlePlotPointerDown = useCallback(\n (e: React.PointerEvent<SVGSVGElement>) => {\n if (!clickToFilter) {\n return;\n }\n // Prefer the bucket index stamped on the bar via `data-bucket-index`\n // for the common case (also avoids `getScreenCTM` coord math). Fall\n // back to client-coord math when the press lands on the empty plot\n // background between bars.\n const startIdx =\n bucketIndexFromTarget(e.target) ??\n bucketIndexAtClient(e.clientX, e.clientY);\n if (startIdx == null) {\n return;\n }\n e.preventDefault();\n // setPointerCapture routes subsequent move/up/cancel events to the\n // SVG even when the pointer leaves it, so we don't need\n // document-level listeners — and pointercancel handles\n // release-outside-window cases that mouseup can't.\n e.currentTarget.setPointerCapture(e.pointerId);\n setHoveredIndex(null);\n dragStartCoordsRef.current = { x: e.clientX, y: e.clientY };\n dragRangeRef.current = { start: startIdx, end: startIdx };\n setDragRange({ start: startIdx, end: startIdx });\n },\n [clickToFilter, bucketIndexFromTarget, bucketIndexAtClient]\n );\n\n const handlePlotPointerMove = useCallback(\n (e: React.PointerEvent<SVGSVGElement>) => {\n // Prefer the bucket-index attribute on the bar; fall back to client\n // coords for moves that land on the empty plot background between\n // bars (or that cross gaps during a drag).\n const idx =\n bucketIndexFromTarget(e.target) ??\n bucketIndexAtClient(e.clientX, e.clientY);\n if (idx == null) {\n return;\n }\n if (dragRangeRef.current == null) {\n setHoveredIndex(idx);\n return;\n }\n const next = { ...dragRangeRef.current, end: idx };\n dragRangeRef.current = next;\n setDragRange(next);\n },\n [bucketIndexFromTarget, bucketIndexAtClient]\n );\n\n const handlePlotPointerUp = useCallback(\n (e: React.PointerEvent<SVGSVGElement>) => {\n const current = dragRangeRef.current;\n const startCoords = dragStartCoordsRef.current;\n dragRangeRef.current = null;\n dragStartCoordsRef.current = null;\n setDragRange(null);\n if (current == null || startCoords == null) {\n return;\n }\n const dx = e.clientX - startCoords.x;\n const dy = e.clientY - startCoords.y;\n const treatAsClick = dx * dx + dy * dy < DRAG_VS_CLICK_THRESHOLD_SQ;\n commitDragRange(current.start, current.end, treatAsClick);\n },\n [commitDragRange]\n );\n\n const handlePlotPointerCancel = useCallback(() => {\n dragRangeRef.current = null;\n dragStartCoordsRef.current = null;\n setDragRange(null);\n }, []);\n\n const handlePlotPointerLeave = useCallback(() => {\n if (dragRangeRef.current == null) {\n setHoveredIndex(null);\n }\n }, []);\n\n const handleClearFilter = useCallback(() => {\n onChangeRef.current(undefined, undefined);\n }, []);\n\n const hasActiveFilter = minValue !== undefined || maxValue !== undefined;\n\n const handleMinChange = useCallback(\n (next: string) => {\n setLocalMin(next);\n debouncedMinChange(next);\n },\n [debouncedMinChange]\n );\n\n const handleMaxChange = useCallback(\n (next: string) => {\n setLocalMax(next);\n debouncedMaxChange(next);\n },\n [debouncedMaxChange]\n );\n\n return (\n <div\n className={classnames(styles.rangeInput, className)}\n style={style}\n data-loading={isLoading}\n >\n {showHistogram && buckets.length === 0 && !isLoading && (\n <div className={sharedStyles.emptyMessage}>No values available</div>\n )}\n\n <Button\n className={styles.clearButton}\n data-active={hasActiveFilter || undefined}\n onClick={handleClearFilter}\n disabled={!hasActiveFilter}\n >\n Clear\n </Button>\n\n {showHistogram && buckets.length > 0 && barLayout != null && (\n <div className={styles.histogramWrapper}>\n <svg\n ref={setSvgRef}\n className={styles.histogramSvg}\n data-click-to-filter={clickToFilter || undefined}\n viewBox={`0 0 ${SVG_W} ${SVG_H}`}\n preserveAspectRatio=\"xMidYMid meet\"\n role=\"img\"\n aria-label=\"Histogram of value counts\"\n onPointerDown={clickToFilter ? handlePlotPointerDown : undefined}\n onPointerUp={clickToFilter ? handlePlotPointerUp : undefined}\n onPointerCancel={\n clickToFilter ? handlePlotPointerCancel : undefined\n }\n onPointerMove={handlePlotPointerMove}\n onPointerLeave={handlePlotPointerLeave}\n >\n <g className={styles.axisLines}>\n {yTicks.map((tickValue) => {\n const yFrac = yTopValue > 0 ? tickValue / yTopValue : 0;\n const y = PAD_TOP + PLOT_H - yFrac * PLOT_H;\n return (\n <g key={tickValue}>\n <line\n className={styles.axisLine}\n x1={PAD_LEFT}\n x2={SVG_W - PAD_RIGHT}\n y1={y}\n y2={y}\n vectorEffect=\"non-scaling-stroke\"\n />\n <text\n className={styles.yAxisLabel}\n x={PAD_LEFT - 4}\n y={y + 3}\n textAnchor=\"end\"\n >\n {tickValue}\n </text>\n </g>\n );\n })}\n </g>\n\n {selectionBandIndices != null && (\n <rect\n className={styles.selectionBand}\n x={barLayout.xLeft(selectionBandIndices.lo)}\n y={PAD_TOP}\n width={\n barLayout.xLeft(selectionBandIndices.hi) +\n barLayout.barW -\n barLayout.xLeft(selectionBandIndices.lo)\n }\n height={PLOT_H}\n data-dragging={dragRange != null || undefined}\n />\n )}\n\n <g className={styles.bars}>\n {buckets.map((bucket, index) => {\n const x = barLayout.xLeft(index);\n const heightFrac = yTopValue > 0 ? bucket.count / yTopValue : 0;\n const barH = Math.max(0, heightFrac * PLOT_H);\n const y = PAD_TOP + PLOT_H - barH;\n // Buckets are half-open [min, max). Strict inequality on the\n // shared endpoints keeps adjacent buckets out of the active\n // styling when the filter starts/ends exactly on a boundary.\n const isInRange =\n (minValue === undefined ||\n config.toNumber(bucket.max) > config.toNumber(minValue)) &&\n (maxValue === undefined ||\n config.toNumber(bucket.min) < config.toNumber(maxValue));\n const isInDragRange =\n dragRange != null &&\n index >= Math.min(dragRange.start, dragRange.end) &&\n index <= Math.max(dragRange.start, dragRange.end);\n return (\n <rect\n key={index}\n className={styles.histogramBar}\n data-in-range={isInRange || isInDragRange}\n data-click-to-filter={clickToFilter || undefined}\n data-dragging={isInDragRange || undefined}\n x={x}\n y={y}\n width={Math.max(barLayout.barW, 0.5)}\n height={barH}\n data-bucket-index={index}\n >\n <title>\n {config.formatTooltip(\n bucket.min,\n bucket.max,\n bucket.count\n )}\n </title>\n </rect>\n );\n })}\n </g>\n\n <g className={styles.countLabels}>\n {buckets.map((bucket, index) => {\n if (bucket.count === 0) {\n return null;\n }\n if (skipCountLabel(index)) {\n return null;\n }\n const cx = barLayout.xCenter(index);\n const heightFrac = yTopValue > 0 ? bucket.count / yTopValue : 0;\n const barH = heightFrac * PLOT_H;\n const barTop = PAD_TOP + PLOT_H - barH;\n // If the label would render above the SVG's content area,\n // tuck it inside the top of the bar instead so it doesn't\n // get clipped by the popover/container.\n const insideBar = barTop - COUNT_LABEL_FONT_SIZE - 2 < 0;\n const y = insideBar\n ? barTop + COUNT_LABEL_FONT_SIZE\n : barTop - 4;\n return (\n <text\n key={index}\n className={styles.countLabel}\n data-inside-bar={insideBar || undefined}\n x={cx}\n y={y}\n textAnchor=\"middle\"\n >\n {bucket.count.toLocaleString()}\n </text>\n );\n })}\n </g>\n\n <g className={styles.xTicks}>\n {isDateLike\n ? buckets.map((bucket, index) => {\n if (bucket.tickLabel == null) {\n return null;\n }\n if (\n buckets.length > COUNT_LABEL_THRESHOLD &&\n skipCountLabel(index)\n ) {\n return null;\n }\n return (\n <text\n key={index}\n className={styles.xTickLabel}\n x={barLayout.xCenter(index)}\n y={X_TICK_LABEL_Y}\n textAnchor=\"middle\"\n >\n {bucket.tickLabel}\n </text>\n );\n })\n : dataBounds != null\n ? numericTicks.map(({ value, label }, i) => {\n const xFrac =\n (value - dataBounds.minN) /\n (dataBounds.maxN - dataBounds.minN);\n const x = PAD_LEFT + xFrac * PLOT_W;\n return (\n <text\n key={i}\n className={styles.xTickLabel}\n x={x}\n y={X_TICK_LABEL_Y}\n textAnchor=\"middle\"\n >\n {label}\n </text>\n );\n })\n : null}\n </g>\n\n {subtitle && (\n <text\n className={styles.subtitle}\n x={SVG_W / 2}\n y={SVG_H - 8}\n textAnchor=\"middle\"\n >\n {subtitle}\n </text>\n )}\n </svg>\n {hoveredIndex != null &&\n dragRange == null &&\n buckets[hoveredIndex] != null && (\n <HistogramTooltip\n text={config.formatTooltip(\n buckets[hoveredIndex].min,\n buckets[hoveredIndex].max,\n buckets[hoveredIndex].count\n )}\n cx={barLayout.xCenter(hoveredIndex)}\n barTop={\n PAD_TOP +\n PLOT_H -\n (yTopValue > 0\n ? buckets[hoveredIndex].count / yTopValue\n : 0) *\n PLOT_H\n }\n svgWidth={SVG_W}\n svgHeight={SVG_H}\n svgElement={svgRef.current}\n />\n )}\n </div>\n )}\n\n {config.inputType === \"date\" ? (\n <DateRangeInputs\n minValue={minValue as Date | undefined}\n maxValue={maxValue as Date | undefined}\n onMinChange={handleDateMinChange}\n onMaxChange={handleDateMaxChange}\n formatDate={config.formatDate}\n minLabel={config.minLabel}\n maxLabel={config.maxLabel}\n />\n ) : (\n <div className={styles.rangeInputs}>\n <div className={styles.inputWrapper}>\n <label htmlFor={minInputId} className={styles.inputLabel}>\n {config.minLabel}\n </label>\n <RangeBoundInput\n id={minInputId}\n value={localMin}\n onChange={handleMinChange}\n placeholder={\n dataRange.dataMin !== undefined && config.formatPlaceholder\n ? config.formatPlaceholder(dataRange.dataMin)\n : undefined\n }\n inputProps={config.inputProps}\n ariaLabel={config.minLabel}\n />\n </div>\n\n <span className={styles.separator} aria-hidden=\"true\">\n –\n </span>\n\n <div className={styles.inputWrapper}>\n <label htmlFor={maxInputId} className={styles.inputLabel}>\n {config.maxLabel}\n </label>\n <RangeBoundInput\n id={maxInputId}\n value={localMax}\n onChange={handleMaxChange}\n placeholder={\n dataRange.dataMax !== undefined && config.formatPlaceholder\n ? config.formatPlaceholder(dataRange.dataMax)\n : undefined\n }\n inputProps={config.inputProps}\n ariaLabel={config.maxLabel}\n />\n </div>\n </div>\n )}\n </div>\n );\n}\n\ntype RangeOnChange<T> = (min: T | undefined, max: T | undefined) => void;\n\ninterface DateRangeInputsProps {\n minValue: Date | undefined;\n maxValue: Date | undefined;\n onMinChange: (next: Date | null) => void;\n onMaxChange: (next: Date | null) => void;\n formatDate: ((date: Date) => string) | undefined;\n minLabel: string;\n maxLabel: string;\n}\n\nfunction DateRangeInputs({\n minValue,\n maxValue,\n onMinChange,\n onMaxChange,\n formatDate,\n minLabel,\n maxLabel,\n}: DateRangeInputsProps): React.ReactElement {\n return (\n <div className={styles.rangeInputs}>\n <DatePicker\n value={minValue ?? null}\n onChange={onMinChange}\n max={maxValue}\n placeholder={minLabel}\n ariaLabel={minLabel}\n formatDate={formatDate}\n />\n <DatePicker\n value={maxValue ?? null}\n onChange={onMaxChange}\n min={minValue}\n placeholder={maxLabel}\n ariaLabel={maxLabel}\n formatDate={formatDate}\n />\n </div>\n );\n}\n\ninterface RangeBoundInputProps {\n id: string;\n value: string;\n onChange: (next: string) => void;\n placeholder: string | undefined;\n inputProps: React.InputHTMLAttributes<HTMLInputElement> | undefined;\n ariaLabel: string;\n}\n\nfunction RangeBoundInput({\n id,\n value,\n onChange,\n placeholder,\n inputProps,\n ariaLabel,\n}: RangeBoundInputProps): React.ReactElement {\n const handleNativeChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e.target.value);\n },\n [onChange]\n );\n return (\n <Input\n id={id}\n type=\"number\"\n className={styles.input}\n value={value}\n onChange={handleNativeChange}\n placeholder={placeholder}\n aria-label={ariaLabel}\n {...inputProps}\n />\n );\n}\n\nexport const RangeInput = memo(RangeInputInner) as typeof RangeInputInner;\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,KAAK,QAAQ,sBAAsB;AAC5C,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,QAAQ,QAAQ,WAAW;AACpC,OAAOC,KAAK,IACVC,IAAI,EACJC,WAAW,EACXC,SAAS,EACTC,KAAK,EACLC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AAEd,SAASC,UAAU,QAAQ,mCAAmC;AAC9D,SACEC,sBAAsB,EACtBC,iBAAiB,EAEjBC,SAAS,QACJ,6BAA6B;AACpC,SAASC,gBAAgB,QAAQ,uBAAuB;AACxD,SAASC,aAAa,QAAQ,oBAAoB;AAElD,OAAOC,MAAM,MAAM,yBAAyB;AAC5C,OAAOC,YAAY,MAAM,qBAAqB;AAE9C,MAAMC,WAAW,GAAG,GAAG;;AAEvB;AACA;AACA,MAAMC,KAAK,GAAG,GAAG;AACjB,MAAMC,KAAK,GAAG,GAAG;AACjB,MAAMC,QAAQ,GAAG,EAAE;AACnB,MAAMC,SAAS,GAAG,EAAE;AACpB,MAAMC,OAAO,GAAG,EAAE;AAClB,MAAMC,UAAU,GAAG,EAAE;AACrB,MAAMC,MAAM,GAAGN,KAAK,GAAGE,QAAQ,GAAGC,SAAS;AAC3C,MAAMI,MAAM,GAAGN,KAAK,GAAGG,OAAO,GAAGC,UAAU;AAC3C,MAAMG,OAAO,GAAG,CAAC;AACjB;AACA,MAAMC,qBAAqB,GAAG,EAAE;AAChC;AACA,MAAMC,gBAAgB,GAAG,EAAE;AAC3B,MAAMC,cAAc,GAAGP,OAAO,GAAGG,MAAM,GAAG,EAAE;AAQ5C,SAASK,gBAAgBA,CAACC,WAAmB,EAAoB;EAC/D,IAAIA,WAAW,KAAK,CAAC,EAAE;IACrB,OAAO,IAAI;EACb;EACA,MAAMC,IAAI,GAAG,CAACR,MAAM,GAAGE,OAAO,IAAIK,WAAW,GAAG,CAAC,CAAC,IAAIA,WAAW;EACjE,OAAO;IACLC,IAAI;IACJC,KAAK,EAAGC,CAAS,IAAKd,QAAQ,GAAGc,CAAC,IAAIF,IAAI,GAAGN,OAAO,CAAC;IACrDS,OAAO,EAAGD,CAAS,IAAKd,QAAQ,GAAGc,CAAC,IAAIF,IAAI,GAAGN,OAAO,CAAC,GAAGM,IAAI,GAAG;EACnE,CAAC;AACH;;AAEA;AACA,SAASI,QAAQA,CAACC,KAAa,EAAU;EACvC,IAAIA,KAAK,IAAI,CAAC,EAAE;IACd,OAAO,CAAC;EACV;EACA,MAAMC,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,KAAK,CAACJ,KAAK,CAAC,CAAC;EAC9C,MAAMK,QAAQ,GAAGL,KAAK,GAAGE,IAAI,CAACI,GAAG,CAAC,EAAE,EAAEL,QAAQ,CAAC;EAC/C,MAAMM,YAAY,GAChBF,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAGA,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAGA,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;EAChE,OAAOE,YAAY,GAAGL,IAAI,CAACI,GAAG,CAAC,EAAE,EAAEL,QAAQ,CAAC;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASO,kBAAkBA,CAACC,KAAa,EAAEC,IAAY,EAAU;EAC/D,MAAMC,QAAQ,GAAGT,IAAI,CAACU,GAAG,CAACH,KAAK,CAAC;EAChC,IAAIE,QAAQ,GAAG,MAAM,IAAIE,MAAM,CAACC,SAAS,CAACL,KAAK,CAAC,IAAII,MAAM,CAACC,SAAS,CAACJ,IAAI,CAAC,EAAE;IAC1E,OAAOK,MAAM,CAACN,KAAK,CAAC;EACtB;EACA,IAAIE,QAAQ,IAAI,IAAI,EAAE;IACpB,MAAMK,YAAY,GAAGd,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,KAAK,CAACO,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;IAC7D,MAAMM,SAAS,GAAGf,IAAI,CAACI,GAAG,CAAC,EAAE,EAAEU,YAAY,CAAC;IAC5C,MAAME,WAAW,GAAGR,IAAI,GAAGO,SAAS;IACpC,IAAIC,WAAW,IAAI,IAAI,EAAE;MACvB,MAAMC,QAAQ,GAAGjB,IAAI,CAACkB,GAAG,CACvB,CAAC,EACDlB,IAAI,CAACmB,GAAG,CAAC,CAAC,EAAEnB,IAAI,CAACoB,IAAI,CAAC,CAACpB,IAAI,CAACE,KAAK,CAACc,WAAW,CAAC,CAAC,CACjD,CAAC;MACD,OAAOT,KAAK,CAACc,cAAc,CAACC,SAAS,EAAE;QACrCC,QAAQ,EAAE,SAAS;QACnBC,qBAAqB,EAAEP,QAAQ;QAC/BQ,qBAAqB,EAAE;MACzB,CAAC,CAAC;IACJ;EACF;EACA,OAAOlB,KAAK,CAACc,cAAc,CAACC,SAAS,EAAE;IACrCE,qBAAqB,EAAE,CAAC;IACxBE,WAAW,EAAE;EACf,CAAC,CAAC;AACJ;AAiDA,SAASC,eAAeA,CAAI;EAC1BC,eAAe;EACfC,SAAS;EACTC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,aAAa,GAAG,IAAI;EACpBC,SAAS;EACTC,KAAK;EACLC,MAAM;EACNC,aAAa;EACbC,aAAa,GAAG;AACE,CAAC,EAAsB;EACzC,MAAMC,UAAU,GAAGzE,KAAK,CAAC,CAAC;EAC1B,MAAM0E,UAAU,GAAG1E,KAAK,CAAC,CAAC;EAE1B,MAAM,CAAC2E,QAAQ,EAAEC,WAAW,CAAC,GAAGzE,QAAQ,CACtCmE,MAAM,CAACO,WAAW,CAACb,QAAQ,CAC7B,CAAC;EACD,MAAM,CAACc,QAAQ,EAAEC,WAAW,CAAC,GAAG5E,QAAQ,CACtCmE,MAAM,CAACO,WAAW,CAACZ,QAAQ,CAC7B,CAAC;EACD,MAAMe,WAAW,GAAG9E,MAAM,CAACgE,QAAQ,CAAC;EACpCc,WAAW,CAACC,OAAO,GAAGf,QAAQ;EAC9B,MAAMgB,WAAW,GAAGhF,MAAM,CAAC8D,QAAQ,CAAC;EACpCkB,WAAW,CAACD,OAAO,GAAGjB,QAAQ;EAC9B,MAAMmB,WAAW,GAAGjF,MAAM,CAAC+D,QAAQ,CAAC;EACpCkB,WAAW,CAACF,OAAO,GAAGhB,QAAQ;EAE9B,MAAMmB,kBAAkB,GAAGnF,OAAO,CAChC,MACEN,QAAQ,CAAE0F,QAAgB,IAAK;IAC7B,MAAMC,MAAM,GAAGhB,MAAM,CAACiB,UAAU,CAACF,QAAQ,CAAC;IAC1CL,WAAW,CAACC,OAAO,CAACK,MAAM,EAAEH,WAAW,CAACF,OAAO,CAAC;EAClD,CAAC,EAAErE,WAAW,CAAC,EACjB,CAAC0D,MAAM,CACT,CAAC;EAED,MAAMkB,kBAAkB,GAAGvF,OAAO,CAChC,MACEN,QAAQ,CAAE0F,QAAgB,IAAK;IAC7B,MAAMC,MAAM,GAAGhB,MAAM,CAACiB,UAAU,CAACF,QAAQ,CAAC;IAC1CL,WAAW,CAACC,OAAO,CAACC,WAAW,CAACD,OAAO,EAAEK,MAAM,CAAC;EAClD,CAAC,EAAE1E,WAAW,CAAC,EACjB,CAAC0D,MAAM,CACT,CAAC;;EAED;EACA;EACA;EACA;EACA,MAAMmB,mBAAmB,GAAG3F,WAAW,CAAE4F,IAAiB,IAAW;IACnE,MAAMC,QAAQ,GAAGX,WAAW,CAACC,OAA8B;IAC3DU,QAAQ,CAACD,IAAI,IAAIlC,SAAS,EAAE2B,WAAW,CAACF,OAA2B,CAAC;EACtE,CAAC,EAAE,EAAE,CAAC;EACN,MAAMW,mBAAmB,GAAG9F,WAAW,CAAE4F,IAAiB,IAAW;IACnE,MAAMC,QAAQ,GAAGX,WAAW,CAACC,OAA8B;IAC3DU,QAAQ,CAACT,WAAW,CAACD,OAAO,EAAsBS,IAAI,IAAIlC,SAAS,CAAC;EACtE,CAAC,EAAE,EAAE,CAAC;EAENzD,SAAS,CAAC,MAAM;IACd6E,WAAW,CAACN,MAAM,CAACO,WAAW,CAACb,QAAQ,CAAC,CAAC;IACzCoB,kBAAkB,CAACS,MAAM,CAAC,CAAC;EAC7B,CAAC,EAAE,CAAC7B,QAAQ,EAAEM,MAAM,EAAEc,kBAAkB,CAAC,CAAC;EAE1CrF,SAAS,CAAC,MAAM;IACdgF,WAAW,CAACT,MAAM,CAACO,WAAW,CAACZ,QAAQ,CAAC,CAAC;IACzCuB,kBAAkB,CAACK,MAAM,CAAC,CAAC;EAC7B,CAAC,EAAE,CAAC5B,QAAQ,EAAEK,MAAM,EAAEkB,kBAAkB,CAAC,CAAC;EAE1CzF,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXqF,kBAAkB,CAACS,MAAM,CAAC,CAAC;MAC3BL,kBAAkB,CAACK,MAAM,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CAACT,kBAAkB,EAAEI,kBAAkB,CAAC,CAAC;EAE5C,MAAMM,YAAY,GAAGrF,aAAa,CAACqD,eAAe,EAAEC,SAAS,CAAC;EAE9D,MAAMgC,aAAa,GAAG9F,OAAO,CAAC,MAAM;IAClC,IAAI6F,YAAY,CAACE,MAAM,KAAK,CAAC,EAAE;MAC7B,OAAO;QAAE3C,GAAG,EAAEG,SAAS;QAAEJ,GAAG,EAAEI;MAAU,CAAC;IAC3C;IACA,MAAMH,GAAG,GAAGyC,YAAY,CAACG,MAAM,CAC7B,CAACC,GAAG,EAAEC,CAAC,KAAKjE,IAAI,CAACmB,GAAG,CAAC6C,GAAG,EAAE5B,MAAM,CAAC8B,QAAQ,CAACD,CAAC,CAAC1D,KAAK,CAAC,CAAC,EACnD4D,QACF,CAAC;IACD,MAAMjD,GAAG,GAAG0C,YAAY,CAACG,MAAM,CAC7B,CAACC,GAAG,EAAEC,CAAC,KAAKjE,IAAI,CAACkB,GAAG,CAAC8C,GAAG,EAAE5B,MAAM,CAAC8B,QAAQ,CAACD,CAAC,CAAC1D,KAAK,CAAC,CAAC,EACnD,CAAC4D,QACH,CAAC;IACD,OAAO;MACLhD,GAAG,EAAEiB,MAAM,CAACgC,UAAU,CAACjD,GAAG,CAAC;MAC3BD,GAAG,EAAEkB,MAAM,CAACgC,UAAU,CAAClD,GAAG;IAC5B,CAAC;EACH,CAAC,EAAE,CAAC0C,YAAY,EAAExB,MAAM,CAAC,CAAC;EAE1B,MAAMiC,SAAS,GAAGtG,OAAO,CACvB,OAAO;IACLuG,OAAO,EAAET,aAAa,CAAC1C,GAAG;IAC1BoD,OAAO,EAAEV,aAAa,CAAC3C;EACzB,CAAC,CAAC,EACF,CAAC2C,aAAa,CAAC1C,GAAG,EAAE0C,aAAa,CAAC3C,GAAG,CACvC,CAAC;EAED,MAAMsD,OAAO,GAAGzG,OAAO,CAA4B,MAAM;IACvD,IAAIsE,aAAa,EAAE;MACjB,OAAOA,aAAa,CAACmC,OAAO;IAC9B;IACA,IACE,CAACvC,aAAa,IACd2B,YAAY,CAACE,MAAM,KAAK,CAAC,IACzBD,aAAa,CAAC1C,GAAG,KAAKG,SAAS,IAC/BuC,aAAa,CAAC3C,GAAG,KAAKI,SAAS,EAC/B;MACA,OAAO,EAAE;IACX;IACA,OAAOnD,sBAAsB,CAC3ByF,YAAY,EACZ;MAAEzC,GAAG,EAAE0C,aAAa,CAAC1C,GAAG;MAAED,GAAG,EAAE2C,aAAa,CAAC3C;IAAI,CAAC,EAClDkB,MAAM,CAAC8B,QAAQ,EACf9B,MAAM,CAACgC,UACT,CAAC;EACH,CAAC,EAAE,CAAC/B,aAAa,EAAEJ,aAAa,EAAE2B,YAAY,EAAEC,aAAa,EAAEzB,MAAM,CAAC,CAAC;EAEvE,MAAMqC,QAAQ,GAAGpC,aAAa,EAAEoC,QAAQ,IAAI,EAAE;EAE9C,MAAMC,cAAc,GAAG3G,OAAO,CAAC,MAAMK,iBAAiB,CAACoG,OAAO,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAC3E,MAAMG,MAAM,GAAG5G,OAAO,CAAC,MAAMM,SAAS,CAACqG,cAAc,CAAC,EAAE,CAACA,cAAc,CAAC,CAAC;EACzE,MAAME,SAAS,GAAGD,MAAM,CAACA,MAAM,CAACb,MAAM,GAAG,CAAC,CAAC,IAAIY,cAAc,IAAI,CAAC;EAElE,MAAMG,SAAS,GAAG9G,OAAO,CACvB,MAAMwB,gBAAgB,CAACiF,OAAO,CAACV,MAAM,CAAC,EACtC,CAACU,OAAO,CAACV,MAAM,CACjB,CAAC;EAED,MAAMgB,UAAU,GAAG/G,OAAO,CAAwC,MAAM;IACtE,IAAIyG,OAAO,CAACV,MAAM,KAAK,CAAC,EAAE;MACxB,OAAO,IAAI;IACb;IACA,OAAO;MACLiB,IAAI,EAAE3C,MAAM,CAAC8B,QAAQ,CAACM,OAAO,CAAC,CAAC,CAAC,CAACrD,GAAG,CAAC;MACrC6D,IAAI,EAAE5C,MAAM,CAAC8B,QAAQ,CAACM,OAAO,CAACA,OAAO,CAACV,MAAM,GAAG,CAAC,CAAC,CAAC5C,GAAG;IACvD,CAAC;EACH,CAAC,EAAE,CAACsD,OAAO,EAAEpC,MAAM,CAAC,CAAC;;EAErB;EACA;EACA;EACA;EACA,MAAM6C,UAAU,GAAGT,OAAO,CAACV,MAAM,GAAG,CAAC,IAAIU,OAAO,CAAC,CAAC,CAAC,CAACU,SAAS,IAAI,IAAI;EACrE,MAAMC,YAAY,GAAGpH,OAAO,CAA0C,MAAM;IAC1E,IAAIkH,UAAU,IAAIH,UAAU,IAAI,IAAI,EAAE;MACpC,OAAO,EAAE;IACX;IACA,MAAM;MAAEC,IAAI;MAAEC;IAAK,CAAC,GAAGF,UAAU;IACjC,IAAIE,IAAI,IAAID,IAAI,EAAE;MAChB,OAAO,EAAE;IACX;IACA,MAAMvE,IAAI,GAAGX,QAAQ,CAAC,CAACmF,IAAI,GAAGD,IAAI,IAAI,CAAC,CAAC;IACxC,MAAMK,KAAK,GAAGpF,IAAI,CAACoB,IAAI,CAAC2D,IAAI,GAAGvE,IAAI,CAAC,GAAGA,IAAI;IAC3C,MAAM6E,GAAG,GAAGrF,IAAI,CAACC,KAAK,CAAC+E,IAAI,GAAGxE,IAAI,CAAC,GAAGA,IAAI;IAC1C,MAAM8E,GAA4C,GAAG,EAAE;IACvD,KAAK,IAAIC,CAAC,GAAGH,KAAK,EAAEG,CAAC,IAAIF,GAAG,GAAG7E,IAAI,GAAG,CAAC,EAAE+E,CAAC,IAAI/E,IAAI,EAAE;MAClD,MAAMgF,OAAO,GAAGxF,IAAI,CAACyF,KAAK,CAACF,CAAC,GAAG/E,IAAI,CAAC,GAAGA,IAAI;MAC3C8E,GAAG,CAACI,IAAI,CAAC;QAAEnF,KAAK,EAAEiF,OAAO;QAAEG,KAAK,EAAErF,kBAAkB,CAACkF,OAAO,EAAEhF,IAAI;MAAE,CAAC,CAAC;IACxE;IACA,IAAI8E,GAAG,CAACxB,MAAM,IAAI,CAAC,EAAE;MACnB,OAAOwB,GAAG;IACZ;IACA,MAAMM,WAAW,GAAG5F,IAAI,CAACkB,GAAG,CAAC,GAAGoE,GAAG,CAACO,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACH,KAAK,CAAC7B,MAAM,CAAC,CAAC;IAE/D,MAAMiC,IAAI,GAAG/F,IAAI,CAACkB,GAAG,CAAC,CAAC,EAAElB,IAAI,CAACC,KAAK,CAAChB,MAAM,IADvB2G,WAAW,GAAGvG,gBAAgB,GAAG,GAAG,GAAG,CAAC,CACJ,CAAC,GAAG,CAAC,CAAC;IAC7D,IAAIiG,GAAG,CAACxB,MAAM,IAAIiC,IAAI,EAAE;MACtB,OAAOT,GAAG;IACZ;IACA,MAAMU,MAAM,GAAGhG,IAAI,CAACoB,IAAI,CAAC,CAACkE,GAAG,CAACxB,MAAM,GAAG,CAAC,KAAKiC,IAAI,GAAG,CAAC,CAAC,CAAC;IACvD,MAAME,MAA+C,GAAG,EAAE;IAC1D,KAAK,IAAItG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2F,GAAG,CAACxB,MAAM,EAAEnE,CAAC,IAAIqG,MAAM,EAAE;MAC3CC,MAAM,CAACP,IAAI,CAACJ,GAAG,CAAC3F,CAAC,CAAC,CAAC;IACrB;IACA,IAAIsG,MAAM,CAACA,MAAM,CAACnC,MAAM,GAAG,CAAC,CAAC,KAAKwB,GAAG,CAACA,GAAG,CAACxB,MAAM,GAAG,CAAC,CAAC,EAAE;MACrDmC,MAAM,CAACP,IAAI,CAACJ,GAAG,CAACA,GAAG,CAACxB,MAAM,GAAG,CAAC,CAAC,CAAC;IAClC;IACA,OAAOmC,MAAM;EACf,CAAC,EAAE,CAACnB,UAAU,EAAEG,UAAU,CAAC,CAAC;;EAE5B;EACA;EACA,MAAMiB,qBAAqB,GAAG,EAAE;EAChC,MAAMC,cAAc,GAAGvI,WAAW,CAC/B+B,CAAS,IAAK;IACb,IAAI6E,OAAO,CAACV,MAAM,IAAIoC,qBAAqB,EAAE;MAC3C,OAAO,KAAK;IACd;IACA,MAAMF,MAAM,GAAGhG,IAAI,CAACoB,IAAI,CAACoD,OAAO,CAACV,MAAM,GAAGoC,qBAAqB,CAAC;IAChE,OAAOvG,CAAC,GAAGqG,MAAM,KAAK,CAAC;EACzB,CAAC,EACD,CAACxB,OAAO,CAACV,MAAM,CACjB,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACA,MAAMsC,YAAY,GAAGpI,MAAM,CAAwC,IAAI,CAAC;EACxE,MAAMqI,kBAAkB,GAAGrI,MAAM,CAAkC,IAAI,CAAC;EACxE,MAAM,CAACsI,SAAS,EAAEC,YAAY,CAAC,GAAGtI,QAAQ,CAGhC,IAAI,CAAC;EAEf,MAAMuI,UAAU,GAAGxI,MAAM,CAACwG,OAAO,CAAC;EAClCgC,UAAU,CAACzD,OAAO,GAAGyB,OAAO;EAC5B,MAAMiC,SAAS,GAAGzI,MAAM,CAACoE,MAAM,CAAC;EAChCqE,SAAS,CAAC1D,OAAO,GAAGX,MAAM;;EAE1B;EACA;EACA;EACA,MAAMsE,oBAAoB,GAAG3I,OAAO,CAG1B,MAAM;IACd,IAAIuI,SAAS,IAAI,IAAI,EAAE;MACrB,OAAO;QACLK,EAAE,EAAE3G,IAAI,CAACmB,GAAG,CAACmF,SAAS,CAAClB,KAAK,EAAEkB,SAAS,CAACjB,GAAG,CAAC;QAC5CuB,EAAE,EAAE5G,IAAI,CAACkB,GAAG,CAACoF,SAAS,CAAClB,KAAK,EAAEkB,SAAS,CAACjB,GAAG;MAC7C,CAAC;IACH;IACA,IACEvD,QAAQ,KAAKR,SAAS,IACtBS,QAAQ,KAAKT,SAAS,IACtBkD,OAAO,CAACV,MAAM,KAAK,CAAC,EACpB;MACA,OAAO,IAAI;IACb;IACA,MAAMiB,IAAI,GAAG3C,MAAM,CAAC8B,QAAQ,CAACpC,QAAQ,CAAC;IACtC,MAAMkD,IAAI,GAAG5C,MAAM,CAAC8B,QAAQ,CAACnC,QAAQ,CAAC;IACtC,IAAI4E,EAAE,GAAG,CAAC,CAAC;IACX,IAAIC,EAAE,GAAG,CAAC,CAAC;IACX;IACA;IACA;IACA;IACA,KAAK,IAAIjH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6E,OAAO,CAACV,MAAM,EAAEnE,CAAC,EAAE,EAAE;MACvC,IAAIgH,EAAE,KAAK,CAAC,CAAC,IAAIvE,MAAM,CAAC8B,QAAQ,CAACM,OAAO,CAAC7E,CAAC,CAAC,CAACuB,GAAG,CAAC,GAAG6D,IAAI,EAAE;QACvD4B,EAAE,GAAGhH,CAAC;MACR;MACA,IAAIyC,MAAM,CAAC8B,QAAQ,CAACM,OAAO,CAAC7E,CAAC,CAAC,CAACwB,GAAG,CAAC,GAAG6D,IAAI,EAAE;QAC1C4B,EAAE,GAAGjH,CAAC;MACR;IACF;IACA,IAAIgH,EAAE,KAAK,CAAC,CAAC,IAAIC,EAAE,KAAK,CAAC,CAAC,IAAID,EAAE,GAAGC,EAAE,EAAE;MACrC,OAAO,IAAI;IACb;IACA,OAAO;MAAED,EAAE;MAAEC;IAAG,CAAC;EACnB,CAAC,EAAE,CAACN,SAAS,EAAExE,QAAQ,EAAEC,QAAQ,EAAEyC,OAAO,EAAEpC,MAAM,CAAC,CAAC;EAEpD,MAAMyE,eAAe,GAAGjJ,WAAW,CACjC,CAACwH,KAAa,EAAEC,GAAW,EAAEyB,YAAqB,KAAK;IACrD,MAAMC,cAAc,GAAGP,UAAU,CAACzD,OAAO;IACzC,MAAMiE,aAAa,GAAGP,SAAS,CAAC1D,OAAO;IACvC,MAAM4D,EAAE,GAAG3G,IAAI,CAACmB,GAAG,CAACiE,KAAK,EAAEC,GAAG,CAAC;IAC/B,MAAMuB,EAAE,GAAG5G,IAAI,CAACkB,GAAG,CAACkE,KAAK,EAAEC,GAAG,CAAC;IAC/B,MAAM4B,SAAS,GAAGF,cAAc,CAACJ,EAAE,CAAC;IACpC,MAAMO,SAAS,GAAGH,cAAc,CAACH,EAAE,CAAC;IACpC,IAAIK,SAAS,IAAI,IAAI,IAAIC,SAAS,IAAI,IAAI,EAAE;MAC1C;IACF;;IAEA;IACA;IACA;IACA;IACA;IACA,MAAMC,UAAU,GAAGnE,WAAW,CAACD,OAAO;IACtC,MAAMqE,UAAU,GAAGnE,WAAW,CAACF,OAAO;IACtC,IACE+D,YAAY,IACZ1B,KAAK,KAAKC,GAAG,IACb8B,UAAU,KAAK7F,SAAS,IACxB8F,UAAU,KAAK9F,SAAS,EACxB;MACA,MAAMyD,IAAI,GAAGiC,aAAa,CAAC9C,QAAQ,CAACiD,UAAU,CAAC;MAC/C,MAAMnC,IAAI,GAAGgC,aAAa,CAAC9C,QAAQ,CAACkD,UAAU,CAAC;MAC/C,MAAMC,UAAU,GAAGL,aAAa,CAAC9C,QAAQ,CAAC+C,SAAS,CAAC9F,GAAG,CAAC;MACxD,MAAMmG,UAAU,GAAGN,aAAa,CAAC9C,QAAQ,CAAC+C,SAAS,CAAC/F,GAAG,CAAC;MAExD,IADe6D,IAAI,IAAIuC,UAAU,IAAItC,IAAI,IAAIqC,UAAU,EAC3C;QACVvE,WAAW,CAACC,OAAO,CAACzB,SAAS,EAAEA,SAAS,CAAC;QACzC;MACF;IACF;IACAwB,WAAW,CAACC,OAAO,CAACkE,SAAS,CAAC9F,GAAG,EAAE+F,SAAS,CAAChG,GAAG,CAAC;EACnD,CAAC,EACD,EACF,CAAC;;EAED;EACA;;EAGA,MAAMqG,MAAM,GAAGvJ,MAAM,CAAuB,IAAI,CAAC;EACjD,MAAMwJ,SAAS,GAAG5J,WAAW,CAAE6J,EAAwB,IAAK;IAC1DF,MAAM,CAACxE,OAAO,GAAG0E,EAAE;EACrB,CAAC,EAAE,EAAE,CAAC;EACN,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG1J,QAAQ,CAAgB,IAAI,CAAC;EAErE,MAAM2J,mBAAmB,GAAGhK,WAAW,CACrC,CAACiK,OAAe,EAAEC,OAAe,KAAoB;IACnD,MAAMC,GAAG,GAAGR,MAAM,CAACxE,OAAO;IAC1B,MAAMvD,WAAW,GAAGgH,UAAU,CAACzD,OAAO,CAACe,MAAM;IAC7C,IAAI,CAACiE,GAAG,IAAIvI,WAAW,KAAK,CAAC,EAAE;MAC7B,OAAO,IAAI;IACb;IACA,MAAMwI,GAAG,GAAGD,GAAG,CAACE,YAAY,CAAC,CAAC;IAC9B,IAAI,CAACD,GAAG,EAAE;MACR,OAAO,IAAI;IACb;IACA,MAAME,EAAE,GAAGH,GAAG,CAACI,cAAc,CAAC,CAAC;IAC/BD,EAAE,CAACE,CAAC,GAAGP,OAAO;IACdK,EAAE,CAACG,CAAC,GAAGP,OAAO;IACd,MAAMQ,KAAK,GAAGJ,EAAE,CAACK,eAAe,CAACP,GAAG,CAACQ,OAAO,CAAC,CAAC,CAAC;IAC/C,MAAMC,MAAM,GAAGH,KAAK,CAACF,CAAC,GAAGvJ,QAAQ;IACjC,MAAM6J,KAAK,GAAG,CAACzJ,MAAM,GAAGE,OAAO,IAAIK,WAAW;IAE9C;IACA;IACA,MAAMmJ,GAAG,GAAG3I,IAAI,CAACyF,KAAK,CAAC,CAACgD,MAAM,GAAG,CAHpBC,KAAK,GAAGvJ,OAAO,IAGY,CAAC,IAAIuJ,KAAK,CAAC;IACnD,OAAO1I,IAAI,CAACkB,GAAG,CAAC,CAAC,EAAElB,IAAI,CAACmB,GAAG,CAAC3B,WAAW,GAAG,CAAC,EAAEmJ,GAAG,CAAC,CAAC;EACpD,CAAC,EACD,EACF,CAAC;EAED,MAAMC,qBAAqB,GAAGhL,WAAW,CACtCiL,MAA0B,IAAoB;IAC7C,IAAI,EAAEA,MAAM,YAAYC,OAAO,CAAC,EAAE;MAChC,OAAO,IAAI;IACb;IACA,MAAMC,OAAO,GAAGF,MAAM,CAACG,YAAY,CAAC,mBAAmB,CAAC;IACxD,IAAID,OAAO,IAAI,IAAI,EAAE;MACnB,OAAO,IAAI;IACb;IACA,MAAM3F,MAAM,GAAG6F,QAAQ,CAACF,OAAO,EAAE,EAAE,CAAC;IACpC,OAAOpI,MAAM,CAACuI,KAAK,CAAC9F,MAAM,CAAC,GAAG,IAAI,GAAGA,MAAM;EAC7C,CAAC,EACD,EACF,CAAC;EAED,MAAM+F,qBAAqB,GAAGvL,WAAW,CACtCwL,CAAoC,IAAK;IACxC,IAAI,CAAC9G,aAAa,EAAE;MAClB;IACF;IACA;IACA;IACA;IACA;IACA,MAAM+G,QAAQ,GACZT,qBAAqB,CAACQ,CAAC,CAACP,MAAM,CAAC,IAC/BjB,mBAAmB,CAACwB,CAAC,CAACvB,OAAO,EAAEuB,CAAC,CAACtB,OAAO,CAAC;IAC3C,IAAIuB,QAAQ,IAAI,IAAI,EAAE;MACpB;IACF;IACAD,CAAC,CAACE,cAAc,CAAC,CAAC;IAClB;IACA;IACA;IACA;IACAF,CAAC,CAACG,aAAa,CAACC,iBAAiB,CAACJ,CAAC,CAACK,SAAS,CAAC;IAC9C9B,eAAe,CAAC,IAAI,CAAC;IACrBtB,kBAAkB,CAACtD,OAAO,GAAG;MAAEqF,CAAC,EAAEgB,CAAC,CAACvB,OAAO;MAAEQ,CAAC,EAAEe,CAAC,CAACtB;IAAQ,CAAC;IAC3D1B,YAAY,CAACrD,OAAO,GAAG;MAAEqC,KAAK,EAAEiE,QAAQ;MAAEhE,GAAG,EAAEgE;IAAS,CAAC;IACzD9C,YAAY,CAAC;MAAEnB,KAAK,EAAEiE,QAAQ;MAAEhE,GAAG,EAAEgE;IAAS,CAAC,CAAC;EAClD,CAAC,EACD,CAAC/G,aAAa,EAAEsG,qBAAqB,EAAEhB,mBAAmB,CAC5D,CAAC;EAED,MAAM8B,qBAAqB,GAAG9L,WAAW,CACtCwL,CAAoC,IAAK;IACxC;IACA;IACA;IACA,MAAMT,GAAG,GACPC,qBAAqB,CAACQ,CAAC,CAACP,MAAM,CAAC,IAC/BjB,mBAAmB,CAACwB,CAAC,CAACvB,OAAO,EAAEuB,CAAC,CAACtB,OAAO,CAAC;IAC3C,IAAIa,GAAG,IAAI,IAAI,EAAE;MACf;IACF;IACA,IAAIvC,YAAY,CAACrD,OAAO,IAAI,IAAI,EAAE;MAChC4E,eAAe,CAACgB,GAAG,CAAC;MACpB;IACF;IACA,MAAMnF,IAAI,GAAG;MAAE,GAAG4C,YAAY,CAACrD,OAAO;MAAEsC,GAAG,EAAEsD;IAAI,CAAC;IAClDvC,YAAY,CAACrD,OAAO,GAAGS,IAAI;IAC3B+C,YAAY,CAAC/C,IAAI,CAAC;EACpB,CAAC,EACD,CAACoF,qBAAqB,EAAEhB,mBAAmB,CAC7C,CAAC;EAED,MAAM+B,mBAAmB,GAAG/L,WAAW,CACpCwL,CAAoC,IAAK;IACxC,MAAMrG,OAAO,GAAGqD,YAAY,CAACrD,OAAO;IACpC,MAAM6G,WAAW,GAAGvD,kBAAkB,CAACtD,OAAO;IAC9CqD,YAAY,CAACrD,OAAO,GAAG,IAAI;IAC3BsD,kBAAkB,CAACtD,OAAO,GAAG,IAAI;IACjCwD,YAAY,CAAC,IAAI,CAAC;IAClB,IAAIxD,OAAO,IAAI,IAAI,IAAI6G,WAAW,IAAI,IAAI,EAAE;MAC1C;IACF;IACA,MAAMC,EAAE,GAAGT,CAAC,CAACvB,OAAO,GAAG+B,WAAW,CAACxB,CAAC;IACpC,MAAM0B,EAAE,GAAGV,CAAC,CAACtB,OAAO,GAAG8B,WAAW,CAACvB,CAAC;IAEpCxB,eAAe,CAAC9D,OAAO,CAACqC,KAAK,EAAErC,OAAO,CAACsC,GAAG,EADrBwE,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE,GAhHP,EAiHyB,CAAC;EAC3D,CAAC,EACD,CAACjD,eAAe,CAClB,CAAC;EAED,MAAMkD,uBAAuB,GAAGnM,WAAW,CAAC,MAAM;IAChDwI,YAAY,CAACrD,OAAO,GAAG,IAAI;IAC3BsD,kBAAkB,CAACtD,OAAO,GAAG,IAAI;IACjCwD,YAAY,CAAC,IAAI,CAAC;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMyD,sBAAsB,GAAGpM,WAAW,CAAC,MAAM;IAC/C,IAAIwI,YAAY,CAACrD,OAAO,IAAI,IAAI,EAAE;MAChC4E,eAAe,CAAC,IAAI,CAAC;IACvB;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMsC,iBAAiB,GAAGrM,WAAW,CAAC,MAAM;IAC1CkF,WAAW,CAACC,OAAO,CAACzB,SAAS,EAAEA,SAAS,CAAC;EAC3C,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM4I,eAAe,GAAGpI,QAAQ,KAAKR,SAAS,IAAIS,QAAQ,KAAKT,SAAS;EAExE,MAAM6I,eAAe,GAAGvM,WAAW,CAChC4F,IAAY,IAAK;IAChBd,WAAW,CAACc,IAAI,CAAC;IACjBN,kBAAkB,CAACM,IAAI,CAAC;EAC1B,CAAC,EACD,CAACN,kBAAkB,CACrB,CAAC;EAED,MAAMkH,eAAe,GAAGxM,WAAW,CAChC4F,IAAY,IAAK;IAChBX,WAAW,CAACW,IAAI,CAAC;IACjBF,kBAAkB,CAACE,IAAI,CAAC;EAC1B,CAAC,EACD,CAACF,kBAAkB,CACrB,CAAC;EAED,oBACE5F,KAAA,CAAA2M,aAAA;IACEnI,SAAS,EAAE1E,UAAU,CAACgB,MAAM,CAAC8L,UAAU,EAAEpI,SAAS,CAAE;IACpDC,KAAK,EAAEA,KAAM;IACb,gBAAcN;EAAU,GAEvBI,aAAa,IAAIuC,OAAO,CAACV,MAAM,KAAK,CAAC,IAAI,CAACjC,SAAS,iBAClDnE,KAAA,CAAA2M,aAAA;IAAKnI,SAAS,EAAEzD,YAAY,CAAC8L;EAAa,GAAC,qBAAwB,CACpE,eAED7M,KAAA,CAAA2M,aAAA,CAAC/M,MAAM;IACL4E,SAAS,EAAE1D,MAAM,CAACgM,WAAY;IAC9B,eAAaN,eAAe,IAAI5I,SAAU;IAC1CmJ,OAAO,EAAER,iBAAkB;IAC3BS,QAAQ,EAAE,CAACR;EAAgB,GAC5B,OAEO,CAAC,EAERjI,aAAa,IAAIuC,OAAO,CAACV,MAAM,GAAG,CAAC,IAAIe,SAAS,IAAI,IAAI,iBACvDnH,KAAA,CAAA2M,aAAA;IAAKnI,SAAS,EAAE1D,MAAM,CAACmM;EAAiB,gBACtCjN,KAAA,CAAA2M,aAAA;IACEO,GAAG,EAAEpD,SAAU;IACftF,SAAS,EAAE1D,MAAM,CAACqM,YAAa;IAC/B,wBAAsBvI,aAAa,IAAIhB,SAAU;IACjDwJ,OAAO,EAAE,OAAOnM,KAAK,IAAIC,KAAK,EAAG;IACjCmM,mBAAmB,EAAC,eAAe;IACnCC,IAAI,EAAC,KAAK;IACV,cAAW,2BAA2B;IACtCC,aAAa,EAAE3I,aAAa,GAAG6G,qBAAqB,GAAG7H,SAAU;IACjE4J,WAAW,EAAE5I,aAAa,GAAGqH,mBAAmB,GAAGrI,SAAU;IAC7D6J,eAAe,EACb7I,aAAa,GAAGyH,uBAAuB,GAAGzI,SAC3C;IACD8J,aAAa,EAAE1B,qBAAsB;IACrC2B,cAAc,EAAErB;EAAuB,gBAEvCtM,KAAA,CAAA2M,aAAA;IAAGnI,SAAS,EAAE1D,MAAM,CAAC8M;EAAU,GAC5B3G,MAAM,CAACkB,GAAG,CAAE0F,SAAS,IAAK;IACzB,MAAMC,KAAK,GAAG5G,SAAS,GAAG,CAAC,GAAG2G,SAAS,GAAG3G,SAAS,GAAG,CAAC;IACvD,MAAMyD,CAAC,GAAGtJ,OAAO,GAAGG,MAAM,GAAGsM,KAAK,GAAGtM,MAAM;IAC3C,oBACExB,KAAA,CAAA2M,aAAA;MAAGoB,GAAG,EAAEF;IAAU,gBAChB7N,KAAA,CAAA2M,aAAA;MACEnI,SAAS,EAAE1D,MAAM,CAACkN,QAAS;MAC3BC,EAAE,EAAE9M,QAAS;MACb+M,EAAE,EAAEjN,KAAK,GAAGG,SAAU;MACtB+M,EAAE,EAAExD,CAAE;MACNyD,EAAE,EAAEzD,CAAE;MACN0D,YAAY,EAAC;IAAoB,CAClC,CAAC,eACFrO,KAAA,CAAA2M,aAAA;MACEnI,SAAS,EAAE1D,MAAM,CAACwN,UAAW;MAC7B5D,CAAC,EAAEvJ,QAAQ,GAAG,CAAE;MAChBwJ,CAAC,EAAEA,CAAC,GAAG,CAAE;MACT4D,UAAU,EAAC;IAAK,GAEfV,SACG,CACL,CAAC;EAER,CAAC,CACA,CAAC,EAEH7E,oBAAoB,IAAI,IAAI,iBAC3BhJ,KAAA,CAAA2M,aAAA;IACEnI,SAAS,EAAE1D,MAAM,CAAC0N,aAAc;IAChC9D,CAAC,EAAEvD,SAAS,CAACnF,KAAK,CAACgH,oBAAoB,CAACC,EAAE,CAAE;IAC5C0B,CAAC,EAAEtJ,OAAQ;IACXoN,KAAK,EACHtH,SAAS,CAACnF,KAAK,CAACgH,oBAAoB,CAACE,EAAE,CAAC,GACxC/B,SAAS,CAACpF,IAAI,GACdoF,SAAS,CAACnF,KAAK,CAACgH,oBAAoB,CAACC,EAAE,CACxC;IACDyF,MAAM,EAAElN,MAAO;IACf,iBAAeoH,SAAS,IAAI,IAAI,IAAIhF;EAAU,CAC/C,CACF,eAED5D,KAAA,CAAA2M,aAAA;IAAGnI,SAAS,EAAE1D,MAAM,CAAC6N;EAAK,GACvB7H,OAAO,CAACqB,GAAG,CAAC,CAACyG,MAAM,EAAEC,KAAK,KAAK;IAC9B,MAAMnE,CAAC,GAAGvD,SAAS,CAACnF,KAAK,CAAC6M,KAAK,CAAC;IAChC,MAAMC,UAAU,GAAG5H,SAAS,GAAG,CAAC,GAAG0H,MAAM,CAACG,KAAK,GAAG7H,SAAS,GAAG,CAAC;IAC/D,MAAM8H,IAAI,GAAG1M,IAAI,CAACkB,GAAG,CAAC,CAAC,EAAEsL,UAAU,GAAGtN,MAAM,CAAC;IAE7C;IACA;IACA;IACA,MAAMyN,SAAS,GACb,CAAC7K,QAAQ,KAAKR,SAAS,IACrBc,MAAM,CAAC8B,QAAQ,CAACoI,MAAM,CAACpL,GAAG,CAAC,GAAGkB,MAAM,CAAC8B,QAAQ,CAACpC,QAAQ,CAAC,MACxDC,QAAQ,KAAKT,SAAS,IACrBc,MAAM,CAAC8B,QAAQ,CAACoI,MAAM,CAACnL,GAAG,CAAC,GAAGiB,MAAM,CAAC8B,QAAQ,CAACnC,QAAQ,CAAC,CAAC;IAC5D,MAAM6K,aAAa,GACjBtG,SAAS,IAAI,IAAI,IACjBiG,KAAK,IAAIvM,IAAI,CAACmB,GAAG,CAACmF,SAAS,CAAClB,KAAK,EAAEkB,SAAS,CAACjB,GAAG,CAAC,IACjDkH,KAAK,IAAIvM,IAAI,CAACkB,GAAG,CAACoF,SAAS,CAAClB,KAAK,EAAEkB,SAAS,CAACjB,GAAG,CAAC;IACnD,oBACE3H,KAAA,CAAA2M,aAAA;MACEoB,GAAG,EAAEc,KAAM;MACXrK,SAAS,EAAE1D,MAAM,CAACqO,YAAa;MAC/B,iBAAeF,SAAS,IAAIC,aAAc;MAC1C,wBAAsBtK,aAAa,IAAIhB,SAAU;MACjD,iBAAesL,aAAa,IAAItL,SAAU;MAC1C8G,CAAC,EAAEA,CAAE;MACLC,CAAC,EArBKtJ,OAAO,GAAGG,MAAM,GAAGwN,IAqBpB;MACLP,KAAK,EAAEnM,IAAI,CAACkB,GAAG,CAAC2D,SAAS,CAACpF,IAAI,EAAE,GAAG,CAAE;MACrC2M,MAAM,EAAEM,IAAK;MACb,qBAAmBH;IAAM,gBAEzB7O,KAAA,CAAA2M,aAAA,gBACGjI,MAAM,CAAC0K,aAAa,CACnBR,MAAM,CAACnL,GAAG,EACVmL,MAAM,CAACpL,GAAG,EACVoL,MAAM,CAACG,KACT,CACK,CACH,CAAC;EAEX,CAAC,CACA,CAAC,eAEJ/O,KAAA,CAAA2M,aAAA;IAAGnI,SAAS,EAAE1D,MAAM,CAACuO;EAAY,GAC9BvI,OAAO,CAACqB,GAAG,CAAC,CAACyG,MAAM,EAAEC,KAAK,KAAK;IAC9B,IAAID,MAAM,CAACG,KAAK,KAAK,CAAC,EAAE;MACtB,OAAO,IAAI;IACb;IACA,IAAItG,cAAc,CAACoG,KAAK,CAAC,EAAE;MACzB,OAAO,IAAI;IACb;IACA,MAAMS,EAAE,GAAGnI,SAAS,CAACjF,OAAO,CAAC2M,KAAK,CAAC;IACnC,MAAMC,UAAU,GAAG5H,SAAS,GAAG,CAAC,GAAG0H,MAAM,CAACG,KAAK,GAAG7H,SAAS,GAAG,CAAC;IAE/D,MAAMqI,MAAM,GAAGlO,OAAO,GAAGG,MAAM,GADlBsN,UAAU,GAAGtN,MACY;IACtC;IACA;IACA;IACA,MAAMgO,SAAS,GAAGD,MAAM,GAAG7N,qBAAqB,GAAG,CAAC,GAAG,CAAC;IACxD,MAAMiJ,CAAC,GAAG6E,SAAS,GACfD,MAAM,GAAG7N,qBAAqB,GAC9B6N,MAAM,GAAG,CAAC;IACd,oBACEvP,KAAA,CAAA2M,aAAA;MACEoB,GAAG,EAAEc,KAAM;MACXrK,SAAS,EAAE1D,MAAM,CAAC2O,UAAW;MAC7B,mBAAiBD,SAAS,IAAI5L,SAAU;MACxC8G,CAAC,EAAE4E,EAAG;MACN3E,CAAC,EAAEA,CAAE;MACL4D,UAAU,EAAC;IAAQ,GAElBK,MAAM,CAACG,KAAK,CAACpL,cAAc,CAAC,CACzB,CAAC;EAEX,CAAC,CACA,CAAC,eAEJ3D,KAAA,CAAA2M,aAAA;IAAGnI,SAAS,EAAE1D,MAAM,CAAC4O;EAAO,GACzBnI,UAAU,GACPT,OAAO,CAACqB,GAAG,CAAC,CAACyG,MAAM,EAAEC,KAAK,KAAK;IAC7B,IAAID,MAAM,CAACpH,SAAS,IAAI,IAAI,EAAE;MAC5B,OAAO,IAAI;IACb;IACA,IACEV,OAAO,CAACV,MAAM,GAAGoC,qBAAqB,IACtCC,cAAc,CAACoG,KAAK,CAAC,EACrB;MACA,OAAO,IAAI;IACb;IACA,oBACE7O,KAAA,CAAA2M,aAAA;MACEoB,GAAG,EAAEc,KAAM;MACXrK,SAAS,EAAE1D,MAAM,CAAC6O,UAAW;MAC7BjF,CAAC,EAAEvD,SAAS,CAACjF,OAAO,CAAC2M,KAAK,CAAE;MAC5BlE,CAAC,EAAE/I,cAAe;MAClB2M,UAAU,EAAC;IAAQ,GAElBK,MAAM,CAACpH,SACJ,CAAC;EAEX,CAAC,CAAC,GACFJ,UAAU,IAAI,IAAI,GAChBK,YAAY,CAACU,GAAG,CAAC,CAAC;IAAEtF,KAAK;IAAEoF;EAAM,CAAC,EAAEhG,CAAC,KAAK;IACxC,MAAM2N,KAAK,GACT,CAAC/M,KAAK,GAAGuE,UAAU,CAACC,IAAI,KACvBD,UAAU,CAACE,IAAI,GAAGF,UAAU,CAACC,IAAI,CAAC;IAErC,oBACErH,KAAA,CAAA2M,aAAA;MACEoB,GAAG,EAAE9L,CAAE;MACPuC,SAAS,EAAE1D,MAAM,CAAC6O,UAAW;MAC7BjF,CAAC,EALKvJ,QAAQ,GAAGyO,KAAK,GAAGrO,MAKpB;MACLoJ,CAAC,EAAE/I,cAAe;MAClB2M,UAAU,EAAC;IAAQ,GAElBtG,KACG,CAAC;EAEX,CAAC,CAAC,GACF,IACL,CAAC,EAEHlB,QAAQ,iBACP/G,KAAA,CAAA2M,aAAA;IACEnI,SAAS,EAAE1D,MAAM,CAACiG,QAAS;IAC3B2D,CAAC,EAAEzJ,KAAK,GAAG,CAAE;IACb0J,CAAC,EAAEzJ,KAAK,GAAG,CAAE;IACbqN,UAAU,EAAC;EAAQ,GAElBxH,QACG,CAEL,CAAC,EACLiD,YAAY,IAAI,IAAI,IACnBpB,SAAS,IAAI,IAAI,IACjB9B,OAAO,CAACkD,YAAY,CAAC,IAAI,IAAI,iBAC3BhK,KAAA,CAAA2M,aAAA,CAAC/L,gBAAgB;IACfiP,IAAI,EAAEnL,MAAM,CAAC0K,aAAa,CACxBtI,OAAO,CAACkD,YAAY,CAAC,CAACvG,GAAG,EACzBqD,OAAO,CAACkD,YAAY,CAAC,CAACxG,GAAG,EACzBsD,OAAO,CAACkD,YAAY,CAAC,CAAC+E,KACxB,CAAE;IACFO,EAAE,EAAEnI,SAAS,CAACjF,OAAO,CAAC8H,YAAY,CAAE;IACpCuF,MAAM,EACJlO,OAAO,GACPG,MAAM,GACN,CAAC0F,SAAS,GAAG,CAAC,GACVJ,OAAO,CAACkD,YAAY,CAAC,CAAC+E,KAAK,GAAG7H,SAAS,GACvC,CAAC,IACH1F,MACH;IACDsO,QAAQ,EAAE7O,KAAM;IAChB8O,SAAS,EAAE7O,KAAM;IACjB8O,UAAU,EAAEnG,MAAM,CAACxE;EAAQ,CAC5B,CAEF,CACN,EAEAX,MAAM,CAACuL,SAAS,KAAK,MAAM,gBAC1BjQ,KAAA,CAAA2M,aAAA,CAACuD,eAAe;IACd9L,QAAQ,EAAEA,QAA6B;IACvCC,QAAQ,EAAEA,QAA6B;IACvC8L,WAAW,EAAEtK,mBAAoB;IACjCuK,WAAW,EAAEpK,mBAAoB;IACjCqK,UAAU,EAAE3L,MAAM,CAAC2L,UAAW;IAC9BC,QAAQ,EAAE5L,MAAM,CAAC4L,QAAS;IAC1BC,QAAQ,EAAE7L,MAAM,CAAC6L;EAAS,CAC3B,CAAC,gBAEFvQ,KAAA,CAAA2M,aAAA;IAAKnI,SAAS,EAAE1D,MAAM,CAAC0P;EAAY,gBACjCxQ,KAAA,CAAA2M,aAAA;IAAKnI,SAAS,EAAE1D,MAAM,CAAC2P;EAAa,gBAClCzQ,KAAA,CAAA2M,aAAA;IAAO+D,OAAO,EAAE7L,UAAW;IAACL,SAAS,EAAE1D,MAAM,CAAC6P;EAAW,GACtDjM,MAAM,CAAC4L,QACH,CAAC,eACRtQ,KAAA,CAAA2M,aAAA,CAACiE,eAAe;IACdC,EAAE,EAAEhM,UAAW;IACfhC,KAAK,EAAEkC,QAAS;IAChBT,QAAQ,EAAEmI,eAAgB;IAC1BqE,WAAW,EACTnK,SAAS,CAACC,OAAO,KAAKhD,SAAS,IAAIc,MAAM,CAACqM,iBAAiB,GACvDrM,MAAM,CAACqM,iBAAiB,CAACpK,SAAS,CAACC,OAAO,CAAC,GAC3ChD,SACL;IACDoN,UAAU,EAAEtM,MAAM,CAACsM,UAAW;IAC9BC,SAAS,EAAEvM,MAAM,CAAC4L;EAAS,CAC5B,CACE,CAAC,eAENtQ,KAAA,CAAA2M,aAAA;IAAMnI,SAAS,EAAE1D,MAAM,CAACoQ,SAAU;IAAC,eAAY;EAAM,GAAC,QAEhD,CAAC,eAEPlR,KAAA,CAAA2M,aAAA;IAAKnI,SAAS,EAAE1D,MAAM,CAAC2P;EAAa,gBAClCzQ,KAAA,CAAA2M,aAAA;IAAO+D,OAAO,EAAE5L,UAAW;IAACN,SAAS,EAAE1D,MAAM,CAAC6P;EAAW,GACtDjM,MAAM,CAAC6L,QACH,CAAC,eACRvQ,KAAA,CAAA2M,aAAA,CAACiE,eAAe;IACdC,EAAE,EAAE/L,UAAW;IACfjC,KAAK,EAAEqC,QAAS;IAChBZ,QAAQ,EAAEoI,eAAgB;IAC1BoE,WAAW,EACTnK,SAAS,CAACE,OAAO,KAAKjD,SAAS,IAAIc,MAAM,CAACqM,iBAAiB,GACvDrM,MAAM,CAACqM,iBAAiB,CAACpK,SAAS,CAACE,OAAO,CAAC,GAC3CjD,SACL;IACDoN,UAAU,EAAEtM,MAAM,CAACsM,UAAW;IAC9BC,SAAS,EAAEvM,MAAM,CAAC6L;EAAS,CAC5B,CACE,CACF,CAEJ,CAAC;AAEV;AAcA,SAASL,eAAeA,CAAC;EACvB9L,QAAQ;EACRC,QAAQ;EACR8L,WAAW;EACXC,WAAW;EACXC,UAAU;EACVC,QAAQ;EACRC;AACoB,CAAC,EAAsB;EAC3C,oBACEvQ,KAAA,CAAA2M,aAAA;IAAKnI,SAAS,EAAE1D,MAAM,CAAC0P;EAAY,gBACjCxQ,KAAA,CAAA2M,aAAA,CAACnM,UAAU;IACTqC,KAAK,EAAEuB,QAAQ,IAAI,IAAK;IACxBE,QAAQ,EAAE6L,WAAY;IACtB3M,GAAG,EAAEa,QAAS;IACdyM,WAAW,EAAER,QAAS;IACtBW,SAAS,EAAEX,QAAS;IACpBD,UAAU,EAAEA;EAAW,CACxB,CAAC,eACFrQ,KAAA,CAAA2M,aAAA,CAACnM,UAAU;IACTqC,KAAK,EAAEwB,QAAQ,IAAI,IAAK;IACxBC,QAAQ,EAAE8L,WAAY;IACtB3M,GAAG,EAAEW,QAAS;IACd0M,WAAW,EAAEP,QAAS;IACtBU,SAAS,EAAEV,QAAS;IACpBF,UAAU,EAAEA;EAAW,CACxB,CACE,CAAC;AAEV;AAWA,SAASO,eAAeA,CAAC;EACvBC,EAAE;EACFhO,KAAK;EACLyB,QAAQ;EACRwM,WAAW;EACXE,UAAU;EACVC;AACoB,CAAC,EAAsB;EAC3C,MAAME,kBAAkB,GAAGjR,WAAW,CACnCwL,CAAsC,IAAK;IAC1CpH,QAAQ,CAACoH,CAAC,CAACP,MAAM,CAACtI,KAAK,CAAC;EAC1B,CAAC,EACD,CAACyB,QAAQ,CACX,CAAC;EACD,oBACEtE,KAAA,CAAA2M,aAAA,CAAC9M,KAAK,EAAAuR,QAAA;IACJP,EAAE,EAAEA,EAAG;IACPQ,IAAI,EAAC,QAAQ;IACb7M,SAAS,EAAE1D,MAAM,CAACwQ,KAAM;IACxBzO,KAAK,EAAEA,KAAM;IACbyB,QAAQ,EAAE6M,kBAAmB;IAC7BL,WAAW,EAAEA,WAAY;IACzB,cAAYG;EAAU,GAClBD,UAAU,CACf,CAAC;AAEN;AAEA,OAAO,MAAMO,UAAU,gBAAGtR,IAAI,CAACgE,eAAe,CAA2B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectInputSkeleton.js","names":["React","SkeletonBar","SelectInputSkeleton","createElement","width","height"],"sources":["SelectInputSkeleton.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport { SkeletonBar } from \"../../../base-components/skeleton/SkeletonBar.js\";\n\nexport function SelectInputSkeleton(): React.ReactElement {\n return (\n <div data-testid=\"select-input-skeleton\">\n <SkeletonBar\n width=\"100%\"\n height=\"var(--osdk-filter-skeleton-input-height)\"\n />\n </div>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,kDAAkD;AAE9E,OAAO,SAASC,mBAAmBA,CAAA,EAAuB;EACxD,oBACEF,KAAA,CAAAG,aAAA;IAAK,eAAY;EAAuB,gBACtCH,KAAA,CAAAG,aAAA,CAACF,WAAW;IACVG,KAAK,EAAC,MAAM;IACZC,MAAM,EAAC;EAA0C,CAClD,CACE,CAAC;AAEV","ignoreList":[]}
1
+ {"version":3,"file":"SelectInputSkeleton.js","names":["React","SkeletonBar","SelectInputSkeleton","createElement","width","height"],"sources":["SelectInputSkeleton.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\n\nimport { SkeletonBar } from \"../../../base-components/skeleton/SkeletonBar.js\";\n\nexport function SelectInputSkeleton(): React.ReactElement {\n return (\n <div data-testid=\"select-input-skeleton\">\n <SkeletonBar\n width=\"100%\"\n height=\"var(--osdk-filter-skeleton-input-height)\"\n />\n </div>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,WAAW,QAAQ,kDAAkD;AAE9E,OAAO,SAASC,mBAAmBA,CAAA,EAAuB;EACxD,oBACEF,KAAA,CAAAG,aAAA;IAAK,eAAY;EAAuB,gBACtCH,KAAA,CAAAG,aAAA,CAACF,WAAW;IACVG,KAAK,EAAC,MAAM;IACZC,MAAM,EAAC;EAA0C,CAClD,CACE,CAAC;AAEV","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"SingleDateInput.js","names":["Button","classnames","React","memo","useCallback","DatePicker","styles","SingleDateInputInner","selectedDate","onChange","className","style","minDate","maxDate","placeholder","showClearButton","formatDate","handleClear","undefined","handleChange","value","createElement","singleDate","dateContainer","min","max","ariaLabel","modal","clearButton","onClick","SingleDateInput"],"sources":["SingleDateInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback } from \"react\";\nimport { DatePicker } from \"../../../shared/calendar/index.js\";\nimport styles from \"./SingleDateInput.module.css\";\n\ninterface SingleDateInputProps {\n selectedDate: Date | undefined;\n onChange: (date: Date | undefined) => void;\n className?: string;\n style?: React.CSSProperties;\n minDate?: Date;\n maxDate?: Date;\n placeholder?: string;\n showClearButton?: boolean;\n /** Display formatter for picker idle text. Editing format stays ISO. */\n formatDate?: (date: Date) => string;\n}\n\nfunction SingleDateInputInner({\n selectedDate,\n onChange,\n className,\n style,\n minDate,\n maxDate,\n placeholder,\n showClearButton = true,\n formatDate,\n}: SingleDateInputProps): React.ReactElement {\n const handleClear = useCallback(() => {\n onChange(undefined);\n }, [onChange]);\n\n const handleChange = useCallback(\n (value: Date | null) => {\n onChange(value ?? undefined);\n },\n [onChange],\n );\n\n return (\n <div className={classnames(styles.singleDate, className)} style={style}>\n <div className={styles.dateContainer}>\n <DatePicker\n value={selectedDate ?? null}\n onChange={handleChange}\n min={minDate}\n max={maxDate}\n placeholder={placeholder}\n ariaLabel=\"Select date\"\n modal={false}\n formatDate={formatDate}\n />\n {showClearButton && selectedDate !== undefined && (\n <Button\n className={styles.clearButton}\n onClick={handleClear}\n aria-label=\"Clear date\"\n >\n ×\n </Button>\n )}\n </div>\n </div>\n );\n}\n\nexport const SingleDateInput: React.NamedExoticComponent<SingleDateInputProps> =\n memo(SingleDateInputInner);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,QAAQ,uBAAuB;AAC9C,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,IAAI,EAAEC,WAAW,QAAQ,OAAO;AAChD,SAASC,UAAU,QAAQ,mCAAmC;AAC9D,OAAOC,MAAM,MAAM,8BAA8B;AAejD,SAASC,oBAAoBA,CAAC;EAC5BC,YAAY;EACZC,QAAQ;EACRC,SAAS;EACTC,KAAK;EACLC,OAAO;EACPC,OAAO;EACPC,WAAW;EACXC,eAAe,GAAG,IAAI;EACtBC;AACoB,CAAC,EAAsB;EAC3C,MAAMC,WAAW,GAAGb,WAAW,CAAC,MAAM;IACpCK,QAAQ,CAACS,SAAS,CAAC;EACrB,CAAC,EAAE,CAACT,QAAQ,CAAC,CAAC;EAEd,MAAMU,YAAY,GAAGf,WAAW,CAC7BgB,KAAkB,IAAK;IACtBX,QAAQ,CAACW,KAAK,IAAIF,SAAS,CAAC;EAC9B,CAAC,EACD,CAACT,QAAQ,CACX,CAAC;EAED,oBACEP,KAAA,CAAAmB,aAAA;IAAKX,SAAS,EAAET,UAAU,CAACK,MAAM,CAACgB,UAAU,EAAEZ,SAAS,CAAE;IAACC,KAAK,EAAEA;EAAM,gBACrET,KAAA,CAAAmB,aAAA;IAAKX,SAAS,EAAEJ,MAAM,CAACiB;EAAc,gBACnCrB,KAAA,CAAAmB,aAAA,CAAChB,UAAU;IACTe,KAAK,EAAEZ,YAAY,IAAI,IAAK;IAC5BC,QAAQ,EAAEU,YAAa;IACvBK,GAAG,EAAEZ,OAAQ;IACba,GAAG,EAAEZ,OAAQ;IACbC,WAAW,EAAEA,WAAY;IACzBY,SAAS,EAAC,aAAa;IACvBC,KAAK,EAAE,KAAM;IACbX,UAAU,EAAEA;EAAW,CACxB,CAAC,EACDD,eAAe,IAAIP,YAAY,KAAKU,SAAS,iBAC5ChB,KAAA,CAAAmB,aAAA,CAACrB,MAAM;IACLU,SAAS,EAAEJ,MAAM,CAACsB,WAAY;IAC9BC,OAAO,EAAEZ,WAAY;IACrB,cAAW;EAAY,GACxB,MAEO,CAEP,CACF,CAAC;AAEV;AAEA,OAAO,MAAMa,eAAiE,gBAC5E3B,IAAI,CAACI,oBAAoB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"SingleDateInput.js","names":["Button","classnames","React","memo","useCallback","DatePicker","styles","SingleDateInputInner","selectedDate","onChange","className","style","minDate","maxDate","placeholder","showClearButton","formatDate","handleClear","undefined","handleChange","value","createElement","singleDate","dateContainer","min","max","ariaLabel","modal","clearButton","onClick","SingleDateInput"],"sources":["SingleDateInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback } from \"react\";\n\nimport { DatePicker } from \"../../../shared/calendar/index.js\";\n\nimport styles from \"./SingleDateInput.module.css\";\n\ninterface SingleDateInputProps {\n selectedDate: Date | undefined;\n onChange: (date: Date | undefined) => void;\n className?: string;\n style?: React.CSSProperties;\n minDate?: Date;\n maxDate?: Date;\n placeholder?: string;\n showClearButton?: boolean;\n /** Display formatter for picker idle text. Editing format stays ISO. */\n formatDate?: (date: Date) => string;\n}\n\nfunction SingleDateInputInner({\n selectedDate,\n onChange,\n className,\n style,\n minDate,\n maxDate,\n placeholder,\n showClearButton = true,\n formatDate,\n}: SingleDateInputProps): React.ReactElement {\n const handleClear = useCallback(() => {\n onChange(undefined);\n }, [onChange]);\n\n const handleChange = useCallback(\n (value: Date | null) => {\n onChange(value ?? undefined);\n },\n [onChange]\n );\n\n return (\n <div className={classnames(styles.singleDate, className)} style={style}>\n <div className={styles.dateContainer}>\n <DatePicker\n value={selectedDate ?? null}\n onChange={handleChange}\n min={minDate}\n max={maxDate}\n placeholder={placeholder}\n ariaLabel=\"Select date\"\n modal={false}\n formatDate={formatDate}\n />\n {showClearButton && selectedDate !== undefined && (\n <Button\n className={styles.clearButton}\n onClick={handleClear}\n aria-label=\"Clear date\"\n >\n ×\n </Button>\n )}\n </div>\n </div>\n );\n}\n\nexport const SingleDateInput: React.NamedExoticComponent<SingleDateInputProps> =\n memo(SingleDateInputInner);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,QAAQ,uBAAuB;AAC9C,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,IAAI,EAAEC,WAAW,QAAQ,OAAO;AAEhD,SAASC,UAAU,QAAQ,mCAAmC;AAE9D,OAAOC,MAAM,MAAM,8BAA8B;AAejD,SAASC,oBAAoBA,CAAC;EAC5BC,YAAY;EACZC,QAAQ;EACRC,SAAS;EACTC,KAAK;EACLC,OAAO;EACPC,OAAO;EACPC,WAAW;EACXC,eAAe,GAAG,IAAI;EACtBC;AACoB,CAAC,EAAsB;EAC3C,MAAMC,WAAW,GAAGb,WAAW,CAAC,MAAM;IACpCK,QAAQ,CAACS,SAAS,CAAC;EACrB,CAAC,EAAE,CAACT,QAAQ,CAAC,CAAC;EAEd,MAAMU,YAAY,GAAGf,WAAW,CAC7BgB,KAAkB,IAAK;IACtBX,QAAQ,CAACW,KAAK,IAAIF,SAAS,CAAC;EAC9B,CAAC,EACD,CAACT,QAAQ,CACX,CAAC;EAED,oBACEP,KAAA,CAAAmB,aAAA;IAAKX,SAAS,EAAET,UAAU,CAACK,MAAM,CAACgB,UAAU,EAAEZ,SAAS,CAAE;IAACC,KAAK,EAAEA;EAAM,gBACrET,KAAA,CAAAmB,aAAA;IAAKX,SAAS,EAAEJ,MAAM,CAACiB;EAAc,gBACnCrB,KAAA,CAAAmB,aAAA,CAAChB,UAAU;IACTe,KAAK,EAAEZ,YAAY,IAAI,IAAK;IAC5BC,QAAQ,EAAEU,YAAa;IACvBK,GAAG,EAAEZ,OAAQ;IACba,GAAG,EAAEZ,OAAQ;IACbC,WAAW,EAAEA,WAAY;IACzBY,SAAS,EAAC,aAAa;IACvBC,KAAK,EAAE,KAAM;IACbX,UAAU,EAAEA;EAAW,CACxB,CAAC,EACDD,eAAe,IAAIP,YAAY,KAAKU,SAAS,iBAC5ChB,KAAA,CAAAmB,aAAA,CAACrB,MAAM;IACLU,SAAS,EAAEJ,MAAM,CAACsB,WAAY;IAC9BC,OAAO,EAAEZ,WAAY;IACrB,cAAW;EAAY,GACxB,MAEO,CAEP,CACF,CAAC;AAEV;AAEA,OAAO,MAAMa,eAAiE,gBAC5E3B,IAAI,CAACI,oBAAoB,CAAC","ignoreList":[]}
@@ -21,9 +21,9 @@ import { useFilterListBoundary } from "../FilterListBoundaryContext.js";
21
21
  import { createRenderValueFilter } from "./comboboxFilter.js";
22
22
  import { OptionLabel } from "./OptionLabel.js";
23
23
  import { SelectInputSkeleton } from "./SelectInputSkeleton.js";
24
+ import { useStableData } from "./useStableData.js";
24
25
  import sharedStyles from "./shared.module.css";
25
26
  import styles from "./SingleSelectInput.module.css";
26
- import { useStableData } from "./useStableData.js";
27
27
  function SingleSelectInputInner({
28
28
  values,
29
29
  isLoading,
@@ -1 +1 @@
1
- {"version":3,"file":"SingleSelectInput.js","names":["classnames","React","memo","useCallback","useMemo","Combobox","useFilterListBoundary","createRenderValueFilter","OptionLabel","SelectInputSkeleton","sharedStyles","styles","useStableData","SingleSelectInputInner","values","isLoading","error","selectedValue","onChange","className","style","placeholder","showClearButton","showCounts","ariaLabel","renderValue","collisionBoundary","handleValueChange","value","undefined","stableValues","items","map","countByValue","Map","count","comboboxFilter","renderItem","createElement","Item","key","ItemIndicator","itemLabel","itemCount","get","toLocaleString","isNoData","length","isReloading","singleSelect","srOnly","role","errorMessage","message","emptyMessage","selectContainer","Root","onValueChange","filter","SearchInput","Clear","clearButton","Portal","Positioner","Popup","Empty","List","SingleSelectInput"],"sources":["SingleSelectInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { Combobox } from \"../../../base-components/combobox/Combobox.js\";\nimport type { PropertyAggregationValue } from \"../../types/AggregationTypes.js\";\nimport { useFilterListBoundary } from \"../FilterListBoundaryContext.js\";\nimport { createRenderValueFilter } from \"./comboboxFilter.js\";\nimport { OptionLabel } from \"./OptionLabel.js\";\nimport { SelectInputSkeleton } from \"./SelectInputSkeleton.js\";\nimport sharedStyles from \"./shared.module.css\";\nimport styles from \"./SingleSelectInput.module.css\";\nimport { useStableData } from \"./useStableData.js\";\n\ninterface SingleSelectInputProps {\n values: PropertyAggregationValue[];\n isLoading: boolean;\n error: Error | null;\n selectedValue: string | undefined;\n onChange: (value: string | undefined) => void;\n className?: string;\n style?: React.CSSProperties;\n placeholder?: string;\n showClearButton?: boolean;\n showCounts?: boolean;\n ariaLabel?: string;\n renderValue?: (value: string) => React.ReactNode;\n}\n\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}: SingleSelectInputProps): React.ReactElement {\n const collisionBoundary = useFilterListBoundary();\n\n const handleValueChange = useCallback(\n (value: string | null) => {\n onChange(value ?? undefined);\n },\n [onChange],\n );\n\n const stableValues = useStableData(values, isLoading);\n\n const items = useMemo(\n () => stableValues.map(({ value }) => value),\n [stableValues],\n );\n\n const countByValue = useMemo(\n () => new Map(stableValues.map(({ value, count }) => [value, count])),\n [stableValues],\n );\n\n const comboboxFilter = useMemo(\n () => renderValue ? createRenderValueFilter(renderValue) : undefined,\n [renderValue],\n );\n\n const renderItem = useCallback(\n (value: string) => {\n return (\n <Combobox.Item key={value} value={value}>\n <Combobox.ItemIndicator />\n <span className={styles.itemLabel}>\n <OptionLabel value={value} renderValue={renderValue} />\n </span>\n {showCounts && (\n <span className={styles.itemCount}>\n ({(countByValue.get(value) ?? 0).toLocaleString()})\n </span>\n )}\n </Combobox.Item>\n );\n },\n [countByValue, showCounts, renderValue],\n );\n\n const isNoData = !error && stableValues.length === 0;\n const isReloading = isLoading && stableValues.length > 0;\n\n return (\n <div\n className={classnames(styles.singleSelect, className)}\n style={style}\n data-loading={isReloading}\n >\n <span className={sharedStyles.srOnly} role=\"status\">\n {isLoading ? \"Loading options\" : \"\"}\n </span>\n\n {error && (\n <div className={sharedStyles.errorMessage}>\n Error loading options: {error.message}\n </div>\n )}\n\n {isNoData && isLoading && <SelectInputSkeleton />}\n {isNoData && !isLoading && (\n <div className={sharedStyles.emptyMessage}>\n No options available\n </div>\n )}\n\n {stableValues.length > 0 && (\n <div className={styles.selectContainer}>\n <Combobox.Root<string>\n value={selectedValue ?? null}\n onValueChange={handleValueChange}\n items={items}\n filter={comboboxFilter}\n >\n <Combobox.SearchInput\n placeholder={placeholder}\n aria-label={ariaLabel}\n />\n {showClearButton && selectedValue !== undefined && (\n <Combobox.Clear className={styles.clearButton} />\n )}\n <Combobox.Portal>\n <Combobox.Positioner collisionBoundary={collisionBoundary}>\n <Combobox.Popup>\n <Combobox.Empty>No matching options</Combobox.Empty>\n <Combobox.List>{renderItem}</Combobox.List>\n </Combobox.Popup>\n </Combobox.Positioner>\n </Combobox.Portal>\n </Combobox.Root>\n </div>\n )}\n </div>\n );\n}\n\nexport const SingleSelectInput = memo(\n SingleSelectInputInner,\n) as typeof SingleSelectInputInner;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SingleSelectInput.js","names":["classnames","React","memo","useCallback","useMemo","Combobox","useFilterListBoundary","createRenderValueFilter","OptionLabel","SelectInputSkeleton","useStableData","sharedStyles","styles","SingleSelectInputInner","values","isLoading","error","selectedValue","onChange","className","style","placeholder","showClearButton","showCounts","ariaLabel","renderValue","collisionBoundary","handleValueChange","value","undefined","stableValues","items","map","countByValue","Map","count","comboboxFilter","renderItem","createElement","Item","key","ItemIndicator","itemLabel","itemCount","get","toLocaleString","isNoData","length","isReloading","singleSelect","srOnly","role","errorMessage","message","emptyMessage","selectContainer","Root","onValueChange","filter","SearchInput","Clear","clearButton","Portal","Positioner","Popup","Empty","List","SingleSelectInput"],"sources":["SingleSelectInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\n\nimport { Combobox } from \"../../../base-components/combobox/Combobox.js\";\nimport type { PropertyAggregationValue } from \"../../types/AggregationTypes.js\";\nimport { useFilterListBoundary } from \"../FilterListBoundaryContext.js\";\nimport { createRenderValueFilter } from \"./comboboxFilter.js\";\nimport { OptionLabel } from \"./OptionLabel.js\";\nimport { SelectInputSkeleton } from \"./SelectInputSkeleton.js\";\nimport { useStableData } from \"./useStableData.js\";\n\nimport sharedStyles from \"./shared.module.css\";\nimport styles from \"./SingleSelectInput.module.css\";\n\ninterface SingleSelectInputProps {\n values: PropertyAggregationValue[];\n isLoading: boolean;\n error: Error | null;\n selectedValue: string | undefined;\n onChange: (value: string | undefined) => void;\n className?: string;\n style?: React.CSSProperties;\n placeholder?: string;\n showClearButton?: boolean;\n showCounts?: boolean;\n ariaLabel?: string;\n renderValue?: (value: string) => React.ReactNode;\n}\n\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}: SingleSelectInputProps): React.ReactElement {\n const collisionBoundary = useFilterListBoundary();\n\n const handleValueChange = useCallback(\n (value: string | null) => {\n onChange(value ?? undefined);\n },\n [onChange]\n );\n\n const stableValues = useStableData(values, isLoading);\n\n const items = useMemo(\n () => stableValues.map(({ value }) => value),\n [stableValues]\n );\n\n const countByValue = useMemo(\n () => new Map(stableValues.map(({ value, count }) => [value, count])),\n [stableValues]\n );\n\n const comboboxFilter = useMemo(\n () => (renderValue ? createRenderValueFilter(renderValue) : undefined),\n [renderValue]\n );\n\n const renderItem = useCallback(\n (value: string) => {\n return (\n <Combobox.Item key={value} value={value}>\n <Combobox.ItemIndicator />\n <span className={styles.itemLabel}>\n <OptionLabel value={value} renderValue={renderValue} />\n </span>\n {showCounts && (\n <span className={styles.itemCount}>\n ({(countByValue.get(value) ?? 0).toLocaleString()})\n </span>\n )}\n </Combobox.Item>\n );\n },\n [countByValue, showCounts, renderValue]\n );\n\n const isNoData = !error && stableValues.length === 0;\n const isReloading = isLoading && stableValues.length > 0;\n\n return (\n <div\n className={classnames(styles.singleSelect, className)}\n style={style}\n data-loading={isReloading}\n >\n <span className={sharedStyles.srOnly} role=\"status\">\n {isLoading ? \"Loading options\" : \"\"}\n </span>\n\n {error && (\n <div className={sharedStyles.errorMessage}>\n Error loading options: {error.message}\n </div>\n )}\n\n {isNoData && isLoading && <SelectInputSkeleton />}\n {isNoData && !isLoading && (\n <div className={sharedStyles.emptyMessage}>No options available</div>\n )}\n\n {stableValues.length > 0 && (\n <div className={styles.selectContainer}>\n <Combobox.Root<string>\n value={selectedValue ?? null}\n onValueChange={handleValueChange}\n items={items}\n filter={comboboxFilter}\n >\n <Combobox.SearchInput\n placeholder={placeholder}\n aria-label={ariaLabel}\n />\n {showClearButton && selectedValue !== undefined && (\n <Combobox.Clear className={styles.clearButton} />\n )}\n <Combobox.Portal>\n <Combobox.Positioner collisionBoundary={collisionBoundary}>\n <Combobox.Popup>\n <Combobox.Empty>No matching options</Combobox.Empty>\n <Combobox.List>{renderItem}</Combobox.List>\n </Combobox.Popup>\n </Combobox.Positioner>\n </Combobox.Portal>\n </Combobox.Root>\n </div>\n )}\n </div>\n );\n}\n\nexport const SingleSelectInput = memo(\n SingleSelectInputInner\n) as typeof SingleSelectInputInner;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TextTagsInput.js","names":["Button","classnames","React","memo","useCallback","useMemo","useState","Combobox","useFilterListBoundary","getOptionLabelText","OptionLabel","SelectInputSkeleton","sharedStyles","styles","TAG_SEPARATOR_PATTERN","TagItem","tag","onRemove","handleRemove","displayLabel","createElement","className","value","type","tagRemove","onClick","TextTagsInputInner","suggestions","isLoading","error","tags","onChange","style","placeholder","allowCustomTags","suggestionLimit","ariaLabel","collisionBoundary","inputValue","setInputValue","filteredSuggestions","lowerInput","toLowerCase","filter","s","trim","includes","slice","addTag","trimmedTag","removeTag","t","handleValueChange","newTags","handleInputValueChange","handleKeyDown","e","key","length","preventDefault","handlePaste","pastedText","clipboardData","getData","test","split","map","textTags","srOnly","role","errorMessage","message","Root","multiple","onValueChange","onInputValueChange","tagContainer","SearchInput","input","onKeyDown","onPaste","Portal","Positioner","Popup","Empty","count","Item","toLocaleString","TextTagsInput"],"sources":["TextTagsInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo, useState } from \"react\";\nimport { Combobox } from \"../../../base-components/combobox/Combobox.js\";\nimport type { PropertyAggregationValue } from \"../../types/AggregationTypes.js\";\nimport { useFilterListBoundary } from \"../FilterListBoundaryContext.js\";\nimport { getOptionLabelText, OptionLabel } from \"./OptionLabel.js\";\nimport { SelectInputSkeleton } from \"./SelectInputSkeleton.js\";\nimport sharedStyles from \"./shared.module.css\";\nimport styles from \"./TextTagsInput.module.css\";\n\nconst TAG_SEPARATOR_PATTERN = /[,\\n]/;\n\ninterface TagItemProps {\n tag: string;\n onRemove: (tag: string) => void;\n}\n\nconst TagItem = memo(function TagItem({ tag, onRemove }: TagItemProps) {\n const handleRemove = useCallback(() => {\n onRemove(tag);\n }, [tag, onRemove]);\n\n const displayLabel = getOptionLabelText(tag);\n\n return (\n <span className={sharedStyles.tag}>\n <OptionLabel value={tag} />\n <Button\n type=\"button\"\n className={sharedStyles.tagRemove}\n onClick={handleRemove}\n aria-label={`Remove ${displayLabel}`}\n >\n ×\n </Button>\n </span>\n );\n});\n\ninterface TextTagsInputProps {\n suggestions: PropertyAggregationValue[];\n isLoading: boolean;\n error: Error | null;\n tags: string[];\n onChange: (tags: string[]) => void;\n className?: string;\n style?: React.CSSProperties;\n placeholder?: string;\n allowCustomTags?: boolean;\n suggestionLimit?: number;\n ariaLabel?: string;\n}\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}: TextTagsInputProps): React.ReactElement {\n const collisionBoundary = useFilterListBoundary();\n const [inputValue, setInputValue] = useState(\"\");\n\n const filteredSuggestions = useMemo(() => {\n if (!suggestionLimit) return [];\n const lowerInput = inputValue.toLowerCase();\n return suggestions\n .filter(\n (s) =>\n (!inputValue.trim()\n || s.value.toLowerCase().includes(lowerInput))\n && !tags.includes(s.value),\n )\n .slice(0, suggestionLimit);\n }, [suggestions, inputValue, tags, suggestionLimit]);\n\n const addTag = useCallback(\n (tag: string) => {\n const trimmedTag = tag.trim();\n if (trimmedTag && !tags.includes(trimmedTag)) {\n onChange([...tags, trimmedTag]);\n }\n setInputValue(\"\");\n },\n [tags, onChange],\n );\n\n const removeTag = useCallback(\n (tag: string) => {\n onChange(tags.filter((t) => t !== tag));\n },\n [tags, onChange],\n );\n\n const handleValueChange = useCallback(\n (newTags: string[] | null) => {\n onChange(newTags ?? []);\n },\n [onChange],\n );\n\n const handleInputValueChange = useCallback(\n (value: string) => {\n setInputValue(value);\n },\n [],\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\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 },\n [inputValue, tags, addTag, removeTag, allowCustomTags, filteredSuggestions],\n );\n\n const handlePaste = useCallback(\n (e: React.ClipboardEvent<HTMLInputElement>) => {\n const pastedText = e.clipboardData.getData(\"text\");\n if (TAG_SEPARATOR_PATTERN.test(pastedText)) {\n e.preventDefault();\n const newTags = pastedText\n .split(TAG_SEPARATOR_PATTERN)\n .map((t) => t.trim())\n .filter((t) => t && !tags.includes(t));\n if (newTags.length > 0) {\n onChange([...tags, ...newTags]);\n }\n }\n },\n [tags, onChange],\n );\n\n return (\n <div\n className={classnames(styles.textTags, className)}\n style={style}\n data-loading={isLoading && suggestions.length > 0}\n >\n <span className={sharedStyles.srOnly} role=\"status\">\n {isLoading ? \"Loading options\" : \"\"}\n </span>\n\n {error && (\n <div className={sharedStyles.errorMessage}>\n Error loading suggestions: {error.message}\n </div>\n )}\n\n <Combobox.Root<string, true>\n multiple={true}\n value={tags}\n onValueChange={handleValueChange}\n inputValue={inputValue}\n onInputValueChange={handleInputValueChange}\n >\n {tags.length > 0 && (\n <div className={sharedStyles.tagContainer}>\n {tags.map((tag) => (\n <TagItem key={tag} tag={tag} onRemove={removeTag} />\n ))}\n </div>\n )}\n\n <Combobox.SearchInput\n className={styles.input}\n placeholder={tags.length > 0 ? \"\" : placeholder}\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n aria-label={ariaLabel}\n />\n\n <Combobox.Portal>\n <Combobox.Positioner collisionBoundary={collisionBoundary}>\n <Combobox.Popup>\n {filteredSuggestions.length === 0\n ? (\n allowCustomTags && inputValue.trim()\n ? (\n <Combobox.Empty>\n Press Enter to add \"{inputValue}\"\n </Combobox.Empty>\n )\n : (\n <Combobox.Empty>\n {suggestionLimit\n ? \"No suggestions\"\n : \"Type to add a tag\"}\n </Combobox.Empty>\n )\n )\n : filteredSuggestions.map(({ value, count }) => (\n <Combobox.Item key={value} value={value}>\n <OptionLabel value={value} /> ({count.toLocaleString()})\n </Combobox.Item>\n ))}\n </Combobox.Popup>\n </Combobox.Positioner>\n </Combobox.Portal>\n </Combobox.Root>\n\n {!error && suggestions.length === 0 && isLoading && !!suggestionLimit && (\n <SelectInputSkeleton />\n )}\n </div>\n );\n}\n\nexport const TextTagsInput = memo(\n TextTagsInputInner,\n) as typeof TextTagsInputInner;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"TextTagsInput.js","names":["Button","classnames","React","memo","useCallback","useMemo","useState","Combobox","useFilterListBoundary","getOptionLabelText","OptionLabel","SelectInputSkeleton","sharedStyles","styles","TAG_SEPARATOR_PATTERN","TagItem","tag","onRemove","handleRemove","displayLabel","createElement","className","value","type","tagRemove","onClick","TextTagsInputInner","suggestions","isLoading","error","tags","onChange","style","placeholder","allowCustomTags","suggestionLimit","ariaLabel","collisionBoundary","inputValue","setInputValue","filteredSuggestions","lowerInput","toLowerCase","filter","s","trim","includes","slice","addTag","trimmedTag","removeTag","t","handleValueChange","newTags","handleInputValueChange","handleKeyDown","e","key","length","preventDefault","handlePaste","pastedText","clipboardData","getData","test","split","map","textTags","srOnly","role","errorMessage","message","Root","multiple","onValueChange","onInputValueChange","tagContainer","SearchInput","input","onKeyDown","onPaste","Portal","Positioner","Popup","Empty","count","Item","toLocaleString","TextTagsInput"],"sources":["TextTagsInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo, useState } from \"react\";\n\nimport { Combobox } from \"../../../base-components/combobox/Combobox.js\";\nimport type { PropertyAggregationValue } from \"../../types/AggregationTypes.js\";\nimport { useFilterListBoundary } from \"../FilterListBoundaryContext.js\";\nimport { getOptionLabelText, OptionLabel } from \"./OptionLabel.js\";\nimport { SelectInputSkeleton } from \"./SelectInputSkeleton.js\";\n\nimport sharedStyles from \"./shared.module.css\";\nimport styles from \"./TextTagsInput.module.css\";\n\nconst TAG_SEPARATOR_PATTERN = /[,\\n]/;\n\ninterface TagItemProps {\n tag: string;\n onRemove: (tag: string) => void;\n}\n\nconst TagItem = memo(function TagItem({ tag, onRemove }: TagItemProps) {\n const handleRemove = useCallback(() => {\n onRemove(tag);\n }, [tag, onRemove]);\n\n const displayLabel = getOptionLabelText(tag);\n\n return (\n <span className={sharedStyles.tag}>\n <OptionLabel value={tag} />\n <Button\n type=\"button\"\n className={sharedStyles.tagRemove}\n onClick={handleRemove}\n aria-label={`Remove ${displayLabel}`}\n >\n ×\n </Button>\n </span>\n );\n});\n\ninterface TextTagsInputProps {\n suggestions: PropertyAggregationValue[];\n isLoading: boolean;\n error: Error | null;\n tags: string[];\n onChange: (tags: string[]) => void;\n className?: string;\n style?: React.CSSProperties;\n placeholder?: string;\n allowCustomTags?: boolean;\n suggestionLimit?: number;\n ariaLabel?: string;\n}\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}: TextTagsInputProps): React.ReactElement {\n const collisionBoundary = useFilterListBoundary();\n const [inputValue, setInputValue] = useState(\"\");\n\n const filteredSuggestions = useMemo(() => {\n if (!suggestionLimit) return [];\n const lowerInput = inputValue.toLowerCase();\n return suggestions\n .filter(\n (s) =>\n (!inputValue.trim() || s.value.toLowerCase().includes(lowerInput)) &&\n !tags.includes(s.value)\n )\n .slice(0, suggestionLimit);\n }, [suggestions, inputValue, tags, suggestionLimit]);\n\n const addTag = useCallback(\n (tag: string) => {\n const trimmedTag = tag.trim();\n if (trimmedTag && !tags.includes(trimmedTag)) {\n onChange([...tags, trimmedTag]);\n }\n setInputValue(\"\");\n },\n [tags, onChange]\n );\n\n const removeTag = useCallback(\n (tag: string) => {\n onChange(tags.filter((t) => t !== tag));\n },\n [tags, onChange]\n );\n\n const handleValueChange = useCallback(\n (newTags: string[] | null) => {\n onChange(newTags ?? []);\n },\n [onChange]\n );\n\n const handleInputValueChange = useCallback((value: string) => {\n setInputValue(value);\n }, []);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\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 },\n [inputValue, tags, addTag, removeTag, allowCustomTags, filteredSuggestions]\n );\n\n const handlePaste = useCallback(\n (e: React.ClipboardEvent<HTMLInputElement>) => {\n const pastedText = e.clipboardData.getData(\"text\");\n if (TAG_SEPARATOR_PATTERN.test(pastedText)) {\n e.preventDefault();\n const newTags = pastedText\n .split(TAG_SEPARATOR_PATTERN)\n .map((t) => t.trim())\n .filter((t) => t && !tags.includes(t));\n if (newTags.length > 0) {\n onChange([...tags, ...newTags]);\n }\n }\n },\n [tags, onChange]\n );\n\n return (\n <div\n className={classnames(styles.textTags, className)}\n style={style}\n data-loading={isLoading && suggestions.length > 0}\n >\n <span className={sharedStyles.srOnly} role=\"status\">\n {isLoading ? \"Loading options\" : \"\"}\n </span>\n\n {error && (\n <div className={sharedStyles.errorMessage}>\n Error loading suggestions: {error.message}\n </div>\n )}\n\n <Combobox.Root<string, true>\n multiple={true}\n value={tags}\n onValueChange={handleValueChange}\n inputValue={inputValue}\n onInputValueChange={handleInputValueChange}\n >\n {tags.length > 0 && (\n <div className={sharedStyles.tagContainer}>\n {tags.map((tag) => (\n <TagItem key={tag} tag={tag} onRemove={removeTag} />\n ))}\n </div>\n )}\n\n <Combobox.SearchInput\n className={styles.input}\n placeholder={tags.length > 0 ? \"\" : placeholder}\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n aria-label={ariaLabel}\n />\n\n <Combobox.Portal>\n <Combobox.Positioner collisionBoundary={collisionBoundary}>\n <Combobox.Popup>\n {filteredSuggestions.length === 0 ? (\n allowCustomTags && inputValue.trim() ? (\n <Combobox.Empty>\n Press Enter to add \"{inputValue}\"\n </Combobox.Empty>\n ) : (\n <Combobox.Empty>\n {suggestionLimit ? \"No suggestions\" : \"Type to add a tag\"}\n </Combobox.Empty>\n )\n ) : (\n filteredSuggestions.map(({ value, count }) => (\n <Combobox.Item key={value} value={value}>\n <OptionLabel value={value} /> ({count.toLocaleString()})\n </Combobox.Item>\n ))\n )}\n </Combobox.Popup>\n </Combobox.Positioner>\n </Combobox.Portal>\n </Combobox.Root>\n\n {!error && suggestions.length === 0 && isLoading && !!suggestionLimit && (\n <SelectInputSkeleton />\n )}\n </div>\n );\n}\n\nexport const TextTagsInput = memo(\n TextTagsInputInner\n) as typeof TextTagsInputInner;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TimelineInput.js","names":["Button","Input","classnames","React","memo","useCallback","useMemo","formatDateForDisplay","formatDateForInput","parseDateFromInput","styles","TimelineInputInner","startDate","endDate","onChange","className","minDate","maxDate","formatDate","renderDate","date","fallback","handleStartChange","e","target","value","handleEndChange","handleClear","undefined","startInputMax","endInputMin","createElement","timeline","labels","type","onClick","clearButton","brush","input","min","max","TimelineInput"],"sources":["TimelineInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Input } from \"@base-ui/react/input\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport {\n formatDateForDisplay,\n formatDateForInput,\n parseDateFromInput,\n} from \"../../../shared/dateUtils.js\";\nimport styles from \"./TimelineInput.module.css\";\n\ninterface TimelineInputProps {\n startDate: Date | undefined;\n endDate: Date | undefined;\n onChange: (startDate: Date | undefined, endDate: Date | undefined) => void;\n className?: string;\n minDate?: Date;\n maxDate?: Date;\n /**\n * Optional callback used for the period labels above the date inputs.\n * The HTML `<input type=\"date\">` value attribute is unaffected and stays\n * ISO `YYYY-MM-DD`.\n */\n formatDate?: (date: Date) => string;\n}\n\nfunction TimelineInputInner({\n startDate,\n endDate,\n onChange,\n className,\n minDate,\n maxDate,\n formatDate,\n}: TimelineInputProps): React.ReactElement {\n const renderDate = (date: Date | undefined, fallback: string): string =>\n date == null\n ? fallback\n : formatDate\n ? formatDate(date)\n : formatDateForDisplay(date, fallback);\n const handleStartChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const date = parseDateFromInput(e.target.value);\n onChange(date, endDate);\n },\n [onChange, endDate],\n );\n\n const handleEndChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const date = parseDateFromInput(e.target.value);\n onChange(startDate, date);\n },\n [onChange, startDate],\n );\n\n const handleClear = useCallback(() => {\n onChange(undefined, undefined);\n }, [onChange]);\n\n const startInputMax = useMemo(\n () => endDate ?? maxDate,\n [endDate, maxDate],\n );\n const endInputMin = useMemo(\n () => startDate ?? minDate,\n [startDate, minDate],\n );\n\n return (\n <div className={classnames(styles.timeline, className)}>\n <div className={styles.labels}>\n <span>{renderDate(startDate, \"—\")}</span>\n <span>to</span>\n <span>{renderDate(endDate, \"—\")}</span>\n {(startDate || endDate) && (\n <Button\n type=\"button\"\n onClick={handleClear}\n aria-label=\"Clear range\"\n className={styles.clearButton}\n >\n ×\n </Button>\n )}\n </div>\n\n <div className={styles.brush}>\n <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 />\n <span>—</span>\n <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 </div>\n </div>\n );\n}\n\nexport const TimelineInput: React.NamedExoticComponent<TimelineInputProps> =\n memo(TimelineInputInner);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"TimelineInput.js","names":["Button","Input","classnames","React","memo","useCallback","useMemo","formatDateForDisplay","formatDateForInput","parseDateFromInput","styles","TimelineInputInner","startDate","endDate","onChange","className","minDate","maxDate","formatDate","renderDate","date","fallback","handleStartChange","e","target","value","handleEndChange","handleClear","undefined","startInputMax","endInputMin","createElement","timeline","labels","type","onClick","clearButton","brush","input","min","max","TimelineInput"],"sources":["TimelineInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Input } from \"@base-ui/react/input\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\n\nimport {\n formatDateForDisplay,\n formatDateForInput,\n parseDateFromInput,\n} from \"../../../shared/dateUtils.js\";\n\nimport styles from \"./TimelineInput.module.css\";\n\ninterface TimelineInputProps {\n startDate: Date | undefined;\n endDate: Date | undefined;\n onChange: (startDate: Date | undefined, endDate: Date | undefined) => void;\n className?: string;\n minDate?: Date;\n maxDate?: Date;\n /**\n * Optional callback used for the period labels above the date inputs.\n * The HTML `<input type=\"date\">` value attribute is unaffected and stays\n * ISO `YYYY-MM-DD`.\n */\n formatDate?: (date: Date) => string;\n}\n\nfunction TimelineInputInner({\n startDate,\n endDate,\n onChange,\n className,\n minDate,\n maxDate,\n formatDate,\n}: TimelineInputProps): React.ReactElement {\n const renderDate = (date: Date | undefined, fallback: string): string =>\n date == null\n ? fallback\n : formatDate\n ? formatDate(date)\n : formatDateForDisplay(date, fallback);\n const handleStartChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const date = parseDateFromInput(e.target.value);\n onChange(date, endDate);\n },\n [onChange, endDate]\n );\n\n const handleEndChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const date = parseDateFromInput(e.target.value);\n onChange(startDate, date);\n },\n [onChange, startDate]\n );\n\n const handleClear = useCallback(() => {\n onChange(undefined, undefined);\n }, [onChange]);\n\n const startInputMax = useMemo(() => endDate ?? maxDate, [endDate, maxDate]);\n const endInputMin = useMemo(() => startDate ?? minDate, [startDate, minDate]);\n\n return (\n <div className={classnames(styles.timeline, className)}>\n <div className={styles.labels}>\n <span>{renderDate(startDate, \"—\")}</span>\n <span>to</span>\n <span>{renderDate(endDate, \"—\")}</span>\n {(startDate || endDate) && (\n <Button\n type=\"button\"\n onClick={handleClear}\n aria-label=\"Clear range\"\n className={styles.clearButton}\n >\n ×\n </Button>\n )}\n </div>\n\n <div className={styles.brush}>\n <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 />\n <span>—</span>\n <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 </div>\n </div>\n );\n}\n\nexport const TimelineInput: React.NamedExoticComponent<TimelineInputProps> =\n memo(TimelineInputInner);\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleInput.js","names":["classnames","React","memo","Switch","styles","ToggleInputInner","enabled","onChange","label","className","style","rootClassName","toggleInput","createElement","toggleLabel","checked","onCheckedChange","labelText","ToggleInput"],"sources":["ToggleInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classnames from \"classnames\";\nimport React, { memo } from \"react\";\nimport { Switch } from \"../../../base-components/switch/Switch.js\";\nimport styles from \"./ToggleInput.module.css\";\n\ninterface ToggleInputProps {\n enabled: boolean;\n onChange: (enabled: boolean) => void;\n label?: string;\n className?: string;\n style?: React.CSSProperties;\n}\n\nfunction ToggleInputInner({\n enabled,\n onChange,\n label,\n className,\n style,\n}: ToggleInputProps): React.ReactElement {\n const rootClassName = classnames(styles.toggleInput, className);\n\n return (\n <div className={rootClassName} style={style} data-enabled={enabled}>\n <label className={styles.toggleLabel}>\n <Switch checked={enabled} onCheckedChange={onChange} />\n {label && <span className={styles.labelText}>{label}</span>}\n </label>\n </div>\n );\n}\n\nexport const ToggleInput: React.NamedExoticComponent<ToggleInputProps> = memo(\n ToggleInputInner,\n);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,MAAM,QAAQ,2CAA2C;AAClE,OAAOC,MAAM,MAAM,0BAA0B;AAU7C,SAASC,gBAAgBA,CAAC;EACxBC,OAAO;EACPC,QAAQ;EACRC,KAAK;EACLC,SAAS;EACTC;AACgB,CAAC,EAAsB;EACvC,MAAMC,aAAa,GAAGX,UAAU,CAACI,MAAM,CAACQ,WAAW,EAAEH,SAAS,CAAC;EAE/D,oBACER,KAAA,CAAAY,aAAA;IAAKJ,SAAS,EAAEE,aAAc;IAACD,KAAK,EAAEA,KAAM;IAAC,gBAAcJ;EAAQ,gBACjEL,KAAA,CAAAY,aAAA;IAAOJ,SAAS,EAAEL,MAAM,CAACU;EAAY,gBACnCb,KAAA,CAAAY,aAAA,CAACV,MAAM;IAACY,OAAO,EAAET,OAAQ;IAACU,eAAe,EAAET;EAAS,CAAE,CAAC,EACtDC,KAAK,iBAAIP,KAAA,CAAAY,aAAA;IAAMJ,SAAS,EAAEL,MAAM,CAACa;EAAU,GAAET,KAAY,CACrD,CACJ,CAAC;AAEV;AAEA,OAAO,MAAMU,WAAyD,gBAAGhB,IAAI,CAC3EG,gBACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"ToggleInput.js","names":["classnames","React","memo","Switch","styles","ToggleInputInner","enabled","onChange","label","className","style","rootClassName","toggleInput","createElement","toggleLabel","checked","onCheckedChange","labelText","ToggleInput"],"sources":["ToggleInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classnames from \"classnames\";\nimport React, { memo } from \"react\";\n\nimport { Switch } from \"../../../base-components/switch/Switch.js\";\n\nimport styles from \"./ToggleInput.module.css\";\n\ninterface ToggleInputProps {\n enabled: boolean;\n onChange: (enabled: boolean) => void;\n label?: string;\n className?: string;\n style?: React.CSSProperties;\n}\n\nfunction ToggleInputInner({\n enabled,\n onChange,\n label,\n className,\n style,\n}: ToggleInputProps): React.ReactElement {\n const rootClassName = classnames(styles.toggleInput, className);\n\n return (\n <div className={rootClassName} style={style} data-enabled={enabled}>\n <label className={styles.toggleLabel}>\n <Switch checked={enabled} onCheckedChange={onChange} />\n {label && <span className={styles.labelText}>{label}</span>}\n </label>\n </div>\n );\n}\n\nexport const ToggleInput: React.NamedExoticComponent<ToggleInputProps> =\n memo(ToggleInputInner);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,IAAI,QAAQ,OAAO;AAEnC,SAASC,MAAM,QAAQ,2CAA2C;AAElE,OAAOC,MAAM,MAAM,0BAA0B;AAU7C,SAASC,gBAAgBA,CAAC;EACxBC,OAAO;EACPC,QAAQ;EACRC,KAAK;EACLC,SAAS;EACTC;AACgB,CAAC,EAAsB;EACvC,MAAMC,aAAa,GAAGX,UAAU,CAACI,MAAM,CAACQ,WAAW,EAAEH,SAAS,CAAC;EAE/D,oBACER,KAAA,CAAAY,aAAA;IAAKJ,SAAS,EAAEE,aAAc;IAACD,KAAK,EAAEA,KAAM;IAAC,gBAAcJ;EAAQ,gBACjEL,KAAA,CAAAY,aAAA;IAAOJ,SAAS,EAAEL,MAAM,CAACU;EAAY,gBACnCb,KAAA,CAAAY,aAAA,CAACV,MAAM;IAACY,OAAO,EAAET,OAAQ;IAACU,eAAe,EAAET;EAAS,CAAE,CAAC,EACtDC,KAAK,iBAAIP,KAAA,CAAAY,aAAA;IAAMJ,SAAS,EAAEL,MAAM,CAACa;EAAU,GAAET,KAAY,CACrD,CACJ,CAAC;AAEV;AAEA,OAAO,MAAMU,WAAyD,gBACpEhB,IAAI,CAACG,gBAAgB,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"comboboxFilter.js","names":["createRenderValueFilter","renderValue","itemValue","query","rendered","searchText","toLowerCase","includes"],"sources":["comboboxFilter.ts"],"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 type { ReactNode } from \"react\";\n\n/**\n * Build a Combobox `filter` function that searches by `renderValue(item)` when\n * it returns a string, and falls back to the raw item value when it returns\n * non-string JSX. Comparison is case-insensitive.\n */\nexport function createRenderValueFilter(\n renderValue: (value: string) => ReactNode,\n): (itemValue: string, query: string) => boolean {\n return (itemValue, query) => {\n const rendered = renderValue(itemValue);\n const searchText = typeof rendered === \"string\" ? rendered : itemValue;\n return searchText.toLowerCase().includes(query.toLowerCase());\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,uBAAuBA,CACrCC,WAAyC,EACM;EAC/C,OAAO,CAACC,SAAS,EAAEC,KAAK,KAAK;IAC3B,MAAMC,QAAQ,GAAGH,WAAW,CAACC,SAAS,CAAC;IACvC,MAAMG,UAAU,GAAG,OAAOD,QAAQ,KAAK,QAAQ,GAAGA,QAAQ,GAAGF,SAAS;IACtE,OAAOG,UAAU,CAACC,WAAW,CAAC,CAAC,CAACC,QAAQ,CAACJ,KAAK,CAACG,WAAW,CAAC,CAAC,CAAC;EAC/D,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"comboboxFilter.js","names":["createRenderValueFilter","renderValue","itemValue","query","rendered","searchText","toLowerCase","includes"],"sources":["comboboxFilter.ts"],"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 type { ReactNode } from \"react\";\n\n/**\n * Build a Combobox `filter` function that searches by `renderValue(item)` when\n * it returns a string, and falls back to the raw item value when it returns\n * non-string JSX. Comparison is case-insensitive.\n */\nexport function createRenderValueFilter(\n renderValue: (value: string) => ReactNode\n): (itemValue: string, query: string) => boolean {\n return (itemValue, query) => {\n const rendered = renderValue(itemValue);\n const searchText = typeof rendered === \"string\" ? rendered : itemValue;\n return searchText.toLowerCase().includes(query.toLowerCase());\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,uBAAuBA,CACrCC,WAAyC,EACM;EAC/C,OAAO,CAACC,SAAS,EAAEC,KAAK,KAAK;IAC3B,MAAMC,QAAQ,GAAGH,WAAW,CAACC,SAAS,CAAC;IACvC,MAAMG,UAAU,GAAG,OAAOD,QAAQ,KAAK,QAAQ,GAAGA,QAAQ,GAAGF,SAAS;IACtE,OAAOG,UAAU,CAACC,WAAW,CAAC,CAAC,CAACC,QAAQ,CAACJ,KAAK,CAACG,WAAW,CAAC,CAAC,CAAC;EAC/D,CAAC;AACH","ignoreList":[]}