@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.
- package/CHANGELOG.md +10 -0
- package/build/browser/action-form/ActionForm.js.map +1 -1
- package/build/browser/action-form/ActionFormApi.js.map +1 -1
- package/build/browser/action-form/BaseForm.js +3 -3
- package/build/browser/action-form/BaseForm.js.map +1 -1
- package/build/browser/action-form/FormField.js.map +1 -1
- package/build/browser/action-form/FormFieldApi.js.map +1 -1
- package/build/browser/action-form/FormHeader.js.map +1 -1
- package/build/browser/action-form/FormSection.js.map +1 -1
- package/build/browser/action-form/fields/AsyncDropdownField.js +1 -1
- package/build/browser/action-form/fields/AsyncDropdownField.js.map +1 -1
- package/build/browser/action-form/fields/CustomField.js.map +1 -1
- package/build/browser/action-form/fields/DropdownField.js +2 -2
- package/build/browser/action-form/fields/DropdownField.js.map +1 -1
- package/build/browser/action-form/fields/FieldBridge.js.map +1 -1
- package/build/browser/action-form/fields/FilePickerField.js.map +1 -1
- package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -1
- package/build/browser/action-form/fields/NumberInputField.js.map +1 -1
- package/build/browser/action-form/fields/ObjectSelectField.js.map +1 -1
- package/build/browser/action-form/fields/ObjectSetField.js.map +1 -1
- package/build/browser/action-form/fields/RadioButtonsField.js.map +1 -1
- package/build/browser/action-form/fields/SwitchField.js.map +1 -1
- package/build/browser/action-form/fields/TextAreaField.js.map +1 -1
- package/build/browser/action-form/fields/TextInputField.js.map +1 -1
- package/build/browser/action-form/utils/coerceFieldValue.js.map +1 -1
- package/build/browser/action-form/utils/extractValidationRules.js.map +1 -1
- package/build/browser/action-form/utils/getDefaultFieldDefinitions.js.map +1 -1
- package/build/browser/aip-agent-chat/AipAgentChat.js.map +1 -1
- package/build/browser/aip-agent-chat/BaseAipAgentChat.js +1 -1
- package/build/browser/aip-agent-chat/BaseAipAgentChat.js.map +1 -1
- package/build/browser/aip-agent-chat/components/AipAgentChatComposer.js.map +1 -1
- package/build/browser/aip-agent-chat/components/AipAgentChatLoader.js.map +1 -1
- package/build/browser/aip-agent-chat/components/AipAgentChatMessage.js.map +1 -1
- package/build/browser/aip-agent-chat/components/AipAgentChatMessageList.js +1 -1
- package/build/browser/aip-agent-chat/components/AipAgentChatMessageList.js.map +1 -1
- package/build/browser/aip-agent-chat/components/AipAgentChatModelPicker.js.map +1 -1
- package/build/browser/aip-agent-chat/hooks/useChatAutoScroll.js.map +1 -1
- package/build/browser/base-components/action-button/ActionButton.js.map +1 -1
- package/build/browser/base-components/callout/Callout.js.map +1 -1
- package/build/browser/base-components/checkbox/Checkbox.js.map +1 -1
- package/build/browser/base-components/combobox/Combobox.js.map +1 -1
- package/build/browser/base-components/dialog/Dialog.js.map +1 -1
- package/build/browser/base-components/draggable-list/DraggableList.js +1 -1
- package/build/browser/base-components/draggable-list/DraggableList.js.map +1 -1
- package/build/browser/base-components/icon/BlueprintIcon.js.map +1 -1
- package/build/browser/base-components/search-bar/SearchBar.js.map +1 -1
- package/build/browser/base-components/searchable-menu/SearchableMenu.js.map +1 -1
- package/build/browser/base-components/select/Select.js.map +1 -1
- package/build/browser/base-components/skeleton/SkeletonBar.js.map +1 -1
- package/build/browser/base-components/switch/Switch.js.map +1 -1
- package/build/browser/base-components/tooltip/Tooltip.js.map +1 -1
- package/build/browser/cbac-picker/CbacBanner.js.map +1 -1
- package/build/browser/cbac-picker/CbacBannerPopover.js.map +1 -1
- package/build/browser/cbac-picker/CbacPicker.js.map +1 -1
- package/build/browser/cbac-picker/CbacPickerDialog.js.map +1 -1
- package/build/browser/cbac-picker/base/BaseCbacBanner.js.map +1 -1
- package/build/browser/cbac-picker/base/BaseCbacBannerPopover.js.map +1 -1
- package/build/browser/cbac-picker/base/BaseCbacPicker.js +1 -1
- package/build/browser/cbac-picker/base/BaseCbacPicker.js.map +1 -1
- package/build/browser/cbac-picker/base/BaseCbacPickerDialog.js.map +1 -1
- package/build/browser/cbac-picker/base/CategoryMarkingGroup.js +1 -1
- package/build/browser/cbac-picker/base/CategoryMarkingGroup.js.map +1 -1
- package/build/browser/cbac-picker/base/CbacPickerDialogFooter.js.map +1 -1
- package/build/browser/cbac-picker/base/InfoBanner.js.map +1 -1
- package/build/browser/cbac-picker/base/MarkingButton.js +1 -1
- package/build/browser/cbac-picker/base/MarkingButton.js.map +1 -1
- package/build/browser/cbac-picker/base/MaxClassificationField.js.map +1 -1
- package/build/browser/cbac-picker/base/OverflowButton.js +1 -1
- package/build/browser/cbac-picker/base/OverflowButton.js.map +1 -1
- package/build/browser/cbac-picker/base/OverflowItem.js +1 -1
- package/build/browser/cbac-picker/base/OverflowItem.js.map +1 -1
- package/build/browser/cbac-picker/base/ValidationWarning.js.map +1 -1
- package/build/browser/cbac-picker/base/selectionStateHelpers.js.map +1 -1
- package/build/browser/cbac-picker/useCbacPickerState.js.map +1 -1
- package/build/browser/cbac-picker/useCbacSelection.js.map +1 -1
- package/build/browser/cbac-picker/useConstraintCallout.js.map +1 -1
- package/build/browser/cbac-picker/utils/cbacPickerUtils.js.map +1 -1
- package/build/browser/cbac-picker/utils/errorMessages.js.map +1 -1
- package/build/browser/cbac-picker/utils/selectionLogic.js.map +1 -1
- package/build/browser/cbac-picker/utils/validationMessages.js.map +1 -1
- package/build/browser/document-viewer/DocumentViewer.js +1 -1
- package/build/browser/document-viewer/DocumentViewer.js.map +1 -1
- package/build/browser/document-viewer/DocumentViewerApi.js.map +1 -1
- package/build/browser/document-viewer/TiffDocumentViewer.js +1 -1
- package/build/browser/document-viewer/TiffDocumentViewer.js.map +1 -1
- package/build/browser/document-viewer/hooks/useTiffToPdf.js.map +1 -1
- package/build/browser/email-viewer/BaseEmailViewer.js.map +1 -1
- package/build/browser/email-viewer/EmailViewer.js +1 -1
- package/build/browser/email-viewer/EmailViewer.js.map +1 -1
- package/build/browser/email-viewer/EmailViewerApi.js.map +1 -1
- package/build/browser/email-viewer/parseEmail.js.map +1 -1
- package/build/browser/excel-viewer/BaseExcelViewer.js +1 -0
- package/build/browser/excel-viewer/BaseExcelViewer.js.map +1 -1
- package/build/browser/excel-viewer/ExcelViewer.js +1 -1
- package/build/browser/excel-viewer/ExcelViewer.js.map +1 -1
- package/build/browser/excel-viewer/ExcelViewerApi.js.map +1 -1
- package/build/browser/excel-viewer/parseSpreadsheet.js.map +1 -1
- package/build/browser/filter-list/FilterInput.js.map +1 -1
- package/build/browser/filter-list/FilterList.js.map +1 -1
- package/build/browser/filter-list/FilterListApi.js.map +1 -1
- package/build/browser/filter-list/FilterListItemApi.js.map +1 -1
- package/build/browser/filter-list/base/AddFilterPopover.js +1 -1
- package/build/browser/filter-list/base/AddFilterPopover.js.map +1 -1
- package/build/browser/filter-list/base/BaseFilterList.js +1 -1
- package/build/browser/filter-list/base/BaseFilterList.js.map +1 -1
- package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -1
- package/build/browser/filter-list/base/ExcludeDropdown.js +1 -1
- package/build/browser/filter-list/base/ExcludeDropdown.js.map +1 -1
- package/build/browser/filter-list/base/FilterInputExcludeRow.js.map +1 -1
- package/build/browser/filter-list/base/FilterListContent.js +1 -1
- package/build/browser/filter-list/base/FilterListContent.js.map +1 -1
- package/build/browser/filter-list/base/FilterListHeader.js.map +1 -1
- package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
- package/build/browser/filter-list/base/FilterPopover.js.map +1 -1
- package/build/browser/filter-list/base/SortableFilterListItem.js.map +1 -1
- package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/DateRangeHistogramInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/EmptyStringLabel.js +1 -0
- package/build/browser/filter-list/base/inputs/EmptyStringLabel.js.map +1 -1
- package/build/browser/filter-list/base/inputs/HistogramTooltip.js.map +1 -1
- package/build/browser/filter-list/base/inputs/ListogramInput.js +2 -2
- package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/ListogramSkeleton.js.map +1 -1
- package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/MultiSelectDropdownLayout.js.map +1 -1
- package/build/browser/filter-list/base/inputs/MultiSelectInlineLayout.js.map +1 -1
- package/build/browser/filter-list/base/inputs/MultiSelectInput.js +2 -2
- package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/NoValueLabel.js.map +1 -1
- package/build/browser/filter-list/base/inputs/NullValueWrapper.js.map +1 -1
- package/build/browser/filter-list/base/inputs/NumberRangeInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/OptionLabel.js.map +1 -1
- package/build/browser/filter-list/base/inputs/RangeInput.js +1 -1
- package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/SelectInputSkeleton.js.map +1 -1
- package/build/browser/filter-list/base/inputs/SingleDateInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/SingleSelectInput.js +1 -1
- package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/ToggleInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/comboboxFilter.js.map +1 -1
- package/build/browser/filter-list/base/inputs/createDateHistogramBuckets.js.map +1 -1
- package/build/browser/filter-list/base/inputs/createHistogramBuckets.js.map +1 -1
- package/build/browser/filter-list/hooks/useDualScopeAggregation.js.map +1 -1
- package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
- package/build/browser/filter-list/hooks/useFilterPropertyAggregation.js.map +1 -1
- package/build/browser/filter-list/hooks/useFilterVisibility.js.map +1 -1
- package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -1
- package/build/browser/filter-list/inputs/ContainsTextFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/DateRangeFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/LinkedPropertyInput.js +1 -1
- package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
- package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/MultiDateFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/SingleDateFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/StaticValuesFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/TextTagsFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/TimelineFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/ToggleFilterInput.js.map +1 -1
- package/build/browser/filter-list/types/CustomRendererTypes.js.map +1 -1
- package/build/browser/filter-list/types/KeywordSearchTypes.js.map +1 -1
- package/build/browser/filter-list/types/LinkedFilterTypes.js.map +1 -1
- package/build/browser/filter-list/types/StaticValuesTypes.js.map +1 -1
- package/build/browser/filter-list/utils/aggregationHelpers.js.map +1 -1
- package/build/browser/filter-list/utils/coerceFilterValue.js.map +1 -1
- package/build/browser/filter-list/utils/emptyFilterDisplayState.js.map +1 -1
- package/build/browser/filter-list/utils/filterStateSerialization.js.map +1 -1
- package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -1
- package/build/browser/filter-list/utils/filterValues.js.map +1 -1
- package/build/browser/filter-list/utils/getFilterKey.js.map +1 -1
- package/build/browser/filter-list/utils/getFilterLabel.js.map +1 -1
- package/build/browser/filter-list/utils/narrowObjectSet.js.map +1 -1
- package/build/browser/filter-list/utils/summarizeFilterValue.js.map +1 -1
- package/build/browser/images/image-viewer/BaseImageViewer.js.map +1 -1
- package/build/browser/images/image-viewer/ImageViewer.js.map +1 -1
- package/build/browser/images/image-viewer/ImageViewerApi.js.map +1 -1
- package/build/browser/images/tiff-renderer/TiffRenderer.js +1 -0
- package/build/browser/images/tiff-renderer/TiffRenderer.js.map +1 -1
- package/build/browser/images/tiff-renderer/TiffViewerMedia.js.map +1 -1
- package/build/browser/markdown-renderer/MarkdownRenderer.js.map +1 -1
- package/build/browser/markdown-renderer/MarkdownViewerMedia.js.map +1 -1
- package/build/browser/object-table/CellContextMenu.js.map +1 -1
- package/build/browser/object-table/ColumnConfigDialog.js.map +1 -1
- package/build/browser/object-table/DefaultCellRenderer.js +4 -3
- package/build/browser/object-table/DefaultCellRenderer.js.map +1 -1
- package/build/browser/object-table/EditableCell.js +1 -1
- package/build/browser/object-table/EditableCell.js.map +1 -1
- package/build/browser/object-table/LoadingCell.js.map +1 -1
- package/build/browser/object-table/LoadingRow.js +1 -1
- package/build/browser/object-table/LoadingRow.js.map +1 -1
- package/build/browser/object-table/LoadingStateTable.js +3 -3
- package/build/browser/object-table/LoadingStateTable.js.map +1 -1
- package/build/browser/object-table/MultiColumnSortDialog.js +1 -1
- package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -1
- package/build/browser/object-table/NonIdealState.js.map +1 -1
- package/build/browser/object-table/ObjectTable.js.map +1 -1
- package/build/browser/object-table/ObjectTableApi.js.map +1 -1
- package/build/browser/object-table/SelectionCells.js.map +1 -1
- package/build/browser/object-table/SortableItemsList.js.map +1 -1
- package/build/browser/object-table/Table.js +1 -1
- package/build/browser/object-table/Table.js.map +1 -1
- package/build/browser/object-table/TableBody.js +1 -1
- package/build/browser/object-table/TableBody.js.map +1 -1
- package/build/browser/object-table/TableCell.js +1 -1
- package/build/browser/object-table/TableCell.js.map +1 -1
- package/build/browser/object-table/TableEditContainer.js.map +1 -1
- package/build/browser/object-table/TableHeader.js +1 -1
- package/build/browser/object-table/TableHeader.js.map +1 -1
- package/build/browser/object-table/TableHeaderContent.js.map +1 -1
- package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
- package/build/browser/object-table/TableRow.js.map +1 -1
- package/build/browser/object-table/components/AsyncValueCell.js.map +1 -1
- package/build/browser/object-table/components/CbacMarkingCell.js.map +1 -1
- package/build/browser/object-table/components/DatePickerCellField.js +1 -1
- package/build/browser/object-table/components/DatePickerCellField.js.map +1 -1
- package/build/browser/object-table/components/DropdownCellField.js +1 -1
- package/build/browser/object-table/components/DropdownCellField.js.map +1 -1
- package/build/browser/object-table/components/MandatoryMarkingCell.js.map +1 -1
- package/build/browser/object-table/components/ReadonlyDisplayCell.js.map +1 -1
- package/build/browser/object-table/components/TextInputCellField.js.map +1 -1
- package/build/browser/object-table/hooks/useCellContextMenu.js.map +1 -1
- package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
- package/build/browser/object-table/hooks/useColumnPinning.js.map +1 -1
- package/build/browser/object-table/hooks/useColumnResize.js.map +1 -1
- package/build/browser/object-table/hooks/useColumnVisibility.js.map +1 -1
- package/build/browser/object-table/hooks/useEditableTable.js.map +1 -1
- package/build/browser/object-table/hooks/useFocusedRow.js.map +1 -1
- package/build/browser/object-table/hooks/useFunctionColumnsData.js.map +1 -1
- package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
- package/build/browser/object-table/hooks/useObjectTableSnapshot.js.map +1 -1
- package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
- package/build/browser/object-table/hooks/useSelectionColumn.js.map +1 -1
- package/build/browser/object-table/hooks/useTableSorting.js.map +1 -1
- package/build/browser/object-table/utils/AsyncCellData.js.map +1 -1
- package/build/browser/object-table/utils/PortalTracker.js.map +1 -1
- package/build/browser/object-table/utils/deriveSelectionObjectSet.js.map +1 -1
- package/build/browser/object-table/utils/editableUtils.js.map +1 -1
- package/build/browser/object-table/utils/functionColumns.js.map +1 -1
- package/build/browser/object-table/utils/getColumnPinningStyles.js.map +1 -1
- package/build/browser/object-table/utils/getRowId.js.map +1 -1
- package/build/browser/object-table/utils/objectTableSnapshot.js.map +1 -1
- package/build/browser/object-table/utils/shouldShowEditableCell.js.map +1 -1
- package/build/browser/object-table/utils/types.js.map +1 -1
- package/build/browser/pdf-viewer/PdfRenderer.js.map +1 -1
- package/build/browser/pdf-viewer/PdfViewer.js.map +1 -1
- package/build/browser/pdf-viewer/PdfViewerContext.js.map +1 -1
- package/build/browser/pdf-viewer/components/PdfAnnotationOverlay.js.map +1 -1
- package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -1
- package/build/browser/pdf-viewer/components/PdfViewerContent.js +1 -1
- package/build/browser/pdf-viewer/components/PdfViewerContent.js.map +1 -1
- package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js +1 -1
- package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -1
- package/build/browser/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -1
- package/build/browser/pdf-viewer/components/PdfViewerSidebar.js +1 -1
- package/build/browser/pdf-viewer/components/PdfViewerSidebar.js.map +1 -1
- package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -1
- package/build/browser/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -1
- package/build/browser/pdf-viewer/components/PdfViewerToolbar.js.map +1 -1
- package/build/browser/pdf-viewer/constants.js.map +1 -1
- package/build/browser/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -1
- package/build/browser/pdf-viewer/hooks/usePdfAnnotationsByPage.js.map +1 -1
- package/build/browser/pdf-viewer/hooks/usePdfDocument.js.map +1 -1
- package/build/browser/pdf-viewer/hooks/usePdfFormFields.js.map +1 -1
- package/build/browser/pdf-viewer/hooks/usePdfHighlightMode.js.map +1 -1
- package/build/browser/pdf-viewer/hooks/usePdfOutline.js.map +1 -1
- package/build/browser/pdf-viewer/hooks/usePdfViewer.js.map +1 -1
- package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -1
- package/build/browser/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -1
- package/build/browser/pdf-viewer/hooks/usePdfViewerState.js.map +1 -1
- package/build/browser/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -1
- package/build/browser/public/experimental/action-form.js.map +1 -1
- package/build/browser/public/experimental/cbac-picker.js.map +1 -1
- package/build/browser/public/experimental/document-viewer.js.map +1 -1
- package/build/browser/public/experimental/email-viewer.js.map +1 -1
- package/build/browser/public/experimental/excel-viewer.js.map +1 -1
- package/build/browser/public/experimental/filter-list.js.map +1 -1
- package/build/browser/public/experimental/image-viewer.js.map +1 -1
- package/build/browser/public/experimental/markdown-renderer.js.map +1 -1
- package/build/browser/public/experimental/object-table.js.map +1 -1
- package/build/browser/public/experimental/pdf-viewer.js.map +1 -1
- package/build/browser/public/experimental/tiff-renderer.js.map +1 -1
- package/build/browser/public/experimental/video-viewer.js.map +1 -1
- package/build/browser/public/experimental/xml-viewer.js.map +1 -1
- package/build/browser/shared/ErrorBoundary.js.map +1 -1
- package/build/browser/shared/PortalContainerContext.js.map +1 -1
- package/build/browser/shared/PortalDismissLayer.js.map +1 -1
- package/build/browser/shared/calendar/DateCalendar.js +1 -1
- package/build/browser/shared/calendar/DateCalendar.js.map +1 -1
- package/build/browser/shared/calendar/DatePicker.js +2 -2
- package/build/browser/shared/calendar/DatePicker.js.map +1 -1
- package/build/browser/shared/calendar/DateRangeCalendar.js.map +1 -1
- package/build/browser/shared/calendar/DateRangePicker.js +2 -2
- package/build/browser/shared/calendar/DateRangePicker.js.map +1 -1
- package/build/browser/shared/calendar/LazyDateCalendar.js.map +1 -1
- package/build/browser/shared/calendar/LazyDateRangeCalendar.js.map +1 -1
- package/build/browser/shared/calendar/TimePicker.js.map +1 -1
- package/build/browser/shared/calendar/calendarShared.js.map +1 -1
- package/build/browser/shared/calendar/useDateEditState.js.map +1 -1
- package/build/browser/shared/dateUtils.js.map +1 -1
- package/build/browser/shared/hooks/useAsyncAction.js.map +1 -1
- package/build/browser/shared/hooks/useDebouncedValue.js.map +1 -1
- package/build/browser/shared/hooks/useEventCallback.js.map +1 -1
- package/build/browser/shared/hooks/useInfiniteScroll.js.map +1 -1
- package/build/browser/shared/hooks/useMediaContents.js.map +1 -1
- package/build/browser/theme/OsdkThemeContext.js.map +1 -1
- package/build/browser/theme/OsdkThemeProvider.js.map +1 -1
- package/build/browser/theme/useOsdkTheme.js.map +1 -1
- package/build/browser/theme/useSystemTheme.js.map +1 -1
- package/build/browser/util/UserAgent.js +1 -1
- package/build/browser/util/UserAgent.js.map +1 -1
- package/build/browser/util/withOsdkMetrics.js.map +1 -1
- package/build/browser/video-viewer/BaseVideoViewer.js.map +1 -1
- package/build/browser/video-viewer/VideoViewer.js.map +1 -1
- package/build/browser/video-viewer/VideoViewerApi.js.map +1 -1
- package/build/browser/xml-viewer/BaseXmlViewer.js.map +1 -1
- package/build/browser/xml-viewer/XmlViewer.js.map +1 -1
- package/build/browser/xml-viewer/XmlViewerApi.js.map +1 -1
- package/build/cjs/{DateCalendar-OCDSESQR.cjs → DateCalendar-FCZXD24P.cjs} +6 -6
- package/build/cjs/{DateCalendar-OCDSESQR.cjs.map → DateCalendar-FCZXD24P.cjs.map} +1 -1
- package/build/cjs/{DateCalendar-FTW3OIEP.css → DateCalendar-VBZGPZ5P.css} +39 -39
- package/build/cjs/DateCalendar-VBZGPZ5P.css.map +1 -0
- package/build/cjs/{DateRangeCalendar-I4JHCZAK.css → DateRangeCalendar-2M2I5Q3Z.css} +39 -39
- package/build/cjs/DateRangeCalendar-2M2I5Q3Z.css.map +1 -0
- package/build/cjs/DateRangeCalendar-XN2ZWAFK.cjs +12 -0
- package/build/cjs/{DateRangeCalendar-PHC3VPW3.cjs.map → DateRangeCalendar-XN2ZWAFK.cjs.map} +1 -1
- package/build/cjs/{chunk-DA22W6ZO.cjs → chunk-BE226IHU.cjs} +8 -8
- package/build/cjs/chunk-BE226IHU.cjs.map +1 -0
- package/build/cjs/{chunk-XWT6S3FL.cjs → chunk-BFRUHBWM.cjs} +12 -12
- package/build/cjs/{chunk-XWT6S3FL.cjs.map → chunk-BFRUHBWM.cjs.map} +1 -1
- package/build/cjs/chunk-CXMIRPQU.cjs +11 -0
- package/build/cjs/{chunk-PYOEFNQH.cjs.map → chunk-CXMIRPQU.cjs.map} +1 -1
- package/build/cjs/{chunk-CASYBF4M.cjs → chunk-ENE2RWIL.cjs} +25 -23
- package/build/cjs/chunk-ENE2RWIL.cjs.map +1 -0
- package/build/cjs/{chunk-IHVPE5CD.cjs → chunk-G6AOIKDH.cjs} +66 -66
- package/build/cjs/chunk-G6AOIKDH.cjs.map +1 -0
- package/build/cjs/{chunk-U74WOMFV.cjs → chunk-GJ2KJKWI.cjs} +17 -17
- package/build/cjs/{chunk-U74WOMFV.cjs.map → chunk-GJ2KJKWI.cjs.map} +1 -1
- package/build/cjs/chunk-HBU5ZLVP.cjs +11 -0
- package/build/cjs/{chunk-F4JELV7M.cjs.map → chunk-HBU5ZLVP.cjs.map} +1 -1
- package/build/cjs/{chunk-KNZXFIIH.cjs → chunk-HWWTZKC5.cjs} +24 -24
- package/build/cjs/{chunk-KNZXFIIH.cjs.map → chunk-HWWTZKC5.cjs.map} +1 -1
- package/build/cjs/{chunk-YTDSW5OV.cjs → chunk-IHTYJU2F.cjs} +29 -28
- package/build/cjs/chunk-IHTYJU2F.cjs.map +1 -0
- package/build/cjs/{chunk-5KTGUKJT.cjs → chunk-JCN6P3YW.cjs} +4 -4
- package/build/cjs/{chunk-5KTGUKJT.cjs.map → chunk-JCN6P3YW.cjs.map} +1 -1
- package/build/cjs/{chunk-XK4H7EHE.cjs → chunk-KQ4B2XDH.cjs} +5 -5
- package/build/cjs/chunk-KQ4B2XDH.cjs.map +1 -0
- package/build/cjs/{chunk-IISDOJPR.cjs → chunk-LB3IHFAB.cjs} +2 -2
- package/build/cjs/{chunk-IISDOJPR.cjs.map → chunk-LB3IHFAB.cjs.map} +1 -1
- package/build/cjs/{chunk-PUQBJVFU.cjs → chunk-MUDJXY6I.cjs} +22 -22
- package/build/cjs/{chunk-PUQBJVFU.cjs.map → chunk-MUDJXY6I.cjs.map} +1 -1
- package/build/cjs/chunk-NN5IHTYW.cjs +11 -0
- package/build/cjs/{chunk-W6DWGABB.cjs.map → chunk-NN5IHTYW.cjs.map} +1 -1
- package/build/cjs/{chunk-PKJFOG2Z.cjs → chunk-OISZU73V.cjs} +2 -2
- package/build/cjs/{chunk-PKJFOG2Z.cjs.map → chunk-OISZU73V.cjs.map} +1 -1
- package/build/cjs/chunk-PPVWOEYX.cjs +11 -0
- package/build/cjs/{chunk-VRTFHF24.cjs.map → chunk-PPVWOEYX.cjs.map} +1 -1
- package/build/cjs/{chunk-3SJODG6U.cjs → chunk-S2FQCZAB.cjs} +2 -2
- package/build/cjs/{chunk-3SJODG6U.cjs.map → chunk-S2FQCZAB.cjs.map} +1 -1
- package/build/cjs/{chunk-4VNWCW75.cjs → chunk-V3ZJM4N2.cjs} +16 -16
- package/build/cjs/chunk-V3ZJM4N2.cjs.map +1 -0
- package/build/cjs/{chunk-MMPVBH5H.cjs → chunk-VT7TNOMD.cjs} +24 -21
- package/build/cjs/chunk-VT7TNOMD.cjs.map +1 -0
- package/build/cjs/chunk-WKKN2KJU.cjs +11 -0
- package/build/cjs/{chunk-Q5H4KPSL.cjs.map → chunk-WKKN2KJU.cjs.map} +1 -1
- package/build/cjs/{chunk-WE4REEMW.cjs → chunk-YIBSLDUU.cjs} +3 -3
- package/build/cjs/chunk-YIBSLDUU.cjs.map +1 -0
- package/build/cjs/chunk-YK3PUDSD.cjs +11 -0
- package/build/cjs/{chunk-LGGRMQCE.cjs.map → chunk-YK3PUDSD.cjs.map} +1 -1
- package/build/cjs/public/experimental/action-form.cjs +8 -8
- package/build/cjs/public/experimental/action-form.css +98 -98
- package/build/cjs/public/experimental/action-form.css.map +1 -1
- package/build/cjs/public/experimental/aip-agent-chat.cjs +2 -0
- package/build/cjs/public/experimental/aip-agent-chat.cjs.map +1 -1
- package/build/cjs/public/experimental/cbac-picker.cjs +11 -11
- package/build/cjs/public/experimental/cbac-picker.css +110 -110
- package/build/cjs/public/experimental/cbac-picker.css.map +1 -1
- package/build/cjs/public/experimental/document-viewer.cjs +8 -8
- package/build/cjs/public/experimental/document-viewer.css +72 -72
- package/build/cjs/public/experimental/document-viewer.css.map +1 -1
- package/build/cjs/public/experimental/email-viewer.cjs +5 -5
- package/build/cjs/public/experimental/excel-viewer.cjs +5 -5
- package/build/cjs/public/experimental/filter-list.cjs +18 -18
- package/build/cjs/public/experimental/filter-list.css +225 -225
- package/build/cjs/public/experimental/filter-list.css.map +1 -1
- package/build/cjs/public/experimental/image-viewer.cjs +3 -3
- package/build/cjs/public/experimental/markdown-renderer.cjs +3 -3
- package/build/cjs/public/experimental/object-table.cjs +12 -12
- package/build/cjs/public/experimental/object-table.css +151 -151
- package/build/cjs/public/experimental/object-table.css.map +1 -1
- package/build/cjs/public/experimental/pdf-viewer.cjs +25 -25
- package/build/cjs/public/experimental/pdf-viewer.css +72 -72
- package/build/cjs/public/experimental/pdf-viewer.css.map +1 -1
- package/build/cjs/public/experimental/pdf-viewer.d.cts +1 -1
- package/build/cjs/public/experimental/tiff-renderer.cjs +5 -5
- package/build/cjs/public/experimental/video-viewer.cjs +3 -3
- package/build/cjs/public/experimental/xml-viewer.cjs +3 -3
- package/build/cjs/public/experimental.cjs +86 -86
- package/build/cjs/public/experimental.css +632 -632
- package/build/cjs/public/experimental.css.map +1 -1
- package/build/esm/action-form/ActionForm.js.map +1 -1
- package/build/esm/action-form/ActionFormApi.js.map +1 -1
- package/build/esm/action-form/BaseForm.js +3 -3
- package/build/esm/action-form/BaseForm.js.map +1 -1
- package/build/esm/action-form/FormField.js.map +1 -1
- package/build/esm/action-form/FormFieldApi.js.map +1 -1
- package/build/esm/action-form/FormHeader.js.map +1 -1
- package/build/esm/action-form/FormSection.js.map +1 -1
- package/build/esm/action-form/fields/AsyncDropdownField.js +1 -1
- package/build/esm/action-form/fields/AsyncDropdownField.js.map +1 -1
- package/build/esm/action-form/fields/CustomField.js.map +1 -1
- package/build/esm/action-form/fields/DropdownField.js +2 -2
- package/build/esm/action-form/fields/DropdownField.js.map +1 -1
- package/build/esm/action-form/fields/FieldBridge.js.map +1 -1
- package/build/esm/action-form/fields/FilePickerField.js.map +1 -1
- package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -1
- package/build/esm/action-form/fields/NumberInputField.js.map +1 -1
- package/build/esm/action-form/fields/ObjectSelectField.js.map +1 -1
- package/build/esm/action-form/fields/ObjectSetField.js.map +1 -1
- package/build/esm/action-form/fields/RadioButtonsField.js.map +1 -1
- package/build/esm/action-form/fields/SwitchField.js.map +1 -1
- package/build/esm/action-form/fields/TextAreaField.js.map +1 -1
- package/build/esm/action-form/fields/TextInputField.js.map +1 -1
- package/build/esm/action-form/utils/coerceFieldValue.js.map +1 -1
- package/build/esm/action-form/utils/extractValidationRules.js.map +1 -1
- package/build/esm/action-form/utils/getDefaultFieldDefinitions.js.map +1 -1
- package/build/esm/aip-agent-chat/AipAgentChat.js.map +1 -1
- package/build/esm/aip-agent-chat/BaseAipAgentChat.js +1 -1
- package/build/esm/aip-agent-chat/BaseAipAgentChat.js.map +1 -1
- package/build/esm/aip-agent-chat/components/AipAgentChatComposer.js.map +1 -1
- package/build/esm/aip-agent-chat/components/AipAgentChatLoader.js.map +1 -1
- package/build/esm/aip-agent-chat/components/AipAgentChatMessage.js.map +1 -1
- package/build/esm/aip-agent-chat/components/AipAgentChatMessageList.js +1 -1
- package/build/esm/aip-agent-chat/components/AipAgentChatMessageList.js.map +1 -1
- package/build/esm/aip-agent-chat/components/AipAgentChatModelPicker.js.map +1 -1
- package/build/esm/aip-agent-chat/hooks/useChatAutoScroll.js.map +1 -1
- package/build/esm/base-components/action-button/ActionButton.js.map +1 -1
- package/build/esm/base-components/callout/Callout.js.map +1 -1
- package/build/esm/base-components/checkbox/Checkbox.js.map +1 -1
- package/build/esm/base-components/combobox/Combobox.js.map +1 -1
- package/build/esm/base-components/dialog/Dialog.js.map +1 -1
- package/build/esm/base-components/draggable-list/DraggableList.js +1 -1
- package/build/esm/base-components/draggable-list/DraggableList.js.map +1 -1
- package/build/esm/base-components/icon/BlueprintIcon.js.map +1 -1
- package/build/esm/base-components/search-bar/SearchBar.js.map +1 -1
- package/build/esm/base-components/searchable-menu/SearchableMenu.js.map +1 -1
- package/build/esm/base-components/select/Select.js.map +1 -1
- package/build/esm/base-components/skeleton/SkeletonBar.js.map +1 -1
- package/build/esm/base-components/switch/Switch.js.map +1 -1
- package/build/esm/base-components/tooltip/Tooltip.js.map +1 -1
- package/build/esm/cbac-picker/CbacBanner.js.map +1 -1
- package/build/esm/cbac-picker/CbacBannerPopover.js.map +1 -1
- package/build/esm/cbac-picker/CbacPicker.js.map +1 -1
- package/build/esm/cbac-picker/CbacPickerDialog.js.map +1 -1
- package/build/esm/cbac-picker/base/BaseCbacBanner.js.map +1 -1
- package/build/esm/cbac-picker/base/BaseCbacBannerPopover.js.map +1 -1
- package/build/esm/cbac-picker/base/BaseCbacPicker.js +1 -1
- package/build/esm/cbac-picker/base/BaseCbacPicker.js.map +1 -1
- package/build/esm/cbac-picker/base/BaseCbacPickerDialog.js.map +1 -1
- package/build/esm/cbac-picker/base/CategoryMarkingGroup.js +1 -1
- package/build/esm/cbac-picker/base/CategoryMarkingGroup.js.map +1 -1
- package/build/esm/cbac-picker/base/CbacPickerDialogFooter.js.map +1 -1
- package/build/esm/cbac-picker/base/InfoBanner.js.map +1 -1
- package/build/esm/cbac-picker/base/MarkingButton.js +1 -1
- package/build/esm/cbac-picker/base/MarkingButton.js.map +1 -1
- package/build/esm/cbac-picker/base/MaxClassificationField.js.map +1 -1
- package/build/esm/cbac-picker/base/OverflowButton.js +1 -1
- package/build/esm/cbac-picker/base/OverflowButton.js.map +1 -1
- package/build/esm/cbac-picker/base/OverflowItem.js +1 -1
- package/build/esm/cbac-picker/base/OverflowItem.js.map +1 -1
- package/build/esm/cbac-picker/base/ValidationWarning.js.map +1 -1
- package/build/esm/cbac-picker/base/selectionStateHelpers.js.map +1 -1
- package/build/esm/cbac-picker/useCbacPickerState.js.map +1 -1
- package/build/esm/cbac-picker/useCbacSelection.js.map +1 -1
- package/build/esm/cbac-picker/useConstraintCallout.js.map +1 -1
- package/build/esm/cbac-picker/utils/cbacPickerUtils.js.map +1 -1
- package/build/esm/cbac-picker/utils/errorMessages.js.map +1 -1
- package/build/esm/cbac-picker/utils/selectionLogic.js.map +1 -1
- package/build/esm/cbac-picker/utils/validationMessages.js.map +1 -1
- package/build/esm/document-viewer/DocumentViewer.js +1 -1
- package/build/esm/document-viewer/DocumentViewer.js.map +1 -1
- package/build/esm/document-viewer/DocumentViewerApi.js.map +1 -1
- package/build/esm/document-viewer/TiffDocumentViewer.js +1 -1
- package/build/esm/document-viewer/TiffDocumentViewer.js.map +1 -1
- package/build/esm/document-viewer/hooks/useTiffToPdf.js.map +1 -1
- package/build/esm/email-viewer/BaseEmailViewer.js.map +1 -1
- package/build/esm/email-viewer/EmailViewer.js +1 -1
- package/build/esm/email-viewer/EmailViewer.js.map +1 -1
- package/build/esm/email-viewer/EmailViewerApi.js.map +1 -1
- package/build/esm/email-viewer/parseEmail.js.map +1 -1
- package/build/esm/excel-viewer/BaseExcelViewer.js +1 -0
- package/build/esm/excel-viewer/BaseExcelViewer.js.map +1 -1
- package/build/esm/excel-viewer/ExcelViewer.js +1 -1
- package/build/esm/excel-viewer/ExcelViewer.js.map +1 -1
- package/build/esm/excel-viewer/ExcelViewerApi.js.map +1 -1
- package/build/esm/excel-viewer/parseSpreadsheet.js.map +1 -1
- package/build/esm/filter-list/FilterInput.js.map +1 -1
- package/build/esm/filter-list/FilterList.js.map +1 -1
- package/build/esm/filter-list/FilterListApi.js.map +1 -1
- package/build/esm/filter-list/FilterListItemApi.js.map +1 -1
- package/build/esm/filter-list/base/AddFilterPopover.js +1 -1
- package/build/esm/filter-list/base/AddFilterPopover.js.map +1 -1
- package/build/esm/filter-list/base/BaseFilterList.js +1 -1
- package/build/esm/filter-list/base/BaseFilterList.js.map +1 -1
- package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -1
- package/build/esm/filter-list/base/ExcludeDropdown.js +1 -1
- package/build/esm/filter-list/base/ExcludeDropdown.js.map +1 -1
- package/build/esm/filter-list/base/FilterInputExcludeRow.js.map +1 -1
- package/build/esm/filter-list/base/FilterListContent.js +1 -1
- package/build/esm/filter-list/base/FilterListContent.js.map +1 -1
- package/build/esm/filter-list/base/FilterListHeader.js.map +1 -1
- package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
- package/build/esm/filter-list/base/FilterPopover.js.map +1 -1
- package/build/esm/filter-list/base/SortableFilterListItem.js.map +1 -1
- package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/DateRangeHistogramInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/EmptyStringLabel.js +1 -0
- package/build/esm/filter-list/base/inputs/EmptyStringLabel.js.map +1 -1
- package/build/esm/filter-list/base/inputs/HistogramTooltip.js.map +1 -1
- package/build/esm/filter-list/base/inputs/ListogramInput.js +2 -2
- package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/ListogramSkeleton.js.map +1 -1
- package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/MultiSelectDropdownLayout.js.map +1 -1
- package/build/esm/filter-list/base/inputs/MultiSelectInlineLayout.js.map +1 -1
- package/build/esm/filter-list/base/inputs/MultiSelectInput.js +2 -2
- package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/NoValueLabel.js.map +1 -1
- package/build/esm/filter-list/base/inputs/NullValueWrapper.js.map +1 -1
- package/build/esm/filter-list/base/inputs/NumberRangeInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/OptionLabel.js.map +1 -1
- package/build/esm/filter-list/base/inputs/RangeInput.js +1 -1
- package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/SelectInputSkeleton.js.map +1 -1
- package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/SingleSelectInput.js +1 -1
- package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/ToggleInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/comboboxFilter.js.map +1 -1
- package/build/esm/filter-list/base/inputs/createDateHistogramBuckets.js.map +1 -1
- package/build/esm/filter-list/base/inputs/createHistogramBuckets.js.map +1 -1
- package/build/esm/filter-list/hooks/useDualScopeAggregation.js.map +1 -1
- package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
- package/build/esm/filter-list/hooks/useFilterPropertyAggregation.js.map +1 -1
- package/build/esm/filter-list/hooks/useFilterVisibility.js.map +1 -1
- package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -1
- package/build/esm/filter-list/inputs/ContainsTextFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/DateRangeFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/LinkedPropertyInput.js +1 -1
- package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
- package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/MultiDateFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/SingleDateFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/StaticValuesFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/TextTagsFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/TimelineFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/ToggleFilterInput.js.map +1 -1
- package/build/esm/filter-list/types/CustomRendererTypes.js.map +1 -1
- package/build/esm/filter-list/types/KeywordSearchTypes.js.map +1 -1
- package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -1
- package/build/esm/filter-list/types/StaticValuesTypes.js.map +1 -1
- package/build/esm/filter-list/utils/aggregationHelpers.js.map +1 -1
- package/build/esm/filter-list/utils/coerceFilterValue.js.map +1 -1
- package/build/esm/filter-list/utils/emptyFilterDisplayState.js.map +1 -1
- package/build/esm/filter-list/utils/filterStateSerialization.js.map +1 -1
- package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -1
- package/build/esm/filter-list/utils/filterValues.js.map +1 -1
- package/build/esm/filter-list/utils/getFilterKey.js.map +1 -1
- package/build/esm/filter-list/utils/getFilterLabel.js.map +1 -1
- package/build/esm/filter-list/utils/narrowObjectSet.js.map +1 -1
- package/build/esm/filter-list/utils/summarizeFilterValue.js.map +1 -1
- package/build/esm/images/image-viewer/BaseImageViewer.js.map +1 -1
- package/build/esm/images/image-viewer/ImageViewer.js.map +1 -1
- package/build/esm/images/image-viewer/ImageViewerApi.js.map +1 -1
- package/build/esm/images/tiff-renderer/TiffRenderer.js +1 -0
- package/build/esm/images/tiff-renderer/TiffRenderer.js.map +1 -1
- package/build/esm/images/tiff-renderer/TiffViewerMedia.js.map +1 -1
- package/build/esm/markdown-renderer/MarkdownRenderer.js.map +1 -1
- package/build/esm/markdown-renderer/MarkdownViewerMedia.js.map +1 -1
- package/build/esm/object-table/CellContextMenu.js.map +1 -1
- package/build/esm/object-table/ColumnConfigDialog.js.map +1 -1
- package/build/esm/object-table/DefaultCellRenderer.js +4 -3
- package/build/esm/object-table/DefaultCellRenderer.js.map +1 -1
- package/build/esm/object-table/EditableCell.js +1 -1
- package/build/esm/object-table/EditableCell.js.map +1 -1
- package/build/esm/object-table/LoadingCell.js.map +1 -1
- package/build/esm/object-table/LoadingRow.js +1 -1
- package/build/esm/object-table/LoadingRow.js.map +1 -1
- package/build/esm/object-table/LoadingStateTable.js +3 -3
- package/build/esm/object-table/LoadingStateTable.js.map +1 -1
- package/build/esm/object-table/MultiColumnSortDialog.js +1 -1
- package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -1
- package/build/esm/object-table/NonIdealState.js.map +1 -1
- package/build/esm/object-table/ObjectTable.js.map +1 -1
- package/build/esm/object-table/ObjectTableApi.js.map +1 -1
- package/build/esm/object-table/SelectionCells.js.map +1 -1
- package/build/esm/object-table/SortableItemsList.js.map +1 -1
- package/build/esm/object-table/Table.js +1 -1
- package/build/esm/object-table/Table.js.map +1 -1
- package/build/esm/object-table/TableBody.js +1 -1
- package/build/esm/object-table/TableBody.js.map +1 -1
- package/build/esm/object-table/TableCell.js +1 -1
- package/build/esm/object-table/TableCell.js.map +1 -1
- package/build/esm/object-table/TableEditContainer.js.map +1 -1
- package/build/esm/object-table/TableHeader.js +1 -1
- package/build/esm/object-table/TableHeader.js.map +1 -1
- package/build/esm/object-table/TableHeaderContent.js.map +1 -1
- package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
- package/build/esm/object-table/TableRow.js.map +1 -1
- package/build/esm/object-table/components/AsyncValueCell.js.map +1 -1
- package/build/esm/object-table/components/CbacMarkingCell.js.map +1 -1
- package/build/esm/object-table/components/DatePickerCellField.js +1 -1
- package/build/esm/object-table/components/DatePickerCellField.js.map +1 -1
- package/build/esm/object-table/components/DropdownCellField.js +1 -1
- package/build/esm/object-table/components/DropdownCellField.js.map +1 -1
- package/build/esm/object-table/components/MandatoryMarkingCell.js.map +1 -1
- package/build/esm/object-table/components/ReadonlyDisplayCell.js.map +1 -1
- package/build/esm/object-table/components/TextInputCellField.js.map +1 -1
- package/build/esm/object-table/hooks/useCellContextMenu.js.map +1 -1
- package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
- package/build/esm/object-table/hooks/useColumnPinning.js.map +1 -1
- package/build/esm/object-table/hooks/useColumnResize.js.map +1 -1
- package/build/esm/object-table/hooks/useColumnVisibility.js.map +1 -1
- package/build/esm/object-table/hooks/useEditableTable.js.map +1 -1
- package/build/esm/object-table/hooks/useFocusedRow.js.map +1 -1
- package/build/esm/object-table/hooks/useFunctionColumnsData.js.map +1 -1
- package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
- package/build/esm/object-table/hooks/useObjectTableSnapshot.js.map +1 -1
- package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
- package/build/esm/object-table/hooks/useSelectionColumn.js.map +1 -1
- package/build/esm/object-table/hooks/useTableSorting.js.map +1 -1
- package/build/esm/object-table/utils/AsyncCellData.js.map +1 -1
- package/build/esm/object-table/utils/PortalTracker.js.map +1 -1
- package/build/esm/object-table/utils/deriveSelectionObjectSet.js.map +1 -1
- package/build/esm/object-table/utils/editableUtils.js.map +1 -1
- package/build/esm/object-table/utils/functionColumns.js.map +1 -1
- package/build/esm/object-table/utils/getColumnPinningStyles.js.map +1 -1
- package/build/esm/object-table/utils/getRowId.js.map +1 -1
- package/build/esm/object-table/utils/objectTableSnapshot.js.map +1 -1
- package/build/esm/object-table/utils/shouldShowEditableCell.js.map +1 -1
- package/build/esm/object-table/utils/types.js.map +1 -1
- package/build/esm/pdf-viewer/PdfRenderer.js.map +1 -1
- package/build/esm/pdf-viewer/PdfViewer.js.map +1 -1
- package/build/esm/pdf-viewer/PdfViewerContext.js.map +1 -1
- package/build/esm/pdf-viewer/components/PdfAnnotationOverlay.js.map +1 -1
- package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -1
- package/build/esm/pdf-viewer/components/PdfViewerContent.js +1 -1
- package/build/esm/pdf-viewer/components/PdfViewerContent.js.map +1 -1
- package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js +1 -1
- package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -1
- package/build/esm/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -1
- package/build/esm/pdf-viewer/components/PdfViewerSidebar.js +1 -1
- package/build/esm/pdf-viewer/components/PdfViewerSidebar.js.map +1 -1
- package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -1
- package/build/esm/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -1
- package/build/esm/pdf-viewer/components/PdfViewerToolbar.js.map +1 -1
- package/build/esm/pdf-viewer/constants.js.map +1 -1
- package/build/esm/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -1
- package/build/esm/pdf-viewer/hooks/usePdfAnnotationsByPage.js.map +1 -1
- package/build/esm/pdf-viewer/hooks/usePdfDocument.js.map +1 -1
- package/build/esm/pdf-viewer/hooks/usePdfFormFields.js.map +1 -1
- package/build/esm/pdf-viewer/hooks/usePdfHighlightMode.js.map +1 -1
- package/build/esm/pdf-viewer/hooks/usePdfOutline.js.map +1 -1
- package/build/esm/pdf-viewer/hooks/usePdfViewer.js.map +1 -1
- package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -1
- package/build/esm/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -1
- package/build/esm/pdf-viewer/hooks/usePdfViewerState.js.map +1 -1
- package/build/esm/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -1
- package/build/esm/public/experimental/action-form.js.map +1 -1
- package/build/esm/public/experimental/cbac-picker.js.map +1 -1
- package/build/esm/public/experimental/document-viewer.js.map +1 -1
- package/build/esm/public/experimental/email-viewer.js.map +1 -1
- package/build/esm/public/experimental/excel-viewer.js.map +1 -1
- package/build/esm/public/experimental/filter-list.js.map +1 -1
- package/build/esm/public/experimental/image-viewer.js.map +1 -1
- package/build/esm/public/experimental/markdown-renderer.js.map +1 -1
- package/build/esm/public/experimental/object-table.js.map +1 -1
- package/build/esm/public/experimental/pdf-viewer.js.map +1 -1
- package/build/esm/public/experimental/tiff-renderer.js.map +1 -1
- package/build/esm/public/experimental/video-viewer.js.map +1 -1
- package/build/esm/public/experimental/xml-viewer.js.map +1 -1
- package/build/esm/shared/ErrorBoundary.js.map +1 -1
- package/build/esm/shared/PortalContainerContext.js.map +1 -1
- package/build/esm/shared/PortalDismissLayer.js.map +1 -1
- package/build/esm/shared/calendar/DateCalendar.js +1 -1
- package/build/esm/shared/calendar/DateCalendar.js.map +1 -1
- package/build/esm/shared/calendar/DatePicker.js +2 -2
- package/build/esm/shared/calendar/DatePicker.js.map +1 -1
- package/build/esm/shared/calendar/DateRangeCalendar.js.map +1 -1
- package/build/esm/shared/calendar/DateRangePicker.js +2 -2
- package/build/esm/shared/calendar/DateRangePicker.js.map +1 -1
- package/build/esm/shared/calendar/LazyDateCalendar.js.map +1 -1
- package/build/esm/shared/calendar/LazyDateRangeCalendar.js.map +1 -1
- package/build/esm/shared/calendar/TimePicker.js.map +1 -1
- package/build/esm/shared/calendar/calendarShared.js.map +1 -1
- package/build/esm/shared/calendar/useDateEditState.js.map +1 -1
- package/build/esm/shared/dateUtils.js.map +1 -1
- package/build/esm/shared/hooks/useAsyncAction.js.map +1 -1
- package/build/esm/shared/hooks/useDebouncedValue.js.map +1 -1
- package/build/esm/shared/hooks/useEventCallback.js.map +1 -1
- package/build/esm/shared/hooks/useInfiniteScroll.js.map +1 -1
- package/build/esm/shared/hooks/useMediaContents.js.map +1 -1
- package/build/esm/theme/OsdkThemeContext.js.map +1 -1
- package/build/esm/theme/OsdkThemeProvider.js.map +1 -1
- package/build/esm/theme/useOsdkTheme.js.map +1 -1
- package/build/esm/theme/useSystemTheme.js.map +1 -1
- package/build/esm/util/UserAgent.js +1 -1
- package/build/esm/util/UserAgent.js.map +1 -1
- package/build/esm/util/withOsdkMetrics.js.map +1 -1
- package/build/esm/video-viewer/BaseVideoViewer.js.map +1 -1
- package/build/esm/video-viewer/VideoViewer.js.map +1 -1
- package/build/esm/video-viewer/VideoViewerApi.js.map +1 -1
- package/build/esm/xml-viewer/BaseXmlViewer.js.map +1 -1
- package/build/esm/xml-viewer/XmlViewer.js.map +1 -1
- package/build/esm/xml-viewer/XmlViewerApi.js.map +1 -1
- package/build/types/action-form/ActionForm.d.ts.map +1 -1
- package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
- package/build/types/action-form/BaseForm.d.ts.map +1 -1
- package/build/types/action-form/FormField.d.ts.map +1 -1
- package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
- package/build/types/action-form/FormHeader.d.ts.map +1 -1
- package/build/types/action-form/FormSection.d.ts.map +1 -1
- package/build/types/action-form/fields/AsyncDropdownField.d.ts.map +1 -1
- package/build/types/action-form/fields/CustomField.d.ts.map +1 -1
- package/build/types/action-form/fields/DropdownField.d.ts.map +1 -1
- package/build/types/action-form/fields/FieldBridge.d.ts.map +1 -1
- package/build/types/action-form/fields/FilePickerField.d.ts.map +1 -1
- package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -1
- package/build/types/action-form/fields/NumberInputField.d.ts.map +1 -1
- package/build/types/action-form/fields/ObjectSelectField.d.ts.map +1 -1
- package/build/types/action-form/fields/ObjectSetField.d.ts.map +1 -1
- package/build/types/action-form/fields/RadioButtonsField.d.ts.map +1 -1
- package/build/types/action-form/fields/SwitchField.d.ts.map +1 -1
- package/build/types/action-form/fields/TextAreaField.d.ts.map +1 -1
- package/build/types/action-form/fields/TextInputField.d.ts.map +1 -1
- package/build/types/action-form/utils/extractValidationRules.d.ts.map +1 -1
- package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts.map +1 -1
- package/build/types/aip-agent-chat/AipAgentChat.d.ts.map +1 -1
- package/build/types/aip-agent-chat/BaseAipAgentChat.d.ts.map +1 -1
- package/build/types/aip-agent-chat/components/AipAgentChatComposer.d.ts.map +1 -1
- package/build/types/aip-agent-chat/components/AipAgentChatLoader.d.ts.map +1 -1
- package/build/types/aip-agent-chat/components/AipAgentChatMessage.d.ts.map +1 -1
- package/build/types/aip-agent-chat/components/AipAgentChatMessageList.d.ts.map +1 -1
- package/build/types/aip-agent-chat/components/AipAgentChatModelPicker.d.ts.map +1 -1
- package/build/types/base-components/action-button/ActionButton.d.ts.map +1 -1
- package/build/types/base-components/callout/Callout.d.ts.map +1 -1
- package/build/types/base-components/checkbox/Checkbox.d.ts.map +1 -1
- package/build/types/base-components/combobox/Combobox.d.ts.map +1 -1
- package/build/types/base-components/dialog/Dialog.d.ts.map +1 -1
- package/build/types/base-components/draggable-list/DraggableList.d.ts.map +1 -1
- package/build/types/base-components/search-bar/SearchBar.d.ts.map +1 -1
- package/build/types/base-components/searchable-menu/SearchableMenu.d.ts.map +1 -1
- package/build/types/base-components/select/Select.d.ts.map +1 -1
- package/build/types/base-components/skeleton/SkeletonBar.d.ts.map +1 -1
- package/build/types/base-components/switch/Switch.d.ts.map +1 -1
- package/build/types/base-components/tooltip/Tooltip.d.ts.map +1 -1
- package/build/types/cbac-picker/CbacBanner.d.ts.map +1 -1
- package/build/types/cbac-picker/CbacBannerPopover.d.ts.map +1 -1
- package/build/types/cbac-picker/CbacPicker.d.ts.map +1 -1
- package/build/types/cbac-picker/CbacPickerDialog.d.ts.map +1 -1
- package/build/types/cbac-picker/base/BaseCbacBanner.d.ts.map +1 -1
- package/build/types/cbac-picker/base/BaseCbacBannerPopover.d.ts.map +1 -1
- package/build/types/cbac-picker/base/BaseCbacPicker.d.ts.map +1 -1
- package/build/types/cbac-picker/base/BaseCbacPickerDialog.d.ts.map +1 -1
- package/build/types/cbac-picker/base/CategoryMarkingGroup.d.ts.map +1 -1
- package/build/types/cbac-picker/base/CbacPickerDialogFooter.d.ts.map +1 -1
- package/build/types/cbac-picker/base/InfoBanner.d.ts.map +1 -1
- package/build/types/cbac-picker/base/MarkingButton.d.ts.map +1 -1
- package/build/types/cbac-picker/base/MaxClassificationField.d.ts.map +1 -1
- package/build/types/cbac-picker/base/OverflowButton.d.ts.map +1 -1
- package/build/types/cbac-picker/base/OverflowItem.d.ts.map +1 -1
- package/build/types/cbac-picker/base/ValidationWarning.d.ts.map +1 -1
- package/build/types/cbac-picker/useCbacPickerState.d.ts.map +1 -1
- package/build/types/cbac-picker/useCbacSelection.d.ts.map +1 -1
- package/build/types/cbac-picker/useConstraintCallout.d.ts.map +1 -1
- package/build/types/cbac-picker/utils/errorMessages.d.ts.map +1 -1
- package/build/types/document-viewer/DocumentViewer.d.ts.map +1 -1
- package/build/types/document-viewer/DocumentViewerApi.d.ts.map +1 -1
- package/build/types/document-viewer/TiffDocumentViewer.d.ts.map +1 -1
- package/build/types/document-viewer/hooks/useTiffToPdf.d.ts.map +1 -1
- package/build/types/email-viewer/BaseEmailViewer.d.ts.map +1 -1
- package/build/types/email-viewer/EmailViewer.d.ts.map +1 -1
- package/build/types/email-viewer/EmailViewerApi.d.ts.map +1 -1
- package/build/types/email-viewer/parseEmail.d.ts.map +1 -1
- package/build/types/excel-viewer/BaseExcelViewer.d.ts.map +1 -1
- package/build/types/excel-viewer/ExcelViewer.d.ts.map +1 -1
- package/build/types/excel-viewer/ExcelViewerApi.d.ts.map +1 -1
- package/build/types/excel-viewer/parseSpreadsheet.d.ts.map +1 -1
- package/build/types/filter-list/FilterInput.d.ts.map +1 -1
- package/build/types/filter-list/FilterList.d.ts.map +1 -1
- package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
- package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
- package/build/types/filter-list/base/AddFilterPopover.d.ts.map +1 -1
- package/build/types/filter-list/base/BaseFilterList.d.ts.map +1 -1
- package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -1
- package/build/types/filter-list/base/ExcludeDropdown.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterInputExcludeRow.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterPopover.d.ts.map +1 -1
- package/build/types/filter-list/base/SortableFilterListItem.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/DateRangeHistogramInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/EmptyStringLabel.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/HistogramTooltip.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/ListogramSkeleton.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/MultiDateInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/MultiSelectDropdownLayout.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/MultiSelectInlineLayout.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/NoValueLabel.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/OptionLabel.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/RangeInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/SelectInputSkeleton.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/TextTagsInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/TimelineInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/ToggleInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/createDateHistogramBuckets.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts.map +1 -1
- package/build/types/filter-list/hooks/useDualScopeAggregation.d.ts.map +1 -1
- package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -1
- package/build/types/filter-list/hooks/useFilterPropertyAggregation.d.ts.map +1 -1
- package/build/types/filter-list/hooks/useFilterVisibility.d.ts.map +1 -1
- package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -1
- package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/StaticValuesFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/TimelineFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/ToggleFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/types/CustomRendererTypes.d.ts.map +1 -1
- package/build/types/filter-list/types/KeywordSearchTypes.d.ts.map +1 -1
- package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -1
- package/build/types/filter-list/types/StaticValuesTypes.d.ts.map +1 -1
- package/build/types/filter-list/utils/aggregationHelpers.d.ts.map +1 -1
- package/build/types/filter-list/utils/emptyFilterDisplayState.d.ts.map +1 -1
- package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -1
- package/build/types/filter-list/utils/filterValues.d.ts.map +1 -1
- package/build/types/filter-list/utils/getFilterKey.d.ts.map +1 -1
- package/build/types/filter-list/utils/getFilterLabel.d.ts.map +1 -1
- package/build/types/filter-list/utils/narrowObjectSet.d.ts.map +1 -1
- package/build/types/filter-list/utils/summarizeFilterValue.d.ts.map +1 -1
- package/build/types/images/image-viewer/BaseImageViewer.d.ts.map +1 -1
- package/build/types/images/image-viewer/ImageViewer.d.ts.map +1 -1
- package/build/types/images/image-viewer/ImageViewerApi.d.ts.map +1 -1
- package/build/types/images/tiff-renderer/TiffRenderer.d.ts.map +1 -1
- package/build/types/images/tiff-renderer/TiffViewerMedia.d.ts.map +1 -1
- package/build/types/markdown-renderer/MarkdownRenderer.d.ts.map +1 -1
- package/build/types/markdown-renderer/MarkdownViewerMedia.d.ts.map +1 -1
- package/build/types/object-table/CellContextMenu.d.ts.map +1 -1
- package/build/types/object-table/ColumnConfigDialog.d.ts.map +1 -1
- package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -1
- package/build/types/object-table/EditableCell.d.ts.map +1 -1
- package/build/types/object-table/LoadingCell.d.ts.map +1 -1
- package/build/types/object-table/LoadingRow.d.ts.map +1 -1
- package/build/types/object-table/LoadingStateTable.d.ts.map +1 -1
- package/build/types/object-table/MultiColumnSortDialog.d.ts.map +1 -1
- package/build/types/object-table/NonIdealState.d.ts.map +1 -1
- package/build/types/object-table/ObjectTable.d.ts.map +1 -1
- package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
- package/build/types/object-table/SelectionCells.d.ts.map +1 -1
- package/build/types/object-table/SortableItemsList.d.ts.map +1 -1
- package/build/types/object-table/Table.d.ts.map +1 -1
- package/build/types/object-table/TableBody.d.ts.map +1 -1
- package/build/types/object-table/TableCell.d.ts.map +1 -1
- package/build/types/object-table/TableEditContainer.d.ts.map +1 -1
- package/build/types/object-table/TableHeader.d.ts.map +1 -1
- package/build/types/object-table/TableHeaderContent.d.ts.map +1 -1
- package/build/types/object-table/TableHeaderWithPopover.d.ts.map +1 -1
- package/build/types/object-table/TableRow.d.ts.map +1 -1
- package/build/types/object-table/components/AsyncValueCell.d.ts.map +1 -1
- package/build/types/object-table/components/CbacMarkingCell.d.ts.map +1 -1
- package/build/types/object-table/components/DatePickerCellField.d.ts.map +1 -1
- package/build/types/object-table/components/DropdownCellField.d.ts.map +1 -1
- package/build/types/object-table/components/MandatoryMarkingCell.d.ts.map +1 -1
- package/build/types/object-table/components/ReadonlyDisplayCell.d.ts.map +1 -1
- package/build/types/object-table/components/TextInputCellField.d.ts.map +1 -1
- package/build/types/object-table/hooks/useColumnDefs.d.ts.map +1 -1
- package/build/types/object-table/hooks/useColumnPinning.d.ts.map +1 -1
- package/build/types/object-table/hooks/useColumnVisibility.d.ts.map +1 -1
- package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -1
- package/build/types/object-table/hooks/useFocusedRow.d.ts.map +1 -1
- package/build/types/object-table/hooks/useFunctionColumnsData.d.ts.map +1 -1
- package/build/types/object-table/hooks/useObjectTableData.d.ts.map +1 -1
- package/build/types/object-table/hooks/useObjectTableSnapshot.d.ts.map +1 -1
- package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
- package/build/types/object-table/hooks/useSelectionColumn.d.ts.map +1 -1
- package/build/types/object-table/hooks/useTableSorting.d.ts.map +1 -1
- package/build/types/object-table/utils/AsyncCellData.d.ts.map +1 -1
- package/build/types/object-table/utils/PortalTracker.d.ts.map +1 -1
- package/build/types/object-table/utils/deriveSelectionObjectSet.d.ts.map +1 -1
- package/build/types/object-table/utils/functionColumns.d.ts.map +1 -1
- package/build/types/object-table/utils/getRowId.d.ts.map +1 -1
- package/build/types/object-table/utils/objectTableSnapshot.d.ts.map +1 -1
- package/build/types/object-table/utils/types.d.ts.map +1 -1
- package/build/types/pdf-viewer/PdfRenderer.d.ts.map +1 -1
- package/build/types/pdf-viewer/PdfViewer.d.ts.map +1 -1
- package/build/types/pdf-viewer/PdfViewerContext.d.ts.map +1 -1
- package/build/types/pdf-viewer/components/PdfAnnotationOverlay.d.ts.map +1 -1
- package/build/types/pdf-viewer/components/PdfViewerAnnotationLayer.d.ts.map +1 -1
- package/build/types/pdf-viewer/components/PdfViewerContent.d.ts.map +1 -1
- package/build/types/pdf-viewer/components/PdfViewerOutlineSidebar.d.ts.map +1 -1
- package/build/types/pdf-viewer/components/PdfViewerSearchBar.d.ts.map +1 -1
- package/build/types/pdf-viewer/components/PdfViewerSidebar.d.ts.map +1 -1
- package/build/types/pdf-viewer/components/PdfViewerSidebarHeader.d.ts.map +1 -1
- package/build/types/pdf-viewer/components/PdfViewerThumbnail.d.ts.map +1 -1
- package/build/types/pdf-viewer/components/PdfViewerToolbar.d.ts.map +1 -1
- package/build/types/pdf-viewer/constants.d.ts.map +1 -1
- package/build/types/pdf-viewer/hooks/usePdfAnnotationPortals.d.ts.map +1 -1
- package/build/types/pdf-viewer/hooks/usePdfAnnotationsByPage.d.ts.map +1 -1
- package/build/types/pdf-viewer/hooks/usePdfFormFields.d.ts.map +1 -1
- package/build/types/pdf-viewer/hooks/usePdfHighlightMode.d.ts.map +1 -1
- package/build/types/pdf-viewer/hooks/usePdfOutline.d.ts.map +1 -1
- package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts.map +1 -1
- package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts.map +1 -1
- package/build/types/pdf-viewer/hooks/usePdfViewerSearch.d.ts.map +1 -1
- package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts.map +1 -1
- package/build/types/pdf-viewer/hooks/usePdfViewerSync.d.ts.map +1 -1
- package/build/types/shared/ErrorBoundary.d.ts.map +1 -1
- package/build/types/shared/PortalContainerContext.d.ts.map +1 -1
- package/build/types/shared/PortalDismissLayer.d.ts.map +1 -1
- package/build/types/shared/calendar/DateCalendar.d.ts.map +1 -1
- package/build/types/shared/calendar/DatePicker.d.ts.map +1 -1
- package/build/types/shared/calendar/DateRangeCalendar.d.ts.map +1 -1
- package/build/types/shared/calendar/DateRangePicker.d.ts.map +1 -1
- package/build/types/shared/calendar/LazyDateCalendar.d.ts.map +1 -1
- package/build/types/shared/calendar/LazyDateRangeCalendar.d.ts.map +1 -1
- package/build/types/shared/calendar/TimePicker.d.ts.map +1 -1
- package/build/types/shared/calendar/useDateEditState.d.ts.map +1 -1
- package/build/types/shared/dateUtils.d.ts.map +1 -1
- package/build/types/shared/hooks/useAsyncAction.d.ts.map +1 -1
- package/build/types/shared/hooks/useInfiniteScroll.d.ts.map +1 -1
- package/build/types/theme/OsdkThemeContext.d.ts.map +1 -1
- package/build/types/theme/OsdkThemeProvider.d.ts.map +1 -1
- package/build/types/theme/useOsdkTheme.d.ts.map +1 -1
- package/build/types/theme/useSystemTheme.d.ts.map +1 -1
- package/build/types/util/UserAgent.d.ts.map +1 -1
- package/build/types/util/withOsdkMetrics.d.ts.map +1 -1
- package/build/types/video-viewer/BaseVideoViewer.d.ts.map +1 -1
- package/build/types/video-viewer/VideoViewer.d.ts.map +1 -1
- package/build/types/video-viewer/VideoViewerApi.d.ts.map +1 -1
- package/build/types/xml-viewer/BaseXmlViewer.d.ts.map +1 -1
- package/build/types/xml-viewer/XmlViewer.d.ts.map +1 -1
- package/build/types/xml-viewer/XmlViewerApi.d.ts.map +1 -1
- package/package.json +9 -10
- package/build/cjs/DateCalendar-FTW3OIEP.css.map +0 -1
- package/build/cjs/DateRangeCalendar-I4JHCZAK.css.map +0 -1
- package/build/cjs/DateRangeCalendar-PHC3VPW3.cjs +0 -12
- package/build/cjs/chunk-4VNWCW75.cjs.map +0 -1
- package/build/cjs/chunk-CASYBF4M.cjs.map +0 -1
- package/build/cjs/chunk-DA22W6ZO.cjs.map +0 -1
- package/build/cjs/chunk-F4JELV7M.cjs +0 -11
- package/build/cjs/chunk-IHVPE5CD.cjs.map +0 -1
- package/build/cjs/chunk-LGGRMQCE.cjs +0 -11
- package/build/cjs/chunk-MMPVBH5H.cjs.map +0 -1
- package/build/cjs/chunk-PYOEFNQH.cjs +0 -11
- package/build/cjs/chunk-Q5H4KPSL.cjs +0 -11
- package/build/cjs/chunk-VRTFHF24.cjs +0 -11
- package/build/cjs/chunk-W6DWGABB.cjs +0 -11
- package/build/cjs/chunk-WE4REEMW.cjs.map +0 -1
- package/build/cjs/chunk-XK4H7EHE.cjs.map +0 -1
- package/build/cjs/chunk-YTDSW5OV.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangePicker.js","names":["Input","Popover","classnames","React","useCallback","useId","useRef","useState","formatDateForInput","formatDatetimeForInput","parseDateFromInput","parseDatetimeFromInput","PortalDismissLayer","stopPropagation","commonStyles","styles","LazyDateRangeCalendar","TimePicker","useDateEditState","EMPTY_RANGE","SHARED_INPUT_PROPS","className","osdkDatePickerInput","type","onClick","autoComplete","role","DateRangePicker","memo","id","value","onChange","min","max","placeholderStart","placeholderEnd","allowSingleDayRange","showTime","formatDate","parseDate","portalContainer","modal","disabled","shouldCloseOnSelection","popoverId","triggerRef","startInputRef","endInputRef","popoverRef","isOpen","setIsOpen","skipReopenRef","activeBoundary","setActiveBoundary","startDate","endDate","editFormatFn","displayFormatFn","parseFn","startOnChange","date","isOverlapping","endOnChange","isEditing","isEditingStart","dateValue","startParsedValue","inputError","startInputError","displayedValue","displayedStart","startEditing","beginStartEditing","stopEditing","stopStartEditing","commitAndStopEditing","commitStartAndStopEditing","setInputValue","setStartInputValue","setDateValue","setStartDateValue","isEditingEnd","endParsedValue","endInputError","displayedEnd","beginEndEditing","stopEndEditing","commitEndAndStopEditing","setEndInputValue","setEndDateValue","hasOverlapError","effectiveStart","undefined","effectiveEnd","startInvalid","endInvalid","activeStartDateValue","activeEndDateValue","getActiveInputRef","beginEditing","boundary","handleInputFocus","current","handleStartFocus","handleEndFocus","closePopoverForBoundaryExit","focus","handleStartPointerDown","handleEndPointerDown","handleStartBlur","e","related","relatedTarget","document","activeElement","contains","handleEndBlur","closePopover","blur","handleStartKeyDown","key","preventDefault","shiftKey","handleEndKeyDown","firstButton","querySelector","handleOpenChange","nextOpen","handleRangeSelect","range","newStart","from","newEnd","to","handleStartTimeChange","time","handleEndTimeChange","handleStartFocusBoundary","handleEndFocusBoundary","buttons","querySelectorAll","lastButton","length","calendarSelected","timeFooter","createElement","Fragment","label","sharedInputProps","isPopoverOpen","Root","open","onOpenChange","ref","osdkDateRangeContainer","osdkDatePickerInputWrapper","osdkDateRangeInputWrapper","osdkDatePickerInputWrapperError","Trigger","nativeButton","render","_extends","onValueChange","onFocus","onPointerDown","onBlur","onKeyDown","placeholder","Portal","container","osdkDatePickerDismissLayer","onDismiss","Positioner","anchor","osdkDatePickerPositioner","sideOffset","side","align","Popup","osdkDatePickerPopover","finalFocus","tabIndex","osdkDatePickerFocusBoundary","selected","onSelect","footer","start","end","getTime"],"sources":["DateRangePicker.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 { Input } from \"@base-ui/react/input\";\nimport { Popover } from \"@base-ui/react/popover\";\nimport classnames from \"classnames\";\nimport React, { useCallback, useId, useRef, useState } from \"react\";\nimport type { DateRange as RdpDateRange } from \"react-day-picker\";\nimport {\n formatDateForInput,\n formatDatetimeForInput,\n parseDateFromInput,\n parseDatetimeFromInput,\n} from \"../dateUtils.js\";\nimport {\n type PortalContainer,\n PortalDismissLayer,\n} from \"../PortalDismissLayer.js\";\nimport { stopPropagation } from \"./calendarShared.js\";\nimport commonStyles from \"./DatePickerCommon.module.css\";\nimport styles from \"./DateRangePicker.module.css\";\nimport { LazyDateRangeCalendar } from \"./LazyDateRangeCalendar.js\";\nimport { TimePicker } from \"./TimePicker.js\";\nimport { useDateEditState } from \"./useDateEditState.js\";\n\n/**\n * A date range represented as a start/end tuple. Either element may be\n * `null` when the range is partially selected.\n */\nexport type DateRange = readonly [Date | null, Date | null];\n\n/** Default empty range — both bounds are null. */\nexport const EMPTY_RANGE: DateRange = [null, null];\n\n/**\n * Props for the shared DateRangePicker. Used by filter-list's date-range\n * histogram and action-form's `DATE_RANGE_INPUT` field kind. `id` and\n * `error` are optional so non-form callers can omit them.\n *\n * Renders two text inputs (start / end) with a shared calendar popover\n * supporting range selection.\n */\nexport interface DateRangePickerProps {\n /**\n * The HTML `id` attribute for the start input element. Used for\n * `<label htmlFor>` association in form contexts.\n */\n id?: string;\n\n /**\n * Visual error state for the inputs. Set by form validation in\n * action-form contexts; non-form callers typically omit it.\n */\n error?: string;\n\n /** The currently-selected range, or `null` for empty. */\n value: DateRange | null;\n\n /** Called when the user selects or types a new range. */\n onChange?: (value: DateRange | null) => void;\n\n /** Whether the picker is disabled. */\n disabled?: boolean;\n\n /** The earliest selectable date. */\n min?: Date;\n\n /** The latest selectable date. */\n max?: Date;\n\n /** Whether to show time pickers for both dates. */\n showTime?: boolean;\n\n /** Placeholder text for the start date input. */\n placeholderStart?: string;\n\n /** Placeholder text for the end date input. */\n placeholderEnd?: string;\n\n /** Whether to allow start and end on the same day. @default true */\n allowSingleDayRange?: boolean;\n\n /** Formats a Date for display. Defaults to \"YYYY-MM-DD\". */\n formatDate?: (date: Date) => string;\n\n /** Parses a user-typed string back into a Date. */\n parseDate?: (text: string) => Date | undefined;\n\n /**\n * Element that receives the date range picker portal. Use this when\n * rendering inside modal dialogs so popovers stay in the dialog's\n * stacking and focus context instead of being appended directly to\n * document.body.\n */\n portalContainer?: PortalContainer;\n\n /**\n * Popover modality. Defaults to `\"trap-focus\"`, which traps Tab cycling\n * inside the calendar and renders a transparent dismiss layer over the\n * page. Pass `false` when nesting this picker inside another popover so\n * the inner dismiss layer doesn't intercept clicks intended for the\n * outer popover and base-ui's default outside-click handles dismissal\n * instead.\n */\n modal?: \"trap-focus\" | false;\n}\n\ntype ActiveBoundary = \"start\" | \"end\";\n\n// Shared props for both start/end inputs. role=\"combobox\" because each input\n// triggers a shared popup (the calendar popover) — matching WAI-ARIA combobox pattern.\nconst SHARED_INPUT_PROPS = {\n className: commonStyles.osdkDatePickerInput,\n type: \"text\" as const,\n onClick: stopPropagation,\n autoComplete: \"off\" as const,\n role: \"combobox\" as const,\n \"aria-haspopup\": \"dialog\" as const,\n} as const;\n\nexport const DateRangePicker: React.NamedExoticComponent<\n DateRangePickerProps\n> = React.memo(function DateRangePicker({\n id,\n value,\n onChange,\n min,\n max,\n placeholderStart,\n placeholderEnd,\n allowSingleDayRange = true,\n showTime = false,\n formatDate,\n parseDate,\n portalContainer,\n modal = \"trap-focus\",\n disabled = false,\n}: DateRangePickerProps) {\n const shouldCloseOnSelection = !showTime;\n const popoverId = useId();\n // The range container anchors the shared popover without becoming a trigger.\n // Each input is its own Popover.Trigger so the comboboxes are not nested in an\n // interactive wrapper.\n const triggerRef = useRef<HTMLDivElement>(null);\n const startInputRef = useRef<HTMLInputElement>(null);\n const endInputRef = useRef<HTMLInputElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n\n const [isOpen, setIsOpen] = useState(false);\n // When focus returns to an input after Tab exits the popover boundary, the\n // next input focus should not reopen the calendar before native Tab can\n // continue to the following form field.\n const skipReopenRef = useRef(false);\n // Tracks which input (start/end) owns the shared calendar popover.\n // Used to restore focus to the correct input when Tab-cycling through\n // focus boundaries and when the calendar selects a range endpoint.\n const [activeBoundary, setActiveBoundary] = useState<ActiveBoundary>(\"start\");\n\n const [startDate, endDate] = value ?? EMPTY_RANGE;\n\n // editFormatFn produces a parsable string for typing (e.g. \"2024-01-15\" or \"2024-01-15 14:30\").\n // displayFormatFn produces the idle string. Defaults stay deterministic so\n // users in different browser locales see the same date in form inputs.\n const editFormatFn = showTime ? formatDatetimeForInput : formatDateForInput;\n const displayFormatFn = formatDate\n ?? (showTime ? formatDatetimeForInput : formatDateForInput);\n const parseFn = parseDate\n ?? (showTime ? parseDatetimeFromInput : parseDateFromInput);\n\n // Wrap onChange to handle tuple construction and overlap rejection.\n // Clearing (null) is always allowed; overlap is checked for non-null dates.\n const startOnChange = useCallback(\n (date: Date | null) => {\n if (date != null && isOverlapping(date, endDate, allowSingleDayRange)) {\n return;\n }\n onChange?.([date, endDate ?? null]);\n },\n [endDate, onChange, allowSingleDayRange],\n );\n\n const endOnChange = useCallback(\n (date: Date | null) => {\n if (date != null && isOverlapping(startDate, date, allowSingleDayRange)) {\n return;\n }\n onChange?.([startDate ?? null, date]);\n },\n [startDate, onChange, allowSingleDayRange],\n );\n\n const {\n isEditing: isEditingStart,\n dateValue: startParsedValue,\n inputError: startInputError,\n displayedValue: displayedStart,\n startEditing: beginStartEditing,\n stopEditing: stopStartEditing,\n commitAndStopEditing: commitStartAndStopEditing,\n setInputValue: setStartInputValue,\n setDateValue: setStartDateValue,\n } = useDateEditState({\n value: startDate,\n displayFormatFn,\n editFormatFn,\n parseFn,\n min,\n max,\n onChange: startOnChange,\n });\n const {\n isEditing: isEditingEnd,\n dateValue: endParsedValue,\n inputError: endInputError,\n displayedValue: displayedEnd,\n startEditing: beginEndEditing,\n stopEditing: stopEndEditing,\n commitAndStopEditing: commitEndAndStopEditing,\n setInputValue: setEndInputValue,\n setDateValue: setEndDateValue,\n } = useDateEditState({\n value: endDate,\n displayFormatFn,\n editFormatFn,\n parseFn,\n min,\n max,\n onChange: endOnChange,\n });\n\n // --- Cross-input error: overlapping range (live feedback while typing) ---\n // Blur/Enter handlers prevent overlapping values from being committed,\n // so this only fires during editing for immediate red-border feedback.\n const hasOverlapError = (() => {\n if (!isEditingStart && !isEditingEnd) return false;\n const effectiveStart = isEditingStart\n ? startParsedValue\n : (startDate ?? undefined);\n const effectiveEnd = isEditingEnd\n ? endParsedValue\n : (endDate ?? undefined);\n return isOverlapping(effectiveStart, effectiveEnd, allowSingleDayRange);\n })();\n\n const startInvalid = startInputError != null || hasOverlapError;\n const endInvalid = endInputError != null || hasOverlapError;\n const activeStartDateValue =\n startInputError == null && startParsedValue != null\n ? startParsedValue\n : (startDate ?? undefined);\n const activeEndDateValue = endInputError == null && endParsedValue != null\n ? endParsedValue\n : (endDate ?? undefined);\n\n // --- Focus handlers ---\n\n const getActiveInputRef = useCallback(\n () => activeBoundary === \"start\" ? startInputRef : endInputRef,\n [activeBoundary],\n );\n\n const beginEditing = useCallback(\n (boundary: ActiveBoundary) => {\n if (boundary === \"start\") {\n beginStartEditing();\n } else {\n beginEndEditing();\n }\n setActiveBoundary(boundary);\n },\n [beginStartEditing, beginEndEditing],\n );\n\n const handleInputFocus = useCallback(\n (boundary: ActiveBoundary) => {\n beginEditing(boundary);\n if (skipReopenRef.current) {\n skipReopenRef.current = false;\n return;\n }\n setIsOpen(true);\n },\n [beginEditing],\n );\n\n const handleStartFocus = useCallback(() => {\n handleInputFocus(\"start\");\n }, [handleInputFocus]);\n\n const handleEndFocus = useCallback(() => {\n handleInputFocus(\"end\");\n }, [handleInputFocus]);\n\n const closePopoverForBoundaryExit = useCallback(() => {\n skipReopenRef.current = true;\n setIsOpen(false);\n stopStartEditing();\n stopEndEditing();\n getActiveInputRef().current?.focus();\n }, [getActiveInputRef, stopStartEditing, stopEndEditing]);\n\n const handleStartPointerDown = useCallback(() => {\n // Opening from pointer-down keeps mouse interactions in sync with focus\n // editing before Base UI's later click trigger handler runs.\n startInputRef.current?.focus();\n handleStartFocus();\n }, [handleStartFocus]);\n\n const handleEndPointerDown = useCallback(() => {\n // Opening from pointer-down keeps mouse interactions in sync with focus\n // editing before Base UI's later click trigger handler runs.\n endInputRef.current?.focus();\n handleEndFocus();\n }, [handleEndFocus]);\n\n // --- Blur handlers ---\n\n const handleStartBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n const related = e.relatedTarget ?? document.activeElement;\n if (popoverRef.current?.contains(related as Node)) {\n // Focus moved into the popover portal — the field is still logically\n // active, so suppress the blur from bubbling to parent containers.\n e.stopPropagation();\n return;\n }\n if (endInputRef.current === related) {\n return;\n }\n commitStartAndStopEditing();\n },\n [commitStartAndStopEditing],\n );\n\n const handleEndBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n const related = e.relatedTarget ?? document.activeElement;\n if (popoverRef.current?.contains(related as Node)) {\n e.stopPropagation();\n return;\n }\n if (startInputRef.current === related) {\n return;\n }\n commitEndAndStopEditing();\n },\n [commitEndAndStopEditing],\n );\n\n // --- Popover helpers ---\n\n // Shared close sequence: dismiss the popover, reset both editing states,\n // and blur both inputs so focus doesn't linger after the calendar disappears.\n const closePopover = useCallback(() => {\n setIsOpen(false);\n stopStartEditing();\n stopEndEditing();\n startInputRef.current?.blur();\n endInputRef.current?.blur();\n }, [stopStartEditing, stopEndEditing]);\n\n // --- Keyboard handlers ---\n\n const handleStartKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n commitStartAndStopEditing();\n // Auto-advance to end\n endInputRef.current?.focus();\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n closePopover();\n } else if (e.key === \"Tab\" && e.shiftKey) {\n setIsOpen(false);\n }\n },\n [commitStartAndStopEditing, closePopover],\n );\n\n const handleEndKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n commitEndAndStopEditing();\n closePopover();\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n closePopover();\n } else if (e.key === \"Tab\" && !e.shiftKey && isOpen) {\n // Tab from the end input bridges focus into the popover. The popover\n // doesn't auto-focus on open (to keep the cursor in the input for typing),\n // so we manually focus the first interactive element (nav button or select).\n const firstButton = popoverRef.current?.querySelector<HTMLElement>(\n \"button, select\",\n );\n if (firstButton != null) {\n e.preventDefault();\n firstButton.focus();\n }\n }\n },\n [commitEndAndStopEditing, closePopover, isOpen],\n );\n\n // Called by base-ui when the popover opens or closes (e.g. click outside, Escape).\n const handleOpenChange = useCallback(\n (nextOpen: boolean) => {\n if (nextOpen) {\n setIsOpen(true);\n } else {\n closePopover();\n }\n },\n [closePopover],\n );\n\n // --- Calendar handlers ---\n\n const handleRangeSelect = useCallback(\n (range: RdpDateRange | undefined) => {\n const newStart = range?.from ?? null;\n const newEnd = range?.to ?? null;\n\n onChange?.([newStart, newEnd]);\n\n if (newStart != null && newEnd == null) {\n // Start selected — commit the start and advance to end.\n // displayedValue handles the display format after stopEditing.\n stopStartEditing();\n setActiveBoundary(\"end\");\n endInputRef.current?.focus();\n } else if (\n newStart != null\n && newEnd != null\n && shouldCloseOnSelection\n ) {\n // Full range selected — close and blur.\n closePopover();\n } else if (newStart != null && newEnd != null) {\n // Full range selected but popover stays open (showTime) —\n // inputs remain in editing mode, so update with editFormatFn.\n setStartDateValue(newStart);\n setEndDateValue(newEnd);\n }\n },\n [\n onChange,\n shouldCloseOnSelection,\n closePopover,\n stopStartEditing,\n setStartDateValue,\n setEndDateValue,\n ],\n );\n\n // --- Time handlers ---\n\n const handleStartTimeChange = useCallback(\n (time: Date) => {\n onChange?.([time, endDate ?? null]);\n setStartDateValue(time);\n },\n [endDate, onChange, setStartDateValue],\n );\n\n const handleEndTimeChange = useCallback(\n (time: Date) => {\n onChange?.([startDate ?? null, time]);\n setEndDateValue(time);\n },\n [startDate, onChange, setEndDateValue],\n );\n\n // --- Focus boundary handlers ---\n // Visually-hidden sentinels at the top/bottom of the popover that trap Tab\n // cycling between the text inputs and calendar.\n\n // Start boundary (top): Shift+Tab past the first calendar element redirects\n // focus to whichever input is currently active.\n const handleStartFocusBoundary = useCallback(() => {\n getActiveInputRef().current?.focus();\n }, [getActiveInputRef]);\n\n // End boundary (bottom): Two cases —\n // (1) Tab past the last calendar element (focus came from inside the popover)\n // → close the popover and return focus to the active input so the next\n // native Tab continues to the next form field.\n // (2) Focus entered from outside the popover (e.g. reverse Tab from the page)\n // → redirect to the last interactive element inside the popover.\n const handleEndFocusBoundary = useCallback(\n (e: React.FocusEvent<HTMLDivElement>) => {\n const related = e.relatedTarget ?? document.activeElement;\n if (popoverRef.current?.contains(related as Node)) {\n closePopoverForBoundaryExit();\n } else {\n const buttons = popoverRef.current?.querySelectorAll<HTMLElement>(\n \"button, select\",\n );\n const lastButton = buttons?.[buttons.length - 1];\n lastButton?.focus();\n }\n },\n [closePopoverForBoundaryExit],\n );\n\n // --- Calendar selected range ---\n\n const calendarSelected: RdpDateRange | undefined =\n startDate != null || endDate != null\n ? { from: startDate ?? undefined, to: endDate ?? undefined }\n : undefined;\n\n const timeFooter = showTime\n ? (\n <>\n <TimePicker\n value={activeStartDateValue ?? null}\n onChange={handleStartTimeChange}\n label=\"Start time\"\n />\n <TimePicker\n value={activeEndDateValue ?? null}\n onChange={handleEndTimeChange}\n label=\"End time\"\n />\n </>\n )\n : undefined;\n\n const sharedInputProps = {\n ...SHARED_INPUT_PROPS,\n \"aria-controls\": popoverId,\n };\n const isPopoverOpen = !disabled && isOpen;\n\n // Keep Popover.Trigger on each input itself. Moving it to the range wrapper\n // would make click handling simpler, but it would also nest interactive\n // comboboxes inside an interactive trigger and reintroduce the axe violation.\n return (\n <Popover.Root\n open={isPopoverOpen}\n onOpenChange={handleOpenChange}\n modal={modal}\n >\n <div\n ref={triggerRef}\n className={styles.osdkDateRangeContainer}\n data-disabled={disabled || undefined}\n >\n <div\n className={classnames(\n commonStyles.osdkDatePickerInputWrapper,\n styles.osdkDateRangeInputWrapper,\n startInvalid && commonStyles.osdkDatePickerInputWrapperError,\n )}\n data-disabled={disabled || undefined}\n >\n <Popover.Trigger\n nativeButton={false}\n render={\n <Input\n ref={startInputRef}\n id={id != null ? `${id}-start` : undefined}\n value={displayedStart}\n onValueChange={setStartInputValue}\n disabled={disabled}\n onFocus={handleStartFocus}\n onPointerDown={handleStartPointerDown}\n onBlur={handleStartBlur}\n onKeyDown={handleStartKeyDown}\n placeholder={placeholderStart}\n aria-expanded={isPopoverOpen && activeBoundary === \"start\"}\n aria-label=\"Start date\"\n aria-invalid={startInvalid || undefined}\n {...sharedInputProps}\n />\n }\n />\n </div>\n <div\n className={classnames(\n commonStyles.osdkDatePickerInputWrapper,\n styles.osdkDateRangeInputWrapper,\n endInvalid && commonStyles.osdkDatePickerInputWrapperError,\n )}\n data-disabled={disabled || undefined}\n >\n <Popover.Trigger\n nativeButton={false}\n render={\n <Input\n ref={endInputRef}\n id={id != null ? `${id}-end` : undefined}\n value={displayedEnd}\n onValueChange={setEndInputValue}\n disabled={disabled}\n onBlur={handleEndBlur}\n onKeyDown={handleEndKeyDown}\n onFocus={handleEndFocus}\n onPointerDown={handleEndPointerDown}\n placeholder={placeholderEnd}\n aria-expanded={isPopoverOpen && activeBoundary === \"end\"}\n aria-label=\"End date\"\n aria-invalid={endInvalid || undefined}\n {...sharedInputProps}\n />\n }\n />\n </div>\n </div>\n <Popover.Portal container={portalContainer}>\n <PortalDismissLayer\n className={commonStyles.osdkDatePickerDismissLayer}\n onDismiss={closePopover}\n />\n <Popover.Positioner\n anchor={triggerRef}\n className={commonStyles.osdkDatePickerPositioner}\n sideOffset={4}\n side=\"bottom\"\n align=\"start\"\n >\n <Popover.Popup\n ref={popoverRef}\n className={commonStyles.osdkDatePickerPopover}\n id={popoverId}\n role=\"dialog\"\n aria-label=\"date range picker\"\n // Disable base-ui's automatic focus restoration to the trigger on close.\n // We manage focus ourselves via closePopover() which blurs the inputs.\n finalFocus={false}\n >\n <div\n onFocus={handleStartFocusBoundary}\n tabIndex={0}\n aria-label=\"Start of date range picker dialog\"\n className={commonStyles.osdkDatePickerFocusBoundary}\n />\n <LazyDateRangeCalendar\n selected={calendarSelected}\n onSelect={handleRangeSelect}\n min={min}\n max={max}\n footer={timeFooter}\n />\n <div\n onFocus={handleEndFocusBoundary}\n tabIndex={0}\n aria-label=\"End of date range picker dialog\"\n className={commonStyles.osdkDatePickerFocusBoundary}\n />\n </Popover.Popup>\n </Popover.Positioner>\n </Popover.Portal>\n </Popover.Root>\n );\n});\n\n/** True when the end boundary is before (or same-day when disallowed) the start. */\nfunction isOverlapping(\n start: Date | null | undefined,\n end: Date | null | undefined,\n allowSingleDayRange: boolean,\n): boolean {\n if (start == null || end == null) return false;\n if (!allowSingleDayRange && end.getTime() === start.getTime()) return true;\n return end.getTime() < start.getTime();\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DateRangePicker.js","names":["Input","Popover","classnames","React","useCallback","useId","useRef","useState","formatDateForInput","formatDatetimeForInput","parseDateFromInput","parseDatetimeFromInput","PortalDismissLayer","stopPropagation","LazyDateRangeCalendar","TimePicker","useDateEditState","commonStyles","styles","EMPTY_RANGE","SHARED_INPUT_PROPS","className","osdkDatePickerInput","type","onClick","autoComplete","role","DateRangePicker","memo","id","value","onChange","min","max","placeholderStart","placeholderEnd","allowSingleDayRange","showTime","formatDate","parseDate","portalContainer","modal","disabled","shouldCloseOnSelection","popoverId","triggerRef","startInputRef","endInputRef","popoverRef","isOpen","setIsOpen","skipReopenRef","activeBoundary","setActiveBoundary","startDate","endDate","editFormatFn","displayFormatFn","parseFn","startOnChange","date","isOverlapping","endOnChange","isEditing","isEditingStart","dateValue","startParsedValue","inputError","startInputError","displayedValue","displayedStart","startEditing","beginStartEditing","stopEditing","stopStartEditing","commitAndStopEditing","commitStartAndStopEditing","setInputValue","setStartInputValue","setDateValue","setStartDateValue","isEditingEnd","endParsedValue","endInputError","displayedEnd","beginEndEditing","stopEndEditing","commitEndAndStopEditing","setEndInputValue","setEndDateValue","hasOverlapError","effectiveStart","undefined","effectiveEnd","startInvalid","endInvalid","activeStartDateValue","activeEndDateValue","getActiveInputRef","beginEditing","boundary","handleInputFocus","current","handleStartFocus","handleEndFocus","closePopoverForBoundaryExit","focus","handleStartPointerDown","handleEndPointerDown","handleStartBlur","e","related","relatedTarget","document","activeElement","contains","handleEndBlur","closePopover","blur","handleStartKeyDown","key","preventDefault","shiftKey","handleEndKeyDown","firstButton","querySelector","handleOpenChange","nextOpen","handleRangeSelect","range","newStart","from","newEnd","to","handleStartTimeChange","time","handleEndTimeChange","handleStartFocusBoundary","handleEndFocusBoundary","buttons","querySelectorAll","lastButton","length","calendarSelected","timeFooter","createElement","Fragment","label","sharedInputProps","isPopoverOpen","Root","open","onOpenChange","ref","osdkDateRangeContainer","osdkDatePickerInputWrapper","osdkDateRangeInputWrapper","osdkDatePickerInputWrapperError","Trigger","nativeButton","render","_extends","onValueChange","onFocus","onPointerDown","onBlur","onKeyDown","placeholder","Portal","container","osdkDatePickerDismissLayer","onDismiss","Positioner","anchor","osdkDatePickerPositioner","sideOffset","side","align","Popup","osdkDatePickerPopover","finalFocus","tabIndex","osdkDatePickerFocusBoundary","selected","onSelect","footer","start","end","getTime"],"sources":["DateRangePicker.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 { Input } from \"@base-ui/react/input\";\nimport { Popover } from \"@base-ui/react/popover\";\nimport classnames from \"classnames\";\nimport React, { useCallback, useId, useRef, useState } from \"react\";\nimport type { DateRange as RdpDateRange } from \"react-day-picker\";\n\nimport {\n formatDateForInput,\n formatDatetimeForInput,\n parseDateFromInput,\n parseDatetimeFromInput,\n} from \"../dateUtils.js\";\nimport {\n type PortalContainer,\n PortalDismissLayer,\n} from \"../PortalDismissLayer.js\";\nimport { stopPropagation } from \"./calendarShared.js\";\nimport { LazyDateRangeCalendar } from \"./LazyDateRangeCalendar.js\";\nimport { TimePicker } from \"./TimePicker.js\";\nimport { useDateEditState } from \"./useDateEditState.js\";\n\nimport commonStyles from \"./DatePickerCommon.module.css\";\nimport styles from \"./DateRangePicker.module.css\";\n\n/**\n * A date range represented as a start/end tuple. Either element may be\n * `null` when the range is partially selected.\n */\nexport type DateRange = readonly [Date | null, Date | null];\n\n/** Default empty range — both bounds are null. */\nexport const EMPTY_RANGE: DateRange = [null, null];\n\n/**\n * Props for the shared DateRangePicker. Used by filter-list's date-range\n * histogram and action-form's `DATE_RANGE_INPUT` field kind. `id` and\n * `error` are optional so non-form callers can omit them.\n *\n * Renders two text inputs (start / end) with a shared calendar popover\n * supporting range selection.\n */\nexport interface DateRangePickerProps {\n /**\n * The HTML `id` attribute for the start input element. Used for\n * `<label htmlFor>` association in form contexts.\n */\n id?: string;\n\n /**\n * Visual error state for the inputs. Set by form validation in\n * action-form contexts; non-form callers typically omit it.\n */\n error?: string;\n\n /** The currently-selected range, or `null` for empty. */\n value: DateRange | null;\n\n /** Called when the user selects or types a new range. */\n onChange?: (value: DateRange | null) => void;\n\n /** Whether the picker is disabled. */\n disabled?: boolean;\n\n /** The earliest selectable date. */\n min?: Date;\n\n /** The latest selectable date. */\n max?: Date;\n\n /** Whether to show time pickers for both dates. */\n showTime?: boolean;\n\n /** Placeholder text for the start date input. */\n placeholderStart?: string;\n\n /** Placeholder text for the end date input. */\n placeholderEnd?: string;\n\n /** Whether to allow start and end on the same day. @default true */\n allowSingleDayRange?: boolean;\n\n /** Formats a Date for display. Defaults to \"YYYY-MM-DD\". */\n formatDate?: (date: Date) => string;\n\n /** Parses a user-typed string back into a Date. */\n parseDate?: (text: string) => Date | undefined;\n\n /**\n * Element that receives the date range picker portal. Use this when\n * rendering inside modal dialogs so popovers stay in the dialog's\n * stacking and focus context instead of being appended directly to\n * document.body.\n */\n portalContainer?: PortalContainer;\n\n /**\n * Popover modality. Defaults to `\"trap-focus\"`, which traps Tab cycling\n * inside the calendar and renders a transparent dismiss layer over the\n * page. Pass `false` when nesting this picker inside another popover so\n * the inner dismiss layer doesn't intercept clicks intended for the\n * outer popover and base-ui's default outside-click handles dismissal\n * instead.\n */\n modal?: \"trap-focus\" | false;\n}\n\ntype ActiveBoundary = \"start\" | \"end\";\n\n// Shared props for both start/end inputs. role=\"combobox\" because each input\n// triggers a shared popup (the calendar popover) — matching WAI-ARIA combobox pattern.\nconst SHARED_INPUT_PROPS = {\n className: commonStyles.osdkDatePickerInput,\n type: \"text\" as const,\n onClick: stopPropagation,\n autoComplete: \"off\" as const,\n role: \"combobox\" as const,\n \"aria-haspopup\": \"dialog\" as const,\n} as const;\n\nexport const DateRangePicker: React.NamedExoticComponent<DateRangePickerProps> =\n React.memo(function DateRangePicker({\n id,\n value,\n onChange,\n min,\n max,\n placeholderStart,\n placeholderEnd,\n allowSingleDayRange = true,\n showTime = false,\n formatDate,\n parseDate,\n portalContainer,\n modal = \"trap-focus\",\n disabled = false,\n }: DateRangePickerProps) {\n const shouldCloseOnSelection = !showTime;\n const popoverId = useId();\n // The range container anchors the shared popover without becoming a trigger.\n // Each input is its own Popover.Trigger so the comboboxes are not nested in an\n // interactive wrapper.\n const triggerRef = useRef<HTMLDivElement>(null);\n const startInputRef = useRef<HTMLInputElement>(null);\n const endInputRef = useRef<HTMLInputElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n\n const [isOpen, setIsOpen] = useState(false);\n // When focus returns to an input after Tab exits the popover boundary, the\n // next input focus should not reopen the calendar before native Tab can\n // continue to the following form field.\n const skipReopenRef = useRef(false);\n // Tracks which input (start/end) owns the shared calendar popover.\n // Used to restore focus to the correct input when Tab-cycling through\n // focus boundaries and when the calendar selects a range endpoint.\n const [activeBoundary, setActiveBoundary] =\n useState<ActiveBoundary>(\"start\");\n\n const [startDate, endDate] = value ?? EMPTY_RANGE;\n\n // editFormatFn produces a parsable string for typing (e.g. \"2024-01-15\" or \"2024-01-15 14:30\").\n // displayFormatFn produces the idle string. Defaults stay deterministic so\n // users in different browser locales see the same date in form inputs.\n const editFormatFn = showTime ? formatDatetimeForInput : formatDateForInput;\n const displayFormatFn =\n formatDate ?? (showTime ? formatDatetimeForInput : formatDateForInput);\n const parseFn =\n parseDate ?? (showTime ? parseDatetimeFromInput : parseDateFromInput);\n\n // Wrap onChange to handle tuple construction and overlap rejection.\n // Clearing (null) is always allowed; overlap is checked for non-null dates.\n const startOnChange = useCallback(\n (date: Date | null) => {\n if (date != null && isOverlapping(date, endDate, allowSingleDayRange)) {\n return;\n }\n onChange?.([date, endDate ?? null]);\n },\n [endDate, onChange, allowSingleDayRange]\n );\n\n const endOnChange = useCallback(\n (date: Date | null) => {\n if (\n date != null &&\n isOverlapping(startDate, date, allowSingleDayRange)\n ) {\n return;\n }\n onChange?.([startDate ?? null, date]);\n },\n [startDate, onChange, allowSingleDayRange]\n );\n\n const {\n isEditing: isEditingStart,\n dateValue: startParsedValue,\n inputError: startInputError,\n displayedValue: displayedStart,\n startEditing: beginStartEditing,\n stopEditing: stopStartEditing,\n commitAndStopEditing: commitStartAndStopEditing,\n setInputValue: setStartInputValue,\n setDateValue: setStartDateValue,\n } = useDateEditState({\n value: startDate,\n displayFormatFn,\n editFormatFn,\n parseFn,\n min,\n max,\n onChange: startOnChange,\n });\n const {\n isEditing: isEditingEnd,\n dateValue: endParsedValue,\n inputError: endInputError,\n displayedValue: displayedEnd,\n startEditing: beginEndEditing,\n stopEditing: stopEndEditing,\n commitAndStopEditing: commitEndAndStopEditing,\n setInputValue: setEndInputValue,\n setDateValue: setEndDateValue,\n } = useDateEditState({\n value: endDate,\n displayFormatFn,\n editFormatFn,\n parseFn,\n min,\n max,\n onChange: endOnChange,\n });\n\n // --- Cross-input error: overlapping range (live feedback while typing) ---\n // Blur/Enter handlers prevent overlapping values from being committed,\n // so this only fires during editing for immediate red-border feedback.\n const hasOverlapError = (() => {\n if (!isEditingStart && !isEditingEnd) return false;\n const effectiveStart = isEditingStart\n ? startParsedValue\n : (startDate ?? undefined);\n const effectiveEnd = isEditingEnd\n ? endParsedValue\n : (endDate ?? undefined);\n return isOverlapping(effectiveStart, effectiveEnd, allowSingleDayRange);\n })();\n\n const startInvalid = startInputError != null || hasOverlapError;\n const endInvalid = endInputError != null || hasOverlapError;\n const activeStartDateValue =\n startInputError == null && startParsedValue != null\n ? startParsedValue\n : (startDate ?? undefined);\n const activeEndDateValue =\n endInputError == null && endParsedValue != null\n ? endParsedValue\n : (endDate ?? undefined);\n\n // --- Focus handlers ---\n\n const getActiveInputRef = useCallback(\n () => (activeBoundary === \"start\" ? startInputRef : endInputRef),\n [activeBoundary]\n );\n\n const beginEditing = useCallback(\n (boundary: ActiveBoundary) => {\n if (boundary === \"start\") {\n beginStartEditing();\n } else {\n beginEndEditing();\n }\n setActiveBoundary(boundary);\n },\n [beginStartEditing, beginEndEditing]\n );\n\n const handleInputFocus = useCallback(\n (boundary: ActiveBoundary) => {\n beginEditing(boundary);\n if (skipReopenRef.current) {\n skipReopenRef.current = false;\n return;\n }\n setIsOpen(true);\n },\n [beginEditing]\n );\n\n const handleStartFocus = useCallback(() => {\n handleInputFocus(\"start\");\n }, [handleInputFocus]);\n\n const handleEndFocus = useCallback(() => {\n handleInputFocus(\"end\");\n }, [handleInputFocus]);\n\n const closePopoverForBoundaryExit = useCallback(() => {\n skipReopenRef.current = true;\n setIsOpen(false);\n stopStartEditing();\n stopEndEditing();\n getActiveInputRef().current?.focus();\n }, [getActiveInputRef, stopStartEditing, stopEndEditing]);\n\n const handleStartPointerDown = useCallback(() => {\n // Opening from pointer-down keeps mouse interactions in sync with focus\n // editing before Base UI's later click trigger handler runs.\n startInputRef.current?.focus();\n handleStartFocus();\n }, [handleStartFocus]);\n\n const handleEndPointerDown = useCallback(() => {\n // Opening from pointer-down keeps mouse interactions in sync with focus\n // editing before Base UI's later click trigger handler runs.\n endInputRef.current?.focus();\n handleEndFocus();\n }, [handleEndFocus]);\n\n // --- Blur handlers ---\n\n const handleStartBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n const related = e.relatedTarget ?? document.activeElement;\n if (popoverRef.current?.contains(related as Node)) {\n // Focus moved into the popover portal — the field is still logically\n // active, so suppress the blur from bubbling to parent containers.\n e.stopPropagation();\n return;\n }\n if (endInputRef.current === related) {\n return;\n }\n commitStartAndStopEditing();\n },\n [commitStartAndStopEditing]\n );\n\n const handleEndBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n const related = e.relatedTarget ?? document.activeElement;\n if (popoverRef.current?.contains(related as Node)) {\n e.stopPropagation();\n return;\n }\n if (startInputRef.current === related) {\n return;\n }\n commitEndAndStopEditing();\n },\n [commitEndAndStopEditing]\n );\n\n // --- Popover helpers ---\n\n // Shared close sequence: dismiss the popover, reset both editing states,\n // and blur both inputs so focus doesn't linger after the calendar disappears.\n const closePopover = useCallback(() => {\n setIsOpen(false);\n stopStartEditing();\n stopEndEditing();\n startInputRef.current?.blur();\n endInputRef.current?.blur();\n }, [stopStartEditing, stopEndEditing]);\n\n // --- Keyboard handlers ---\n\n const handleStartKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n commitStartAndStopEditing();\n // Auto-advance to end\n endInputRef.current?.focus();\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n closePopover();\n } else if (e.key === \"Tab\" && e.shiftKey) {\n setIsOpen(false);\n }\n },\n [commitStartAndStopEditing, closePopover]\n );\n\n const handleEndKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n commitEndAndStopEditing();\n closePopover();\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n closePopover();\n } else if (e.key === \"Tab\" && !e.shiftKey && isOpen) {\n // Tab from the end input bridges focus into the popover. The popover\n // doesn't auto-focus on open (to keep the cursor in the input for typing),\n // so we manually focus the first interactive element (nav button or select).\n const firstButton =\n popoverRef.current?.querySelector<HTMLElement>(\"button, select\");\n if (firstButton != null) {\n e.preventDefault();\n firstButton.focus();\n }\n }\n },\n [commitEndAndStopEditing, closePopover, isOpen]\n );\n\n // Called by base-ui when the popover opens or closes (e.g. click outside, Escape).\n const handleOpenChange = useCallback(\n (nextOpen: boolean) => {\n if (nextOpen) {\n setIsOpen(true);\n } else {\n closePopover();\n }\n },\n [closePopover]\n );\n\n // --- Calendar handlers ---\n\n const handleRangeSelect = useCallback(\n (range: RdpDateRange | undefined) => {\n const newStart = range?.from ?? null;\n const newEnd = range?.to ?? null;\n\n onChange?.([newStart, newEnd]);\n\n if (newStart != null && newEnd == null) {\n // Start selected — commit the start and advance to end.\n // displayedValue handles the display format after stopEditing.\n stopStartEditing();\n setActiveBoundary(\"end\");\n endInputRef.current?.focus();\n } else if (\n newStart != null &&\n newEnd != null &&\n shouldCloseOnSelection\n ) {\n // Full range selected — close and blur.\n closePopover();\n } else if (newStart != null && newEnd != null) {\n // Full range selected but popover stays open (showTime) —\n // inputs remain in editing mode, so update with editFormatFn.\n setStartDateValue(newStart);\n setEndDateValue(newEnd);\n }\n },\n [\n onChange,\n shouldCloseOnSelection,\n closePopover,\n stopStartEditing,\n setStartDateValue,\n setEndDateValue,\n ]\n );\n\n // --- Time handlers ---\n\n const handleStartTimeChange = useCallback(\n (time: Date) => {\n onChange?.([time, endDate ?? null]);\n setStartDateValue(time);\n },\n [endDate, onChange, setStartDateValue]\n );\n\n const handleEndTimeChange = useCallback(\n (time: Date) => {\n onChange?.([startDate ?? null, time]);\n setEndDateValue(time);\n },\n [startDate, onChange, setEndDateValue]\n );\n\n // --- Focus boundary handlers ---\n // Visually-hidden sentinels at the top/bottom of the popover that trap Tab\n // cycling between the text inputs and calendar.\n\n // Start boundary (top): Shift+Tab past the first calendar element redirects\n // focus to whichever input is currently active.\n const handleStartFocusBoundary = useCallback(() => {\n getActiveInputRef().current?.focus();\n }, [getActiveInputRef]);\n\n // End boundary (bottom): Two cases —\n // (1) Tab past the last calendar element (focus came from inside the popover)\n // → close the popover and return focus to the active input so the next\n // native Tab continues to the next form field.\n // (2) Focus entered from outside the popover (e.g. reverse Tab from the page)\n // → redirect to the last interactive element inside the popover.\n const handleEndFocusBoundary = useCallback(\n (e: React.FocusEvent<HTMLDivElement>) => {\n const related = e.relatedTarget ?? document.activeElement;\n if (popoverRef.current?.contains(related as Node)) {\n closePopoverForBoundaryExit();\n } else {\n const buttons =\n popoverRef.current?.querySelectorAll<HTMLElement>(\"button, select\");\n const lastButton = buttons?.[buttons.length - 1];\n lastButton?.focus();\n }\n },\n [closePopoverForBoundaryExit]\n );\n\n // --- Calendar selected range ---\n\n const calendarSelected: RdpDateRange | undefined =\n startDate != null || endDate != null\n ? { from: startDate ?? undefined, to: endDate ?? undefined }\n : undefined;\n\n const timeFooter = showTime ? (\n <>\n <TimePicker\n value={activeStartDateValue ?? null}\n onChange={handleStartTimeChange}\n label=\"Start time\"\n />\n <TimePicker\n value={activeEndDateValue ?? null}\n onChange={handleEndTimeChange}\n label=\"End time\"\n />\n </>\n ) : undefined;\n\n const sharedInputProps = {\n ...SHARED_INPUT_PROPS,\n \"aria-controls\": popoverId,\n };\n const isPopoverOpen = !disabled && isOpen;\n\n // Keep Popover.Trigger on each input itself. Moving it to the range wrapper\n // would make click handling simpler, but it would also nest interactive\n // comboboxes inside an interactive trigger and reintroduce the axe violation.\n return (\n <Popover.Root\n open={isPopoverOpen}\n onOpenChange={handleOpenChange}\n modal={modal}\n >\n <div\n ref={triggerRef}\n className={styles.osdkDateRangeContainer}\n data-disabled={disabled || undefined}\n >\n <div\n className={classnames(\n commonStyles.osdkDatePickerInputWrapper,\n styles.osdkDateRangeInputWrapper,\n startInvalid && commonStyles.osdkDatePickerInputWrapperError\n )}\n data-disabled={disabled || undefined}\n >\n <Popover.Trigger\n nativeButton={false}\n render={\n <Input\n ref={startInputRef}\n id={id != null ? `${id}-start` : undefined}\n value={displayedStart}\n onValueChange={setStartInputValue}\n disabled={disabled}\n onFocus={handleStartFocus}\n onPointerDown={handleStartPointerDown}\n onBlur={handleStartBlur}\n onKeyDown={handleStartKeyDown}\n placeholder={placeholderStart}\n aria-expanded={isPopoverOpen && activeBoundary === \"start\"}\n aria-label=\"Start date\"\n aria-invalid={startInvalid || undefined}\n {...sharedInputProps}\n />\n }\n />\n </div>\n <div\n className={classnames(\n commonStyles.osdkDatePickerInputWrapper,\n styles.osdkDateRangeInputWrapper,\n endInvalid && commonStyles.osdkDatePickerInputWrapperError\n )}\n data-disabled={disabled || undefined}\n >\n <Popover.Trigger\n nativeButton={false}\n render={\n <Input\n ref={endInputRef}\n id={id != null ? `${id}-end` : undefined}\n value={displayedEnd}\n onValueChange={setEndInputValue}\n disabled={disabled}\n onBlur={handleEndBlur}\n onKeyDown={handleEndKeyDown}\n onFocus={handleEndFocus}\n onPointerDown={handleEndPointerDown}\n placeholder={placeholderEnd}\n aria-expanded={isPopoverOpen && activeBoundary === \"end\"}\n aria-label=\"End date\"\n aria-invalid={endInvalid || undefined}\n {...sharedInputProps}\n />\n }\n />\n </div>\n </div>\n <Popover.Portal container={portalContainer}>\n <PortalDismissLayer\n className={commonStyles.osdkDatePickerDismissLayer}\n onDismiss={closePopover}\n />\n <Popover.Positioner\n anchor={triggerRef}\n className={commonStyles.osdkDatePickerPositioner}\n sideOffset={4}\n side=\"bottom\"\n align=\"start\"\n >\n <Popover.Popup\n ref={popoverRef}\n className={commonStyles.osdkDatePickerPopover}\n id={popoverId}\n role=\"dialog\"\n aria-label=\"date range picker\"\n // Disable base-ui's automatic focus restoration to the trigger on close.\n // We manage focus ourselves via closePopover() which blurs the inputs.\n finalFocus={false}\n >\n <div\n onFocus={handleStartFocusBoundary}\n tabIndex={0}\n aria-label=\"Start of date range picker dialog\"\n className={commonStyles.osdkDatePickerFocusBoundary}\n />\n <LazyDateRangeCalendar\n selected={calendarSelected}\n onSelect={handleRangeSelect}\n min={min}\n max={max}\n footer={timeFooter}\n />\n <div\n onFocus={handleEndFocusBoundary}\n tabIndex={0}\n aria-label=\"End of date range picker dialog\"\n className={commonStyles.osdkDatePickerFocusBoundary}\n />\n </Popover.Popup>\n </Popover.Positioner>\n </Popover.Portal>\n </Popover.Root>\n );\n });\n\n/** True when the end boundary is before (or same-day when disallowed) the start. */\nfunction isOverlapping(\n start: Date | null | undefined,\n end: Date | null | undefined,\n allowSingleDayRange: boolean\n): boolean {\n if (start == null || end == null) return false;\n if (!allowSingleDayRange && end.getTime() === start.getTime()) return true;\n return end.getTime() < start.getTime();\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LazyDateCalendar.js","names":["React","Suspense","styles","DateCalendarLazy","lazy","LazyDateCalendar","props","createElement","fallback","className","osdkDatePickerFallback"],"sources":["LazyDateCalendar.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, { Suspense } from \"react\";\nimport type { DateCalendarProps } from \"./DateCalendar.js\";\nimport styles from \"./DatePickerCommon.module.css\";\n\nconst DateCalendarLazy = React.lazy(() => import(\"./DateCalendar.js\"));\n\nexport function LazyDateCalendar(props: DateCalendarProps): React.ReactElement {\n return (\n <Suspense fallback={<div className={styles.osdkDatePickerFallback} />}>\n <DateCalendarLazy {...props} />\n </Suspense>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;
|
|
1
|
+
{"version":3,"file":"LazyDateCalendar.js","names":["React","Suspense","styles","DateCalendarLazy","lazy","LazyDateCalendar","props","createElement","fallback","className","osdkDatePickerFallback"],"sources":["LazyDateCalendar.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, { Suspense } from \"react\";\n\nimport type { DateCalendarProps } from \"./DateCalendar.js\";\n\nimport styles from \"./DatePickerCommon.module.css\";\n\nconst DateCalendarLazy = React.lazy(() => import(\"./DateCalendar.js\"));\n\nexport function LazyDateCalendar(props: DateCalendarProps): React.ReactElement {\n return (\n <Suspense fallback={<div className={styles.osdkDatePickerFallback} />}>\n <DateCalendarLazy {...props} />\n </Suspense>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AAIvC,OAAOC,MAAM,MAAM,+BAA+B;AAElD,MAAMC,gBAAgB,gBAAGH,KAAK,CAACI,IAAI,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAEtE,OAAO,SAASC,gBAAgBA,CAACC,KAAwB,EAAsB;EAC7E,oBACEN,KAAA,CAAAO,aAAA,CAACN,QAAQ;IAACO,QAAQ,eAAER,KAAA,CAAAO,aAAA;MAAKE,SAAS,EAAEP,MAAM,CAACQ;IAAuB,CAAE;EAAE,gBACpEV,KAAA,CAAAO,aAAA,CAACJ,gBAAgB,EAAKG,KAAQ,CACtB,CAAC;AAEf","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LazyDateRangeCalendar.js","names":["React","Suspense","styles","DateRangeCalendarLazy","lazy","LazyDateRangeCalendar","props","createElement","fallback","className","osdkDatePickerFallback"],"sources":["LazyDateRangeCalendar.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, { Suspense } from \"react\";\nimport
|
|
1
|
+
{"version":3,"file":"LazyDateRangeCalendar.js","names":["React","Suspense","styles","DateRangeCalendarLazy","lazy","LazyDateRangeCalendar","props","createElement","fallback","className","osdkDatePickerFallback"],"sources":["LazyDateRangeCalendar.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, { Suspense } from \"react\";\n\nimport type { DateRangeCalendarProps } from \"./DateRangeCalendar.js\";\n\nimport styles from \"./DatePickerCommon.module.css\";\n\nconst DateRangeCalendarLazy = React.lazy(\n () => import(\"./DateRangeCalendar.js\")\n);\n\nexport function LazyDateRangeCalendar(\n props: DateRangeCalendarProps\n): React.ReactElement {\n return (\n <Suspense fallback={<div className={styles.osdkDatePickerFallback} />}>\n <DateRangeCalendarLazy {...props} />\n </Suspense>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AAIvC,OAAOC,MAAM,MAAM,+BAA+B;AAElD,MAAMC,qBAAqB,gBAAGH,KAAK,CAACI,IAAI,CACtC,MAAM,MAAM,CAAC,wBAAwB,CACvC,CAAC;AAED,OAAO,SAASC,qBAAqBA,CACnCC,KAA6B,EACT;EACpB,oBACEN,KAAA,CAAAO,aAAA,CAACN,QAAQ;IAACO,QAAQ,eAAER,KAAA,CAAAO,aAAA;MAAKE,SAAS,EAAEP,MAAM,CAACQ;IAAuB,CAAE;EAAE,gBACpEV,KAAA,CAAAO,aAAA,CAACJ,qBAAqB,EAAKG,KAAQ,CAC3B,CAAC;AAEf","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimePicker.js","names":["Input","React","useCallback","useMemo","useState","styles","NUMERIC_INPUT_PATTERN","SEGMENT_LIMITS","hours","min","max","minutes","TimePicker","memo","value","onChange","label","valueTimestamp","getTime","valueSegments","segmentsFromTimestamp","draftSegments","setDraftSegments","prevSegments","setPrevSegments","hourText","minuteText","hourInvalid","isSegmentInvalid","minuteInvalid","handleSegmentChange","segment","nextText","prev","replaceSegmentText","emitChange","nextDate","Date","setHours","handleSegmentBlur","text","parsedSegment","parseNumber","clampedSegment","clampSegment","formatSegment","currentHours","Number","currentMinutes","nextHours","nextMinutes","handleHourChange","handleMinuteChange","handleHourBlur","handleMinuteBlur","createElement","className","osdkTimePickerRoot","role","type","inputMode","pattern","onValueChange","onBlur","osdkTimePickerInput","undefined","osdkTimePickerSeparator","segments","getHours","getMinutes","String","padStart","test","parsed","isNaN","parseSegment","Math"],"sources":["TimePicker.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 { Input } from \"@base-ui/react/input\";\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport styles from \"./TimePicker.module.css\";\n\nexport interface TimePickerProps {\n value: Date | null;\n onChange?: (newTime: Date) => void;\n label?: string;\n}\n\ntype TimeSegment = \"hours\" | \"minutes\";\ntype TimeSegments = Record<TimeSegment, string>;\n\nconst NUMERIC_INPUT_PATTERN = \"[0-9]*\";\n\nconst SEGMENT_LIMITS: Record<TimeSegment, { min: number; max: number }> = {\n hours: { min: 0, max: 23 },\n minutes: { min: 0, max: 59 },\n} as const;\n\nexport const TimePicker: React.NamedExoticComponent<TimePickerProps> = React\n .memo(function TimePickerFn({\n value,\n onChange,\n label = \"Time\",\n }: TimePickerProps): React.ReactElement {\n const valueTimestamp = value?.getTime() ?? null;\n const valueSegments = useMemo(\n () => segmentsFromTimestamp(valueTimestamp),\n [valueTimestamp],\n );\n // draftSegments always holds the displayed text. It is reset to\n // valueSegments whenever the controlled value changes, so the parent\n // Date is the source of truth once an edit is committed or discarded.\n const [draftSegments, setDraftSegments] = useState(valueSegments);\n const [prevSegments, setPrevSegments] = useState(valueSegments);\n if (\n prevSegments.hours !== valueSegments.hours\n || prevSegments.minutes !== valueSegments.minutes\n ) {\n setPrevSegments(valueSegments);\n setDraftSegments(valueSegments);\n }\n\n const hourText = draftSegments.hours;\n const minuteText = draftSegments.minutes;\n const hourInvalid = isSegmentInvalid(hourText, \"hours\");\n const minuteInvalid = isSegmentInvalid(minuteText, \"minutes\");\n\n const handleSegmentChange = useCallback(\n (segment: TimeSegment, nextText: string) => {\n setDraftSegments((prev) =>\n replaceSegmentText(prev, { segment, nextText })\n );\n },\n [],\n );\n\n const emitChange = useCallback(\n (hours: number, minutes: number) => {\n const nextDate = value != null ? new Date(value.getTime()) : new Date();\n nextDate.setHours(hours, minutes, 0, 0);\n onChange?.(nextDate);\n },\n [onChange, value],\n );\n\n const handleSegmentBlur = useCallback(\n (segment: TimeSegment, text: string) => {\n const parsedSegment = parseNumber(text);\n if (parsedSegment == null) {\n // Non-numeric text cannot be converted into a valid time segment, so\n // restore the controlled value instead of emitting an arbitrary Date.\n setDraftSegments(valueSegments);\n return;\n }\n\n const clampedSegment = clampSegment(parsedSegment, segment);\n setDraftSegments((prev) =>\n replaceSegmentText(prev, {\n segment,\n nextText: formatSegment(clampedSegment, segment),\n })\n );\n\n const currentHours = Number(valueSegments.hours);\n const currentMinutes = Number(valueSegments.minutes);\n const nextHours = segment === \"hours\" ? clampedSegment : currentHours;\n const nextMinutes = segment === \"minutes\"\n ? clampedSegment\n : currentMinutes;\n if (nextHours !== currentHours || nextMinutes !== currentMinutes) {\n emitChange(nextHours, nextMinutes);\n }\n },\n [emitChange, valueSegments],\n );\n\n const handleHourChange = useCallback(\n (nextText: string) => handleSegmentChange(\"hours\", nextText),\n [handleSegmentChange],\n );\n const handleMinuteChange = useCallback(\n (nextText: string) => handleSegmentChange(\"minutes\", nextText),\n [handleSegmentChange],\n );\n const handleHourBlur = useCallback(\n () => handleSegmentBlur(\"hours\", hourText),\n [handleSegmentBlur, hourText],\n );\n const handleMinuteBlur = useCallback(\n () => handleSegmentBlur(\"minutes\", minuteText),\n [handleSegmentBlur, minuteText],\n );\n\n return (\n <div\n className={styles.osdkTimePickerRoot}\n role=\"group\"\n aria-label={label}\n >\n <Input\n type=\"text\"\n inputMode=\"numeric\"\n pattern={NUMERIC_INPUT_PATTERN}\n value={hourText}\n onValueChange={handleHourChange}\n onBlur={handleHourBlur}\n className={styles.osdkTimePickerInput}\n aria-label={`${label} hours`}\n aria-invalid={hourInvalid || undefined}\n />\n <span className={styles.osdkTimePickerSeparator} aria-hidden=\"true\">\n :\n </span>\n <Input\n type=\"text\"\n inputMode=\"numeric\"\n pattern={NUMERIC_INPUT_PATTERN}\n value={minuteText}\n onValueChange={handleMinuteChange}\n onBlur={handleMinuteBlur}\n className={styles.osdkTimePickerInput}\n aria-label={`${label} minutes`}\n aria-invalid={minuteInvalid || undefined}\n />\n </div>\n );\n });\n\nfunction replaceSegmentText(\n segments: TimeSegments,\n {\n segment,\n nextText,\n }: {\n segment: TimeSegment;\n nextText: string;\n },\n): TimeSegments {\n return {\n ...segments,\n [segment]: nextText,\n };\n}\n\nfunction segmentsFromTimestamp(valueTimestamp: number | null): TimeSegments {\n if (valueTimestamp == null) {\n return {\n hours: formatSegment(0, \"hours\"),\n minutes: formatSegment(0, \"minutes\"),\n };\n }\n const value = new Date(valueTimestamp);\n return {\n hours: formatSegment(value.getHours(), \"hours\"),\n minutes: formatSegment(value.getMinutes(), \"minutes\"),\n };\n}\n\nfunction formatSegment(value: number, segment: TimeSegment): string {\n // Hours stay compact while minutes stay two digits so the HH:mm control\n // remains easy to scan.\n return segment === \"hours\" ? String(value) : String(value).padStart(2, \"0\");\n}\n\nfunction parseNumber(text: string): number | undefined {\n if (!/^\\d{1,2}$/.test(text)) {\n return undefined;\n }\n const parsed = Number(text);\n return Number.isNaN(parsed) ? undefined : parsed;\n}\n\nfunction parseSegment(text: string, segment: TimeSegment): number | undefined {\n const parsed = parseNumber(text);\n if (parsed == null) {\n return undefined;\n }\n const { min, max } = SEGMENT_LIMITS[segment];\n return parsed >= min && parsed <= max ? parsed : undefined;\n}\n\nfunction isSegmentInvalid(text: string, segment: TimeSegment): boolean {\n return parseSegment(text, segment) == null;\n}\n\nfunction clampSegment(value: number, segment: TimeSegment): number {\n const { min, max } = SEGMENT_LIMITS[segment];\n return Math.min(Math.max(value, min), max);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TimePicker.js","names":["Input","React","useCallback","useMemo","useState","styles","NUMERIC_INPUT_PATTERN","SEGMENT_LIMITS","hours","min","max","minutes","TimePicker","memo","value","onChange","label","valueTimestamp","getTime","valueSegments","segmentsFromTimestamp","draftSegments","setDraftSegments","prevSegments","setPrevSegments","hourText","minuteText","hourInvalid","isSegmentInvalid","minuteInvalid","handleSegmentChange","segment","nextText","prev","replaceSegmentText","emitChange","nextDate","Date","setHours","handleSegmentBlur","text","parsedSegment","parseNumber","clampedSegment","clampSegment","formatSegment","currentHours","Number","currentMinutes","nextHours","nextMinutes","handleHourChange","handleMinuteChange","handleHourBlur","handleMinuteBlur","createElement","className","osdkTimePickerRoot","role","type","inputMode","pattern","onValueChange","onBlur","osdkTimePickerInput","undefined","osdkTimePickerSeparator","segments","getHours","getMinutes","String","padStart","test","parsed","isNaN","parseSegment","Math"],"sources":["TimePicker.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 { Input } from \"@base-ui/react/input\";\nimport React, { useCallback, useMemo, useState } from \"react\";\n\nimport styles from \"./TimePicker.module.css\";\n\nexport interface TimePickerProps {\n value: Date | null;\n onChange?: (newTime: Date) => void;\n label?: string;\n}\n\ntype TimeSegment = \"hours\" | \"minutes\";\ntype TimeSegments = Record<TimeSegment, string>;\n\nconst NUMERIC_INPUT_PATTERN = \"[0-9]*\";\n\nconst SEGMENT_LIMITS: Record<TimeSegment, { min: number; max: number }> = {\n hours: { min: 0, max: 23 },\n minutes: { min: 0, max: 59 },\n} as const;\n\nexport const TimePicker: React.NamedExoticComponent<TimePickerProps> =\n React.memo(function TimePickerFn({\n value,\n onChange,\n label = \"Time\",\n }: TimePickerProps): React.ReactElement {\n const valueTimestamp = value?.getTime() ?? null;\n const valueSegments = useMemo(\n () => segmentsFromTimestamp(valueTimestamp),\n [valueTimestamp]\n );\n // draftSegments always holds the displayed text. It is reset to\n // valueSegments whenever the controlled value changes, so the parent\n // Date is the source of truth once an edit is committed or discarded.\n const [draftSegments, setDraftSegments] = useState(valueSegments);\n const [prevSegments, setPrevSegments] = useState(valueSegments);\n if (\n prevSegments.hours !== valueSegments.hours ||\n prevSegments.minutes !== valueSegments.minutes\n ) {\n setPrevSegments(valueSegments);\n setDraftSegments(valueSegments);\n }\n\n const hourText = draftSegments.hours;\n const minuteText = draftSegments.minutes;\n const hourInvalid = isSegmentInvalid(hourText, \"hours\");\n const minuteInvalid = isSegmentInvalid(minuteText, \"minutes\");\n\n const handleSegmentChange = useCallback(\n (segment: TimeSegment, nextText: string) => {\n setDraftSegments((prev) =>\n replaceSegmentText(prev, { segment, nextText })\n );\n },\n []\n );\n\n const emitChange = useCallback(\n (hours: number, minutes: number) => {\n const nextDate = value != null ? new Date(value.getTime()) : new Date();\n nextDate.setHours(hours, minutes, 0, 0);\n onChange?.(nextDate);\n },\n [onChange, value]\n );\n\n const handleSegmentBlur = useCallback(\n (segment: TimeSegment, text: string) => {\n const parsedSegment = parseNumber(text);\n if (parsedSegment == null) {\n // Non-numeric text cannot be converted into a valid time segment, so\n // restore the controlled value instead of emitting an arbitrary Date.\n setDraftSegments(valueSegments);\n return;\n }\n\n const clampedSegment = clampSegment(parsedSegment, segment);\n setDraftSegments((prev) =>\n replaceSegmentText(prev, {\n segment,\n nextText: formatSegment(clampedSegment, segment),\n })\n );\n\n const currentHours = Number(valueSegments.hours);\n const currentMinutes = Number(valueSegments.minutes);\n const nextHours = segment === \"hours\" ? clampedSegment : currentHours;\n const nextMinutes =\n segment === \"minutes\" ? clampedSegment : currentMinutes;\n if (nextHours !== currentHours || nextMinutes !== currentMinutes) {\n emitChange(nextHours, nextMinutes);\n }\n },\n [emitChange, valueSegments]\n );\n\n const handleHourChange = useCallback(\n (nextText: string) => handleSegmentChange(\"hours\", nextText),\n [handleSegmentChange]\n );\n const handleMinuteChange = useCallback(\n (nextText: string) => handleSegmentChange(\"minutes\", nextText),\n [handleSegmentChange]\n );\n const handleHourBlur = useCallback(\n () => handleSegmentBlur(\"hours\", hourText),\n [handleSegmentBlur, hourText]\n );\n const handleMinuteBlur = useCallback(\n () => handleSegmentBlur(\"minutes\", minuteText),\n [handleSegmentBlur, minuteText]\n );\n\n return (\n <div\n className={styles.osdkTimePickerRoot}\n role=\"group\"\n aria-label={label}\n >\n <Input\n type=\"text\"\n inputMode=\"numeric\"\n pattern={NUMERIC_INPUT_PATTERN}\n value={hourText}\n onValueChange={handleHourChange}\n onBlur={handleHourBlur}\n className={styles.osdkTimePickerInput}\n aria-label={`${label} hours`}\n aria-invalid={hourInvalid || undefined}\n />\n <span className={styles.osdkTimePickerSeparator} aria-hidden=\"true\">\n :\n </span>\n <Input\n type=\"text\"\n inputMode=\"numeric\"\n pattern={NUMERIC_INPUT_PATTERN}\n value={minuteText}\n onValueChange={handleMinuteChange}\n onBlur={handleMinuteBlur}\n className={styles.osdkTimePickerInput}\n aria-label={`${label} minutes`}\n aria-invalid={minuteInvalid || undefined}\n />\n </div>\n );\n });\n\nfunction replaceSegmentText(\n segments: TimeSegments,\n {\n segment,\n nextText,\n }: {\n segment: TimeSegment;\n nextText: string;\n }\n): TimeSegments {\n return {\n ...segments,\n [segment]: nextText,\n };\n}\n\nfunction segmentsFromTimestamp(valueTimestamp: number | null): TimeSegments {\n if (valueTimestamp == null) {\n return {\n hours: formatSegment(0, \"hours\"),\n minutes: formatSegment(0, \"minutes\"),\n };\n }\n const value = new Date(valueTimestamp);\n return {\n hours: formatSegment(value.getHours(), \"hours\"),\n minutes: formatSegment(value.getMinutes(), \"minutes\"),\n };\n}\n\nfunction formatSegment(value: number, segment: TimeSegment): string {\n // Hours stay compact while minutes stay two digits so the HH:mm control\n // remains easy to scan.\n return segment === \"hours\" ? String(value) : String(value).padStart(2, \"0\");\n}\n\nfunction parseNumber(text: string): number | undefined {\n if (!/^\\d{1,2}$/.test(text)) {\n return undefined;\n }\n const parsed = Number(text);\n return Number.isNaN(parsed) ? undefined : parsed;\n}\n\nfunction parseSegment(text: string, segment: TimeSegment): number | undefined {\n const parsed = parseNumber(text);\n if (parsed == null) {\n return undefined;\n }\n const { min, max } = SEGMENT_LIMITS[segment];\n return parsed >= min && parsed <= max ? parsed : undefined;\n}\n\nfunction isSegmentInvalid(text: string, segment: TimeSegment): boolean {\n return parseSegment(text, segment) == null;\n}\n\nfunction clampSegment(value: number, segment: TimeSegment): number {\n const { min, max } = SEGMENT_LIMITS[segment];\n return Math.min(Math.max(value, min), max);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendarShared.js","names":["DEFAULT_FROM_YEAR","Date","getFullYear","DEFAULT_TO_YEAR","buildDisabledMatchers","min","max","matchers","push","before","after","stopPropagation","e","preventBaseUIHandler"],"sources":["calendarShared.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Shared constants and utilities for DateCalendar, DateRangeCalendar,\n * DatePicker, and DateRangePicker.\n */\n\nimport type React from \"react\";\nimport type { DateAfter, DateBefore, Matcher } from \"react-day-picker\";\n\n/** Fallback year range for the month/year dropdown when no min/max is provided. */\nexport const DEFAULT_FROM_YEAR: number = new Date().getFullYear() - 10;\nexport const DEFAULT_TO_YEAR: number = new Date().getFullYear() + 10;\n\n/**\n * Builds the `disabled` matcher array for react-day-picker from optional\n * min/max date constraints. Dates before min or after max are disabled.\n */\nexport function buildDisabledMatchers(\n min: Date | undefined,\n max: Date | undefined
|
|
1
|
+
{"version":3,"file":"calendarShared.js","names":["DEFAULT_FROM_YEAR","Date","getFullYear","DEFAULT_TO_YEAR","buildDisabledMatchers","min","max","matchers","push","before","after","stopPropagation","e","preventBaseUIHandler"],"sources":["calendarShared.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Shared constants and utilities for DateCalendar, DateRangeCalendar,\n * DatePicker, and DateRangePicker.\n */\n\nimport type React from \"react\";\nimport type { DateAfter, DateBefore, Matcher } from \"react-day-picker\";\n\n/** Fallback year range for the month/year dropdown when no min/max is provided. */\nexport const DEFAULT_FROM_YEAR: number = new Date().getFullYear() - 10;\nexport const DEFAULT_TO_YEAR: number = new Date().getFullYear() + 10;\n\n/**\n * Builds the `disabled` matcher array for react-day-picker from optional\n * min/max date constraints. Dates before min or after max are disabled.\n */\nexport function buildDisabledMatchers(\n min: Date | undefined,\n max: Date | undefined\n): Matcher[] {\n const matchers: Matcher[] = [];\n if (min != null) {\n const before: DateBefore = { before: min };\n matchers.push(before);\n }\n if (max != null) {\n const after: DateAfter = { after: max };\n matchers.push(after);\n }\n return matchers;\n}\n\n/**\n * Stable click handler that stops event propagation. Used on date inputs\n * inside Popover.Trigger to prevent the trigger's click handler from\n * toggling the popover closed when the user clicks the already-open input.\n */\nexport const stopPropagation: (e: React.MouseEvent) => void = (e) => {\n e.stopPropagation();\n // Base UI chains its trigger handler after this click handler. When focus or\n // pointer-down already opened the popover, suppress that handler so the same\n // click does not immediately toggle the popover closed again.\n const preventBaseUIHandler = (\n e as React.MouseEvent & { preventBaseUIHandler?: () => void }\n ).preventBaseUIHandler;\n preventBaseUIHandler?.();\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAKA;AACA,OAAO,MAAMA,iBAAyB,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAG,EAAE;AACtE,OAAO,MAAMC,eAAuB,GAAG,IAAIF,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAG,EAAE;;AAEpE;AACA;AACA;AACA;AACA,OAAO,SAASE,qBAAqBA,CACnCC,GAAqB,EACrBC,GAAqB,EACV;EACX,MAAMC,QAAmB,GAAG,EAAE;EAC9B,IAAIF,GAAG,IAAI,IAAI,EAAE;IAEfE,QAAQ,CAACC,IAAI,CADc;MAAEC,MAAM,EAAEJ;IAAI,CACrB,CAAC;EACvB;EACA,IAAIC,GAAG,IAAI,IAAI,EAAE;IAEfC,QAAQ,CAACC,IAAI,CADY;MAAEE,KAAK,EAAEJ;IAAI,CACnB,CAAC;EACtB;EACA,OAAOC,QAAQ;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMI,eAA8C,GAAIC,CAAC,IAAK;EACnEA,CAAC,CAACD,eAAe,CAAC,CAAC;EACnB;EACA;EACA;EACA,MAAME,oBAAoB,GACxBD,CAAC,CACDC,oBAAoB;EACtBA,oBAAoB,GAAG,CAAC;AAC1B,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDateEditState.js","names":["useCallback","useRef","useState","isDateInRange","useDateEditState","value","displayFormatFn","editFormatFn","parseFn","min","max","onChange","isEditing","setIsEditing","inputValue","setInputValue","prevValueTimeRef","getTime","currentValueTime","current","displayedValue","dateValue","undefined","inputError","validatedDate","setDateValue","date","startEditing","stopEditing","inputValueRef","validatedDateRef","commitAndStopEditing"],"sources":["useDateEditState.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useRef, useState } from \"react\";\nimport { isDateInRange } from \"../dateUtils.js\";\n\nexport interface UseDateEditStateConfig {\n /** The current committed date value (controlled by the parent). */\n value: Date | null;\n /**\n * Formats the date when the input is idle (not focused). It doesn't need to\n * be parsable since the user isn't typing.\n * When no custom formatDate prop is provided, this is the same as editFormatFn.\n */\n displayFormatFn: (date: Date) => string;\n /**\n * Formats the date when the user starts typing. Must produce a string that\n * parseFn can round-trip back to a Date (e.g. \"2024-01-15\" or \"2024-01-15 14:30\").\n */\n editFormatFn: (date: Date) => string;\n /** Parses user-typed text back into a Date. Returns undefined if invalid. */\n parseFn: (text: string) => Date | undefined;\n /** Earliest selectable date (inclusive). */\n min?: Date;\n /** Latest selectable date (inclusive). */\n max?: Date;\n /**\n * Called by `commitAndStopEditing` with the validated date, or null when the\n * field is cleared. Not called when the input is invalid (silent revert) or\n * when `stopEditing` is used directly (Escape/cancel).\n */\n onChange?: (date: Date | null) => void;\n}\n\nexport interface UseDateEditState {\n /** Whether the user is currently typing in the input. */\n isEditing: boolean;\n /** The value to show in the input: raw text when editing, formatted date otherwise. */\n displayedValue: string;\n /** Validation error for the current input text: null when valid or not editing. */\n inputError: \"invalid\" | \"out-of-range\" | null;\n /**\n * Live parse of inputValue — the Date if parsable, undefined if empty/invalid.\n * Re-derived every render from parseFn(inputValue).\n * Used for cross-input validation (e.g. DateRangePicker's overlapping check).\n */\n dateValue: Date | undefined;\n /** Enter editing mode: sets isEditing=true and populates inputValue from the current value. */\n startEditing: () => void;\n /** Exit editing mode without committing (Escape/cancel). */\n stopEditing: () => void;\n /** Commit the current input via onChange, then exit editing mode (blur/Enter). */\n commitAndStopEditing: () => void;\n /** Update the raw input text (stable useState setter). */\n setInputValue: (value: string) => void;\n /**\n * Set inputValue from a Date using editFormatFn. Use this instead of calling\n * `setInputValue(editFormatFn(date))` manually — it removes the need for\n * callers to know which format function to apply.\n */\n setDateValue: (date: Date | null) => void;\n}\n\n/**\n * Manages the editing lifecycle for a single date text input.\n *\n * Handles the two-phase display pattern where the input shows a formatted\n * display value when idle and switches to an editable format when focused.\n */\nexport function useDateEditState({\n value,\n displayFormatFn,\n editFormatFn,\n parseFn,\n min,\n max,\n onChange,\n}: UseDateEditStateConfig): UseDateEditState {\n const [isEditing, setIsEditing] = useState(false);\n const [inputValue, setInputValue] = useState(\"\");\n\n // Sync inputValue when external value changes (e.g. parent resets)\n const prevValueTimeRef = useRef<number | null>(value?.getTime() ?? null);\n const currentValueTime = value?.getTime() ?? null;\n if (prevValueTimeRef.current !== currentValueTime) {\n prevValueTimeRef.current = currentValueTime;\n if (!isEditing) {\n setInputValue(value != null ? editFormatFn(value) : \"\");\n }\n }\n\n // During editing the user needs parsable text they can modify and that\n // round-trips through parseFn (e.g. \"2024-01-15\"). When idle the input may\n // show a different display string. displayedValue is the single source of\n // truth for the input's visible text.\n const displayedValue = isEditing\n ? inputValue\n :
|
|
1
|
+
{"version":3,"file":"useDateEditState.js","names":["useCallback","useRef","useState","isDateInRange","useDateEditState","value","displayFormatFn","editFormatFn","parseFn","min","max","onChange","isEditing","setIsEditing","inputValue","setInputValue","prevValueTimeRef","getTime","currentValueTime","current","displayedValue","dateValue","undefined","inputError","validatedDate","setDateValue","date","startEditing","stopEditing","inputValueRef","validatedDateRef","commitAndStopEditing"],"sources":["useDateEditState.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useRef, useState } from \"react\";\n\nimport { isDateInRange } from \"../dateUtils.js\";\n\nexport interface UseDateEditStateConfig {\n /** The current committed date value (controlled by the parent). */\n value: Date | null;\n /**\n * Formats the date when the input is idle (not focused). It doesn't need to\n * be parsable since the user isn't typing.\n * When no custom formatDate prop is provided, this is the same as editFormatFn.\n */\n displayFormatFn: (date: Date) => string;\n /**\n * Formats the date when the user starts typing. Must produce a string that\n * parseFn can round-trip back to a Date (e.g. \"2024-01-15\" or \"2024-01-15 14:30\").\n */\n editFormatFn: (date: Date) => string;\n /** Parses user-typed text back into a Date. Returns undefined if invalid. */\n parseFn: (text: string) => Date | undefined;\n /** Earliest selectable date (inclusive). */\n min?: Date;\n /** Latest selectable date (inclusive). */\n max?: Date;\n /**\n * Called by `commitAndStopEditing` with the validated date, or null when the\n * field is cleared. Not called when the input is invalid (silent revert) or\n * when `stopEditing` is used directly (Escape/cancel).\n */\n onChange?: (date: Date | null) => void;\n}\n\nexport interface UseDateEditState {\n /** Whether the user is currently typing in the input. */\n isEditing: boolean;\n /** The value to show in the input: raw text when editing, formatted date otherwise. */\n displayedValue: string;\n /** Validation error for the current input text: null when valid or not editing. */\n inputError: \"invalid\" | \"out-of-range\" | null;\n /**\n * Live parse of inputValue — the Date if parsable, undefined if empty/invalid.\n * Re-derived every render from parseFn(inputValue).\n * Used for cross-input validation (e.g. DateRangePicker's overlapping check).\n */\n dateValue: Date | undefined;\n /** Enter editing mode: sets isEditing=true and populates inputValue from the current value. */\n startEditing: () => void;\n /** Exit editing mode without committing (Escape/cancel). */\n stopEditing: () => void;\n /** Commit the current input via onChange, then exit editing mode (blur/Enter). */\n commitAndStopEditing: () => void;\n /** Update the raw input text (stable useState setter). */\n setInputValue: (value: string) => void;\n /**\n * Set inputValue from a Date using editFormatFn. Use this instead of calling\n * `setInputValue(editFormatFn(date))` manually — it removes the need for\n * callers to know which format function to apply.\n */\n setDateValue: (date: Date | null) => void;\n}\n\n/**\n * Manages the editing lifecycle for a single date text input.\n *\n * Handles the two-phase display pattern where the input shows a formatted\n * display value when idle and switches to an editable format when focused.\n */\nexport function useDateEditState({\n value,\n displayFormatFn,\n editFormatFn,\n parseFn,\n min,\n max,\n onChange,\n}: UseDateEditStateConfig): UseDateEditState {\n const [isEditing, setIsEditing] = useState(false);\n const [inputValue, setInputValue] = useState(\"\");\n\n // Sync inputValue when external value changes (e.g. parent resets)\n const prevValueTimeRef = useRef<number | null>(value?.getTime() ?? null);\n const currentValueTime = value?.getTime() ?? null;\n if (prevValueTimeRef.current !== currentValueTime) {\n prevValueTimeRef.current = currentValueTime;\n if (!isEditing) {\n setInputValue(value != null ? editFormatFn(value) : \"\");\n }\n }\n\n // During editing the user needs parsable text they can modify and that\n // round-trips through parseFn (e.g. \"2024-01-15\"). When idle the input may\n // show a different display string. displayedValue is the single source of\n // truth for the input's visible text.\n const displayedValue = isEditing\n ? inputValue\n : value != null\n ? displayFormatFn(value)\n : \"\";\n\n // Parse the input once per render and derive all validation state from it.\n const dateValue = inputValue !== \"\" ? parseFn(inputValue) : undefined;\n\n const inputError: \"invalid\" | \"out-of-range\" | null = (() => {\n // Not editing: no validation feedback.\n // Empty input: the user cleared the field — that means null, not invalid.\n if (!isEditing || inputValue === \"\") return null;\n if (dateValue == null) return \"invalid\";\n if (!isDateInRange(dateValue, min, max)) return \"out-of-range\";\n return null;\n })();\n\n // The validated date ready for onChange, derived from dateValue + inputError.\n const validatedDate =\n inputError == null && dateValue != null ? dateValue : null;\n\n const setDateValue = useCallback(\n (date: Date | null) => {\n setInputValue(date != null ? editFormatFn(date) : \"\");\n },\n [editFormatFn]\n );\n\n const startEditing = useCallback(() => {\n setIsEditing(true);\n setDateValue(value);\n }, [value, setDateValue]);\n\n const stopEditing = useCallback(() => {\n setIsEditing(false);\n setDateValue(value);\n }, [value, setDateValue]);\n\n // Refs so commitAndStopEditing reads the latest derived values without\n // closing over inputValue/validatedDate (which change every keystroke).\n const inputValueRef = useRef(inputValue);\n inputValueRef.current = inputValue;\n const validatedDateRef = useRef(validatedDate);\n validatedDateRef.current = validatedDate;\n\n const commitAndStopEditing = useCallback(() => {\n if (inputValueRef.current === \"\") {\n onChange?.(null);\n } else if (validatedDateRef.current != null) {\n onChange?.(validatedDateRef.current);\n }\n setIsEditing(false);\n setDateValue(value);\n }, [onChange, setDateValue, value]);\n\n return {\n isEditing,\n displayedValue,\n inputError,\n dateValue,\n startEditing,\n stopEditing,\n commitAndStopEditing,\n setInputValue,\n setDateValue,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dateUtils.js","names":["formatDateForInput","date","year","getFullYear","month","String","getMonth","padStart","day","getDate","formatTime","hours","getHours","minutes","getMinutes","parseDateFromInput","value","undefined","Date","isNaN","getTime","formatDateForDisplay","fallback","toLocaleDateString","formatDatetimeForInput","parseDatetimeFromInput","normalized","includes","replace","isDateInRange","min","max","parseDateFromISO","parseTimeString","timeString","hoursStr","minutesStr","split","parseInt","getTimeValue"],"sources":["dateUtils.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Date utilities for HTML date inputs.\n *\n * These functions operate on local time by design. HTML <input type=\"date\">\n * returns and expects values in \"YYYY-MM-DD\" format without timezone info.\n *\n * `parseDateFromInput` appends \"T00:00:00\" (no \"Z\") so the date is parsed as\n * local midnight rather than UTC midnight. Without this, negative-offset\n * timezones (e.g. US timezones) would shift \"2024-01-15\" to Jan 14 locally.\n *\n * Consumers providing dates from an API (typically UTC) should handle\n * UTC-to-local conversion before passing values to these functions.\n */\n\nexport function formatDateForInput(date: Date | undefined | null): string {\n if (date == null) return \"\";\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n return `${year}-${month}-${day}`;\n}\n\n/** Formats the time portion of a Date as \"HH:mm\". */\nexport function formatTime(date: Date): string {\n const hours = String(date.getHours()).padStart(2, \"0\");\n const minutes = String(date.getMinutes()).padStart(2, \"0\");\n return `${hours}:${minutes}`;\n}\n\nexport function parseDateFromInput(\n value: string | undefined | null
|
|
1
|
+
{"version":3,"file":"dateUtils.js","names":["formatDateForInput","date","year","getFullYear","month","String","getMonth","padStart","day","getDate","formatTime","hours","getHours","minutes","getMinutes","parseDateFromInput","value","undefined","Date","isNaN","getTime","formatDateForDisplay","fallback","toLocaleDateString","formatDatetimeForInput","parseDatetimeFromInput","normalized","includes","replace","isDateInRange","min","max","parseDateFromISO","parseTimeString","timeString","hoursStr","minutesStr","split","parseInt","getTimeValue"],"sources":["dateUtils.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Date utilities for HTML date inputs.\n *\n * These functions operate on local time by design. HTML <input type=\"date\">\n * returns and expects values in \"YYYY-MM-DD\" format without timezone info.\n *\n * `parseDateFromInput` appends \"T00:00:00\" (no \"Z\") so the date is parsed as\n * local midnight rather than UTC midnight. Without this, negative-offset\n * timezones (e.g. US timezones) would shift \"2024-01-15\" to Jan 14 locally.\n *\n * Consumers providing dates from an API (typically UTC) should handle\n * UTC-to-local conversion before passing values to these functions.\n */\n\nexport function formatDateForInput(date: Date | undefined | null): string {\n if (date == null) return \"\";\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n return `${year}-${month}-${day}`;\n}\n\n/** Formats the time portion of a Date as \"HH:mm\". */\nexport function formatTime(date: Date): string {\n const hours = String(date.getHours()).padStart(2, \"0\");\n const minutes = String(date.getMinutes()).padStart(2, \"0\");\n return `${hours}:${minutes}`;\n}\n\nexport function parseDateFromInput(\n value: string | undefined | null\n): Date | undefined {\n if (!value) return undefined;\n const date = new Date(value + \"T00:00:00\");\n return isNaN(date.getTime()) ? undefined : date;\n}\n\nexport function formatDateForDisplay(\n date: Date | undefined | null,\n fallback: string = \"\"\n): string {\n if (date == null) return fallback;\n return date.toLocaleDateString(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n });\n}\n\n/** Formats a Date as \"2024-06-15 14:30\" — space-separated, parsable, for text input editing. */\nexport function formatDatetimeForInput(date: Date | undefined | null): string {\n if (date == null) return \"\";\n return `${formatDateForInput(date)} ${formatTime(date)}`;\n}\n\n/**\n * Parses space-separated (\"2024-06-15 14:30\") or T-separated datetime strings.\n * Inverse of `formatDatetimeForInput`, which joins date and time with a space\n * for readability. Here we replace that space with \"T\" so `new Date()` parses\n * it as a local datetime (e.g. \"2024-06-15T14:30\").\n */\nexport function parseDatetimeFromInput(\n value: string | undefined | null\n): Date | undefined {\n if (!value) return undefined;\n const normalized = value.includes(\"T\") ? value : value.replace(/\\s/, \"T\");\n const date = new Date(normalized);\n return isNaN(date.getTime()) ? undefined : date;\n}\n\n/** Returns true if `date` falls within [min, max] (inclusive). */\nexport function isDateInRange(\n date: Date,\n min: Date | undefined,\n max: Date | undefined\n): boolean {\n if (min != null && date.getTime() < min.getTime()) return false;\n if (max != null && date.getTime() > max.getTime()) return false;\n return true;\n}\n\nexport function parseDateFromISO(\n value: string | Date | undefined | null\n): Date | undefined {\n if (value == null) return undefined;\n if (value instanceof Date) return value;\n const date = new Date(value);\n return isNaN(date.getTime()) ? undefined : date;\n}\n\n/** Parses an \"HH:mm\" time string into hours and minutes. */\nexport function parseTimeString(timeString: string): {\n hours: number;\n minutes: number;\n} {\n const [hoursStr, minutesStr] = timeString.split(\":\");\n const hours = parseInt(hoursStr ?? \"0\", 10);\n const minutes = parseInt(minutesStr ?? \"0\", 10);\n return {\n hours: isNaN(hours) ? 0 : hours,\n minutes: isNaN(minutes) ? 0 : minutes,\n };\n}\n\n/** Returns the \"HH:mm\" time value for a date, defaulting to \"00:00\" when null. */\nexport function getTimeValue(date: Date | null): string {\n return date != null ? formatTime(date) : \"00:00\";\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAsyncAction.js","names":["useCallback","useState","useIsMounted","useAsyncAction","action","isPending","setIsPending","error","setError","undefined","isMountedRef","execute","args","err","current","clearError"],"sources":["useAsyncAction.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useState } from \"react\";\nimport { useIsMounted } from \"./useIsMounted.js\";\n\ninterface AsyncActionState<Args extends unknown[]> {\n isPending: boolean;\n error: unknown;\n execute: (...args: Args) => Promise<void>;\n clearError: () => void;\n}\n\n/**\n * Wraps an async callback with pending and error state tracking.\n *\n * - `isPending` is true while the action is executing\n * - `error` holds the error from the last rejection (cleared on next execute or via clearError)\n * - `execute` calls the action with pending/error bookkeeping\n * - `clearError` resets the error to undefined\n */\nexport function useAsyncAction<Args extends unknown[]>(\n action: (...args: Args) => Promise<void> | void
|
|
1
|
+
{"version":3,"file":"useAsyncAction.js","names":["useCallback","useState","useIsMounted","useAsyncAction","action","isPending","setIsPending","error","setError","undefined","isMountedRef","execute","args","err","current","clearError"],"sources":["useAsyncAction.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useState } from \"react\";\n\nimport { useIsMounted } from \"./useIsMounted.js\";\n\ninterface AsyncActionState<Args extends unknown[]> {\n isPending: boolean;\n error: unknown;\n execute: (...args: Args) => Promise<void>;\n clearError: () => void;\n}\n\n/**\n * Wraps an async callback with pending and error state tracking.\n *\n * - `isPending` is true while the action is executing\n * - `error` holds the error from the last rejection (cleared on next execute or via clearError)\n * - `execute` calls the action with pending/error bookkeeping\n * - `clearError` resets the error to undefined\n */\nexport function useAsyncAction<Args extends unknown[]>(\n action: (...args: Args) => Promise<void> | void\n): AsyncActionState<Args> {\n const [isPending, setIsPending] = useState(false);\n const [error, setError] = useState<unknown>(undefined);\n\n const isMountedRef = useIsMounted();\n\n const execute = useCallback(\n async (...args: Args) => {\n setError(undefined);\n setIsPending(true);\n try {\n await action(...args);\n } catch (err) {\n if (isMountedRef.current) {\n setError(err);\n }\n } finally {\n if (isMountedRef.current) {\n setIsPending(false);\n }\n }\n },\n [action, isMountedRef]\n );\n\n const clearError = useCallback(() => {\n setError(undefined);\n }, []);\n\n return { isPending, error, execute, clearError };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AAE7C,SAASC,YAAY,QAAQ,mBAAmB;AAShD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAC5BC,MAA+C,EACvB;EACxB,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGL,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACM,KAAK,EAAEC,QAAQ,CAAC,GAAGP,QAAQ,CAAUQ,SAAS,CAAC;EAEtD,MAAMC,YAAY,GAAGR,YAAY,CAAC,CAAC;EAEnC,MAAMS,OAAO,GAAGX,WAAW,CACzB,OAAO,GAAGY,IAAU,KAAK;IACvBJ,QAAQ,CAACC,SAAS,CAAC;IACnBH,YAAY,CAAC,IAAI,CAAC;IAClB,IAAI;MACF,MAAMF,MAAM,CAAC,GAAGQ,IAAI,CAAC;IACvB,CAAC,CAAC,OAAOC,GAAG,EAAE;MACZ,IAAIH,YAAY,CAACI,OAAO,EAAE;QACxBN,QAAQ,CAACK,GAAG,CAAC;MACf;IACF,CAAC,SAAS;MACR,IAAIH,YAAY,CAACI,OAAO,EAAE;QACxBR,YAAY,CAAC,KAAK,CAAC;MACrB;IACF;EACF,CAAC,EACD,CAACF,MAAM,EAAEM,YAAY,CACvB,CAAC;EAED,MAAMK,UAAU,GAAGf,WAAW,CAAC,MAAM;IACnCQ,QAAQ,CAACC,SAAS,CAAC;EACrB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAEJ,SAAS;IAAEE,KAAK;IAAEI,OAAO;IAAEI;EAAW,CAAC;AAClD","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDebouncedValue.js","names":["useEffect","useState","useDebouncedValue","value","debounceMs","debouncedValue","setDebouncedValue","timer","setTimeout","clearTimeout"],"sources":["useDebouncedValue.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect, useState } from \"react\";\n\n/**\n * Returns a debounced version of `value` that only updates after `debounceMs`\n * of inactivity. Each change to `value` resets the timer.\n */\nexport function useDebouncedValue<T>(value: T, debounceMs: number): T {\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n useEffect(function debounceValue() {\n
|
|
1
|
+
{"version":3,"file":"useDebouncedValue.js","names":["useEffect","useState","useDebouncedValue","value","debounceMs","debouncedValue","setDebouncedValue","timer","setTimeout","clearTimeout"],"sources":["useDebouncedValue.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect, useState } from \"react\";\n\n/**\n * Returns a debounced version of `value` that only updates after `debounceMs`\n * of inactivity. Each change to `value` resets the timer.\n */\nexport function useDebouncedValue<T>(value: T, debounceMs: number): T {\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n useEffect(\n function debounceValue() {\n const timer = setTimeout(() => {\n setDebouncedValue(value);\n }, debounceMs);\n return () => {\n clearTimeout(timer);\n };\n },\n [value, debounceMs]\n );\n\n return debouncedValue;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;;AAE3C;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAIC,KAAQ,EAAEC,UAAkB,EAAK;EACpE,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGL,QAAQ,CAAIE,KAAK,CAAC;EAE9DH,SAAS,CACP,YAAyB;IACvB,MAAMO,KAAK,GAAGC,UAAU,CAAC,MAAM;MAC7BF,iBAAiB,CAACH,KAAK,CAAC;IAC1B,CAAC,EAAEC,UAAU,CAAC;IACd,OAAO,MAAM;MACXK,YAAY,CAACF,KAAK,CAAC;IACrB,CAAC;EACH,CAAC,EACD,CAACJ,KAAK,EAAEC,UAAU,CACpB,CAAC;EAED,OAAOC,cAAc;AACvB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEventCallback.js","names":["React","useEventCallback","callback","latestCallbackValueWrapper","useRef","args","globalThis","console","error","useEffect","current","useCallback"],"sources":["useEventCallback.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as React from \"react\";\n\n/**\n * Creates a MutableRefObject with a constant reference. This allows us to pass around a constant reference\n * to a callback, but let the consumer change the callback over time without losing that reference.\n * The callback is only updated after render, so any usage of the callback during render will operate on the\n * previous render's callback. Callbacks created by this hook should **only** be used for event handling.\n * If the callback is called on the first render of a component, it will log an error. In the future,\n * this will throw.\n *\n * ```\n *\n * @param callback\n */\n/* eslint-disable-next-line @typescript-eslint/no-unsafe-function-type */\nexport function useEventCallback<T extends Function>(callback: T): T {\n const latestCallbackValueWrapper = React.useRef<T>(
|
|
1
|
+
{"version":3,"file":"useEventCallback.js","names":["React","useEventCallback","callback","latestCallbackValueWrapper","useRef","args","globalThis","console","error","useEffect","current","useCallback"],"sources":["useEventCallback.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as React from \"react\";\n\n/**\n * Creates a MutableRefObject with a constant reference. This allows us to pass around a constant reference\n * to a callback, but let the consumer change the callback over time without losing that reference.\n * The callback is only updated after render, so any usage of the callback during render will operate on the\n * previous render's callback. Callbacks created by this hook should **only** be used for event handling.\n * If the callback is called on the first render of a component, it will log an error. In the future,\n * this will throw.\n *\n * ```\n *\n * @param callback\n */\n/* eslint-disable-next-line @typescript-eslint/no-unsafe-function-type */\nexport function useEventCallback<T extends Function>(callback: T): T {\n const latestCallbackValueWrapper = React.useRef<T>(((...args: unknown[]) => {\n if (typeof globalThis.console !== \"undefined\") {\n globalThis.console.error(\n \"A callback created with `useEventCallback` was called during the initial render of a component. This will throw an error in the future.\"\n );\n }\n return (callback as unknown as (...a: unknown[]) => unknown)(...args);\n }) as unknown as T);\n\n React.useEffect(() => {\n latestCallbackValueWrapper.current = callback;\n }, [callback]);\n\n return React.useCallback(\n (...args: unknown[]) =>\n (\n latestCallbackValueWrapper.current as unknown as (\n ...a: unknown[]\n ) => unknown\n )(...args),\n []\n ) as unknown as T;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAqBC,QAAW,EAAK;EACnE,MAAMC,0BAA0B,GAAGH,KAAK,CAACI,MAAM,CAAK,CAAC,GAAGC,IAAe,KAAK;IAC1E,IAAI,OAAOC,UAAU,CAACC,OAAO,KAAK,WAAW,EAAE;MAC7CD,UAAU,CAACC,OAAO,CAACC,KAAK,CACtB,yIACF,CAAC;IACH;IACA,OAAQN,QAAQ,CAA6C,GAAGG,IAAI,CAAC;EACvE,CAAkB,CAAC;EAEnBL,KAAK,CAACS,SAAS,CAAC,MAAM;IACpBN,0BAA0B,CAACO,OAAO,GAAGR,QAAQ;EAC/C,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,OAAOF,KAAK,CAACW,WAAW,CACtB,CAAC,GAAGN,IAAe,KAEfF,0BAA0B,CAACO,OAAO,CAGlC,GAAGL,IAAI,CAAC,EACZ,EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInfiniteScroll.js","names":["throttle","useCallback","useEffect","useRef","useEventCallback","THRESHOLD","OPTIONS","threshold","useInfiniteScroll","callback","loadedCount","observer","targetRef","eventCallback","throttledCallback","handleObserverUpdate","entries","ent","isIntersecting","current","targetElement","observe","unobserve","node","IntersectionObserver"],"sources":["useInfiniteScroll.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { throttle } from \"lodash-es\";\nimport type { LegacyRef } from \"react\";\nimport { useCallback, useEffect, useRef } from \"react\";\nimport { useEventCallback } from \"./useEventCallback.js\";\n\nconst THRESHOLD = 0.5;\nconst OPTIONS = {\n threshold: THRESHOLD,\n};\n\nexport interface UseInfiniteScrollOptions {\n /**\n * Callback to call when new items should be loaded.\n */\n callback: () => void;\n /**\n * The current count of the number of loaded items in the infinite scroll. This is used to\n * detect changes when the height of the container is large and can hold multiple initial\n * loaded pages without making the target element scroll out of the viewport.\n */\n loadedCount: number;\n}\n\n/**\n * This hooks handles the logic of triggering a callback when the user reaches the target element (e.g. spinner).\n * It returns a callback that must be set as the ref of the target element at the bottom of the\n * scroll container.\n */\nexport function useInfiniteScroll(\n
|
|
1
|
+
{"version":3,"file":"useInfiniteScroll.js","names":["throttle","useCallback","useEffect","useRef","useEventCallback","THRESHOLD","OPTIONS","threshold","useInfiniteScroll","callback","loadedCount","observer","targetRef","eventCallback","throttledCallback","handleObserverUpdate","entries","ent","isIntersecting","current","targetElement","observe","unobserve","node","IntersectionObserver"],"sources":["useInfiniteScroll.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { throttle } from \"lodash-es\";\nimport type { LegacyRef } from \"react\";\nimport { useCallback, useEffect, useRef } from \"react\";\n\nimport { useEventCallback } from \"./useEventCallback.js\";\n\nconst THRESHOLD = 0.5;\nconst OPTIONS = {\n threshold: THRESHOLD,\n};\n\nexport interface UseInfiniteScrollOptions {\n /**\n * Callback to call when new items should be loaded.\n */\n callback: () => void;\n /**\n * The current count of the number of loaded items in the infinite scroll. This is used to\n * detect changes when the height of the container is large and can hold multiple initial\n * loaded pages without making the target element scroll out of the viewport.\n */\n loadedCount: number;\n}\n\n/**\n * This hooks handles the logic of triggering a callback when the user reaches the target element (e.g. spinner).\n * It returns a callback that must be set as the ref of the target element at the bottom of the\n * scroll container.\n */\nexport function useInfiniteScroll({\n callback,\n loadedCount,\n}: UseInfiniteScrollOptions): LegacyRef<HTMLDivElement> {\n const observer = useRef<IntersectionObserver>();\n const targetRef = useRef<Element | undefined>();\n\n const eventCallback = useEventCallback(callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const throttledCallback = useCallback(throttle(eventCallback), []);\n\n /**\n * If the observer updates the entry in a way that indicates that the target element is intersecting\n * with the scroll container, invoke the callback.\n */\n const handleObserverUpdate: IntersectionObserverCallback = useCallback(\n (entries) => {\n const ent = entries[0];\n if (ent && ent.isIntersecting) {\n throttledCallback();\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n /**\n * Retrigger visibility detection whenever the loaded count of items changes. This allows us to\n * detect loading initial pages in a tall container that do not cause the target element to\n * change visibility.\n */\n useEffect(() => {\n const { current: targetElement } = targetRef;\n if (observer.current == null || targetElement == null) {\n return;\n }\n observer.current.observe(targetElement);\n return () => {\n observer.current?.unobserve(targetElement);\n };\n }, [loadedCount]);\n\n const setRef = (node: HTMLDivElement) => {\n if (node != null) {\n targetRef.current = node;\n if (observer.current == null) {\n observer.current = new IntersectionObserver(\n handleObserverUpdate,\n OPTIONS\n );\n }\n observer.current.observe(node);\n } else if (targetRef.current != null) {\n observer.current?.unobserve(targetRef.current);\n }\n };\n\n return setRef;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,QAAQ,WAAW;AAEpC,SAASC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAEtD,SAASC,gBAAgB,QAAQ,uBAAuB;AAExD,MAAMC,SAAS,GAAG,GAAG;AACrB,MAAMC,OAAO,GAAG;EACdC,SAAS,EAAEF;AACb,CAAC;AAeD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,iBAAiBA,CAAC;EAChCC,QAAQ;EACRC;AACwB,CAAC,EAA6B;EACtD,MAAMC,QAAQ,GAAGR,MAAM,CAAuB,CAAC;EAC/C,MAAMS,SAAS,GAAGT,MAAM,CAAsB,CAAC;EAE/C,MAAMU,aAAa,GAAGT,gBAAgB,CAACK,QAAQ,CAAC;EAChD;EACA,MAAMK,iBAAiB,GAAGb,WAAW,CAACD,QAAQ,CAACa,aAAa,CAAC,EAAE,EAAE,CAAC;;EAElE;AACF;AACA;AACA;EACE,MAAME,oBAAkD,GAAGd,WAAW,CACnEe,OAAO,IAAK;IACX,MAAMC,GAAG,GAAGD,OAAO,CAAC,CAAC,CAAC;IACtB,IAAIC,GAAG,IAAIA,GAAG,CAACC,cAAc,EAAE;MAC7BJ,iBAAiB,CAAC,CAAC;IACrB;EACF,CAAC;EACD;EACA,EACF,CAAC;;EAED;AACF;AACA;AACA;AACA;EACEZ,SAAS,CAAC,MAAM;IACd,MAAM;MAAEiB,OAAO,EAAEC;IAAc,CAAC,GAAGR,SAAS;IAC5C,IAAID,QAAQ,CAACQ,OAAO,IAAI,IAAI,IAAIC,aAAa,IAAI,IAAI,EAAE;MACrD;IACF;IACAT,QAAQ,CAACQ,OAAO,CAACE,OAAO,CAACD,aAAa,CAAC;IACvC,OAAO,MAAM;MACXT,QAAQ,CAACQ,OAAO,EAAEG,SAAS,CAACF,aAAa,CAAC;IAC5C,CAAC;EACH,CAAC,EAAE,CAACV,WAAW,CAAC,CAAC;EAiBjB,OAfgBa,IAAoB,IAAK;IACvC,IAAIA,IAAI,IAAI,IAAI,EAAE;MAChBX,SAAS,CAACO,OAAO,GAAGI,IAAI;MACxB,IAAIZ,QAAQ,CAACQ,OAAO,IAAI,IAAI,EAAE;QAC5BR,QAAQ,CAACQ,OAAO,GAAG,IAAIK,oBAAoB,CACzCT,oBAAoB,EACpBT,OACF,CAAC;MACH;MACAK,QAAQ,CAACQ,OAAO,CAACE,OAAO,CAACE,IAAI,CAAC;IAChC,CAAC,MAAM,IAAIX,SAAS,CAACO,OAAO,IAAI,IAAI,EAAE;MACpCR,QAAQ,CAACQ,OAAO,EAAEG,SAAS,CAACV,SAAS,CAACO,OAAO,CAAC;IAChD;EACF,CAAC;AAGH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMediaContents.js","names":["useEffect","useRef","useState","useMediaContents","media","transform","cleanup","data","setData","undefined","loading","setLoading","error","setError","cleanupRef","current","dataRef","cancelled","prev","fetchContents","then","response","result","catch","err","Error","String"],"sources":["useMediaContents.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Media } from \"@osdk/api\";\nimport { useEffect, useRef, useState } from \"react\";\n\nexport interface UseMediaContentsResult<T> {\n data: T | undefined;\n loading: boolean;\n error: Error | undefined;\n}\n\n/**\n * Fetches media contents and transforms the response into the desired type.\n *\n * @param media - The OSDK Media object to fetch contents from\n * @param transform - Converts the fetch Response into the target type\n * @param cleanup - Optional cleanup function called when data is replaced or on unmount\n * (e.g., URL.revokeObjectURL for blob URLs)\n */\nexport function useMediaContents<T>(\n media: Media,\n transform: (response: Response) => Promise<T>,\n cleanup?: (data: T) => void
|
|
1
|
+
{"version":3,"file":"useMediaContents.js","names":["useEffect","useRef","useState","useMediaContents","media","transform","cleanup","data","setData","undefined","loading","setLoading","error","setError","cleanupRef","current","dataRef","cancelled","prev","fetchContents","then","response","result","catch","err","Error","String"],"sources":["useMediaContents.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Media } from \"@osdk/api\";\nimport { useEffect, useRef, useState } from \"react\";\n\nexport interface UseMediaContentsResult<T> {\n data: T | undefined;\n loading: boolean;\n error: Error | undefined;\n}\n\n/**\n * Fetches media contents and transforms the response into the desired type.\n *\n * @param media - The OSDK Media object to fetch contents from\n * @param transform - Converts the fetch Response into the target type\n * @param cleanup - Optional cleanup function called when data is replaced or on unmount\n * (e.g., URL.revokeObjectURL for blob URLs)\n */\nexport function useMediaContents<T>(\n media: Media,\n transform: (response: Response) => Promise<T>,\n cleanup?: (data: T) => void\n): UseMediaContentsResult<T> {\n const [data, setData] = useState<T | undefined>(undefined);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<Error | undefined>(undefined);\n const cleanupRef = useRef(cleanup);\n cleanupRef.current = cleanup;\n const dataRef = useRef<T | undefined>(undefined);\n dataRef.current = data;\n\n useEffect(\n function fetchMediaContents() {\n let cancelled = false;\n setLoading(true);\n setError(undefined);\n setData((prev) => {\n if (prev !== undefined) {\n cleanupRef.current?.(prev);\n }\n return undefined;\n });\n\n media\n .fetchContents()\n .then((response) => transform(response))\n .then((result) => {\n if (!cancelled) {\n setData(result);\n setLoading(false);\n } else {\n cleanupRef.current?.(result);\n }\n })\n .catch((err: unknown) => {\n if (!cancelled) {\n setError(err instanceof Error ? err : new Error(String(err)));\n setLoading(false);\n }\n });\n\n return () => {\n cancelled = true;\n };\n },\n [media, transform]\n );\n\n useEffect(() => {\n return () => {\n if (dataRef.current !== undefined) {\n cleanupRef.current?.(dataRef.current);\n }\n };\n }, []);\n\n return { data, loading, error };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAQnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC9BC,KAAY,EACZC,SAA6C,EAC7CC,OAA2B,EACA;EAC3B,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGN,QAAQ,CAAgBO,SAAS,CAAC;EAC1D,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGT,QAAQ,CAAC,IAAI,CAAC;EAC5C,MAAM,CAACU,KAAK,EAAEC,QAAQ,CAAC,GAAGX,QAAQ,CAAoBO,SAAS,CAAC;EAChE,MAAMK,UAAU,GAAGb,MAAM,CAACK,OAAO,CAAC;EAClCQ,UAAU,CAACC,OAAO,GAAGT,OAAO;EAC5B,MAAMU,OAAO,GAAGf,MAAM,CAAgBQ,SAAS,CAAC;EAChDO,OAAO,CAACD,OAAO,GAAGR,IAAI;EAEtBP,SAAS,CACP,YAA8B;IAC5B,IAAIiB,SAAS,GAAG,KAAK;IACrBN,UAAU,CAAC,IAAI,CAAC;IAChBE,QAAQ,CAACJ,SAAS,CAAC;IACnBD,OAAO,CAAEU,IAAI,IAAK;MAChB,IAAIA,IAAI,KAAKT,SAAS,EAAE;QACtBK,UAAU,CAACC,OAAO,GAAGG,IAAI,CAAC;MAC5B;MACA,OAAOT,SAAS;IAClB,CAAC,CAAC;IAEFL,KAAK,CACFe,aAAa,CAAC,CAAC,CACfC,IAAI,CAAEC,QAAQ,IAAKhB,SAAS,CAACgB,QAAQ,CAAC,CAAC,CACvCD,IAAI,CAAEE,MAAM,IAAK;MAChB,IAAI,CAACL,SAAS,EAAE;QACdT,OAAO,CAACc,MAAM,CAAC;QACfX,UAAU,CAAC,KAAK,CAAC;MACnB,CAAC,MAAM;QACLG,UAAU,CAACC,OAAO,GAAGO,MAAM,CAAC;MAC9B;IACF,CAAC,CAAC,CACDC,KAAK,CAAEC,GAAY,IAAK;MACvB,IAAI,CAACP,SAAS,EAAE;QACdJ,QAAQ,CAACW,GAAG,YAAYC,KAAK,GAAGD,GAAG,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,GAAG,CAAC,CAAC,CAAC;QAC7Db,UAAU,CAAC,KAAK,CAAC;MACnB;IACF,CAAC,CAAC;IAEJ,OAAO,MAAM;MACXM,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EACD,CAACb,KAAK,EAAEC,SAAS,CACnB,CAAC;EAEDL,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACX,IAAIgB,OAAO,CAACD,OAAO,KAAKN,SAAS,EAAE;QACjCK,UAAU,CAACC,OAAO,GAAGC,OAAO,CAACD,OAAO,CAAC;MACvC;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAER,IAAI;IAAEG,OAAO;IAAEE;EAAM,CAAC;AACjC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OsdkThemeContext.js","names":["createContext","OsdkThemeContext"],"sources":["OsdkThemeContext.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { type Context, createContext } from \"react\";\nimport type { OsdkThemeContextValue } from \"./types.js\";\n\nexport const OsdkThemeContext: Context<OsdkThemeContextValue | null> =\n createContext<OsdkThemeContextValue | null>(null);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAuBA,aAAa,QAAQ,OAAO;
|
|
1
|
+
{"version":3,"file":"OsdkThemeContext.js","names":["createContext","OsdkThemeContext"],"sources":["OsdkThemeContext.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { type Context, createContext } from \"react\";\n\nimport type { OsdkThemeContextValue } from \"./types.js\";\n\nexport const OsdkThemeContext: Context<OsdkThemeContextValue | null> =\n createContext<OsdkThemeContextValue | null>(null);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAuBA,aAAa,QAAQ,OAAO;AAInD,OAAO,MAAMC,gBAAuD,gBAClED,aAAa,CAA+B,IAAI,CAAC","ignoreList":[]}
|