@osdk/react-components 0.2.0-beta.9 → 0.2.1-main-20260407074313
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/AGENTS.md +26 -0
- package/CHANGELOG.md +356 -0
- package/README.md +166 -7
- package/build/browser/action-form/ActionForm.js +117 -0
- package/build/browser/action-form/ActionForm.js.map +1 -0
- package/build/browser/action-form/ActionFormApi.js.map +1 -1
- package/build/browser/action-form/BaseForm.js +83 -0
- package/build/browser/action-form/BaseForm.js.map +1 -0
- package/build/browser/action-form/BaseForm.module.css +38 -0
- package/build/browser/action-form/BaseForm.module.css.js +8 -0
- package/build/browser/action-form/FormField.js +42 -0
- package/build/browser/action-form/FormField.js.map +1 -0
- package/build/browser/action-form/FormField.module.css +41 -0
- package/build/browser/action-form/FormField.module.css.js +10 -0
- package/build/browser/action-form/FormFieldApi.js.map +1 -1
- package/build/browser/action-form/FormHeader.js +26 -0
- package/build/browser/action-form/FormHeader.js.map +1 -0
- package/build/browser/action-form/FormHeader.module.css +26 -0
- package/build/browser/action-form/FormHeader.module.css.js +6 -0
- package/build/browser/action-form/fields/BaseInput.module.css +56 -0
- package/build/browser/action-form/fields/BaseInput.module.css.js +6 -0
- package/build/browser/action-form/fields/CustomField.js +30 -0
- package/build/browser/action-form/fields/CustomField.js.map +1 -0
- package/build/browser/action-form/fields/DateCalendar.js +70 -0
- package/build/browser/action-form/fields/DateCalendar.js.map +1 -0
- package/build/browser/action-form/fields/DateCalendar.module.css +136 -0
- package/build/browser/action-form/fields/DateCalendar.module.css.js +22 -0
- package/build/browser/action-form/fields/DatetimePickerField.js +98 -0
- package/build/browser/action-form/fields/DatetimePickerField.js.map +1 -0
- package/build/browser/action-form/fields/DatetimePickerField.module.css +66 -0
- package/build/browser/action-form/fields/DatetimePickerField.module.css.js +10 -0
- package/build/browser/action-form/fields/DropdownField.js +104 -0
- package/build/browser/action-form/fields/DropdownField.js.map +1 -0
- package/build/browser/action-form/fields/FieldBridge.js +45 -0
- package/build/browser/action-form/fields/FieldBridge.js.map +1 -0
- package/build/browser/action-form/fields/FilePickerField.js +119 -0
- package/build/browser/action-form/fields/FilePickerField.js.map +1 -0
- package/build/browser/action-form/fields/FilePickerField.module.css +132 -0
- package/build/browser/action-form/fields/FilePickerField.module.css.js +11 -0
- package/build/browser/action-form/fields/FormFieldRenderer.js +128 -0
- package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -0
- package/build/browser/action-form/fields/LazyDateCalendar.js +27 -0
- package/build/browser/action-form/fields/LazyDateCalendar.js.map +1 -0
- package/build/browser/action-form/fields/NumberInputField.js +130 -0
- package/build/browser/action-form/fields/NumberInputField.js.map +1 -0
- package/build/browser/action-form/fields/NumberInputField.module.css +96 -0
- package/build/browser/action-form/fields/NumberInputField.module.css.js +9 -0
- package/build/browser/action-form/fields/RadioButtonsField.js +57 -0
- package/build/browser/action-form/fields/RadioButtonsField.js.map +1 -0
- package/build/browser/action-form/fields/RadioButtonsField.module.css +83 -0
- package/build/browser/action-form/fields/RadioButtonsField.module.css.js +10 -0
- package/build/browser/action-form/fields/TextAreaField.js +50 -0
- package/build/browser/action-form/fields/TextAreaField.js.map +1 -0
- package/build/browser/action-form/fields/TextInputField.js +39 -0
- package/build/browser/action-form/fields/TextInputField.js.map +1 -0
- package/build/browser/action-form/utils/coerceFieldValue.js +93 -0
- package/build/browser/action-form/utils/coerceFieldValue.js.map +1 -0
- package/build/browser/action-form/utils/getDefaultFieldDefinitions.js +120 -0
- package/build/browser/action-form/utils/getDefaultFieldDefinitions.js.map +1 -0
- package/build/browser/base-components/action-button/ActionButton.module.css +0 -4
- package/build/browser/base-components/checkbox/Checkbox.js +8 -4
- package/build/browser/base-components/checkbox/Checkbox.js.map +1 -1
- package/build/browser/base-components/checkbox/Checkbox.module.css +13 -8
- package/build/browser/base-components/combobox/Combobox.js +154 -0
- package/build/browser/base-components/combobox/Combobox.js.map +1 -0
- package/build/browser/base-components/combobox/Combobox.module.css +364 -0
- package/build/browser/base-components/combobox/Combobox.module.css.js +18 -0
- package/build/browser/base-components/dialog/Dialog.js +4 -2
- package/build/browser/base-components/dialog/Dialog.js.map +1 -1
- package/build/browser/base-components/dialog/Dialog.module.css +0 -8
- package/build/browser/base-components/draggable-list/DraggableList.module.css +2 -10
- package/build/browser/base-components/search-bar/SearchBar.module.css +2 -2
- package/build/browser/base-components/searchable-menu/SearchableMenu.js +86 -0
- package/build/browser/base-components/searchable-menu/SearchableMenu.js.map +1 -0
- package/build/browser/base-components/searchable-menu/SearchableMenu.module.css +80 -0
- package/build/browser/base-components/searchable-menu/SearchableMenu.module.css.js +10 -0
- package/build/browser/base-components/select/Select.js +93 -0
- package/build/browser/base-components/select/Select.js.map +1 -0
- package/build/browser/base-components/select/Select.module.css +233 -0
- package/build/browser/base-components/select/Select.module.css.js +13 -0
- package/build/browser/base-components/skeleton/SkeletonBar.js +36 -0
- package/build/browser/base-components/skeleton/SkeletonBar.js.map +1 -0
- package/build/browser/base-components/skeleton/SkeletonBar.module.css +39 -0
- package/build/browser/base-components/skeleton/SkeletonBar.module.css.js +7 -0
- package/build/browser/base-components/switch/Switch.module.css +14 -15
- package/build/browser/base-components/tooltip/Tooltip.js +91 -0
- package/build/browser/base-components/tooltip/Tooltip.js.map +1 -0
- package/build/browser/base-components/tooltip/Tooltip.module.css +70 -0
- package/build/browser/base-components/tooltip/Tooltip.module.css.js +11 -0
- package/build/browser/base-components/tooltip/index.js +18 -0
- package/build/browser/base-components/tooltip/index.js.map +1 -0
- package/build/browser/filter-list/FilterInput.js +141 -0
- package/build/browser/filter-list/FilterInput.js.map +1 -0
- package/build/browser/filter-list/FilterList.js +142 -0
- package/build/browser/filter-list/FilterList.js.map +1 -0
- 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 +35 -0
- package/build/browser/filter-list/base/AddFilterPopover.js.map +1 -0
- package/build/browser/filter-list/base/AddFilterPopover.module.css +49 -0
- package/build/browser/filter-list/base/AddFilterPopover.module.css.js +6 -0
- package/build/browser/filter-list/base/BaseFilterList.js +94 -0
- package/build/browser/filter-list/base/BaseFilterList.js.map +1 -0
- package/build/browser/filter-list/base/BaseFilterListApi.js +2 -0
- package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -0
- package/build/browser/filter-list/base/DragHandleIcon.js +51 -0
- package/build/browser/filter-list/base/DragHandleIcon.js.map +1 -0
- package/build/browser/filter-list/base/ExcludeDropdown.js +62 -0
- package/build/browser/filter-list/base/ExcludeDropdown.js.map +1 -0
- package/build/browser/filter-list/base/ExcludeDropdown.module.css +96 -0
- package/build/browser/filter-list/base/ExcludeDropdown.module.css.js +12 -0
- package/build/browser/filter-list/base/FilterIcons.js +65 -0
- package/build/browser/filter-list/base/FilterIcons.js.map +1 -0
- package/build/browser/filter-list/base/FilterInputExcludeRow.js +67 -0
- package/build/browser/filter-list/base/FilterInputExcludeRow.js.map +1 -0
- package/build/browser/filter-list/base/FilterList.module.css +84 -6
- package/build/browser/filter-list/base/FilterList.module.css.js +6 -0
- package/build/browser/filter-list/base/FilterListContent.js +172 -6
- package/build/browser/filter-list/base/FilterListContent.js.map +1 -1
- package/build/browser/filter-list/base/FilterListContent.module.css +6 -0
- package/build/browser/filter-list/base/FilterListContent.module.css.js +2 -1
- package/build/browser/filter-list/base/FilterListHeader.js +14 -13
- package/build/browser/filter-list/base/FilterListHeader.js.map +1 -1
- package/build/browser/filter-list/base/FilterListHeader.module.css +22 -21
- package/build/browser/filter-list/base/FilterListHeader.module.css.js +1 -1
- package/build/browser/filter-list/base/FilterListItem.js +124 -27
- package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
- package/build/browser/filter-list/base/FilterListItem.module.css +173 -0
- package/build/browser/filter-list/base/FilterListItem.module.css.js +11 -1
- package/build/browser/filter-list/base/SortableFilterListItem.js +64 -0
- package/build/browser/filter-list/base/SortableFilterListItem.js.map +1 -0
- package/build/browser/filter-list/base/index.js +1 -2
- package/build/browser/filter-list/base/index.js.map +1 -1
- package/build/browser/filter-list/base/inputs/ContainsTextInput.js +5 -7
- package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/DateRangeInput.js +37 -0
- package/build/browser/filter-list/base/inputs/DateRangeInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
- package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css.js +6 -0
- package/build/browser/filter-list/base/inputs/ListogramInput.js +118 -0
- package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/ListogramInput.module.css +137 -0
- package/build/browser/filter-list/base/inputs/ListogramInput.module.css.js +14 -0
- package/build/browser/filter-list/base/inputs/ListogramSkeleton.js +45 -0
- package/build/browser/filter-list/base/inputs/ListogramSkeleton.js.map +1 -0
- package/build/browser/filter-list/base/inputs/ListogramSkeleton.module.css +32 -0
- package/build/browser/filter-list/base/inputs/ListogramSkeleton.module.css.js +8 -0
- package/build/browser/filter-list/base/inputs/MultiDateInput.js +1 -1
- package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/MultiDateInput.module.css +6 -6
- package/build/browser/filter-list/base/inputs/MultiSelectInput.js +76 -0
- package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css +37 -0
- package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css.js +8 -0
- package/build/browser/filter-list/base/inputs/NullValueWrapper.js +57 -0
- package/build/browser/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
- package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css +50 -0
- package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css.js +10 -0
- package/build/browser/filter-list/base/inputs/NumberRangeInput.js +48 -0
- package/build/browser/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/RangeInput.js +159 -0
- package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/RangeInput.module.css +106 -0
- package/build/browser/filter-list/base/inputs/RangeInput.module.css.js +13 -0
- package/build/browser/filter-list/base/inputs/SingleDateInput.js +1 -1
- package/build/browser/filter-list/base/inputs/SingleDateInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/SingleDateInput.module.css +2 -2
- package/build/browser/filter-list/base/inputs/SingleSelectInput.js +77 -0
- package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css +45 -0
- package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css.js +10 -0
- package/build/browser/filter-list/base/inputs/TextTagsInput.js +133 -0
- package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/TextTagsInput.module.css +25 -0
- package/build/browser/filter-list/base/inputs/TextTagsInput.module.css.js +7 -0
- package/build/browser/filter-list/base/inputs/TimelineInput.js +74 -0
- package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/TimelineInput.module.css +75 -0
- package/build/browser/filter-list/base/inputs/TimelineInput.module.css.js +10 -0
- package/build/browser/filter-list/base/inputs/createHistogramBuckets.js +53 -0
- package/build/browser/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
- package/build/browser/filter-list/base/inputs/index.js +5 -1
- package/build/browser/filter-list/base/inputs/index.js.map +1 -1
- package/build/browser/filter-list/base/inputs/shared.module.css +5 -5
- package/build/browser/filter-list/base/inputs/useStableData.js +29 -0
- package/build/browser/filter-list/base/inputs/useStableData.js.map +1 -0
- package/build/browser/filter-list/hooks/useFilterListState.js +56 -10
- package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
- package/build/browser/filter-list/hooks/useFilterVisibility.js +74 -0
- package/build/browser/filter-list/hooks/useFilterVisibility.js.map +1 -0
- package/build/browser/filter-list/hooks/usePropertyAggregation.js +98 -0
- package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -0
- package/build/browser/filter-list/inputs/ContainsTextFilterInput.js +38 -0
- package/build/browser/filter-list/inputs/ContainsTextFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/DateRangeFilterInput.js +109 -0
- package/build/browser/filter-list/inputs/DateRangeFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/LinkedPropertyInput.js +496 -0
- package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -0
- package/build/browser/filter-list/inputs/ListogramFilterInput.js +83 -0
- package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/MultiDateFilterInput.js +38 -0
- package/build/browser/filter-list/inputs/MultiDateFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/MultiSelectFilterInput.js +71 -0
- package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/NumberRangeFilterInput.js +109 -0
- package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/PropertyFilterInput.js +142 -0
- package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/SingleDateFilterInput.js +38 -0
- package/build/browser/filter-list/inputs/SingleDateFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/SingleSelectFilterInput.js +71 -0
- package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/TextTagsFilterInput.js +70 -0
- package/build/browser/filter-list/inputs/TextTagsFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/TimelineFilterInput.js +49 -0
- package/build/browser/filter-list/inputs/TimelineFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/ToggleFilterInput.js +36 -0
- package/build/browser/filter-list/inputs/ToggleFilterInput.js.map +1 -0
- package/build/browser/filter-list/types/AggregationTypes.js +2 -0
- package/build/browser/filter-list/types/AggregationTypes.js.map +1 -0
- package/build/browser/filter-list/types/CustomRendererTypes.js.map +1 -1
- package/build/browser/filter-list/types/LinkedFilterTypes.js.map +1 -1
- package/build/browser/filter-list/types/index.js +0 -2
- package/build/browser/filter-list/types/index.js.map +1 -1
- package/build/browser/filter-list/utils/aggregationHelpers.js +44 -0
- package/build/browser/filter-list/utils/aggregationHelpers.js.map +1 -0
- package/build/browser/filter-list/utils/filterStateSerialization.js +42 -0
- package/build/browser/filter-list/utils/filterStateSerialization.js.map +1 -0
- package/build/browser/filter-list/utils/filterStateToWhereClause.js +124 -91
- package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -1
- package/build/browser/filter-list/utils/filterValues.js +55 -1
- package/build/browser/filter-list/utils/filterValues.js.map +1 -1
- package/build/browser/filter-list/utils/getFilterKey.js +1 -1
- package/build/browser/filter-list/utils/getFilterKey.js.map +1 -1
- package/build/browser/filter-list/utils/getFilterLabel.js +36 -0
- package/build/browser/filter-list/utils/getFilterLabel.js.map +1 -0
- package/build/browser/object-table/ColumnConfigDialog.module.css +1 -11
- package/build/browser/object-table/DefaultCellRenderer.js +23 -5
- package/build/browser/object-table/DefaultCellRenderer.js.map +1 -1
- package/build/browser/object-table/EditableCell.js +87 -10
- package/build/browser/object-table/EditableCell.js.map +1 -1
- package/build/browser/object-table/EditableCell.module.css +69 -2
- package/build/browser/object-table/EditableCell.module.css.js +6 -1
- package/build/browser/object-table/LoadingCell.js +7 -3
- package/build/browser/object-table/LoadingCell.js.map +1 -1
- package/build/browser/object-table/LoadingCell.module.css +3 -21
- package/build/browser/object-table/LoadingCell.module.css.js +1 -2
- package/build/browser/object-table/LoadingRow.js +2 -1
- package/build/browser/object-table/LoadingRow.js.map +1 -1
- package/build/browser/object-table/LoadingStateTable.js +2 -1
- package/build/browser/object-table/LoadingStateTable.js.map +1 -1
- package/build/browser/object-table/MultiColumnSortDialog.js +22 -58
- package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -1
- package/build/browser/object-table/MultiColumnSortDialog.module.css +0 -69
- package/build/browser/object-table/MultiColumnSortDialog.module.css.js +0 -5
- package/build/browser/object-table/ObjectTable.js +16 -23
- 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 +1 -0
- package/build/browser/object-table/SelectionCells.js.map +1 -1
- package/build/browser/object-table/Table.js +23 -15
- package/build/browser/object-table/Table.js.map +1 -1
- package/build/browser/object-table/Table.module.css +0 -8
- package/build/browser/object-table/Table.module.css.js +1 -2
- package/build/browser/object-table/TableBody.js +8 -2
- package/build/browser/object-table/TableBody.js.map +1 -1
- package/build/browser/object-table/TableCell.module.css +2 -9
- package/build/browser/object-table/TableEditContainer.js +90 -0
- package/build/browser/object-table/TableEditContainer.js.map +1 -0
- package/build/browser/object-table/TableEditContainer.module.css +71 -0
- package/build/browser/object-table/TableEditContainer.module.css.js +13 -0
- package/build/browser/object-table/TableHeader.js +4 -1
- package/build/browser/object-table/TableHeader.js.map +1 -1
- package/build/browser/object-table/TableHeader.module.css +4 -3
- package/build/browser/object-table/TableHeader.module.css.js +1 -0
- package/build/browser/object-table/TableHeaderWithPopover.js +2 -4
- package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
- package/build/browser/object-table/TableHeaderWithPopover.module.css +1 -12
- package/build/browser/object-table/TableRow.js +10 -3
- package/build/browser/object-table/TableRow.js.map +1 -1
- package/build/browser/object-table/TableRow.module.css +2 -1
- package/build/browser/object-table/components/AsyncValueCell.js +35 -0
- package/build/browser/object-table/components/AsyncValueCell.js.map +1 -0
- package/build/browser/object-table/hooks/useColumnDefs.js +5 -2
- package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
- package/build/browser/object-table/hooks/useEditableTable.js +39 -11
- package/build/browser/object-table/hooks/useEditableTable.js.map +1 -1
- package/build/browser/object-table/hooks/useFunctionColumnsData.js +135 -0
- package/build/browser/object-table/hooks/useFunctionColumnsData.js.map +1 -0
- package/build/browser/object-table/hooks/useObjectTableData.js +33 -17
- package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
- package/build/browser/object-table/hooks/useRowSelection.js +11 -8
- package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
- package/build/browser/object-table/utils/AsyncCellData.js +30 -0
- package/build/browser/object-table/utils/AsyncCellData.js.map +1 -0
- package/build/browser/object-table/utils/constants.js +1 -0
- package/build/browser/object-table/utils/constants.js.map +1 -1
- package/build/browser/object-table/utils/getCellId.js +0 -7
- package/build/browser/object-table/utils/getCellId.js.map +1 -1
- package/build/browser/object-table/utils/types.js.map +1 -1
- package/build/browser/pdf-viewer/PdfRenderer.js +88 -0
- package/build/browser/pdf-viewer/PdfRenderer.js.map +1 -0
- package/build/browser/pdf-viewer/PdfViewer.js +179 -0
- package/build/browser/pdf-viewer/PdfViewer.js.map +1 -0
- package/build/browser/pdf-viewer/PdfViewer.module.css +95 -0
- package/build/browser/pdf-viewer/PdfViewer.module.css.js +16 -0
- package/build/browser/pdf-viewer/PdfViewerContext.js +108 -0
- package/build/browser/pdf-viewer/PdfViewerContext.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.js +141 -0
- package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.module.css +82 -0
- package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.module.css.js +12 -0
- package/build/browser/pdf-viewer/components/PdfViewerContent.js +125 -0
- package/build/browser/pdf-viewer/components/PdfViewerContent.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js +98 -0
- package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.module.css +89 -0
- package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.module.css.js +15 -0
- package/build/browser/pdf-viewer/components/PdfViewerSearchBar.js +84 -0
- package/build/browser/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerSearchBar.module.css +65 -0
- package/build/browser/pdf-viewer/components/PdfViewerSearchBar.module.css.js +10 -0
- package/build/browser/pdf-viewer/components/PdfViewerSidebar.js +78 -0
- package/build/browser/pdf-viewer/components/PdfViewerSidebar.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerSidebar.module.css +37 -0
- package/build/browser/pdf-viewer/components/PdfViewerSidebar.module.css.js +10 -0
- package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.js +54 -0
- package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.module.css +70 -0
- package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.module.css.js +8 -0
- package/build/browser/pdf-viewer/components/PdfViewerThumbnail.js +100 -0
- package/build/browser/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerThumbnail.module.css +26 -0
- package/build/browser/pdf-viewer/components/PdfViewerThumbnail.module.css.js +8 -0
- package/build/browser/pdf-viewer/components/PdfViewerToolbar.js +221 -0
- package/build/browser/pdf-viewer/components/PdfViewerToolbar.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerToolbar.module.css +91 -0
- package/build/browser/pdf-viewer/components/PdfViewerToolbar.module.css.js +13 -0
- package/build/browser/pdf-viewer/constants.js +46 -0
- package/build/browser/pdf-viewer/constants.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfAnnotationPortals.js +54 -0
- package/build/browser/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfAnnotationsByPage.js +30 -0
- package/build/browser/pdf-viewer/hooks/usePdfAnnotationsByPage.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfDocument.js +66 -0
- package/build/browser/pdf-viewer/hooks/usePdfDocument.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfFormFields.js +341 -0
- package/build/browser/pdf-viewer/hooks/usePdfFormFields.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfHighlightMode.js +227 -0
- package/build/browser/pdf-viewer/hooks/usePdfHighlightMode.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfOutline.js +268 -0
- package/build/browser/pdf-viewer/hooks/usePdfOutline.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewer.js +86 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewer.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js +80 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerSearch.js +106 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerState.js +135 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerState.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerSync.js +71 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -0
- package/build/browser/pdf-viewer/types.js +2 -0
- package/build/browser/pdf-viewer/types.js.map +1 -0
- package/build/browser/public/experimental.js +34 -0
- package/build/browser/public/experimental.js.map +1 -1
- package/build/browser/public/primitives.js +20 -0
- package/build/browser/public/primitives.js.map +1 -0
- package/build/browser/shared/ErrorBoundary.module.css +14 -14
- package/build/browser/{filter-list/utils → shared}/assertUnreachable.js +1 -1
- package/build/browser/{filter-list/utils → shared}/assertUnreachable.js.map +1 -1
- package/build/{esm/filter-list/base/inputs → browser/shared}/dateUtils.js +38 -2
- package/build/browser/shared/dateUtils.js.map +1 -0
- package/build/browser/shared/typedMemo.js +25 -0
- package/build/browser/shared/typedMemo.js.map +1 -0
- package/build/browser/styles.css +4452 -1405
- package/build/cjs/DateCalendar-QWGFKD6J.css +113 -0
- package/build/cjs/DateCalendar-QWGFKD6J.css.map +1 -0
- package/build/cjs/DateCalendar-R44GMN3O.cjs +67 -0
- package/build/cjs/DateCalendar-R44GMN3O.cjs.map +1 -0
- package/build/cjs/chunk-HMQTYQEX.cjs +9 -0
- package/build/cjs/chunk-HMQTYQEX.cjs.map +1 -0
- package/build/cjs/chunk-MRRRZN44.cjs +165 -0
- package/build/cjs/chunk-MRRRZN44.cjs.map +1 -0
- package/build/cjs/chunk-UZ2E5NRX.cjs +8 -0
- package/build/cjs/chunk-UZ2E5NRX.cjs.map +1 -0
- package/build/cjs/index.cjs +2 -0
- package/build/cjs/public/experimental.cjs +9514 -2011
- package/build/cjs/public/experimental.cjs.map +1 -1
- package/build/cjs/public/experimental.css +3230 -736
- package/build/cjs/public/experimental.css.map +1 -1
- package/build/cjs/public/experimental.d.cts +1182 -125
- package/build/cjs/public/primitives.cjs +25 -0
- package/build/cjs/public/primitives.cjs.map +1 -0
- package/build/cjs/public/primitives.css +154 -0
- package/build/cjs/public/primitives.css.map +1 -0
- package/build/cjs/public/primitives.d.cts +50 -0
- package/build/esm/action-form/ActionForm.js +117 -0
- package/build/esm/action-form/ActionForm.js.map +1 -0
- package/build/esm/action-form/ActionFormApi.js.map +1 -1
- package/build/esm/action-form/BaseForm.js +83 -0
- package/build/esm/action-form/BaseForm.js.map +1 -0
- package/build/esm/action-form/BaseForm.module.css +38 -0
- package/build/esm/action-form/FormField.js +42 -0
- package/build/esm/action-form/FormField.js.map +1 -0
- package/build/esm/action-form/FormField.module.css +41 -0
- package/build/esm/action-form/FormFieldApi.js.map +1 -1
- package/build/esm/action-form/FormHeader.js +26 -0
- package/build/esm/action-form/FormHeader.js.map +1 -0
- package/build/esm/action-form/FormHeader.module.css +26 -0
- package/build/esm/action-form/fields/BaseInput.module.css +56 -0
- package/build/esm/action-form/fields/CustomField.js +30 -0
- package/build/esm/action-form/fields/CustomField.js.map +1 -0
- package/build/esm/action-form/fields/DateCalendar.js +70 -0
- package/build/esm/action-form/fields/DateCalendar.js.map +1 -0
- package/build/esm/action-form/fields/DateCalendar.module.css +136 -0
- package/build/esm/action-form/fields/DatetimePickerField.js +98 -0
- package/build/esm/action-form/fields/DatetimePickerField.js.map +1 -0
- package/build/esm/action-form/fields/DatetimePickerField.module.css +66 -0
- package/build/esm/action-form/fields/DropdownField.js +104 -0
- package/build/esm/action-form/fields/DropdownField.js.map +1 -0
- package/build/esm/action-form/fields/FieldBridge.js +45 -0
- package/build/esm/action-form/fields/FieldBridge.js.map +1 -0
- package/build/esm/action-form/fields/FilePickerField.js +119 -0
- package/build/esm/action-form/fields/FilePickerField.js.map +1 -0
- package/build/esm/action-form/fields/FilePickerField.module.css +132 -0
- package/build/esm/action-form/fields/FormFieldRenderer.js +128 -0
- package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -0
- package/build/esm/action-form/fields/LazyDateCalendar.js +27 -0
- package/build/esm/action-form/fields/LazyDateCalendar.js.map +1 -0
- package/build/esm/action-form/fields/NumberInputField.js +130 -0
- package/build/esm/action-form/fields/NumberInputField.js.map +1 -0
- package/build/esm/action-form/fields/NumberInputField.module.css +96 -0
- package/build/esm/action-form/fields/RadioButtonsField.js +57 -0
- package/build/esm/action-form/fields/RadioButtonsField.js.map +1 -0
- package/build/esm/action-form/fields/RadioButtonsField.module.css +83 -0
- package/build/esm/action-form/fields/TextAreaField.js +50 -0
- package/build/esm/action-form/fields/TextAreaField.js.map +1 -0
- package/build/esm/action-form/fields/TextInputField.js +39 -0
- package/build/esm/action-form/fields/TextInputField.js.map +1 -0
- package/build/esm/action-form/utils/coerceFieldValue.js +93 -0
- package/build/esm/action-form/utils/coerceFieldValue.js.map +1 -0
- package/build/esm/action-form/utils/getDefaultFieldDefinitions.js +120 -0
- package/build/esm/action-form/utils/getDefaultFieldDefinitions.js.map +1 -0
- package/build/esm/base-components/action-button/ActionButton.module.css +0 -4
- package/build/esm/base-components/checkbox/Checkbox.js +8 -4
- package/build/esm/base-components/checkbox/Checkbox.js.map +1 -1
- package/build/esm/base-components/checkbox/Checkbox.module.css +13 -8
- package/build/esm/base-components/combobox/Combobox.js +154 -0
- package/build/esm/base-components/combobox/Combobox.js.map +1 -0
- package/build/esm/base-components/combobox/Combobox.module.css +364 -0
- package/build/esm/base-components/dialog/Dialog.js +4 -2
- package/build/esm/base-components/dialog/Dialog.js.map +1 -1
- package/build/esm/base-components/dialog/Dialog.module.css +0 -8
- package/build/esm/base-components/draggable-list/DraggableList.module.css +2 -10
- package/build/esm/base-components/search-bar/SearchBar.module.css +2 -2
- package/build/esm/base-components/searchable-menu/SearchableMenu.js +86 -0
- package/build/esm/base-components/searchable-menu/SearchableMenu.js.map +1 -0
- package/build/esm/base-components/searchable-menu/SearchableMenu.module.css +80 -0
- package/build/esm/base-components/select/Select.js +93 -0
- package/build/esm/base-components/select/Select.js.map +1 -0
- package/build/esm/base-components/select/Select.module.css +233 -0
- package/build/esm/base-components/skeleton/SkeletonBar.js +36 -0
- package/build/esm/base-components/skeleton/SkeletonBar.js.map +1 -0
- package/build/esm/base-components/skeleton/SkeletonBar.module.css +39 -0
- package/build/esm/base-components/switch/Switch.module.css +14 -15
- package/build/esm/base-components/tooltip/Tooltip.js +91 -0
- package/build/esm/base-components/tooltip/Tooltip.js.map +1 -0
- package/build/esm/base-components/tooltip/Tooltip.module.css +70 -0
- package/build/esm/base-components/tooltip/index.js +18 -0
- package/build/esm/base-components/tooltip/index.js.map +1 -0
- package/build/esm/filter-list/FilterInput.js +141 -0
- package/build/esm/filter-list/FilterInput.js.map +1 -0
- package/build/esm/filter-list/FilterList.js +142 -0
- package/build/esm/filter-list/FilterList.js.map +1 -0
- 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 +35 -0
- package/build/esm/filter-list/base/AddFilterPopover.js.map +1 -0
- package/build/esm/filter-list/base/AddFilterPopover.module.css +49 -0
- package/build/esm/filter-list/base/BaseFilterList.js +94 -0
- package/build/esm/filter-list/base/BaseFilterList.js.map +1 -0
- package/build/esm/filter-list/base/BaseFilterListApi.js +2 -0
- package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -0
- package/build/esm/filter-list/base/DragHandleIcon.js +51 -0
- package/build/esm/filter-list/base/DragHandleIcon.js.map +1 -0
- package/build/esm/filter-list/base/ExcludeDropdown.js +62 -0
- package/build/esm/filter-list/base/ExcludeDropdown.js.map +1 -0
- package/build/esm/filter-list/base/ExcludeDropdown.module.css +96 -0
- package/build/esm/filter-list/base/FilterIcons.js +65 -0
- package/build/esm/filter-list/base/FilterIcons.js.map +1 -0
- package/build/esm/filter-list/base/FilterInputExcludeRow.js +67 -0
- package/build/esm/filter-list/base/FilterInputExcludeRow.js.map +1 -0
- package/build/esm/filter-list/base/FilterList.module.css +84 -6
- package/build/esm/filter-list/base/FilterListContent.js +172 -6
- package/build/esm/filter-list/base/FilterListContent.js.map +1 -1
- package/build/esm/filter-list/base/FilterListContent.module.css +6 -0
- package/build/esm/filter-list/base/FilterListHeader.js +14 -13
- package/build/esm/filter-list/base/FilterListHeader.js.map +1 -1
- package/build/esm/filter-list/base/FilterListHeader.module.css +22 -21
- package/build/esm/filter-list/base/FilterListItem.js +124 -27
- package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
- package/build/esm/filter-list/base/FilterListItem.module.css +173 -0
- package/build/esm/filter-list/base/SortableFilterListItem.js +64 -0
- package/build/esm/filter-list/base/SortableFilterListItem.js.map +1 -0
- package/build/esm/filter-list/base/index.js +1 -2
- package/build/esm/filter-list/base/index.js.map +1 -1
- package/build/esm/filter-list/base/inputs/ContainsTextInput.js +5 -7
- package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/DateRangeInput.js +37 -0
- package/build/esm/filter-list/base/inputs/DateRangeInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
- package/build/esm/filter-list/base/inputs/ListogramInput.js +118 -0
- package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/ListogramInput.module.css +137 -0
- package/build/esm/filter-list/base/inputs/ListogramSkeleton.js +45 -0
- package/build/esm/filter-list/base/inputs/ListogramSkeleton.js.map +1 -0
- package/build/esm/filter-list/base/inputs/ListogramSkeleton.module.css +32 -0
- package/build/esm/filter-list/base/inputs/MultiDateInput.js +1 -1
- package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/MultiDateInput.module.css +6 -6
- package/build/esm/filter-list/base/inputs/MultiSelectInput.js +76 -0
- package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/MultiSelectInput.module.css +37 -0
- package/build/esm/filter-list/base/inputs/NullValueWrapper.js +57 -0
- package/build/esm/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
- package/build/esm/filter-list/base/inputs/NullValueWrapper.module.css +50 -0
- package/build/esm/filter-list/base/inputs/NumberRangeInput.js +48 -0
- package/build/esm/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/RangeInput.js +159 -0
- package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/RangeInput.module.css +106 -0
- package/build/esm/filter-list/base/inputs/SingleDateInput.js +1 -1
- package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/SingleDateInput.module.css +2 -2
- package/build/esm/filter-list/base/inputs/SingleSelectInput.js +77 -0
- package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/SingleSelectInput.module.css +45 -0
- package/build/esm/filter-list/base/inputs/TextTagsInput.js +133 -0
- package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/TextTagsInput.module.css +25 -0
- package/build/esm/filter-list/base/inputs/TimelineInput.js +74 -0
- package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/TimelineInput.module.css +75 -0
- package/build/esm/filter-list/base/inputs/createHistogramBuckets.js +53 -0
- package/build/esm/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
- package/build/esm/filter-list/base/inputs/index.js +5 -1
- package/build/esm/filter-list/base/inputs/index.js.map +1 -1
- package/build/esm/filter-list/base/inputs/shared.module.css +5 -5
- package/build/esm/filter-list/base/inputs/useStableData.js +29 -0
- package/build/esm/filter-list/base/inputs/useStableData.js.map +1 -0
- package/build/esm/filter-list/hooks/useFilterListState.js +56 -10
- package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
- package/build/esm/filter-list/hooks/useFilterVisibility.js +74 -0
- package/build/esm/filter-list/hooks/useFilterVisibility.js.map +1 -0
- package/build/esm/filter-list/hooks/usePropertyAggregation.js +98 -0
- package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -0
- package/build/esm/filter-list/inputs/ContainsTextFilterInput.js +38 -0
- package/build/esm/filter-list/inputs/ContainsTextFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/DateRangeFilterInput.js +109 -0
- package/build/esm/filter-list/inputs/DateRangeFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/LinkedPropertyInput.js +496 -0
- package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -0
- package/build/esm/filter-list/inputs/ListogramFilterInput.js +83 -0
- package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/MultiDateFilterInput.js +38 -0
- package/build/esm/filter-list/inputs/MultiDateFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/MultiSelectFilterInput.js +71 -0
- package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/NumberRangeFilterInput.js +109 -0
- package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/PropertyFilterInput.js +142 -0
- package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/SingleDateFilterInput.js +38 -0
- package/build/esm/filter-list/inputs/SingleDateFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/SingleSelectFilterInput.js +71 -0
- package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/TextTagsFilterInput.js +70 -0
- package/build/esm/filter-list/inputs/TextTagsFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/TimelineFilterInput.js +49 -0
- package/build/esm/filter-list/inputs/TimelineFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/ToggleFilterInput.js +36 -0
- package/build/esm/filter-list/inputs/ToggleFilterInput.js.map +1 -0
- package/build/esm/filter-list/types/AggregationTypes.js +2 -0
- package/build/esm/filter-list/types/AggregationTypes.js.map +1 -0
- package/build/esm/filter-list/types/CustomRendererTypes.js.map +1 -1
- package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -1
- package/build/esm/filter-list/types/index.js +0 -2
- package/build/esm/filter-list/types/index.js.map +1 -1
- package/build/esm/filter-list/utils/aggregationHelpers.js +44 -0
- package/build/esm/filter-list/utils/aggregationHelpers.js.map +1 -0
- package/build/esm/filter-list/utils/filterStateSerialization.js +42 -0
- package/build/esm/filter-list/utils/filterStateSerialization.js.map +1 -0
- package/build/esm/filter-list/utils/filterStateToWhereClause.js +124 -91
- package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -1
- package/build/esm/filter-list/utils/filterValues.js +55 -1
- package/build/esm/filter-list/utils/filterValues.js.map +1 -1
- package/build/esm/filter-list/utils/getFilterKey.js +1 -1
- package/build/esm/filter-list/utils/getFilterKey.js.map +1 -1
- package/build/esm/filter-list/utils/getFilterLabel.js +36 -0
- package/build/esm/filter-list/utils/getFilterLabel.js.map +1 -0
- package/build/esm/object-table/ColumnConfigDialog.module.css +1 -11
- package/build/esm/object-table/DefaultCellRenderer.js +23 -5
- package/build/esm/object-table/DefaultCellRenderer.js.map +1 -1
- package/build/esm/object-table/EditableCell.js +87 -10
- package/build/esm/object-table/EditableCell.js.map +1 -1
- package/build/esm/object-table/EditableCell.module.css +69 -2
- package/build/esm/object-table/LoadingCell.js +7 -3
- package/build/esm/object-table/LoadingCell.js.map +1 -1
- package/build/esm/object-table/LoadingCell.module.css +3 -21
- package/build/esm/object-table/LoadingRow.js +2 -1
- package/build/esm/object-table/LoadingRow.js.map +1 -1
- package/build/esm/object-table/LoadingStateTable.js +2 -1
- package/build/esm/object-table/LoadingStateTable.js.map +1 -1
- package/build/esm/object-table/MultiColumnSortDialog.js +22 -58
- package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -1
- package/build/esm/object-table/MultiColumnSortDialog.module.css +0 -69
- package/build/esm/object-table/ObjectTable.js +16 -23
- 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 +1 -0
- package/build/esm/object-table/SelectionCells.js.map +1 -1
- package/build/esm/object-table/Table.js +23 -15
- package/build/esm/object-table/Table.js.map +1 -1
- package/build/esm/object-table/Table.module.css +0 -8
- package/build/esm/object-table/TableBody.js +8 -2
- package/build/esm/object-table/TableBody.js.map +1 -1
- package/build/esm/object-table/TableCell.module.css +2 -9
- package/build/esm/object-table/TableEditContainer.js +90 -0
- package/build/esm/object-table/TableEditContainer.js.map +1 -0
- package/build/esm/object-table/TableEditContainer.module.css +71 -0
- package/build/esm/object-table/TableHeader.js +4 -1
- package/build/esm/object-table/TableHeader.js.map +1 -1
- package/build/esm/object-table/TableHeader.module.css +4 -3
- package/build/esm/object-table/TableHeaderWithPopover.js +2 -4
- package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
- package/build/esm/object-table/TableHeaderWithPopover.module.css +1 -12
- package/build/esm/object-table/TableRow.js +10 -3
- package/build/esm/object-table/TableRow.js.map +1 -1
- package/build/esm/object-table/TableRow.module.css +2 -1
- package/build/esm/object-table/components/AsyncValueCell.js +35 -0
- package/build/esm/object-table/components/AsyncValueCell.js.map +1 -0
- package/build/esm/object-table/hooks/useColumnDefs.js +5 -2
- package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
- package/build/esm/object-table/hooks/useEditableTable.js +39 -11
- package/build/esm/object-table/hooks/useEditableTable.js.map +1 -1
- package/build/esm/object-table/hooks/useFunctionColumnsData.js +135 -0
- package/build/esm/object-table/hooks/useFunctionColumnsData.js.map +1 -0
- package/build/esm/object-table/hooks/useObjectTableData.js +33 -17
- package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
- package/build/esm/object-table/hooks/useRowSelection.js +11 -8
- package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
- package/build/esm/object-table/utils/AsyncCellData.js +30 -0
- package/build/esm/object-table/utils/AsyncCellData.js.map +1 -0
- package/build/esm/object-table/utils/constants.js +1 -0
- package/build/esm/object-table/utils/constants.js.map +1 -1
- package/build/esm/object-table/utils/getCellId.js +0 -7
- package/build/esm/object-table/utils/getCellId.js.map +1 -1
- package/build/esm/object-table/utils/types.js.map +1 -1
- package/build/esm/pdf-viewer/PdfRenderer.js +88 -0
- package/build/esm/pdf-viewer/PdfRenderer.js.map +1 -0
- package/build/esm/pdf-viewer/PdfViewer.js +179 -0
- package/build/esm/pdf-viewer/PdfViewer.js.map +1 -0
- package/build/esm/pdf-viewer/PdfViewer.module.css +95 -0
- package/build/esm/pdf-viewer/PdfViewerContext.js +108 -0
- package/build/esm/pdf-viewer/PdfViewerContext.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.js +141 -0
- package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.module.css +82 -0
- package/build/esm/pdf-viewer/components/PdfViewerContent.js +125 -0
- package/build/esm/pdf-viewer/components/PdfViewerContent.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js +98 -0
- package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.module.css +89 -0
- package/build/esm/pdf-viewer/components/PdfViewerSearchBar.js +84 -0
- package/build/esm/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerSearchBar.module.css +65 -0
- package/build/esm/pdf-viewer/components/PdfViewerSidebar.js +78 -0
- package/build/esm/pdf-viewer/components/PdfViewerSidebar.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerSidebar.module.css +37 -0
- package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.js +54 -0
- package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.module.css +70 -0
- package/build/esm/pdf-viewer/components/PdfViewerThumbnail.js +100 -0
- package/build/esm/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerThumbnail.module.css +26 -0
- package/build/esm/pdf-viewer/components/PdfViewerToolbar.js +221 -0
- package/build/esm/pdf-viewer/components/PdfViewerToolbar.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerToolbar.module.css +91 -0
- package/build/esm/pdf-viewer/constants.js +46 -0
- package/build/esm/pdf-viewer/constants.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfAnnotationPortals.js +54 -0
- package/build/esm/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfAnnotationsByPage.js +30 -0
- package/build/esm/pdf-viewer/hooks/usePdfAnnotationsByPage.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfDocument.js +66 -0
- package/build/esm/pdf-viewer/hooks/usePdfDocument.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfFormFields.js +341 -0
- package/build/esm/pdf-viewer/hooks/usePdfFormFields.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfHighlightMode.js +227 -0
- package/build/esm/pdf-viewer/hooks/usePdfHighlightMode.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfOutline.js +268 -0
- package/build/esm/pdf-viewer/hooks/usePdfOutline.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewer.js +86 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewer.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js +80 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerSearch.js +106 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerState.js +135 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerState.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerSync.js +71 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -0
- package/build/esm/pdf-viewer/types.js +2 -0
- package/build/esm/pdf-viewer/types.js.map +1 -0
- package/build/esm/public/experimental.js +34 -0
- package/build/esm/public/experimental.js.map +1 -1
- package/build/esm/public/primitives.js +20 -0
- package/build/esm/public/primitives.js.map +1 -0
- package/build/esm/shared/ErrorBoundary.module.css +14 -14
- package/build/esm/{filter-list/utils → shared}/assertUnreachable.js +1 -1
- package/build/esm/{filter-list/utils → shared}/assertUnreachable.js.map +1 -1
- package/build/{browser/filter-list/base/inputs → esm/shared}/dateUtils.js +38 -2
- package/build/esm/shared/dateUtils.js.map +1 -0
- package/build/esm/shared/typedMemo.js +25 -0
- package/build/esm/shared/typedMemo.js.map +1 -0
- package/build/types/action-form/ActionForm.d.ts +4 -0
- package/build/types/action-form/ActionForm.d.ts.map +1 -0
- package/build/types/action-form/ActionFormApi.d.ts +49 -32
- package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
- package/build/types/action-form/BaseForm.d.ts +3 -0
- package/build/types/action-form/BaseForm.d.ts.map +1 -0
- package/build/types/action-form/FormField.d.ts +11 -0
- package/build/types/action-form/FormField.d.ts.map +1 -0
- package/build/types/action-form/FormFieldApi.d.ts +152 -51
- package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
- package/build/types/action-form/FormHeader.d.ts +6 -0
- package/build/types/action-form/FormHeader.d.ts.map +1 -0
- package/build/types/action-form/fields/CustomField.d.ts +9 -0
- package/build/types/action-form/fields/CustomField.d.ts.map +1 -0
- package/build/types/action-form/fields/DateCalendar.d.ts +9 -0
- package/build/types/action-form/fields/DateCalendar.d.ts.map +1 -0
- package/build/types/action-form/fields/DatetimePickerField.d.ts +3 -0
- package/build/types/action-form/fields/DatetimePickerField.d.ts.map +1 -0
- package/build/types/action-form/fields/DropdownField.d.ts +6 -0
- package/build/types/action-form/fields/DropdownField.d.ts.map +1 -0
- package/build/types/action-form/fields/FieldBridge.d.ts +9 -0
- package/build/types/action-form/fields/FieldBridge.d.ts.map +1 -0
- package/build/types/action-form/fields/FilePickerField.d.ts +3 -0
- package/build/types/action-form/fields/FilePickerField.d.ts.map +1 -0
- package/build/types/action-form/fields/FormFieldRenderer.d.ts +8 -0
- package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -0
- package/build/types/action-form/fields/LazyDateCalendar.d.ts +3 -0
- package/build/types/action-form/fields/LazyDateCalendar.d.ts.map +1 -0
- package/build/types/action-form/fields/NumberInputField.d.ts +3 -0
- package/build/types/action-form/fields/NumberInputField.d.ts.map +1 -0
- package/build/types/action-form/fields/RadioButtonsField.d.ts +3 -0
- package/build/types/action-form/fields/RadioButtonsField.d.ts.map +1 -0
- package/build/types/action-form/fields/TextAreaField.d.ts +3 -0
- package/build/types/action-form/fields/TextAreaField.d.ts.map +1 -0
- package/build/types/action-form/fields/TextInputField.d.ts +5 -0
- package/build/types/action-form/fields/TextInputField.d.ts.map +1 -0
- package/build/types/action-form/utils/coerceFieldValue.d.ts +10 -0
- package/build/types/action-form/utils/coerceFieldValue.d.ts.map +1 -0
- package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts +9 -0
- package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts.map +1 -0
- package/build/types/base-components/checkbox/Checkbox.d.ts +2 -1
- package/build/types/base-components/checkbox/Checkbox.d.ts.map +1 -1
- package/build/types/base-components/combobox/Combobox.d.ts +65 -0
- package/build/types/base-components/combobox/Combobox.d.ts.map +1 -0
- package/build/types/base-components/dialog/Dialog.d.ts +3 -2
- package/build/types/base-components/dialog/Dialog.d.ts.map +1 -1
- package/build/types/base-components/searchable-menu/SearchableMenu.d.ts +18 -0
- package/build/types/base-components/searchable-menu/SearchableMenu.d.ts.map +1 -0
- package/build/types/base-components/select/Select.d.ts +40 -0
- package/build/types/base-components/select/Select.d.ts.map +1 -0
- package/build/types/base-components/skeleton/SkeletonBar.d.ts +9 -0
- package/build/types/base-components/skeleton/SkeletonBar.d.ts.map +1 -0
- package/build/types/base-components/tooltip/Tooltip.d.ts +31 -0
- package/build/types/base-components/tooltip/Tooltip.d.ts.map +1 -0
- package/build/types/base-components/tooltip/index.d.ts +1 -0
- package/build/types/base-components/tooltip/index.d.ts.map +1 -0
- package/build/types/filter-list/FilterInput.d.ts +17 -0
- package/build/types/filter-list/FilterInput.d.ts.map +1 -0
- package/build/types/filter-list/{base/FilterList.d.ts → FilterList.d.ts} +1 -1
- package/build/types/filter-list/FilterList.d.ts.map +1 -0
- package/build/types/filter-list/FilterListApi.d.ts +49 -33
- package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
- package/build/types/filter-list/FilterListItemApi.d.ts +22 -6
- package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
- package/build/types/filter-list/base/AddFilterPopover.d.ts +13 -0
- package/build/types/filter-list/base/AddFilterPopover.d.ts.map +1 -0
- package/build/types/filter-list/base/BaseFilterList.d.ts +3 -0
- package/build/types/filter-list/base/BaseFilterList.d.ts.map +1 -0
- package/build/types/filter-list/base/BaseFilterListApi.d.ts +32 -0
- package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -0
- package/build/types/filter-list/base/DragHandleIcon.d.ts +2 -0
- package/build/types/filter-list/base/DragHandleIcon.d.ts.map +1 -0
- package/build/types/filter-list/base/ExcludeDropdown.d.ts +8 -0
- package/build/types/filter-list/base/ExcludeDropdown.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterIcons.d.ts +10 -0
- package/build/types/filter-list/base/FilterIcons.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterInputExcludeRow.d.ts +13 -0
- package/build/types/filter-list/base/FilterInputExcludeRow.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterListContent.d.ts +9 -6
- package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterListHeader.d.ts +3 -2
- package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterListItem.d.ts +10 -6
- package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -1
- package/build/types/filter-list/base/SortableFilterListItem.d.ts +16 -0
- package/build/types/filter-list/base/SortableFilterListItem.d.ts.map +1 -0
- package/build/types/filter-list/base/index.d.ts +2 -2
- package/build/types/filter-list/base/index.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/DateRangeInput.d.ts +17 -0
- package/build/types/filter-list/base/inputs/DateRangeInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/ListogramInput.d.ts +21 -0
- package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/ListogramSkeleton.d.ts +2 -0
- package/build/types/filter-list/base/inputs/ListogramSkeleton.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts +16 -0
- package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts +15 -0
- package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts +17 -0
- package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/RangeInput.d.ts +30 -0
- package/build/types/filter-list/base/inputs/RangeInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts +18 -0
- package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/TextTagsInput.d.ts +18 -0
- package/build/types/filter-list/base/inputs/TextTagsInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/TimelineInput.d.ts +11 -0
- package/build/types/filter-list/base/inputs/TimelineInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts +16 -0
- package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/index.d.ts +5 -1
- package/build/types/filter-list/base/inputs/index.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/useStableData.d.ts +1 -0
- package/build/types/filter-list/base/inputs/useStableData.d.ts.map +1 -0
- package/build/types/filter-list/hooks/useFilterListState.d.ts +2 -0
- package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -1
- package/build/types/filter-list/hooks/useFilterVisibility.d.ts +10 -0
- package/build/types/filter-list/hooks/useFilterVisibility.d.ts.map +1 -0
- package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +18 -0
- package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -0
- package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts +10 -0
- package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts +13 -0
- package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts +22 -0
- package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/ListogramFilterInput.d.ts +19 -0
- package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts +9 -0
- package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts +15 -0
- package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts +13 -0
- package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/PropertyFilterInput.d.ts +19 -0
- package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts +9 -0
- package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts +15 -0
- package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts +15 -0
- package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/TimelineFilterInput.d.ts +9 -0
- package/build/types/filter-list/inputs/TimelineFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/ToggleFilterInput.d.ts +9 -0
- package/build/types/filter-list/inputs/ToggleFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/types/AggregationTypes.d.ts +5 -0
- package/build/types/filter-list/types/AggregationTypes.d.ts.map +1 -0
- package/build/types/filter-list/types/CustomRendererTypes.d.ts +2 -1
- package/build/types/filter-list/types/CustomRendererTypes.d.ts.map +1 -1
- package/build/types/filter-list/types/LinkedFilterTypes.d.ts +0 -19
- package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -1
- package/build/types/filter-list/types/index.d.ts +0 -2
- package/build/types/filter-list/types/index.d.ts.map +1 -1
- package/build/types/filter-list/utils/aggregationHelpers.d.ts +9 -0
- package/build/types/filter-list/utils/aggregationHelpers.d.ts.map +1 -0
- package/build/types/filter-list/utils/filterStateSerialization.d.ts +3 -0
- package/build/types/filter-list/utils/filterStateSerialization.d.ts.map +1 -0
- package/build/types/filter-list/utils/filterStateToWhereClause.d.ts +5 -1
- package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -1
- package/build/types/filter-list/utils/filterValues.d.ts +4 -0
- 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 +3 -0
- package/build/types/filter-list/utils/getFilterLabel.d.ts.map +1 -0
- package/build/types/object-table/DefaultCellRenderer.d.ts +2 -2
- package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -1
- package/build/types/object-table/EditableCell.d.ts +22 -6
- package/build/types/object-table/EditableCell.d.ts.map +1 -1
- package/build/types/object-table/LoadingCell.d.ts +1 -0
- 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/ObjectTable.d.ts +1 -9
- package/build/types/object-table/ObjectTable.d.ts.map +1 -1
- package/build/types/object-table/ObjectTableApi.d.ts +82 -22
- package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
- package/build/types/object-table/Table.d.ts +10 -10
- package/build/types/object-table/Table.d.ts.map +1 -1
- package/build/types/object-table/TableBody.d.ts +4 -1
- package/build/types/object-table/TableBody.d.ts.map +1 -1
- package/build/types/object-table/TableEditContainer.d.ts +9 -0
- package/build/types/object-table/TableEditContainer.d.ts.map +1 -0
- package/build/types/object-table/TableHeader.d.ts.map +1 -1
- package/build/types/object-table/TableRow.d.ts +4 -1
- package/build/types/object-table/TableRow.d.ts.map +1 -1
- package/build/types/object-table/components/AsyncValueCell.d.ts +5 -0
- package/build/types/object-table/components/AsyncValueCell.d.ts.map +1 -0
- package/build/types/object-table/hooks/useEditableTable.d.ts +4 -9
- package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -1
- package/build/types/object-table/hooks/useFunctionColumnsData.d.ts +13 -0
- package/build/types/object-table/hooks/useFunctionColumnsData.d.ts.map +1 -0
- package/build/types/object-table/hooks/useObjectTableData.d.ts +6 -1
- package/build/types/object-table/hooks/useObjectTableData.d.ts.map +1 -1
- package/build/types/object-table/hooks/useRowSelection.d.ts +3 -2
- package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
- package/build/types/object-table/utils/AsyncCellData.d.ts +8 -0
- package/build/types/object-table/utils/AsyncCellData.d.ts.map +1 -0
- package/build/types/object-table/utils/constants.d.ts +1 -0
- package/build/types/object-table/utils/constants.d.ts.map +1 -1
- package/build/types/object-table/utils/getCellId.d.ts +0 -1
- package/build/types/object-table/utils/getCellId.d.ts.map +1 -1
- package/build/types/object-table/utils/types.d.ts +28 -3
- package/build/types/object-table/utils/types.d.ts.map +1 -1
- package/build/types/pdf-viewer/PdfRenderer.d.ts +8 -0
- package/build/types/pdf-viewer/PdfRenderer.d.ts.map +1 -0
- package/build/types/pdf-viewer/PdfViewer.d.ts +4 -0
- package/build/types/pdf-viewer/PdfViewer.d.ts.map +1 -0
- package/build/types/pdf-viewer/PdfViewerContext.d.ts +64 -0
- package/build/types/pdf-viewer/PdfViewerContext.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerAnnotationLayer.d.ts +9 -0
- package/build/types/pdf-viewer/components/PdfViewerAnnotationLayer.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerContent.d.ts +26 -0
- package/build/types/pdf-viewer/components/PdfViewerContent.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerOutlineSidebar.d.ts +11 -0
- package/build/types/pdf-viewer/components/PdfViewerOutlineSidebar.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerSearchBar.d.ts +11 -0
- package/build/types/pdf-viewer/components/PdfViewerSearchBar.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerSidebar.d.ts +12 -0
- package/build/types/pdf-viewer/components/PdfViewerSidebar.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerSidebarHeader.d.ts +7 -0
- package/build/types/pdf-viewer/components/PdfViewerSidebarHeader.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerThumbnail.d.ts +10 -0
- package/build/types/pdf-viewer/components/PdfViewerThumbnail.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerToolbar.d.ts +21 -0
- package/build/types/pdf-viewer/components/PdfViewerToolbar.d.ts.map +1 -0
- package/build/types/pdf-viewer/constants.d.ts +22 -0
- package/build/types/pdf-viewer/constants.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfAnnotationPortals.d.ts +10 -0
- package/build/types/pdf-viewer/hooks/usePdfAnnotationPortals.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfAnnotationsByPage.d.ts +5 -0
- package/build/types/pdf-viewer/hooks/usePdfAnnotationsByPage.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts +9 -0
- package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfFormFields.d.ts +24 -0
- package/build/types/pdf-viewer/hooks/usePdfFormFields.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfHighlightMode.d.ts +36 -0
- package/build/types/pdf-viewer/hooks/usePdfHighlightMode.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfOutline.d.ts +3 -0
- package/build/types/pdf-viewer/hooks/usePdfOutline.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts +9 -0
- package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts +43 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerSearch.d.ts +15 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerSearch.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts +39 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerSync.d.ts +15 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerSync.d.ts.map +1 -0
- package/build/types/pdf-viewer/types.d.ts +210 -0
- package/build/types/pdf-viewer/types.d.ts.map +1 -0
- package/build/types/public/experimental.d.ts +33 -2
- package/build/types/public/experimental.d.ts.map +1 -1
- package/build/types/public/primitives.d.ts +3 -0
- package/build/types/public/primitives.d.ts.map +1 -0
- package/build/types/shared/assertUnreachable.d.ts.map +1 -0
- package/build/types/shared/dateUtils.d.ts +31 -0
- package/build/types/shared/dateUtils.d.ts.map +1 -0
- package/build/types/shared/typedMemo.d.ts +6 -0
- package/build/types/shared/typedMemo.d.ts.map +1 -0
- package/package.json +23 -10
- package/primitives.d.ts +17 -0
- package/build/browser/filter-list/__tests__/dateUtils.test.js +0 -55
- package/build/browser/filter-list/__tests__/dateUtils.test.js.map +0 -1
- package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js +0 -296
- package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js.map +0 -1
- package/build/browser/filter-list/__tests__/getFilterKey.test.js +0 -53
- package/build/browser/filter-list/__tests__/getFilterKey.test.js.map +0 -1
- package/build/browser/filter-list/__tests__/testUtils.js +0 -203
- package/build/browser/filter-list/__tests__/testUtils.js.map +0 -1
- package/build/browser/filter-list/base/FilterInput.js +0 -225
- package/build/browser/filter-list/base/FilterInput.js.map +0 -1
- package/build/browser/filter-list/base/FilterList.js +0 -73
- package/build/browser/filter-list/base/FilterList.js.map +0 -1
- package/build/browser/filter-list/base/inputs/dateUtils.js.map +0 -1
- package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js +0 -128
- package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js.map +0 -1
- package/build/browser/filter-list/types/AddFilterMenuTypes.js +0 -2
- package/build/browser/filter-list/types/AddFilterMenuTypes.js.map +0 -1
- package/build/browser/filter-list/types/FilterPanelTypes.js +0 -2
- package/build/browser/filter-list/types/FilterPanelTypes.js.map +0 -1
- package/build/browser/object-table/__tests__/useEditableTable.test.js +0 -197
- package/build/browser/object-table/__tests__/useEditableTable.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js +0 -147
- package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js +0 -520
- package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useColumnPinning.test.js +0 -266
- package/build/browser/object-table/hooks/__tests__/useColumnPinning.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js +0 -200
- package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js +0 -315
- package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js +0 -596
- package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js +0 -220
- package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js +0 -501
- package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js.map +0 -1
- package/build/esm/filter-list/__tests__/dateUtils.test.js +0 -55
- package/build/esm/filter-list/__tests__/dateUtils.test.js.map +0 -1
- package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js +0 -296
- package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js.map +0 -1
- package/build/esm/filter-list/__tests__/getFilterKey.test.js +0 -53
- package/build/esm/filter-list/__tests__/getFilterKey.test.js.map +0 -1
- package/build/esm/filter-list/__tests__/testUtils.js +0 -203
- package/build/esm/filter-list/__tests__/testUtils.js.map +0 -1
- package/build/esm/filter-list/base/FilterInput.js +0 -225
- package/build/esm/filter-list/base/FilterInput.js.map +0 -1
- package/build/esm/filter-list/base/FilterList.js +0 -73
- package/build/esm/filter-list/base/FilterList.js.map +0 -1
- package/build/esm/filter-list/base/inputs/dateUtils.js.map +0 -1
- package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js +0 -128
- package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js.map +0 -1
- package/build/esm/filter-list/types/AddFilterMenuTypes.js +0 -2
- package/build/esm/filter-list/types/AddFilterMenuTypes.js.map +0 -1
- package/build/esm/filter-list/types/FilterPanelTypes.js +0 -2
- package/build/esm/filter-list/types/FilterPanelTypes.js.map +0 -1
- package/build/esm/object-table/__tests__/useEditableTable.test.js +0 -197
- package/build/esm/object-table/__tests__/useEditableTable.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js +0 -147
- package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js +0 -520
- package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useColumnPinning.test.js +0 -266
- package/build/esm/object-table/hooks/__tests__/useColumnPinning.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js +0 -200
- package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js +0 -315
- package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js +0 -596
- package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js +0 -220
- package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js +0 -501
- package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js.map +0 -1
- package/build/types/filter-list/__tests__/dateUtils.test.d.ts +0 -1
- package/build/types/filter-list/__tests__/dateUtils.test.d.ts.map +0 -1
- package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts +0 -1
- package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts.map +0 -1
- package/build/types/filter-list/__tests__/getFilterKey.test.d.ts +0 -1
- package/build/types/filter-list/__tests__/getFilterKey.test.d.ts.map +0 -1
- package/build/types/filter-list/__tests__/testUtils.d.ts +0 -65
- package/build/types/filter-list/__tests__/testUtils.d.ts.map +0 -1
- package/build/types/filter-list/base/FilterInput.d.ts +0 -13
- package/build/types/filter-list/base/FilterInput.d.ts.map +0 -1
- package/build/types/filter-list/base/FilterList.d.ts.map +0 -1
- package/build/types/filter-list/base/inputs/dateUtils.d.ts +0 -17
- package/build/types/filter-list/base/inputs/dateUtils.d.ts.map +0 -1
- package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts +0 -1
- package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts.map +0 -1
- package/build/types/filter-list/types/AddFilterMenuTypes.d.ts +0 -77
- package/build/types/filter-list/types/AddFilterMenuTypes.d.ts.map +0 -1
- package/build/types/filter-list/types/FilterPanelTypes.d.ts +0 -18
- package/build/types/filter-list/types/FilterPanelTypes.d.ts.map +0 -1
- package/build/types/filter-list/utils/assertUnreachable.d.ts.map +0 -1
- package/build/types/object-table/__tests__/useEditableTable.test.d.ts +0 -1
- package/build/types/object-table/__tests__/useEditableTable.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnPinning.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnPinning.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnVisibility.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnVisibility.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useTableSorting.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useTableSorting.test.d.ts.map +0 -1
- /package/build/types/{filter-list/utils → shared}/assertUnreachable.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextTagsInput.js","names":["Button","classnames","React","memo","useCallback","useMemo","useState","Combobox","sharedStyles","styles","TAG_SEPARATOR_PATTERN","TagItem","tag","onRemove","handleRemove","createElement","className","type","tagRemove","onClick","TextTagsInputInner","suggestions","isLoading","error","tags","onChange","style","placeholder","allowCustomTags","suggestionLimit","ariaLabel","inputValue","setInputValue","filteredSuggestions","lowerInput","toLowerCase","filter","s","trim","value","includes","slice","addTag","trimmedTag","removeTag","t","handleValueChange","newTags","handleInputValueChange","handleKeyDown","e","key","length","preventDefault","handlePaste","pastedText","clipboardData","getData","test","split","map","textTags","errorMessage","message","Root","multiple","onValueChange","onInputValueChange","tagContainer","SearchInput","input","onKeyDown","onPaste","Portal","Positioner","Popup","Empty","count","Item","toLocaleString","loadingMessage","TextTagsInput"],"sources":["TextTagsInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo, useState } from \"react\";\nimport { Combobox } from \"../../../base-components/combobox/Combobox.js\";\nimport type { PropertyAggregationValue } from \"../../types/AggregationTypes.js\";\nimport sharedStyles from \"./shared.module.css\";\nimport styles from \"./TextTagsInput.module.css\";\n\nconst TAG_SEPARATOR_PATTERN = /[,\\n]/;\n\ninterface TagItemProps {\n tag: string;\n onRemove: (tag: string) => void;\n}\n\nconst TagItem = memo(function TagItem({ tag, onRemove }: TagItemProps) {\n const handleRemove = useCallback(() => {\n onRemove(tag);\n }, [tag, onRemove]);\n\n return (\n <span className={sharedStyles.tag}>\n {tag}\n <Button\n type=\"button\"\n className={sharedStyles.tagRemove}\n onClick={handleRemove}\n aria-label={`Remove ${tag}`}\n >\n ×\n </Button>\n </span>\n );\n});\n\ninterface TextTagsInputProps {\n suggestions: PropertyAggregationValue[];\n isLoading: boolean;\n error: Error | null;\n tags: string[];\n onChange: (tags: string[]) => void;\n className?: string;\n style?: React.CSSProperties;\n placeholder?: string;\n allowCustomTags?: boolean;\n suggestionLimit?: number;\n ariaLabel?: string;\n}\n\nfunction TextTagsInputInner({\n suggestions,\n isLoading,\n error,\n tags,\n onChange,\n className,\n style,\n placeholder = \"Add a tag...\",\n allowCustomTags = true,\n suggestionLimit = 10,\n ariaLabel = \"Add tag\",\n}: TextTagsInputProps): React.ReactElement {\n const [inputValue, setInputValue] = useState(\"\");\n\n const filteredSuggestions = useMemo(() => {\n if (!suggestionLimit) return [];\n const lowerInput = inputValue.toLowerCase();\n return suggestions\n .filter(\n (s) =>\n (!inputValue.trim()\n || s.value.toLowerCase().includes(lowerInput))\n && !tags.includes(s.value),\n )\n .slice(0, suggestionLimit);\n }, [suggestions, inputValue, tags, suggestionLimit]);\n\n const addTag = useCallback(\n (tag: string) => {\n const trimmedTag = tag.trim();\n if (trimmedTag && !tags.includes(trimmedTag)) {\n onChange([...tags, trimmedTag]);\n }\n setInputValue(\"\");\n },\n [tags, onChange],\n );\n\n const removeTag = useCallback(\n (tag: string) => {\n onChange(tags.filter((t) => t !== tag));\n },\n [tags, onChange],\n );\n\n const handleValueChange = useCallback(\n (newTags: string[] | null) => {\n onChange(newTags ?? []);\n },\n [onChange],\n );\n\n const handleInputValueChange = useCallback(\n (value: string) => {\n setInputValue(value);\n },\n [],\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\" && inputValue.trim()) {\n if (filteredSuggestions.length > 0) {\n return;\n }\n e.preventDefault();\n if (allowCustomTags) {\n addTag(inputValue);\n }\n } else if (e.key === \"Backspace\" && !inputValue && tags.length > 0) {\n removeTag(tags[tags.length - 1]);\n }\n },\n [inputValue, tags, addTag, removeTag, allowCustomTags, filteredSuggestions],\n );\n\n const handlePaste = useCallback(\n (e: React.ClipboardEvent<HTMLInputElement>) => {\n const pastedText = e.clipboardData.getData(\"text\");\n if (TAG_SEPARATOR_PATTERN.test(pastedText)) {\n e.preventDefault();\n const newTags = pastedText\n .split(TAG_SEPARATOR_PATTERN)\n .map((t) => t.trim())\n .filter((t) => t && !tags.includes(t));\n if (newTags.length > 0) {\n onChange([...tags, ...newTags]);\n }\n }\n },\n [tags, onChange],\n );\n\n return (\n <div\n className={classnames(styles.textTags, className)}\n style={style}\n data-loading={isLoading}\n >\n {error && (\n <div className={sharedStyles.errorMessage}>\n Error loading suggestions: {error.message}\n </div>\n )}\n\n <Combobox.Root<string, true>\n multiple\n value={tags}\n onValueChange={handleValueChange}\n inputValue={inputValue}\n onInputValueChange={handleInputValueChange}\n >\n {tags.length > 0 && (\n <div className={sharedStyles.tagContainer}>\n {tags.map((tag) => (\n <TagItem key={tag} tag={tag} onRemove={removeTag} />\n ))}\n </div>\n )}\n\n <Combobox.SearchInput\n className={styles.input}\n placeholder={tags.length > 0 ? \"\" : placeholder}\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n aria-label={ariaLabel}\n />\n\n <Combobox.Portal>\n <Combobox.Positioner>\n <Combobox.Popup>\n {filteredSuggestions.length === 0\n ? (\n allowCustomTags && inputValue.trim()\n ? (\n <Combobox.Empty>\n Press Enter to add \"{inputValue}\"\n </Combobox.Empty>\n )\n : (\n <Combobox.Empty>\n {suggestionLimit\n ? \"No suggestions\"\n : \"Type to add a tag\"}\n </Combobox.Empty>\n )\n )\n : filteredSuggestions.map(({ value, count }) => (\n <Combobox.Item key={value} value={value}>\n {value} ({count.toLocaleString()})\n </Combobox.Item>\n ))}\n </Combobox.Popup>\n </Combobox.Positioner>\n </Combobox.Portal>\n </Combobox.Root>\n\n {isLoading && !!suggestionLimit && (\n <div className={sharedStyles.loadingMessage}>\n Loading suggestions...\n </div>\n )}\n </div>\n );\n}\n\nexport const TextTagsInput = memo(\n TextTagsInputInner,\n) as typeof TextTagsInputInner;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,QAAQ,uBAAuB;AAC9C,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AACnE,SAASC,QAAQ,QAAQ,+CAA+C;AAExE,OAAOC,YAAY,MAAM,qBAAqB;AAC9C,OAAOC,MAAM,MAAM,4BAA4B;AAE/C,MAAMC,qBAAqB,GAAG,OAAO;AAOrC,MAAMC,OAAO,gBAAGR,IAAI,CAAC,UAAiB;EAAES,GAAG;EAAEC;AAAuB,CAAC,EAAE;EACrE,MAAMC,YAAY,GAAGV,WAAW,CAAC,MAAM;IACrCS,QAAQ,CAACD,GAAG,CAAC;EACf,CAAC,EAAE,CAACA,GAAG,EAAEC,QAAQ,CAAC,CAAC;EAEnB,oBACEX,KAAA,CAAAa,aAAA;IAAMC,SAAS,EAAER,YAAY,CAACI;EAAI,GAC/BA,GAAG,eACJV,KAAA,CAAAa,aAAA,CAACf,MAAM;IACLiB,IAAI,EAAC,QAAQ;IACbD,SAAS,EAAER,YAAY,CAACU,SAAU;IAClCC,OAAO,EAAEL,YAAa;IACtB,cAAY,UAAUF,GAAG;EAAG,GAC7B,MAEO,CACJ,CAAC;AAEX,CAAC,CAAC;AAgBF,SAASQ,kBAAkBA,CAAC;EAC1BC,WAAW;EACXC,SAAS;EACTC,KAAK;EACLC,IAAI;EACJC,QAAQ;EACRT,SAAS;EACTU,KAAK;EACLC,WAAW,GAAG,cAAc;EAC5BC,eAAe,GAAG,IAAI;EACtBC,eAAe,GAAG,EAAE;EACpBC,SAAS,GAAG;AACM,CAAC,EAAsB;EACzC,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG1B,QAAQ,CAAC,EAAE,CAAC;EAEhD,MAAM2B,mBAAmB,GAAG5B,OAAO,CAAC,MAAM;IACxC,IAAI,CAACwB,eAAe,EAAE,OAAO,EAAE;IAC/B,MAAMK,UAAU,GAAGH,UAAU,CAACI,WAAW,CAAC,CAAC;IAC3C,OAAOd,WAAW,CACfe,MAAM,CACJC,CAAC,IACA,CAAC,CAACN,UAAU,CAACO,IAAI,CAAC,CAAC,IACdD,CAAC,CAACE,KAAK,CAACJ,WAAW,CAAC,CAAC,CAACK,QAAQ,CAACN,UAAU,CAAC,KAC5C,CAACV,IAAI,CAACgB,QAAQ,CAACH,CAAC,CAACE,KAAK,CAC7B,CAAC,CACAE,KAAK,CAAC,CAAC,EAAEZ,eAAe,CAAC;EAC9B,CAAC,EAAE,CAACR,WAAW,EAAEU,UAAU,EAAEP,IAAI,EAAEK,eAAe,CAAC,CAAC;EAEpD,MAAMa,MAAM,GAAGtC,WAAW,CACvBQ,GAAW,IAAK;IACf,MAAM+B,UAAU,GAAG/B,GAAG,CAAC0B,IAAI,CAAC,CAAC;IAC7B,IAAIK,UAAU,IAAI,CAACnB,IAAI,CAACgB,QAAQ,CAACG,UAAU,CAAC,EAAE;MAC5ClB,QAAQ,CAAC,CAAC,GAAGD,IAAI,EAAEmB,UAAU,CAAC,CAAC;IACjC;IACAX,aAAa,CAAC,EAAE,CAAC;EACnB,CAAC,EACD,CAACR,IAAI,EAAEC,QAAQ,CACjB,CAAC;EAED,MAAMmB,SAAS,GAAGxC,WAAW,CAC1BQ,GAAW,IAAK;IACfa,QAAQ,CAACD,IAAI,CAACY,MAAM,CAAES,CAAC,IAAKA,CAAC,KAAKjC,GAAG,CAAC,CAAC;EACzC,CAAC,EACD,CAACY,IAAI,EAAEC,QAAQ,CACjB,CAAC;EAED,MAAMqB,iBAAiB,GAAG1C,WAAW,CAClC2C,OAAwB,IAAK;IAC5BtB,QAAQ,CAACsB,OAAO,IAAI,EAAE,CAAC;EACzB,CAAC,EACD,CAACtB,QAAQ,CACX,CAAC;EAED,MAAMuB,sBAAsB,GAAG5C,WAAW,CACvCmC,KAAa,IAAK;IACjBP,aAAa,CAACO,KAAK,CAAC;EACtB,CAAC,EACD,EACF,CAAC;EAED,MAAMU,aAAa,GAAG7C,WAAW,CAC9B8C,CAAwC,IAAK;IAC5C,IAAIA,CAAC,CAACC,GAAG,KAAK,OAAO,IAAIpB,UAAU,CAACO,IAAI,CAAC,CAAC,EAAE;MAC1C,IAAIL,mBAAmB,CAACmB,MAAM,GAAG,CAAC,EAAE;QAClC;MACF;MACAF,CAAC,CAACG,cAAc,CAAC,CAAC;MAClB,IAAIzB,eAAe,EAAE;QACnBc,MAAM,CAACX,UAAU,CAAC;MACpB;IACF,CAAC,MAAM,IAAImB,CAAC,CAACC,GAAG,KAAK,WAAW,IAAI,CAACpB,UAAU,IAAIP,IAAI,CAAC4B,MAAM,GAAG,CAAC,EAAE;MAClER,SAAS,CAACpB,IAAI,CAACA,IAAI,CAAC4B,MAAM,GAAG,CAAC,CAAC,CAAC;IAClC;EACF,CAAC,EACD,CAACrB,UAAU,EAAEP,IAAI,EAAEkB,MAAM,EAAEE,SAAS,EAAEhB,eAAe,EAAEK,mBAAmB,CAC5E,CAAC;EAED,MAAMqB,WAAW,GAAGlD,WAAW,CAC5B8C,CAAyC,IAAK;IAC7C,MAAMK,UAAU,GAAGL,CAAC,CAACM,aAAa,CAACC,OAAO,CAAC,MAAM,CAAC;IAClD,IAAI/C,qBAAqB,CAACgD,IAAI,CAACH,UAAU,CAAC,EAAE;MAC1CL,CAAC,CAACG,cAAc,CAAC,CAAC;MAClB,MAAMN,OAAO,GAAGQ,UAAU,CACvBI,KAAK,CAACjD,qBAAqB,CAAC,CAC5BkD,GAAG,CAAEf,CAAC,IAAKA,CAAC,CAACP,IAAI,CAAC,CAAC,CAAC,CACpBF,MAAM,CAAES,CAAC,IAAKA,CAAC,IAAI,CAACrB,IAAI,CAACgB,QAAQ,CAACK,CAAC,CAAC,CAAC;MACxC,IAAIE,OAAO,CAACK,MAAM,GAAG,CAAC,EAAE;QACtB3B,QAAQ,CAAC,CAAC,GAAGD,IAAI,EAAE,GAAGuB,OAAO,CAAC,CAAC;MACjC;IACF;EACF,CAAC,EACD,CAACvB,IAAI,EAAEC,QAAQ,CACjB,CAAC;EAED,oBACEvB,KAAA,CAAAa,aAAA;IACEC,SAAS,EAAEf,UAAU,CAACQ,MAAM,CAACoD,QAAQ,EAAE7C,SAAS,CAAE;IAClDU,KAAK,EAAEA,KAAM;IACb,gBAAcJ;EAAU,GAEvBC,KAAK,iBACJrB,KAAA,CAAAa,aAAA;IAAKC,SAAS,EAAER,YAAY,CAACsD;EAAa,GAAC,6BACd,EAACvC,KAAK,CAACwC,OAC/B,CACN,eAED7D,KAAA,CAAAa,aAAA,CAACR,QAAQ,CAACyD,IAAI;IACZC,QAAQ;IACR1B,KAAK,EAAEf,IAAK;IACZ0C,aAAa,EAAEpB,iBAAkB;IACjCf,UAAU,EAAEA,UAAW;IACvBoC,kBAAkB,EAAEnB;EAAuB,GAE1CxB,IAAI,CAAC4B,MAAM,GAAG,CAAC,iBACdlD,KAAA,CAAAa,aAAA;IAAKC,SAAS,EAAER,YAAY,CAAC4D;EAAa,GACvC5C,IAAI,CAACoC,GAAG,CAAEhD,GAAG,iBACZV,KAAA,CAAAa,aAAA,CAACJ,OAAO;IAACwC,GAAG,EAAEvC,GAAI;IAACA,GAAG,EAAEA,GAAI;IAACC,QAAQ,EAAE+B;EAAU,CAAE,CACpD,CACE,CACN,eAED1C,KAAA,CAAAa,aAAA,CAACR,QAAQ,CAAC8D,WAAW;IACnBrD,SAAS,EAAEP,MAAM,CAAC6D,KAAM;IACxB3C,WAAW,EAAEH,IAAI,CAAC4B,MAAM,GAAG,CAAC,GAAG,EAAE,GAAGzB,WAAY;IAChD4C,SAAS,EAAEtB,aAAc;IACzBuB,OAAO,EAAElB,WAAY;IACrB,cAAYxB;EAAU,CACvB,CAAC,eAEF5B,KAAA,CAAAa,aAAA,CAACR,QAAQ,CAACkE,MAAM,qBACdvE,KAAA,CAAAa,aAAA,CAACR,QAAQ,CAACmE,UAAU,qBAClBxE,KAAA,CAAAa,aAAA,CAACR,QAAQ,CAACoE,KAAK,QACZ1C,mBAAmB,CAACmB,MAAM,KAAK,CAAC,GAE7BxB,eAAe,IAAIG,UAAU,CAACO,IAAI,CAAC,CAAC,gBAEhCpC,KAAA,CAAAa,aAAA,CAACR,QAAQ,CAACqE,KAAK,QAAC,uBACM,EAAC7C,UAAU,EAAC,IAClB,CAAC,gBAGjB7B,KAAA,CAAAa,aAAA,CAACR,QAAQ,CAACqE,KAAK,QACZ/C,eAAe,GACZ,gBAAgB,GAChB,mBACU,CACjB,GAEHI,mBAAmB,CAAC2B,GAAG,CAAC,CAAC;IAAErB,KAAK;IAAEsC;EAAM,CAAC,kBACzC3E,KAAA,CAAAa,aAAA,CAACR,QAAQ,CAACuE,IAAI;IAAC3B,GAAG,EAAEZ,KAAM;IAACA,KAAK,EAAEA;EAAM,GACrCA,KAAK,EAAC,IAAE,EAACsC,KAAK,CAACE,cAAc,CAAC,CAAC,EAAC,GACpB,CAChB,CACW,CACG,CACN,CACJ,CAAC,EAEfzD,SAAS,IAAI,CAAC,CAACO,eAAe,iBAC7B3B,KAAA,CAAAa,aAAA;IAAKC,SAAS,EAAER,YAAY,CAACwE;EAAe,GAAC,wBAExC,CAEJ,CAAC;AAEV;AAEA,OAAO,MAAMC,aAAa,gBAAG9E,IAAI,CAC/BiB,kBACF,CAA8B","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
.textTags {
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
gap: var(--osdk-filter-texttags-gap);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.input {
|
|
24
|
+
flex: 1;
|
|
25
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { Button } from "@base-ui/react/button";
|
|
18
|
+
import { Input } from "@base-ui/react/input";
|
|
19
|
+
import classnames from "classnames";
|
|
20
|
+
import React, { memo, useCallback, useMemo } from "react";
|
|
21
|
+
import { formatDateForDisplay, formatDateForInput, parseDateFromInput } from "../../../shared/dateUtils.js";
|
|
22
|
+
import styles from "./TimelineInput.module.css";
|
|
23
|
+
function TimelineInputInner({
|
|
24
|
+
startDate,
|
|
25
|
+
endDate,
|
|
26
|
+
onChange,
|
|
27
|
+
className,
|
|
28
|
+
minDate,
|
|
29
|
+
maxDate
|
|
30
|
+
}) {
|
|
31
|
+
const handleStartChange = useCallback(e => {
|
|
32
|
+
const date = parseDateFromInput(e.target.value);
|
|
33
|
+
onChange(date, endDate);
|
|
34
|
+
}, [onChange, endDate]);
|
|
35
|
+
const handleEndChange = useCallback(e => {
|
|
36
|
+
const date = parseDateFromInput(e.target.value);
|
|
37
|
+
onChange(startDate, date);
|
|
38
|
+
}, [onChange, startDate]);
|
|
39
|
+
const handleClear = useCallback(() => {
|
|
40
|
+
onChange(undefined, undefined);
|
|
41
|
+
}, [onChange]);
|
|
42
|
+
const startInputMax = useMemo(() => endDate ?? maxDate, [endDate, maxDate]);
|
|
43
|
+
const endInputMin = useMemo(() => startDate ?? minDate, [startDate, minDate]);
|
|
44
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
45
|
+
className: classnames(styles.timeline, className)
|
|
46
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
47
|
+
className: styles.labels
|
|
48
|
+
}, /*#__PURE__*/React.createElement("span", null, formatDateForDisplay(startDate, "—")), /*#__PURE__*/React.createElement("span", null, "to"), /*#__PURE__*/React.createElement("span", null, formatDateForDisplay(endDate, "—")), (startDate || endDate) && /*#__PURE__*/React.createElement(Button, {
|
|
49
|
+
type: "button",
|
|
50
|
+
onClick: handleClear,
|
|
51
|
+
"aria-label": "Clear range",
|
|
52
|
+
className: styles.clearButton
|
|
53
|
+
}, "\xD7")), /*#__PURE__*/React.createElement("div", {
|
|
54
|
+
className: styles.brush
|
|
55
|
+
}, /*#__PURE__*/React.createElement(Input, {
|
|
56
|
+
type: "date",
|
|
57
|
+
className: styles.input,
|
|
58
|
+
value: formatDateForInput(startDate),
|
|
59
|
+
onChange: handleStartChange,
|
|
60
|
+
min: minDate ? formatDateForInput(minDate) : undefined,
|
|
61
|
+
max: startInputMax ? formatDateForInput(startInputMax) : undefined,
|
|
62
|
+
"aria-label": "Start date"
|
|
63
|
+
}), /*#__PURE__*/React.createElement("span", null, "\u2014"), /*#__PURE__*/React.createElement(Input, {
|
|
64
|
+
type: "date",
|
|
65
|
+
className: styles.input,
|
|
66
|
+
value: formatDateForInput(endDate),
|
|
67
|
+
onChange: handleEndChange,
|
|
68
|
+
min: endInputMin ? formatDateForInput(endInputMin) : undefined,
|
|
69
|
+
max: maxDate ? formatDateForInput(maxDate) : undefined,
|
|
70
|
+
"aria-label": "End date"
|
|
71
|
+
})));
|
|
72
|
+
}
|
|
73
|
+
export const TimelineInput = /*#__PURE__*/memo(TimelineInputInner);
|
|
74
|
+
//# sourceMappingURL=TimelineInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimelineInput.js","names":["Button","Input","classnames","React","memo","useCallback","useMemo","formatDateForDisplay","formatDateForInput","parseDateFromInput","styles","TimelineInputInner","startDate","endDate","onChange","className","minDate","maxDate","handleStartChange","e","date","target","value","handleEndChange","handleClear","undefined","startInputMax","endInputMin","createElement","timeline","labels","type","onClick","clearButton","brush","input","min","max","TimelineInput"],"sources":["TimelineInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { Input } from \"@base-ui/react/input\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport {\n formatDateForDisplay,\n formatDateForInput,\n parseDateFromInput,\n} from \"../../../shared/dateUtils.js\";\nimport styles from \"./TimelineInput.module.css\";\n\ninterface TimelineInputProps {\n startDate: Date | undefined;\n endDate: Date | undefined;\n onChange: (startDate: Date | undefined, endDate: Date | undefined) => void;\n className?: string;\n minDate?: Date;\n maxDate?: Date;\n}\n\nfunction TimelineInputInner({\n startDate,\n endDate,\n onChange,\n className,\n minDate,\n maxDate,\n}: TimelineInputProps): React.ReactElement {\n const handleStartChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const date = parseDateFromInput(e.target.value);\n onChange(date, endDate);\n },\n [onChange, endDate],\n );\n\n const handleEndChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const date = parseDateFromInput(e.target.value);\n onChange(startDate, date);\n },\n [onChange, startDate],\n );\n\n const handleClear = useCallback(() => {\n onChange(undefined, undefined);\n }, [onChange]);\n\n const startInputMax = useMemo(\n () => endDate ?? maxDate,\n [endDate, maxDate],\n );\n const endInputMin = useMemo(\n () => startDate ?? minDate,\n [startDate, minDate],\n );\n\n return (\n <div className={classnames(styles.timeline, className)}>\n <div className={styles.labels}>\n <span>{formatDateForDisplay(startDate, \"—\")}</span>\n <span>to</span>\n <span>{formatDateForDisplay(endDate, \"—\")}</span>\n {(startDate || endDate) && (\n <Button\n type=\"button\"\n onClick={handleClear}\n aria-label=\"Clear range\"\n className={styles.clearButton}\n >\n ×\n </Button>\n )}\n </div>\n\n <div className={styles.brush}>\n <Input\n type=\"date\"\n className={styles.input}\n value={formatDateForInput(startDate)}\n onChange={handleStartChange}\n min={minDate ? formatDateForInput(minDate) : undefined}\n max={startInputMax ? formatDateForInput(startInputMax) : undefined}\n aria-label=\"Start date\"\n />\n <span>—</span>\n <Input\n type=\"date\"\n className={styles.input}\n value={formatDateForInput(endDate)}\n onChange={handleEndChange}\n min={endInputMin ? formatDateForInput(endInputMin) : undefined}\n max={maxDate ? formatDateForInput(maxDate) : undefined}\n aria-label=\"End date\"\n />\n </div>\n </div>\n );\n}\n\nexport const TimelineInput: React.NamedExoticComponent<TimelineInputProps> =\n memo(TimelineInputInner);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
.timeline {
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
gap: var(--osdk-filter-range-gap);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.labels {
|
|
24
|
+
display: flex;
|
|
25
|
+
align-items: center;
|
|
26
|
+
gap: var(--osdk-filter-timeline-labels-gap);
|
|
27
|
+
font-family: var(--osdk-filter-timeline-labels-font-family);
|
|
28
|
+
font-size: var(--osdk-filter-timeline-labels-font-size);
|
|
29
|
+
color: var(--osdk-filter-timeline-labels-color);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.clearButton {
|
|
33
|
+
display: flex;
|
|
34
|
+
align-items: center;
|
|
35
|
+
justify-content: center;
|
|
36
|
+
padding: var(--osdk-filter-timeline-button-padding);
|
|
37
|
+
border: none;
|
|
38
|
+
background: transparent;
|
|
39
|
+
cursor: pointer;
|
|
40
|
+
color: var(--osdk-filter-timeline-button-color);
|
|
41
|
+
border-radius: var(--osdk-filter-timeline-button-border-radius);
|
|
42
|
+
margin-left: auto;
|
|
43
|
+
|
|
44
|
+
&:hover {
|
|
45
|
+
background: var(--osdk-filter-timeline-button-bg-hover);
|
|
46
|
+
color: var(--osdk-filter-timeline-button-color-hover);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.brush {
|
|
51
|
+
display: flex;
|
|
52
|
+
align-items: center;
|
|
53
|
+
gap: var(--osdk-filter-timeline-labels-gap);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.brush span {
|
|
57
|
+
color: var(--osdk-filter-timeline-brush-color);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.input {
|
|
61
|
+
flex: 1;
|
|
62
|
+
font-family: var(--osdk-filter-input-font-family);
|
|
63
|
+
font-size: var(--osdk-filter-timeline-input-font-size);
|
|
64
|
+
padding: var(--osdk-filter-input-padding);
|
|
65
|
+
border: var(--osdk-filter-input-border);
|
|
66
|
+
border-radius: var(--osdk-filter-input-border-radius);
|
|
67
|
+
background: var(--osdk-filter-input-bg);
|
|
68
|
+
color: var(--osdk-filter-input-color);
|
|
69
|
+
|
|
70
|
+
&:focus {
|
|
71
|
+
border-color: var(--osdk-filter-input-focus-border);
|
|
72
|
+
outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);
|
|
73
|
+
outline-offset: var(--osdk-filter-input-focus-outline-offset);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
export const HISTOGRAM_BUCKETS = 20;
|
|
18
|
+
export function createHistogramBuckets(pairs, range, toNumber, fromNumber) {
|
|
19
|
+
if (pairs.length === 0) return [];
|
|
20
|
+
const minNum = toNumber(range.min);
|
|
21
|
+
const maxNum = toNumber(range.max);
|
|
22
|
+
const rangeSize = maxNum - minNum;
|
|
23
|
+
|
|
24
|
+
// Handle single-value case
|
|
25
|
+
if (rangeSize === 0) {
|
|
26
|
+
const totalCount = pairs.reduce((sum, p) => sum + p.count, 0);
|
|
27
|
+
return [{
|
|
28
|
+
min: range.min,
|
|
29
|
+
max: range.max,
|
|
30
|
+
count: totalCount
|
|
31
|
+
}];
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Create buckets
|
|
35
|
+
const bucketSize = rangeSize / HISTOGRAM_BUCKETS;
|
|
36
|
+
const bucketCounts = new Array(HISTOGRAM_BUCKETS).fill(0);
|
|
37
|
+
for (const {
|
|
38
|
+
value,
|
|
39
|
+
count
|
|
40
|
+
} of pairs) {
|
|
41
|
+
const bucketIndex = Math.min(Math.floor((toNumber(value) - minNum) / bucketSize), HISTOGRAM_BUCKETS - 1);
|
|
42
|
+
bucketCounts[bucketIndex] += count;
|
|
43
|
+
}
|
|
44
|
+
return bucketCounts.map((count, i) => ({
|
|
45
|
+
min: fromNumber(minNum + i * bucketSize),
|
|
46
|
+
max: fromNumber(minNum + (i + 1) * bucketSize),
|
|
47
|
+
count
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
export function getMaxBucketCount(buckets) {
|
|
51
|
+
return Math.max(...buckets.map(b => b.count), 1);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=createHistogramBuckets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createHistogramBuckets.js","names":["HISTOGRAM_BUCKETS","createHistogramBuckets","pairs","range","toNumber","fromNumber","length","minNum","min","maxNum","max","rangeSize","totalCount","reduce","sum","p","count","bucketSize","bucketCounts","Array","fill","value","bucketIndex","Math","floor","map","i","getMaxBucketCount","buckets","b"],"sources":["createHistogramBuckets.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\nexport const HISTOGRAM_BUCKETS = 20;\n\nexport interface HistogramBucket<T> {\n min: T;\n max: T;\n count: number;\n}\n\ninterface ValueCountPair<T> {\n value: T;\n count: number;\n}\n\nexport function createHistogramBuckets<T>(\n pairs: Array<ValueCountPair<T>>,\n range: { min: T; max: T },\n toNumber: (value: T) => number,\n fromNumber: (value: number) => T,\n): Array<HistogramBucket<T>> {\n if (pairs.length === 0) return [];\n\n const minNum = toNumber(range.min);\n const maxNum = toNumber(range.max);\n const rangeSize = maxNum - minNum;\n\n // Handle single-value case\n if (rangeSize === 0) {\n const totalCount = pairs.reduce((sum, p) => sum + p.count, 0);\n return [{ min: range.min, max: range.max, count: totalCount }];\n }\n\n // Create buckets\n const bucketSize = rangeSize / HISTOGRAM_BUCKETS;\n const bucketCounts = new Array<number>(HISTOGRAM_BUCKETS).fill(0);\n\n for (const { value, count } of pairs) {\n const bucketIndex = Math.min(\n Math.floor((toNumber(value) - minNum) / bucketSize),\n HISTOGRAM_BUCKETS - 1,\n );\n bucketCounts[bucketIndex] += count;\n }\n\n return bucketCounts.map((count, i) => ({\n min: fromNumber(minNum + i * bucketSize),\n max: fromNumber(minNum + (i + 1) * bucketSize),\n count,\n }));\n}\n\nexport function getMaxBucketCount<T>(\n buckets: Array<HistogramBucket<T>>,\n): number {\n return Math.max(...buckets.map((b) => b.count), 1);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,iBAAiB,GAAG,EAAE;AAanC,OAAO,SAASC,sBAAsBA,CACpCC,KAA+B,EAC/BC,KAAyB,EACzBC,QAA8B,EAC9BC,UAAgC,EACL;EAC3B,IAAIH,KAAK,CAACI,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE;EAEjC,MAAMC,MAAM,GAAGH,QAAQ,CAACD,KAAK,CAACK,GAAG,CAAC;EAClC,MAAMC,MAAM,GAAGL,QAAQ,CAACD,KAAK,CAACO,GAAG,CAAC;EAClC,MAAMC,SAAS,GAAGF,MAAM,GAAGF,MAAM;;EAEjC;EACA,IAAII,SAAS,KAAK,CAAC,EAAE;IACnB,MAAMC,UAAU,GAAGV,KAAK,CAACW,MAAM,CAAC,CAACC,GAAG,EAAEC,CAAC,KAAKD,GAAG,GAAGC,CAAC,CAACC,KAAK,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC;MAAER,GAAG,EAAEL,KAAK,CAACK,GAAG;MAAEE,GAAG,EAAEP,KAAK,CAACO,GAAG;MAAEM,KAAK,EAAEJ;IAAW,CAAC,CAAC;EAChE;;EAEA;EACA,MAAMK,UAAU,GAAGN,SAAS,GAAGX,iBAAiB;EAChD,MAAMkB,YAAY,GAAG,IAAIC,KAAK,CAASnB,iBAAiB,CAAC,CAACoB,IAAI,CAAC,CAAC,CAAC;EAEjE,KAAK,MAAM;IAAEC,KAAK;IAAEL;EAAM,CAAC,IAAId,KAAK,EAAE;IACpC,MAAMoB,WAAW,GAAGC,IAAI,CAACf,GAAG,CAC1Be,IAAI,CAACC,KAAK,CAAC,CAACpB,QAAQ,CAACiB,KAAK,CAAC,GAAGd,MAAM,IAAIU,UAAU,CAAC,EACnDjB,iBAAiB,GAAG,CACtB,CAAC;IACDkB,YAAY,CAACI,WAAW,CAAC,IAAIN,KAAK;EACpC;EAEA,OAAOE,YAAY,CAACO,GAAG,CAAC,CAACT,KAAK,EAAEU,CAAC,MAAM;IACrClB,GAAG,EAAEH,UAAU,CAACE,MAAM,GAAGmB,CAAC,GAAGT,UAAU,CAAC;IACxCP,GAAG,EAAEL,UAAU,CAACE,MAAM,GAAG,CAACmB,CAAC,GAAG,CAAC,IAAIT,UAAU,CAAC;IAC9CD;EACF,CAAC,CAAC,CAAC;AACL;AAEA,OAAO,SAASW,iBAAiBA,CAC/BC,OAAkC,EAC1B;EACR,OAAOL,IAAI,CAACb,GAAG,CAAC,GAAGkB,OAAO,CAACH,GAAG,CAAEI,CAAC,IAAKA,CAAC,CAACb,KAAK,CAAC,EAAE,CAAC,CAAC;AACpD","ignoreList":[]}
|
|
@@ -14,7 +14,11 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
export { formatDateForDisplay, formatDateForInput, parseDateFromInput } from "../../../shared/dateUtils.js";
|
|
17
18
|
export { ContainsTextInput } from "./ContainsTextInput.js";
|
|
18
|
-
export {
|
|
19
|
+
export { DateRangeInput } from "./DateRangeInput.js";
|
|
20
|
+
export { NullValueWrapper } from "./NullValueWrapper.js";
|
|
21
|
+
export { NumberRangeInput } from "./NumberRangeInput.js";
|
|
22
|
+
export { RangeInput } from "./RangeInput.js";
|
|
19
23
|
export { ToggleInput } from "./ToggleInput.js";
|
|
20
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["ContainsTextInput","
|
|
1
|
+
{"version":3,"file":"index.js","names":["formatDateForDisplay","formatDateForInput","parseDateFromInput","ContainsTextInput","DateRangeInput","NullValueWrapper","NumberRangeInput","RangeInput","ToggleInput"],"sources":["index.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\nexport {\n formatDateForDisplay,\n formatDateForInput,\n parseDateFromInput,\n} from \"../../../shared/dateUtils.js\";\nexport { ContainsTextInput } from \"./ContainsTextInput.js\";\nexport { DateRangeInput } from \"./DateRangeInput.js\";\nexport { NullValueWrapper } from \"./NullValueWrapper.js\";\nexport { NumberRangeInput } from \"./NumberRangeInput.js\";\nexport { RangeInput } from \"./RangeInput.js\";\nexport { ToggleInput } from \"./ToggleInput.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SACEA,oBAAoB,EACpBC,kBAAkB,EAClBC,kBAAkB,QACb,8BAA8B;AACrC,SAASC,iBAAiB,QAAQ,wBAAwB;AAC1D,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,gBAAgB,QAAQ,uBAAuB;AACxD,SAASC,gBAAgB,QAAQ,uBAAuB;AACxD,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,WAAW,QAAQ,kBAAkB","ignoreList":[]}
|
|
@@ -18,18 +18,18 @@
|
|
|
18
18
|
.loadingMessage,
|
|
19
19
|
.errorMessage,
|
|
20
20
|
.emptyMessage {
|
|
21
|
-
font-family: var(--
|
|
22
|
-
font-size: var(--
|
|
23
|
-
padding: var(--
|
|
21
|
+
font-family: var(--osdk-filter-message-font-family);
|
|
22
|
+
font-size: var(--osdk-filter-message-font-size);
|
|
23
|
+
padding: var(--osdk-filter-message-padding);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
.loadingMessage,
|
|
27
27
|
.emptyMessage {
|
|
28
|
-
color: var(--
|
|
28
|
+
color: var(--osdk-filter-message-color-muted);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
.errorMessage {
|
|
32
|
-
color: var(--
|
|
32
|
+
color: var(--osdk-filter-message-color-danger);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
/* Shared tag styles */
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { useRef } from "react";
|
|
18
|
+
|
|
19
|
+
// Preserves the last non-loading data value so filter inputs don't flash
|
|
20
|
+
// blank during revalidation. @osdk/react hooks don't provide stale-while-
|
|
21
|
+
// revalidate behavior natively, so this bridges the gap at the UI layer.
|
|
22
|
+
export function useStableData(data, isLoading) {
|
|
23
|
+
const ref = useRef(data);
|
|
24
|
+
if (!isLoading) {
|
|
25
|
+
ref.current = data;
|
|
26
|
+
}
|
|
27
|
+
return ref.current;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=useStableData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStableData.js","names":["useRef","useStableData","data","isLoading","ref","current"],"sources":["useStableData.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 { useRef } from \"react\";\n\n// Preserves the last non-loading data value so filter inputs don't flash\n// blank during revalidation. @osdk/react hooks don't provide stale-while-\n// revalidate behavior natively, so this bridges the gap at the UI layer.\nexport function useStableData<T>(data: T, isLoading: boolean): T {\n const ref = useRef(data);\n if (!isLoading) {\n ref.current = data;\n }\n return ref.current;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,QAAQ,OAAO;;AAE9B;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAAIC,IAAO,EAAEC,SAAkB,EAAK;EAC/D,MAAMC,GAAG,GAAGJ,MAAM,CAACE,IAAI,CAAC;EACxB,IAAI,CAACC,SAAS,EAAE;IACdC,GAAG,CAACC,OAAO,GAAGH,IAAI;EACpB;EACA,OAAOE,GAAG,CAACC,OAAO;AACpB","ignoreList":[]}
|
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
import { useOsdkMetadata } from "@osdk/react";
|
|
17
18
|
import { useCallback, useMemo, useState } from "react";
|
|
18
|
-
import { assertUnreachable } from "
|
|
19
|
+
import { assertUnreachable } from "../../shared/assertUnreachable.js";
|
|
19
20
|
import { buildWhereClause } from "../utils/filterStateToWhereClause.js";
|
|
20
21
|
import { filterHasActiveState } from "../utils/filterValues.js";
|
|
21
22
|
import { getFilterKey } from "../utils/getFilterKey.js";
|
|
@@ -70,18 +71,43 @@ export function useFilterListState(props) {
|
|
|
70
71
|
const {
|
|
71
72
|
objectSet,
|
|
72
73
|
filterDefinitions,
|
|
73
|
-
filterOperator = "and",
|
|
74
74
|
onFilterStateChanged,
|
|
75
|
-
onFilterClauseChanged
|
|
75
|
+
onFilterClauseChanged,
|
|
76
|
+
initialFilterStates
|
|
76
77
|
} = props;
|
|
77
78
|
const objectType = objectSet.$objectSetInternals.def;
|
|
78
|
-
const
|
|
79
|
+
const {
|
|
80
|
+
metadata
|
|
81
|
+
} = useOsdkMetadata(objectType);
|
|
82
|
+
const propertyTypes = useMemo(() => {
|
|
83
|
+
const map = new Map();
|
|
84
|
+
if (metadata?.properties) {
|
|
85
|
+
for (const [key, prop] of Object.entries(metadata.properties)) {
|
|
86
|
+
if (typeof prop.type === "string") {
|
|
87
|
+
map.set(key, {
|
|
88
|
+
type: prop.type,
|
|
89
|
+
multiplicity: prop.multiplicity === true
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return map;
|
|
95
|
+
}, [metadata?.properties]);
|
|
96
|
+
const [filterStates, setFilterStates] = useState(() => {
|
|
97
|
+
const states = buildInitialStates(filterDefinitions);
|
|
98
|
+
if (initialFilterStates) {
|
|
99
|
+
for (const [key, state] of initialFilterStates) {
|
|
100
|
+
states.set(key, state);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return states;
|
|
104
|
+
});
|
|
79
105
|
const setFilterState = useCallback((filterKey, state) => {
|
|
80
106
|
let newWhereClause;
|
|
81
107
|
setFilterStates(prev => {
|
|
82
108
|
const next = new Map(prev);
|
|
83
109
|
next.set(filterKey, state);
|
|
84
|
-
newWhereClause = buildWhereClause(filterDefinitions, next,
|
|
110
|
+
newWhereClause = buildWhereClause(filterDefinitions, next, propertyTypes);
|
|
85
111
|
return next;
|
|
86
112
|
});
|
|
87
113
|
if (newWhereClause !== undefined) {
|
|
@@ -91,8 +117,26 @@ export function useFilterListState(props) {
|
|
|
91
117
|
if (definition) {
|
|
92
118
|
onFilterStateChanged?.(definition, state);
|
|
93
119
|
}
|
|
94
|
-
}, [filterDefinitions,
|
|
95
|
-
const
|
|
120
|
+
}, [filterDefinitions, propertyTypes, onFilterClauseChanged, onFilterStateChanged]);
|
|
121
|
+
const clearFilterState = useCallback(filterKey => {
|
|
122
|
+
const clearedStates = new Map(filterStates);
|
|
123
|
+
clearedStates.delete(filterKey);
|
|
124
|
+
setFilterStates(clearedStates);
|
|
125
|
+
const newWhereClause = buildWhereClause(filterDefinitions, clearedStates, propertyTypes);
|
|
126
|
+
onFilterClauseChanged?.(newWhereClause);
|
|
127
|
+
}, [filterStates, filterDefinitions, propertyTypes, onFilterClauseChanged]);
|
|
128
|
+
const whereClause = useMemo(() => buildWhereClause(filterDefinitions, filterStates, propertyTypes), [filterDefinitions, filterStates, propertyTypes]);
|
|
129
|
+
const perFilterWhereClauses = useMemo(() => {
|
|
130
|
+
const map = new Map();
|
|
131
|
+
if (!filterDefinitions) {
|
|
132
|
+
return map;
|
|
133
|
+
}
|
|
134
|
+
for (const definition of filterDefinitions) {
|
|
135
|
+
const key = getFilterKey(definition);
|
|
136
|
+
map.set(key, buildWhereClause(filterDefinitions, filterStates, propertyTypes, key));
|
|
137
|
+
}
|
|
138
|
+
return map;
|
|
139
|
+
}, [filterDefinitions, filterStates, propertyTypes]);
|
|
96
140
|
const activeFilterCount = useMemo(() => {
|
|
97
141
|
let count = 0;
|
|
98
142
|
for (const state of filterStates.values()) {
|
|
@@ -105,15 +149,17 @@ export function useFilterListState(props) {
|
|
|
105
149
|
const reset = useCallback(() => {
|
|
106
150
|
const initialStates = buildInitialStates(filterDefinitions);
|
|
107
151
|
setFilterStates(initialStates);
|
|
108
|
-
const newWhereClause = buildWhereClause(filterDefinitions, initialStates,
|
|
152
|
+
const newWhereClause = buildWhereClause(filterDefinitions, initialStates, propertyTypes);
|
|
109
153
|
onFilterClauseChanged?.(newWhereClause);
|
|
110
|
-
}, [filterDefinitions,
|
|
154
|
+
}, [filterDefinitions, propertyTypes, onFilterClauseChanged]);
|
|
111
155
|
return useMemo(() => ({
|
|
112
156
|
filterStates,
|
|
113
157
|
setFilterState,
|
|
158
|
+
clearFilterState,
|
|
114
159
|
whereClause,
|
|
160
|
+
perFilterWhereClauses,
|
|
115
161
|
activeFilterCount,
|
|
116
162
|
reset
|
|
117
|
-
}), [filterStates, setFilterState, whereClause, activeFilterCount, reset]);
|
|
163
|
+
}), [filterStates, setFilterState, clearFilterState, whereClause, perFilterWhereClauses, activeFilterCount, reset]);
|
|
118
164
|
}
|
|
119
165
|
//# sourceMappingURL=useFilterListState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFilterListState.js","names":["useCallback","useMemo","useState","assertUnreachable","buildWhereClause","filterHasActiveState","getFilterKey","buildInitialStates","definitions","states","Map","definition","key","type","state","filterState","set","defaultFilterState","innerState","defaultLinkedFilterState","linkedFilterState","useFilterListState","props","objectSet","filterDefinitions","filterOperator","onFilterStateChanged","onFilterClauseChanged","objectType","$objectSetInternals","def","filterStates","setFilterStates","setFilterState","filterKey","newWhereClause","prev","next","undefined","find","d","whereClause","activeFilterCount","count","values","reset","initialStates"],"sources":["useFilterListState.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition, WhereClause } from \"@osdk/api\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport type { FilterListProps } from \"../FilterListApi.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport type { LinkedPropertyFilterState } from \"../types/LinkedFilterTypes.js\";\nimport { assertUnreachable } from \"../utils/assertUnreachable.js\";\nimport { buildWhereClause } from \"../utils/filterStateToWhereClause.js\";\nimport { filterHasActiveState } from \"../utils/filterValues.js\";\nimport { getFilterKey } from \"../utils/getFilterKey.js\";\n\nexport interface UseFilterListStateResult<Q extends ObjectTypeDefinition> {\n filterStates: Map<string, FilterState>;\n setFilterState: (\n filterKey: string,\n state: FilterState,\n ) => void;\n whereClause: WhereClause<Q>;\n activeFilterCount: number;\n reset: () => void;\n}\n\n/**\n * Build initial states from filter definitions.\n * Uses string keys derived from getFilterKey() for stable lookups.\n */\nfunction buildInitialStates<Q extends ObjectTypeDefinition>(\n definitions: FilterListProps<Q>[\"filterDefinitions\"],\n): Map<string, FilterState> {\n const states = new Map<string, FilterState>();\n\n if (!definitions) {\n return states;\n }\n\n for (const definition of definitions) {\n const key = getFilterKey(definition);\n switch (definition.type) {\n case \"PROPERTY\": {\n const state = definition.filterState;\n if (state) {\n states.set(key, state);\n }\n break;\n }\n case \"HAS_LINK\":\n case \"KEYWORD_SEARCH\":\n case \"CUSTOM\": {\n const state = definition.defaultFilterState;\n if (state) {\n states.set(key, state);\n }\n break;\n }\n case \"LINKED_PROPERTY\": {\n const innerState = definition.defaultLinkedFilterState;\n if (innerState) {\n const state: LinkedPropertyFilterState = {\n type: \"linkedProperty\",\n linkedFilterState: innerState,\n };\n states.set(key, state);\n }\n break;\n }\n default:\n assertUnreachable(definition);\n }\n }\n\n return states;\n}\n\nexport function useFilterListState<Q extends ObjectTypeDefinition>(\n props: FilterListProps<Q>,\n): UseFilterListStateResult<Q> {\n const {\n objectSet,\n filterDefinitions,\n filterOperator = \"and\",\n onFilterStateChanged,\n onFilterClauseChanged,\n } = props;\n\n const objectType = objectSet.$objectSetInternals.def;\n\n const [filterStates, setFilterStates] = useState<\n Map<string, FilterState>\n >(() => buildInitialStates(filterDefinitions));\n\n const setFilterState = useCallback(\n (filterKey: string, state: FilterState) => {\n let newWhereClause: WhereClause<Q> | undefined;\n\n setFilterStates((prev) => {\n const next = new Map(prev);\n next.set(filterKey, state);\n\n newWhereClause = buildWhereClause(\n filterDefinitions,\n next,\n filterOperator,\n objectType,\n );\n\n return next;\n });\n\n if (newWhereClause !== undefined) {\n onFilterClauseChanged?.(newWhereClause);\n }\n const definition = filterDefinitions?.find(\n (d) => getFilterKey(d) === filterKey,\n );\n if (definition) {\n onFilterStateChanged?.(definition, state);\n }\n },\n [\n filterDefinitions,\n filterOperator,\n objectType,\n onFilterClauseChanged,\n onFilterStateChanged,\n ],\n );\n\n const whereClause = useMemo(\n () =>\n buildWhereClause(\n filterDefinitions,\n filterStates,\n filterOperator,\n objectType,\n ),\n [filterDefinitions, filterStates, filterOperator, objectType],\n );\n\n const activeFilterCount = useMemo(() => {\n let count = 0;\n for (const state of filterStates.values()) {\n if (filterHasActiveState(state)) {\n count++;\n }\n }\n return count;\n }, [filterStates]);\n\n const reset = useCallback(() => {\n const initialStates = buildInitialStates(filterDefinitions);\n setFilterStates(initialStates);\n\n const newWhereClause = buildWhereClause(\n filterDefinitions,\n initialStates,\n filterOperator,\n objectType,\n );\n onFilterClauseChanged?.(newWhereClause);\n }, [filterDefinitions, filterOperator, objectType, onFilterClauseChanged]);\n\n return useMemo(() => ({\n filterStates,\n setFilterState,\n whereClause,\n activeFilterCount,\n reset,\n }), [filterStates, setFilterState, whereClause, activeFilterCount, reset]);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useFilterListState.js","names":["useOsdkMetadata","useCallback","useMemo","useState","assertUnreachable","buildWhereClause","filterHasActiveState","getFilterKey","buildInitialStates","definitions","states","Map","definition","key","type","state","filterState","set","defaultFilterState","innerState","defaultLinkedFilterState","linkedFilterState","useFilterListState","props","objectSet","filterDefinitions","onFilterStateChanged","onFilterClauseChanged","initialFilterStates","objectType","$objectSetInternals","def","metadata","propertyTypes","map","properties","prop","Object","entries","multiplicity","filterStates","setFilterStates","setFilterState","filterKey","newWhereClause","prev","next","undefined","find","d","clearFilterState","clearedStates","delete","whereClause","perFilterWhereClauses","activeFilterCount","count","values","reset","initialStates"],"sources":["useFilterListState.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition, WhereClause } from \"@osdk/api\";\nimport { useOsdkMetadata } from \"@osdk/react\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport type { FilterListProps } from \"../FilterListApi.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport type { LinkedPropertyFilterState } from \"../types/LinkedFilterTypes.js\";\nimport {\n buildWhereClause,\n type PropertyTypeInfo,\n} from \"../utils/filterStateToWhereClause.js\";\nimport { filterHasActiveState } from \"../utils/filterValues.js\";\nimport { getFilterKey } from \"../utils/getFilterKey.js\";\n\nexport interface UseFilterListStateResult<Q extends ObjectTypeDefinition> {\n filterStates: Map<string, FilterState>;\n setFilterState: (\n filterKey: string,\n state: FilterState,\n ) => void;\n clearFilterState: (filterKey: string) => void;\n whereClause: WhereClause<Q>;\n perFilterWhereClauses: Map<string, WhereClause<Q>>;\n activeFilterCount: number;\n reset: () => void;\n}\n\n/**\n * Build initial states from filter definitions.\n * Uses string keys derived from getFilterKey() for stable lookups.\n */\nfunction buildInitialStates<Q extends ObjectTypeDefinition>(\n definitions: FilterListProps<Q>[\"filterDefinitions\"],\n): Map<string, FilterState> {\n const states = new Map<string, FilterState>();\n\n if (!definitions) {\n return states;\n }\n\n for (const definition of definitions) {\n const key = getFilterKey(definition);\n switch (definition.type) {\n case \"PROPERTY\": {\n const state = definition.filterState;\n if (state) {\n states.set(key, state);\n }\n break;\n }\n case \"HAS_LINK\":\n case \"KEYWORD_SEARCH\":\n case \"CUSTOM\": {\n const state = definition.defaultFilterState;\n if (state) {\n states.set(key, state);\n }\n break;\n }\n case \"LINKED_PROPERTY\": {\n const innerState = definition.defaultLinkedFilterState;\n if (innerState) {\n const state: LinkedPropertyFilterState = {\n type: \"linkedProperty\",\n linkedFilterState: innerState,\n };\n states.set(key, state);\n }\n break;\n }\n default:\n assertUnreachable(definition);\n }\n }\n\n return states;\n}\n\nexport function useFilterListState<Q extends ObjectTypeDefinition>(\n props: FilterListProps<Q>,\n): UseFilterListStateResult<Q> {\n const {\n objectSet,\n filterDefinitions,\n onFilterStateChanged,\n onFilterClauseChanged,\n initialFilterStates,\n } = props;\n\n const objectType = objectSet.$objectSetInternals.def;\n const { metadata } = useOsdkMetadata(objectType);\n\n const propertyTypes = useMemo(() => {\n const map = new Map<string, PropertyTypeInfo>();\n if (metadata?.properties) {\n for (const [key, prop] of Object.entries(metadata.properties)) {\n if (typeof prop.type === \"string\") {\n map.set(key, {\n type: prop.type,\n multiplicity: prop.multiplicity === true,\n });\n }\n }\n }\n return map;\n }, [metadata?.properties]);\n\n const [filterStates, setFilterStates] = useState<\n Map<string, FilterState>\n >(() => {\n const states = buildInitialStates(filterDefinitions);\n if (initialFilterStates) {\n for (const [key, state] of initialFilterStates) {\n states.set(key, state);\n }\n }\n return states;\n });\n\n const setFilterState = useCallback(\n (filterKey: string, state: FilterState) => {\n let newWhereClause: WhereClause<Q> | undefined;\n\n setFilterStates((prev) => {\n const next = new Map(prev);\n next.set(filterKey, state);\n\n newWhereClause = buildWhereClause(\n filterDefinitions,\n next,\n propertyTypes,\n );\n\n return next;\n });\n\n if (newWhereClause !== undefined) {\n onFilterClauseChanged?.(newWhereClause);\n }\n const definition = filterDefinitions?.find(\n (d) => getFilterKey(d) === filterKey,\n );\n if (definition) {\n onFilterStateChanged?.(definition, state);\n }\n },\n [\n filterDefinitions,\n propertyTypes,\n onFilterClauseChanged,\n onFilterStateChanged,\n ],\n );\n\n const clearFilterState = useCallback(\n (filterKey: string) => {\n const clearedStates = new Map(filterStates);\n clearedStates.delete(filterKey);\n\n setFilterStates(clearedStates);\n\n const newWhereClause = buildWhereClause(\n filterDefinitions,\n clearedStates,\n propertyTypes,\n );\n onFilterClauseChanged?.(newWhereClause);\n },\n [filterStates, filterDefinitions, propertyTypes, onFilterClauseChanged],\n );\n\n const whereClause = useMemo(\n () =>\n buildWhereClause(\n filterDefinitions,\n filterStates,\n propertyTypes,\n ),\n [filterDefinitions, filterStates, propertyTypes],\n );\n\n const perFilterWhereClauses = useMemo(() => {\n const map = new Map<string, WhereClause<Q>>();\n if (!filterDefinitions) {\n return map;\n }\n for (const definition of filterDefinitions) {\n const key = getFilterKey(definition);\n map.set(\n key,\n buildWhereClause(\n filterDefinitions,\n filterStates,\n propertyTypes,\n key,\n ),\n );\n }\n return map;\n }, [filterDefinitions, filterStates, propertyTypes]);\n\n const activeFilterCount = useMemo(() => {\n let count = 0;\n for (const state of filterStates.values()) {\n if (filterHasActiveState(state)) {\n count++;\n }\n }\n return count;\n }, [filterStates]);\n\n const reset = useCallback(() => {\n const initialStates = buildInitialStates(filterDefinitions);\n setFilterStates(initialStates);\n\n const newWhereClause = buildWhereClause(\n filterDefinitions,\n initialStates,\n propertyTypes,\n );\n onFilterClauseChanged?.(newWhereClause);\n }, [filterDefinitions, propertyTypes, onFilterClauseChanged]);\n\n return useMemo(() => ({\n filterStates,\n setFilterState,\n clearFilterState,\n whereClause,\n perFilterWhereClauses,\n activeFilterCount,\n reset,\n }), [\n filterStates,\n setFilterState,\n clearFilterState,\n whereClause,\n perFilterWhereClauses,\n activeFilterCount,\n reset,\n ]);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { useCallback, useMemo, useState } from "react";
|
|
18
|
+
export function useFilterVisibility(filterDefinitions, getFilterKey, getIsVisible) {
|
|
19
|
+
const [visibilityOverrides, setVisibilityOverrides] = useState(() => new Map());
|
|
20
|
+
const {
|
|
21
|
+
visibleDefinitions,
|
|
22
|
+
hiddenDefinitions
|
|
23
|
+
} = useMemo(() => {
|
|
24
|
+
if (filterDefinitions == null) {
|
|
25
|
+
return {
|
|
26
|
+
visibleDefinitions: [],
|
|
27
|
+
hiddenDefinitions: []
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const visible = [];
|
|
31
|
+
const hidden = [];
|
|
32
|
+
for (const def of filterDefinitions) {
|
|
33
|
+
const key = getFilterKey(def);
|
|
34
|
+
const override = visibilityOverrides.get(key);
|
|
35
|
+
const isVisible = override ?? getIsVisible(def);
|
|
36
|
+
if (isVisible) {
|
|
37
|
+
visible.push(def);
|
|
38
|
+
} else {
|
|
39
|
+
hidden.push(def);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
visibleDefinitions: visible,
|
|
44
|
+
hiddenDefinitions: hidden
|
|
45
|
+
};
|
|
46
|
+
}, [filterDefinitions, getFilterKey, getIsVisible, visibilityOverrides]);
|
|
47
|
+
const showFilter = useCallback(key => {
|
|
48
|
+
setVisibilityOverrides(prev => {
|
|
49
|
+
const next = new Map(prev);
|
|
50
|
+
next.set(key, true);
|
|
51
|
+
return next;
|
|
52
|
+
});
|
|
53
|
+
}, []);
|
|
54
|
+
const hideFilter = useCallback(key => {
|
|
55
|
+
setVisibilityOverrides(prev => {
|
|
56
|
+
const next = new Map(prev);
|
|
57
|
+
next.set(key, false);
|
|
58
|
+
return next;
|
|
59
|
+
});
|
|
60
|
+
}, []);
|
|
61
|
+
const hasVisibilityChanges = visibilityOverrides.size > 0;
|
|
62
|
+
const resetVisibility = useCallback(() => {
|
|
63
|
+
setVisibilityOverrides(new Map());
|
|
64
|
+
}, []);
|
|
65
|
+
return {
|
|
66
|
+
visibleDefinitions,
|
|
67
|
+
hiddenDefinitions,
|
|
68
|
+
showFilter,
|
|
69
|
+
hideFilter,
|
|
70
|
+
hasVisibilityChanges,
|
|
71
|
+
resetVisibility
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=useFilterVisibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFilterVisibility.js","names":["useCallback","useMemo","useState","useFilterVisibility","filterDefinitions","getFilterKey","getIsVisible","visibilityOverrides","setVisibilityOverrides","Map","visibleDefinitions","hiddenDefinitions","visible","hidden","def","key","override","get","isVisible","push","showFilter","prev","next","set","hideFilter","hasVisibilityChanges","size","resetVisibility"],"sources":["useFilterVisibility.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, useMemo, useState } from \"react\";\n\ninterface FilterVisibilityResult<D> {\n visibleDefinitions: Array<D>;\n hiddenDefinitions: Array<D>;\n showFilter: (key: string) => void;\n hideFilter: (key: string) => void;\n hasVisibilityChanges: boolean;\n resetVisibility: () => void;\n}\n\nexport function useFilterVisibility<D>(\n filterDefinitions: Array<D> | undefined,\n getFilterKey: (definition: D) => string,\n getIsVisible: (definition: D) => boolean,\n): FilterVisibilityResult<D> {\n const [visibilityOverrides, setVisibilityOverrides] = useState<\n Map<string, boolean>\n >(() => new Map());\n\n const { visibleDefinitions, hiddenDefinitions } = useMemo(() => {\n if (filterDefinitions == null) {\n return {\n visibleDefinitions: [] as Array<D>,\n hiddenDefinitions: [] as Array<D>,\n };\n }\n\n const visible: Array<D> = [];\n const hidden: Array<D> = [];\n\n for (const def of filterDefinitions) {\n const key = getFilterKey(def);\n const override = visibilityOverrides.get(key);\n const isVisible = override ?? getIsVisible(def);\n\n if (isVisible) {\n visible.push(def);\n } else {\n hidden.push(def);\n }\n }\n\n return { visibleDefinitions: visible, hiddenDefinitions: hidden };\n }, [filterDefinitions, getFilterKey, getIsVisible, visibilityOverrides]);\n\n const showFilter = useCallback((key: string) => {\n setVisibilityOverrides((prev) => {\n const next = new Map(prev);\n next.set(key, true);\n return next;\n });\n }, []);\n\n const hideFilter = useCallback((key: string) => {\n setVisibilityOverrides((prev) => {\n const next = new Map(prev);\n next.set(key, false);\n return next;\n });\n }, []);\n\n const hasVisibilityChanges = visibilityOverrides.size > 0;\n\n const resetVisibility = useCallback(() => {\n setVisibilityOverrides(new Map());\n }, []);\n\n return {\n visibleDefinitions,\n hiddenDefinitions,\n showFilter,\n hideFilter,\n hasVisibilityChanges,\n resetVisibility,\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAWtD,OAAO,SAASC,mBAAmBA,CACjCC,iBAAuC,EACvCC,YAAuC,EACvCC,YAAwC,EACb;EAC3B,MAAM,CAACC,mBAAmB,EAAEC,sBAAsB,CAAC,GAAGN,QAAQ,CAE5D,MAAM,IAAIO,GAAG,CAAC,CAAC,CAAC;EAElB,MAAM;IAAEC,kBAAkB;IAAEC;EAAkB,CAAC,GAAGV,OAAO,CAAC,MAAM;IAC9D,IAAIG,iBAAiB,IAAI,IAAI,EAAE;MAC7B,OAAO;QACLM,kBAAkB,EAAE,EAAc;QAClCC,iBAAiB,EAAE;MACrB,CAAC;IACH;IAEA,MAAMC,OAAiB,GAAG,EAAE;IAC5B,MAAMC,MAAgB,GAAG,EAAE;IAE3B,KAAK,MAAMC,GAAG,IAAIV,iBAAiB,EAAE;MACnC,MAAMW,GAAG,GAAGV,YAAY,CAACS,GAAG,CAAC;MAC7B,MAAME,QAAQ,GAAGT,mBAAmB,CAACU,GAAG,CAACF,GAAG,CAAC;MAC7C,MAAMG,SAAS,GAAGF,QAAQ,IAAIV,YAAY,CAACQ,GAAG,CAAC;MAE/C,IAAII,SAAS,EAAE;QACbN,OAAO,CAACO,IAAI,CAACL,GAAG,CAAC;MACnB,CAAC,MAAM;QACLD,MAAM,CAACM,IAAI,CAACL,GAAG,CAAC;MAClB;IACF;IAEA,OAAO;MAAEJ,kBAAkB,EAAEE,OAAO;MAAED,iBAAiB,EAAEE;IAAO,CAAC;EACnE,CAAC,EAAE,CAACT,iBAAiB,EAAEC,YAAY,EAAEC,YAAY,EAAEC,mBAAmB,CAAC,CAAC;EAExE,MAAMa,UAAU,GAAGpB,WAAW,CAAEe,GAAW,IAAK;IAC9CP,sBAAsB,CAAEa,IAAI,IAAK;MAC/B,MAAMC,IAAI,GAAG,IAAIb,GAAG,CAACY,IAAI,CAAC;MAC1BC,IAAI,CAACC,GAAG,CAACR,GAAG,EAAE,IAAI,CAAC;MACnB,OAAOO,IAAI;IACb,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,UAAU,GAAGxB,WAAW,CAAEe,GAAW,IAAK;IAC9CP,sBAAsB,CAAEa,IAAI,IAAK;MAC/B,MAAMC,IAAI,GAAG,IAAIb,GAAG,CAACY,IAAI,CAAC;MAC1BC,IAAI,CAACC,GAAG,CAACR,GAAG,EAAE,KAAK,CAAC;MACpB,OAAOO,IAAI;IACb,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,oBAAoB,GAAGlB,mBAAmB,CAACmB,IAAI,GAAG,CAAC;EAEzD,MAAMC,eAAe,GAAG3B,WAAW,CAAC,MAAM;IACxCQ,sBAAsB,CAAC,IAAIC,GAAG,CAAC,CAAC,CAAC;EACnC,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IACLC,kBAAkB;IAClBC,iBAAiB;IACjBS,UAAU;IACVI,UAAU;IACVC,oBAAoB;IACpBE;EACF,CAAC;AACH","ignoreList":[]}
|