@osdk/react-components 0.2.0-beta.21 → 0.2.0-beta.23
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 +14 -97
- package/CHANGELOG.md +35 -0
- package/README.md +23 -7
- package/build/browser/action-form/ActionFormApi.js.map +1 -1
- package/build/browser/action-form/BaseForm.js +18 -5
- package/build/browser/action-form/BaseForm.js.map +1 -1
- 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/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/FormFieldRenderer.js +17 -6
- package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -1
- 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/TextInputField.js +2 -0
- package/build/browser/action-form/fields/TextInputField.js.map +1 -1
- package/build/browser/action-form/fields/TextInputField.module.css +56 -0
- package/build/browser/action-form/fields/TextInputField.module.css.js +6 -0
- package/build/browser/base-components/checkbox/Checkbox.js +2 -2
- package/build/browser/base-components/checkbox/Checkbox.js.map +1 -1
- package/build/browser/base-components/checkbox/Checkbox.module.css +0 -4
- package/build/browser/base-components/combobox/Combobox.js +3 -8
- package/build/browser/base-components/combobox/Combobox.js.map +1 -1
- package/build/browser/base-components/combobox/Combobox.module.css +0 -3
- package/build/browser/base-components/draggable-list/DraggableList.js +2 -4
- package/build/browser/base-components/draggable-list/DraggableList.js.map +1 -1
- package/build/browser/base-components/search-bar/SearchBar.module.css +2 -2
- package/build/browser/base-components/select/Select.js +1 -3
- package/build/browser/base-components/select/Select.js.map +1 -1
- package/build/browser/base-components/select/Select.module.css +0 -2
- package/build/browser/base-components/switch/Switch.module.css +0 -1
- package/build/browser/filter-list/FilterInput.js +14 -5
- package/build/browser/filter-list/FilterInput.js.map +1 -1
- package/build/browser/filter-list/FilterList.js +22 -10
- package/build/browser/filter-list/FilterList.js.map +1 -1
- package/build/browser/filter-list/FilterListApi.js.map +1 -1
- package/build/browser/filter-list/base/AddFilterPopover.js +4 -3
- package/build/browser/filter-list/base/AddFilterPopover.js.map +1 -1
- package/build/browser/filter-list/base/BaseFilterList.js +3 -1
- package/build/browser/filter-list/base/BaseFilterList.js.map +1 -1
- package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -1
- package/build/browser/filter-list/base/ExcludeDropdown.js +61 -0
- package/build/browser/filter-list/base/ExcludeDropdown.js.map +1 -0
- package/build/browser/filter-list/base/ExcludeDropdown.module.css +94 -0
- package/build/browser/filter-list/base/ExcludeDropdown.module.css.js +12 -0
- package/build/browser/filter-list/base/FilterIcons.js +0 -39
- package/build/browser/filter-list/base/FilterIcons.js.map +1 -1
- package/build/browser/filter-list/base/FilterInputExcludeRow.js +55 -0
- package/build/browser/filter-list/base/FilterInputExcludeRow.js.map +1 -0
- package/build/browser/filter-list/base/FilterListHeader.js +3 -2
- package/build/browser/filter-list/base/FilterListHeader.js.map +1 -1
- package/build/browser/filter-list/base/FilterListItem.js +72 -23
- package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
- package/build/browser/filter-list/base/FilterListItem.module.css +96 -20
- package/build/browser/filter-list/base/FilterListItem.module.css.js +7 -2
- package/build/browser/filter-list/base/inputs/CheckboxListInput.js +2 -2
- package/build/browser/filter-list/base/inputs/CheckboxListInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/ContainsTextInput.js +2 -6
- package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/DateRangeInput.js +1 -1
- package/build/browser/filter-list/base/inputs/DateRangeInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/ListogramInput.js +2 -2
- package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/MultiDateInput.js +1 -1
- package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/RangeInput.js +2 -2
- package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -1
- 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/SingleSelectInput.js +1 -3
- package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/TimelineInput.js +1 -1
- package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/index.js +1 -1
- package/build/browser/filter-list/base/inputs/index.js.map +1 -1
- package/build/{esm/filter-list/base/inputs/useStaleData.js → browser/filter-list/base/inputs/useStableData.js} +5 -5
- package/build/browser/filter-list/base/inputs/useStableData.js.map +1 -0
- package/build/browser/filter-list/hooks/useFilterListState.js +3 -0
- package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
- package/build/browser/filter-list/hooks/useFilterVisibility.js +7 -1
- package/build/browser/filter-list/hooks/useFilterVisibility.js.map +1 -1
- package/build/browser/filter-list/hooks/usePropertyAggregation.js +3 -2
- package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -1
- package/build/browser/filter-list/inputs/CheckboxListFilterInput.js +15 -5
- package/build/browser/filter-list/inputs/CheckboxListFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/DateRangeFilterInput.js +10 -6
- package/build/browser/filter-list/inputs/DateRangeFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/LinkedPropertyInput.js +41 -18
- package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
- package/build/browser/filter-list/inputs/ListogramFilterInput.js +15 -5
- package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/MultiSelectFilterInput.js +12 -4
- package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/NumberRangeFilterInput.js +10 -6
- package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/PropertyFilterInput.js +36 -10
- package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/SingleSelectFilterInput.js +12 -4
- package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/TextTagsFilterInput.js +12 -4
- package/build/browser/filter-list/inputs/TextTagsFilterInput.js.map +1 -1
- package/build/browser/filter-list/utils/filterStateToWhereClause.js +1 -1
- package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -1
- package/build/browser/filter-list/utils/filterValues.js +29 -1
- package/build/browser/filter-list/utils/filterValues.js.map +1 -1
- package/build/browser/object-table/LoadingCell.js +2 -1
- 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/LoadingStateTable.js +2 -1
- package/build/browser/object-table/LoadingStateTable.js.map +1 -1
- package/build/browser/object-table/MultiColumnSortDialog.js +1 -3
- package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -1
- package/build/browser/object-table/MultiColumnSortDialog.module.css +0 -1
- package/build/browser/object-table/TableCell.module.css +1 -1
- package/build/browser/object-table/TableHeader.module.css +2 -2
- 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 -0
- package/build/browser/pdf-viewer/PdfRenderer.js +1 -1
- package/build/browser/pdf-viewer/PdfRenderer.js.map +1 -1
- package/build/browser/pdf-viewer/PdfViewer.js +59 -118
- package/build/browser/pdf-viewer/PdfViewer.js.map +1 -1
- package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -0
- package/build/{esm/pdf-viewer → browser/pdf-viewer/components}/PdfViewerAnnotationLayer.module.css +0 -1
- package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.module.css.js +11 -0
- package/build/browser/pdf-viewer/components/PdfViewerContent.js +113 -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.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerSearchBar.module.css.js +10 -0
- package/build/browser/pdf-viewer/{PdfViewerSidebar.js → components/PdfViewerSidebar.js} +9 -5
- package/build/browser/pdf-viewer/components/PdfViewerSidebar.js.map +1 -0
- package/build/{esm/pdf-viewer → browser/pdf-viewer/components}/PdfViewerSidebar.module.css +0 -9
- package/build/browser/pdf-viewer/{PdfViewerSidebar.module.css.js → components/PdfViewerSidebar.module.css.js} +5 -6
- 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/{PdfViewerThumbnail.js → components/PdfViewerThumbnail.js} +1 -1
- package/build/browser/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -0
- package/build/browser/pdf-viewer/{PdfViewerThumbnail.module.css.js → components/PdfViewerThumbnail.module.css.js} +3 -3
- package/build/browser/pdf-viewer/{PdfViewerToolbar.js → components/PdfViewerToolbar.js} +39 -12
- package/build/browser/pdf-viewer/components/PdfViewerToolbar.js.map +1 -0
- package/build/browser/pdf-viewer/{PdfViewerToolbar.module.css → components/PdfViewerToolbar.module.css} +2 -2
- package/build/browser/pdf-viewer/components/PdfViewerToolbar.module.css.js +12 -0
- package/build/browser/pdf-viewer/constants.js +7 -5
- package/build/browser/pdf-viewer/constants.js.map +1 -1
- package/build/browser/pdf-viewer/hooks/usePdfDocument.js +2 -3
- package/build/browser/pdf-viewer/hooks/usePdfDocument.js.map +1 -1
- 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 +12 -1
- package/build/browser/pdf-viewer/hooks/usePdfViewer.js.map +1 -1
- 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/usePdfViewerState.js +135 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerState.js.map +1 -0
- package/build/browser/pdf-viewer/types.js.map +1 -1
- package/build/browser/public/experimental.js +23 -2
- 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/{filter-list/base/inputs → shared}/dateUtils.js +38 -2
- package/build/browser/shared/dateUtils.js.map +1 -0
- package/build/browser/styles.css +817 -136
- 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-GT6IV6LV.cjs +163 -0
- package/build/cjs/chunk-GT6IV6LV.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-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 +3227 -1848
- package/build/cjs/public/experimental.cjs.map +1 -1
- package/build/cjs/public/experimental.css +650 -172
- package/build/cjs/public/experimental.css.map +1 -1
- package/build/cjs/public/experimental.d.cts +685 -17
- 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 +49 -0
- package/build/esm/action-form/ActionFormApi.js.map +1 -1
- package/build/esm/action-form/BaseForm.js +18 -5
- package/build/esm/action-form/BaseForm.js.map +1 -1
- 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/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/FormFieldRenderer.js +17 -6
- package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -1
- 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/TextInputField.js +2 -0
- package/build/esm/action-form/fields/TextInputField.js.map +1 -1
- package/build/esm/action-form/fields/TextInputField.module.css +56 -0
- package/build/esm/base-components/checkbox/Checkbox.js +2 -2
- package/build/esm/base-components/checkbox/Checkbox.js.map +1 -1
- package/build/esm/base-components/checkbox/Checkbox.module.css +0 -4
- package/build/esm/base-components/combobox/Combobox.js +3 -8
- package/build/esm/base-components/combobox/Combobox.js.map +1 -1
- package/build/esm/base-components/combobox/Combobox.module.css +0 -3
- package/build/esm/base-components/draggable-list/DraggableList.js +2 -4
- package/build/esm/base-components/draggable-list/DraggableList.js.map +1 -1
- package/build/esm/base-components/search-bar/SearchBar.module.css +2 -2
- package/build/esm/base-components/select/Select.js +1 -3
- package/build/esm/base-components/select/Select.js.map +1 -1
- package/build/esm/base-components/select/Select.module.css +0 -2
- package/build/esm/base-components/switch/Switch.module.css +0 -1
- package/build/esm/filter-list/FilterInput.js +14 -5
- package/build/esm/filter-list/FilterInput.js.map +1 -1
- package/build/esm/filter-list/FilterList.js +22 -10
- package/build/esm/filter-list/FilterList.js.map +1 -1
- package/build/esm/filter-list/FilterListApi.js.map +1 -1
- package/build/esm/filter-list/base/AddFilterPopover.js +4 -3
- package/build/esm/filter-list/base/AddFilterPopover.js.map +1 -1
- package/build/esm/filter-list/base/BaseFilterList.js +3 -1
- package/build/esm/filter-list/base/BaseFilterList.js.map +1 -1
- package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -1
- package/build/esm/filter-list/base/ExcludeDropdown.js +61 -0
- package/build/esm/filter-list/base/ExcludeDropdown.js.map +1 -0
- package/build/esm/filter-list/base/ExcludeDropdown.module.css +94 -0
- package/build/esm/filter-list/base/FilterIcons.js +0 -39
- package/build/esm/filter-list/base/FilterIcons.js.map +1 -1
- package/build/esm/filter-list/base/FilterInputExcludeRow.js +55 -0
- package/build/esm/filter-list/base/FilterInputExcludeRow.js.map +1 -0
- package/build/esm/filter-list/base/FilterListHeader.js +3 -2
- package/build/esm/filter-list/base/FilterListHeader.js.map +1 -1
- package/build/esm/filter-list/base/FilterListItem.js +72 -23
- package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
- package/build/esm/filter-list/base/FilterListItem.module.css +96 -20
- package/build/esm/filter-list/base/inputs/CheckboxListInput.js +2 -2
- package/build/esm/filter-list/base/inputs/CheckboxListInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/ContainsTextInput.js +2 -6
- package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/DateRangeInput.js +1 -1
- package/build/esm/filter-list/base/inputs/DateRangeInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/ListogramInput.js +2 -2
- package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/MultiDateInput.js +1 -1
- package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/RangeInput.js +2 -2
- package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -1
- 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/SingleSelectInput.js +1 -3
- package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/TimelineInput.js +1 -1
- package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/index.js +1 -1
- package/build/esm/filter-list/base/inputs/index.js.map +1 -1
- package/build/{browser/filter-list/base/inputs/useStaleData.js → esm/filter-list/base/inputs/useStableData.js} +5 -5
- package/build/esm/filter-list/base/inputs/useStableData.js.map +1 -0
- package/build/esm/filter-list/hooks/useFilterListState.js +3 -0
- package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
- package/build/esm/filter-list/hooks/useFilterVisibility.js +7 -1
- package/build/esm/filter-list/hooks/useFilterVisibility.js.map +1 -1
- package/build/esm/filter-list/hooks/usePropertyAggregation.js +3 -2
- package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -1
- package/build/esm/filter-list/inputs/CheckboxListFilterInput.js +15 -5
- package/build/esm/filter-list/inputs/CheckboxListFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/DateRangeFilterInput.js +10 -6
- package/build/esm/filter-list/inputs/DateRangeFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/LinkedPropertyInput.js +41 -18
- package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
- package/build/esm/filter-list/inputs/ListogramFilterInput.js +15 -5
- package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/MultiSelectFilterInput.js +12 -4
- package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/NumberRangeFilterInput.js +10 -6
- package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/PropertyFilterInput.js +36 -10
- package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/SingleSelectFilterInput.js +12 -4
- package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/TextTagsFilterInput.js +12 -4
- package/build/esm/filter-list/inputs/TextTagsFilterInput.js.map +1 -1
- package/build/esm/filter-list/utils/filterStateToWhereClause.js +1 -1
- package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -1
- package/build/esm/filter-list/utils/filterValues.js +29 -1
- package/build/esm/filter-list/utils/filterValues.js.map +1 -1
- package/build/esm/object-table/LoadingCell.js +2 -1
- 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/LoadingStateTable.js +2 -1
- package/build/esm/object-table/LoadingStateTable.js.map +1 -1
- package/build/esm/object-table/MultiColumnSortDialog.js +1 -3
- package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -1
- package/build/esm/object-table/MultiColumnSortDialog.module.css +0 -1
- package/build/esm/object-table/TableCell.module.css +1 -1
- package/build/esm/object-table/TableHeader.module.css +2 -2
- 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 -0
- package/build/esm/pdf-viewer/PdfRenderer.js +1 -1
- package/build/esm/pdf-viewer/PdfRenderer.js.map +1 -1
- package/build/esm/pdf-viewer/PdfViewer.js +59 -118
- package/build/esm/pdf-viewer/PdfViewer.js.map +1 -1
- package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -0
- package/build/{browser/pdf-viewer → esm/pdf-viewer/components}/PdfViewerAnnotationLayer.module.css +0 -1
- package/build/esm/pdf-viewer/components/PdfViewerContent.js +113 -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.map +1 -0
- package/build/esm/pdf-viewer/{PdfViewerSidebar.js → components/PdfViewerSidebar.js} +9 -5
- package/build/esm/pdf-viewer/components/PdfViewerSidebar.js.map +1 -0
- package/build/{browser/pdf-viewer → esm/pdf-viewer/components}/PdfViewerSidebar.module.css +0 -9
- 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/{PdfViewerThumbnail.js → components/PdfViewerThumbnail.js} +1 -1
- package/build/esm/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -0
- package/build/esm/pdf-viewer/{PdfViewerToolbar.js → components/PdfViewerToolbar.js} +39 -12
- package/build/esm/pdf-viewer/components/PdfViewerToolbar.js.map +1 -0
- package/build/esm/pdf-viewer/{PdfViewerToolbar.module.css → components/PdfViewerToolbar.module.css} +2 -2
- package/build/esm/pdf-viewer/constants.js +7 -5
- package/build/esm/pdf-viewer/constants.js.map +1 -1
- package/build/esm/pdf-viewer/hooks/usePdfDocument.js +2 -3
- package/build/esm/pdf-viewer/hooks/usePdfDocument.js.map +1 -1
- 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 +12 -1
- package/build/esm/pdf-viewer/hooks/usePdfViewer.js.map +1 -1
- 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/usePdfViewerState.js +135 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerState.js.map +1 -0
- package/build/esm/pdf-viewer/types.js.map +1 -1
- package/build/esm/public/experimental.js +23 -2
- 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/{filter-list/base/inputs → shared}/dateUtils.js +38 -2
- package/build/esm/shared/dateUtils.js.map +1 -0
- package/build/types/action-form/ActionFormApi.d.ts +1 -0
- package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
- package/build/types/action-form/BaseForm.d.ts.map +1 -1
- package/build/types/action-form/FormField.d.ts +11 -0
- package/build/types/action-form/FormField.d.ts.map +1 -0
- package/build/types/action-form/FormFieldApi.d.ts +22 -8
- 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/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/FormFieldRenderer.d.ts.map +1 -1
- 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/TextInputField.d.ts.map +1 -1
- package/build/types/filter-list/FilterInput.d.ts +3 -1
- package/build/types/filter-list/FilterInput.d.ts.map +1 -1
- package/build/types/filter-list/FilterListApi.d.ts +14 -10
- package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
- package/build/types/filter-list/base/AddFilterPopover.d.ts +2 -1
- package/build/types/filter-list/base/AddFilterPopover.d.ts.map +1 -1
- package/build/types/filter-list/base/BaseFilterListApi.d.ts +4 -1
- package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -1
- 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 +0 -2
- package/build/types/filter-list/base/FilterIcons.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterInputExcludeRow.d.ts +12 -0
- package/build/types/filter-list/base/FilterInputExcludeRow.d.ts.map +1 -0
- 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.map +1 -1
- package/build/types/filter-list/base/inputs/DateRangeInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/index.d.ts +1 -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/useFilterVisibility.d.ts +2 -0
- package/build/types/filter-list/hooks/useFilterVisibility.d.ts.map +1 -1
- package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +2 -2
- package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -1
- package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts +5 -2
- package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts +3 -2
- package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts +2 -1
- package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/ListogramFilterInput.d.ts +5 -2
- package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts +4 -2
- package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts +3 -2
- package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/PropertyFilterInput.d.ts +3 -1
- package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts +4 -2
- package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts +4 -2
- package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/utils/filterValues.d.ts +2 -0
- package/build/types/filter-list/utils/filterValues.d.ts.map +1 -1
- package/build/types/object-table/LoadingCell.d.ts.map +1 -1
- package/build/types/object-table/LoadingStateTable.d.ts.map +1 -1
- package/build/types/pdf-viewer/PdfRenderer.d.ts +2 -2
- package/build/types/pdf-viewer/PdfRenderer.d.ts.map +1 -1
- package/build/types/pdf-viewer/PdfViewer.d.ts +1 -1
- package/build/types/pdf-viewer/PdfViewer.d.ts.map +1 -1
- package/build/types/pdf-viewer/{PdfViewerAnnotationLayer.d.ts → components/PdfViewerAnnotationLayer.d.ts} +2 -3
- package/build/types/pdf-viewer/components/PdfViewerAnnotationLayer.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerContent.d.ts +22 -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/{PdfViewerSearchBar.d.ts → components/PdfViewerSearchBar.d.ts} +1 -2
- 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/{PdfViewerThumbnail.d.ts.map → components/PdfViewerThumbnail.d.ts.map} +1 -1
- package/build/types/pdf-viewer/{PdfViewerToolbar.d.ts → components/PdfViewerToolbar.d.ts} +5 -3
- package/build/types/pdf-viewer/components/PdfViewerToolbar.d.ts.map +1 -0
- package/build/types/pdf-viewer/constants.d.ts +5 -0
- package/build/types/pdf-viewer/constants.d.ts.map +1 -1
- package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts.map +1 -1
- 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 +1 -1
- package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts.map +1 -1
- 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/usePdfViewerState.d.ts +39 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts.map +1 -0
- package/build/types/pdf-viewer/types.d.ts +42 -0
- package/build/types/pdf-viewer/types.d.ts.map +1 -1
- package/build/types/public/experimental.d.ts +21 -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/dateUtils.d.ts +31 -0
- package/build/types/shared/dateUtils.d.ts.map +1 -0
- package/package.json +14 -4
- package/primitives.d.ts +17 -0
- package/build/browser/filter-list/base/inputs/dateUtils.js.map +0 -1
- package/build/browser/filter-list/base/inputs/useStaleData.js.map +0 -1
- package/build/browser/pdf-viewer/PdfViewerAnnotationLayer.js.map +0 -1
- package/build/browser/pdf-viewer/PdfViewerAnnotationLayer.module.css.js +0 -11
- package/build/browser/pdf-viewer/PdfViewerSearchBar.js.map +0 -1
- package/build/browser/pdf-viewer/PdfViewerSearchBar.module.css.js +0 -10
- package/build/browser/pdf-viewer/PdfViewerSidebar.js.map +0 -1
- package/build/browser/pdf-viewer/PdfViewerThumbnail.js.map +0 -1
- package/build/browser/pdf-viewer/PdfViewerToolbar.js.map +0 -1
- package/build/browser/pdf-viewer/PdfViewerToolbar.module.css.js +0 -12
- package/build/esm/filter-list/base/inputs/dateUtils.js.map +0 -1
- package/build/esm/filter-list/base/inputs/useStaleData.js.map +0 -1
- package/build/esm/pdf-viewer/PdfViewerAnnotationLayer.js.map +0 -1
- package/build/esm/pdf-viewer/PdfViewerSearchBar.js.map +0 -1
- package/build/esm/pdf-viewer/PdfViewerSidebar.js.map +0 -1
- package/build/esm/pdf-viewer/PdfViewerThumbnail.js.map +0 -1
- package/build/esm/pdf-viewer/PdfViewerToolbar.js.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/base/inputs/useStaleData.d.ts +0 -1
- package/build/types/filter-list/base/inputs/useStaleData.d.ts.map +0 -1
- package/build/types/pdf-viewer/PdfViewerAnnotationLayer.d.ts.map +0 -1
- package/build/types/pdf-viewer/PdfViewerSearchBar.d.ts.map +0 -1
- package/build/types/pdf-viewer/PdfViewerSidebar.d.ts +0 -10
- package/build/types/pdf-viewer/PdfViewerSidebar.d.ts.map +0 -1
- package/build/types/pdf-viewer/PdfViewerToolbar.d.ts.map +0 -1
- /package/build/browser/pdf-viewer/{PdfViewerAnnotationLayer.js → components/PdfViewerAnnotationLayer.js} +0 -0
- /package/build/browser/pdf-viewer/{PdfViewerSearchBar.js → components/PdfViewerSearchBar.js} +0 -0
- /package/build/browser/pdf-viewer/{PdfViewerSearchBar.module.css → components/PdfViewerSearchBar.module.css} +0 -0
- /package/build/browser/pdf-viewer/{PdfViewerThumbnail.module.css → components/PdfViewerThumbnail.module.css} +0 -0
- /package/build/esm/pdf-viewer/{PdfViewerAnnotationLayer.js → components/PdfViewerAnnotationLayer.js} +0 -0
- /package/build/esm/pdf-viewer/{PdfViewerSearchBar.js → components/PdfViewerSearchBar.js} +0 -0
- /package/build/esm/pdf-viewer/{PdfViewerSearchBar.module.css → components/PdfViewerSearchBar.module.css} +0 -0
- /package/build/esm/pdf-viewer/{PdfViewerThumbnail.module.css → components/PdfViewerThumbnail.module.css} +0 -0
- /package/build/types/pdf-viewer/{PdfViewerThumbnail.d.ts → components/PdfViewerThumbnail.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddFilterPopover.js","names":["Menu","React","memo","useCallback","styles","AddFilterPopoverInner","hiddenDefinitions","onShowFilter","handleItemClick","event","key","currentTarget","dataset","createElement","Root","Trigger","className","trigger","Portal","Positioner","positioner","sideOffset","Popup","popup","map","item","Item","menuItem","onClick","label","AddFilterPopover"],"sources":["AddFilterPopover.tsx"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Menu } from \"@base-ui/react/menu\";\nimport React, { memo, useCallback } from \"react\";\nimport styles from \"./AddFilterPopover.module.css\";\n\ninterface HiddenFilterItem {\n key: string;\n label: string;\n}\n\ninterface AddFilterPopoverProps {\n hiddenDefinitions: Array<HiddenFilterItem>;\n onShowFilter: (key: string) => void;\n}\n\nfunction AddFilterPopoverInner({\n hiddenDefinitions,\n onShowFilter,\n}: AddFilterPopoverProps): React.ReactElement {\n const handleItemClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const key = event.currentTarget.dataset.key;\n if (key != null) {\n onShowFilter(key);\n }\n },\n [onShowFilter],\n );\n\n return (\n <Menu.Root>\n <Menu.Trigger
|
|
1
|
+
{"version":3,"file":"AddFilterPopover.js","names":["Menu","React","memo","useCallback","styles","AddFilterPopoverInner","hiddenDefinitions","onShowFilter","renderTrigger","handleItemClick","event","key","currentTarget","dataset","createElement","Root","Trigger","className","trigger","undefined","Portal","Positioner","positioner","sideOffset","Popup","popup","map","item","Item","menuItem","onClick","label","AddFilterPopover"],"sources":["AddFilterPopover.tsx"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Menu } from \"@base-ui/react/menu\";\nimport React, { memo, useCallback } from \"react\";\nimport styles from \"./AddFilterPopover.module.css\";\n\ninterface HiddenFilterItem {\n key: string;\n label: string;\n}\n\ninterface AddFilterPopoverProps {\n hiddenDefinitions: Array<HiddenFilterItem>;\n onShowFilter: (key: string) => void;\n renderTrigger?: () => React.ReactNode;\n}\n\nfunction AddFilterPopoverInner({\n hiddenDefinitions,\n onShowFilter,\n renderTrigger,\n}: AddFilterPopoverProps): React.ReactElement {\n const handleItemClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const key = event.currentTarget.dataset.key;\n if (key != null) {\n onShowFilter(key);\n }\n },\n [onShowFilter],\n );\n\n return (\n <Menu.Root>\n <Menu.Trigger\n className={renderTrigger == null ? styles.trigger : undefined}\n >\n {renderTrigger != null ? renderTrigger() : \"+ Add filter\"}\n </Menu.Trigger>\n <Menu.Portal>\n <Menu.Positioner className={styles.positioner} sideOffset={4}>\n <Menu.Popup className={styles.popup}>\n {hiddenDefinitions.map((item) => (\n <Menu.Item\n key={item.key}\n className={styles.menuItem}\n data-key={item.key}\n onClick={handleItemClick}\n >\n {item.label}\n </Menu.Item>\n ))}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </Menu.Root>\n );\n}\n\nexport const AddFilterPopover: React.MemoExoticComponent<\n typeof AddFilterPopoverInner\n> = memo(AddFilterPopoverInner);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,QAAQ,qBAAqB;AAC1C,OAAOC,KAAK,IAAIC,IAAI,EAAEC,WAAW,QAAQ,OAAO;AAChD,OAAOC,MAAM,MAAM,+BAA+B;AAalD,SAASC,qBAAqBA,CAAC;EAC7BC,iBAAiB;EACjBC,YAAY;EACZC;AACqB,CAAC,EAAsB;EAC5C,MAAMC,eAAe,GAAGN,WAAW,CAChCO,KAAuC,IAAK;IAC3C,MAAMC,GAAG,GAAGD,KAAK,CAACE,aAAa,CAACC,OAAO,CAACF,GAAG;IAC3C,IAAIA,GAAG,IAAI,IAAI,EAAE;MACfJ,YAAY,CAACI,GAAG,CAAC;IACnB;EACF,CAAC,EACD,CAACJ,YAAY,CACf,CAAC;EAED,oBACEN,KAAA,CAAAa,aAAA,CAACd,IAAI,CAACe,IAAI,qBACRd,KAAA,CAAAa,aAAA,CAACd,IAAI,CAACgB,OAAO;IACXC,SAAS,EAAET,aAAa,IAAI,IAAI,GAAGJ,MAAM,CAACc,OAAO,GAAGC;EAAU,GAE7DX,aAAa,IAAI,IAAI,GAAGA,aAAa,CAAC,CAAC,GAAG,cAC/B,CAAC,eACfP,KAAA,CAAAa,aAAA,CAACd,IAAI,CAACoB,MAAM,qBACVnB,KAAA,CAAAa,aAAA,CAACd,IAAI,CAACqB,UAAU;IAACJ,SAAS,EAAEb,MAAM,CAACkB,UAAW;IAACC,UAAU,EAAE;EAAE,gBAC3DtB,KAAA,CAAAa,aAAA,CAACd,IAAI,CAACwB,KAAK;IAACP,SAAS,EAAEb,MAAM,CAACqB;EAAM,GACjCnB,iBAAiB,CAACoB,GAAG,CAAEC,IAAI,iBAC1B1B,KAAA,CAAAa,aAAA,CAACd,IAAI,CAAC4B,IAAI;IACRjB,GAAG,EAAEgB,IAAI,CAAChB,GAAI;IACdM,SAAS,EAAEb,MAAM,CAACyB,QAAS;IAC3B,YAAUF,IAAI,CAAChB,GAAI;IACnBmB,OAAO,EAAErB;EAAgB,GAExBkB,IAAI,CAACI,KACG,CACZ,CACS,CACG,CACN,CACJ,CAAC;AAEhB;AAEA,OAAO,MAAMC,gBAEZ,gBAAG9B,IAAI,CAACG,qBAAqB,CAAC","ignoreList":[]}
|
|
@@ -39,6 +39,7 @@ export function BaseFilterList(props) {
|
|
|
39
39
|
onFilterRemoved,
|
|
40
40
|
showResetButton = false,
|
|
41
41
|
showActiveFilterCount = false,
|
|
42
|
+
hasVisibilityChanges,
|
|
42
43
|
enableSorting,
|
|
43
44
|
className,
|
|
44
45
|
renderAddFilterButton
|
|
@@ -69,7 +70,8 @@ export function BaseFilterList(props) {
|
|
|
69
70
|
showResetButton: showResetButton,
|
|
70
71
|
onReset: onReset,
|
|
71
72
|
showActiveFilterCount: showActiveFilterCount,
|
|
72
|
-
activeFilterCount: activeFilterCount
|
|
73
|
+
activeFilterCount: activeFilterCount,
|
|
74
|
+
hasVisibilityChanges: hasVisibilityChanges
|
|
73
75
|
}), /*#__PURE__*/React.createElement(FilterListContent, {
|
|
74
76
|
filterDefinitions: filterDefinitions,
|
|
75
77
|
filterStates: filterStates,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseFilterList.js","names":["Button","classnames","React","useCallback","ExpandIcon","styles","FilterListContent","FilterListHeader","BaseFilterList","props","title","titleIcon","collapsed","onCollapsedChange","filterDefinitions","filterStates","onFilterStateChanged","renderInput","getFilterKey","getFilterLabel","activeFilterCount","onReset","onFilterAdded","onFilterRemoved","showResetButton","showActiveFilterCount","enableSorting","className","renderAddFilterButton","handleExpand","isCollapsed","createElement","filterList","filterListCollapsed","expandButton","onClick","collapsedLabel","expandedContent","hiddenContent","addButtonContainer","type","addButton"],"sources":["BaseFilterList.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, { useCallback } from \"react\";\nimport type { BaseFilterListProps } from \"./BaseFilterListApi.js\";\nimport { ExpandIcon } from \"./FilterIcons.js\";\nimport styles from \"./FilterList.module.css\";\nimport { FilterListContent } from \"./FilterListContent.js\";\nimport { FilterListHeader } from \"./FilterListHeader.js\";\n\nexport function BaseFilterList<D>(\n props: BaseFilterListProps<D>,\n): React.ReactElement {\n const {\n title,\n titleIcon,\n collapsed = false,\n onCollapsedChange,\n filterDefinitions,\n filterStates,\n onFilterStateChanged,\n renderInput,\n getFilterKey,\n getFilterLabel,\n activeFilterCount,\n onReset,\n onFilterAdded,\n onFilterRemoved,\n showResetButton = false,\n showActiveFilterCount = false,\n enableSorting,\n className,\n renderAddFilterButton,\n } = props;\n\n const showHeader = title || titleIcon || showResetButton\n || showActiveFilterCount || onCollapsedChange;\n\n const showAddButton = renderAddFilterButton != null || onFilterAdded != null;\n\n const handleExpand = useCallback(() => {\n onCollapsedChange?.(false);\n }, [onCollapsedChange]);\n\n const isCollapsed = collapsed && onCollapsedChange != null;\n\n return (\n <div className={classnames(styles.filterList, className)}>\n {isCollapsed && (\n <div\n className={styles.filterListCollapsed}\n data-collapsed=\"true\"\n >\n <Button\n className={styles.expandButton}\n onClick={handleExpand}\n aria-label=\"Expand filters\"\n >\n <ExpandIcon />\n </Button>\n <span className={styles.collapsedLabel}>{title ?? \"Filters\"}</span>\n </div>\n )}\n <div\n className={classnames(\n styles.expandedContent,\n isCollapsed && styles.hiddenContent,\n )}\n data-active-count={activeFilterCount}\n >\n {showHeader && (\n <FilterListHeader\n title={title}\n titleIcon={titleIcon}\n collapsed={collapsed}\n onCollapsedChange={onCollapsedChange}\n showResetButton={showResetButton}\n onReset={onReset}\n showActiveFilterCount={showActiveFilterCount}\n activeFilterCount={activeFilterCount}\n />\n )}\n\n <FilterListContent\n filterDefinitions={filterDefinitions}\n filterStates={filterStates}\n onFilterStateChanged={onFilterStateChanged}\n onFilterRemoved={onFilterRemoved}\n renderInput={renderInput}\n getFilterKey={getFilterKey}\n getFilterLabel={getFilterLabel}\n enableSorting={enableSorting}\n />\n\n {showAddButton && (\n <div className={styles.addButtonContainer}>\n {renderAddFilterButton\n ? renderAddFilterButton()\n : (\n <Button\n type=\"button\"\n className={styles.addButton}\n onClick={onFilterAdded}\n >\n + Add filter\n </Button>\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\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,WAAW,QAAQ,OAAO;AAE1C,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,OAAOC,MAAM,MAAM,yBAAyB;AAC5C,SAASC,iBAAiB,QAAQ,wBAAwB;AAC1D,SAASC,gBAAgB,QAAQ,uBAAuB;AAExD,OAAO,SAASC,cAAcA,CAC5BC,KAA6B,EACT;EACpB,MAAM;IACJC,KAAK;IACLC,SAAS;IACTC,SAAS,GAAG,KAAK;IACjBC,iBAAiB;IACjBC,iBAAiB;IACjBC,YAAY;IACZC,oBAAoB;IACpBC,WAAW;IACXC,YAAY;IACZC,cAAc;IACdC,iBAAiB;IACjBC,OAAO;IACPC,aAAa;IACbC,eAAe;IACfC,eAAe,GAAG,KAAK;IACvBC,qBAAqB,GAAG,KAAK;IAC7BC,aAAa;IACbC,SAAS;IACTC;EACF,CAAC,
|
|
1
|
+
{"version":3,"file":"BaseFilterList.js","names":["Button","classnames","React","useCallback","ExpandIcon","styles","FilterListContent","FilterListHeader","BaseFilterList","props","title","titleIcon","collapsed","onCollapsedChange","filterDefinitions","filterStates","onFilterStateChanged","renderInput","getFilterKey","getFilterLabel","activeFilterCount","onReset","onFilterAdded","onFilterRemoved","showResetButton","showActiveFilterCount","hasVisibilityChanges","enableSorting","className","renderAddFilterButton","handleExpand","isCollapsed","createElement","filterList","filterListCollapsed","expandButton","onClick","collapsedLabel","expandedContent","hiddenContent","addButtonContainer","type","addButton"],"sources":["BaseFilterList.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, { useCallback } from \"react\";\nimport type { BaseFilterListProps } from \"./BaseFilterListApi.js\";\nimport { ExpandIcon } from \"./FilterIcons.js\";\nimport styles from \"./FilterList.module.css\";\nimport { FilterListContent } from \"./FilterListContent.js\";\nimport { FilterListHeader } from \"./FilterListHeader.js\";\n\nexport function BaseFilterList<D>(\n props: BaseFilterListProps<D>,\n): React.ReactElement {\n const {\n title,\n titleIcon,\n collapsed = false,\n onCollapsedChange,\n filterDefinitions,\n filterStates,\n onFilterStateChanged,\n renderInput,\n getFilterKey,\n getFilterLabel,\n activeFilterCount,\n onReset,\n onFilterAdded,\n onFilterRemoved,\n showResetButton = false,\n showActiveFilterCount = false,\n hasVisibilityChanges,\n enableSorting,\n className,\n renderAddFilterButton,\n } = props;\n\n const showHeader = title || titleIcon || showResetButton\n || showActiveFilterCount || onCollapsedChange;\n\n const showAddButton = renderAddFilterButton != null || onFilterAdded != null;\n\n const handleExpand = useCallback(() => {\n onCollapsedChange?.(false);\n }, [onCollapsedChange]);\n\n const isCollapsed = collapsed && onCollapsedChange != null;\n\n return (\n <div className={classnames(styles.filterList, className)}>\n {isCollapsed && (\n <div\n className={styles.filterListCollapsed}\n data-collapsed=\"true\"\n >\n <Button\n className={styles.expandButton}\n onClick={handleExpand}\n aria-label=\"Expand filters\"\n >\n <ExpandIcon />\n </Button>\n <span className={styles.collapsedLabel}>{title ?? \"Filters\"}</span>\n </div>\n )}\n <div\n className={classnames(\n styles.expandedContent,\n isCollapsed && styles.hiddenContent,\n )}\n data-active-count={activeFilterCount}\n >\n {showHeader && (\n <FilterListHeader\n title={title}\n titleIcon={titleIcon}\n collapsed={collapsed}\n onCollapsedChange={onCollapsedChange}\n showResetButton={showResetButton}\n onReset={onReset}\n showActiveFilterCount={showActiveFilterCount}\n activeFilterCount={activeFilterCount}\n hasVisibilityChanges={hasVisibilityChanges}\n />\n )}\n\n <FilterListContent\n filterDefinitions={filterDefinitions}\n filterStates={filterStates}\n onFilterStateChanged={onFilterStateChanged}\n onFilterRemoved={onFilterRemoved}\n renderInput={renderInput}\n getFilterKey={getFilterKey}\n getFilterLabel={getFilterLabel}\n enableSorting={enableSorting}\n />\n\n {showAddButton && (\n <div className={styles.addButtonContainer}>\n {renderAddFilterButton\n ? renderAddFilterButton()\n : (\n <Button\n type=\"button\"\n className={styles.addButton}\n onClick={onFilterAdded}\n >\n + Add filter\n </Button>\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\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,WAAW,QAAQ,OAAO;AAE1C,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,OAAOC,MAAM,MAAM,yBAAyB;AAC5C,SAASC,iBAAiB,QAAQ,wBAAwB;AAC1D,SAASC,gBAAgB,QAAQ,uBAAuB;AAExD,OAAO,SAASC,cAAcA,CAC5BC,KAA6B,EACT;EACpB,MAAM;IACJC,KAAK;IACLC,SAAS;IACTC,SAAS,GAAG,KAAK;IACjBC,iBAAiB;IACjBC,iBAAiB;IACjBC,YAAY;IACZC,oBAAoB;IACpBC,WAAW;IACXC,YAAY;IACZC,cAAc;IACdC,iBAAiB;IACjBC,OAAO;IACPC,aAAa;IACbC,eAAe;IACfC,eAAe,GAAG,KAAK;IACvBC,qBAAqB,GAAG,KAAK;IAC7BC,oBAAoB;IACpBC,aAAa;IACbC,SAAS;IACTC;EACF,CAAC,GAAGpB,KAAK;EAOT,MAAMqB,YAAY,GAAG3B,WAAW,CAAC,MAAM;IACrCU,iBAAiB,GAAG,KAAK,CAAC;EAC5B,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,MAAMkB,WAAW,GAAGnB,SAAS,IAAIC,iBAAiB,IAAI,IAAI;EAE1D,oBACEX,KAAA,CAAA8B,aAAA;IAAKJ,SAAS,EAAE3B,UAAU,CAACI,MAAM,CAAC4B,UAAU,EAAEL,SAAS;EAAE,GACtDG,WAAW,iBACV7B,KAAA,CAAA8B,aAAA;IACEJ,SAAS,EAAEvB,MAAM,CAAC6B,mBAAoB;IACtC,kBAAe;EAAM,gBAErBhC,KAAA,CAAA8B,aAAA,CAAChC,MAAM;IACL4B,SAAS,EAAEvB,MAAM,CAAC8B,YAAa;IAC/BC,OAAO,EAAEN,YAAa;IACtB,cAAW;EAAgB,gBAE3B5B,KAAA,CAAA8B,aAAA,CAAC5B,UAAU,MAAE,CACP,CAAC,eACTF,KAAA,CAAA8B,aAAA;IAAMJ,SAAS,EAAEvB,MAAM,CAACgC;EAAe,GAAE3B,KAAK,IAAI,SAAgB,CAC/D,CACN,eACDR,KAAA,CAAA8B,aAAA;IACEJ,SAAS,EAAE3B,UAAU,CACnBI,MAAM,CAACiC,eAAe,EACtBP,WAAW,IAAI1B,MAAM,CAACkC,aACxB,CAAE;IACF,qBAAmBnB;EAAkB,GAEpC,CAnCYV,KAAK,IAAIC,SAAS,IAAIa,eAAe,IACnDC,qBAAqB,IAAIZ,iBAAiB,kBAmCvCX,KAAA,CAAA8B,aAAA,CAACzB,gBAAgB;IACfG,KAAK,EAAEA,KAAM;IACbC,SAAS,EAAEA,SAAU;IACrBC,SAAS,EAAEA,SAAU;IACrBC,iBAAiB,EAAEA,iBAAkB;IACrCW,eAAe,EAAEA,eAAgB;IACjCH,OAAO,EAAEA,OAAQ;IACjBI,qBAAqB,EAAEA,qBAAsB;IAC7CL,iBAAiB,EAAEA,iBAAkB;IACrCM,oBAAoB,EAAEA;EAAqB,CAC5C,CACF,eAEDxB,KAAA,CAAA8B,aAAA,CAAC1B,iBAAiB;IAChBQ,iBAAiB,EAAEA,iBAAkB;IACrCC,YAAY,EAAEA,YAAa;IAC3BC,oBAAoB,EAAEA,oBAAqB;IAC3CO,eAAe,EAAEA,eAAgB;IACjCN,WAAW,EAAEA,WAAY;IACzBC,YAAY,EAAEA,YAAa;IAC3BC,cAAc,EAAEA,cAAe;IAC/BQ,aAAa,EAAEA;EAAc,CAC9B,CAAC,EAED,CAzDeE,qBAAqB,IAAI,IAAI,IAAIP,aAAa,IAAI,IAAI,kBA0DpEpB,KAAA,CAAA8B,aAAA;IAAKJ,SAAS,EAAEvB,MAAM,CAACmC;EAAmB,GACvCX,qBAAqB,GAClBA,qBAAqB,CAAC,CAAC,gBAEvB3B,KAAA,CAAA8B,aAAA,CAAChC,MAAM;IACLyC,IAAI,EAAC,QAAQ;IACbb,SAAS,EAAEvB,MAAM,CAACqC,SAAU;IAC5BN,OAAO,EAAEd;EAAc,GACxB,cAEO,CAET,CAEJ,CACF,CAAC;AAEV","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseFilterListApi.js","names":[],"sources":["BaseFilterListApi.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 React from \"react\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\n\nexport type RenderFilterInput<D> = (props: {\n definition: D;\n filterKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}) => React.ReactNode;\n\nexport interface BaseFilterListProps<D> {\n filterDefinitions?: Array<D>;\n filterStates: Map<string, FilterState>;\n onFilterStateChanged: (filterKey: string, state: FilterState) => void;\n renderInput: RenderFilterInput<D>;\n getFilterKey: (definition: D) => string;\n getFilterLabel: (definition: D) => string;\n activeFilterCount: number;\n onReset?: () => void;\n onFilterAdded?: () => void;\n onFilterRemoved?: (filterKey: string) => void;\n\n collapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n title?:
|
|
1
|
+
{"version":3,"file":"BaseFilterListApi.js","names":[],"sources":["BaseFilterListApi.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 React from \"react\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\n\nexport type RenderFilterInput<D> = (props: {\n definition: D;\n filterKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n searchQuery?: string;\n excludeRowOpen?: boolean;\n}) => React.ReactNode;\n\nexport interface BaseFilterListProps<D> {\n filterDefinitions?: Array<D>;\n filterStates: Map<string, FilterState>;\n onFilterStateChanged: (filterKey: string, state: FilterState) => void;\n renderInput: RenderFilterInput<D>;\n getFilterKey: (definition: D) => string;\n getFilterLabel: (definition: D) => string;\n activeFilterCount: number;\n onReset?: () => void;\n onFilterAdded?: () => void;\n onFilterRemoved?: (filterKey: string) => void;\n\n collapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n title?: React.ReactNode;\n titleIcon?: React.ReactNode;\n showResetButton?: boolean;\n showActiveFilterCount?: boolean;\n hasVisibilityChanges?: boolean;\n enableSorting?: boolean;\n className?: string;\n renderAddFilterButton?: () => React.ReactNode;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
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 { Menu } from "@base-ui/react/menu";
|
|
18
|
+
import React, { memo, useCallback } from "react";
|
|
19
|
+
import styles from "./ExcludeDropdown.module.css";
|
|
20
|
+
import { CheckIcon, ChevronDownIcon } from "./FilterIcons.js";
|
|
21
|
+
function ExcludeDropdownInner({
|
|
22
|
+
isExcluding,
|
|
23
|
+
onToggleExclude
|
|
24
|
+
}) {
|
|
25
|
+
const label = isExcluding ? "Excluding" : "Keeping";
|
|
26
|
+
const handleSelectKeeping = useCallback(() => {
|
|
27
|
+
if (isExcluding) {
|
|
28
|
+
onToggleExclude();
|
|
29
|
+
}
|
|
30
|
+
}, [isExcluding, onToggleExclude]);
|
|
31
|
+
const handleSelectExcluding = useCallback(() => {
|
|
32
|
+
if (!isExcluding) {
|
|
33
|
+
onToggleExclude();
|
|
34
|
+
}
|
|
35
|
+
}, [isExcluding, onToggleExclude]);
|
|
36
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
37
|
+
className: styles.excludeDropdownContainer
|
|
38
|
+
}, /*#__PURE__*/React.createElement(Menu.Root, null, /*#__PURE__*/React.createElement(Menu.Trigger, {
|
|
39
|
+
className: styles.trigger,
|
|
40
|
+
"aria-label": label
|
|
41
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
42
|
+
className: styles.triggerLabel
|
|
43
|
+
}, label), /*#__PURE__*/React.createElement(ChevronDownIcon, null)), /*#__PURE__*/React.createElement(Menu.Portal, null, /*#__PURE__*/React.createElement(Menu.Positioner, {
|
|
44
|
+
className: styles.positioner,
|
|
45
|
+
sideOffset: 4
|
|
46
|
+
}, /*#__PURE__*/React.createElement(Menu.Popup, {
|
|
47
|
+
className: styles.popup
|
|
48
|
+
}, /*#__PURE__*/React.createElement(Menu.Item, {
|
|
49
|
+
className: styles.menuItem,
|
|
50
|
+
onClick: handleSelectKeeping
|
|
51
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
52
|
+
className: styles.menuItemCheck
|
|
53
|
+
}, !isExcluding && /*#__PURE__*/React.createElement(CheckIcon, null)), "Keeping"), /*#__PURE__*/React.createElement(Menu.Item, {
|
|
54
|
+
className: styles.menuItem,
|
|
55
|
+
onClick: handleSelectExcluding
|
|
56
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
57
|
+
className: styles.menuItemCheck
|
|
58
|
+
}, isExcluding && /*#__PURE__*/React.createElement(CheckIcon, null)), "Excluding"))))));
|
|
59
|
+
}
|
|
60
|
+
export const ExcludeDropdown = /*#__PURE__*/memo(ExcludeDropdownInner);
|
|
61
|
+
//# sourceMappingURL=ExcludeDropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExcludeDropdown.js","names":["Menu","React","memo","useCallback","styles","CheckIcon","ChevronDownIcon","ExcludeDropdownInner","isExcluding","onToggleExclude","label","handleSelectKeeping","handleSelectExcluding","createElement","className","excludeDropdownContainer","Root","Trigger","trigger","triggerLabel","Portal","Positioner","positioner","sideOffset","Popup","popup","Item","menuItem","onClick","menuItemCheck","ExcludeDropdown"],"sources":["ExcludeDropdown.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 { Menu } from \"@base-ui/react/menu\";\nimport React, { memo, useCallback } from \"react\";\nimport styles from \"./ExcludeDropdown.module.css\";\nimport { CheckIcon, ChevronDownIcon } from \"./FilterIcons.js\";\n\ninterface ExcludeDropdownProps {\n isExcluding: boolean;\n onToggleExclude: () => void;\n}\n\nfunction ExcludeDropdownInner({\n isExcluding,\n onToggleExclude,\n}: ExcludeDropdownProps): React.ReactElement {\n const label = isExcluding ? \"Excluding\" : \"Keeping\";\n\n const handleSelectKeeping = useCallback(() => {\n if (isExcluding) {\n onToggleExclude();\n }\n }, [isExcluding, onToggleExclude]);\n\n const handleSelectExcluding = useCallback(() => {\n if (!isExcluding) {\n onToggleExclude();\n }\n }, [isExcluding, onToggleExclude]);\n\n return (\n <div className={styles.excludeDropdownContainer}>\n <Menu.Root>\n <Menu.Trigger\n className={styles.trigger}\n aria-label={label}\n >\n <span className={styles.triggerLabel}>\n {label}\n </span>\n <ChevronDownIcon />\n </Menu.Trigger>\n <Menu.Portal>\n <Menu.Positioner className={styles.positioner} sideOffset={4}>\n <Menu.Popup className={styles.popup}>\n <Menu.Item\n className={styles.menuItem}\n onClick={handleSelectKeeping}\n >\n <span className={styles.menuItemCheck}>\n {!isExcluding && <CheckIcon />}\n </span>\n Keeping\n </Menu.Item>\n <Menu.Item\n className={styles.menuItem}\n onClick={handleSelectExcluding}\n >\n <span className={styles.menuItemCheck}>\n {isExcluding && <CheckIcon />}\n </span>\n Excluding\n </Menu.Item>\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </Menu.Root>\n </div>\n );\n}\n\nexport const ExcludeDropdown: React.MemoExoticComponent<\n typeof ExcludeDropdownInner\n> = memo(ExcludeDropdownInner);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,QAAQ,qBAAqB;AAC1C,OAAOC,KAAK,IAAIC,IAAI,EAAEC,WAAW,QAAQ,OAAO;AAChD,OAAOC,MAAM,MAAM,8BAA8B;AACjD,SAASC,SAAS,EAAEC,eAAe,QAAQ,kBAAkB;AAO7D,SAASC,oBAAoBA,CAAC;EAC5BC,WAAW;EACXC;AACoB,CAAC,EAAsB;EAC3C,MAAMC,KAAK,GAAGF,WAAW,GAAG,WAAW,GAAG,SAAS;EAEnD,MAAMG,mBAAmB,GAAGR,WAAW,CAAC,MAAM;IAC5C,IAAIK,WAAW,EAAE;MACfC,eAAe,CAAC,CAAC;IACnB;EACF,CAAC,EAAE,CAACD,WAAW,EAAEC,eAAe,CAAC,CAAC;EAElC,MAAMG,qBAAqB,GAAGT,WAAW,CAAC,MAAM;IAC9C,IAAI,CAACK,WAAW,EAAE;MAChBC,eAAe,CAAC,CAAC;IACnB;EACF,CAAC,EAAE,CAACD,WAAW,EAAEC,eAAe,CAAC,CAAC;EAElC,oBACER,KAAA,CAAAY,aAAA;IAAKC,SAAS,EAAEV,MAAM,CAACW;EAAyB,gBAC9Cd,KAAA,CAAAY,aAAA,CAACb,IAAI,CAACgB,IAAI,qBACRf,KAAA,CAAAY,aAAA,CAACb,IAAI,CAACiB,OAAO;IACXH,SAAS,EAAEV,MAAM,CAACc,OAAQ;IAC1B,cAAYR;EAAM,gBAElBT,KAAA,CAAAY,aAAA;IAAMC,SAAS,EAAEV,MAAM,CAACe;EAAa,GAClCT,KACG,CAAC,eACPT,KAAA,CAAAY,aAAA,CAACP,eAAe,MAAE,CACN,CAAC,eACfL,KAAA,CAAAY,aAAA,CAACb,IAAI,CAACoB,MAAM,qBACVnB,KAAA,CAAAY,aAAA,CAACb,IAAI,CAACqB,UAAU;IAACP,SAAS,EAAEV,MAAM,CAACkB,UAAW;IAACC,UAAU,EAAE;EAAE,gBAC3DtB,KAAA,CAAAY,aAAA,CAACb,IAAI,CAACwB,KAAK;IAACV,SAAS,EAAEV,MAAM,CAACqB;EAAM,gBAClCxB,KAAA,CAAAY,aAAA,CAACb,IAAI,CAAC0B,IAAI;IACRZ,SAAS,EAAEV,MAAM,CAACuB,QAAS;IAC3BC,OAAO,EAAEjB;EAAoB,gBAE7BV,KAAA,CAAAY,aAAA;IAAMC,SAAS,EAAEV,MAAM,CAACyB;EAAc,GACnC,CAACrB,WAAW,iBAAIP,KAAA,CAAAY,aAAA,CAACR,SAAS,MAAE,CACzB,CAAC,WAEE,CAAC,eACZJ,KAAA,CAAAY,aAAA,CAACb,IAAI,CAAC0B,IAAI;IACRZ,SAAS,EAAEV,MAAM,CAACuB,QAAS;IAC3BC,OAAO,EAAEhB;EAAsB,gBAE/BX,KAAA,CAAAY,aAAA;IAAMC,SAAS,EAAEV,MAAM,CAACyB;EAAc,GACnCrB,WAAW,iBAAIP,KAAA,CAAAY,aAAA,CAACR,SAAS,MAAE,CACxB,CAAC,aAEE,CACD,CACG,CACN,CACJ,CACR,CAAC;AAEV;AAEA,OAAO,MAAMyB,eAEZ,gBAAG5B,IAAI,CAACK,oBAAoB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,94 @@
|
|
|
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
|
+
.excludeDropdownContainer {
|
|
18
|
+
display: flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.trigger {
|
|
23
|
+
display: inline-flex;
|
|
24
|
+
align-items: center;
|
|
25
|
+
gap: calc(var(--osdk-surface-spacing) * 0.5);
|
|
26
|
+
border: none;
|
|
27
|
+
background: transparent;
|
|
28
|
+
cursor: pointer;
|
|
29
|
+
font-family: var(--osdk-filter-item-exclude-dropdown-font-family);
|
|
30
|
+
font-size: var(--osdk-filter-item-exclude-dropdown-font-size);
|
|
31
|
+
color: var(--osdk-filter-item-exclude-dropdown-color);
|
|
32
|
+
padding: calc(var(--osdk-surface-spacing) * 0.5)
|
|
33
|
+
calc(var(--osdk-surface-spacing) * 1);
|
|
34
|
+
border-radius: var(--osdk-filter-item-header-action-border-radius);
|
|
35
|
+
|
|
36
|
+
&:hover {
|
|
37
|
+
background: var(--osdk-filter-item-header-action-bg-hover);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&:focus-visible {
|
|
41
|
+
outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);
|
|
42
|
+
outline-offset: var(--osdk-filter-input-focus-outline-offset);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.triggerLabel {
|
|
47
|
+
white-space: nowrap;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.positioner {
|
|
51
|
+
z-index: var(--osdk-surface-z-index-3);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.popup {
|
|
55
|
+
background: var(--osdk-filter-item-menu-bg);
|
|
56
|
+
border: var(--osdk-filter-item-menu-border);
|
|
57
|
+
border-radius: var(--osdk-filter-item-menu-border-radius);
|
|
58
|
+
box-shadow: var(--osdk-filter-item-menu-shadow);
|
|
59
|
+
padding: var(--osdk-filter-item-menu-padding);
|
|
60
|
+
min-width: var(--osdk-filter-item-exclude-dropdown-min-width);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.menuItem {
|
|
64
|
+
display: flex;
|
|
65
|
+
align-items: center;
|
|
66
|
+
gap: var(--osdk-surface-spacing);
|
|
67
|
+
padding: var(--osdk-filter-item-menu-item-padding);
|
|
68
|
+
font-family: var(--osdk-filter-item-menu-item-font-family);
|
|
69
|
+
font-size: var(--osdk-filter-item-menu-item-font-size);
|
|
70
|
+
color: var(--osdk-filter-item-menu-item-color);
|
|
71
|
+
border-radius: var(--osdk-filter-item-menu-item-border-radius);
|
|
72
|
+
cursor: pointer;
|
|
73
|
+
border: none;
|
|
74
|
+
background: transparent;
|
|
75
|
+
width: 100%;
|
|
76
|
+
text-align: left;
|
|
77
|
+
|
|
78
|
+
&:hover,
|
|
79
|
+
&[data-highlighted] {
|
|
80
|
+
background: var(--osdk-filter-item-menu-item-bg-hover);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
&:focus-visible {
|
|
84
|
+
outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);
|
|
85
|
+
outline-offset: var(--osdk-filter-input-focus-outline-offset);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.menuItemCheck {
|
|
90
|
+
display: flex;
|
|
91
|
+
align-items: center;
|
|
92
|
+
width: var(--osdk-filter-item-menu-check-size);
|
|
93
|
+
flex-shrink: 0;
|
|
94
|
+
}
|
|
@@ -16,82 +16,43 @@
|
|
|
16
16
|
|
|
17
17
|
import { ChevronDown, Cross, DoubleChevronLeft, DoubleChevronRight, More, Search, Tick, Undo } from "@blueprintjs/icons";
|
|
18
18
|
import React from "react";
|
|
19
|
-
export function IncludeIcon() {
|
|
20
|
-
return /*#__PURE__*/React.createElement("svg", {
|
|
21
|
-
width: "14",
|
|
22
|
-
height: "14",
|
|
23
|
-
viewBox: "0 0 16 16",
|
|
24
|
-
fill: "none",
|
|
25
|
-
stroke: "currentColor",
|
|
26
|
-
strokeWidth: "1.5",
|
|
27
|
-
"aria-hidden": "true"
|
|
28
|
-
}, /*#__PURE__*/React.createElement("path", {
|
|
29
|
-
d: "M2 3h12M5 8h6M7 13h2",
|
|
30
|
-
strokeLinecap: "round"
|
|
31
|
-
}));
|
|
32
|
-
}
|
|
33
|
-
export function ExcludeIcon() {
|
|
34
|
-
return /*#__PURE__*/React.createElement("svg", {
|
|
35
|
-
width: "14",
|
|
36
|
-
height: "14",
|
|
37
|
-
viewBox: "0 0 16 16",
|
|
38
|
-
fill: "none",
|
|
39
|
-
stroke: "currentColor",
|
|
40
|
-
strokeWidth: "1.5",
|
|
41
|
-
"aria-hidden": "true"
|
|
42
|
-
}, /*#__PURE__*/React.createElement("path", {
|
|
43
|
-
d: "M2 3h12M5 8h6M7 13h2",
|
|
44
|
-
strokeLinecap: "round"
|
|
45
|
-
}), /*#__PURE__*/React.createElement("path", {
|
|
46
|
-
d: "M3 14L13 2",
|
|
47
|
-
strokeLinecap: "round"
|
|
48
|
-
}));
|
|
49
|
-
}
|
|
50
19
|
export function RemoveIcon() {
|
|
51
20
|
return /*#__PURE__*/React.createElement(Cross, {
|
|
52
|
-
color: "currentColor",
|
|
53
21
|
size: 14
|
|
54
22
|
});
|
|
55
23
|
}
|
|
56
24
|
export function SearchIcon() {
|
|
57
25
|
return /*#__PURE__*/React.createElement(Search, {
|
|
58
|
-
color: "currentColor",
|
|
59
26
|
size: 14
|
|
60
27
|
});
|
|
61
28
|
}
|
|
62
29
|
export function OverflowMenuIcon() {
|
|
63
30
|
return /*#__PURE__*/React.createElement(More, {
|
|
64
|
-
color: "currentColor",
|
|
65
31
|
size: 14
|
|
66
32
|
});
|
|
67
33
|
}
|
|
68
34
|
export function ChevronDownIcon() {
|
|
69
35
|
return /*#__PURE__*/React.createElement(ChevronDown, {
|
|
70
|
-
color: "currentColor",
|
|
71
36
|
size: 10
|
|
72
37
|
});
|
|
73
38
|
}
|
|
74
39
|
export function CollapseIcon() {
|
|
75
40
|
return /*#__PURE__*/React.createElement(DoubleChevronLeft, {
|
|
76
|
-
color: "currentColor",
|
|
77
41
|
size: 14
|
|
78
42
|
});
|
|
79
43
|
}
|
|
80
44
|
export function ExpandIcon() {
|
|
81
45
|
return /*#__PURE__*/React.createElement(DoubleChevronRight, {
|
|
82
|
-
color: "currentColor",
|
|
83
46
|
size: 14
|
|
84
47
|
});
|
|
85
48
|
}
|
|
86
49
|
export function ResetIcon() {
|
|
87
50
|
return /*#__PURE__*/React.createElement(Undo, {
|
|
88
|
-
color: "currentColor",
|
|
89
51
|
size: 14
|
|
90
52
|
});
|
|
91
53
|
}
|
|
92
54
|
export function CheckIcon() {
|
|
93
55
|
return /*#__PURE__*/React.createElement(Tick, {
|
|
94
|
-
color: "currentColor",
|
|
95
56
|
size: 12
|
|
96
57
|
});
|
|
97
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterIcons.js","names":["ChevronDown","Cross","DoubleChevronLeft","DoubleChevronRight","More","Search","Tick","Undo","React","
|
|
1
|
+
{"version":3,"file":"FilterIcons.js","names":["ChevronDown","Cross","DoubleChevronLeft","DoubleChevronRight","More","Search","Tick","Undo","React","RemoveIcon","createElement","size","SearchIcon","OverflowMenuIcon","ChevronDownIcon","CollapseIcon","ExpandIcon","ResetIcon","CheckIcon"],"sources":["FilterIcons.tsx"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChevronDown,\n Cross,\n DoubleChevronLeft,\n DoubleChevronRight,\n More,\n Search,\n Tick,\n Undo,\n} from \"@blueprintjs/icons\";\nimport React from \"react\";\n\nexport function RemoveIcon(): React.ReactElement {\n return <Cross size={14} />;\n}\n\nexport function SearchIcon(): React.ReactElement {\n return <Search size={14} />;\n}\n\nexport function OverflowMenuIcon(): React.ReactElement {\n return <More size={14} />;\n}\n\nexport function ChevronDownIcon(): React.ReactElement {\n return <ChevronDown size={10} />;\n}\n\nexport function CollapseIcon(): React.ReactElement {\n return <DoubleChevronLeft size={14} />;\n}\n\nexport function ExpandIcon(): React.ReactElement {\n return <DoubleChevronRight size={14} />;\n}\n\nexport function ResetIcon(): React.ReactElement {\n return <Undo size={14} />;\n}\n\nexport function CheckIcon(): React.ReactElement {\n return <Tick size={12} />;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SACEA,WAAW,EACXC,KAAK,EACLC,iBAAiB,EACjBC,kBAAkB,EAClBC,IAAI,EACJC,MAAM,EACNC,IAAI,EACJC,IAAI,QACC,oBAAoB;AAC3B,OAAOC,KAAK,MAAM,OAAO;AAEzB,OAAO,SAASC,UAAUA,CAAA,EAAuB;EAC/C,oBAAOD,KAAA,CAAAE,aAAA,CAACT,KAAK;IAACU,IAAI,EAAE;EAAG,CAAE,CAAC;AAC5B;AAEA,OAAO,SAASC,UAAUA,CAAA,EAAuB;EAC/C,oBAAOJ,KAAA,CAAAE,aAAA,CAACL,MAAM;IAACM,IAAI,EAAE;EAAG,CAAE,CAAC;AAC7B;AAEA,OAAO,SAASE,gBAAgBA,CAAA,EAAuB;EACrD,oBAAOL,KAAA,CAAAE,aAAA,CAACN,IAAI;IAACO,IAAI,EAAE;EAAG,CAAE,CAAC;AAC3B;AAEA,OAAO,SAASG,eAAeA,CAAA,EAAuB;EACpD,oBAAON,KAAA,CAAAE,aAAA,CAACV,WAAW;IAACW,IAAI,EAAE;EAAG,CAAE,CAAC;AAClC;AAEA,OAAO,SAASI,YAAYA,CAAA,EAAuB;EACjD,oBAAOP,KAAA,CAAAE,aAAA,CAACR,iBAAiB;IAACS,IAAI,EAAE;EAAG,CAAE,CAAC;AACxC;AAEA,OAAO,SAASK,UAAUA,CAAA,EAAuB;EAC/C,oBAAOR,KAAA,CAAAE,aAAA,CAACP,kBAAkB;IAACQ,IAAI,EAAE;EAAG,CAAE,CAAC;AACzC;AAEA,OAAO,SAASM,SAASA,CAAA,EAAuB;EAC9C,oBAAOT,KAAA,CAAAE,aAAA,CAACH,IAAI;IAACI,IAAI,EAAE;EAAG,CAAE,CAAC;AAC3B;AAEA,OAAO,SAASO,SAASA,CAAA,EAAuB;EAC9C,oBAAOV,KAAA,CAAAE,aAAA,CAACJ,IAAI;IAACK,IAAI,EAAE;EAAG,CAAE,CAAC;AAC3B","ignoreList":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
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 classnames from "classnames";
|
|
18
|
+
import React, { memo, useCallback } from "react";
|
|
19
|
+
import { supportsExcluding } from "../utils/filterValues.js";
|
|
20
|
+
import { ExcludeDropdown } from "./ExcludeDropdown.js";
|
|
21
|
+
import styles from "./FilterListItem.module.css";
|
|
22
|
+
function FilterInputExcludeRowInner({
|
|
23
|
+
excludeRowOpen,
|
|
24
|
+
filterState,
|
|
25
|
+
onFilterStateChanged,
|
|
26
|
+
totalValueCount,
|
|
27
|
+
children
|
|
28
|
+
}) {
|
|
29
|
+
const handleToggleExclude = useCallback(() => {
|
|
30
|
+
if (filterState) {
|
|
31
|
+
onFilterStateChanged({
|
|
32
|
+
...filterState,
|
|
33
|
+
isExcluding: !filterState.isExcluding
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}, [filterState, onFilterStateChanged]);
|
|
37
|
+
const isExcluding = filterState?.isExcluding ?? false;
|
|
38
|
+
if (!supportsExcluding(filterState)) {
|
|
39
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
40
|
+
}
|
|
41
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
42
|
+
"data-exclude-row": true,
|
|
43
|
+
className: classnames(styles.excludeRow, {
|
|
44
|
+
[styles.excludeRowVisible]: excludeRowOpen ?? false
|
|
45
|
+
})
|
|
46
|
+
}, /*#__PURE__*/React.createElement(ExcludeDropdown, {
|
|
47
|
+
isExcluding: isExcluding,
|
|
48
|
+
onToggleExclude: handleToggleExclude
|
|
49
|
+
}), totalValueCount != null && totalValueCount > 0 && /*#__PURE__*/React.createElement("span", {
|
|
50
|
+
className: styles.excludeCountLabel,
|
|
51
|
+
title: "Approximate count of unique values"
|
|
52
|
+
}, totalValueCount.toLocaleString(), " values")), children);
|
|
53
|
+
}
|
|
54
|
+
export const FilterInputExcludeRow = /*#__PURE__*/memo(FilterInputExcludeRowInner);
|
|
55
|
+
//# sourceMappingURL=FilterInputExcludeRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterInputExcludeRow.js","names":["classnames","React","memo","useCallback","supportsExcluding","ExcludeDropdown","styles","FilterInputExcludeRowInner","excludeRowOpen","filterState","onFilterStateChanged","totalValueCount","children","handleToggleExclude","isExcluding","createElement","Fragment","className","excludeRow","excludeRowVisible","onToggleExclude","excludeCountLabel","title","toLocaleString","FilterInputExcludeRow"],"sources":["FilterInputExcludeRow.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classnames from \"classnames\";\nimport React, { memo, useCallback } from \"react\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { supportsExcluding } from \"../utils/filterValues.js\";\nimport { ExcludeDropdown } from \"./ExcludeDropdown.js\";\nimport styles from \"./FilterListItem.module.css\";\n\ninterface FilterInputExcludeRowProps {\n excludeRowOpen?: boolean;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n totalValueCount?: number;\n children: React.ReactNode;\n}\n\nfunction FilterInputExcludeRowInner({\n excludeRowOpen,\n filterState,\n onFilterStateChanged,\n totalValueCount,\n children,\n}: FilterInputExcludeRowProps): React.ReactElement {\n const handleToggleExclude = useCallback(() => {\n if (filterState) {\n onFilterStateChanged({\n ...filterState,\n isExcluding: !filterState.isExcluding,\n });\n }\n }, [filterState, onFilterStateChanged]);\n\n const isExcluding = filterState?.isExcluding ?? false;\n const isOpen = excludeRowOpen ?? false;\n\n if (!supportsExcluding(filterState)) {\n return <>{children}</>;\n }\n\n return (\n <>\n <div\n data-exclude-row\n className={classnames(styles.excludeRow, {\n [styles.excludeRowVisible]: isOpen,\n })}\n >\n <ExcludeDropdown\n isExcluding={isExcluding}\n onToggleExclude={handleToggleExclude}\n />\n {totalValueCount != null && totalValueCount > 0 && (\n <span\n className={styles.excludeCountLabel}\n title=\"Approximate count of unique values\"\n >\n {totalValueCount.toLocaleString()} values\n </span>\n )}\n </div>\n {children}\n </>\n );\n}\n\nexport const FilterInputExcludeRow: React.MemoExoticComponent<\n typeof FilterInputExcludeRowInner\n> = memo(FilterInputExcludeRowInner);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,IAAI,EAAEC,WAAW,QAAQ,OAAO;AAEhD,SAASC,iBAAiB,QAAQ,0BAA0B;AAC5D,SAASC,eAAe,QAAQ,sBAAsB;AACtD,OAAOC,MAAM,MAAM,6BAA6B;AAUhD,SAASC,0BAA0BA,CAAC;EAClCC,cAAc;EACdC,WAAW;EACXC,oBAAoB;EACpBC,eAAe;EACfC;AAC0B,CAAC,EAAsB;EACjD,MAAMC,mBAAmB,GAAGV,WAAW,CAAC,MAAM;IAC5C,IAAIM,WAAW,EAAE;MACfC,oBAAoB,CAAC;QACnB,GAAGD,WAAW;QACdK,WAAW,EAAE,CAACL,WAAW,CAACK;MAC5B,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACL,WAAW,EAAEC,oBAAoB,CAAC,CAAC;EAEvC,MAAMI,WAAW,GAAGL,WAAW,EAAEK,WAAW,IAAI,KAAK;EAGrD,IAAI,CAACV,iBAAiB,CAACK,WAAW,CAAC,EAAE;IACnC,oBAAOR,KAAA,CAAAc,aAAA,CAAAd,KAAA,CAAAe,QAAA,QAAGJ,QAAW,CAAC;EACxB;EAEA,oBACEX,KAAA,CAAAc,aAAA,CAAAd,KAAA,CAAAe,QAAA,qBACEf,KAAA,CAAAc,aAAA;IACE,wBAAgB;IAChBE,SAAS,EAAEjB,UAAU,CAACM,MAAM,CAACY,UAAU,EAAE;MACvC,CAACZ,MAAM,CAACa,iBAAiB,GAXlBX,cAAc,IAAI;IAY3B,CAAC;EAAE,gBAEHP,KAAA,CAAAc,aAAA,CAACV,eAAe;IACdS,WAAW,EAAEA,WAAY;IACzBM,eAAe,EAAEP;EAAoB,CACtC,CAAC,EACDF,eAAe,IAAI,IAAI,IAAIA,eAAe,GAAG,CAAC,iBAC7CV,KAAA,CAAAc,aAAA;IACEE,SAAS,EAAEX,MAAM,CAACe,iBAAkB;IACpCC,KAAK,EAAC;EAAoC,GAEzCX,eAAe,CAACY,cAAc,CAAC,CAAC,EAAC,SAC9B,CAEL,CAAC,EACLX,QACD,CAAC;AAEP;AAEA,OAAO,MAAMY,qBAEZ,gBAAGtB,IAAI,CAACK,0BAA0B,CAAC","ignoreList":[]}
|
|
@@ -26,7 +26,8 @@ function FilterListHeaderInner({
|
|
|
26
26
|
showResetButton,
|
|
27
27
|
onReset,
|
|
28
28
|
showActiveFilterCount,
|
|
29
|
-
activeFilterCount = 0
|
|
29
|
+
activeFilterCount = 0,
|
|
30
|
+
hasVisibilityChanges = false
|
|
30
31
|
}) {
|
|
31
32
|
const handleCollapseClick = useCallback(() => {
|
|
32
33
|
onCollapsedChange?.(!collapsed);
|
|
@@ -46,7 +47,7 @@ function FilterListHeaderInner({
|
|
|
46
47
|
}, showResetButton && /*#__PURE__*/React.createElement(Button, {
|
|
47
48
|
className: styles.resetButton,
|
|
48
49
|
onClick: onReset,
|
|
49
|
-
disabled: activeFilterCount === 0
|
|
50
|
+
disabled: activeFilterCount === 0 && !hasVisibilityChanges
|
|
50
51
|
}, /*#__PURE__*/React.createElement(ResetIcon, null), " Reset"), onCollapsedChange != null && /*#__PURE__*/React.createElement(Button, {
|
|
51
52
|
className: styles.collapseButton,
|
|
52
53
|
onClick: handleCollapseClick,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterListHeader.js","names":["Button","React","memo","useCallback","CollapseIcon","ResetIcon","styles","FilterListHeaderInner","title","titleIcon","collapsed","onCollapsedChange","showResetButton","onReset","showActiveFilterCount","activeFilterCount","handleCollapseClick","createElement","className","header","titleContainer","activeCount","actions","resetButton","onClick","disabled","collapseButton","FilterListHeader"],"sources":["FilterListHeader.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 React, { memo, type ReactNode, useCallback } from \"react\";\nimport { CollapseIcon, ResetIcon } from \"./FilterIcons.js\";\nimport styles from \"./FilterListHeader.module.css\";\n\ninterface FilterListHeaderProps {\n title?:
|
|
1
|
+
{"version":3,"file":"FilterListHeader.js","names":["Button","React","memo","useCallback","CollapseIcon","ResetIcon","styles","FilterListHeaderInner","title","titleIcon","collapsed","onCollapsedChange","showResetButton","onReset","showActiveFilterCount","activeFilterCount","hasVisibilityChanges","handleCollapseClick","createElement","className","header","titleContainer","activeCount","actions","resetButton","onClick","disabled","collapseButton","FilterListHeader"],"sources":["FilterListHeader.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 React, { memo, type ReactNode, useCallback } from \"react\";\nimport { CollapseIcon, ResetIcon } from \"./FilterIcons.js\";\nimport styles from \"./FilterListHeader.module.css\";\n\ninterface FilterListHeaderProps {\n title?: ReactNode;\n titleIcon?: ReactNode;\n collapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n showResetButton?: boolean;\n onReset?: () => void;\n showActiveFilterCount?: boolean;\n activeFilterCount?: number;\n hasVisibilityChanges?: boolean;\n}\n\nfunction FilterListHeaderInner({\n title,\n titleIcon,\n collapsed = false,\n onCollapsedChange,\n showResetButton,\n onReset,\n showActiveFilterCount,\n activeFilterCount = 0,\n hasVisibilityChanges = false,\n}: FilterListHeaderProps): React.ReactElement {\n const showCollapseButton = onCollapsedChange != null;\n\n const handleCollapseClick = useCallback(() => {\n onCollapsedChange?.(!collapsed);\n }, [onCollapsedChange, collapsed]);\n\n return (\n <div className={styles.header}>\n <div className={styles.titleContainer}>\n {titleIcon && (\n <span className={styles.titleIcon}>\n {titleIcon}\n </span>\n )}\n {title && (\n <span className={styles.title}>\n {title}\n </span>\n )}\n {showActiveFilterCount && activeFilterCount > 0 && (\n <span className={styles.activeCount}>\n ({activeFilterCount})\n </span>\n )}\n </div>\n\n <div className={styles.actions}>\n {showResetButton && (\n <Button\n className={styles.resetButton}\n onClick={onReset}\n disabled={activeFilterCount === 0 && !hasVisibilityChanges}\n >\n <ResetIcon /> Reset\n </Button>\n )}\n\n {showCollapseButton && (\n <Button\n className={styles.collapseButton}\n onClick={handleCollapseClick}\n aria-expanded={!collapsed}\n aria-label={collapsed ? \"Expand filters\" : \"Collapse filters\"}\n >\n <CollapseIcon />\n </Button>\n )}\n </div>\n </div>\n );\n}\n\nexport const FilterListHeader: React.MemoExoticComponent<\n typeof FilterListHeaderInner\n> = memo(FilterListHeaderInner);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,QAAQ,uBAAuB;AAC9C,OAAOC,KAAK,IAAIC,IAAI,EAAkBC,WAAW,QAAQ,OAAO;AAChE,SAASC,YAAY,EAAEC,SAAS,QAAQ,kBAAkB;AAC1D,OAAOC,MAAM,MAAM,+BAA+B;AAclD,SAASC,qBAAqBA,CAAC;EAC7BC,KAAK;EACLC,SAAS;EACTC,SAAS,GAAG,KAAK;EACjBC,iBAAiB;EACjBC,eAAe;EACfC,OAAO;EACPC,qBAAqB;EACrBC,iBAAiB,GAAG,CAAC;EACrBC,oBAAoB,GAAG;AACF,CAAC,EAAsB;EAG5C,MAAMC,mBAAmB,GAAGd,WAAW,CAAC,MAAM;IAC5CQ,iBAAiB,GAAG,CAACD,SAAS,CAAC;EACjC,CAAC,EAAE,CAACC,iBAAiB,EAAED,SAAS,CAAC,CAAC;EAElC,oBACET,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAEb,MAAM,CAACc;EAAO,gBAC5BnB,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAEb,MAAM,CAACe;EAAe,GACnCZ,SAAS,iBACRR,KAAA,CAAAiB,aAAA;IAAMC,SAAS,EAAEb,MAAM,CAACG;EAAU,GAC/BA,SACG,CACP,EACAD,KAAK,iBACJP,KAAA,CAAAiB,aAAA;IAAMC,SAAS,EAAEb,MAAM,CAACE;EAAM,GAC3BA,KACG,CACP,EACAM,qBAAqB,IAAIC,iBAAiB,GAAG,CAAC,iBAC7Cd,KAAA,CAAAiB,aAAA;IAAMC,SAAS,EAAEb,MAAM,CAACgB;EAAY,GAAC,GAClC,EAACP,iBAAiB,EAAC,GAChB,CAEL,CAAC,eAENd,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAEb,MAAM,CAACiB;EAAQ,GAC5BX,eAAe,iBACdX,KAAA,CAAAiB,aAAA,CAAClB,MAAM;IACLmB,SAAS,EAAEb,MAAM,CAACkB,WAAY;IAC9BC,OAAO,EAAEZ,OAAQ;IACjBa,QAAQ,EAAEX,iBAAiB,KAAK,CAAC,IAAI,CAACC;EAAqB,gBAE3Df,KAAA,CAAAiB,aAAA,CAACb,SAAS,MAAE,CAAC,UACP,CACT,EAnCoBM,iBAAiB,IAAI,IAAI,iBAsC5CV,KAAA,CAAAiB,aAAA,CAAClB,MAAM;IACLmB,SAAS,EAAEb,MAAM,CAACqB,cAAe;IACjCF,OAAO,EAAER,mBAAoB;IAC7B,iBAAe,CAACP,SAAU;IAC1B,cAAYA,SAAS,GAAG,gBAAgB,GAAG;EAAmB,gBAE9DT,KAAA,CAAAiB,aAAA,CAACd,YAAY,MAAE,CACT,CAEP,CACF,CAAC;AAEV;AAEA,OAAO,MAAMwB,gBAEZ,gBAAG1B,IAAI,CAACK,qBAAqB,CAAC","ignoreList":[]}
|
|
@@ -16,12 +16,13 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { Button } from "@base-ui/react/button";
|
|
19
|
+
import { Input } from "@base-ui/react/input";
|
|
19
20
|
import classnames from "classnames";
|
|
20
|
-
import React, { memo, useCallback } from "react";
|
|
21
|
+
import React, { memo, useCallback, useState } from "react";
|
|
21
22
|
import { ErrorBoundary } from "../../shared/ErrorBoundary.js";
|
|
22
|
-
import { supportsExcluding } from "../utils/filterValues.js";
|
|
23
|
+
import { supportsExcluding, supportsSearch } from "../utils/filterValues.js";
|
|
23
24
|
import { DragHandleIcon } from "./DragHandleIcon.js";
|
|
24
|
-
import {
|
|
25
|
+
import { OverflowMenuIcon, RemoveIcon, SearchIcon } from "./FilterIcons.js";
|
|
25
26
|
import styles from "./FilterListItem.module.css";
|
|
26
27
|
function FilterListItemInner({
|
|
27
28
|
definition,
|
|
@@ -36,26 +37,52 @@ function FilterListItemInner({
|
|
|
36
37
|
className,
|
|
37
38
|
style
|
|
38
39
|
}) {
|
|
40
|
+
const [searchState, setSearchState] = useState({
|
|
41
|
+
type: "closed"
|
|
42
|
+
});
|
|
43
|
+
const [excludeRowOpen, setExcludeRowOpen] = useState(false);
|
|
39
44
|
const handleFilterStateChanged = useCallback(newState => {
|
|
40
45
|
onFilterStateChanged(filterKey, newState);
|
|
41
46
|
}, [filterKey, onFilterStateChanged]);
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
}, [
|
|
47
|
+
const handleToggleSearch = useCallback(() => {
|
|
48
|
+
setSearchState(prev => prev.type === "closed" ? {
|
|
49
|
+
type: "open",
|
|
50
|
+
query: ""
|
|
51
|
+
} : {
|
|
52
|
+
type: "closed"
|
|
53
|
+
});
|
|
54
|
+
}, []);
|
|
55
|
+
const handleSearchChange = useCallback(e => {
|
|
56
|
+
setSearchState({
|
|
57
|
+
type: "open",
|
|
58
|
+
query: e.target.value
|
|
59
|
+
});
|
|
60
|
+
}, []);
|
|
61
|
+
const handleSearchClear = useCallback(() => {
|
|
62
|
+
setSearchState({
|
|
63
|
+
type: "open",
|
|
64
|
+
query: ""
|
|
65
|
+
});
|
|
66
|
+
}, []);
|
|
50
67
|
const handleRemove = useCallback(() => {
|
|
51
68
|
onFilterRemoved?.(filterKey);
|
|
52
69
|
}, [filterKey, onFilterRemoved]);
|
|
53
|
-
const
|
|
54
|
-
|
|
70
|
+
const handleToggleExcludeRow = useCallback(() => {
|
|
71
|
+
setExcludeRowOpen(prev => !prev);
|
|
72
|
+
}, []);
|
|
73
|
+
const searchInputRef = useCallback(element => {
|
|
74
|
+
element?.focus({
|
|
75
|
+
preventScroll: true
|
|
76
|
+
});
|
|
77
|
+
}, []);
|
|
78
|
+
const showExcludeDropdown = supportsExcluding(filterState);
|
|
79
|
+
const showSearch = supportsSearch(filterState);
|
|
80
|
+
const searchOpen = searchState.type === "open";
|
|
81
|
+
const searchQuery = searchState.type === "open" ? searchState.query : "";
|
|
82
|
+
const searchQueryForInput = searchState.type === "open" ? searchState.query : undefined;
|
|
55
83
|
return /*#__PURE__*/React.createElement("div", {
|
|
56
84
|
className: classnames(styles.filterItem, className),
|
|
57
|
-
style: style
|
|
58
|
-
"data-excluding": isExcluding || undefined
|
|
85
|
+
style: style
|
|
59
86
|
}, /*#__PURE__*/React.createElement("div", {
|
|
60
87
|
className: styles.itemHeader
|
|
61
88
|
}, dragHandleAttributes && /*#__PURE__*/React.createElement(Button, _extends({
|
|
@@ -63,15 +90,35 @@ function FilterListItemInner({
|
|
|
63
90
|
"aria-label": `Reorder ${label}`
|
|
64
91
|
}, dragHandleAttributes, dragHandleListeners), /*#__PURE__*/React.createElement(DragHandleIcon, null)), /*#__PURE__*/React.createElement("span", {
|
|
65
92
|
className: styles.itemLabel
|
|
66
|
-
}, label),
|
|
67
|
-
className: styles.
|
|
68
|
-
onClick:
|
|
69
|
-
"aria-
|
|
70
|
-
"aria-
|
|
71
|
-
},
|
|
72
|
-
className: styles.
|
|
93
|
+
}, label), showSearch && /*#__PURE__*/React.createElement(Button, {
|
|
94
|
+
className: styles.headerActionButton,
|
|
95
|
+
onClick: handleToggleSearch,
|
|
96
|
+
"aria-label": "Search values",
|
|
97
|
+
"aria-pressed": searchOpen
|
|
98
|
+
}, /*#__PURE__*/React.createElement(SearchIcon, null)), onFilterRemoved && /*#__PURE__*/React.createElement(Button, {
|
|
99
|
+
className: styles.headerActionButton,
|
|
73
100
|
onClick: handleRemove,
|
|
74
101
|
"aria-label": `Remove ${label} filter`
|
|
102
|
+
}, /*#__PURE__*/React.createElement(RemoveIcon, null)), showExcludeDropdown && /*#__PURE__*/React.createElement(Button, {
|
|
103
|
+
className: styles.headerActionButton,
|
|
104
|
+
onClick: handleToggleExcludeRow,
|
|
105
|
+
"aria-label": "More actions",
|
|
106
|
+
"aria-pressed": excludeRowOpen
|
|
107
|
+
}, /*#__PURE__*/React.createElement(OverflowMenuIcon, null))), searchOpen && /*#__PURE__*/React.createElement("div", {
|
|
108
|
+
className: styles.searchRow
|
|
109
|
+
}, /*#__PURE__*/React.createElement(Input, {
|
|
110
|
+
type: "text",
|
|
111
|
+
className: styles.searchInput,
|
|
112
|
+
value: searchQuery,
|
|
113
|
+
onChange: handleSearchChange,
|
|
114
|
+
placeholder: "Search property values...",
|
|
115
|
+
"aria-label": "Search property values",
|
|
116
|
+
ref: searchInputRef
|
|
117
|
+
}), searchQuery && /*#__PURE__*/React.createElement(Button, {
|
|
118
|
+
type: "button",
|
|
119
|
+
className: styles.searchClearButton,
|
|
120
|
+
onClick: handleSearchClear,
|
|
121
|
+
"aria-label": "Clear search"
|
|
75
122
|
}, /*#__PURE__*/React.createElement(RemoveIcon, null))), /*#__PURE__*/React.createElement("div", {
|
|
76
123
|
className: styles.itemContent
|
|
77
124
|
}, /*#__PURE__*/React.createElement(ErrorBoundary, {
|
|
@@ -80,7 +127,9 @@ function FilterListItemInner({
|
|
|
80
127
|
definition,
|
|
81
128
|
filterKey,
|
|
82
129
|
filterState,
|
|
83
|
-
onFilterStateChanged: handleFilterStateChanged
|
|
130
|
+
onFilterStateChanged: handleFilterStateChanged,
|
|
131
|
+
searchQuery: searchQueryForInput,
|
|
132
|
+
excludeRowOpen
|
|
84
133
|
}))));
|
|
85
134
|
}
|
|
86
135
|
export const FilterListItem = /*#__PURE__*/memo(FilterListItemInner);
|