@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":"DropdownField.js","names":["CaretDown","Cross","SmallCross","Tick","React","useCallback","useState","Combobox","comboboxStyles","Select","selectStyles","PortalDismissLayer","typedReactMemo","dropdownStyles","EMPTY_ARRAY","DropdownField","isSearchable","isMultiple","itemToStringLabel","renderItemLabel","itemToKey","value","query","onQueryChange","disableClientSideFiltering","popupStatus","trailingItem","modal","rest","normalizedValue","resolvedItemToStringLabel","defaultItemToStringLabel","resolvedRenderItemLabel","getKey","item","createElement","ComboboxDropdown","_extends","SelectDropdown","id","onChange","items","isItemEqual","placeholder","portalRef","portalContainer","onBlur","disabled","open","setOpen","isOpen","renderSingleSelectedItemLabel","selectedValue","handleOpenChange","nextOpen","handleClear","handleDismiss","Root","onValueChange","onOpenChange","isItemEqualToValue","Trigger","className","osdkSelectValueContainer","Value","osdkSelectPlaceholder","role","osdkSelectClear","undefined","onMouseDown","preventTriggerOpen","onClick","osdkSelectIcon","Portal","ref","container","osdkSelectDismissLayer","onDismiss","Positioner","Popup","map","itemLabel","Item","key","label","hasValue","Array","isArray","length","handleValueChange","args","cleared","handleRemoveItem","itemToRemove","next","filter","v","renderItem","ItemIndicator","multiple","inputValue","onInputValueChange","osdkComboboxTriggerMulti","osdkComboboxValueContainer","osdkComboboxTriggerChips","osdkComboboxTriggerChip","osdkComboboxTriggerChipRemove","size","Fragment","osdkComboboxPlaceholder","osdkComboboxClear","Icon","osdkComboboxDismissLayer","osdkComboboxPopupSearchInput","SearchInput","Empty","List","Collection","e","stopPropagation","preventDefault","String"],"sources":["DropdownField.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 { CaretDown, Cross, SmallCross, Tick } from \"@blueprintjs/icons\";\nimport React, { useCallback, useState } from \"react\";\nimport { Combobox } from \"../../base-components/combobox/Combobox.js\";\nimport comboboxStyles from \"../../base-components/combobox/Combobox.module.css\";\nimport { Select } from \"../../base-components/select/Select.js\";\nimport selectStyles from \"../../base-components/select/Select.module.css\";\nimport { PortalDismissLayer } from \"../../shared/PortalDismissLayer.js\";\nimport { typedReactMemo } from \"../../shared/typedMemo.js\";\nimport type { DropdownFieldProps } from \"../FormFieldApi.js\";\nimport dropdownStyles from \"./DropdownField.module.css\";\n\nconst EMPTY_ARRAY: [] = [];\n\n/**\n * SelectDropdown is only used for single-select (the multi-select path\n * always routes to ComboboxDropdown). We keep the `Multiple` generic so\n * the spread from DropdownField type-checks, but SelectDropdown never\n * reads `isMultiple`.\n */\ninterface InnerSelectProps<V, Multiple extends boolean>\n extends Omit<DropdownFieldProps<V, Multiple>, \"isSearchable\">\n{\n itemToStringLabel: (item: V) => string;\n renderItemLabel: (item: V) => React.ReactNode;\n getKey: (item: V) => string;\n portalRef?: React.Ref<HTMLDivElement>;\n query?: string;\n onQueryChange?: (query: string) => void;\n onBlur?: () => void;\n modal?: boolean;\n}\n\ninterface InnerComboboxProps<V, Multiple extends boolean>\n extends InnerSelectProps<V, Multiple>\n{\n isSearchable: boolean;\n disableClientSideFiltering?: boolean;\n popupStatus?: React.ReactNode;\n trailingItem?: DropdownFieldProps<V, Multiple>[\"trailingItem\"];\n}\n\nexport const DropdownField: <V, Multiple extends boolean = false>(\n props: DropdownFieldProps<V, Multiple> & { onBlur?: () => void },\n) => React.ReactElement = typedReactMemo(function DropdownFieldFn<\n V,\n Multiple extends boolean = false,\n>({\n isSearchable = false,\n isMultiple,\n itemToStringLabel,\n renderItemLabel,\n itemToKey,\n value,\n query,\n onQueryChange,\n disableClientSideFiltering,\n popupStatus,\n trailingItem,\n modal = true,\n ...rest\n}: DropdownFieldProps<V, Multiple> & {\n onBlur?: () => void;\n}): React.ReactElement {\n // Ensure always controlled from first render: multi-select needs [],\n // single-select needs null. Passing undefined switches Base UI from\n // uncontrolled to controlled and triggers a warning.\n const normalizedValue = (value\n ?? (isMultiple ? EMPTY_ARRAY : null)) as typeof value;\n\n const resolvedItemToStringLabel = itemToStringLabel\n ?? defaultItemToStringLabel;\n\n const resolvedRenderItemLabel = renderItemLabel ?? resolvedItemToStringLabel;\n\n const getKey = useCallback(\n (item: V) => itemToKey?.(item) ?? resolvedItemToStringLabel(item),\n [itemToKey, resolvedItemToStringLabel],\n );\n\n // Multi-select always uses Combobox for the chip-based UI because it looks better\n if (isSearchable || isMultiple) {\n return (\n <ComboboxDropdown\n {...rest}\n isMultiple={isMultiple}\n value={normalizedValue}\n itemToStringLabel={resolvedItemToStringLabel}\n renderItemLabel={resolvedRenderItemLabel}\n getKey={getKey}\n isSearchable={isSearchable}\n query={query}\n onQueryChange={onQueryChange}\n disableClientSideFiltering={disableClientSideFiltering}\n popupStatus={popupStatus}\n trailingItem={trailingItem}\n modal={modal}\n />\n );\n }\n\n // TODO: Support trailingItem\n return (\n <SelectDropdown\n {...rest}\n value={normalizedValue}\n itemToStringLabel={resolvedItemToStringLabel}\n renderItemLabel={resolvedRenderItemLabel}\n getKey={getKey}\n modal={modal}\n />\n );\n});\n\nconst SelectDropdown = typedReactMemo(function SelectDropdownFn<\n V,\n Multiple extends boolean,\n>({\n id,\n value,\n onChange,\n items,\n itemToStringLabel,\n renderItemLabel,\n getKey,\n isItemEqual,\n placeholder,\n portalRef,\n portalContainer,\n onBlur,\n modal = true,\n disabled,\n}: InnerSelectProps<V, Multiple>): React.ReactElement {\n const [open, setOpen] = useState(false);\n const isOpen = !disabled && open;\n\n const hasValue = value != null;\n\n const renderSingleSelectedItemLabel = useCallback(\n (selectedValue: V | null) =>\n selectedValue == null ? null : renderItemLabel(selectedValue),\n [renderItemLabel],\n );\n\n const handleOpenChange = useCallback(\n (nextOpen: boolean) => {\n if (disabled) {\n return;\n }\n setOpen(nextOpen);\n // Mark the field as touched when the popover closes so RHF validates.\n // Opening the popover does not trigger validation.\n if (!nextOpen) {\n onBlur?.();\n }\n },\n [disabled, onBlur],\n );\n\n const handleClear = useCallback(() => {\n // SelectDropdown is always single-select, so cleared value is null.\n (onChange as ((v: V | null) => void) | undefined)?.(null);\n handleOpenChange(false);\n }, [onChange, handleOpenChange]);\n\n const handleDismiss = useCallback(() => {\n handleOpenChange(false);\n }, [handleOpenChange]);\n\n return (\n <div>\n <Select.Root\n value={value}\n onValueChange={onChange}\n open={isOpen}\n onOpenChange={handleOpenChange}\n isItemEqualToValue={isItemEqual}\n itemToStringLabel={itemToStringLabel}\n modal={modal}\n disabled={disabled}\n >\n <Select.Trigger id={id} placeholder={placeholder} disabled={disabled}>\n <div className={selectStyles.osdkSelectValueContainer}>\n <Select.Value>{renderSingleSelectedItemLabel}</Select.Value>\n {placeholder != null && (\n <span className={selectStyles.osdkSelectPlaceholder}>\n {placeholder}\n </span>\n )}\n </div>\n {hasValue && (\n <span\n role=\"button\"\n aria-label=\"Clear\"\n className={selectStyles.osdkSelectClear}\n aria-disabled={disabled || undefined}\n onMouseDown={disabled ? undefined : preventTriggerOpen}\n onClick={disabled ? undefined : handleClear}\n >\n <SmallCross />\n </span>\n )}\n <span className={selectStyles.osdkSelectIcon}>\n <CaretDown />\n </span>\n </Select.Trigger>\n <Select.Portal ref={portalRef} container={portalContainer}>\n {isOpen && modal && (\n <PortalDismissLayer\n className={dropdownStyles.osdkSelectDismissLayer}\n onDismiss={handleDismiss}\n />\n )}\n <Select.Positioner>\n <Select.Popup>\n {items.map((item) => {\n const itemLabel = itemToStringLabel(item);\n return (\n <Select.Item\n key={getKey(item)}\n value={item}\n label={itemLabel}\n aria-label={itemLabel}\n >\n {renderItemLabel(item)}\n </Select.Item>\n );\n })}\n </Select.Popup>\n </Select.Positioner>\n </Select.Portal>\n </Select.Root>\n </div>\n );\n});\n\nconst ComboboxDropdown = typedReactMemo(function ComboboxDropdownFn<\n V,\n Multiple extends boolean,\n>({\n id,\n value,\n onChange,\n items,\n itemToStringLabel,\n renderItemLabel,\n getKey,\n isItemEqual,\n isMultiple,\n isSearchable,\n placeholder,\n portalRef,\n portalContainer,\n query,\n onQueryChange,\n disableClientSideFiltering,\n popupStatus,\n trailingItem,\n onBlur,\n modal = true,\n disabled,\n}: InnerComboboxProps<V, Multiple>): React.ReactElement {\n const [open, setOpen] = useState(false);\n const isOpen = !disabled && open;\n\n const hasValue = isMultiple\n ? Array.isArray(value) && value.length > 0\n : value != null;\n\n const renderSingleSelectedItemLabel = useCallback(\n (selectedValue: V | null) =>\n selectedValue == null ? null : renderItemLabel(selectedValue),\n [renderItemLabel],\n );\n\n const handleOpenChange = useCallback(\n (nextOpen: boolean) => {\n setOpen(nextOpen);\n if (!nextOpen) {\n onBlur?.();\n }\n },\n [onBlur],\n );\n\n // Mark the field as touched on every value change so RHF revalidates\n // immediately — especially important for multi-select where the popup\n // stays open after toggling an item.\n const handleValueChange: typeof onChange = useCallback(\n (...args: Parameters<NonNullable<typeof onChange>>) => {\n onChange?.(...args);\n // Multi-select: popover stays open, so fire onBlur directly.\n // Single-select: popover closes on selection, handleOpenChange(false)\n // already fires onBlur.\n if (isMultiple) {\n onBlur?.();\n }\n },\n [onChange, onBlur, isMultiple],\n );\n\n const handleClear = useCallback(() => {\n // TypeScript can't narrow the conditional type `Multiple extends true ? V[] : V`\n // at runtime, so we cast through the known parameter type at this single call site.\n const cleared = isMultiple ? (EMPTY_ARRAY as V[]) : null;\n (handleValueChange as (v: V[] | V | null) => void)(cleared);\n // Single-select: close after clearing. Multi-select: keep open for continued selection.\n if (!isMultiple) {\n handleOpenChange(false);\n }\n }, [isMultiple, handleValueChange, handleOpenChange]);\n\n const handleRemoveItem = useCallback(\n (itemToRemove: V) => {\n if (!isMultiple || !Array.isArray(value)) {\n return;\n }\n const next = value.filter((v) =>\n isItemEqual != null\n ? !isItemEqual(v, itemToRemove)\n : v !== itemToRemove\n );\n (handleValueChange as (v: V[] | V | null) => void)(next);\n },\n [isMultiple, value, handleValueChange, isItemEqual],\n );\n\n const handleDismiss = useCallback(() => {\n handleOpenChange(false);\n }, [handleOpenChange]);\n\n const renderItem = useCallback(\n (item: V) => {\n const itemLabel = itemToStringLabel(item);\n return (\n <Combobox.Item key={getKey(item)} value={item} aria-label={itemLabel}>\n {isMultiple && (\n <Combobox.ItemIndicator>\n <Tick />\n </Combobox.ItemIndicator>\n )}\n {renderItemLabel(item)}\n </Combobox.Item>\n );\n },\n [getKey, isMultiple, itemToStringLabel, renderItemLabel],\n );\n\n return (\n <div>\n <Combobox.Root\n value={value}\n onValueChange={handleValueChange}\n open={isOpen}\n onOpenChange={handleOpenChange}\n multiple={isMultiple}\n itemToStringLabel={itemToStringLabel}\n isItemEqualToValue={isItemEqual}\n items={items}\n inputValue={query}\n onInputValueChange={onQueryChange}\n filter={disableClientSideFiltering ? null : undefined}\n disabled={disabled}\n >\n <Combobox.Trigger\n id={id}\n disabled={disabled}\n className={isMultiple\n ? comboboxStyles.osdkComboboxTriggerMulti\n : undefined}\n >\n <div className={comboboxStyles.osdkComboboxValueContainer}>\n {isMultiple && Array.isArray(value) && value.length > 0\n ? (\n <div className={comboboxStyles.osdkComboboxTriggerChips}>\n {value.map((item: V) => (\n <span\n key={getKey(item)}\n className={comboboxStyles.osdkComboboxTriggerChip}\n >\n {renderItemLabel(item)}\n <span\n role=\"button\"\n aria-label={`Remove ${itemToStringLabel(item)}`}\n className={comboboxStyles.osdkComboboxTriggerChipRemove}\n aria-disabled={disabled || undefined}\n onMouseDown={disabled ? undefined : preventTriggerOpen}\n onClick={disabled\n ? undefined\n : () => handleRemoveItem(item)}\n >\n <Cross size={12} />\n </span>\n </span>\n ))}\n </div>\n )\n : (\n <>\n <Combobox.Value>\n {renderSingleSelectedItemLabel}\n </Combobox.Value>\n {!hasValue && placeholder != null && (\n <span className={comboboxStyles.osdkComboboxPlaceholder}>\n {placeholder}\n </span>\n )}\n </>\n )}\n </div>\n {hasValue && (\n <span\n role=\"button\"\n aria-label=\"Clear\"\n className={comboboxStyles.osdkComboboxClear}\n aria-disabled={disabled || undefined}\n onMouseDown={disabled ? undefined : preventTriggerOpen}\n onClick={disabled ? undefined : handleClear}\n >\n <SmallCross />\n </span>\n )}\n <Combobox.Icon>\n <CaretDown />\n </Combobox.Icon>\n </Combobox.Trigger>\n <Combobox.Portal ref={portalRef} container={portalContainer}>\n {isOpen && modal && (\n <PortalDismissLayer\n className={dropdownStyles.osdkComboboxDismissLayer}\n onDismiss={handleDismiss}\n />\n )}\n <Combobox.Positioner>\n <Combobox.Popup>\n {isSearchable && (\n <div className={comboboxStyles.osdkComboboxPopupSearchInput}>\n <Combobox.SearchInput placeholder=\"Search…\" />\n </div>\n )}\n {popupStatus}\n {/* Hide \"No results\" when popupStatus provides its own message (e.g. \"Searching…\") */}\n {popupStatus == null && (\n <Combobox.Empty>No results</Combobox.Empty>\n )}\n <Combobox.List>\n <Combobox.Collection>{renderItem}</Combobox.Collection>\n {trailingItem}\n </Combobox.List>\n </Combobox.Popup>\n </Combobox.Positioner>\n </Combobox.Portal>\n </Combobox.Root>\n </div>\n );\n});\n\n// Prevent the clear/remove click from bubbling into the trigger\n// and toggling the dropdown open/closed.\nfunction preventTriggerOpen(e: React.MouseEvent): void {\n e.stopPropagation();\n e.preventDefault();\n}\n\nfunction defaultItemToStringLabel<V>(item: V): string {\n if (item == null || typeof item !== \"object\") {\n return String(item);\n }\n if (\"label\" in item && item.label != null && typeof item.label === \"string\") {\n return item.label;\n }\n return String(item);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DropdownField.js","names":["CaretDown","Cross","SmallCross","Tick","React","useCallback","useState","Combobox","Select","PortalDismissLayer","typedReactMemo","comboboxStyles","selectStyles","dropdownStyles","EMPTY_ARRAY","DropdownField","isSearchable","isMultiple","itemToStringLabel","renderItemLabel","itemToKey","value","query","onQueryChange","disableClientSideFiltering","popupStatus","trailingItem","modal","rest","normalizedValue","resolvedItemToStringLabel","defaultItemToStringLabel","resolvedRenderItemLabel","getKey","item","createElement","ComboboxDropdown","_extends","SelectDropdown","id","onChange","items","isItemEqual","placeholder","portalRef","portalContainer","onBlur","disabled","open","setOpen","isOpen","renderSingleSelectedItemLabel","selectedValue","handleOpenChange","nextOpen","handleClear","handleDismiss","Root","onValueChange","onOpenChange","isItemEqualToValue","Trigger","className","osdkSelectValueContainer","Value","osdkSelectPlaceholder","role","osdkSelectClear","undefined","onMouseDown","preventTriggerOpen","onClick","osdkSelectIcon","Portal","ref","container","osdkSelectDismissLayer","onDismiss","Positioner","Popup","map","itemLabel","Item","key","label","hasValue","Array","isArray","length","handleValueChange","args","cleared","handleRemoveItem","itemToRemove","next","filter","v","renderItem","ItemIndicator","multiple","inputValue","onInputValueChange","osdkComboboxTriggerMulti","osdkComboboxValueContainer","osdkComboboxTriggerChips","osdkComboboxTriggerChip","osdkComboboxTriggerChipRemove","size","Fragment","osdkComboboxPlaceholder","osdkComboboxClear","Icon","osdkComboboxDismissLayer","osdkComboboxPopupSearchInput","SearchInput","Empty","List","Collection","e","stopPropagation","preventDefault","String"],"sources":["DropdownField.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 { CaretDown, Cross, SmallCross, Tick } from \"@blueprintjs/icons\";\nimport React, { useCallback, useState } from \"react\";\n\nimport { Combobox } from \"../../base-components/combobox/Combobox.js\";\nimport { Select } from \"../../base-components/select/Select.js\";\nimport { PortalDismissLayer } from \"../../shared/PortalDismissLayer.js\";\nimport { typedReactMemo } from \"../../shared/typedMemo.js\";\nimport type { DropdownFieldProps } from \"../FormFieldApi.js\";\n\nimport comboboxStyles from \"../../base-components/combobox/Combobox.module.css\";\nimport selectStyles from \"../../base-components/select/Select.module.css\";\nimport dropdownStyles from \"./DropdownField.module.css\";\n\nconst EMPTY_ARRAY: [] = [];\n\n/**\n * SelectDropdown is only used for single-select (the multi-select path\n * always routes to ComboboxDropdown). We keep the `Multiple` generic so\n * the spread from DropdownField type-checks, but SelectDropdown never\n * reads `isMultiple`.\n */\ninterface InnerSelectProps<V, Multiple extends boolean> extends Omit<\n DropdownFieldProps<V, Multiple>,\n \"isSearchable\"\n> {\n itemToStringLabel: (item: V) => string;\n renderItemLabel: (item: V) => React.ReactNode;\n getKey: (item: V) => string;\n portalRef?: React.Ref<HTMLDivElement>;\n query?: string;\n onQueryChange?: (query: string) => void;\n onBlur?: () => void;\n modal?: boolean;\n}\n\ninterface InnerComboboxProps<\n V,\n Multiple extends boolean,\n> extends InnerSelectProps<V, Multiple> {\n isSearchable: boolean;\n disableClientSideFiltering?: boolean;\n popupStatus?: React.ReactNode;\n trailingItem?: DropdownFieldProps<V, Multiple>[\"trailingItem\"];\n}\n\nexport const DropdownField: <V, Multiple extends boolean = false>(\n props: DropdownFieldProps<V, Multiple> & { onBlur?: () => void }\n) => React.ReactElement = typedReactMemo(function DropdownFieldFn<\n V,\n Multiple extends boolean = false,\n>({\n isSearchable = false,\n isMultiple,\n itemToStringLabel,\n renderItemLabel,\n itemToKey,\n value,\n query,\n onQueryChange,\n disableClientSideFiltering,\n popupStatus,\n trailingItem,\n modal = true,\n ...rest\n}: DropdownFieldProps<V, Multiple> & {\n onBlur?: () => void;\n}): React.ReactElement {\n // Ensure always controlled from first render: multi-select needs [],\n // single-select needs null. Passing undefined switches Base UI from\n // uncontrolled to controlled and triggers a warning.\n const normalizedValue = (value ??\n (isMultiple ? EMPTY_ARRAY : null)) as typeof value;\n\n const resolvedItemToStringLabel =\n itemToStringLabel ?? defaultItemToStringLabel;\n\n const resolvedRenderItemLabel = renderItemLabel ?? resolvedItemToStringLabel;\n\n const getKey = useCallback(\n (item: V) => itemToKey?.(item) ?? resolvedItemToStringLabel(item),\n [itemToKey, resolvedItemToStringLabel]\n );\n\n // Multi-select always uses Combobox for the chip-based UI because it looks better\n if (isSearchable || isMultiple) {\n return (\n <ComboboxDropdown\n {...rest}\n isMultiple={isMultiple}\n value={normalizedValue}\n itemToStringLabel={resolvedItemToStringLabel}\n renderItemLabel={resolvedRenderItemLabel}\n getKey={getKey}\n isSearchable={isSearchable}\n query={query}\n onQueryChange={onQueryChange}\n disableClientSideFiltering={disableClientSideFiltering}\n popupStatus={popupStatus}\n trailingItem={trailingItem}\n modal={modal}\n />\n );\n }\n\n // TODO: Support trailingItem\n return (\n <SelectDropdown\n {...rest}\n value={normalizedValue}\n itemToStringLabel={resolvedItemToStringLabel}\n renderItemLabel={resolvedRenderItemLabel}\n getKey={getKey}\n modal={modal}\n />\n );\n});\n\nconst SelectDropdown = typedReactMemo(function SelectDropdownFn<\n V,\n Multiple extends boolean,\n>({\n id,\n value,\n onChange,\n items,\n itemToStringLabel,\n renderItemLabel,\n getKey,\n isItemEqual,\n placeholder,\n portalRef,\n portalContainer,\n onBlur,\n modal = true,\n disabled,\n}: InnerSelectProps<V, Multiple>): React.ReactElement {\n const [open, setOpen] = useState(false);\n const isOpen = !disabled && open;\n\n const hasValue = value != null;\n\n const renderSingleSelectedItemLabel = useCallback(\n (selectedValue: V | null) =>\n selectedValue == null ? null : renderItemLabel(selectedValue),\n [renderItemLabel]\n );\n\n const handleOpenChange = useCallback(\n (nextOpen: boolean) => {\n if (disabled) {\n return;\n }\n setOpen(nextOpen);\n // Mark the field as touched when the popover closes so RHF validates.\n // Opening the popover does not trigger validation.\n if (!nextOpen) {\n onBlur?.();\n }\n },\n [disabled, onBlur]\n );\n\n const handleClear = useCallback(() => {\n // SelectDropdown is always single-select, so cleared value is null.\n (onChange as ((v: V | null) => void) | undefined)?.(null);\n handleOpenChange(false);\n }, [onChange, handleOpenChange]);\n\n const handleDismiss = useCallback(() => {\n handleOpenChange(false);\n }, [handleOpenChange]);\n\n return (\n <div>\n <Select.Root\n value={value}\n onValueChange={onChange}\n open={isOpen}\n onOpenChange={handleOpenChange}\n isItemEqualToValue={isItemEqual}\n itemToStringLabel={itemToStringLabel}\n modal={modal}\n disabled={disabled}\n >\n <Select.Trigger id={id} placeholder={placeholder} disabled={disabled}>\n <div className={selectStyles.osdkSelectValueContainer}>\n <Select.Value>{renderSingleSelectedItemLabel}</Select.Value>\n {placeholder != null && (\n <span className={selectStyles.osdkSelectPlaceholder}>\n {placeholder}\n </span>\n )}\n </div>\n {hasValue && (\n <span\n role=\"button\"\n aria-label=\"Clear\"\n className={selectStyles.osdkSelectClear}\n aria-disabled={disabled || undefined}\n onMouseDown={disabled ? undefined : preventTriggerOpen}\n onClick={disabled ? undefined : handleClear}\n >\n <SmallCross />\n </span>\n )}\n <span className={selectStyles.osdkSelectIcon}>\n <CaretDown />\n </span>\n </Select.Trigger>\n <Select.Portal ref={portalRef} container={portalContainer}>\n {isOpen && modal && (\n <PortalDismissLayer\n className={dropdownStyles.osdkSelectDismissLayer}\n onDismiss={handleDismiss}\n />\n )}\n <Select.Positioner>\n <Select.Popup>\n {items.map((item) => {\n const itemLabel = itemToStringLabel(item);\n return (\n <Select.Item\n key={getKey(item)}\n value={item}\n label={itemLabel}\n aria-label={itemLabel}\n >\n {renderItemLabel(item)}\n </Select.Item>\n );\n })}\n </Select.Popup>\n </Select.Positioner>\n </Select.Portal>\n </Select.Root>\n </div>\n );\n});\n\nconst ComboboxDropdown = typedReactMemo(function ComboboxDropdownFn<\n V,\n Multiple extends boolean,\n>({\n id,\n value,\n onChange,\n items,\n itemToStringLabel,\n renderItemLabel,\n getKey,\n isItemEqual,\n isMultiple,\n isSearchable,\n placeholder,\n portalRef,\n portalContainer,\n query,\n onQueryChange,\n disableClientSideFiltering,\n popupStatus,\n trailingItem,\n onBlur,\n modal = true,\n disabled,\n}: InnerComboboxProps<V, Multiple>): React.ReactElement {\n const [open, setOpen] = useState(false);\n const isOpen = !disabled && open;\n\n const hasValue = isMultiple\n ? Array.isArray(value) && value.length > 0\n : value != null;\n\n const renderSingleSelectedItemLabel = useCallback(\n (selectedValue: V | null) =>\n selectedValue == null ? null : renderItemLabel(selectedValue),\n [renderItemLabel]\n );\n\n const handleOpenChange = useCallback(\n (nextOpen: boolean) => {\n setOpen(nextOpen);\n if (!nextOpen) {\n onBlur?.();\n }\n },\n [onBlur]\n );\n\n // Mark the field as touched on every value change so RHF revalidates\n // immediately — especially important for multi-select where the popup\n // stays open after toggling an item.\n const handleValueChange: typeof onChange = useCallback(\n (...args: Parameters<NonNullable<typeof onChange>>) => {\n onChange?.(...args);\n // Multi-select: popover stays open, so fire onBlur directly.\n // Single-select: popover closes on selection, handleOpenChange(false)\n // already fires onBlur.\n if (isMultiple) {\n onBlur?.();\n }\n },\n [onChange, onBlur, isMultiple]\n );\n\n const handleClear = useCallback(() => {\n // TypeScript can't narrow the conditional type `Multiple extends true ? V[] : V`\n // at runtime, so we cast through the known parameter type at this single call site.\n const cleared = isMultiple ? (EMPTY_ARRAY as V[]) : null;\n (handleValueChange as (v: V[] | V | null) => void)(cleared);\n // Single-select: close after clearing. Multi-select: keep open for continued selection.\n if (!isMultiple) {\n handleOpenChange(false);\n }\n }, [isMultiple, handleValueChange, handleOpenChange]);\n\n const handleRemoveItem = useCallback(\n (itemToRemove: V) => {\n if (!isMultiple || !Array.isArray(value)) {\n return;\n }\n const next = value.filter((v) =>\n isItemEqual != null ? !isItemEqual(v, itemToRemove) : v !== itemToRemove\n );\n (handleValueChange as (v: V[] | V | null) => void)(next);\n },\n [isMultiple, value, handleValueChange, isItemEqual]\n );\n\n const handleDismiss = useCallback(() => {\n handleOpenChange(false);\n }, [handleOpenChange]);\n\n const renderItem = useCallback(\n (item: V) => {\n const itemLabel = itemToStringLabel(item);\n return (\n <Combobox.Item key={getKey(item)} value={item} aria-label={itemLabel}>\n {isMultiple && (\n <Combobox.ItemIndicator>\n <Tick />\n </Combobox.ItemIndicator>\n )}\n {renderItemLabel(item)}\n </Combobox.Item>\n );\n },\n [getKey, isMultiple, itemToStringLabel, renderItemLabel]\n );\n\n return (\n <div>\n <Combobox.Root\n value={value}\n onValueChange={handleValueChange}\n open={isOpen}\n onOpenChange={handleOpenChange}\n multiple={isMultiple}\n itemToStringLabel={itemToStringLabel}\n isItemEqualToValue={isItemEqual}\n items={items}\n inputValue={query}\n onInputValueChange={onQueryChange}\n filter={disableClientSideFiltering ? null : undefined}\n disabled={disabled}\n >\n <Combobox.Trigger\n id={id}\n disabled={disabled}\n className={\n isMultiple ? comboboxStyles.osdkComboboxTriggerMulti : undefined\n }\n >\n <div className={comboboxStyles.osdkComboboxValueContainer}>\n {isMultiple && Array.isArray(value) && value.length > 0 ? (\n <div className={comboboxStyles.osdkComboboxTriggerChips}>\n {value.map((item: V) => (\n <span\n key={getKey(item)}\n className={comboboxStyles.osdkComboboxTriggerChip}\n >\n {renderItemLabel(item)}\n <span\n role=\"button\"\n aria-label={`Remove ${itemToStringLabel(item)}`}\n className={comboboxStyles.osdkComboboxTriggerChipRemove}\n aria-disabled={disabled || undefined}\n onMouseDown={disabled ? undefined : preventTriggerOpen}\n onClick={\n disabled ? undefined : () => handleRemoveItem(item)\n }\n >\n <Cross size={12} />\n </span>\n </span>\n ))}\n </div>\n ) : (\n <>\n <Combobox.Value>{renderSingleSelectedItemLabel}</Combobox.Value>\n {!hasValue && placeholder != null && (\n <span className={comboboxStyles.osdkComboboxPlaceholder}>\n {placeholder}\n </span>\n )}\n </>\n )}\n </div>\n {hasValue && (\n <span\n role=\"button\"\n aria-label=\"Clear\"\n className={comboboxStyles.osdkComboboxClear}\n aria-disabled={disabled || undefined}\n onMouseDown={disabled ? undefined : preventTriggerOpen}\n onClick={disabled ? undefined : handleClear}\n >\n <SmallCross />\n </span>\n )}\n <Combobox.Icon>\n <CaretDown />\n </Combobox.Icon>\n </Combobox.Trigger>\n <Combobox.Portal ref={portalRef} container={portalContainer}>\n {isOpen && modal && (\n <PortalDismissLayer\n className={dropdownStyles.osdkComboboxDismissLayer}\n onDismiss={handleDismiss}\n />\n )}\n <Combobox.Positioner>\n <Combobox.Popup>\n {isSearchable && (\n <div className={comboboxStyles.osdkComboboxPopupSearchInput}>\n <Combobox.SearchInput placeholder=\"Search…\" />\n </div>\n )}\n {popupStatus}\n {/* Hide \"No results\" when popupStatus provides its own message (e.g. \"Searching…\") */}\n {popupStatus == null && (\n <Combobox.Empty>No results</Combobox.Empty>\n )}\n <Combobox.List>\n <Combobox.Collection>{renderItem}</Combobox.Collection>\n {trailingItem}\n </Combobox.List>\n </Combobox.Popup>\n </Combobox.Positioner>\n </Combobox.Portal>\n </Combobox.Root>\n </div>\n );\n});\n\n// Prevent the clear/remove click from bubbling into the trigger\n// and toggling the dropdown open/closed.\nfunction preventTriggerOpen(e: React.MouseEvent): void {\n e.stopPropagation();\n e.preventDefault();\n}\n\nfunction defaultItemToStringLabel<V>(item: V): string {\n if (item == null || typeof item !== \"object\") {\n return String(item);\n }\n if (\"label\" in item && item.label != null && typeof item.label === \"string\") {\n return item.label;\n }\n return String(item);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldBridge.js","names":["React","memo","useCallback","useMemo","useState","useController","extractValidationRules","FormFieldRenderer","SELECT_LIKE_FIELDS","Set","FieldBridge","fieldDef","control","onExternalChange","portalContainer","rules","field","onChange","onBlur","value","fieldState","error","fieldError","name","fieldKey","isSelectLike","has","fieldComponent","isDropdown","isEdited","setIsEdited","handleChange","newValue","handleBlur","e","currentTarget","contains","relatedTarget","createElement","fieldDefinition","onFieldValueChange","undefined","onFieldBlur","message"],"sources":["FieldBridge.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, { memo, useCallback, useMemo, useState } from \"react\";\nimport type { Control } from \"react-hook-form\";\nimport { useController } from \"react-hook-form\";\nimport type {\n FieldComponent,\n PortalContainer,\n RendererFieldDefinition,\n} from \"../FormFieldApi.js\";\nimport { extractValidationRules } from \"../utils/extractValidationRules.js\";\nimport { FormFieldRenderer } from \"./FormFieldRenderer.js\";\n\nexport interface FieldBridgeProps {\n fieldDef: RendererFieldDefinition;\n control: Control<Record<string, unknown>>;\n onExternalChange?: (fieldKey: string, value: unknown) => void;\n portalContainer?: PortalContainer;\n}\nconst SELECT_LIKE_FIELDS: ReadonlySet<FieldComponent> = new Set<FieldComponent>(\n [\"RADIO_BUTTONS\", \"SWITCH\"],\n);\n\nexport const FieldBridge: React.FC<FieldBridgeProps> = memo(\n function FieldBridgeFn({\n fieldDef,\n control,\n onExternalChange,\n portalContainer,\n }: FieldBridgeProps): React.ReactElement {\n const rules = useMemo(() => extractValidationRules(fieldDef), [fieldDef]);\n\n const {\n field: { onChange, onBlur, value },\n fieldState: { error: fieldError },\n } = useController({\n name: fieldDef.fieldKey,\n control,\n rules,\n });\n\n const isSelectLike = SELECT_LIKE_FIELDS.has(fieldDef.fieldComponent);\n const isDropdown = fieldDef.fieldComponent === \"DROPDOWN\";\n // RHF's touched state is blur-based and dirty state is value-comparison\n // based. The tag represents an actual user edit, so set it from the\n // field change path and keep it visible even if the value is restored.\n const [isEdited, setIsEdited] = useState(false);\n\n const handleChange = useCallback(\n (newValue: unknown) => {\n onChange(newValue);\n setIsEdited(true);\n onExternalChange?.(fieldDef.fieldKey, newValue);\n // Select-like fields are \"pick once\" interactions — mark as touched\n // immediately so RHF revalidates (clears errors) on selection rather\n // than waiting for focus to leave the container.\n if (isSelectLike) {\n onBlur();\n }\n },\n [onChange, onBlur, onExternalChange, fieldDef.fieldKey, isSelectLike],\n );\n\n // Ignore blur events where focus stays within the field container\n // (e.g. moving between radio buttons in a group). Only fire RHF's\n // onBlur when focus truly leaves the field.\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLDivElement>) => {\n if (e.currentTarget.contains(e.relatedTarget)) {\n return;\n }\n onBlur();\n },\n [onBlur],\n );\n\n return (\n <FormFieldRenderer\n value={value}\n fieldDefinition={fieldDef}\n onFieldValueChange={handleChange}\n // Dropdown fields own their blur signal because their popover renders\n // in a portal outside the container div — the container-level blur\n // would fire prematurely when the popover opens.\n onBlur={isDropdown ? undefined : handleBlur}\n onFieldBlur={isDropdown ? onBlur : undefined}\n isEdited={isEdited}\n error={fieldError?.message}\n portalContainer={portalContainer}\n />\n );\n },\n);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAEnE,SAASC,aAAa,QAAQ,iBAAiB;AAM/C,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAASC,iBAAiB,QAAQ,wBAAwB;AAQ1D,MAAMC,kBAA+C,GAAG,IAAIC,GAAG,CAC7D,CAAC,eAAe,EAAE,QAAQ,CAC5B,CAAC;AAED,OAAO,MAAMC,WAAuC,gBAAGT,IAAI,CACzD,UAAuB;EACrBU,QAAQ;EACRC,OAAO;EACPC,gBAAgB;EAChBC;AACgB,CAAC,EAAsB;EACvC,MAAMC,KAAK,GAAGZ,OAAO,CAAC,MAAMG,sBAAsB,CAACK,QAAQ,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEzE,MAAM;IACJK,KAAK,EAAE;MAAEC,QAAQ;MAAEC,MAAM;MAAEC;IAAM,CAAC;IAClCC,UAAU,EAAE;MAAEC,KAAK,EAAEC;IAAW;EAClC,CAAC,GAAGjB,aAAa,CAAC;IAChBkB,IAAI,EAAEZ,QAAQ,CAACa,QAAQ;IACvBZ,OAAO;IACPG;EACF,CAAC,CAAC;EAEF,MAAMU,YAAY,GAAGjB,kBAAkB,CAACkB,GAAG,CAACf,QAAQ,CAACgB,cAAc,CAAC;EACpE,MAAMC,UAAU,GAAGjB,QAAQ,CAACgB,cAAc,KAAK,UAAU;EACzD;EACA;EACA;EACA,MAAM,CAACE,QAAQ,EAAEC,WAAW,CAAC,GAAG1B,QAAQ,CAAC,KAAK,CAAC;EAE/C,MAAM2B,YAAY,GAAG7B,WAAW,CAC7B8B,QAAiB,IAAK;IACrBf,QAAQ,CAACe,QAAQ,CAAC;IAClBF,WAAW,CAAC,IAAI,CAAC;IACjBjB,gBAAgB,GAAGF,QAAQ,CAACa,QAAQ,EAAEQ,QAAQ,CAAC;IAC/C;IACA;IACA;IACA,IAAIP,YAAY,EAAE;MAChBP,MAAM,CAAC,CAAC;IACV;EACF,CAAC,EACD,CAACD,QAAQ,EAAEC,MAAM,EAAEL,gBAAgB,EAAEF,QAAQ,CAACa,QAAQ,EAAEC,YAAY,CACtE,CAAC;;EAED;EACA;EACA;EACA,MAAMQ,UAAU,GAAG/B,WAAW,CAC3BgC,CAAmC,IAAK;IACvC,IAAIA,CAAC,CAACC,aAAa,CAACC,QAAQ,CAACF,CAAC,CAACG,aAAa,CAAC,EAAE;MAC7C;IACF;IACAnB,MAAM,CAAC,CAAC;EACV,CAAC,EACD,CAACA,MAAM,CACT,CAAC;EAED,oBACElB,KAAA,CAAAsC,aAAA,CAAC/B,iBAAiB;IAChBY,KAAK,EAAEA,KAAM;IACboB,eAAe,EAAE5B,QAAS;IAC1B6B,kBAAkB,EAAET;IACpB;IACA;IACA;IAAA;IACAb,MAAM,EAAEU,UAAU,GAAGa,SAAS,GAAGR,UAAW;IAC5CS,WAAW,EAAEd,UAAU,GAAGV,MAAM,GAAGuB,SAAU;IAC7CZ,QAAQ,EAAEA,QAAS;IACnBR,KAAK,EAAEC,UAAU,EAAEqB,OAAQ;IAC3B7B,eAAe,EAAEA;EAAgB,CAClC,CAAC;AAEN,CACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"FieldBridge.js","names":["React","memo","useCallback","useMemo","useState","useController","extractValidationRules","FormFieldRenderer","SELECT_LIKE_FIELDS","Set","FieldBridge","fieldDef","control","onExternalChange","portalContainer","rules","field","onChange","onBlur","value","fieldState","error","fieldError","name","fieldKey","isSelectLike","has","fieldComponent","isDropdown","isEdited","setIsEdited","handleChange","newValue","handleBlur","e","currentTarget","contains","relatedTarget","createElement","fieldDefinition","onFieldValueChange","undefined","onFieldBlur","message"],"sources":["FieldBridge.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, { memo, useCallback, useMemo, useState } from \"react\";\nimport type { Control } from \"react-hook-form\";\nimport { useController } from \"react-hook-form\";\n\nimport type {\n FieldComponent,\n PortalContainer,\n RendererFieldDefinition,\n} from \"../FormFieldApi.js\";\nimport { extractValidationRules } from \"../utils/extractValidationRules.js\";\nimport { FormFieldRenderer } from \"./FormFieldRenderer.js\";\n\nexport interface FieldBridgeProps {\n fieldDef: RendererFieldDefinition;\n control: Control<Record<string, unknown>>;\n onExternalChange?: (fieldKey: string, value: unknown) => void;\n portalContainer?: PortalContainer;\n}\nconst SELECT_LIKE_FIELDS: ReadonlySet<FieldComponent> = new Set<FieldComponent>(\n [\"RADIO_BUTTONS\", \"SWITCH\"]\n);\n\nexport const FieldBridge: React.FC<FieldBridgeProps> = memo(\n function FieldBridgeFn({\n fieldDef,\n control,\n onExternalChange,\n portalContainer,\n }: FieldBridgeProps): React.ReactElement {\n const rules = useMemo(() => extractValidationRules(fieldDef), [fieldDef]);\n\n const {\n field: { onChange, onBlur, value },\n fieldState: { error: fieldError },\n } = useController({\n name: fieldDef.fieldKey,\n control,\n rules,\n });\n\n const isSelectLike = SELECT_LIKE_FIELDS.has(fieldDef.fieldComponent);\n const isDropdown = fieldDef.fieldComponent === \"DROPDOWN\";\n // RHF's touched state is blur-based and dirty state is value-comparison\n // based. The tag represents an actual user edit, so set it from the\n // field change path and keep it visible even if the value is restored.\n const [isEdited, setIsEdited] = useState(false);\n\n const handleChange = useCallback(\n (newValue: unknown) => {\n onChange(newValue);\n setIsEdited(true);\n onExternalChange?.(fieldDef.fieldKey, newValue);\n // Select-like fields are \"pick once\" interactions — mark as touched\n // immediately so RHF revalidates (clears errors) on selection rather\n // than waiting for focus to leave the container.\n if (isSelectLike) {\n onBlur();\n }\n },\n [onChange, onBlur, onExternalChange, fieldDef.fieldKey, isSelectLike]\n );\n\n // Ignore blur events where focus stays within the field container\n // (e.g. moving between radio buttons in a group). Only fire RHF's\n // onBlur when focus truly leaves the field.\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLDivElement>) => {\n if (e.currentTarget.contains(e.relatedTarget)) {\n return;\n }\n onBlur();\n },\n [onBlur]\n );\n\n return (\n <FormFieldRenderer\n value={value}\n fieldDefinition={fieldDef}\n onFieldValueChange={handleChange}\n // Dropdown fields own their blur signal because their popover renders\n // in a portal outside the container div — the container-level blur\n // would fire prematurely when the popover opens.\n onBlur={isDropdown ? undefined : handleBlur}\n onFieldBlur={isDropdown ? onBlur : undefined}\n isEdited={isEdited}\n error={fieldError?.message}\n portalContainer={portalContainer}\n />\n );\n }\n);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAEnE,SAASC,aAAa,QAAQ,iBAAiB;AAO/C,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAASC,iBAAiB,QAAQ,wBAAwB;AAQ1D,MAAMC,kBAA+C,GAAG,IAAIC,GAAG,CAC7D,CAAC,eAAe,EAAE,QAAQ,CAC5B,CAAC;AAED,OAAO,MAAMC,WAAuC,gBAAGT,IAAI,CACzD,UAAuB;EACrBU,QAAQ;EACRC,OAAO;EACPC,gBAAgB;EAChBC;AACgB,CAAC,EAAsB;EACvC,MAAMC,KAAK,GAAGZ,OAAO,CAAC,MAAMG,sBAAsB,CAACK,QAAQ,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEzE,MAAM;IACJK,KAAK,EAAE;MAAEC,QAAQ;MAAEC,MAAM;MAAEC;IAAM,CAAC;IAClCC,UAAU,EAAE;MAAEC,KAAK,EAAEC;IAAW;EAClC,CAAC,GAAGjB,aAAa,CAAC;IAChBkB,IAAI,EAAEZ,QAAQ,CAACa,QAAQ;IACvBZ,OAAO;IACPG;EACF,CAAC,CAAC;EAEF,MAAMU,YAAY,GAAGjB,kBAAkB,CAACkB,GAAG,CAACf,QAAQ,CAACgB,cAAc,CAAC;EACpE,MAAMC,UAAU,GAAGjB,QAAQ,CAACgB,cAAc,KAAK,UAAU;EACzD;EACA;EACA;EACA,MAAM,CAACE,QAAQ,EAAEC,WAAW,CAAC,GAAG1B,QAAQ,CAAC,KAAK,CAAC;EAE/C,MAAM2B,YAAY,GAAG7B,WAAW,CAC7B8B,QAAiB,IAAK;IACrBf,QAAQ,CAACe,QAAQ,CAAC;IAClBF,WAAW,CAAC,IAAI,CAAC;IACjBjB,gBAAgB,GAAGF,QAAQ,CAACa,QAAQ,EAAEQ,QAAQ,CAAC;IAC/C;IACA;IACA;IACA,IAAIP,YAAY,EAAE;MAChBP,MAAM,CAAC,CAAC;IACV;EACF,CAAC,EACD,CAACD,QAAQ,EAAEC,MAAM,EAAEL,gBAAgB,EAAEF,QAAQ,CAACa,QAAQ,EAAEC,YAAY,CACtE,CAAC;;EAED;EACA;EACA;EACA,MAAMQ,UAAU,GAAG/B,WAAW,CAC3BgC,CAAmC,IAAK;IACvC,IAAIA,CAAC,CAACC,aAAa,CAACC,QAAQ,CAACF,CAAC,CAACG,aAAa,CAAC,EAAE;MAC7C;IACF;IACAnB,MAAM,CAAC,CAAC;EACV,CAAC,EACD,CAACA,MAAM,CACT,CAAC;EAED,oBACElB,KAAA,CAAAsC,aAAA,CAAC/B,iBAAiB;IAChBY,KAAK,EAAEA,KAAM;IACboB,eAAe,EAAE5B,QAAS;IAC1B6B,kBAAkB,EAAET;IACpB;IACA;IACA;IAAA;IACAb,MAAM,EAAEU,UAAU,GAAGa,SAAS,GAAGR,UAAW;IAC5CS,WAAW,EAAEd,UAAU,GAAGV,MAAM,GAAGuB,SAAU;IAC7CZ,QAAQ,EAAEA,QAAS;IACnBR,KAAK,EAAEC,UAAU,EAAEqB,OAAQ;IAC3B7B,eAAe,EAAEA;EAAgB,CAClC,CAAC;AAEN,CACF,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FilePickerField.js","names":["Button","Cross","classnames","React","memo","useCallback","useMemo","useRef","ActionButton","styles","FilePickerField","id","value","onChange","error","isMulti","accept","maxSize","_maxSize","text","buttonText","disabled","inputRef","fileTriggerRef","openFileDialog","current","click","focusFileTrigger","focus","handleBrowsePointerDown","event","preventDefault","handleBrowseClick","handleInputChange","files","target","length","Array","from","handleClear","handleKeyDown","key","displayText","getDisplayText","hasValue","acceptString","normalizeAccept","createElement","className","osdkFilePickerTrigger","undefined","ref","type","osdkFilePickerHiddenInput","multiple","tabIndex","osdkFilePickerText","osdkFilePickerPlaceholder","onClick","onKeyDown","osdkFilePickerClear","osdkFilePickerBrowse","onPointerDown","isArray","join","map","f","name"],"sources":["FilePickerField.tsx"],"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 { Button } from \"@base-ui/react/button\";\nimport { Cross } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo, useRef } from \"react\";\nimport { ActionButton } from \"../../base-components/action-button/ActionButton.js\";\nimport type { FilePickerProps } from \"../FormFieldApi.js\";\nimport styles from \"./FilePickerField.module.css\";\n\nexport const FilePickerField: React.FC<FilePickerProps> = memo(\n function FilePickerFieldFn({\n id,\n value,\n onChange,\n error,\n isMulti,\n accept,\n // maxSize is enforced by form-level validation (extractValidationRules),\n // not here. Silently dropping oversized files would leave the user with\n // no indication of why their selection disappeared.\n maxSize: _maxSize,\n text = \"No file chosen\",\n buttonText = \"Browse\",\n disabled,\n }): React.ReactElement {\n const inputRef = useRef<HTMLInputElement>(null);\n const fileTriggerRef = useRef<HTMLButtonElement>(null);\n\n const openFileDialog = useCallback(() => {\n inputRef.current?.click();\n }, []);\n\n const focusFileTrigger = useCallback(() => {\n fileTriggerRef.current?.focus();\n }, []);\n\n const handleBrowsePointerDown = useCallback(\n (event: React.PointerEvent<HTMLButtonElement>) => {\n // Browse is a visual affordance inside the field, not a separate tab\n // stop; keep the field trigger as the focused element and focus ring.\n event.preventDefault();\n focusFileTrigger();\n },\n [focusFileTrigger],\n );\n\n const handleBrowseClick = useCallback(() => {\n focusFileTrigger();\n openFileDialog();\n }, [focusFileTrigger, openFileDialog]);\n\n const handleInputChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files;\n if (files == null || files.length === 0) {\n onChange?.(null);\n return;\n }\n\n if (isMulti) {\n onChange?.(Array.from(files));\n } else {\n onChange?.(files[0] ?? null);\n }\n },\n [onChange, isMulti],\n );\n\n const handleClear = useCallback(\n (event: React.MouseEvent) => {\n event.preventDefault();\n onChange?.(null);\n if (inputRef.current != null) {\n inputRef.current.value = \"\";\n }\n },\n [onChange],\n );\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n openFileDialog();\n }\n },\n [openFileDialog],\n );\n\n const displayText = useMemo(() => getDisplayText(value), [value]);\n const hasValue = displayText != null;\n const acceptString = useMemo(\n () => normalizeAccept(accept),\n [accept],\n );\n return (\n <div\n className={styles.osdkFilePickerTrigger}\n aria-invalid={error != null || undefined}\n >\n {\n /* display: none removes the input from the a11y tree entirely,\n avoiding nested-interactive. Programmatic .click() still works. */\n }\n <input\n ref={inputRef}\n type=\"file\"\n className={styles.osdkFilePickerHiddenInput}\n multiple={isMulti}\n accept={acceptString}\n onChange={handleInputChange}\n tabIndex={-1}\n disabled={disabled}\n />\n <Button\n ref={fileTriggerRef}\n id={id}\n type=\"button\"\n className={classnames(\n styles.osdkFilePickerText,\n !hasValue && styles.osdkFilePickerPlaceholder,\n )}\n onClick={openFileDialog}\n onKeyDown={handleKeyDown}\n aria-label=\"Choose file\"\n aria-invalid={error != null || undefined}\n disabled={disabled}\n >\n {displayText ?? text}\n </Button>\n {hasValue && (\n <Button\n type=\"button\"\n className={styles.osdkFilePickerClear}\n onClick={handleClear}\n aria-label=\"Clear selection\"\n disabled={disabled}\n >\n <Cross />\n </Button>\n )}\n <ActionButton\n type=\"button\"\n tabIndex={-1}\n className={styles.osdkFilePickerBrowse}\n onPointerDown={handleBrowsePointerDown}\n onClick={handleBrowseClick}\n disabled={disabled}\n >\n {buttonText}\n </ActionButton>\n </div>\n );\n },\n);\n\nfunction normalizeAccept(\n accept: string | string[] | undefined,\n): string | undefined {\n if (accept == null) {\n return undefined;\n }\n return Array.isArray(accept) ? accept.join(\",\") : accept;\n}\n\nfunction getDisplayText(value: File | File[] | null): string | undefined {\n if (value == null) {\n return undefined;\n }\n if (Array.isArray(value)) {\n return value.map((f) => f.name).join(\", \");\n }\n return value.name;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FilePickerField.js","names":["Button","Cross","classnames","React","memo","useCallback","useMemo","useRef","ActionButton","styles","FilePickerField","id","value","onChange","error","isMulti","accept","maxSize","_maxSize","text","buttonText","disabled","inputRef","fileTriggerRef","openFileDialog","current","click","focusFileTrigger","focus","handleBrowsePointerDown","event","preventDefault","handleBrowseClick","handleInputChange","files","target","length","Array","from","handleClear","handleKeyDown","key","displayText","getDisplayText","hasValue","acceptString","normalizeAccept","createElement","className","osdkFilePickerTrigger","undefined","ref","type","osdkFilePickerHiddenInput","multiple","tabIndex","osdkFilePickerText","osdkFilePickerPlaceholder","onClick","onKeyDown","osdkFilePickerClear","osdkFilePickerBrowse","onPointerDown","isArray","join","map","f","name"],"sources":["FilePickerField.tsx"],"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 { Button } from \"@base-ui/react/button\";\nimport { Cross } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo, useRef } from \"react\";\n\nimport { ActionButton } from \"../../base-components/action-button/ActionButton.js\";\nimport type { FilePickerProps } from \"../FormFieldApi.js\";\n\nimport styles from \"./FilePickerField.module.css\";\n\nexport const FilePickerField: React.FC<FilePickerProps> = memo(\n function FilePickerFieldFn({\n id,\n value,\n onChange,\n error,\n isMulti,\n accept,\n // maxSize is enforced by form-level validation (extractValidationRules),\n // not here. Silently dropping oversized files would leave the user with\n // no indication of why their selection disappeared.\n maxSize: _maxSize,\n text = \"No file chosen\",\n buttonText = \"Browse\",\n disabled,\n }): React.ReactElement {\n const inputRef = useRef<HTMLInputElement>(null);\n const fileTriggerRef = useRef<HTMLButtonElement>(null);\n\n const openFileDialog = useCallback(() => {\n inputRef.current?.click();\n }, []);\n\n const focusFileTrigger = useCallback(() => {\n fileTriggerRef.current?.focus();\n }, []);\n\n const handleBrowsePointerDown = useCallback(\n (event: React.PointerEvent<HTMLButtonElement>) => {\n // Browse is a visual affordance inside the field, not a separate tab\n // stop; keep the field trigger as the focused element and focus ring.\n event.preventDefault();\n focusFileTrigger();\n },\n [focusFileTrigger]\n );\n\n const handleBrowseClick = useCallback(() => {\n focusFileTrigger();\n openFileDialog();\n }, [focusFileTrigger, openFileDialog]);\n\n const handleInputChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files;\n if (files == null || files.length === 0) {\n onChange?.(null);\n return;\n }\n\n if (isMulti) {\n onChange?.(Array.from(files));\n } else {\n onChange?.(files[0] ?? null);\n }\n },\n [onChange, isMulti]\n );\n\n const handleClear = useCallback(\n (event: React.MouseEvent) => {\n event.preventDefault();\n onChange?.(null);\n if (inputRef.current != null) {\n inputRef.current.value = \"\";\n }\n },\n [onChange]\n );\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n openFileDialog();\n }\n },\n [openFileDialog]\n );\n\n const displayText = useMemo(() => getDisplayText(value), [value]);\n const hasValue = displayText != null;\n const acceptString = useMemo(() => normalizeAccept(accept), [accept]);\n return (\n <div\n className={styles.osdkFilePickerTrigger}\n aria-invalid={error != null || undefined}\n >\n {/* display: none removes the input from the a11y tree entirely,\n avoiding nested-interactive. Programmatic .click() still works. */}\n <input\n ref={inputRef}\n type=\"file\"\n className={styles.osdkFilePickerHiddenInput}\n multiple={isMulti}\n accept={acceptString}\n onChange={handleInputChange}\n tabIndex={-1}\n disabled={disabled}\n />\n <Button\n ref={fileTriggerRef}\n id={id}\n type=\"button\"\n className={classnames(\n styles.osdkFilePickerText,\n !hasValue && styles.osdkFilePickerPlaceholder\n )}\n onClick={openFileDialog}\n onKeyDown={handleKeyDown}\n aria-label=\"Choose file\"\n aria-invalid={error != null || undefined}\n disabled={disabled}\n >\n {displayText ?? text}\n </Button>\n {hasValue && (\n <Button\n type=\"button\"\n className={styles.osdkFilePickerClear}\n onClick={handleClear}\n aria-label=\"Clear selection\"\n disabled={disabled}\n >\n <Cross />\n </Button>\n )}\n <ActionButton\n type=\"button\"\n tabIndex={-1}\n className={styles.osdkFilePickerBrowse}\n onPointerDown={handleBrowsePointerDown}\n onClick={handleBrowseClick}\n disabled={disabled}\n >\n {buttonText}\n </ActionButton>\n </div>\n );\n }\n);\n\nfunction normalizeAccept(\n accept: string | string[] | undefined\n): string | undefined {\n if (accept == null) {\n return undefined;\n }\n return Array.isArray(accept) ? accept.join(\",\") : accept;\n}\n\nfunction getDisplayText(value: File | File[] | null): string | undefined {\n if (value == null) {\n return undefined;\n }\n if (Array.isArray(value)) {\n return value.map((f) => f.name).join(\", \");\n }\n return value.name;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FormFieldRenderer.js","names":["React","memo","DatePicker","DateRangePicker","EMPTY_RANGE","FormField","CustomField","DropdownField","FilePickerField","NumberInputField","ObjectSelectField","ObjectSetField","RadioButtonsField","SwitchField","TextAreaField","TextInputField","UNSUPPORTED_FIELD_MESSAGE","FormFieldRenderer","fieldDefinition","value","onFieldValueChange","onBlur","onFieldBlur","isEdited","error","portalContainer","label","isRequired","helperText","helperTextPlacement","createElement","fieldKey","renderFieldComponent","onChange","disabled","fieldComponent","_extends","id","coerceToDateRange","placeholderStart","placeholder","fieldComponentProps","resolvePortalContainer","String","Date","coerceToFileValue","narrowToOsdkObject","assertUnreachableFieldComponent","formPortalContainer","Object","hasOwn","Array","isArray","length","start","end","isFileArray","every","v","File","Error"],"sources":["FormFieldRenderer.tsx"],"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 { ObjectTypeDefinition, Osdk } from \"@osdk/api\";\nimport React, { memo } from \"react\";\nimport {\n DatePicker,\n type DateRange,\n DateRangePicker,\n EMPTY_RANGE,\n} from \"../../shared/calendar/index.js\";\nimport { FormField } from \"../FormField.js\";\nimport {\n type PortalContainer,\n type RendererFieldDefinition,\n} from \"../FormFieldApi.js\";\nimport { CustomField } from \"./CustomField.js\";\nimport { DropdownField } from \"./DropdownField.js\";\nimport { FilePickerField } from \"./FilePickerField.js\";\nimport { NumberInputField } from \"./NumberInputField.js\";\nimport { ObjectSelectField } from \"./ObjectSelectField.js\";\nimport { ObjectSetField } from \"./ObjectSetField.js\";\nimport { RadioButtonsField } from \"./RadioButtonsField.js\";\nimport { SwitchField } from \"./SwitchField.js\";\nimport { TextAreaField } from \"./TextAreaField.js\";\nimport { TextInputField } from \"./TextInputField.js\";\n\nconst UNSUPPORTED_FIELD_MESSAGE =\n \"Unsupported field type. Use a CUSTOM field instead\";\n\nexport interface FormFieldRendererProps {\n fieldDefinition: RendererFieldDefinition;\n value: unknown;\n onFieldValueChange: (value: unknown) => void;\n onBlur?: (e: React.FocusEvent<HTMLDivElement>) => void;\n /** Field-level blur for fields that own their touched state (e.g. dropdowns). */\n onFieldBlur?: () => void;\n isEdited: boolean;\n error: string | undefined;\n portalContainer?: PortalContainer;\n}\n\nexport const FormFieldRenderer: React.FC<FormFieldRendererProps> = memo(\n function FormFieldRendererFn({\n fieldDefinition,\n value,\n onFieldValueChange,\n onBlur,\n onFieldBlur,\n isEdited,\n error,\n portalContainer,\n }: FormFieldRendererProps): React.ReactElement {\n const { label, isRequired, helperText, helperTextPlacement } =\n fieldDefinition;\n\n return (\n <FormField\n label={label}\n isRequired={isRequired}\n fieldKey={fieldDefinition.fieldKey}\n helperText={helperText}\n helperTextPlacement={helperTextPlacement}\n isEdited={isEdited}\n error={error}\n onBlur={onBlur}\n >\n {renderFieldComponent(\n fieldDefinition,\n value,\n onFieldValueChange,\n error,\n portalContainer,\n onFieldBlur,\n )}\n </FormField>\n );\n },\n);\n\nfunction renderFieldComponent(\n fieldDefinition: RendererFieldDefinition,\n value: unknown,\n onChange: (value: unknown) => void,\n error: string | undefined,\n portalContainer: PortalContainer | undefined,\n onFieldBlur: (() => void) | undefined,\n): React.ReactElement {\n const disabled = fieldDefinition.disabled === true;\n switch (fieldDefinition.fieldComponent) {\n case \"DATE_RANGE_INPUT\":\n return (\n <DateRangePicker\n id={fieldDefinition.fieldKey}\n value={coerceToDateRange(value)}\n onChange={onChange}\n placeholderStart={fieldDefinition.placeholder}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n portalContainer={resolvePortalContainer(\n fieldDefinition.fieldComponentProps,\n portalContainer,\n )}\n />\n );\n case \"TEXT_INPUT\":\n return (\n <TextInputField\n id={fieldDefinition.fieldKey}\n value={value != null ? String(value) : \"\"}\n onChange={onChange}\n placeholder={fieldDefinition.placeholder}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n />\n );\n case \"UNSUPPORTED\":\n return (\n <TextInputField\n {...fieldDefinition.fieldComponentProps}\n id={fieldDefinition.fieldKey}\n value={UNSUPPORTED_FIELD_MESSAGE}\n error={error}\n disabled={true}\n />\n );\n case \"TEXT_AREA\":\n return (\n <TextAreaField\n id={fieldDefinition.fieldKey}\n value={value != null ? String(value) : \"\"}\n onChange={onChange}\n placeholder={fieldDefinition.placeholder}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n />\n );\n case \"DROPDOWN\": {\n return (\n <DropdownField\n id={fieldDefinition.fieldKey}\n value={value}\n onChange={onChange}\n placeholder={fieldDefinition.placeholder}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n portalContainer={resolvePortalContainer(\n fieldDefinition.fieldComponentProps,\n portalContainer,\n )}\n onBlur={onFieldBlur}\n />\n );\n }\n case \"DATETIME_PICKER\":\n return (\n <DatePicker\n id={fieldDefinition.fieldKey}\n placeholder={fieldDefinition.placeholder}\n // TODO: Use coerceFieldValue\n value={value instanceof Date ? value : null}\n onChange={onChange}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n portalContainer={resolvePortalContainer(\n fieldDefinition.fieldComponentProps,\n portalContainer,\n )}\n />\n );\n case \"RADIO_BUTTONS\":\n return (\n <RadioButtonsField\n id={fieldDefinition.fieldKey}\n value={value}\n onChange={onChange}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n />\n );\n case \"SWITCH\":\n return (\n <SwitchField\n id={fieldDefinition.fieldKey}\n label={fieldDefinition.label}\n value={!!value}\n onChange={onChange}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n />\n );\n case \"CUSTOM\":\n return (\n <CustomField\n id={fieldDefinition.fieldKey}\n value={value}\n onChange={onChange}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n />\n );\n case \"NUMBER_INPUT\":\n // TODO: Use coerceFieldValue\n return (\n <NumberInputField\n id={fieldDefinition.fieldKey}\n value={typeof value === \"number\" ? value : null}\n onChange={onChange}\n placeholder={fieldDefinition.placeholder}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n />\n );\n case \"FILE_PICKER\":\n return (\n <FilePickerField\n id={fieldDefinition.fieldKey}\n value={coerceToFileValue(value)}\n onChange={onChange}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n />\n );\n case \"OBJECT_SELECT\":\n return (\n <ObjectSelectField\n id={fieldDefinition.fieldKey}\n value={narrowToOsdkObject(value)}\n onChange={onChange}\n placeholder={fieldDefinition.placeholder}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n portalContainer={resolvePortalContainer(\n fieldDefinition.fieldComponentProps,\n portalContainer,\n )}\n />\n );\n case \"OBJECT_SET\":\n return (\n <ObjectSetField\n id={fieldDefinition.fieldKey}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n />\n );\n default:\n return assertUnreachableFieldComponent(fieldDefinition);\n }\n}\n\nfunction resolvePortalContainer(\n fieldComponentProps: { portalContainer?: PortalContainer },\n formPortalContainer: PortalContainer | undefined,\n): PortalContainer | undefined {\n // A field-level value, including null, is an explicit override. That lets a\n // single field opt out of a form-level dialog portal when needed.\n return Object.hasOwn(fieldComponentProps, \"portalContainer\")\n ? fieldComponentProps.portalContainer\n : formPortalContainer;\n}\n\nfunction coerceToDateRange(value: unknown): DateRange {\n if (!Array.isArray(value) || value.length !== 2) return EMPTY_RANGE;\n const start = value[0] instanceof Date ? value[0] : null;\n const end = value[1] instanceof Date ? value[1] : null;\n if (start == null && end == null) return EMPTY_RANGE;\n return [start, end];\n}\n\n// TODO: Move and share with `coerceFieldValue`\nfunction isFileArray(value: unknown[]): value is File[] {\n return value.every((v) => v instanceof File);\n}\n\nfunction coerceToFileValue(value: unknown): File | File[] | null {\n if (value instanceof File) {\n return value;\n }\n if (Array.isArray(value) && isFileArray(value)) {\n return value;\n }\n return null;\n}\n\n/** Narrows the untyped form value to an OsdkObject by checking for $primaryKey. */\nfunction narrowToOsdkObject(\n value: unknown,\n): Osdk.Instance<ObjectTypeDefinition> | null {\n if (value != null && typeof value === \"object\" && \"$primaryKey\" in value) {\n return value as Osdk.Instance<ObjectTypeDefinition>;\n }\n return null;\n}\n\nfunction assertUnreachableFieldComponent(value: never): never {\n throw new Error(`Unhandled field component: ${String(value)}`);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormFieldRenderer.js","names":["React","memo","DatePicker","DateRangePicker","EMPTY_RANGE","FormField","CustomField","DropdownField","FilePickerField","NumberInputField","ObjectSelectField","ObjectSetField","RadioButtonsField","SwitchField","TextAreaField","TextInputField","UNSUPPORTED_FIELD_MESSAGE","FormFieldRenderer","fieldDefinition","value","onFieldValueChange","onBlur","onFieldBlur","isEdited","error","portalContainer","label","isRequired","helperText","helperTextPlacement","createElement","fieldKey","renderFieldComponent","onChange","disabled","fieldComponent","_extends","id","coerceToDateRange","placeholderStart","placeholder","fieldComponentProps","resolvePortalContainer","String","Date","coerceToFileValue","narrowToOsdkObject","assertUnreachableFieldComponent","formPortalContainer","Object","hasOwn","Array","isArray","length","start","end","isFileArray","every","v","File","Error"],"sources":["FormFieldRenderer.tsx"],"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 { ObjectTypeDefinition, Osdk } from \"@osdk/api\";\nimport React, { memo } from \"react\";\n\nimport {\n DatePicker,\n type DateRange,\n DateRangePicker,\n EMPTY_RANGE,\n} from \"../../shared/calendar/index.js\";\nimport { FormField } from \"../FormField.js\";\nimport {\n type PortalContainer,\n type RendererFieldDefinition,\n} from \"../FormFieldApi.js\";\nimport { CustomField } from \"./CustomField.js\";\nimport { DropdownField } from \"./DropdownField.js\";\nimport { FilePickerField } from \"./FilePickerField.js\";\nimport { NumberInputField } from \"./NumberInputField.js\";\nimport { ObjectSelectField } from \"./ObjectSelectField.js\";\nimport { ObjectSetField } from \"./ObjectSetField.js\";\nimport { RadioButtonsField } from \"./RadioButtonsField.js\";\nimport { SwitchField } from \"./SwitchField.js\";\nimport { TextAreaField } from \"./TextAreaField.js\";\nimport { TextInputField } from \"./TextInputField.js\";\n\nconst UNSUPPORTED_FIELD_MESSAGE =\n \"Unsupported field type. Use a CUSTOM field instead\";\n\nexport interface FormFieldRendererProps {\n fieldDefinition: RendererFieldDefinition;\n value: unknown;\n onFieldValueChange: (value: unknown) => void;\n onBlur?: (e: React.FocusEvent<HTMLDivElement>) => void;\n /** Field-level blur for fields that own their touched state (e.g. dropdowns). */\n onFieldBlur?: () => void;\n isEdited: boolean;\n error: string | undefined;\n portalContainer?: PortalContainer;\n}\n\nexport const FormFieldRenderer: React.FC<FormFieldRendererProps> = memo(\n function FormFieldRendererFn({\n fieldDefinition,\n value,\n onFieldValueChange,\n onBlur,\n onFieldBlur,\n isEdited,\n error,\n portalContainer,\n }: FormFieldRendererProps): React.ReactElement {\n const { label, isRequired, helperText, helperTextPlacement } =\n fieldDefinition;\n\n return (\n <FormField\n label={label}\n isRequired={isRequired}\n fieldKey={fieldDefinition.fieldKey}\n helperText={helperText}\n helperTextPlacement={helperTextPlacement}\n isEdited={isEdited}\n error={error}\n onBlur={onBlur}\n >\n {renderFieldComponent(\n fieldDefinition,\n value,\n onFieldValueChange,\n error,\n portalContainer,\n onFieldBlur\n )}\n </FormField>\n );\n }\n);\n\nfunction renderFieldComponent(\n fieldDefinition: RendererFieldDefinition,\n value: unknown,\n onChange: (value: unknown) => void,\n error: string | undefined,\n portalContainer: PortalContainer | undefined,\n onFieldBlur: (() => void) | undefined\n): React.ReactElement {\n const disabled = fieldDefinition.disabled === true;\n switch (fieldDefinition.fieldComponent) {\n case \"DATE_RANGE_INPUT\":\n return (\n <DateRangePicker\n id={fieldDefinition.fieldKey}\n value={coerceToDateRange(value)}\n onChange={onChange}\n placeholderStart={fieldDefinition.placeholder}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n portalContainer={resolvePortalContainer(\n fieldDefinition.fieldComponentProps,\n portalContainer\n )}\n />\n );\n case \"TEXT_INPUT\":\n return (\n <TextInputField\n id={fieldDefinition.fieldKey}\n value={value != null ? String(value) : \"\"}\n onChange={onChange}\n placeholder={fieldDefinition.placeholder}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n />\n );\n case \"UNSUPPORTED\":\n return (\n <TextInputField\n {...fieldDefinition.fieldComponentProps}\n id={fieldDefinition.fieldKey}\n value={UNSUPPORTED_FIELD_MESSAGE}\n error={error}\n disabled={true}\n />\n );\n case \"TEXT_AREA\":\n return (\n <TextAreaField\n id={fieldDefinition.fieldKey}\n value={value != null ? String(value) : \"\"}\n onChange={onChange}\n placeholder={fieldDefinition.placeholder}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n />\n );\n case \"DROPDOWN\": {\n return (\n <DropdownField\n id={fieldDefinition.fieldKey}\n value={value}\n onChange={onChange}\n placeholder={fieldDefinition.placeholder}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n portalContainer={resolvePortalContainer(\n fieldDefinition.fieldComponentProps,\n portalContainer\n )}\n onBlur={onFieldBlur}\n />\n );\n }\n case \"DATETIME_PICKER\":\n return (\n <DatePicker\n id={fieldDefinition.fieldKey}\n placeholder={fieldDefinition.placeholder}\n // TODO: Use coerceFieldValue\n value={value instanceof Date ? value : null}\n onChange={onChange}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n portalContainer={resolvePortalContainer(\n fieldDefinition.fieldComponentProps,\n portalContainer\n )}\n />\n );\n case \"RADIO_BUTTONS\":\n return (\n <RadioButtonsField\n id={fieldDefinition.fieldKey}\n value={value}\n onChange={onChange}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n />\n );\n case \"SWITCH\":\n return (\n <SwitchField\n id={fieldDefinition.fieldKey}\n label={fieldDefinition.label}\n value={!!value}\n onChange={onChange}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n />\n );\n case \"CUSTOM\":\n return (\n <CustomField\n id={fieldDefinition.fieldKey}\n value={value}\n onChange={onChange}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n />\n );\n case \"NUMBER_INPUT\":\n // TODO: Use coerceFieldValue\n return (\n <NumberInputField\n id={fieldDefinition.fieldKey}\n value={typeof value === \"number\" ? value : null}\n onChange={onChange}\n placeholder={fieldDefinition.placeholder}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n />\n );\n case \"FILE_PICKER\":\n return (\n <FilePickerField\n id={fieldDefinition.fieldKey}\n value={coerceToFileValue(value)}\n onChange={onChange}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n />\n );\n case \"OBJECT_SELECT\":\n return (\n <ObjectSelectField\n id={fieldDefinition.fieldKey}\n value={narrowToOsdkObject(value)}\n onChange={onChange}\n placeholder={fieldDefinition.placeholder}\n error={error}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n portalContainer={resolvePortalContainer(\n fieldDefinition.fieldComponentProps,\n portalContainer\n )}\n />\n );\n case \"OBJECT_SET\":\n return (\n <ObjectSetField\n id={fieldDefinition.fieldKey}\n {...fieldDefinition.fieldComponentProps}\n disabled={disabled}\n />\n );\n default:\n return assertUnreachableFieldComponent(fieldDefinition);\n }\n}\n\nfunction resolvePortalContainer(\n fieldComponentProps: { portalContainer?: PortalContainer },\n formPortalContainer: PortalContainer | undefined\n): PortalContainer | undefined {\n // A field-level value, including null, is an explicit override. That lets a\n // single field opt out of a form-level dialog portal when needed.\n return Object.hasOwn(fieldComponentProps, \"portalContainer\")\n ? fieldComponentProps.portalContainer\n : formPortalContainer;\n}\n\nfunction coerceToDateRange(value: unknown): DateRange {\n if (!Array.isArray(value) || value.length !== 2) return EMPTY_RANGE;\n const start = value[0] instanceof Date ? value[0] : null;\n const end = value[1] instanceof Date ? value[1] : null;\n if (start == null && end == null) return EMPTY_RANGE;\n return [start, end];\n}\n\n// TODO: Move and share with `coerceFieldValue`\nfunction isFileArray(value: unknown[]): value is File[] {\n return value.every((v) => v instanceof File);\n}\n\nfunction coerceToFileValue(value: unknown): File | File[] | null {\n if (value instanceof File) {\n return value;\n }\n if (Array.isArray(value) && isFileArray(value)) {\n return value;\n }\n return null;\n}\n\n/** Narrows the untyped form value to an OsdkObject by checking for $primaryKey. */\nfunction narrowToOsdkObject(\n value: unknown\n): Osdk.Instance<ObjectTypeDefinition> | null {\n if (value != null && typeof value === \"object\" && \"$primaryKey\" in value) {\n return value as Osdk.Instance<ObjectTypeDefinition>;\n }\n return null;\n}\n\nfunction assertUnreachableFieldComponent(value: never): never {\n throw new Error(`Unhandled field component: ${String(value)}`);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInputField.js","names":["Button","Input","ChevronDown","ChevronUp","React","useCallback","useRef","useState","styles","VALID_NUMERIC_REGEX","DEFAULT_STEP","CHEVRON_SIZE","NumberInputField","id","value","onChange","error","placeholder","min","max","step","disabled","displayValue","setDisplayValue","formatNumberForDisplay","prevValueRef","current","currentParsed","parseNumericValue","handleValueChange","newValue","isValidInput","applyStep","direction","next","clamp","formatted","handleKeyDown","e","key","preventDefault","handleStepUp","handleStepDown","createElement","className","osdkNumberInputWrapper","undefined","osdkNumberInputField","type","inputMode","onValueChange","onKeyDown","osdkNumberInputStepper","osdkNumberInputStepButton","tabIndex","onClick","size","text","test","parsed","Number","isNaN","String"],"sources":["NumberInputField.tsx"],"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 { Button } from \"@base-ui/react/button\";\nimport { Input } from \"@base-ui/react/input\";\nimport { ChevronDown, ChevronUp } from \"@blueprintjs/icons\";\nimport React, { useCallback, useRef, useState } from \"react\";\nimport type { NumberInputFieldProps } from \"../FormFieldApi.js\";\nimport styles from \"./NumberInputField.module.css\";\n\n/**\n * Structural regex for valid numeric input.\n *\n * Allows intermediate typing states that will become valid numbers:\n * \"\" — user cleared the field (all groups are optional)\n * \"-\" — user started typing a negative number\n * \".\" — user started typing a decimal like \".5\"\n * \"+\" — user started typing an explicitly positive number\n * \"1.\", \"1e\", \"1e+\" — partial but structurally valid\n *\n * Rejects obviously invalid strings like \"1.2.3\" or \"+-5\".\n */\nconst VALID_NUMERIC_REGEX = /^[+-.]?(\\d+\\.?\\d*|\\d*\\.?\\d+)?([eE][+-]?\\d*)?$/;\n\nconst DEFAULT_STEP = 1;\nconst CHEVRON_SIZE = 12;\n\nexport function NumberInputField({\n id,\n value,\n onChange,\n error,\n placeholder,\n min,\n max,\n step,\n disabled,\n}: NumberInputFieldProps): React.ReactElement {\n const [displayValue, setDisplayValue] = useState<string>(() =>\n formatNumberForDisplay(value)\n );\n\n const prevValueRef = useRef(value);\n\n // Sync external value → internal display string\n if (prevValueRef.current !== value) {\n prevValueRef.current = value;\n const currentParsed = parseNumericValue(displayValue);\n\n if (value !== currentParsed) {\n setDisplayValue(formatNumberForDisplay(value));\n }\n }\n\n const handleValueChange = useCallback(\n (newValue: string) => {\n if (!isValidInput(newValue)) {\n return;\n }\n\n setDisplayValue(newValue);\n onChange?.(parseNumericValue(newValue));\n },\n [onChange],\n );\n\n const applyStep = useCallback(\n (direction: 1 | -1) => {\n const current = parseNumericValue(displayValue) ?? 0;\n const delta = direction * (step ?? DEFAULT_STEP);\n const next = clamp(current + delta, min, max);\n const formatted = formatNumberForDisplay(next);\n setDisplayValue(formatted);\n onChange?.(next);\n },\n [displayValue, onChange, step, min, max],\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key !== \"ArrowUp\" && e.key !== \"ArrowDown\") {\n return;\n }\n e.preventDefault();\n applyStep(e.key === \"ArrowUp\" ? 1 : -1);\n },\n [applyStep],\n );\n\n const handleStepUp = useCallback(() => {\n applyStep(1);\n }, [applyStep]);\n\n const handleStepDown = useCallback(() => {\n applyStep(-1);\n }, [applyStep]);\n\n return (\n <div\n className={styles.osdkNumberInputWrapper}\n aria-invalid={error != null || undefined}\n >\n <Input\n id={id}\n className={styles.osdkNumberInputField}\n type=\"text\"\n inputMode=\"decimal\"\n value={displayValue}\n onValueChange={handleValueChange}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled}\n />\n <div className={styles.osdkNumberInputStepper}>\n <Button\n className={styles.osdkNumberInputStepButton}\n aria-label=\"Increment\"\n tabIndex={-1}\n disabled={disabled}\n onClick={handleStepUp}\n >\n <ChevronUp size={CHEVRON_SIZE} />\n </Button>\n <Button\n className={styles.osdkNumberInputStepButton}\n aria-label=\"Decrement\"\n tabIndex={-1}\n disabled={disabled}\n onClick={handleStepDown}\n >\n <ChevronDown size={CHEVRON_SIZE} />\n </Button>\n </div>\n </div>\n );\n}\n\nfunction isValidInput(text: string): boolean {\n return VALID_NUMERIC_REGEX.test(text);\n}\n\nfunction parseNumericValue(text: string): number | null {\n if (text === \"\") {\n return null;\n }\n const parsed = Number(text);\n return Number.isNaN(parsed) ? null : parsed;\n}\n\nfunction formatNumberForDisplay(value: number | null): string {\n return value != null ? String(value) : \"\";\n}\n\nfunction clamp(\n value: number,\n min: number | undefined,\n max: number | undefined,\n): number {\n if (min != null && value < min) return min;\n if (max != null && value > max) return max;\n return value;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NumberInputField.js","names":["Button","Input","ChevronDown","ChevronUp","React","useCallback","useRef","useState","styles","VALID_NUMERIC_REGEX","DEFAULT_STEP","CHEVRON_SIZE","NumberInputField","id","value","onChange","error","placeholder","min","max","step","disabled","displayValue","setDisplayValue","formatNumberForDisplay","prevValueRef","current","currentParsed","parseNumericValue","handleValueChange","newValue","isValidInput","applyStep","direction","next","clamp","formatted","handleKeyDown","e","key","preventDefault","handleStepUp","handleStepDown","createElement","className","osdkNumberInputWrapper","undefined","osdkNumberInputField","type","inputMode","onValueChange","onKeyDown","osdkNumberInputStepper","osdkNumberInputStepButton","tabIndex","onClick","size","text","test","parsed","Number","isNaN","String"],"sources":["NumberInputField.tsx"],"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 { Button } from \"@base-ui/react/button\";\nimport { Input } from \"@base-ui/react/input\";\nimport { ChevronDown, ChevronUp } from \"@blueprintjs/icons\";\nimport React, { useCallback, useRef, useState } from \"react\";\n\nimport type { NumberInputFieldProps } from \"../FormFieldApi.js\";\n\nimport styles from \"./NumberInputField.module.css\";\n\n/**\n * Structural regex for valid numeric input.\n *\n * Allows intermediate typing states that will become valid numbers:\n * \"\" — user cleared the field (all groups are optional)\n * \"-\" — user started typing a negative number\n * \".\" — user started typing a decimal like \".5\"\n * \"+\" — user started typing an explicitly positive number\n * \"1.\", \"1e\", \"1e+\" — partial but structurally valid\n *\n * Rejects obviously invalid strings like \"1.2.3\" or \"+-5\".\n */\nconst VALID_NUMERIC_REGEX = /^[+-.]?(\\d+\\.?\\d*|\\d*\\.?\\d+)?([eE][+-]?\\d*)?$/;\n\nconst DEFAULT_STEP = 1;\nconst CHEVRON_SIZE = 12;\n\nexport function NumberInputField({\n id,\n value,\n onChange,\n error,\n placeholder,\n min,\n max,\n step,\n disabled,\n}: NumberInputFieldProps): React.ReactElement {\n const [displayValue, setDisplayValue] = useState<string>(() =>\n formatNumberForDisplay(value)\n );\n\n const prevValueRef = useRef(value);\n\n // Sync external value → internal display string\n if (prevValueRef.current !== value) {\n prevValueRef.current = value;\n const currentParsed = parseNumericValue(displayValue);\n\n if (value !== currentParsed) {\n setDisplayValue(formatNumberForDisplay(value));\n }\n }\n\n const handleValueChange = useCallback(\n (newValue: string) => {\n if (!isValidInput(newValue)) {\n return;\n }\n\n setDisplayValue(newValue);\n onChange?.(parseNumericValue(newValue));\n },\n [onChange]\n );\n\n const applyStep = useCallback(\n (direction: 1 | -1) => {\n const current = parseNumericValue(displayValue) ?? 0;\n const delta = direction * (step ?? DEFAULT_STEP);\n const next = clamp(current + delta, min, max);\n const formatted = formatNumberForDisplay(next);\n setDisplayValue(formatted);\n onChange?.(next);\n },\n [displayValue, onChange, step, min, max]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key !== \"ArrowUp\" && e.key !== \"ArrowDown\") {\n return;\n }\n e.preventDefault();\n applyStep(e.key === \"ArrowUp\" ? 1 : -1);\n },\n [applyStep]\n );\n\n const handleStepUp = useCallback(() => {\n applyStep(1);\n }, [applyStep]);\n\n const handleStepDown = useCallback(() => {\n applyStep(-1);\n }, [applyStep]);\n\n return (\n <div\n className={styles.osdkNumberInputWrapper}\n aria-invalid={error != null || undefined}\n >\n <Input\n id={id}\n className={styles.osdkNumberInputField}\n type=\"text\"\n inputMode=\"decimal\"\n value={displayValue}\n onValueChange={handleValueChange}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled}\n />\n <div className={styles.osdkNumberInputStepper}>\n <Button\n className={styles.osdkNumberInputStepButton}\n aria-label=\"Increment\"\n tabIndex={-1}\n disabled={disabled}\n onClick={handleStepUp}\n >\n <ChevronUp size={CHEVRON_SIZE} />\n </Button>\n <Button\n className={styles.osdkNumberInputStepButton}\n aria-label=\"Decrement\"\n tabIndex={-1}\n disabled={disabled}\n onClick={handleStepDown}\n >\n <ChevronDown size={CHEVRON_SIZE} />\n </Button>\n </div>\n </div>\n );\n}\n\nfunction isValidInput(text: string): boolean {\n return VALID_NUMERIC_REGEX.test(text);\n}\n\nfunction parseNumericValue(text: string): number | null {\n if (text === \"\") {\n return null;\n }\n const parsed = Number(text);\n return Number.isNaN(parsed) ? null : parsed;\n}\n\nfunction formatNumberForDisplay(value: number | null): string {\n return value != null ? String(value) : \"\";\n}\n\nfunction clamp(\n value: number,\n min: number | undefined,\n max: number | undefined\n): number {\n if (min != null && value < min) return min;\n if (max != null && value > max) return max;\n return value;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectSelectField.js","names":["useObjectSet","useOsdkObjects","React","memo","useCallback","useMemo","useState","useDebouncedValue","AsyncDropdownField","SEARCH_DEBOUNCE_MS","PAGE_SIZE","EMPTY_OBJECT_SELECT_ITEMS","ObjectSelectField","props","source","resolveObjectSelectSource","createElement","ObjectSelectInner","_extends","value","onChange","error","id","placeholder","isMultiple","portalRef","portalContainer","disabled","query","setQuery","debouncedQuery","handleChange","newValue","where","trimmed","trim","undefined","$title","$containsAllTermsInOrder","objectSetResult","objectSet","pageSize","enabled","kind","objectTypeResult","objectType","data","isLoading","fetchError","fetchMore","hasMore","handleFetchMore","items","itemToStringLabel","itemToKey","isItemEqual","onQueryChange","isSearching","onFetchMore","$objectSetInternals","def","obj","String","$primaryKey","a","b"],"sources":["ObjectSelectField.tsx"],"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 {\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n WhereClause,\n} from \"@osdk/api\";\nimport { useObjectSet, useOsdkObjects } from \"@osdk/react\";\nimport React, { memo, useCallback, useMemo, useState } from \"react\";\nimport { useDebouncedValue } from \"../../shared/hooks/useDebouncedValue.js\";\nimport type { ObjectSelectFieldProps } from \"../FormFieldApi.js\";\nimport { AsyncDropdownField } from \"./AsyncDropdownField.js\";\n\n/** Debounce search input to avoid firing a server query on every keystroke. */\nconst SEARCH_DEBOUNCE_MS = 300;\n/** Number of objects fetched per page from the OSDK. */\nconst PAGE_SIZE = 50;\n\ntype ObjectSelectOsdkObject = Osdk.Instance<ObjectTypeDefinition>;\n\n/** Stable empty array so the component doesn't re-render when data is undefined. */\nconst EMPTY_OBJECT_SELECT_ITEMS: ObjectSelectOsdkObject[] = [];\n\nexport const ObjectSelectField: React.NamedExoticComponent<\n ObjectSelectFieldProps\n> = memo(function ObjectSelectFieldFn(props): React.ReactElement {\n const source = resolveObjectSelectSource(props);\n return <ObjectSelectInner {...props} source={source} />;\n});\n\ntype ResolvedObjectSelectSource<Q extends ObjectTypeDefinition> =\n | { kind: \"objectType\"; objectType: Q; objectSet?: undefined }\n | { kind: \"objectSet\"; objectType: Q; objectSet: ObjectSet<Q> };\n\ntype ObjectSelectInnerProps<Q extends ObjectTypeDefinition> =\n & ObjectSelectFieldProps<Q>\n & {\n source: ResolvedObjectSelectSource<Q>;\n };\n\nconst ObjectSelectInner: React.NamedExoticComponent<\n ObjectSelectInnerProps<ObjectTypeDefinition>\n> = memo(function ObjectSelectInnerFn({\n source,\n value,\n onChange,\n error,\n id,\n placeholder,\n isMultiple,\n portalRef,\n portalContainer,\n disabled,\n}): React.ReactElement {\n // Tracks the user's search text. Cleared on selection so the selected\n // label (managed by base-ui) doesn't trigger a server-side search.\n const [query, setQuery] = useState(\"\");\n const debouncedQuery = useDebouncedValue(query, SEARCH_DEBOUNCE_MS);\n\n const handleChange = useCallback(\n (newValue: ObjectSelectOsdkObject | null) => {\n onChange?.(newValue);\n setQuery(\"\");\n },\n [onChange],\n );\n\n // Search by the object's title via the special `$title` filter so the where\n // clause matches the same text displayed to the user via obj.$title, without\n // resolving the underlying title property from metadata at runtime.\n const where: WhereClause<ObjectTypeDefinition> | undefined = useMemo(() => {\n const trimmed = debouncedQuery.trim();\n if (trimmed === \"\") {\n return undefined;\n }\n return {\n $title: { $containsAllTermsInOrder: trimmed },\n };\n }, [debouncedQuery]);\n\n const objectSetResult = useObjectSet(source.objectSet, {\n where,\n pageSize: PAGE_SIZE,\n enabled: source.kind === \"objectSet\",\n });\n\n const objectTypeResult = useOsdkObjects(source.objectType, {\n where,\n pageSize: PAGE_SIZE,\n enabled: source.kind === \"objectType\",\n });\n\n const {\n data,\n isLoading,\n error: fetchError,\n fetchMore,\n hasMore,\n } = source.kind === \"objectSet\" ? objectSetResult : objectTypeResult;\n\n const items = data ?? EMPTY_OBJECT_SELECT_ITEMS;\n\n const handleFetchMore = useCallback(() => {\n void fetchMore?.();\n }, [fetchMore]);\n\n return (\n <AsyncDropdownField\n id={id}\n value={value}\n onChange={handleChange}\n error={error}\n items={items}\n itemToStringLabel={itemToStringLabel}\n itemToKey={itemToKey}\n isItemEqual={isItemEqual}\n placeholder={placeholder ?? \"Search…\"}\n isMultiple={isMultiple}\n portalRef={portalRef}\n portalContainer={portalContainer}\n disabled={disabled}\n onQueryChange={setQuery}\n isLoading={isLoading}\n isSearching={debouncedQuery.trim() !== \"\" && isLoading}\n hasMore={hasMore}\n onFetchMore={handleFetchMore}\n fetchError={fetchError}\n />\n );\n});\n\nfunction resolveObjectSelectSource(\n props: ObjectSelectFieldProps<ObjectTypeDefinition>,\n): ResolvedObjectSelectSource<ObjectTypeDefinition> {\n if (\"objectSet\" in props && props.objectSet != null) {\n return {\n kind: \"objectSet\",\n objectSet: props.objectSet,\n objectType: props.objectSet.$objectSetInternals.def,\n };\n }\n\n return { kind: \"objectType\", objectType: props.objectType };\n}\n\nfunction itemToStringLabel(obj: ObjectSelectOsdkObject): string {\n return obj.$title ?? String(obj.$primaryKey);\n}\n\nfunction itemToKey(obj: ObjectSelectOsdkObject): string {\n return String(obj.$primaryKey);\n}\n\nfunction isItemEqual(\n a: ObjectSelectOsdkObject,\n b: ObjectSelectOsdkObject,\n): boolean {\n return a.$primaryKey === b.$primaryKey;\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SAASA,YAAY,EAAEC,cAAc,QAAQ,aAAa;AAC1D,OAAOC,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AACnE,SAASC,iBAAiB,QAAQ,yCAAyC;AAE3E,SAASC,kBAAkB,QAAQ,yBAAyB;;AAE5D;AACA,MAAMC,kBAAkB,GAAG,GAAG;AAC9B;AACA,MAAMC,SAAS,GAAG,EAAE;AAIpB;AACA,MAAMC,yBAAmD,GAAG,EAAE;AAE9D,OAAO,MAAMC,iBAEZ,gBAAGT,IAAI,CAAC,UAA6BU,KAAK,EAAsB;EAC/D,MAAMC,MAAM,GAAGC,yBAAyB,CAACF,KAAK,CAAC;EAC/C,oBAAOX,KAAA,CAAAc,aAAA,CAACC,iBAAiB,EAAAC,QAAA,KAAKL,KAAK;IAAEC,MAAM,EAAEA;EAAO,EAAE,CAAC;AACzD,CAAC,CAAC;AAYF,MAAMG,iBAEL,gBAAGd,IAAI,CAAC,UAA6B;EACpCW,MAAM;EACNK,KAAK;EACLC,QAAQ;EACRC,KAAK;EACLC,EAAE;EACFC,WAAW;EACXC,UAAU;EACVC,SAAS;EACTC,eAAe;EACfC;AACF,CAAC,EAAsB;EACrB;EACA;EACA,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGvB,QAAQ,CAAC,EAAE,CAAC;EACtC,MAAMwB,cAAc,GAAGvB,iBAAiB,CAACqB,KAAK,EAAEnB,kBAAkB,CAAC;EAEnE,MAAMsB,YAAY,GAAG3B,WAAW,CAC7B4B,QAAuC,IAAK;IAC3CZ,QAAQ,GAAGY,QAAQ,CAAC;IACpBH,QAAQ,CAAC,EAAE,CAAC;EACd,CAAC,EACD,CAACT,QAAQ,CACX,CAAC;;EAED;EACA;EACA;EACA,MAAMa,KAAoD,GAAG5B,OAAO,CAAC,MAAM;IACzE,MAAM6B,OAAO,GAAGJ,cAAc,CAACK,IAAI,CAAC,CAAC;IACrC,IAAID,OAAO,KAAK,EAAE,EAAE;MAClB,OAAOE,SAAS;IAClB;IACA,OAAO;MACLC,MAAM,EAAE;QAAEC,wBAAwB,EAAEJ;MAAQ;IAC9C,CAAC;EACH,CAAC,EAAE,CAACJ,cAAc,CAAC,CAAC;EAEpB,MAAMS,eAAe,GAAGvC,YAAY,CAACc,MAAM,CAAC0B,SAAS,EAAE;IACrDP,KAAK;IACLQ,QAAQ,EAAE/B,SAAS;IACnBgC,OAAO,EAAE5B,MAAM,CAAC6B,IAAI,KAAK;EAC3B,CAAC,CAAC;EAEF,MAAMC,gBAAgB,GAAG3C,cAAc,CAACa,MAAM,CAAC+B,UAAU,EAAE;IACzDZ,KAAK;IACLQ,QAAQ,EAAE/B,SAAS;IACnBgC,OAAO,EAAE5B,MAAM,CAAC6B,IAAI,KAAK;EAC3B,CAAC,CAAC;EAEF,MAAM;IACJG,IAAI;IACJC,SAAS;IACT1B,KAAK,EAAE2B,UAAU;IACjBC,SAAS;IACTC;EACF,CAAC,GAAGpC,MAAM,CAAC6B,IAAI,KAAK,WAAW,GAAGJ,eAAe,GAAGK,gBAAgB;EAIpE,MAAMO,eAAe,GAAG/C,WAAW,CAAC,MAAM;IACxC,KAAK6C,SAAS,GAAG,CAAC;EACpB,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,oBACE/C,KAAA,CAAAc,aAAA,CAACR,kBAAkB;IACjBc,EAAE,EAAEA,EAAG;IACPH,KAAK,EAAEA,KAAM;IACbC,QAAQ,EAAEW,YAAa;IACvBV,KAAK,EAAEA,KAAM;IACb+B,KAAK,EAZKN,IAAI,IAAInC,yBAYL;IACb0C,iBAAiB,EAAEA,iBAAkB;IACrCC,SAAS,EAAEA,SAAU;IACrBC,WAAW,EAAEA,WAAY;IACzBhC,WAAW,EAAEA,WAAW,IAAI,SAAU;IACtCC,UAAU,EAAEA,UAAW;IACvBC,SAAS,EAAEA,SAAU;IACrBC,eAAe,EAAEA,eAAgB;IACjCC,QAAQ,EAAEA,QAAS;IACnB6B,aAAa,EAAE3B,QAAS;IACxBkB,SAAS,EAAEA,SAAU;IACrBU,WAAW,EAAE3B,cAAc,CAACK,IAAI,CAAC,CAAC,KAAK,EAAE,IAAIY,SAAU;IACvDG,OAAO,EAAEA,OAAQ;IACjBQ,WAAW,EAAEP,eAAgB;IAC7BH,UAAU,EAAEA;EAAW,CACxB,CAAC;AAEN,CAAC,CAAC;AAEF,SAASjC,yBAAyBA,CAChCF,KAAmD,EACD;EAClD,IAAI,WAAW,IAAIA,KAAK,IAAIA,KAAK,CAAC2B,SAAS,IAAI,IAAI,EAAE;IACnD,OAAO;MACLG,IAAI,EAAE,WAAW;MACjBH,SAAS,EAAE3B,KAAK,CAAC2B,SAAS;MAC1BK,UAAU,EAAEhC,KAAK,CAAC2B,SAAS,CAACmB,mBAAmB,CAACC;IAClD,CAAC;EACH;EAEA,OAAO;IAAEjB,IAAI,EAAE,YAAY;IAAEE,UAAU,EAAEhC,KAAK,CAACgC;EAAW,CAAC;AAC7D;AAEA,SAASQ,iBAAiBA,CAACQ,GAA2B,EAAU;EAC9D,OAAOA,GAAG,CAACxB,MAAM,IAAIyB,MAAM,CAACD,GAAG,CAACE,WAAW,CAAC;AAC9C;AAEA,SAAST,SAASA,CAACO,GAA2B,EAAU;EACtD,OAAOC,MAAM,CAACD,GAAG,CAACE,WAAW,CAAC;AAChC;AAEA,SAASR,WAAWA,CAClBS,CAAyB,EACzBC,CAAyB,EAChB;EACT,OAAOD,CAAC,CAACD,WAAW,KAAKE,CAAC,CAACF,WAAW;AACxC","ignoreList":[]}
1
+ {"version":3,"file":"ObjectSelectField.js","names":["useObjectSet","useOsdkObjects","React","memo","useCallback","useMemo","useState","useDebouncedValue","AsyncDropdownField","SEARCH_DEBOUNCE_MS","PAGE_SIZE","EMPTY_OBJECT_SELECT_ITEMS","ObjectSelectField","props","source","resolveObjectSelectSource","createElement","ObjectSelectInner","_extends","value","onChange","error","id","placeholder","isMultiple","portalRef","portalContainer","disabled","query","setQuery","debouncedQuery","handleChange","newValue","where","trimmed","trim","undefined","$title","$containsAllTermsInOrder","objectSetResult","objectSet","pageSize","enabled","kind","objectTypeResult","objectType","data","isLoading","fetchError","fetchMore","hasMore","handleFetchMore","items","itemToStringLabel","itemToKey","isItemEqual","onQueryChange","isSearching","onFetchMore","$objectSetInternals","def","obj","String","$primaryKey","a","b"],"sources":["ObjectSelectField.tsx"],"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 {\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n WhereClause,\n} from \"@osdk/api\";\nimport { useObjectSet, useOsdkObjects } from \"@osdk/react\";\nimport React, { memo, useCallback, useMemo, useState } from \"react\";\n\nimport { useDebouncedValue } from \"../../shared/hooks/useDebouncedValue.js\";\nimport type { ObjectSelectFieldProps } from \"../FormFieldApi.js\";\nimport { AsyncDropdownField } from \"./AsyncDropdownField.js\";\n\n/** Debounce search input to avoid firing a server query on every keystroke. */\nconst SEARCH_DEBOUNCE_MS = 300;\n/** Number of objects fetched per page from the OSDK. */\nconst PAGE_SIZE = 50;\n\ntype ObjectSelectOsdkObject = Osdk.Instance<ObjectTypeDefinition>;\n\n/** Stable empty array so the component doesn't re-render when data is undefined. */\nconst EMPTY_OBJECT_SELECT_ITEMS: ObjectSelectOsdkObject[] = [];\n\nexport const ObjectSelectField: React.NamedExoticComponent<ObjectSelectFieldProps> =\n memo(function ObjectSelectFieldFn(props): React.ReactElement {\n const source = resolveObjectSelectSource(props);\n return <ObjectSelectInner {...props} source={source} />;\n });\n\ntype ResolvedObjectSelectSource<Q extends ObjectTypeDefinition> =\n | { kind: \"objectType\"; objectType: Q; objectSet?: undefined }\n | { kind: \"objectSet\"; objectType: Q; objectSet: ObjectSet<Q> };\n\ntype ObjectSelectInnerProps<Q extends ObjectTypeDefinition> =\n ObjectSelectFieldProps<Q> & {\n source: ResolvedObjectSelectSource<Q>;\n };\n\nconst ObjectSelectInner: React.NamedExoticComponent<\n ObjectSelectInnerProps<ObjectTypeDefinition>\n> = memo(function ObjectSelectInnerFn({\n source,\n value,\n onChange,\n error,\n id,\n placeholder,\n isMultiple,\n portalRef,\n portalContainer,\n disabled,\n}): React.ReactElement {\n // Tracks the user's search text. Cleared on selection so the selected\n // label (managed by base-ui) doesn't trigger a server-side search.\n const [query, setQuery] = useState(\"\");\n const debouncedQuery = useDebouncedValue(query, SEARCH_DEBOUNCE_MS);\n\n const handleChange = useCallback(\n (newValue: ObjectSelectOsdkObject | null) => {\n onChange?.(newValue);\n setQuery(\"\");\n },\n [onChange]\n );\n\n // Search by the object's title via the special `$title` filter so the where\n // clause matches the same text displayed to the user via obj.$title, without\n // resolving the underlying title property from metadata at runtime.\n const where: WhereClause<ObjectTypeDefinition> | undefined = useMemo(() => {\n const trimmed = debouncedQuery.trim();\n if (trimmed === \"\") {\n return undefined;\n }\n return {\n $title: { $containsAllTermsInOrder: trimmed },\n };\n }, [debouncedQuery]);\n\n const objectSetResult = useObjectSet(source.objectSet, {\n where,\n pageSize: PAGE_SIZE,\n enabled: source.kind === \"objectSet\",\n });\n\n const objectTypeResult = useOsdkObjects(source.objectType, {\n where,\n pageSize: PAGE_SIZE,\n enabled: source.kind === \"objectType\",\n });\n\n const {\n data,\n isLoading,\n error: fetchError,\n fetchMore,\n hasMore,\n } = source.kind === \"objectSet\" ? objectSetResult : objectTypeResult;\n\n const items = data ?? EMPTY_OBJECT_SELECT_ITEMS;\n\n const handleFetchMore = useCallback(() => {\n void fetchMore?.();\n }, [fetchMore]);\n\n return (\n <AsyncDropdownField\n id={id}\n value={value}\n onChange={handleChange}\n error={error}\n items={items}\n itemToStringLabel={itemToStringLabel}\n itemToKey={itemToKey}\n isItemEqual={isItemEqual}\n placeholder={placeholder ?? \"Search…\"}\n isMultiple={isMultiple}\n portalRef={portalRef}\n portalContainer={portalContainer}\n disabled={disabled}\n onQueryChange={setQuery}\n isLoading={isLoading}\n isSearching={debouncedQuery.trim() !== \"\" && isLoading}\n hasMore={hasMore}\n onFetchMore={handleFetchMore}\n fetchError={fetchError}\n />\n );\n});\n\nfunction resolveObjectSelectSource(\n props: ObjectSelectFieldProps<ObjectTypeDefinition>\n): ResolvedObjectSelectSource<ObjectTypeDefinition> {\n if (\"objectSet\" in props && props.objectSet != null) {\n return {\n kind: \"objectSet\",\n objectSet: props.objectSet,\n objectType: props.objectSet.$objectSetInternals.def,\n };\n }\n\n return { kind: \"objectType\", objectType: props.objectType };\n}\n\nfunction itemToStringLabel(obj: ObjectSelectOsdkObject): string {\n return obj.$title ?? String(obj.$primaryKey);\n}\n\nfunction itemToKey(obj: ObjectSelectOsdkObject): string {\n return String(obj.$primaryKey);\n}\n\nfunction isItemEqual(\n a: ObjectSelectOsdkObject,\n b: ObjectSelectOsdkObject\n): boolean {\n return a.$primaryKey === b.$primaryKey;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectSetField.js","names":["IconSize","useObjectSet","useOsdkMetadata","classnames","React","BlueprintIcon","SkeletonBar","typedReactMemo","styles","DEFAULT_OBJECT_ICON","name","color","ICON_SIZE","STANDARD","DEFAULT_EMPTY_MESSAGE","ObjectSetField","value","emptyMessage","disabled","createElement","className","osdkObjectSetField","osdkObjectSetFieldEmpty","undefined","ObjectSetFieldContent","objectSet","memo","objectTypeDef","$objectSetInternals","def","metadata","loading","metadataLoading","totalCount","data","isLoading","objectSetLoading","error","objectSetError","pageSize","hasMetadata","icon","useMemo","toComponentIcon","displayName","pluralDisplayName","Fragment","OBJECT_SET_ICON_SKELETON","OBJECT_SET_LABEL_SKELETON","size","ObjectSetLabel","hasData","label","showSkeleton","showError","osdkObjectSetFieldError","role","message","formatCount","osdkObjectSetIconSkeleton","osdkObjectSetLabelSkeleton","count","num","Number","isNaN","toLocaleString","apiIcon"],"sources":["ObjectSetField.tsx"],"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 IconName, IconSize } from \"@blueprintjs/icons\";\nimport type { ObjectSet, ObjectTypeDefinition } from \"@osdk/api\";\nimport { useObjectSet, useOsdkMetadata } from \"@osdk/react\";\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport {\n BlueprintIcon,\n type Icon,\n} from \"../../base-components/icon/BlueprintIcon.js\";\nimport { SkeletonBar } from \"../../base-components/skeleton/SkeletonBar.js\";\nimport { typedReactMemo } from \"../../shared/typedMemo.js\";\nimport type { ObjectSetFieldProps } from \"../FormFieldApi.js\";\nimport styles from \"./ObjectSetField.module.css\";\n\nconst DEFAULT_OBJECT_ICON: Icon = { name: \"cube\", color: \"#4C90F0\" };\nconst ICON_SIZE = IconSize.STANDARD;\nconst DEFAULT_EMPTY_MESSAGE = \"Object set is not defined\";\n\nexport const ObjectSetField: <T extends ObjectTypeDefinition>(\n props: ObjectSetFieldProps<T>,\n) => React.ReactElement = typedReactMemo(function ObjectSetFieldFn<\n T extends ObjectTypeDefinition,\n>({\n value,\n emptyMessage = DEFAULT_EMPTY_MESSAGE,\n disabled,\n}: ObjectSetFieldProps<T>): React.ReactElement {\n if (value == null) {\n return (\n <div\n className={classnames(\n styles.osdkObjectSetField,\n styles.osdkObjectSetFieldEmpty,\n )}\n aria-disabled={disabled === true || undefined}\n >\n {emptyMessage}\n </div>\n );\n }\n\n return <ObjectSetFieldContent objectSet={value} disabled={disabled} />;\n});\n\nconst ObjectSetFieldContent = React.memo(function ObjectSetFieldContentFn({\n objectSet,\n disabled,\n}: {\n objectSet: ObjectSet;\n disabled: boolean | undefined;\n}): React.ReactElement {\n const objectTypeDef = objectSet.$objectSetInternals.def;\n const { metadata, loading: metadataLoading } = useOsdkMetadata(objectTypeDef);\n const {\n totalCount,\n data,\n isLoading: objectSetLoading,\n error: objectSetError,\n } = useObjectSet(objectSet, {\n // Fetching a page size of one is enough to get the totalCount\n pageSize: 1,\n });\n\n const hasMetadata = metadata != null;\n\n const icon = React.useMemo(\n () =>\n metadata != null && \"icon\" in metadata && metadata.icon != null\n ? toComponentIcon(metadata.icon)\n : DEFAULT_OBJECT_ICON,\n [metadata],\n );\n\n const displayName =\n totalCount === \"1\" || !hasMetadata || !(\"pluralDisplayName\" in metadata)\n ? metadata?.displayName\n : metadata.pluralDisplayName;\n\n // Wait for metadata even if the count is already available, so we can\n // show the correct display name and avoid a flash of \"objects\" → \"Employees\".\n const showLoadingState = metadataLoading && !hasMetadata;\n\n return (\n <div\n className={styles.osdkObjectSetField}\n aria-disabled={disabled === true || undefined}\n >\n {showLoadingState\n ? (\n <>\n {OBJECT_SET_ICON_SKELETON}\n {OBJECT_SET_LABEL_SKELETON}\n </>\n )\n : (\n <>\n <BlueprintIcon icon={icon} size={ICON_SIZE} />\n <ObjectSetLabel\n displayName={displayName}\n totalCount={totalCount}\n error={objectSetError}\n isLoading={objectSetLoading}\n />\n </>\n )}\n </div>\n );\n});\n\nconst ObjectSetLabel = React.memo(function ObjectSetLabelFn({\n displayName,\n totalCount,\n isLoading,\n error,\n}: {\n displayName: string | undefined;\n totalCount: string | undefined;\n isLoading: boolean;\n error: Error | undefined;\n}): React.ReactElement {\n const hasData = totalCount != null;\n const label = displayName ?? (totalCount === \"1\" ? \"object\" : \"objects\");\n const showSkeleton = isLoading && !hasData;\n const showError = error != null && !hasData && !isLoading;\n\n return (\n <>\n {showSkeleton && OBJECT_SET_LABEL_SKELETON}\n {showError && (\n <span className={styles.osdkObjectSetFieldError} role=\"alert\">\n {`Failed to load: ${error.message}`}\n </span>\n )}\n {!showSkeleton && !showError && (\n <span>{`${formatCount(totalCount)} ${label}`}</span>\n )}\n </>\n );\n});\n\nconst OBJECT_SET_ICON_SKELETON = (\n <SkeletonBar className={styles.osdkObjectSetIconSkeleton} />\n);\n\nconst OBJECT_SET_LABEL_SKELETON = (\n <SkeletonBar className={styles.osdkObjectSetLabelSkeleton} />\n);\n\nfunction formatCount(count: string | undefined): string {\n if (count == null) {\n return \"\\u2013\"; // '–' symbol\n }\n const num = Number(count);\n return Number.isNaN(num) ? count : num.toLocaleString();\n}\n\nfunction toComponentIcon(apiIcon: { name: string; color: string }): Icon {\n return { name: apiIcon.name as IconName, color: apiIcon.color };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ObjectSetField.js","names":["IconSize","useObjectSet","useOsdkMetadata","classnames","React","BlueprintIcon","SkeletonBar","typedReactMemo","styles","DEFAULT_OBJECT_ICON","name","color","ICON_SIZE","STANDARD","DEFAULT_EMPTY_MESSAGE","ObjectSetField","value","emptyMessage","disabled","createElement","className","osdkObjectSetField","osdkObjectSetFieldEmpty","undefined","ObjectSetFieldContent","objectSet","memo","objectTypeDef","$objectSetInternals","def","metadata","loading","metadataLoading","totalCount","data","isLoading","objectSetLoading","error","objectSetError","pageSize","hasMetadata","icon","useMemo","toComponentIcon","displayName","pluralDisplayName","Fragment","OBJECT_SET_ICON_SKELETON","OBJECT_SET_LABEL_SKELETON","size","ObjectSetLabel","hasData","label","showSkeleton","showError","osdkObjectSetFieldError","role","message","formatCount","osdkObjectSetIconSkeleton","osdkObjectSetLabelSkeleton","count","num","Number","isNaN","toLocaleString","apiIcon"],"sources":["ObjectSetField.tsx"],"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 IconName, IconSize } from \"@blueprintjs/icons\";\nimport type { ObjectSet, ObjectTypeDefinition } from \"@osdk/api\";\nimport { useObjectSet, useOsdkMetadata } from \"@osdk/react\";\nimport classnames from \"classnames\";\nimport React from \"react\";\n\nimport {\n BlueprintIcon,\n type Icon,\n} from \"../../base-components/icon/BlueprintIcon.js\";\nimport { SkeletonBar } from \"../../base-components/skeleton/SkeletonBar.js\";\nimport { typedReactMemo } from \"../../shared/typedMemo.js\";\nimport type { ObjectSetFieldProps } from \"../FormFieldApi.js\";\n\nimport styles from \"./ObjectSetField.module.css\";\n\nconst DEFAULT_OBJECT_ICON: Icon = { name: \"cube\", color: \"#4C90F0\" };\nconst ICON_SIZE = IconSize.STANDARD;\nconst DEFAULT_EMPTY_MESSAGE = \"Object set is not defined\";\n\nexport const ObjectSetField: <T extends ObjectTypeDefinition>(\n props: ObjectSetFieldProps<T>\n) => React.ReactElement = typedReactMemo(function ObjectSetFieldFn<\n T extends ObjectTypeDefinition,\n>({\n value,\n emptyMessage = DEFAULT_EMPTY_MESSAGE,\n disabled,\n}: ObjectSetFieldProps<T>): React.ReactElement {\n if (value == null) {\n return (\n <div\n className={classnames(\n styles.osdkObjectSetField,\n styles.osdkObjectSetFieldEmpty\n )}\n aria-disabled={disabled === true || undefined}\n >\n {emptyMessage}\n </div>\n );\n }\n\n return <ObjectSetFieldContent objectSet={value} disabled={disabled} />;\n});\n\nconst ObjectSetFieldContent = React.memo(function ObjectSetFieldContentFn({\n objectSet,\n disabled,\n}: {\n objectSet: ObjectSet;\n disabled: boolean | undefined;\n}): React.ReactElement {\n const objectTypeDef = objectSet.$objectSetInternals.def;\n const { metadata, loading: metadataLoading } = useOsdkMetadata(objectTypeDef);\n const {\n totalCount,\n data,\n isLoading: objectSetLoading,\n error: objectSetError,\n } = useObjectSet(objectSet, {\n // Fetching a page size of one is enough to get the totalCount\n pageSize: 1,\n });\n\n const hasMetadata = metadata != null;\n\n const icon = React.useMemo(\n () =>\n metadata != null && \"icon\" in metadata && metadata.icon != null\n ? toComponentIcon(metadata.icon)\n : DEFAULT_OBJECT_ICON,\n [metadata]\n );\n\n const displayName =\n totalCount === \"1\" || !hasMetadata || !(\"pluralDisplayName\" in metadata)\n ? metadata?.displayName\n : metadata.pluralDisplayName;\n\n // Wait for metadata even if the count is already available, so we can\n // show the correct display name and avoid a flash of \"objects\" → \"Employees\".\n const showLoadingState = metadataLoading && !hasMetadata;\n\n return (\n <div\n className={styles.osdkObjectSetField}\n aria-disabled={disabled === true || undefined}\n >\n {showLoadingState ? (\n <>\n {OBJECT_SET_ICON_SKELETON}\n {OBJECT_SET_LABEL_SKELETON}\n </>\n ) : (\n <>\n <BlueprintIcon icon={icon} size={ICON_SIZE} />\n <ObjectSetLabel\n displayName={displayName}\n totalCount={totalCount}\n error={objectSetError}\n isLoading={objectSetLoading}\n />\n </>\n )}\n </div>\n );\n});\n\nconst ObjectSetLabel = React.memo(function ObjectSetLabelFn({\n displayName,\n totalCount,\n isLoading,\n error,\n}: {\n displayName: string | undefined;\n totalCount: string | undefined;\n isLoading: boolean;\n error: Error | undefined;\n}): React.ReactElement {\n const hasData = totalCount != null;\n const label = displayName ?? (totalCount === \"1\" ? \"object\" : \"objects\");\n const showSkeleton = isLoading && !hasData;\n const showError = error != null && !hasData && !isLoading;\n\n return (\n <>\n {showSkeleton && OBJECT_SET_LABEL_SKELETON}\n {showError && (\n <span className={styles.osdkObjectSetFieldError} role=\"alert\">\n {`Failed to load: ${error.message}`}\n </span>\n )}\n {!showSkeleton && !showError && (\n <span>{`${formatCount(totalCount)} ${label}`}</span>\n )}\n </>\n );\n});\n\nconst OBJECT_SET_ICON_SKELETON = (\n <SkeletonBar className={styles.osdkObjectSetIconSkeleton} />\n);\n\nconst OBJECT_SET_LABEL_SKELETON = (\n <SkeletonBar className={styles.osdkObjectSetLabelSkeleton} />\n);\n\nfunction formatCount(count: string | undefined): string {\n if (count == null) {\n return \"\\u2013\"; // '–' symbol\n }\n const num = Number(count);\n return Number.isNaN(num) ? count : num.toLocaleString();\n}\n\nfunction toComponentIcon(apiIcon: { name: string; color: string }): Icon {\n return { name: apiIcon.name as IconName, color: apiIcon.color };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"RadioButtonsField.js","names":["Radio","RadioGroup","React","memo","useCallback","useId","useMemo","typedReactMemo","styles","RadioButtonsField","id","value","onChange","options","orientation","disabled","selectedLabel","find","opt","label","undefined","handleValueChange","nextLabel","match","createElement","className","osdkRadioGroup","onValueChange","map","option","RadioItem","key","labelId","osdkRadioItem","Root","osdkRadioRoot","tabIndex","Indicator","osdkRadioIndicator","osdkRadioLabel"],"sources":["RadioButtonsField.tsx"],"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 { Radio } from \"@base-ui/react/radio\";\nimport { RadioGroup } from \"@base-ui/react/radio-group\";\nimport React, { memo, useCallback, useId, useMemo } from \"react\";\nimport { typedReactMemo } from \"../../shared/typedMemo.js\";\nimport type { Option, RadioButtonsFieldProps } from \"../FormFieldApi.js\";\nimport styles from \"./RadioButtonsField.module.css\";\n\nexport const RadioButtonsField: <V>(\n props: RadioButtonsFieldProps<V>,\n) => React.ReactElement = typedReactMemo(function RadioButtonsFieldFn<V,>({\n id,\n value,\n onChange,\n options,\n orientation,\n disabled,\n}: RadioButtonsFieldProps<V>): React.ReactElement {\n const selectedLabel = useMemo(\n () =>\n value != null\n ? options.find((opt) => opt.value === value)?.label\n : undefined,\n [options, value],\n );\n\n const handleValueChange = useCallback(\n (nextLabel: unknown) => {\n const match = options.find((opt) => opt.label === nextLabel);\n onChange?.(match?.value ?? null);\n },\n [options, onChange],\n );\n\n return (\n <RadioGroup\n id={id}\n className={styles.osdkRadioGroup}\n data-orientation={orientation ?? \"vertical\"}\n value={selectedLabel}\n onValueChange={handleValueChange}\n disabled={disabled}\n >\n {options.map((option) => (\n <RadioItem key={option.label} option={option} disabled={disabled} />\n ))}\n </RadioGroup>\n );\n});\n\nconst RadioItem = memo(function RadioItemFn({\n option,\n disabled,\n}: {\n option: Option<unknown>;\n disabled: boolean | undefined;\n}): React.ReactElement {\n const labelId = useId();\n\n return (\n <label className={styles.osdkRadioItem}>\n <Radio.Root\n value={option.label}\n className={styles.osdkRadioRoot}\n disabled={disabled}\n aria-labelledby={labelId}\n tabIndex={disabled === true ? -1 : undefined}\n >\n <Radio.Indicator className={styles.osdkRadioIndicator} />\n </Radio.Root>\n <span id={labelId} className={styles.osdkRadioLabel}>{option.label}</span>\n </label>\n );\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,KAAK,QAAQ,sBAAsB;AAC5C,SAASC,UAAU,QAAQ,4BAA4B;AACvD,OAAOC,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,KAAK,EAAEC,OAAO,QAAQ,OAAO;AAChE,SAASC,cAAc,QAAQ,2BAA2B;AAE1D,OAAOC,MAAM,MAAM,gCAAgC;AAEnD,OAAO,MAAMC,iBAEU,GAAGF,cAAc,CAAC,UAAiC;EACxEG,EAAE;EACFC,KAAK;EACLC,QAAQ;EACRC,OAAO;EACPC,WAAW;EACXC;AACyB,CAAC,EAAsB;EAChD,MAAMC,aAAa,GAAGV,OAAO,CAC3B,MACEK,KAAK,IAAI,IAAI,GACTE,OAAO,CAACI,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACP,KAAK,KAAKA,KAAK,CAAC,EAAEQ,KAAK,GACjDC,SAAS,EACf,CAACP,OAAO,EAAEF,KAAK,CACjB,CAAC;EAED,MAAMU,iBAAiB,GAAGjB,WAAW,CAClCkB,SAAkB,IAAK;IACtB,MAAMC,KAAK,GAAGV,OAAO,CAACI,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,KAAK,KAAKG,SAAS,CAAC;IAC5DV,QAAQ,GAAGW,KAAK,EAAEZ,KAAK,IAAI,IAAI,CAAC;EAClC,CAAC,EACD,CAACE,OAAO,EAAED,QAAQ,CACpB,CAAC;EAED,oBACEV,KAAA,CAAAsB,aAAA,CAACvB,UAAU;IACTS,EAAE,EAAEA,EAAG;IACPe,SAAS,EAAEjB,MAAM,CAACkB,cAAe;IACjC,oBAAkBZ,WAAW,IAAI,UAAW;IAC5CH,KAAK,EAAEK,aAAc;IACrBW,aAAa,EAAEN,iBAAkB;IACjCN,QAAQ,EAAEA;EAAS,GAElBF,OAAO,CAACe,GAAG,CAAEC,MAAM,iBAClB3B,KAAA,CAAAsB,aAAA,CAACM,SAAS;IAACC,GAAG,EAAEF,MAAM,CAACV,KAAM;IAACU,MAAM,EAAEA,MAAO;IAACd,QAAQ,EAAEA;EAAS,CAAE,CACpE,CACS,CAAC;AAEjB,CAAC,CAAC;AAEF,MAAMe,SAAS,gBAAG3B,IAAI,CAAC,UAAqB;EAC1C0B,MAAM;EACNd;AAIF,CAAC,EAAsB;EACrB,MAAMiB,OAAO,GAAG3B,KAAK,CAAC,CAAC;EAEvB,oBACEH,KAAA,CAAAsB,aAAA;IAAOC,SAAS,EAAEjB,MAAM,CAACyB;EAAc,gBACrC/B,KAAA,CAAAsB,aAAA,CAACxB,KAAK,CAACkC,IAAI;IACTvB,KAAK,EAAEkB,MAAM,CAACV,KAAM;IACpBM,SAAS,EAAEjB,MAAM,CAAC2B,aAAc;IAChCpB,QAAQ,EAAEA,QAAS;IACnB,mBAAiBiB,OAAQ;IACzBI,QAAQ,EAAErB,QAAQ,KAAK,IAAI,GAAG,CAAC,CAAC,GAAGK;EAAU,gBAE7ClB,KAAA,CAAAsB,aAAA,CAACxB,KAAK,CAACqC,SAAS;IAACZ,SAAS,EAAEjB,MAAM,CAAC8B;EAAmB,CAAE,CAC9C,CAAC,eACbpC,KAAA,CAAAsB,aAAA;IAAMd,EAAE,EAAEsB,OAAQ;IAACP,SAAS,EAAEjB,MAAM,CAAC+B;EAAe,GAAEV,MAAM,CAACV,KAAY,CACpE,CAAC;AAEZ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"RadioButtonsField.js","names":["Radio","RadioGroup","React","memo","useCallback","useId","useMemo","typedReactMemo","styles","RadioButtonsField","id","value","onChange","options","orientation","disabled","selectedLabel","find","opt","label","undefined","handleValueChange","nextLabel","match","createElement","className","osdkRadioGroup","onValueChange","map","option","RadioItem","key","labelId","osdkRadioItem","Root","osdkRadioRoot","tabIndex","Indicator","osdkRadioIndicator","osdkRadioLabel"],"sources":["RadioButtonsField.tsx"],"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 { Radio } from \"@base-ui/react/radio\";\nimport { RadioGroup } from \"@base-ui/react/radio-group\";\nimport React, { memo, useCallback, useId, useMemo } from \"react\";\n\nimport { typedReactMemo } from \"../../shared/typedMemo.js\";\nimport type { Option, RadioButtonsFieldProps } from \"../FormFieldApi.js\";\n\nimport styles from \"./RadioButtonsField.module.css\";\n\nexport const RadioButtonsField: <V>(\n props: RadioButtonsFieldProps<V>\n) => React.ReactElement = typedReactMemo(function RadioButtonsFieldFn<V>({\n id,\n value,\n onChange,\n options,\n orientation,\n disabled,\n}: RadioButtonsFieldProps<V>): React.ReactElement {\n const selectedLabel = useMemo(\n () =>\n value != null\n ? options.find((opt) => opt.value === value)?.label\n : undefined,\n [options, value]\n );\n\n const handleValueChange = useCallback(\n (nextLabel: unknown) => {\n const match = options.find((opt) => opt.label === nextLabel);\n onChange?.(match?.value ?? null);\n },\n [options, onChange]\n );\n\n return (\n <RadioGroup\n id={id}\n className={styles.osdkRadioGroup}\n data-orientation={orientation ?? \"vertical\"}\n value={selectedLabel}\n onValueChange={handleValueChange}\n disabled={disabled}\n >\n {options.map((option) => (\n <RadioItem key={option.label} option={option} disabled={disabled} />\n ))}\n </RadioGroup>\n );\n});\n\nconst RadioItem = memo(function RadioItemFn({\n option,\n disabled,\n}: {\n option: Option<unknown>;\n disabled: boolean | undefined;\n}): React.ReactElement {\n const labelId = useId();\n\n return (\n <label className={styles.osdkRadioItem}>\n <Radio.Root\n value={option.label}\n className={styles.osdkRadioRoot}\n disabled={disabled}\n aria-labelledby={labelId}\n tabIndex={disabled === true ? -1 : undefined}\n >\n <Radio.Indicator className={styles.osdkRadioIndicator} />\n </Radio.Root>\n <span id={labelId} className={styles.osdkRadioLabel}>\n {option.label}\n </span>\n </label>\n );\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,KAAK,QAAQ,sBAAsB;AAC5C,SAASC,UAAU,QAAQ,4BAA4B;AACvD,OAAOC,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,KAAK,EAAEC,OAAO,QAAQ,OAAO;AAEhE,SAASC,cAAc,QAAQ,2BAA2B;AAG1D,OAAOC,MAAM,MAAM,gCAAgC;AAEnD,OAAO,MAAMC,iBAEU,GAAGF,cAAc,CAAC,UAAgC;EACvEG,EAAE;EACFC,KAAK;EACLC,QAAQ;EACRC,OAAO;EACPC,WAAW;EACXC;AACyB,CAAC,EAAsB;EAChD,MAAMC,aAAa,GAAGV,OAAO,CAC3B,MACEK,KAAK,IAAI,IAAI,GACTE,OAAO,CAACI,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACP,KAAK,KAAKA,KAAK,CAAC,EAAEQ,KAAK,GACjDC,SAAS,EACf,CAACP,OAAO,EAAEF,KAAK,CACjB,CAAC;EAED,MAAMU,iBAAiB,GAAGjB,WAAW,CAClCkB,SAAkB,IAAK;IACtB,MAAMC,KAAK,GAAGV,OAAO,CAACI,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,KAAK,KAAKG,SAAS,CAAC;IAC5DV,QAAQ,GAAGW,KAAK,EAAEZ,KAAK,IAAI,IAAI,CAAC;EAClC,CAAC,EACD,CAACE,OAAO,EAAED,QAAQ,CACpB,CAAC;EAED,oBACEV,KAAA,CAAAsB,aAAA,CAACvB,UAAU;IACTS,EAAE,EAAEA,EAAG;IACPe,SAAS,EAAEjB,MAAM,CAACkB,cAAe;IACjC,oBAAkBZ,WAAW,IAAI,UAAW;IAC5CH,KAAK,EAAEK,aAAc;IACrBW,aAAa,EAAEN,iBAAkB;IACjCN,QAAQ,EAAEA;EAAS,GAElBF,OAAO,CAACe,GAAG,CAAEC,MAAM,iBAClB3B,KAAA,CAAAsB,aAAA,CAACM,SAAS;IAACC,GAAG,EAAEF,MAAM,CAACV,KAAM;IAACU,MAAM,EAAEA,MAAO;IAACd,QAAQ,EAAEA;EAAS,CAAE,CACpE,CACS,CAAC;AAEjB,CAAC,CAAC;AAEF,MAAMe,SAAS,gBAAG3B,IAAI,CAAC,UAAqB;EAC1C0B,MAAM;EACNd;AAIF,CAAC,EAAsB;EACrB,MAAMiB,OAAO,GAAG3B,KAAK,CAAC,CAAC;EAEvB,oBACEH,KAAA,CAAAsB,aAAA;IAAOC,SAAS,EAAEjB,MAAM,CAACyB;EAAc,gBACrC/B,KAAA,CAAAsB,aAAA,CAACxB,KAAK,CAACkC,IAAI;IACTvB,KAAK,EAAEkB,MAAM,CAACV,KAAM;IACpBM,SAAS,EAAEjB,MAAM,CAAC2B,aAAc;IAChCpB,QAAQ,EAAEA,QAAS;IACnB,mBAAiBiB,OAAQ;IACzBI,QAAQ,EAAErB,QAAQ,KAAK,IAAI,GAAG,CAAC,CAAC,GAAGK;EAAU,gBAE7ClB,KAAA,CAAAsB,aAAA,CAACxB,KAAK,CAACqC,SAAS;IAACZ,SAAS,EAAEjB,MAAM,CAAC8B;EAAmB,CAAE,CAC9C,CAAC,eACbpC,KAAA,CAAAsB,aAAA;IAAMd,EAAE,EAAEsB,OAAQ;IAACP,SAAS,EAAEjB,MAAM,CAAC+B;EAAe,GACjDV,MAAM,CAACV,KACJ,CACD,CAAC;AAEZ,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchField.js","names":["React","Switch","SwitchField","memo","id","label","value","onChange","error","disabled","createElement","checked","onCheckedChange","undefined"],"sources":["SwitchField.tsx"],"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 React from \"react\";\nimport { Switch } from \"../../base-components/switch/Switch.js\";\nimport type { SwitchFieldProps } from \"../FormFieldApi.js\";\n\ninterface InternalSwitchFieldProps extends SwitchFieldProps {\n label?: string;\n}\n\nexport const SwitchField: React.NamedExoticComponent<InternalSwitchFieldProps> =\n React.memo(function SwitchFieldFn({\n id,\n label,\n value,\n onChange,\n error,\n disabled,\n }: InternalSwitchFieldProps): React.ReactElement {\n return (\n <Switch\n id={id}\n checked={value ?? false}\n onCheckedChange={onChange}\n aria-invalid={error != null || undefined}\n aria-label={label}\n disabled={disabled}\n />\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,MAAM,QAAQ,wCAAwC;AAO/D,OAAO,MAAMC,WAAiE,gBAC5EF,KAAK,CAACG,IAAI,CAAC,UAAuB;EAChCC,EAAE;EACFC,KAAK;EACLC,KAAK;EACLC,QAAQ;EACRC,KAAK;EACLC;AACwB,CAAC,EAAsB;EAC/C,oBACET,KAAA,CAAAU,aAAA,CAACT,MAAM;IACLG,EAAE,EAAEA,EAAG;IACPO,OAAO,EAAEL,KAAK,IAAI,KAAM;IACxBM,eAAe,EAAEL,QAAS;IAC1B,gBAAcC,KAAK,IAAI,IAAI,IAAIK,SAAU;IACzC,cAAYR,KAAM;IAClBI,QAAQ,EAAEA;EAAS,CACpB,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"SwitchField.js","names":["React","Switch","SwitchField","memo","id","label","value","onChange","error","disabled","createElement","checked","onCheckedChange","undefined"],"sources":["SwitchField.tsx"],"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 React from \"react\";\n\nimport { Switch } from \"../../base-components/switch/Switch.js\";\nimport type { SwitchFieldProps } from \"../FormFieldApi.js\";\n\ninterface InternalSwitchFieldProps extends SwitchFieldProps {\n label?: string;\n}\n\nexport const SwitchField: React.NamedExoticComponent<InternalSwitchFieldProps> =\n React.memo(function SwitchFieldFn({\n id,\n label,\n value,\n onChange,\n error,\n disabled,\n }: InternalSwitchFieldProps): React.ReactElement {\n return (\n <Switch\n id={id}\n checked={value ?? false}\n onCheckedChange={onChange}\n aria-invalid={error != null || undefined}\n aria-label={label}\n disabled={disabled}\n />\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,MAAM,QAAQ,wCAAwC;AAO/D,OAAO,MAAMC,WAAiE,gBAC5EF,KAAK,CAACG,IAAI,CAAC,UAAuB;EAChCC,EAAE;EACFC,KAAK;EACLC,KAAK;EACLC,QAAQ;EACRC,KAAK;EACLC;AACwB,CAAC,EAAsB;EAC/C,oBACET,KAAA,CAAAU,aAAA,CAACT,MAAM;IACLG,EAAE,EAAEA,EAAG;IACPO,OAAO,EAAEL,KAAK,IAAI,KAAM;IACxBM,eAAe,EAAEL,QAAS;IAC1B,gBAAcC,KAAK,IAAI,IAAI,IAAIK,SAAU;IACzC,cAAYR,KAAM;IAClBI,QAAQ,EAAEA;EAAS,CACpB,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TextAreaField.js","names":["Input","React","useCallback","styles","TEXTAREA_STYLE","resize","TextAreaField","id","value","onChange","error","placeholder","rows","wrap","minLength","maxLength","disabled","renderTextarea","props","createElement","_extends","style","className","osdkBaseInput","onValueChange","render","undefined"],"sources":["TextAreaField.tsx"],"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 { Input } from \"@base-ui/react/input\";\nimport React, { useCallback } from \"react\";\nimport type { TextAreaFieldProps } from \"../FormFieldApi.js\";\nimport styles from \"./BaseInput.module.css\";\n\nconst TEXTAREA_STYLE: React.CSSProperties = { resize: \"vertical\" };\n\nexport function TextAreaField({\n id,\n value,\n onChange,\n error,\n placeholder,\n rows,\n wrap,\n minLength,\n maxLength,\n disabled,\n}: TextAreaFieldProps): React.ReactElement {\n const renderTextarea = useCallback(\n (props: React.ComponentPropsWithRef<\"textarea\">) => (\n <textarea {...props} rows={rows} wrap={wrap} style={TEXTAREA_STYLE} />\n ),\n [rows, wrap],\n );\n\n return (\n <Input\n id={id}\n className={styles.osdkBaseInput}\n value={value ?? \"\"}\n onValueChange={onChange}\n placeholder={placeholder}\n minLength={minLength}\n maxLength={maxLength}\n disabled={disabled}\n render={renderTextarea}\n aria-invalid={error != null || undefined}\n />\n );\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,KAAK,QAAQ,sBAAsB;AAC5C,OAAOC,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAE1C,OAAOC,MAAM,MAAM,wBAAwB;AAE3C,MAAMC,cAAmC,GAAG;EAAEC,MAAM,EAAE;AAAW,CAAC;AAElE,OAAO,SAASC,aAAaA,CAAC;EAC5BC,EAAE;EACFC,KAAK;EACLC,QAAQ;EACRC,KAAK;EACLC,WAAW;EACXC,IAAI;EACJC,IAAI;EACJC,SAAS;EACTC,SAAS;EACTC;AACkB,CAAC,EAAsB;EACzC,MAAMC,cAAc,GAAGf,WAAW,CAC/BgB,KAA8C,iBAC7CjB,KAAA,CAAAkB,aAAA,aAAAC,QAAA,KAAcF,KAAK;IAAEN,IAAI,EAAEA,IAAK;IAACC,IAAI,EAAEA,IAAK;IAACQ,KAAK,EAAEjB;EAAe,EAAE,CACtE,EACD,CAACQ,IAAI,EAAEC,IAAI,CACb,CAAC;EAED,oBACEZ,KAAA,CAAAkB,aAAA,CAACnB,KAAK;IACJO,EAAE,EAAEA,EAAG;IACPe,SAAS,EAAEnB,MAAM,CAACoB,aAAc;IAChCf,KAAK,EAAEA,KAAK,IAAI,EAAG;IACnBgB,aAAa,EAAEf,QAAS;IACxBE,WAAW,EAAEA,WAAY;IACzBG,SAAS,EAAEA,SAAU;IACrBC,SAAS,EAAEA,SAAU;IACrBC,QAAQ,EAAEA,QAAS;IACnBS,MAAM,EAAER,cAAe;IACvB,gBAAcP,KAAK,IAAI,IAAI,IAAIgB;EAAU,CAC1C,CAAC;AAEN","ignoreList":[]}
1
+ {"version":3,"file":"TextAreaField.js","names":["Input","React","useCallback","styles","TEXTAREA_STYLE","resize","TextAreaField","id","value","onChange","error","placeholder","rows","wrap","minLength","maxLength","disabled","renderTextarea","props","createElement","_extends","style","className","osdkBaseInput","onValueChange","render","undefined"],"sources":["TextAreaField.tsx"],"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 { Input } from \"@base-ui/react/input\";\nimport React, { useCallback } from \"react\";\n\nimport type { TextAreaFieldProps } from \"../FormFieldApi.js\";\n\nimport styles from \"./BaseInput.module.css\";\n\nconst TEXTAREA_STYLE: React.CSSProperties = { resize: \"vertical\" };\n\nexport function TextAreaField({\n id,\n value,\n onChange,\n error,\n placeholder,\n rows,\n wrap,\n minLength,\n maxLength,\n disabled,\n}: TextAreaFieldProps): React.ReactElement {\n const renderTextarea = useCallback(\n (props: React.ComponentPropsWithRef<\"textarea\">) => (\n <textarea {...props} rows={rows} wrap={wrap} style={TEXTAREA_STYLE} />\n ),\n [rows, wrap]\n );\n\n return (\n <Input\n id={id}\n className={styles.osdkBaseInput}\n value={value ?? \"\"}\n onValueChange={onChange}\n placeholder={placeholder}\n minLength={minLength}\n maxLength={maxLength}\n disabled={disabled}\n render={renderTextarea}\n aria-invalid={error != null || undefined}\n />\n );\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,KAAK,QAAQ,sBAAsB;AAC5C,OAAOC,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAI1C,OAAOC,MAAM,MAAM,wBAAwB;AAE3C,MAAMC,cAAmC,GAAG;EAAEC,MAAM,EAAE;AAAW,CAAC;AAElE,OAAO,SAASC,aAAaA,CAAC;EAC5BC,EAAE;EACFC,KAAK;EACLC,QAAQ;EACRC,KAAK;EACLC,WAAW;EACXC,IAAI;EACJC,IAAI;EACJC,SAAS;EACTC,SAAS;EACTC;AACkB,CAAC,EAAsB;EACzC,MAAMC,cAAc,GAAGf,WAAW,CAC/BgB,KAA8C,iBAC7CjB,KAAA,CAAAkB,aAAA,aAAAC,QAAA,KAAcF,KAAK;IAAEN,IAAI,EAAEA,IAAK;IAACC,IAAI,EAAEA,IAAK;IAACQ,KAAK,EAAEjB;EAAe,EAAE,CACtE,EACD,CAACQ,IAAI,EAAEC,IAAI,CACb,CAAC;EAED,oBACEZ,KAAA,CAAAkB,aAAA,CAACnB,KAAK;IACJO,EAAE,EAAEA,EAAG;IACPe,SAAS,EAAEnB,MAAM,CAACoB,aAAc;IAChCf,KAAK,EAAEA,KAAK,IAAI,EAAG;IACnBgB,aAAa,EAAEf,QAAS;IACxBE,WAAW,EAAEA,WAAY;IACzBG,SAAS,EAAEA,SAAU;IACrBC,SAAS,EAAEA,SAAU;IACrBC,QAAQ,EAAEA,QAAS;IACnBS,MAAM,EAAER,cAAe;IACvB,gBAAcP,KAAK,IAAI,IAAI,IAAIgB;EAAU,CAC1C,CAAC;AAEN","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TextInputField.js","names":["Input","React","styles","TextInputField","id","value","onChange","error","placeholder","minLength","maxLength","disabled","createElement","className","osdkBaseInput","type","onValueChange","undefined"],"sources":["TextInputField.tsx"],"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 { Input } from \"@base-ui/react/input\";\nimport React from \"react\";\nimport type { TextInputFieldProps } from \"../FormFieldApi.js\";\nimport styles from \"./BaseInput.module.css\";\n\nexport function TextInputField({\n id,\n value,\n onChange,\n error,\n placeholder,\n minLength,\n maxLength,\n disabled,\n}: TextInputFieldProps & { id?: string }): React.ReactElement {\n return (\n <Input\n id={id}\n className={styles.osdkBaseInput}\n type=\"text\"\n value={value ?? \"\"}\n onValueChange={onChange}\n placeholder={placeholder}\n minLength={minLength}\n maxLength={maxLength}\n disabled={disabled}\n aria-invalid={error != null || undefined}\n />\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,KAAK,QAAQ,sBAAsB;AAC5C,OAAOC,KAAK,MAAM,OAAO;AAEzB,OAAOC,MAAM,MAAM,wBAAwB;AAE3C,OAAO,SAASC,cAAcA,CAAC;EAC7BC,EAAE;EACFC,KAAK;EACLC,QAAQ;EACRC,KAAK;EACLC,WAAW;EACXC,SAAS;EACTC,SAAS;EACTC;AACqC,CAAC,EAAsB;EAC5D,oBACEV,KAAA,CAAAW,aAAA,CAACZ,KAAK;IACJI,EAAE,EAAEA,EAAG;IACPS,SAAS,EAAEX,MAAM,CAACY,aAAc;IAChCC,IAAI,EAAC,MAAM;IACXV,KAAK,EAAEA,KAAK,IAAI,EAAG;IACnBW,aAAa,EAAEV,QAAS;IACxBE,WAAW,EAAEA,WAAY;IACzBC,SAAS,EAAEA,SAAU;IACrBC,SAAS,EAAEA,SAAU;IACrBC,QAAQ,EAAEA,QAAS;IACnB,gBAAcJ,KAAK,IAAI,IAAI,IAAIU;EAAU,CAC1C,CAAC;AAEN","ignoreList":[]}
1
+ {"version":3,"file":"TextInputField.js","names":["Input","React","styles","TextInputField","id","value","onChange","error","placeholder","minLength","maxLength","disabled","createElement","className","osdkBaseInput","type","onValueChange","undefined"],"sources":["TextInputField.tsx"],"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 { Input } from \"@base-ui/react/input\";\nimport React from \"react\";\n\nimport type { TextInputFieldProps } from \"../FormFieldApi.js\";\n\nimport styles from \"./BaseInput.module.css\";\n\nexport function TextInputField({\n id,\n value,\n onChange,\n error,\n placeholder,\n minLength,\n maxLength,\n disabled,\n}: TextInputFieldProps & { id?: string }): React.ReactElement {\n return (\n <Input\n id={id}\n className={styles.osdkBaseInput}\n type=\"text\"\n value={value ?? \"\"}\n onValueChange={onChange}\n placeholder={placeholder}\n minLength={minLength}\n maxLength={maxLength}\n disabled={disabled}\n aria-invalid={error != null || undefined}\n />\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,KAAK,QAAQ,sBAAsB;AAC5C,OAAOC,KAAK,MAAM,OAAO;AAIzB,OAAOC,MAAM,MAAM,wBAAwB;AAE3C,OAAO,SAASC,cAAcA,CAAC;EAC7BC,EAAE;EACFC,KAAK;EACLC,QAAQ;EACRC,KAAK;EACLC,WAAW;EACXC,SAAS;EACTC,SAAS;EACTC;AACqC,CAAC,EAAsB;EAC5D,oBACEV,KAAA,CAAAW,aAAA,CAACZ,KAAK;IACJI,EAAE,EAAEA,EAAG;IACPS,SAAS,EAAEX,MAAM,CAACY,aAAc;IAChCC,IAAI,EAAC,MAAM;IACXV,KAAK,EAAEA,KAAK,IAAI,EAAG;IACnBW,aAAa,EAAEV,QAAS;IACxBE,WAAW,EAAEA,WAAY;IACzBC,SAAS,EAAEA,SAAU;IACrBC,SAAS,EAAEA,SAAU;IACrBC,QAAQ,EAAEA,QAAS;IACnB,gBAAcJ,KAAK,IAAI,IAAI,IAAIU;EAAU,CAC1C,CAAC;AAEN","ignoreList":[]}