@umodeapporg/ui 0.0.0-canary.ca10e69
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/README.md +78 -0
- package/dist/assets/images/common-pngs/sparkles.png.js +5 -0
- package/dist/assets/images/common-pngs/sparkles.png.js.map +1 -0
- package/dist/assets/umode-ui.css +467 -0
- package/dist/components/DateTime/DatePicker.d.ts +21 -0
- package/dist/components/DateTime/DatePicker.js +124 -0
- package/dist/components/DateTime/DatePicker.js.map +1 -0
- package/dist/components/DateTime/DateRangePicker.d.ts +21 -0
- package/dist/components/DateTime/DateRangePicker.js +208 -0
- package/dist/components/DateTime/DateRangePicker.js.map +1 -0
- package/dist/components/Form/ControlledButton.d.ts +25 -0
- package/dist/components/Form/ControlledButton.js +73 -0
- package/dist/components/Form/ControlledButton.js.map +1 -0
- package/dist/components/Form/ControlledCheckbox.d.ts +16 -0
- package/dist/components/Form/ControlledCheckbox.js +115 -0
- package/dist/components/Form/ControlledCheckbox.js.map +1 -0
- package/dist/components/Form/ControlledDialog.d.ts +51 -0
- package/dist/components/Form/ControlledDialog.js +191 -0
- package/dist/components/Form/ControlledDialog.js.map +1 -0
- package/dist/components/Form/ControlledDialogPrimitives.d.ts +53 -0
- package/dist/components/Form/ControlledDialogPrimitives.js +245 -0
- package/dist/components/Form/ControlledDialogPrimitives.js.map +1 -0
- package/dist/components/Form/ControlledDrawer.d.ts +37 -0
- package/dist/components/Form/ControlledDrawer.js +241 -0
- package/dist/components/Form/ControlledDrawer.js.map +1 -0
- package/dist/components/Form/ControlledForm/InputField.d.ts +11 -0
- package/dist/components/Form/ControlledForm/InputField.js +75 -0
- package/dist/components/Form/ControlledForm/InputField.js.map +1 -0
- package/dist/components/Form/ControlledForm/index.d.ts +27 -0
- package/dist/components/Form/ControlledForm/index.js +113 -0
- package/dist/components/Form/ControlledForm/index.js.map +1 -0
- package/dist/components/Form/ControlledImage/Img.d.ts +11 -0
- package/dist/components/Form/ControlledImage/Img.js +29 -0
- package/dist/components/Form/ControlledImage/Img.js.map +1 -0
- package/dist/components/Form/ControlledImage/index.d.ts +33 -0
- package/dist/components/Form/ControlledImage/index.js +110 -0
- package/dist/components/Form/ControlledImage/index.js.map +1 -0
- package/dist/components/Form/ControlledImage/useImage.d.ts +9 -0
- package/dist/components/Form/ControlledImage/useImage.js +110 -0
- package/dist/components/Form/ControlledImage/useImage.js.map +1 -0
- package/dist/components/Form/ControlledInput.d.ts +23 -0
- package/dist/components/Form/ControlledInput.js +52 -0
- package/dist/components/Form/ControlledInput.js.map +1 -0
- package/dist/components/Form/ControlledRadio.d.ts +15 -0
- package/dist/components/Form/ControlledRadio.js +91 -0
- package/dist/components/Form/ControlledRadio.js.map +1 -0
- package/dist/components/Form/ControlledSelect.d.ts +53 -0
- package/dist/components/Form/ControlledSelect.js +797 -0
- package/dist/components/Form/ControlledSelect.js.map +1 -0
- package/dist/components/Form/ControlledSwitch.d.ts +21 -0
- package/dist/components/Form/ControlledSwitch.js +107 -0
- package/dist/components/Form/ControlledSwitch.js.map +1 -0
- package/dist/components/Form/ControlledTabs.d.ts +75 -0
- package/dist/components/Form/ControlledTabs.js +515 -0
- package/dist/components/Form/ControlledTabs.js.map +1 -0
- package/dist/components/Form/ControlledTabsPrimitives.d.ts +43 -0
- package/dist/components/Form/ControlledTabsPrimitives.js +48 -0
- package/dist/components/Form/ControlledTabsPrimitives.js.map +1 -0
- package/dist/components/Form/ControlledTextarea.d.ts +22 -0
- package/dist/components/Form/ControlledTextarea.js +46 -0
- package/dist/components/Form/ControlledTextarea.js.map +1 -0
- package/dist/components/Form/ControlledTimeline.d.ts +26 -0
- package/dist/components/Form/ControlledTimeline.js +60 -0
- package/dist/components/Form/ControlledTimeline.js.map +1 -0
- package/dist/components/Form/ControlledViewToggle.d.ts +74 -0
- package/dist/components/Form/ControlledViewToggle.js +157 -0
- package/dist/components/Form/ControlledViewToggle.js.map +1 -0
- package/dist/components/Form/ControlledVoiceTextarea.d.ts +13 -0
- package/dist/components/Form/ControlledVoiceTextarea.js +99 -0
- package/dist/components/Form/ControlledVoiceTextarea.js.map +1 -0
- package/dist/components/Form/CurrencyInput.d.ts +8 -0
- package/dist/components/Form/CurrencyInput.js +17 -0
- package/dist/components/Form/CurrencyInput.js.map +1 -0
- package/dist/components/Form/FieldLabel.d.ts +16 -0
- package/dist/components/Form/FieldLabel.js +7 -0
- package/dist/components/Form/FieldLabel.js.map +1 -0
- package/dist/components/Form/RichTextEditor.d.ts +86 -0
- package/dist/components/Form/RichTextEditor.js +581 -0
- package/dist/components/Form/RichTextEditor.js.map +1 -0
- package/dist/components/Form/attachments/AttachmentPreviewList.d.ts +22 -0
- package/dist/components/Form/attachments/AttachmentPreviewList.js +95 -0
- package/dist/components/Form/attachments/AttachmentPreviewList.js.map +1 -0
- package/dist/components/Form/attachments/FileDropzone.d.ts +12 -0
- package/dist/components/Form/attachments/FileDropzone.js +84 -0
- package/dist/components/Form/attachments/FileDropzone.js.map +1 -0
- package/dist/components/Navigation/ControlledBreadcrumb.d.ts +13 -0
- package/dist/components/Navigation/ControlledBreadcrumb.js +24 -0
- package/dist/components/Navigation/ControlledBreadcrumb.js.map +1 -0
- package/dist/components/Navigation/ErrorPage.d.ts +2 -0
- package/dist/components/Navigation/ErrorPage.js +27 -0
- package/dist/components/Navigation/ErrorPage.js.map +1 -0
- package/dist/components/Navigation/LinkButton.d.ts +26 -0
- package/dist/components/Navigation/LinkButton.js +82 -0
- package/dist/components/Navigation/LinkButton.js.map +1 -0
- package/dist/components/Navigation/PageTitle.d.ts +95 -0
- package/dist/components/Navigation/PageTitle.js +241 -0
- package/dist/components/Navigation/PageTitle.js.map +1 -0
- package/dist/components/Navigation/PageTitleCollapseContext.d.ts +13 -0
- package/dist/components/Navigation/PageTitleCollapseContext.js +9 -0
- package/dist/components/Navigation/PageTitleCollapseContext.js.map +1 -0
- package/dist/components/Navigation/PageTitleNavigationContext.d.ts +21 -0
- package/dist/components/Navigation/PageTitleNavigationContext.js +17 -0
- package/dist/components/Navigation/PageTitleNavigationContext.js.map +1 -0
- package/dist/components/Navigation/ReactRouterNavigationAdapter.d.ts +7 -0
- package/dist/components/Navigation/ReactRouterNavigationAdapter.js +27 -0
- package/dist/components/Navigation/ReactRouterNavigationAdapter.js.map +1 -0
- package/dist/components/Navigation/UiNavigationContext.d.ts +38 -0
- package/dist/components/Navigation/UiNavigationContext.js +44 -0
- package/dist/components/Navigation/UiNavigationContext.js.map +1 -0
- package/dist/components/Search/UnifiedSearchBar.d.ts +31 -0
- package/dist/components/Search/UnifiedSearchBar.js +167 -0
- package/dist/components/Search/UnifiedSearchBar.js.map +1 -0
- package/dist/components/Search/filters/ActiveFiltersBar.d.ts +15 -0
- package/dist/components/Search/filters/ActiveFiltersBar.js +48 -0
- package/dist/components/Search/filters/ActiveFiltersBar.js.map +1 -0
- package/dist/components/Search/filters/FilterChipsRow.d.ts +17 -0
- package/dist/components/Search/filters/FilterChipsRow.js +113 -0
- package/dist/components/Search/filters/FilterChipsRow.js.map +1 -0
- package/dist/components/Search/filters/FilterFieldControl.d.ts +19 -0
- package/dist/components/Search/filters/FilterFieldControl.js +390 -0
- package/dist/components/Search/filters/FilterFieldControl.js.map +1 -0
- package/dist/components/Search/filters/FiltersButton.d.ts +24 -0
- package/dist/components/Search/filters/FiltersButton.js +52 -0
- package/dist/components/Search/filters/FiltersButton.js.map +1 -0
- package/dist/components/Search/filters/FiltersForm.d.ts +18 -0
- package/dist/components/Search/filters/FiltersForm.js +112 -0
- package/dist/components/Search/filters/FiltersForm.js.map +1 -0
- package/dist/components/Search/filters/FiltersPanel.d.ts +32 -0
- package/dist/components/Search/filters/FiltersPanel.js +266 -0
- package/dist/components/Search/filters/FiltersPanel.js.map +1 -0
- package/dist/components/Search/filters/FiltersSummaryTooltip.d.ts +20 -0
- package/dist/components/Search/filters/FiltersSummaryTooltip.js +26 -0
- package/dist/components/Search/filters/FiltersSummaryTooltip.js.map +1 -0
- package/dist/components/Search/filters/filterTypes.d.ts +162 -0
- package/dist/components/Search/filters/filterTypes.js +2 -0
- package/dist/components/Search/filters/filterTypes.js.map +1 -0
- package/dist/components/Search/filters/filterValues.d.ts +22 -0
- package/dist/components/Search/filters/filterValues.js +91 -0
- package/dist/components/Search/filters/filterValues.js.map +1 -0
- package/dist/components/Search/filters/filtersLayout.d.ts +4 -0
- package/dist/components/Search/filters/filtersLayout.js +18 -0
- package/dist/components/Search/filters/filtersLayout.js.map +1 -0
- package/dist/components/Search/filters/index.d.ts +11 -0
- package/dist/components/Search/filters/index.js +32 -0
- package/dist/components/Search/filters/index.js.map +1 -0
- package/dist/components/Search/filters/useFilters.d.ts +33 -0
- package/dist/components/Search/filters/useFilters.js +162 -0
- package/dist/components/Search/filters/useFilters.js.map +1 -0
- package/dist/components/Search/index.d.ts +2 -0
- package/dist/components/Search/index.js +34 -0
- package/dist/components/Search/index.js.map +1 -0
- package/dist/components/Shell/AppHeader.d.ts +25 -0
- package/dist/components/Shell/AppHeader.js +69 -0
- package/dist/components/Shell/AppHeader.js.map +1 -0
- package/dist/components/Shell/AppShell.d.ts +22 -0
- package/dist/components/Shell/AppShell.js +146 -0
- package/dist/components/Shell/AppShell.js.map +1 -0
- package/dist/components/Shell/AppSidebar.d.ts +20 -0
- package/dist/components/Shell/AppSidebar.js +93 -0
- package/dist/components/Shell/AppSidebar.js.map +1 -0
- package/dist/components/Shell/LanguageToggle.d.ts +8 -0
- package/dist/components/Shell/LanguageToggle.js +59 -0
- package/dist/components/Shell/LanguageToggle.js.map +1 -0
- package/dist/components/Shell/PumpkinGlyph.d.ts +13 -0
- package/dist/components/Shell/PumpkinGlyph.js +29 -0
- package/dist/components/Shell/PumpkinGlyph.js.map +1 -0
- package/dist/components/Shell/SidebarMenu.d.ts +29 -0
- package/dist/components/Shell/SidebarMenu.js +254 -0
- package/dist/components/Shell/SidebarMenu.js.map +1 -0
- package/dist/components/Shell/ThemeToggle.d.ts +18 -0
- package/dist/components/Shell/ThemeToggle.js +68 -0
- package/dist/components/Shell/ThemeToggle.js.map +1 -0
- package/dist/components/Shell/headerControlStyles.d.ts +10 -0
- package/dist/components/Shell/headerControlStyles.js +11 -0
- package/dist/components/Shell/headerControlStyles.js.map +1 -0
- package/dist/components/Shell/sidebarFavorites.d.ts +21 -0
- package/dist/components/Shell/sidebarFavorites.js +69 -0
- package/dist/components/Shell/sidebarFavorites.js.map +1 -0
- package/dist/components/Shell/useSidebarState.d.ts +14 -0
- package/dist/components/Shell/useSidebarState.js +106 -0
- package/dist/components/Shell/useSidebarState.js.map +1 -0
- package/dist/components/UI/AccordionIcon.d.ts +10 -0
- package/dist/components/UI/AccordionIcon.js +22 -0
- package/dist/components/UI/AccordionIcon.js.map +1 -0
- package/dist/components/UI/AlertInfo/dismissedAlertsStore.d.ts +2 -0
- package/dist/components/UI/AlertInfo/dismissedAlertsStore.js +22 -0
- package/dist/components/UI/AlertInfo/dismissedAlertsStore.js.map +1 -0
- package/dist/components/UI/AlertInfo/index.d.ts +30 -0
- package/dist/components/UI/AlertInfo/index.js +78 -0
- package/dist/components/UI/AlertInfo/index.js.map +1 -0
- package/dist/components/UI/BaseDataCard.d.ts +27 -0
- package/dist/components/UI/BaseDataCard.js +170 -0
- package/dist/components/UI/BaseDataCard.js.map +1 -0
- package/dist/components/UI/BulkActionBar.d.ts +35 -0
- package/dist/components/UI/BulkActionBar.js +127 -0
- package/dist/components/UI/BulkActionBar.js.map +1 -0
- package/dist/components/UI/Chips/OutlinedChip.d.ts +42 -0
- package/dist/components/UI/Chips/OutlinedChip.js +190 -0
- package/dist/components/UI/Chips/OutlinedChip.js.map +1 -0
- package/dist/components/UI/Chips/StatusChip.d.ts +8 -0
- package/dist/components/UI/Chips/StatusChip.js +33 -0
- package/dist/components/UI/Chips/StatusChip.js.map +1 -0
- package/dist/components/UI/Chips/chipTones.d.ts +6 -0
- package/dist/components/UI/Chips/chipTones.js +53 -0
- package/dist/components/UI/Chips/chipTones.js.map +1 -0
- package/dist/components/UI/ColorSwatch.d.ts +30 -0
- package/dist/components/UI/ColorSwatch.js +53 -0
- package/dist/components/UI/ColorSwatch.js.map +1 -0
- package/dist/components/UI/Colors.d.ts +10 -0
- package/dist/components/UI/Colors.js +41 -0
- package/dist/components/UI/Colors.js.map +1 -0
- package/dist/components/UI/ControlledAccordion.d.ts +38 -0
- package/dist/components/UI/ControlledAccordion.js +95 -0
- package/dist/components/UI/ControlledAccordion.js.map +1 -0
- package/dist/components/UI/ControlledCollapse.d.ts +18 -0
- package/dist/components/UI/ControlledCollapse.js +40 -0
- package/dist/components/UI/ControlledCollapse.js.map +1 -0
- package/dist/components/UI/ControlledMenu.d.ts +79 -0
- package/dist/components/UI/ControlledMenu.js +234 -0
- package/dist/components/UI/ControlledMenu.js.map +1 -0
- package/dist/components/UI/ControlledPopover.d.ts +59 -0
- package/dist/components/UI/ControlledPopover.js +189 -0
- package/dist/components/UI/ControlledPopover.js.map +1 -0
- package/dist/components/UI/ControlledProgress.d.ts +13 -0
- package/dist/components/UI/ControlledProgress.js +46 -0
- package/dist/components/UI/ControlledProgress.js.map +1 -0
- package/dist/components/UI/ControlledSlider.d.ts +15 -0
- package/dist/components/UI/ControlledSlider.js +34 -0
- package/dist/components/UI/ControlledSlider.js.map +1 -0
- package/dist/components/UI/ControlledTooltip.d.ts +21 -0
- package/dist/components/UI/ControlledTooltip.js +146 -0
- package/dist/components/UI/ControlledTooltip.js.map +1 -0
- package/dist/components/UI/CustomBadge.d.ts +15 -0
- package/dist/components/UI/CustomBadge.js +34 -0
- package/dist/components/UI/CustomBadge.js.map +1 -0
- package/dist/components/UI/CustomCard.d.ts +13 -0
- package/dist/components/UI/CustomCard.js +36 -0
- package/dist/components/UI/CustomCard.js.map +1 -0
- package/dist/components/UI/CustomChart.d.ts +21 -0
- package/dist/components/UI/CustomChart.js +108 -0
- package/dist/components/UI/CustomChart.js.map +1 -0
- package/dist/components/UI/DataTable/DataTable.d.ts +108 -0
- package/dist/components/UI/DataTable/DataTable.js +606 -0
- package/dist/components/UI/DataTable/DataTable.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableAutoCard.d.ts +20 -0
- package/dist/components/UI/DataTable/DataTableAutoCard.js +39 -0
- package/dist/components/UI/DataTable/DataTableAutoCard.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableBody.d.ts +33 -0
- package/dist/components/UI/DataTable/DataTableBody.js +260 -0
- package/dist/components/UI/DataTable/DataTableBody.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableBodyCell.d.ts +21 -0
- package/dist/components/UI/DataTable/DataTableBodyCell.js +88 -0
- package/dist/components/UI/DataTable/DataTableBodyCell.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableBulkEditButton.d.ts +11 -0
- package/dist/components/UI/DataTable/DataTableBulkEditButton.js +24 -0
- package/dist/components/UI/DataTable/DataTableBulkEditButton.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableBulkEditDialog.d.ts +25 -0
- package/dist/components/UI/DataTable/DataTableBulkEditDialog.js +282 -0
- package/dist/components/UI/DataTable/DataTableBulkEditDialog.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableBulkEditRowsPicker.d.ts +13 -0
- package/dist/components/UI/DataTable/DataTableBulkEditRowsPicker.js +95 -0
- package/dist/components/UI/DataTable/DataTableBulkEditRowsPicker.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableBulkEditValueEditor.d.ts +20 -0
- package/dist/components/UI/DataTable/DataTableBulkEditValueEditor.js +94 -0
- package/dist/components/UI/DataTable/DataTableBulkEditValueEditor.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableColumnToggle.d.ts +34 -0
- package/dist/components/UI/DataTable/DataTableColumnToggle.js +170 -0
- package/dist/components/UI/DataTable/DataTableColumnToggle.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableDetailModal.d.ts +17 -0
- package/dist/components/UI/DataTable/DataTableDetailModal.js +109 -0
- package/dist/components/UI/DataTable/DataTableDetailModal.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableDetailPanel.d.ts +21 -0
- package/dist/components/UI/DataTable/DataTableDetailPanel.js +51 -0
- package/dist/components/UI/DataTable/DataTableDetailPanel.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableDetailTable.d.ts +35 -0
- package/dist/components/UI/DataTable/DataTableDetailTable.js +129 -0
- package/dist/components/UI/DataTable/DataTableDetailTable.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableEditModeButton.d.ts +12 -0
- package/dist/components/UI/DataTable/DataTableEditModeButton.js +29 -0
- package/dist/components/UI/DataTable/DataTableEditModeButton.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableFilters.d.ts +20 -0
- package/dist/components/UI/DataTable/DataTableFilters.js +65 -0
- package/dist/components/UI/DataTable/DataTableFilters.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableHead.d.ts +27 -0
- package/dist/components/UI/DataTable/DataTableHead.js +198 -0
- package/dist/components/UI/DataTable/DataTableHead.js.map +1 -0
- package/dist/components/UI/DataTable/DataTablePagination.d.ts +15 -0
- package/dist/components/UI/DataTable/DataTablePagination.js +149 -0
- package/dist/components/UI/DataTable/DataTablePagination.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableSaveButton.d.ts +13 -0
- package/dist/components/UI/DataTable/DataTableSaveButton.js +21 -0
- package/dist/components/UI/DataTable/DataTableSaveButton.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableSegmentedTabs.d.ts +8 -0
- package/dist/components/UI/DataTable/DataTableSegmentedTabs.js +35 -0
- package/dist/components/UI/DataTable/DataTableSegmentedTabs.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableStates.d.ts +17 -0
- package/dist/components/UI/DataTable/DataTableStates.js +59 -0
- package/dist/components/UI/DataTable/DataTableStates.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableToolbar.d.ts +28 -0
- package/dist/components/UI/DataTable/DataTableToolbar.js +110 -0
- package/dist/components/UI/DataTable/DataTableToolbar.js.map +1 -0
- package/dist/components/UI/DataTable/applyDataTableFilters.d.ts +16 -0
- package/dist/components/UI/DataTable/applyDataTableFilters.js +54 -0
- package/dist/components/UI/DataTable/applyDataTableFilters.js.map +1 -0
- package/dist/components/UI/DataTable/bulkEditValues.d.ts +8 -0
- package/dist/components/UI/DataTable/bulkEditValues.js +13 -0
- package/dist/components/UI/DataTable/bulkEditValues.js.map +1 -0
- package/dist/components/UI/DataTable/cells/DataTableActionsCell.d.ts +7 -0
- package/dist/components/UI/DataTable/cells/DataTableActionsCell.js +55 -0
- package/dist/components/UI/DataTable/cells/DataTableActionsCell.js.map +1 -0
- package/dist/components/UI/DataTable/cells/DataTableCell.d.ts +15 -0
- package/dist/components/UI/DataTable/cells/DataTableCell.js +63 -0
- package/dist/components/UI/DataTable/cells/DataTableCell.js.map +1 -0
- package/dist/components/UI/DataTable/cells/DataTableCodeCell.d.ts +6 -0
- package/dist/components/UI/DataTable/cells/DataTableCodeCell.js +7 -0
- package/dist/components/UI/DataTable/cells/DataTableCodeCell.js.map +1 -0
- package/dist/components/UI/DataTable/cells/DataTableColorCell.d.ts +7 -0
- package/dist/components/UI/DataTable/cells/DataTableColorCell.js +10 -0
- package/dist/components/UI/DataTable/cells/DataTableColorCell.js.map +1 -0
- package/dist/components/UI/DataTable/cells/DataTableCountCell.d.ts +5 -0
- package/dist/components/UI/DataTable/cells/DataTableCountCell.js +7 -0
- package/dist/components/UI/DataTable/cells/DataTableCountCell.js.map +1 -0
- package/dist/components/UI/DataTable/cells/DataTableDateCell.d.ts +5 -0
- package/dist/components/UI/DataTable/cells/DataTableDateCell.js +12 -0
- package/dist/components/UI/DataTable/cells/DataTableDateCell.js.map +1 -0
- package/dist/components/UI/DataTable/cells/DataTableEditableCell.d.ts +23 -0
- package/dist/components/UI/DataTable/cells/DataTableEditableCell.js +242 -0
- package/dist/components/UI/DataTable/cells/DataTableEditableCell.js.map +1 -0
- package/dist/components/UI/DataTable/cells/DataTableEmpenhoCell.d.ts +10 -0
- package/dist/components/UI/DataTable/cells/DataTableEmpenhoCell.js +7 -0
- package/dist/components/UI/DataTable/cells/DataTableEmpenhoCell.js.map +1 -0
- package/dist/components/UI/DataTable/cells/DataTableOriginCell.d.ts +6 -0
- package/dist/components/UI/DataTable/cells/DataTableOriginCell.js +25 -0
- package/dist/components/UI/DataTable/cells/DataTableOriginCell.js.map +1 -0
- package/dist/components/UI/DataTable/cells/DataTableStatusCell.d.ts +6 -0
- package/dist/components/UI/DataTable/cells/DataTableStatusCell.js +24 -0
- package/dist/components/UI/DataTable/cells/DataTableStatusCell.js.map +1 -0
- package/dist/components/UI/DataTable/cells/DataTableTagCell.d.ts +6 -0
- package/dist/components/UI/DataTable/cells/DataTableTagCell.js +25 -0
- package/dist/components/UI/DataTable/cells/DataTableTagCell.js.map +1 -0
- package/dist/components/UI/DataTable/cells/DataTableTextCell.d.ts +6 -0
- package/dist/components/UI/DataTable/cells/DataTableTextCell.js +7 -0
- package/dist/components/UI/DataTable/cells/DataTableTextCell.js.map +1 -0
- package/dist/components/UI/DataTable/cells/DataTableThumbnailCell.d.ts +6 -0
- package/dist/components/UI/DataTable/cells/DataTableThumbnailCell.js +10 -0
- package/dist/components/UI/DataTable/cells/DataTableThumbnailCell.js.map +1 -0
- package/dist/components/UI/DataTable/dataTableClasses.d.ts +12 -0
- package/dist/components/UI/DataTable/dataTableClasses.js +29 -0
- package/dist/components/UI/DataTable/dataTableClasses.js.map +1 -0
- package/dist/components/UI/DataTable/dataTableColumnWidths.d.ts +15 -0
- package/dist/components/UI/DataTable/dataTableColumnWidths.js +153 -0
- package/dist/components/UI/DataTable/dataTableColumnWidths.js.map +1 -0
- package/dist/components/UI/DataTable/dataTableColumnsStore.d.ts +12 -0
- package/dist/components/UI/DataTable/dataTableColumnsStore.js +68 -0
- package/dist/components/UI/DataTable/dataTableColumnsStore.js.map +1 -0
- package/dist/components/UI/DataTable/dataTableMotion.d.ts +6 -0
- package/dist/components/UI/DataTable/dataTableMotion.js +15 -0
- package/dist/components/UI/DataTable/dataTableMotion.js.map +1 -0
- package/dist/components/UI/DataTable/grid/GridFillHandle.d.ts +8 -0
- package/dist/components/UI/DataTable/grid/GridFillHandle.js +70 -0
- package/dist/components/UI/DataTable/grid/GridFillHandle.js.map +1 -0
- package/dist/components/UI/DataTable/grid/GridProvider.d.ts +36 -0
- package/dist/components/UI/DataTable/grid/GridProvider.js +128 -0
- package/dist/components/UI/DataTable/grid/GridProvider.js.map +1 -0
- package/dist/components/UI/DataTable/grid/fill/fillStrategies.d.ts +19 -0
- package/dist/components/UI/DataTable/grid/fill/fillStrategies.js +73 -0
- package/dist/components/UI/DataTable/grid/fill/fillStrategies.js.map +1 -0
- package/dist/components/UI/DataTable/grid/gridStore.d.ts +82 -0
- package/dist/components/UI/DataTable/grid/gridStore.js +259 -0
- package/dist/components/UI/DataTable/grid/gridStore.js.map +1 -0
- package/dist/components/UI/DataTable/grid/gridTypes.d.ts +59 -0
- package/dist/components/UI/DataTable/grid/gridTypes.js +27 -0
- package/dist/components/UI/DataTable/grid/gridTypes.js.map +1 -0
- package/dist/components/UI/DataTable/grid/useGridFillApply.d.ts +18 -0
- package/dist/components/UI/DataTable/grid/useGridFillApply.js +74 -0
- package/dist/components/UI/DataTable/grid/useGridFillApply.js.map +1 -0
- package/dist/components/UI/DataTable/grid/useGridInstance.d.ts +27 -0
- package/dist/components/UI/DataTable/grid/useGridInstance.js +41 -0
- package/dist/components/UI/DataTable/grid/useGridInstance.js.map +1 -0
- package/dist/components/UI/DataTable/grid/useGridKeyboard.d.ts +25 -0
- package/dist/components/UI/DataTable/grid/useGridKeyboard.js +135 -0
- package/dist/components/UI/DataTable/grid/useGridKeyboard.js.map +1 -0
- package/dist/components/UI/DataTable/index.d.ts +19 -0
- package/dist/components/UI/DataTable/index.js +34 -0
- package/dist/components/UI/DataTable/index.js.map +1 -0
- package/dist/components/UI/DataTable/types.d.ts +535 -0
- package/dist/components/UI/DataTable/types.js +13 -0
- package/dist/components/UI/DataTable/types.js.map +1 -0
- package/dist/components/UI/DataTable/useCellEditingState.d.ts +20 -0
- package/dist/components/UI/DataTable/useCellEditingState.js +33 -0
- package/dist/components/UI/DataTable/useCellEditingState.js.map +1 -0
- package/dist/components/UI/DataTable/useColumnOrder.d.ts +25 -0
- package/dist/components/UI/DataTable/useColumnOrder.js +94 -0
- package/dist/components/UI/DataTable/useColumnOrder.js.map +1 -0
- package/dist/components/UI/DataTable/useColumnSizing.d.ts +9 -0
- package/dist/components/UI/DataTable/useColumnSizing.js +21 -0
- package/dist/components/UI/DataTable/useColumnSizing.js.map +1 -0
- package/dist/components/UI/DataTable/useColumnVisibility.d.ts +19 -0
- package/dist/components/UI/DataTable/useColumnVisibility.js +47 -0
- package/dist/components/UI/DataTable/useColumnVisibility.js.map +1 -0
- package/dist/components/UI/DataTable/useDataTableCommitQueue.d.ts +69 -0
- package/dist/components/UI/DataTable/useDataTableCommitQueue.js +220 -0
- package/dist/components/UI/DataTable/useDataTableCommitQueue.js.map +1 -0
- package/dist/components/UI/DataTable/useDataTableEditBuffer.d.ts +36 -0
- package/dist/components/UI/DataTable/useDataTableEditBuffer.js +29 -0
- package/dist/components/UI/DataTable/useDataTableEditBuffer.js.map +1 -0
- package/dist/components/UI/DataTable/useDataTableInstance.d.ts +65 -0
- package/dist/components/UI/DataTable/useDataTableInstance.js +336 -0
- package/dist/components/UI/DataTable/useDataTableInstance.js.map +1 -0
- package/dist/components/UI/DataTable/useDataTableSource.d.ts +85 -0
- package/dist/components/UI/DataTable/useDataTableSource.js +199 -0
- package/dist/components/UI/DataTable/useDataTableSource.js.map +1 -0
- package/dist/components/UI/DataTable/useDataTableUndoHistory.d.ts +30 -0
- package/dist/components/UI/DataTable/useDataTableUndoHistory.js +130 -0
- package/dist/components/UI/DataTable/useDataTableUndoHistory.js.map +1 -0
- package/dist/components/UI/DataTable/useFlipRows.d.ts +22 -0
- package/dist/components/UI/DataTable/useFlipRows.js +90 -0
- package/dist/components/UI/DataTable/useFlipRows.js.map +1 -0
- package/dist/components/UI/ErrorBoundary.d.ts +20 -0
- package/dist/components/UI/ErrorBoundary.js +36 -0
- package/dist/components/UI/ErrorBoundary.js.map +1 -0
- package/dist/components/UI/Flow/FlowAnnotationDraftPreview.d.ts +6 -0
- package/dist/components/UI/Flow/FlowAnnotationDraftPreview.js +65 -0
- package/dist/components/UI/Flow/FlowAnnotationDraftPreview.js.map +1 -0
- package/dist/components/UI/Flow/FlowAnnotationNode.d.ts +34 -0
- package/dist/components/UI/Flow/FlowAnnotationNode.js +231 -0
- package/dist/components/UI/Flow/FlowAnnotationNode.js.map +1 -0
- package/dist/components/UI/Flow/FlowAnnotationToolbar.d.ts +32 -0
- package/dist/components/UI/Flow/FlowAnnotationToolbar.js +298 -0
- package/dist/components/UI/Flow/FlowAnnotationToolbar.js.map +1 -0
- package/dist/components/UI/Flow/FlowBlockNode.d.ts +35 -0
- package/dist/components/UI/Flow/FlowBlockNode.js +91 -0
- package/dist/components/UI/Flow/FlowBlockNode.js.map +1 -0
- package/dist/components/UI/Flow/FlowCanvas.d.ts +23 -0
- package/dist/components/UI/Flow/FlowCanvas.js +559 -0
- package/dist/components/UI/Flow/FlowCanvas.js.map +1 -0
- package/dist/components/UI/Flow/FlowConnectionEdge.d.ts +18 -0
- package/dist/components/UI/Flow/FlowConnectionEdge.js +116 -0
- package/dist/components/UI/Flow/FlowConnectionEdge.js.map +1 -0
- package/dist/components/UI/Flow/FlowEditorProvider.d.ts +17 -0
- package/dist/components/UI/Flow/FlowEditorProvider.js +27 -0
- package/dist/components/UI/Flow/FlowEditorProvider.js.map +1 -0
- package/dist/components/UI/Flow/FlowInspector.d.ts +11 -0
- package/dist/components/UI/Flow/FlowInspector.js +131 -0
- package/dist/components/UI/Flow/FlowInspector.js.map +1 -0
- package/dist/components/UI/Flow/FlowIssueList.d.ts +8 -0
- package/dist/components/UI/Flow/FlowIssueList.js +55 -0
- package/dist/components/UI/Flow/FlowIssueList.js.map +1 -0
- package/dist/components/UI/Flow/FlowLaneMap.d.ts +30 -0
- package/dist/components/UI/Flow/FlowLaneMap.js +206 -0
- package/dist/components/UI/Flow/FlowLaneMap.js.map +1 -0
- package/dist/components/UI/Flow/FlowNodeShell.d.ts +20 -0
- package/dist/components/UI/Flow/FlowNodeShell.js +81 -0
- package/dist/components/UI/Flow/FlowNodeShell.js.map +1 -0
- package/dist/components/UI/Flow/FlowResizablePanel.d.ts +20 -0
- package/dist/components/UI/Flow/FlowResizablePanel.js +118 -0
- package/dist/components/UI/Flow/FlowResizablePanel.js.map +1 -0
- package/dist/components/UI/Flow/FlowSelectionBar.d.ts +10 -0
- package/dist/components/UI/Flow/FlowSelectionBar.js +56 -0
- package/dist/components/UI/Flow/FlowSelectionBar.js.map +1 -0
- package/dist/components/UI/Flow/FlowZoomControls.d.ts +12 -0
- package/dist/components/UI/Flow/FlowZoomControls.js +54 -0
- package/dist/components/UI/Flow/FlowZoomControls.js.map +1 -0
- package/dist/components/UI/Flow/flowAnnotations.d.ts +38 -0
- package/dist/components/UI/Flow/flowAnnotations.js +123 -0
- package/dist/components/UI/Flow/flowAnnotations.js.map +1 -0
- package/dist/components/UI/Flow/flowBlockRegistry.d.ts +12 -0
- package/dist/components/UI/Flow/flowBlockRegistry.js +20 -0
- package/dist/components/UI/Flow/flowBlockRegistry.js.map +1 -0
- package/dist/components/UI/Flow/flowEditorStore.d.ts +73 -0
- package/dist/components/UI/Flow/flowEditorStore.js +402 -0
- package/dist/components/UI/Flow/flowEditorStore.js.map +1 -0
- package/dist/components/UI/Flow/flowGraph.d.ts +32 -0
- package/dist/components/UI/Flow/flowGraph.js +157 -0
- package/dist/components/UI/Flow/flowGraph.js.map +1 -0
- package/dist/components/UI/Flow/flowTypes.d.ts +104 -0
- package/dist/components/UI/Flow/flowTypes.js +2 -0
- package/dist/components/UI/Flow/flowTypes.js.map +1 -0
- package/dist/components/UI/Flow/flowViewport.d.ts +25 -0
- package/dist/components/UI/Flow/flowViewport.js +31 -0
- package/dist/components/UI/Flow/flowViewport.js.map +1 -0
- package/dist/components/UI/Flow/index.d.ts +13 -0
- package/dist/components/UI/Flow/index.js +44 -0
- package/dist/components/UI/Flow/index.js.map +1 -0
- package/dist/components/UI/Flow/useFlowAnnotationDrawing.d.ts +25 -0
- package/dist/components/UI/Flow/useFlowAnnotationDrawing.js +117 -0
- package/dist/components/UI/Flow/useFlowAnnotationDrawing.js.map +1 -0
- package/dist/components/UI/Flow/useFlowLabels.d.ts +10 -0
- package/dist/components/UI/Flow/useFlowLabels.js +51 -0
- package/dist/components/UI/Flow/useFlowLabels.js.map +1 -0
- package/dist/components/UI/GeneratedByAI.d.ts +2 -0
- package/dist/components/UI/GeneratedByAI.js +12 -0
- package/dist/components/UI/GeneratedByAI.js.map +1 -0
- package/dist/components/UI/HorizontalScrollArea.d.ts +22 -0
- package/dist/components/UI/HorizontalScrollArea.js +74 -0
- package/dist/components/UI/HorizontalScrollArea.js.map +1 -0
- package/dist/components/UI/ImageAiAdjust/ImageAiAdjustDialog.d.ts +21 -0
- package/dist/components/UI/ImageAiAdjust/ImageAiAdjustDialog.js +235 -0
- package/dist/components/UI/ImageAiAdjust/ImageAiAdjustDialog.js.map +1 -0
- package/dist/components/UI/ImageAiAdjust/ImageAiDiscardReasonDialog.d.ts +8 -0
- package/dist/components/UI/ImageAiAdjust/ImageAiDiscardReasonDialog.js +67 -0
- package/dist/components/UI/ImageAiAdjust/ImageAiDiscardReasonDialog.js.map +1 -0
- package/dist/components/UI/ImageAiAdjust/ImageAiVerificationNotice.d.ts +8 -0
- package/dist/components/UI/ImageAiAdjust/ImageAiVerificationNotice.js +39 -0
- package/dist/components/UI/ImageAiAdjust/ImageAiVerificationNotice.js.map +1 -0
- package/dist/components/UI/ImageAiAdjust/imageAiReview.d.ts +22 -0
- package/dist/components/UI/ImageAiAdjust/imageAiReview.js +37 -0
- package/dist/components/UI/ImageAiAdjust/imageAiReview.js.map +1 -0
- package/dist/components/UI/ImageAiAdjust/imageAiVerification.d.ts +19 -0
- package/dist/components/UI/ImageAiAdjust/imageAiVerification.js +25 -0
- package/dist/components/UI/ImageAiAdjust/imageAiVerification.js.map +1 -0
- package/dist/components/UI/ImageAiAdjust/useImageAiAdjust.d.ts +52 -0
- package/dist/components/UI/ImageAiAdjust/useImageAiAdjust.js +109 -0
- package/dist/components/UI/ImageAiAdjust/useImageAiAdjust.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/AnnotationEditor.d.ts +13 -0
- package/dist/components/UI/ImageAnnotator/AnnotationEditor.js +362 -0
- package/dist/components/UI/ImageAnnotator/AnnotationEditor.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/ImageAnnotationDialog.d.ts +15 -0
- package/dist/components/UI/ImageAnnotator/ImageAnnotationDialog.js +61 -0
- package/dist/components/UI/ImageAnnotator/ImageAnnotationDialog.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/annotationStyle.d.ts +28 -0
- package/dist/components/UI/ImageAnnotator/annotationStyle.js +56 -0
- package/dist/components/UI/ImageAnnotator/annotationStyle.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/canvas/AnnotationCropFrame.d.ts +16 -0
- package/dist/components/UI/ImageAnnotator/canvas/AnnotationCropFrame.js +156 -0
- package/dist/components/UI/ImageAnnotator/canvas/AnnotationCropFrame.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/canvas/AnnotationElementNode.d.ts +17 -0
- package/dist/components/UI/ImageAnnotator/canvas/AnnotationElementNode.js +329 -0
- package/dist/components/UI/ImageAnnotator/canvas/AnnotationElementNode.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/canvas/AnnotationSelection.d.ts +10 -0
- package/dist/components/UI/ImageAnnotator/canvas/AnnotationSelection.js +127 -0
- package/dist/components/UI/ImageAnnotator/canvas/AnnotationSelection.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/canvas/AnnotationStage.d.ts +26 -0
- package/dist/components/UI/ImageAnnotator/canvas/AnnotationStage.js +241 -0
- package/dist/components/UI/ImageAnnotator/canvas/AnnotationStage.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationActionBar.d.ts +15 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationActionBar.js +77 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationActionBar.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationColorPopover.d.ts +11 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationColorPopover.js +70 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationColorPopover.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationCropBar.d.ts +12 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationCropBar.js +89 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationCropBar.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationElementActions.d.ts +8 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationElementActions.js +58 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationElementActions.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationStyleBar.d.ts +13 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationStyleBar.js +183 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationStyleBar.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationTextOverlay.d.ts +17 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationTextOverlay.js +79 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationTextOverlay.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationToolButton.d.ts +15 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationToolButton.js +46 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationToolButton.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationToolbar.d.ts +10 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationToolbar.js +91 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationToolbar.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/helpers/annotationCanvas.d.ts +21 -0
- package/dist/components/UI/ImageAnnotator/helpers/annotationCanvas.js +45 -0
- package/dist/components/UI/ImageAnnotator/helpers/annotationCanvas.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/helpers/annotationCrop.d.ts +12 -0
- package/dist/components/UI/ImageAnnotator/helpers/annotationCrop.js +64 -0
- package/dist/components/UI/ImageAnnotator/helpers/annotationCrop.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/helpers/annotationElements.d.ts +15 -0
- package/dist/components/UI/ImageAnnotator/helpers/annotationElements.js +165 -0
- package/dist/components/UI/ImageAnnotator/helpers/annotationElements.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/helpers/annotationExport.d.ts +15 -0
- package/dist/components/UI/ImageAnnotator/helpers/annotationExport.js +23 -0
- package/dist/components/UI/ImageAnnotator/helpers/annotationExport.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/helpers/konvaFullBuild.d.ts +8 -0
- package/dist/components/UI/ImageAnnotator/helpers/konvaFullBuild.js +10 -0
- package/dist/components/UI/ImageAnnotator/helpers/konvaFullBuild.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/hooks/useAnnotationBaseImage.d.ts +9 -0
- package/dist/components/UI/ImageAnnotator/hooks/useAnnotationBaseImage.js +56 -0
- package/dist/components/UI/ImageAnnotator/hooks/useAnnotationBaseImage.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/hooks/useAnnotationDocument.d.ts +29 -0
- package/dist/components/UI/ImageAnnotator/hooks/useAnnotationDocument.js +160 -0
- package/dist/components/UI/ImageAnnotator/hooks/useAnnotationDocument.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/hooks/useAnnotationShortcuts.d.ts +14 -0
- package/dist/components/UI/ImageAnnotator/hooks/useAnnotationShortcuts.js +80 -0
- package/dist/components/UI/ImageAnnotator/hooks/useAnnotationShortcuts.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/hooks/useCoarsePointer.d.ts +5 -0
- package/dist/components/UI/ImageAnnotator/hooks/useCoarsePointer.js +23 -0
- package/dist/components/UI/ImageAnnotator/hooks/useCoarsePointer.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/hooks/useHtmlImage.d.ts +2 -0
- package/dist/components/UI/ImageAnnotator/hooks/useHtmlImage.js +27 -0
- package/dist/components/UI/ImageAnnotator/hooks/useHtmlImage.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/interfaces/annotationDocument.d.ts +98 -0
- package/dist/components/UI/ImageAnnotator/interfaces/annotationDocument.js +13 -0
- package/dist/components/UI/ImageAnnotator/interfaces/annotationDocument.js.map +1 -0
- package/dist/components/UI/ImageMaskPainter/index.d.ts +24 -0
- package/dist/components/UI/ImageMaskPainter/index.js +284 -0
- package/dist/components/UI/ImageMaskPainter/index.js.map +1 -0
- package/dist/components/UI/ImageMaskPainter/maskStrokes.d.ts +19 -0
- package/dist/components/UI/ImageMaskPainter/maskStrokes.js +71 -0
- package/dist/components/UI/ImageMaskPainter/maskStrokes.js.map +1 -0
- package/dist/components/UI/ImagePlaceholder.d.ts +24 -0
- package/dist/components/UI/ImagePlaceholder.js +29 -0
- package/dist/components/UI/ImagePlaceholder.js.map +1 -0
- package/dist/components/UI/ImageZoomOverlay.d.ts +7 -0
- package/dist/components/UI/ImageZoomOverlay.js +53 -0
- package/dist/components/UI/ImageZoomOverlay.js.map +1 -0
- package/dist/components/UI/InformationCard.d.ts +26 -0
- package/dist/components/UI/InformationCard.js +89 -0
- package/dist/components/UI/InformationCard.js.map +1 -0
- package/dist/components/UI/Kanban/KanbanBoard.d.ts +26 -0
- package/dist/components/UI/Kanban/KanbanBoard.js +91 -0
- package/dist/components/UI/Kanban/KanbanBoard.js.map +1 -0
- package/dist/components/UI/Kanban/KanbanCard.d.ts +22 -0
- package/dist/components/UI/Kanban/KanbanCard.js +47 -0
- package/dist/components/UI/Kanban/KanbanCard.js.map +1 -0
- package/dist/components/UI/Kanban/KanbanLane.d.ts +37 -0
- package/dist/components/UI/Kanban/KanbanLane.js +77 -0
- package/dist/components/UI/Kanban/KanbanLane.js.map +1 -0
- package/dist/components/UI/Kanban/index.d.ts +4 -0
- package/dist/components/UI/Kanban/index.js +11 -0
- package/dist/components/UI/Kanban/index.js.map +1 -0
- package/dist/components/UI/Kanban/kanbanBoardContext.d.ts +13 -0
- package/dist/components/UI/Kanban/kanbanBoardContext.js +13 -0
- package/dist/components/UI/Kanban/kanbanBoardContext.js.map +1 -0
- package/dist/components/UI/LazyMarkdown.d.ts +5 -0
- package/dist/components/UI/LazyMarkdown.js +8 -0
- package/dist/components/UI/LazyMarkdown.js.map +1 -0
- package/dist/components/UI/LoadingPage.d.ts +2 -0
- package/dist/components/UI/LoadingPage.js +13 -0
- package/dist/components/UI/LoadingPage.js.map +1 -0
- package/dist/components/UI/LoadingSpinner.d.ts +14 -0
- package/dist/components/UI/LoadingSpinner.js +32 -0
- package/dist/components/UI/LoadingSpinner.js.map +1 -0
- package/dist/components/UI/MaterialSymbol/consts.d.ts +2 -0
- package/dist/components/UI/MaterialSymbol/consts.js +3472 -0
- package/dist/components/UI/MaterialSymbol/consts.js.map +1 -0
- package/dist/components/UI/MaterialSymbol/index.d.ts +18 -0
- package/dist/components/UI/MaterialSymbol/index.js +51 -0
- package/dist/components/UI/MaterialSymbol/index.js.map +1 -0
- package/dist/components/UI/MaterialSymbol/types.d.ts +37 -0
- package/dist/components/UI/MaterialSymbol/types.js +2 -0
- package/dist/components/UI/MaterialSymbol/types.js.map +1 -0
- package/dist/components/UI/NoDataFound/index.d.ts +31 -0
- package/dist/components/UI/NoDataFound/index.js +215 -0
- package/dist/components/UI/NoDataFound/index.js.map +1 -0
- package/dist/components/UI/NoDataFound/noDataFoundPresets.d.ts +31 -0
- package/dist/components/UI/NoDataFound/noDataFoundPresets.js +99 -0
- package/dist/components/UI/NoDataFound/noDataFoundPresets.js.map +1 -0
- package/dist/components/UI/ReferenceCard.d.ts +16 -0
- package/dist/components/UI/ReferenceCard.js +59 -0
- package/dist/components/UI/ReferenceCard.js.map +1 -0
- package/dist/components/UI/RichTextContent.d.ts +14 -0
- package/dist/components/UI/RichTextContent.js +30 -0
- package/dist/components/UI/RichTextContent.js.map +1 -0
- package/dist/components/UI/SkeletonLoading.d.ts +9 -0
- package/dist/components/UI/SkeletonLoading.js +20 -0
- package/dist/components/UI/SkeletonLoading.js.map +1 -0
- package/dist/components/UI/ThreeDots.d.ts +11 -0
- package/dist/components/UI/ThreeDots.js +22 -0
- package/dist/components/UI/ThreeDots.js.map +1 -0
- package/dist/components/UI/Toast.d.ts +16 -0
- package/dist/components/UI/Toast.js +81 -0
- package/dist/components/UI/Toast.js.map +1 -0
- package/dist/components/UI/ToastHost.d.ts +2 -0
- package/dist/components/UI/ToastHost.js +25 -0
- package/dist/components/UI/ToastHost.js.map +1 -0
- package/dist/components/UI/TypingEffect.d.ts +10 -0
- package/dist/components/UI/TypingEffect.js +31 -0
- package/dist/components/UI/TypingEffect.js.map +1 -0
- package/dist/components/UI/UmodeLogo.d.ts +10 -0
- package/dist/components/UI/UmodeLogo.js +128 -0
- package/dist/components/UI/UmodeLogo.js.map +1 -0
- package/dist/components/UI/UserMenu.d.ts +50 -0
- package/dist/components/UI/UserMenu.js +212 -0
- package/dist/components/UI/UserMenu.js.map +1 -0
- package/dist/components/UI/UsersAvatar.d.ts +7 -0
- package/dist/components/UI/UsersAvatar.js +29 -0
- package/dist/components/UI/UsersAvatar.js.map +1 -0
- package/dist/components/UI/access/UiAccessContext.d.ts +21 -0
- package/dist/components/UI/access/UiAccessContext.js +14 -0
- package/dist/components/UI/access/UiAccessContext.js.map +1 -0
- package/dist/components/UI/cells/ArrayCell.d.ts +5 -0
- package/dist/components/UI/cells/ArrayCell.js +25 -0
- package/dist/components/UI/cells/ArrayCell.js.map +1 -0
- package/dist/components/UI/cells/BooleanCell.d.ts +5 -0
- package/dist/components/UI/cells/BooleanCell.js +22 -0
- package/dist/components/UI/cells/BooleanCell.js.map +1 -0
- package/dist/components/UI/cells/DetailsTableCell.d.ts +7 -0
- package/dist/components/UI/cells/DetailsTableCell.js +30 -0
- package/dist/components/UI/cells/DetailsTableCell.js.map +1 -0
- package/dist/components/UI/cells/ProductImageCell.d.ts +5 -0
- package/dist/components/UI/cells/ProductImageCell.js +21 -0
- package/dist/components/UI/cells/ProductImageCell.js.map +1 -0
- package/dist/components/UI/cells/UrlLinkCell.d.ts +6 -0
- package/dist/components/UI/cells/UrlLinkCell.js +19 -0
- package/dist/components/UI/cells/UrlLinkCell.js.map +1 -0
- package/dist/components/Upload/SimpleUploaderComponent.d.ts +9 -0
- package/dist/components/Upload/SimpleUploaderComponent.js +72 -0
- package/dist/components/Upload/SimpleUploaderComponent.js.map +1 -0
- package/dist/components/Upload/UploaderComponent.d.ts +29 -0
- package/dist/components/Upload/UploaderComponent.js +241 -0
- package/dist/components/Upload/UploaderComponent.js.map +1 -0
- package/dist/components/Upload/XlsExportButton.d.ts +13 -0
- package/dist/components/Upload/XlsExportButton.js +47 -0
- package/dist/components/Upload/XlsExportButton.js.map +1 -0
- package/dist/helpers/composeRefs.d.ts +7 -0
- package/dist/helpers/composeRefs.js +14 -0
- package/dist/helpers/composeRefs.js.map +1 -0
- package/dist/helpers/dateHelpers.d.ts +47 -0
- package/dist/helpers/dateHelpers.js +69 -0
- package/dist/helpers/dateHelpers.js.map +1 -0
- package/dist/helpers/fileAttachments.d.ts +3 -0
- package/dist/helpers/fileAttachments.js +17 -0
- package/dist/helpers/fileAttachments.js.map +1 -0
- package/dist/helpers/formatHelpers.d.ts +36 -0
- package/dist/helpers/formatHelpers.js +65 -0
- package/dist/helpers/formatHelpers.js.map +1 -0
- package/dist/helpers/iconFont.d.ts +9 -0
- package/dist/helpers/iconFont.js +37 -0
- package/dist/helpers/iconFont.js.map +1 -0
- package/dist/helpers/imageCompression.d.ts +5 -0
- package/dist/helpers/imageCompression.js +49 -0
- package/dist/helpers/imageCompression.js.map +1 -0
- package/dist/helpers/imageFile.d.ts +32 -0
- package/dist/helpers/imageFile.js +108 -0
- package/dist/helpers/imageFile.js.map +1 -0
- package/dist/helpers/layeredSurfaces.d.ts +28 -0
- package/dist/helpers/layeredSurfaces.js +19 -0
- package/dist/helpers/layeredSurfaces.js.map +1 -0
- package/dist/helpers/mathHelpers.d.ts +14 -0
- package/dist/helpers/mathHelpers.js +13 -0
- package/dist/helpers/mathHelpers.js.map +1 -0
- package/dist/helpers/mergeClasses.d.ts +10 -0
- package/dist/helpers/mergeClasses.js +34 -0
- package/dist/helpers/mergeClasses.js.map +1 -0
- package/dist/helpers/moduleLoadErrorHelpers.d.ts +1 -0
- package/dist/helpers/moduleLoadErrorHelpers.js +25 -0
- package/dist/helpers/moduleLoadErrorHelpers.js.map +1 -0
- package/dist/helpers/objectHelpers.d.ts +13 -0
- package/dist/helpers/objectHelpers.js +59 -0
- package/dist/helpers/objectHelpers.js.map +1 -0
- package/dist/helpers/portalHost.d.ts +10 -0
- package/dist/helpers/portalHost.js +7 -0
- package/dist/helpers/portalHost.js.map +1 -0
- package/dist/helpers/richText.d.ts +46 -0
- package/dist/helpers/richText.js +197 -0
- package/dist/helpers/richText.js.map +1 -0
- package/dist/helpers/stringHelpers.d.ts +45 -0
- package/dist/helpers/stringHelpers.js +57 -0
- package/dist/helpers/stringHelpers.js.map +1 -0
- package/dist/helpers/themeSkins.d.ts +12 -0
- package/dist/helpers/themeSkins.js +13 -0
- package/dist/helpers/themeSkins.js.map +1 -0
- package/dist/helpers/themeTokens.d.ts +28 -0
- package/dist/helpers/themeTokens.js +35 -0
- package/dist/helpers/themeTokens.js.map +1 -0
- package/dist/helpers/uiErrorPresenter.d.ts +21 -0
- package/dist/helpers/uiErrorPresenter.js +10 -0
- package/dist/helpers/uiErrorPresenter.js.map +1 -0
- package/dist/helpers/uiLogger.d.ts +8 -0
- package/dist/helpers/uiLogger.js +16 -0
- package/dist/helpers/uiLogger.js.map +1 -0
- package/dist/helpers/uiPreferences.d.ts +13 -0
- package/dist/helpers/uiPreferences.js +35 -0
- package/dist/helpers/uiPreferences.js.map +1 -0
- package/dist/helpers/urlParamSync.d.ts +19 -0
- package/dist/helpers/urlParamSync.js +54 -0
- package/dist/helpers/urlParamSync.js.map +1 -0
- package/dist/helpers/utilityHelpers.d.ts +81 -0
- package/dist/helpers/utilityHelpers.js +133 -0
- package/dist/helpers/utilityHelpers.js.map +1 -0
- package/dist/helpers/validationHelpers.d.ts +36 -0
- package/dist/helpers/validationHelpers.js +44 -0
- package/dist/helpers/validationHelpers.js.map +1 -0
- package/dist/hooks/useAnchoredFloating.d.ts +22 -0
- package/dist/hooks/useAnchoredFloating.js +59 -0
- package/dist/hooks/useAnchoredFloating.js.map +1 -0
- package/dist/hooks/useBreakpoint.d.ts +16 -0
- package/dist/hooks/useBreakpoint.js +47 -0
- package/dist/hooks/useBreakpoint.js.map +1 -0
- package/dist/hooks/useDebounce.d.ts +8 -0
- package/dist/hooks/useDebounce.js +36 -0
- package/dist/hooks/useDebounce.js.map +1 -0
- package/dist/hooks/useFileAttachments.d.ts +43 -0
- package/dist/hooks/useFileAttachments.js +158 -0
- package/dist/hooks/useFileAttachments.js.map +1 -0
- package/dist/hooks/useHoverCapable.d.ts +6 -0
- package/dist/hooks/useHoverCapable.js +28 -0
- package/dist/hooks/useHoverCapable.js.map +1 -0
- package/dist/hooks/useInlineEditor.d.ts +5 -0
- package/dist/hooks/useInlineEditor.js +42 -0
- package/dist/hooks/useInlineEditor.js.map +1 -0
- package/dist/hooks/useMobile.d.ts +7 -0
- package/dist/hooks/useMobile.js +8 -0
- package/dist/hooks/useMobile.js.map +1 -0
- package/dist/hooks/useNotification.d.ts +38 -0
- package/dist/hooks/useNotification.js +39 -0
- package/dist/hooks/useNotification.js.map +1 -0
- package/dist/hooks/useResolvedTheme.d.ts +7 -0
- package/dist/hooks/useResolvedTheme.js +15 -0
- package/dist/hooks/useResolvedTheme.js.map +1 -0
- package/dist/hooks/useThemeSkin.d.ts +7 -0
- package/dist/hooks/useThemeSkin.js +19 -0
- package/dist/hooks/useThemeSkin.js.map +1 -0
- package/dist/hooks/useVoiceTranscription.d.ts +29 -0
- package/dist/hooks/useVoiceTranscription.js +208 -0
- package/dist/hooks/useVoiceTranscription.js.map +1 -0
- package/dist/index.d.ts +63 -0
- package/dist/index.js +157 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/IFileAttachment.d.ts +18 -0
- package/dist/interfaces/IFileAttachment.js +2 -0
- package/dist/interfaces/IFileAttachment.js.map +1 -0
- package/dist/interfaces/IFilterOption.d.ts +12 -0
- package/dist/interfaces/IFilterOption.js +2 -0
- package/dist/interfaces/IFilterOption.js.map +1 -0
- package/dist/locales/en/ui.json.d.ts +682 -0
- package/dist/locales/en/ui.json.js +120 -0
- package/dist/locales/en/ui.json.js.map +1 -0
- package/dist/locales/index.d.ts +1362 -0
- package/dist/locales/index.js +7 -0
- package/dist/locales/index.js.map +1 -0
- package/dist/locales/pt/ui.json.d.ts +682 -0
- package/dist/locales/pt/ui.json.js +120 -0
- package/dist/locales/pt/ui.json.js.map +1 -0
- package/dist/motion/index.d.ts +2 -0
- package/dist/motion/index.js +17 -0
- package/dist/motion/index.js.map +1 -0
- package/dist/motion/motionPresets.d.ts +44 -0
- package/dist/motion/motionPresets.js +67 -0
- package/dist/motion/motionPresets.js.map +1 -0
- package/dist/motion/motionTokens.d.ts +40 -0
- package/dist/motion/motionTokens.js +29 -0
- package/dist/motion/motionTokens.js.map +1 -0
- package/package.json +245 -0
- package/src/assets/fonts/LICENSE-Inter.txt +92 -0
- package/src/assets/fonts/LICENSE-MaterialSymbols.txt +202 -0
- package/src/assets/fonts/LICENSE-Virgil.txt +45 -0
- package/src/assets/fonts/inter-latin-ext.woff2 +0 -0
- package/src/assets/fonts/inter-latin.woff2 +0 -0
- package/src/assets/fonts/material-symbols-outlined.woff2 +0 -0
- package/src/assets/fonts/virgil.woff2 +0 -0
- package/src/assets/styles/base.css +585 -0
- package/src/assets/styles/index.css +1 -0
- package/src/assets/styles/theme.css +453 -0
- package/tailwind-plugins/glass.js +162 -0
- package/tailwind.preset.js +392 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useRef, useEffect, useCallback } from "react";
|
|
3
|
+
import classNames from "classnames";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
5
|
+
import ControlledInput from "../Form/ControlledInput.js";
|
|
6
|
+
import ControlledTooltip from "../UI/ControlledTooltip.js";
|
|
7
|
+
import LoadingSpinner from "../UI/LoadingSpinner.js";
|
|
8
|
+
import { MaterialSymbol } from "../UI/MaterialSymbol/index.js";
|
|
9
|
+
import { formatFilter } from "../../helpers/stringHelpers.js";
|
|
10
|
+
import { useDebounce } from "../../hooks/useDebounce.js";
|
|
11
|
+
function UnifiedSearchBar(props) {
|
|
12
|
+
const { t } = useTranslation("ui");
|
|
13
|
+
const {
|
|
14
|
+
mode = "default",
|
|
15
|
+
label = t("actions.search"),
|
|
16
|
+
disabled = false,
|
|
17
|
+
autoFocus = false,
|
|
18
|
+
debounceTime = 3e3,
|
|
19
|
+
initialValue = "",
|
|
20
|
+
onClearFilter,
|
|
21
|
+
minSearchLength = 2,
|
|
22
|
+
showClearButton = true,
|
|
23
|
+
className,
|
|
24
|
+
containerClassName,
|
|
25
|
+
onSearchTermChange,
|
|
26
|
+
selectedFilters
|
|
27
|
+
} = props;
|
|
28
|
+
const [searchTerm, setSearchTerm] = useState(initialValue || "");
|
|
29
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
30
|
+
const userInteracted = useRef(false);
|
|
31
|
+
const inputRef = useRef(null);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (selectedFilters?.textSearch && selectedFilters.textSearch !== searchTerm) {
|
|
34
|
+
setSearchTerm(selectedFilters.textSearch);
|
|
35
|
+
userInteracted.current = true;
|
|
36
|
+
}
|
|
37
|
+
}, [selectedFilters?.textSearch]);
|
|
38
|
+
const executeArraySearch = useCallback(
|
|
39
|
+
(term) => {
|
|
40
|
+
if (mode !== "default") return;
|
|
41
|
+
const { searchableItems, searchKeys, setFilteredItems, useOnlyKeyword } = props;
|
|
42
|
+
setIsLoading(false);
|
|
43
|
+
if (onSearchTermChange) {
|
|
44
|
+
onSearchTermChange(term);
|
|
45
|
+
}
|
|
46
|
+
if (useOnlyKeyword) {
|
|
47
|
+
setFilteredItems([term]);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (!searchableItems) return;
|
|
51
|
+
if (!term) {
|
|
52
|
+
setFilteredItems(searchableItems || []);
|
|
53
|
+
if (onClearFilter) onClearFilter();
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const filteredData = searchableItems.filter(
|
|
57
|
+
(item) => searchKeys.some((key) => formatFilter(String(item[key] ?? ""), term))
|
|
58
|
+
);
|
|
59
|
+
setFilteredItems(filteredData || []);
|
|
60
|
+
},
|
|
61
|
+
[mode, props, onClearFilter]
|
|
62
|
+
);
|
|
63
|
+
const executeCallbackSearch = useCallback(
|
|
64
|
+
(term) => {
|
|
65
|
+
if (mode !== "callback") return;
|
|
66
|
+
const { filterCallback } = props;
|
|
67
|
+
setIsLoading(false);
|
|
68
|
+
if (!userInteracted.current && !initialValue) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (term.length < minSearchLength && term.length > 0) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
filterCallback(term);
|
|
75
|
+
},
|
|
76
|
+
[mode, props, initialValue, minSearchLength]
|
|
77
|
+
);
|
|
78
|
+
const executeSearch = useCallback(
|
|
79
|
+
(term) => {
|
|
80
|
+
switch (mode) {
|
|
81
|
+
case "default":
|
|
82
|
+
executeArraySearch(term);
|
|
83
|
+
break;
|
|
84
|
+
case "callback":
|
|
85
|
+
executeCallbackSearch(term);
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
[mode, executeArraySearch, executeCallbackSearch]
|
|
90
|
+
);
|
|
91
|
+
const { debouncedCallback: debouncedFilter, cancel } = useDebounce(
|
|
92
|
+
executeSearch,
|
|
93
|
+
{ delay: debounceTime }
|
|
94
|
+
);
|
|
95
|
+
const handleSearchChange = (e) => {
|
|
96
|
+
const value = e.target.value;
|
|
97
|
+
userInteracted.current = true;
|
|
98
|
+
setSearchTerm(value);
|
|
99
|
+
setIsLoading(true);
|
|
100
|
+
debouncedFilter(value);
|
|
101
|
+
};
|
|
102
|
+
const handleKeyDown = (e) => {
|
|
103
|
+
if (e.key !== " " || mode !== "default") return;
|
|
104
|
+
e.preventDefault();
|
|
105
|
+
e.stopPropagation();
|
|
106
|
+
const input = inputRef.current;
|
|
107
|
+
const start = input?.selectionStart ?? searchTerm.length;
|
|
108
|
+
const end = input?.selectionEnd ?? searchTerm.length;
|
|
109
|
+
const value = `${searchTerm.slice(0, start)} ${searchTerm.slice(end)}`;
|
|
110
|
+
setSearchTerm(value);
|
|
111
|
+
setIsLoading(true);
|
|
112
|
+
debouncedFilter(value);
|
|
113
|
+
window.requestAnimationFrame(() => input?.setSelectionRange(start + 1, start + 1));
|
|
114
|
+
};
|
|
115
|
+
const clearFilter = () => {
|
|
116
|
+
userInteracted.current = true;
|
|
117
|
+
setSearchTerm("");
|
|
118
|
+
setIsLoading(false);
|
|
119
|
+
cancel();
|
|
120
|
+
if (onClearFilter) {
|
|
121
|
+
onClearFilter();
|
|
122
|
+
} else if (mode === "callback") {
|
|
123
|
+
props.filterCallback("");
|
|
124
|
+
} else if (mode === "default") {
|
|
125
|
+
executeArraySearch("");
|
|
126
|
+
}
|
|
127
|
+
if (inputRef.current) {
|
|
128
|
+
inputRef.current.focus();
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
const handleInputClick = (e) => {
|
|
132
|
+
e.stopPropagation();
|
|
133
|
+
};
|
|
134
|
+
const getContainerClassName = () => {
|
|
135
|
+
if (containerClassName) return containerClassName;
|
|
136
|
+
switch (mode) {
|
|
137
|
+
case "callback":
|
|
138
|
+
return "my-2 mb-4 flex items-center gap-x-2";
|
|
139
|
+
default:
|
|
140
|
+
return "relative flex gap-x-2";
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
return /* @__PURE__ */ jsx("div", { className: getContainerClassName(), children: /* @__PURE__ */ jsx(
|
|
144
|
+
ControlledInput,
|
|
145
|
+
{
|
|
146
|
+
className: classNames("text-ellipsis pr-20", className),
|
|
147
|
+
label,
|
|
148
|
+
rightSlot: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
149
|
+
isLoading && /* @__PURE__ */ jsx(LoadingSpinner, { size: 3 }),
|
|
150
|
+
searchTerm && !isLoading && showClearButton && /* @__PURE__ */ jsx(ControlledTooltip, { content: t("unifiedSearchBar.clearFilter"), children: /* @__PURE__ */ jsx("div", { onClick: clearFilter, className: "mt-1 cursor-pointer", children: /* @__PURE__ */ jsx(MaterialSymbol, { icon: "close_small", size: 20, color: "rgb(var(--color-foreground-subtle))" }) }) }),
|
|
151
|
+
/* @__PURE__ */ jsx(MaterialSymbol, { icon: "search", size: 18, color: "rgb(var(--color-foreground-subtle))" })
|
|
152
|
+
] }),
|
|
153
|
+
value: searchTerm,
|
|
154
|
+
onChange: handleSearchChange,
|
|
155
|
+
onKeyDown: handleKeyDown,
|
|
156
|
+
disabled,
|
|
157
|
+
autoFocus,
|
|
158
|
+
onClick: handleInputClick,
|
|
159
|
+
inputRef,
|
|
160
|
+
tabIndex: mode === "callback" ? -1 : void 0
|
|
161
|
+
}
|
|
162
|
+
) });
|
|
163
|
+
}
|
|
164
|
+
export {
|
|
165
|
+
UnifiedSearchBar as default
|
|
166
|
+
};
|
|
167
|
+
//# sourceMappingURL=UnifiedSearchBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnifiedSearchBar.js","sources":["../../../src/components/Search/UnifiedSearchBar.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport ControlledInput from '@/components/Form/ControlledInput';\nimport ControlledTooltip from '@/components/UI/ControlledTooltip';\nimport LoadingSpinner from '@/components/UI/LoadingSpinner';\nimport { MaterialSymbol } from '@/components/UI/MaterialSymbol';\nimport { formatFilter } from '@/helpers/stringHelpers';\nimport { useDebounce } from '@/hooks/useDebounce';\n\ninterface IUnifiedSearchBarSelectedFilters {\n textSearch?: string | null;\n}\n\ninterface IBaseSearchBarProps {\n label?: string;\n disabled?: boolean;\n autoFocus?: boolean;\n className?: string;\n debounceTime?: number;\n initialValue?: string;\n onClearFilter?: () => void;\n minSearchLength?: number;\n showClearButton?: boolean;\n containerClassName?: string;\n onSearchTermChange?: (searchTerm: string) => void;\n selectedFilters?: IUnifiedSearchBarSelectedFilters;\n}\n\ninterface IArraySearchBarProps<T> extends IBaseSearchBarProps {\n mode: 'default';\n searchableItems: Array<T> | null;\n searchKeys: Array<keyof T>;\n setFilteredItems: (filteredItems: Array<T>) => void;\n useOnlyKeyword?: boolean;\n}\n\ninterface ICallbackSearchBarProps extends IBaseSearchBarProps {\n mode: 'callback';\n filterCallback: (value: string) => void;\n}\n\ntype TUnifiedSearchBarProps<T> = IArraySearchBarProps<T> | ICallbackSearchBarProps;\n\nfunction UnifiedSearchBar<T>(props: TUnifiedSearchBarProps<T>) {\n const { t } = useTranslation('ui');\n const {\n mode = 'default',\n label = t('actions.search'),\n disabled = false,\n autoFocus = false,\n debounceTime = 3000,\n initialValue = '',\n onClearFilter,\n minSearchLength = 2,\n showClearButton = true,\n className,\n containerClassName,\n onSearchTermChange,\n selectedFilters,\n } = props;\n\n const [searchTerm, setSearchTerm] = useState(initialValue || '');\n const [isLoading, setIsLoading] = useState(false);\n const userInteracted = useRef(false);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (selectedFilters?.textSearch && selectedFilters.textSearch !== searchTerm) {\n setSearchTerm(selectedFilters.textSearch);\n userInteracted.current = true;\n }\n }, [selectedFilters?.textSearch]);\n\n const executeArraySearch = useCallback(\n (term: string) => {\n if (mode !== 'default') return;\n\n const { searchableItems, searchKeys, setFilteredItems, useOnlyKeyword } = props as IArraySearchBarProps<T>;\n\n setIsLoading(false);\n\n if (onSearchTermChange) {\n onSearchTermChange(term);\n }\n\n if (useOnlyKeyword) {\n setFilteredItems([term as unknown as T]);\n return;\n }\n\n if (!searchableItems) return;\n\n if (!term) {\n setFilteredItems(searchableItems || []);\n if (onClearFilter) onClearFilter();\n return;\n }\n\n const filteredData = searchableItems.filter((item) =>\n searchKeys.some((key) => formatFilter(String(item[key] ?? ''), term)),\n );\n\n setFilteredItems(filteredData || []);\n },\n [mode, props, onClearFilter],\n );\n\n const executeCallbackSearch = useCallback(\n (term: string) => {\n if (mode !== 'callback') return;\n\n const { filterCallback } = props as ICallbackSearchBarProps;\n\n setIsLoading(false);\n\n if (!userInteracted.current && !initialValue) {\n return;\n }\n\n if (term.length < minSearchLength && term.length > 0) {\n return;\n }\n\n filterCallback(term);\n },\n [mode, props, initialValue, minSearchLength],\n );\n\n const executeSearch = useCallback(\n (term: string) => {\n switch (mode) {\n case 'default':\n executeArraySearch(term);\n break;\n case 'callback':\n executeCallbackSearch(term);\n break;\n }\n },\n [mode, executeArraySearch, executeCallbackSearch],\n );\n\n const { debouncedCallback: debouncedFilter, cancel } = useDebounce(\n executeSearch as (...args: Array<unknown>) => unknown,\n { delay: debounceTime },\n );\n\n const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n userInteracted.current = true;\n setSearchTerm(value);\n setIsLoading(true);\n debouncedFilter(value);\n };\n\n /**\n * Dentro do menu do `ControlledSelect` a barra de espaço é atalho de seleção do\n * item em foco, então ela não chega ao campo. O espaço é escrito aqui à mão, na\n * posição do cursor, e o evento é barrado dos dois lados: sem `preventDefault` o\n * navegador escreveria um segundo espaço quando o menu não interceptasse.\n */\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key !== ' ' || mode !== 'default') return;\n\n e.preventDefault();\n e.stopPropagation();\n\n const input = inputRef.current;\n const start = input?.selectionStart ?? searchTerm.length;\n const end = input?.selectionEnd ?? searchTerm.length;\n const value = `${searchTerm.slice(0, start)} ${searchTerm.slice(end)}`;\n\n setSearchTerm(value);\n setIsLoading(true);\n debouncedFilter(value);\n\n // O cursor volta para depois do espaço só quando o valor novo já pintou.\n window.requestAnimationFrame(() => input?.setSelectionRange(start + 1, start + 1));\n };\n\n const clearFilter = () => {\n userInteracted.current = true;\n setSearchTerm('');\n setIsLoading(false);\n cancel();\n\n if (onClearFilter) {\n onClearFilter();\n } else if (mode === 'callback') {\n (props as ICallbackSearchBarProps).filterCallback('');\n } else if (mode === 'default') {\n executeArraySearch('');\n }\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n };\n\n const handleInputClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n };\n\n const getContainerClassName = () => {\n if (containerClassName) return containerClassName;\n\n switch (mode) {\n case 'callback':\n return 'my-2 mb-4 flex items-center gap-x-2';\n default:\n return 'relative flex gap-x-2';\n }\n };\n\n return (\n <div className={getContainerClassName()}>\n <ControlledInput\n // A busca costuma viver em uma largura fixa (a toolbar da DataTable usa w-72): com\n // `text-ellipsis` um rótulo longo termina em reticências em vez de ser cortado no meio.\n className={classNames('text-ellipsis pr-20', className)}\n label={label}\n rightSlot={\n <>\n {isLoading && <LoadingSpinner size={3} />}\n\n {searchTerm && !isLoading && showClearButton && (\n <ControlledTooltip content={t('unifiedSearchBar.clearFilter')}>\n <div onClick={clearFilter} className=\"mt-1 cursor-pointer\">\n <MaterialSymbol icon=\"close_small\" size={20} color=\"rgb(var(--color-foreground-subtle))\" />\n </div>\n </ControlledTooltip>\n )}\n\n <MaterialSymbol icon=\"search\" size={18} color=\"rgb(var(--color-foreground-subtle))\" />\n </>\n }\n value={searchTerm}\n onChange={handleSearchChange}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n autoFocus={autoFocus}\n onClick={handleInputClick}\n inputRef={inputRef}\n tabIndex={mode === 'callback' ? -1 : undefined}\n />\n </div>\n );\n}\n\nexport default UnifiedSearchBar;\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TFilterField, TFilterValues } from './filterTypes';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export interface IActiveFiltersBarProps {
|
|
4
|
+
fields: Array<TFilterField>;
|
|
5
|
+
values: TFilterValues;
|
|
6
|
+
onRemove: (key: string) => void;
|
|
7
|
+
onClearAll: () => void;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Applied filters, always visible. Replaces the hover-only tooltip that used
|
|
12
|
+
* to be the single way to find out what was filtering the list.
|
|
13
|
+
*/
|
|
14
|
+
declare const ActiveFiltersBar: React.FC<IActiveFiltersBarProps>;
|
|
15
|
+
export default ActiveFiltersBar;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { useTranslation } from "react-i18next";
|
|
4
|
+
import ControlledButton from "../../Form/ControlledButton.js";
|
|
5
|
+
import OutlinedChip from "../../UI/Chips/OutlinedChip.js";
|
|
6
|
+
import { MaterialSymbol } from "../../UI/MaterialSymbol/index.js";
|
|
7
|
+
import { getActiveFilterFields, formatFilterValue } from "./filterValues.js";
|
|
8
|
+
const ActiveFiltersBar = ({ fields, values, onRemove, onClearAll, className }) => {
|
|
9
|
+
const { t } = useTranslation("ui");
|
|
10
|
+
const activeFields = getActiveFilterFields(fields ?? [], values ?? {});
|
|
11
|
+
if (activeFields.length === 0) return null;
|
|
12
|
+
return /* @__PURE__ */ jsxs("div", { className: classNames("flex flex-wrap items-center gap-2", className), role: "status", "aria-live": "polite", children: [
|
|
13
|
+
activeFields.map((field) => {
|
|
14
|
+
const label = formatFilterValue(field, values?.[field.key]);
|
|
15
|
+
return /* @__PURE__ */ jsx(
|
|
16
|
+
OutlinedChip,
|
|
17
|
+
{
|
|
18
|
+
label: label ? `${field.title}: ${label}` : field.title,
|
|
19
|
+
tone: "purple",
|
|
20
|
+
variant: "soft",
|
|
21
|
+
size: "sm",
|
|
22
|
+
preserveLabelCase: true,
|
|
23
|
+
truncate: true,
|
|
24
|
+
canClose: true,
|
|
25
|
+
onClose: () => onRemove(field.key),
|
|
26
|
+
tooltip: label ? `${field.title}: ${label}` : void 0
|
|
27
|
+
},
|
|
28
|
+
field.key
|
|
29
|
+
);
|
|
30
|
+
}),
|
|
31
|
+
activeFields.length > 1 && /* @__PURE__ */ jsxs(
|
|
32
|
+
ControlledButton,
|
|
33
|
+
{
|
|
34
|
+
defaultHtmlButton: true,
|
|
35
|
+
onClick: onClearAll,
|
|
36
|
+
className: "inline-flex items-center gap-x-1 rounded-full px-2 py-1 text-xs font-medium text-foreground-subtle transition-colors hover:bg-muted-hover hover:text-foreground-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-border",
|
|
37
|
+
children: [
|
|
38
|
+
/* @__PURE__ */ jsx(MaterialSymbol, { icon: "filter_list_off", size: 14 }),
|
|
39
|
+
t("filters.clearAll")
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
)
|
|
43
|
+
] });
|
|
44
|
+
};
|
|
45
|
+
export {
|
|
46
|
+
ActiveFiltersBar as default
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=ActiveFiltersBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActiveFiltersBar.js","sources":["../../../../src/components/Search/filters/ActiveFiltersBar.tsx"],"sourcesContent":["import * as React from 'react';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport ControlledButton from '@/components/Form/ControlledButton';\nimport OutlinedChip from '@/components/UI/Chips/OutlinedChip';\nimport { MaterialSymbol } from '@/components/UI/MaterialSymbol';\n\nimport { TFilterField, TFilterValues } from './filterTypes';\nimport { formatFilterValue, getActiveFilterFields } from './filterValues';\n\nexport interface IActiveFiltersBarProps {\n fields: Array<TFilterField>;\n values: TFilterValues;\n onRemove: (key: string) => void;\n onClearAll: () => void;\n className?: string;\n}\n\n/**\n * Applied filters, always visible. Replaces the hover-only tooltip that used\n * to be the single way to find out what was filtering the list.\n */\nconst ActiveFiltersBar: React.FC<IActiveFiltersBarProps> = ({ fields, values, onRemove, onClearAll, className }) => {\n const { t } = useTranslation('ui');\n const activeFields = getActiveFilterFields(fields ?? [], values ?? {});\n\n if (activeFields.length === 0) return null;\n\n return (\n <div className={classNames('flex flex-wrap items-center gap-2', className)} role=\"status\" aria-live=\"polite\">\n {activeFields.map((field) => {\n const label = formatFilterValue(field, values?.[field.key]);\n\n return (\n <OutlinedChip\n key={field.key}\n label={label ? `${field.title}: ${label}` : field.title}\n tone=\"purple\"\n variant=\"soft\"\n size=\"sm\"\n preserveLabelCase\n truncate\n canClose\n onClose={() => onRemove(field.key)}\n tooltip={label ? `${field.title}: ${label}` : undefined}\n />\n );\n })}\n\n {activeFields.length > 1 && (\n <ControlledButton\n defaultHtmlButton\n onClick={onClearAll}\n className=\"inline-flex items-center gap-x-1 rounded-full px-2 py-1 text-xs font-medium text-foreground-subtle transition-colors hover:bg-muted-hover hover:text-foreground-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-border\"\n >\n <MaterialSymbol icon=\"filter_list_off\" size={14} />\n {t('filters.clearAll')}\n </ControlledButton>\n )}\n </div>\n );\n};\n\nexport default ActiveFiltersBar;\n"],"names":[],"mappings":";;;;;;;AAuBA,MAAM,mBAAqD,CAAC,EAAE,QAAQ,QAAQ,UAAU,YAAY,gBAAgB;AAClH,QAAM,EAAE,EAAA,IAAM,eAAe,IAAI;AACjC,QAAM,eAAe,sBAAsB,UAAU,CAAA,GAAI,UAAU,CAAA,CAAE;AAErE,MAAI,aAAa,WAAW,EAAG,QAAO;AAEtC,SACE,qBAAC,OAAA,EAAI,WAAW,WAAW,qCAAqC,SAAS,GAAG,MAAK,UAAS,aAAU,UACjG,UAAA;AAAA,IAAA,aAAa,IAAI,CAAC,UAAU;AAC3B,YAAM,QAAQ,kBAAkB,OAAO,SAAS,MAAM,GAAG,CAAC;AAE1D,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,OAAO,QAAQ,GAAG,MAAM,KAAK,KAAK,KAAK,KAAK,MAAM;AAAA,UAClD,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,mBAAiB;AAAA,UACjB,UAAQ;AAAA,UACR,UAAQ;AAAA,UACR,SAAS,MAAM,SAAS,MAAM,GAAG;AAAA,UACjC,SAAS,QAAQ,GAAG,MAAM,KAAK,KAAK,KAAK,KAAK;AAAA,QAAA;AAAA,QATzC,MAAM;AAAA,MAAA;AAAA,IAYjB,CAAC;AAAA,IAEA,aAAa,SAAS,KACrB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,mBAAiB;AAAA,QACjB,SAAS;AAAA,QACT,WAAU;AAAA,QAEV,UAAA;AAAA,UAAA,oBAAC,gBAAA,EAAe,MAAK,mBAAkB,MAAM,IAAI;AAAA,UAChD,EAAE,kBAAkB;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACvB,GAEJ;AAEJ;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TFilterField, TFilterValues } from './filterTypes';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export interface IFilterChipsRowProps {
|
|
4
|
+
fields: Array<TFilterField>;
|
|
5
|
+
values: TFilterValues;
|
|
6
|
+
onValueChange: (key: string, value: unknown) => void;
|
|
7
|
+
onClearAll: () => void;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Horizontal chip bar for toolbars with a handful of quick filters. Applies on
|
|
13
|
+
* pick (no draft), which is the interaction users expect from a chip row, and
|
|
14
|
+
* is driven by the same schema as the drawer.
|
|
15
|
+
*/
|
|
16
|
+
declare const FilterChipsRow: React.FC<IFilterChipsRowProps>;
|
|
17
|
+
export default FilterChipsRow;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { useTranslation } from "react-i18next";
|
|
4
|
+
import ControlledButton from "../../Form/ControlledButton.js";
|
|
5
|
+
import ControlledSwitch from "../../Form/ControlledSwitch.js";
|
|
6
|
+
import { ControlledMenuRoot, ControlledMenuHandler, ControlledMenuList, ControlledMenuItem } from "../../UI/ControlledMenu.js";
|
|
7
|
+
import { MaterialSymbol } from "../../UI/MaterialSymbol/index.js";
|
|
8
|
+
import { countActiveFilters, isFilterValueEmpty } from "./filterValues.js";
|
|
9
|
+
const FilterChipDropdown = ({
|
|
10
|
+
label,
|
|
11
|
+
options,
|
|
12
|
+
value,
|
|
13
|
+
isActive,
|
|
14
|
+
disabled,
|
|
15
|
+
onPick
|
|
16
|
+
}) => {
|
|
17
|
+
const currentLabel = options.find((option) => option.value === value)?.label ?? "";
|
|
18
|
+
return /* @__PURE__ */ jsxs(ControlledMenuRoot, { placement: "bottom-start", dismiss: { itemPress: true }, children: [
|
|
19
|
+
/* @__PURE__ */ jsx(ControlledMenuHandler, { children: /* @__PURE__ */ jsxs(
|
|
20
|
+
ControlledButton,
|
|
21
|
+
{
|
|
22
|
+
defaultHtmlButton: true,
|
|
23
|
+
disabled,
|
|
24
|
+
className: classNames(
|
|
25
|
+
"flex h-8 items-center gap-1.5 rounded-lg border px-2.5 text-xs font-medium outline-none transition-colors focus-visible:ring-2 focus-visible:ring-brand-border disabled:text-foreground-faint",
|
|
26
|
+
isActive ? "border-brand-border bg-brand-soft text-brand-emphasis hover:bg-brand-soft" : "border-border bg-surface text-foreground-muted hover:bg-muted"
|
|
27
|
+
),
|
|
28
|
+
children: [
|
|
29
|
+
/* @__PURE__ */ jsx("span", { className: isActive ? "text-brand-emphasis" : "text-foreground-faint", children: label }),
|
|
30
|
+
isActive && /* @__PURE__ */ jsx("span", { className: "max-w-32 truncate font-semibold", children: currentLabel }),
|
|
31
|
+
/* @__PURE__ */ jsx(
|
|
32
|
+
MaterialSymbol,
|
|
33
|
+
{
|
|
34
|
+
icon: "expand_more",
|
|
35
|
+
size: 14,
|
|
36
|
+
className: classNames("shrink-0", isActive ? "text-brand-emphasis" : "text-foreground-faint")
|
|
37
|
+
}
|
|
38
|
+
)
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
) }),
|
|
42
|
+
/* @__PURE__ */ jsx(ControlledMenuList, { className: "zIndexMax flex max-h-48 min-w-44 flex-col overflow-hidden p-0", children: /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto p-1 outline-none", children: options.map((option) => /* @__PURE__ */ jsx(
|
|
43
|
+
ControlledMenuItem,
|
|
44
|
+
{
|
|
45
|
+
onClick: () => onPick(option.value),
|
|
46
|
+
className: classNames("text-sm", {
|
|
47
|
+
"bg-brand-soft font-semibold text-brand-emphasis hover:!bg-brand-soft": value === option.value
|
|
48
|
+
}),
|
|
49
|
+
children: option.label
|
|
50
|
+
},
|
|
51
|
+
option.value || "__all"
|
|
52
|
+
)) }) })
|
|
53
|
+
] });
|
|
54
|
+
};
|
|
55
|
+
const FilterChipsRow = ({
|
|
56
|
+
fields,
|
|
57
|
+
values,
|
|
58
|
+
onValueChange,
|
|
59
|
+
onClearAll,
|
|
60
|
+
disabled,
|
|
61
|
+
className
|
|
62
|
+
}) => {
|
|
63
|
+
const { t } = useTranslation("ui");
|
|
64
|
+
const safeFields = Array.isArray(fields) ? fields : [];
|
|
65
|
+
const activeCount = countActiveFilters(safeFields, values ?? {});
|
|
66
|
+
return /* @__PURE__ */ jsxs("div", { className: classNames("flex shrink-0 flex-wrap items-center gap-2", className), children: [
|
|
67
|
+
safeFields.map((field) => {
|
|
68
|
+
const value = values?.[field.key];
|
|
69
|
+
const isActive = !isFilterValueEmpty(field, value);
|
|
70
|
+
if (field.kind === "boolean") {
|
|
71
|
+
return /* @__PURE__ */ jsx(
|
|
72
|
+
ControlledSwitch,
|
|
73
|
+
{
|
|
74
|
+
checked: value === true,
|
|
75
|
+
disabled: disabled || field.disabled,
|
|
76
|
+
label: field.label ?? field.title,
|
|
77
|
+
onChange: (checked) => onValueChange(field.key, checked)
|
|
78
|
+
},
|
|
79
|
+
field.key
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
if (field.kind !== "select" && field.kind !== "radio") return null;
|
|
83
|
+
return /* @__PURE__ */ jsx(
|
|
84
|
+
FilterChipDropdown,
|
|
85
|
+
{
|
|
86
|
+
label: field.title,
|
|
87
|
+
options: field.options ?? [],
|
|
88
|
+
value: typeof value === "string" ? value : "",
|
|
89
|
+
isActive,
|
|
90
|
+
disabled: disabled || field.disabled,
|
|
91
|
+
onPick: (next) => onValueChange(field.key, next)
|
|
92
|
+
},
|
|
93
|
+
field.key
|
|
94
|
+
);
|
|
95
|
+
}),
|
|
96
|
+
activeCount > 0 && /* @__PURE__ */ jsxs(
|
|
97
|
+
ControlledButton,
|
|
98
|
+
{
|
|
99
|
+
defaultHtmlButton: true,
|
|
100
|
+
onClick: onClearAll,
|
|
101
|
+
className: "inline-flex h-8 items-center gap-1 rounded-lg px-2 text-xs font-medium text-foreground-subtle transition-colors hover:bg-muted-hover hover:text-foreground-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-border",
|
|
102
|
+
children: [
|
|
103
|
+
/* @__PURE__ */ jsx(MaterialSymbol, { icon: "filter_list_off", size: 14 }),
|
|
104
|
+
t("filters.clearAll")
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
)
|
|
108
|
+
] });
|
|
109
|
+
};
|
|
110
|
+
export {
|
|
111
|
+
FilterChipsRow as default
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=FilterChipsRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterChipsRow.js","sources":["../../../../src/components/Search/filters/FilterChipsRow.tsx"],"sourcesContent":["import * as React from 'react';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport ControlledButton from '@/components/Form/ControlledButton';\nimport ControlledSwitch from '@/components/Form/ControlledSwitch';\nimport {\n ControlledMenuHandler,\n ControlledMenuItem,\n ControlledMenuList,\n ControlledMenuRoot,\n} from '@/components/UI/ControlledMenu';\nimport { MaterialSymbol } from '@/components/UI/MaterialSymbol';\nimport { IFilterOption } from '@/interfaces/IFilterOption';\n\nimport { TFilterField, TFilterValues } from './filterTypes';\nimport { countActiveFilters, isFilterValueEmpty } from './filterValues';\n\ninterface IFilterChipDropdownProps {\n label: string;\n options: Array<IFilterOption>;\n value: string;\n isActive: boolean;\n disabled?: boolean;\n onPick: (value: string) => void;\n}\n\n/**\n * A single dropdown chip. The active state is carried by border, background,\n * weight and the visible value, so it reads without hovering; hover only\n * deepens the same purple.\n */\nconst FilterChipDropdown: React.FC<IFilterChipDropdownProps> = ({\n label,\n options,\n value,\n isActive,\n disabled,\n onPick,\n}) => {\n const currentLabel = options.find((option) => option.value === value)?.label ?? '';\n\n return (\n <ControlledMenuRoot placement=\"bottom-start\" dismiss={{ itemPress: true }}>\n <ControlledMenuHandler>\n <ControlledButton\n defaultHtmlButton\n disabled={disabled}\n className={classNames(\n 'flex h-8 items-center gap-1.5 rounded-lg border px-2.5 text-xs font-medium outline-none transition-colors focus-visible:ring-2 focus-visible:ring-brand-border disabled:text-foreground-faint',\n isActive\n ? 'border-brand-border bg-brand-soft text-brand-emphasis hover:bg-brand-soft'\n : 'border-border bg-surface text-foreground-muted hover:bg-muted',\n )}\n >\n <span className={isActive ? 'text-brand-emphasis' : 'text-foreground-faint'}>{label}</span>\n {isActive && <span className=\"max-w-32 truncate font-semibold\">{currentLabel}</span>}\n <MaterialSymbol\n icon=\"expand_more\"\n size={14}\n className={classNames('shrink-0', isActive ? 'text-brand-emphasis' : 'text-foreground-faint')}\n />\n </ControlledButton>\n </ControlledMenuHandler>\n <ControlledMenuList className=\"zIndexMax flex max-h-48 min-w-44 flex-col overflow-hidden p-0\">\n <div className=\"flex-1 overflow-y-auto p-1 outline-none\">\n {options.map((option) => (\n <ControlledMenuItem\n key={option.value || '__all'}\n onClick={() => onPick(option.value)}\n className={classNames('text-sm', {\n 'bg-brand-soft font-semibold text-brand-emphasis hover:!bg-brand-soft': value === option.value,\n })}\n >\n {option.label}\n </ControlledMenuItem>\n ))}\n </div>\n </ControlledMenuList>\n </ControlledMenuRoot>\n );\n};\n\nexport interface IFilterChipsRowProps {\n fields: Array<TFilterField>;\n values: TFilterValues;\n onValueChange: (key: string, value: unknown) => void;\n onClearAll: () => void;\n disabled?: boolean;\n className?: string;\n}\n\n/**\n * Horizontal chip bar for toolbars with a handful of quick filters. Applies on\n * pick (no draft), which is the interaction users expect from a chip row, and\n * is driven by the same schema as the drawer.\n */\nconst FilterChipsRow: React.FC<IFilterChipsRowProps> = ({\n fields,\n values,\n onValueChange,\n onClearAll,\n disabled,\n className,\n}) => {\n const { t } = useTranslation('ui');\n const safeFields = Array.isArray(fields) ? fields : [];\n const activeCount = countActiveFilters(safeFields, values ?? {});\n\n return (\n <div className={classNames('flex shrink-0 flex-wrap items-center gap-2', className)}>\n {safeFields.map((field) => {\n const value = values?.[field.key];\n const isActive = !isFilterValueEmpty(field, value);\n\n if (field.kind === 'boolean') {\n return (\n <ControlledSwitch\n key={field.key}\n checked={value === true}\n disabled={disabled || field.disabled}\n label={field.label ?? field.title}\n onChange={(checked) => onValueChange(field.key, checked)}\n />\n );\n }\n\n if (field.kind !== 'select' && field.kind !== 'radio') return null;\n\n return (\n <FilterChipDropdown\n key={field.key}\n label={field.title}\n options={field.options ?? []}\n value={typeof value === 'string' ? value : ''}\n isActive={isActive}\n disabled={disabled || field.disabled}\n onPick={(next) => onValueChange(field.key, next)}\n />\n );\n })}\n\n {activeCount > 0 && (\n <ControlledButton\n defaultHtmlButton\n onClick={onClearAll}\n className=\"inline-flex h-8 items-center gap-1 rounded-lg px-2 text-xs font-medium text-foreground-subtle transition-colors hover:bg-muted-hover hover:text-foreground-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-border\"\n >\n <MaterialSymbol icon=\"filter_list_off\" size={14} />\n {t('filters.clearAll')}\n </ControlledButton>\n )}\n </div>\n );\n};\n\nexport default FilterChipsRow;\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TFilterField, TFilterValues } from './filterTypes';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export interface IFilterControlProps<TField extends TFilterField> {
|
|
4
|
+
field: TField;
|
|
5
|
+
value: unknown;
|
|
6
|
+
values: TFilterValues;
|
|
7
|
+
onChange: (value: unknown) => void;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
interface IFilterFieldControlProps {
|
|
11
|
+
field: TFilterField;
|
|
12
|
+
value: unknown;
|
|
13
|
+
values: TFilterValues;
|
|
14
|
+
onChange: (value: unknown) => void;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
loading?: boolean;
|
|
17
|
+
}
|
|
18
|
+
declare const FilterFieldControl: React.FC<IFilterFieldControlProps>;
|
|
19
|
+
export default FilterFieldControl;
|