@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,149 @@
|
|
|
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 { ControlledSelect } from "../../Form/ControlledSelect.js";
|
|
6
|
+
import ControlledTooltip from "../ControlledTooltip.js";
|
|
7
|
+
import { MaterialSymbol } from "../MaterialSymbol/index.js";
|
|
8
|
+
import { formatNumber } from "../../../helpers/formatHelpers.js";
|
|
9
|
+
const PAGE_SIZE_OPTIONS = [20, 50, 100];
|
|
10
|
+
const DATA_TABLE_MIN_PAGE_SIZE = PAGE_SIZE_OPTIONS[0];
|
|
11
|
+
const PAGE_SIZE_SELECT_OPTIONS = PAGE_SIZE_OPTIONS.map((size) => ({ value: size.toString(), label: size.toString() }));
|
|
12
|
+
const PAGE_WINDOW_RADIUS = 1;
|
|
13
|
+
const ELLIPSIS = "ellipsis";
|
|
14
|
+
const COMPACT_PAGE_SIZE_SELECT = classNames(
|
|
15
|
+
"w-[72px]",
|
|
16
|
+
"[&_.controlled-select-input]:!min-w-0",
|
|
17
|
+
"[&_.controlled-select-container]:!min-w-0",
|
|
18
|
+
"[&_.controlled-select-container]:!h-8",
|
|
19
|
+
"[&_.controlled-select-input]:!py-1",
|
|
20
|
+
"[&_.controlled-select-input]:!text-xs"
|
|
21
|
+
);
|
|
22
|
+
const buildPageItems = (currentPage, numberOfPages) => {
|
|
23
|
+
if (numberOfPages <= 1) return [1];
|
|
24
|
+
const pages = /* @__PURE__ */ new Set([1, numberOfPages]);
|
|
25
|
+
for (let page = currentPage - PAGE_WINDOW_RADIUS; page <= currentPage + PAGE_WINDOW_RADIUS; page += 1) {
|
|
26
|
+
if (page >= 1 && page <= numberOfPages) pages.add(page);
|
|
27
|
+
}
|
|
28
|
+
const sortedPages = [...pages].sort((first, second) => first - second);
|
|
29
|
+
return sortedPages.flatMap((page, index) => {
|
|
30
|
+
const previousPage = sortedPages[index - 1];
|
|
31
|
+
return previousPage !== void 0 && page - previousPage > 1 ? [ELLIPSIS, page] : [page];
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
const DataTablePagination = ({
|
|
35
|
+
pageSize,
|
|
36
|
+
numberOfPages,
|
|
37
|
+
currentPage,
|
|
38
|
+
setCurrentPage,
|
|
39
|
+
onPageSizeChange,
|
|
40
|
+
totalItems
|
|
41
|
+
}) => {
|
|
42
|
+
const { t } = useTranslation("ui");
|
|
43
|
+
const canPrev = currentPage > 1;
|
|
44
|
+
const canNext = currentPage < numberOfPages;
|
|
45
|
+
const pageItems = buildPageItems(currentPage, numberOfPages);
|
|
46
|
+
const stepClass = (enabled) => classNames(
|
|
47
|
+
"flex size-10 items-center justify-center rounded transition-colors tablet:size-8",
|
|
48
|
+
enabled ? "text-foreground-subtle hover:bg-muted-hover" : "text-foreground-faint"
|
|
49
|
+
);
|
|
50
|
+
const pageClass = (isCurrent) => classNames(
|
|
51
|
+
"flex size-10 items-center justify-center rounded text-xs tabular-nums transition-colors tablet:size-8",
|
|
52
|
+
isCurrent ? "bg-brand font-semibold text-brand-fg" : "text-foreground-subtle hover:bg-muted-hover hover:text-foreground-muted"
|
|
53
|
+
);
|
|
54
|
+
const rangeStart = (currentPage - 1) * pageSize + 1;
|
|
55
|
+
const rangeEnd = totalItems != null ? Math.min(currentPage * pageSize, totalItems) : currentPage * pageSize;
|
|
56
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-end gap-x-4 gap-y-2 pb-3 text-xs text-foreground-subtle", children: [
|
|
57
|
+
onPageSizeChange && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
58
|
+
/* @__PURE__ */ jsx("span", { children: t("pagination.resultsPerPage") }),
|
|
59
|
+
/* @__PURE__ */ jsx(
|
|
60
|
+
ControlledSelect,
|
|
61
|
+
{
|
|
62
|
+
options: PAGE_SIZE_SELECT_OPTIONS,
|
|
63
|
+
selectedValue: pageSize.toString(),
|
|
64
|
+
onChangeHook: (selected) => onPageSizeChange(Number(selected)),
|
|
65
|
+
searchable: false,
|
|
66
|
+
clearable: false,
|
|
67
|
+
className: COMPACT_PAGE_SIZE_SELECT
|
|
68
|
+
}
|
|
69
|
+
)
|
|
70
|
+
] }),
|
|
71
|
+
/* @__PURE__ */ jsx("span", { className: "tabular-nums", children: totalItems != null ? t("pagination.range", {
|
|
72
|
+
from: formatNumber(Math.min(rangeStart, rangeEnd)),
|
|
73
|
+
to: formatNumber(rangeEnd),
|
|
74
|
+
total: formatNumber(totalItems)
|
|
75
|
+
}) : t("pagination.pageOf", { current: currentPage, total: numberOfPages }) }),
|
|
76
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-0.5", children: [
|
|
77
|
+
/* @__PURE__ */ jsx(ControlledTooltip, { content: t("pagination.first"), children: /* @__PURE__ */ jsx(
|
|
78
|
+
ControlledButton,
|
|
79
|
+
{
|
|
80
|
+
"aria-label": t("pagination.first"),
|
|
81
|
+
defaultHtmlButton: true,
|
|
82
|
+
disabled: !canPrev,
|
|
83
|
+
onClick: () => setCurrentPage(1),
|
|
84
|
+
className: stepClass(canPrev),
|
|
85
|
+
children: /* @__PURE__ */ jsx(MaterialSymbol, { icon: "first_page", size: 18 })
|
|
86
|
+
}
|
|
87
|
+
) }),
|
|
88
|
+
/* @__PURE__ */ jsx(ControlledTooltip, { content: t("actions.previous"), children: /* @__PURE__ */ jsx(
|
|
89
|
+
ControlledButton,
|
|
90
|
+
{
|
|
91
|
+
"aria-label": t("actions.previous"),
|
|
92
|
+
defaultHtmlButton: true,
|
|
93
|
+
disabled: !canPrev,
|
|
94
|
+
onClick: () => setCurrentPage(currentPage - 1),
|
|
95
|
+
className: stepClass(canPrev),
|
|
96
|
+
children: /* @__PURE__ */ jsx(MaterialSymbol, { icon: "chevron_left", size: 18 })
|
|
97
|
+
}
|
|
98
|
+
) }),
|
|
99
|
+
pageItems.map(
|
|
100
|
+
(item, index) => item === ELLIPSIS ? /* @__PURE__ */ jsx(
|
|
101
|
+
"span",
|
|
102
|
+
{
|
|
103
|
+
className: "flex size-10 items-center justify-center text-foreground-faint tablet:size-8",
|
|
104
|
+
"aria-hidden": true,
|
|
105
|
+
children: t("pagination.gap")
|
|
106
|
+
},
|
|
107
|
+
`data-table-pagination-gap-${index}`
|
|
108
|
+
) : /* @__PURE__ */ jsx(
|
|
109
|
+
ControlledButton,
|
|
110
|
+
{
|
|
111
|
+
defaultHtmlButton: true,
|
|
112
|
+
"aria-current": item === currentPage ? "page" : void 0,
|
|
113
|
+
onClick: () => setCurrentPage(item),
|
|
114
|
+
className: pageClass(item === currentPage),
|
|
115
|
+
children: formatNumber(item)
|
|
116
|
+
},
|
|
117
|
+
`data-table-pagination-page-${item}`
|
|
118
|
+
)
|
|
119
|
+
),
|
|
120
|
+
/* @__PURE__ */ jsx(ControlledTooltip, { content: t("actions.next"), children: /* @__PURE__ */ jsx(
|
|
121
|
+
ControlledButton,
|
|
122
|
+
{
|
|
123
|
+
"aria-label": t("actions.next"),
|
|
124
|
+
defaultHtmlButton: true,
|
|
125
|
+
disabled: !canNext,
|
|
126
|
+
onClick: () => setCurrentPage(currentPage + 1),
|
|
127
|
+
className: stepClass(canNext),
|
|
128
|
+
children: /* @__PURE__ */ jsx(MaterialSymbol, { icon: "chevron_right", size: 18 })
|
|
129
|
+
}
|
|
130
|
+
) }),
|
|
131
|
+
/* @__PURE__ */ jsx(ControlledTooltip, { content: t("pagination.last"), children: /* @__PURE__ */ jsx(
|
|
132
|
+
ControlledButton,
|
|
133
|
+
{
|
|
134
|
+
"aria-label": t("pagination.last"),
|
|
135
|
+
defaultHtmlButton: true,
|
|
136
|
+
disabled: !canNext,
|
|
137
|
+
onClick: () => setCurrentPage(numberOfPages),
|
|
138
|
+
className: stepClass(canNext),
|
|
139
|
+
children: /* @__PURE__ */ jsx(MaterialSymbol, { icon: "last_page", size: 18 })
|
|
140
|
+
}
|
|
141
|
+
) })
|
|
142
|
+
] })
|
|
143
|
+
] });
|
|
144
|
+
};
|
|
145
|
+
export {
|
|
146
|
+
DATA_TABLE_MIN_PAGE_SIZE,
|
|
147
|
+
DataTablePagination as default
|
|
148
|
+
};
|
|
149
|
+
//# sourceMappingURL=DataTablePagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTablePagination.js","sources":["../../../../src/components/UI/DataTable/DataTablePagination.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport ControlledButton from '@/components/Form/ControlledButton';\nimport { ControlledSelect } from '@/components/Form/ControlledSelect';\nimport ControlledTooltip from '@/components/UI/ControlledTooltip';\nimport { MaterialSymbol } from '@/components/UI/MaterialSymbol';\nimport { formatNumber } from '@/helpers/formatHelpers';\n\ninterface IDataTablePaginationProps {\n pageSize: number;\n numberOfPages: number;\n currentPage: number;\n setCurrentPage: (page: number) => void;\n onPageSizeChange?: (pageSize: number) => void;\n totalItems?: number;\n}\n\nconst PAGE_SIZE_OPTIONS = [20, 50, 100];\n\nexport const DATA_TABLE_MIN_PAGE_SIZE = PAGE_SIZE_OPTIONS[0];\nconst PAGE_SIZE_SELECT_OPTIONS = PAGE_SIZE_OPTIONS.map((size) => ({ value: size.toString(), label: size.toString() }));\n\n/** Botões de página ao redor da atual, com as pontas sempre alcançáveis. */\nconst PAGE_WINDOW_RADIUS = 1;\nconst ELLIPSIS = 'ellipsis';\n\n// The shared ControlledSelect trigger ships a wide (min-w-52) field at the default\n// input height. For the pagination we want a compact, discreet picker, so we release\n// the min-widths and shrink the trigger's width and height via arbitrary variants\n// (same technique used elsewhere in the app to shrink this trigger).\nconst COMPACT_PAGE_SIZE_SELECT = classNames(\n 'w-[72px]',\n '[&_.controlled-select-input]:!min-w-0',\n '[&_.controlled-select-container]:!min-w-0',\n '[&_.controlled-select-container]:!h-8',\n '[&_.controlled-select-input]:!py-1',\n '[&_.controlled-select-input]:!text-xs',\n);\n\n/**\n * Páginas visíveis: primeira, última, a atual e uma vizinha de cada lado.\n * As reticências entram só quando existe salto real, então a barra nunca muda\n * de largura a cada clique.\n */\nconst buildPageItems = (currentPage: number, numberOfPages: number): Array<number | typeof ELLIPSIS> => {\n if (numberOfPages <= 1) return [1];\n\n const pages = new Set<number>([1, numberOfPages]);\n for (let page = currentPage - PAGE_WINDOW_RADIUS; page <= currentPage + PAGE_WINDOW_RADIUS; page += 1) {\n if (page >= 1 && page <= numberOfPages) pages.add(page);\n }\n\n const sortedPages = [...pages].sort((first, second) => first - second);\n\n return sortedPages.flatMap((page, index) => {\n const previousPage = sortedPages[index - 1];\n return previousPage !== undefined && page - previousPage > 1 ? [ELLIPSIS, page] : [page];\n });\n};\n\n/**\n * Compact, right-aligned pagination for the DataTable. Deliberately smaller and\n * more discreet than the shared TableComponentPagination.\n */\nconst DataTablePagination: React.FC<IDataTablePaginationProps> = ({\n pageSize,\n numberOfPages,\n currentPage,\n setCurrentPage,\n onPageSizeChange,\n totalItems,\n}) => {\n const { t } = useTranslation('ui');\n\n const canPrev = currentPage > 1;\n const canNext = currentPage < numberOfPages;\n const pageItems = buildPageItems(currentPage, numberOfPages);\n\n // The arrows are the only way to page on touch, so they keep a ~40px target\n // instead of the icon's own 18px box, while staying visually compact.\n const stepClass = (enabled: boolean) =>\n classNames(\n 'flex size-10 items-center justify-center rounded transition-colors tablet:size-8',\n enabled ? 'text-foreground-subtle hover:bg-muted-hover' : 'text-foreground-faint',\n );\n\n const pageClass = (isCurrent: boolean) =>\n classNames(\n 'flex size-10 items-center justify-center rounded text-xs tabular-nums transition-colors tablet:size-8',\n isCurrent\n ? 'bg-brand font-semibold text-brand-fg'\n : 'text-foreground-subtle hover:bg-muted-hover hover:text-foreground-muted',\n );\n\n const rangeStart = (currentPage - 1) * pageSize + 1;\n const rangeEnd = totalItems != null ? Math.min(currentPage * pageSize, totalItems) : currentPage * pageSize;\n\n return (\n <div className=\"flex flex-wrap items-center justify-end gap-x-4 gap-y-2 pb-3 text-xs text-foreground-subtle\">\n {onPageSizeChange && (\n <div className=\"flex items-center gap-1.5\">\n <span>{t('pagination.resultsPerPage')}</span>\n <ControlledSelect\n options={PAGE_SIZE_SELECT_OPTIONS}\n selectedValue={pageSize.toString()}\n onChangeHook={(selected) => onPageSizeChange(Number(selected))}\n searchable={false}\n clearable={false}\n className={COMPACT_PAGE_SIZE_SELECT}\n />\n </div>\n )}\n\n <span className=\"tabular-nums\">\n {totalItems != null\n ? t('pagination.range', {\n from: formatNumber(Math.min(rangeStart, rangeEnd)),\n to: formatNumber(rangeEnd),\n total: formatNumber(totalItems),\n })\n : t('pagination.pageOf', { current: currentPage, total: numberOfPages })}\n </span>\n\n <div className=\"flex items-center gap-0.5\">\n <ControlledTooltip content={t('pagination.first')}>\n <ControlledButton\n aria-label={t('pagination.first')}\n defaultHtmlButton\n disabled={!canPrev}\n onClick={() => setCurrentPage(1)}\n className={stepClass(canPrev)}\n >\n <MaterialSymbol icon=\"first_page\" size={18} />\n </ControlledButton>\n </ControlledTooltip>\n <ControlledTooltip content={t('actions.previous')}>\n <ControlledButton\n aria-label={t('actions.previous')}\n defaultHtmlButton\n disabled={!canPrev}\n onClick={() => setCurrentPage(currentPage - 1)}\n className={stepClass(canPrev)}\n >\n <MaterialSymbol icon=\"chevron_left\" size={18} />\n </ControlledButton>\n </ControlledTooltip>\n\n {pageItems.map((item, index) =>\n item === ELLIPSIS ? (\n <span\n key={`data-table-pagination-gap-${index}`}\n className=\"flex size-10 items-center justify-center text-foreground-faint tablet:size-8\"\n aria-hidden\n >\n {t('pagination.gap')}\n </span>\n ) : (\n <ControlledButton\n key={`data-table-pagination-page-${item}`}\n defaultHtmlButton\n aria-current={item === currentPage ? 'page' : undefined}\n onClick={() => setCurrentPage(item)}\n className={pageClass(item === currentPage)}\n >\n {formatNumber(item)}\n </ControlledButton>\n ),\n )}\n\n <ControlledTooltip content={t('actions.next')}>\n <ControlledButton\n aria-label={t('actions.next')}\n defaultHtmlButton\n disabled={!canNext}\n onClick={() => setCurrentPage(currentPage + 1)}\n className={stepClass(canNext)}\n >\n <MaterialSymbol icon=\"chevron_right\" size={18} />\n </ControlledButton>\n </ControlledTooltip>\n <ControlledTooltip content={t('pagination.last')}>\n <ControlledButton\n aria-label={t('pagination.last')}\n defaultHtmlButton\n disabled={!canNext}\n onClick={() => setCurrentPage(numberOfPages)}\n className={stepClass(canNext)}\n >\n <MaterialSymbol icon=\"last_page\" size={18} />\n </ControlledButton>\n </ControlledTooltip>\n </div>\n </div>\n );\n};\n\nexport default DataTablePagination;\n"],"names":[],"mappings":";;;;;;;;AAkBA,MAAM,oBAAoB,CAAC,IAAI,IAAI,GAAG;AAE/B,MAAM,2BAA2B,kBAAkB,CAAC;AAC3D,MAAM,2BAA2B,kBAAkB,IAAI,CAAC,UAAU,EAAE,OAAO,KAAK,SAAA,GAAY,OAAO,KAAK,SAAA,IAAa;AAGrH,MAAM,qBAAqB;AAC3B,MAAM,WAAW;AAMjB,MAAM,2BAA2B;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAOA,MAAM,iBAAiB,CAAC,aAAqB,kBAA2D;AACtG,MAAI,iBAAiB,EAAG,QAAO,CAAC,CAAC;AAEjC,QAAM,QAAQ,oBAAI,IAAY,CAAC,GAAG,aAAa,CAAC;AAChD,WAAS,OAAO,cAAc,oBAAoB,QAAQ,cAAc,oBAAoB,QAAQ,GAAG;AACrG,QAAI,QAAQ,KAAK,QAAQ,cAAe,OAAM,IAAI,IAAI;AAAA,EACxD;AAEA,QAAM,cAAc,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,OAAO,WAAW,QAAQ,MAAM;AAErE,SAAO,YAAY,QAAQ,CAAC,MAAM,UAAU;AAC1C,UAAM,eAAe,YAAY,QAAQ,CAAC;AAC1C,WAAO,iBAAiB,UAAa,OAAO,eAAe,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI;AAAA,EACzF,CAAC;AACH;AAMA,MAAM,sBAA2D,CAAC;AAAA,EAChE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,EAAA,IAAM,eAAe,IAAI;AAEjC,QAAM,UAAU,cAAc;AAC9B,QAAM,UAAU,cAAc;AAC9B,QAAM,YAAY,eAAe,aAAa,aAAa;AAI3D,QAAM,YAAY,CAAC,YACjB;AAAA,IACE;AAAA,IACA,UAAU,gDAAgD;AAAA,EAAA;AAG9D,QAAM,YAAY,CAAC,cACjB;AAAA,IACE;AAAA,IACA,YACI,yCACA;AAAA,EAAA;AAGR,QAAM,cAAc,cAAc,KAAK,WAAW;AAClD,QAAM,WAAW,cAAc,OAAO,KAAK,IAAI,cAAc,UAAU,UAAU,IAAI,cAAc;AAEnG,SACE,qBAAC,OAAA,EAAI,WAAU,+FACZ,UAAA;AAAA,IAAA,oBACC,qBAAC,OAAA,EAAI,WAAU,6BACb,UAAA;AAAA,MAAA,oBAAC,QAAA,EAAM,UAAA,EAAE,2BAA2B,EAAA,CAAE;AAAA,MACtC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAS;AAAA,UACT,eAAe,SAAS,SAAA;AAAA,UACxB,cAAc,CAAC,aAAa,iBAAiB,OAAO,QAAQ,CAAC;AAAA,UAC7D,YAAY;AAAA,UACZ,WAAW;AAAA,UACX,WAAW;AAAA,QAAA;AAAA,MAAA;AAAA,IACb,GACF;AAAA,wBAGD,QAAA,EAAK,WAAU,gBACb,UAAA,cAAc,OACX,EAAE,oBAAoB;AAAA,MACpB,MAAM,aAAa,KAAK,IAAI,YAAY,QAAQ,CAAC;AAAA,MACjD,IAAI,aAAa,QAAQ;AAAA,MACzB,OAAO,aAAa,UAAU;AAAA,IAAA,CAC/B,IACD,EAAE,qBAAqB,EAAE,SAAS,aAAa,OAAO,cAAA,CAAe,GAC3E;AAAA,IAEA,qBAAC,OAAA,EAAI,WAAU,6BACb,UAAA;AAAA,MAAA,oBAAC,mBAAA,EAAkB,SAAS,EAAE,kBAAkB,GAC9C,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,cAAY,EAAE,kBAAkB;AAAA,UAChC,mBAAiB;AAAA,UACjB,UAAU,CAAC;AAAA,UACX,SAAS,MAAM,eAAe,CAAC;AAAA,UAC/B,WAAW,UAAU,OAAO;AAAA,UAE5B,UAAA,oBAAC,gBAAA,EAAe,MAAK,cAAa,MAAM,GAAA,CAAI;AAAA,QAAA;AAAA,MAAA,GAEhD;AAAA,MACA,oBAAC,mBAAA,EAAkB,SAAS,EAAE,kBAAkB,GAC9C,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,cAAY,EAAE,kBAAkB;AAAA,UAChC,mBAAiB;AAAA,UACjB,UAAU,CAAC;AAAA,UACX,SAAS,MAAM,eAAe,cAAc,CAAC;AAAA,UAC7C,WAAW,UAAU,OAAO;AAAA,UAE5B,UAAA,oBAAC,gBAAA,EAAe,MAAK,gBAAe,MAAM,GAAA,CAAI;AAAA,QAAA;AAAA,MAAA,GAElD;AAAA,MAEC,UAAU;AAAA,QAAI,CAAC,MAAM,UACpB,SAAS,WACP;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAU;AAAA,YACV,eAAW;AAAA,YAEV,YAAE,gBAAgB;AAAA,UAAA;AAAA,UAJd,6BAA6B,KAAK;AAAA,QAAA,IAOzC;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,mBAAiB;AAAA,YACjB,gBAAc,SAAS,cAAc,SAAS;AAAA,YAC9C,SAAS,MAAM,eAAe,IAAI;AAAA,YAClC,WAAW,UAAU,SAAS,WAAW;AAAA,YAExC,uBAAa,IAAI;AAAA,UAAA;AAAA,UANb,8BAA8B,IAAI;AAAA,QAAA;AAAA,MAOzC;AAAA,MAIJ,oBAAC,mBAAA,EAAkB,SAAS,EAAE,cAAc,GAC1C,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,cAAY,EAAE,cAAc;AAAA,UAC5B,mBAAiB;AAAA,UACjB,UAAU,CAAC;AAAA,UACX,SAAS,MAAM,eAAe,cAAc,CAAC;AAAA,UAC7C,WAAW,UAAU,OAAO;AAAA,UAE5B,UAAA,oBAAC,gBAAA,EAAe,MAAK,iBAAgB,MAAM,GAAA,CAAI;AAAA,QAAA;AAAA,MAAA,GAEnD;AAAA,MACA,oBAAC,mBAAA,EAAkB,SAAS,EAAE,iBAAiB,GAC7C,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,cAAY,EAAE,iBAAiB;AAAA,UAC/B,mBAAiB;AAAA,UACjB,UAAU,CAAC;AAAA,UACX,SAAS,MAAM,eAAe,aAAa;AAAA,UAC3C,WAAW,UAAU,OAAO;AAAA,UAE5B,UAAA,oBAAC,gBAAA,EAAe,MAAK,aAAY,MAAM,GAAA,CAAI;AAAA,QAAA;AAAA,MAAA,EAC7C,CACF;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface IDataTableSaveButtonProps {
|
|
2
|
+
onClick: () => void;
|
|
3
|
+
loading?: boolean;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
label?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Toolbar action for saving pending inline edits held in `useDataTableEditBuffer`.
|
|
9
|
+
* Drop it into the DataTable `toolbarSlot` and wire `onClick` to the hook's
|
|
10
|
+
* `flush`, `loading` to its `loading`, and `disabled` to `!isDirty`.
|
|
11
|
+
*/
|
|
12
|
+
declare const DataTableSaveButton: React.FC<IDataTableSaveButtonProps>;
|
|
13
|
+
export default DataTableSaveButton;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation } from "react-i18next";
|
|
3
|
+
import ControlledButton from "../../Form/ControlledButton.js";
|
|
4
|
+
import LoadingSpinner from "../LoadingSpinner.js";
|
|
5
|
+
import { MaterialSymbol } from "../MaterialSymbol/index.js";
|
|
6
|
+
const DataTableSaveButton = ({
|
|
7
|
+
onClick,
|
|
8
|
+
loading = false,
|
|
9
|
+
disabled = false,
|
|
10
|
+
label
|
|
11
|
+
}) => {
|
|
12
|
+
const { t } = useTranslation("ui");
|
|
13
|
+
return /* @__PURE__ */ jsxs(ControlledButton, { disabled: disabled || loading, onClick, className: "flex items-center gap-1.5", children: [
|
|
14
|
+
loading ? /* @__PURE__ */ jsx(LoadingSpinner, { size: 4, color: "white" }) : /* @__PURE__ */ jsx(MaterialSymbol, { icon: "save", size: 18 }),
|
|
15
|
+
label ?? t("dataTable.save")
|
|
16
|
+
] });
|
|
17
|
+
};
|
|
18
|
+
export {
|
|
19
|
+
DataTableSaveButton as default
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=DataTableSaveButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableSaveButton.js","sources":["../../../../src/components/UI/DataTable/DataTableSaveButton.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\n\nimport ControlledButton from '@/components/Form/ControlledButton';\nimport LoadingSpinner from '@/components/UI/LoadingSpinner';\nimport { MaterialSymbol } from '@/components/UI/MaterialSymbol';\n\ninterface IDataTableSaveButtonProps {\n onClick: () => void;\n loading?: boolean;\n disabled?: boolean;\n label?: string;\n}\n\n/**\n * Toolbar action for saving pending inline edits held in `useDataTableEditBuffer`.\n * Drop it into the DataTable `toolbarSlot` and wire `onClick` to the hook's\n * `flush`, `loading` to its `loading`, and `disabled` to `!isDirty`.\n */\nconst DataTableSaveButton: React.FC<IDataTableSaveButtonProps> = ({\n onClick,\n loading = false,\n disabled = false,\n label,\n}) => {\n const { t } = useTranslation('ui');\n\n return (\n <ControlledButton disabled={disabled || loading} onClick={onClick} className=\"flex items-center gap-1.5\">\n {loading ? <LoadingSpinner size={4} color=\"white\" /> : <MaterialSymbol icon=\"save\" size={18} />}\n {label ?? t('dataTable.save')}\n </ControlledButton>\n );\n};\n\nexport default DataTableSaveButton;\n"],"names":[],"mappings":";;;;;AAkBA,MAAM,sBAA2D,CAAC;AAAA,EAChE;AAAA,EACA,UAAU;AAAA,EACV,WAAW;AAAA,EACX;AACF,MAAM;AACJ,QAAM,EAAE,EAAA,IAAM,eAAe,IAAI;AAEjC,8BACG,kBAAA,EAAiB,UAAU,YAAY,SAAS,SAAkB,WAAU,6BAC1E,UAAA;AAAA,IAAA,UAAU,oBAAC,gBAAA,EAAe,MAAM,GAAG,OAAM,QAAA,CAAQ,IAAK,oBAAC,gBAAA,EAAe,MAAK,QAAO,MAAM,IAAI;AAAA,IAC5F,SAAS,EAAE,gBAAgB;AAAA,EAAA,GAC9B;AAEJ;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IDataTableRow, IDataTableTab } from './types';
|
|
2
|
+
interface IDataTableSegmentedTabsProps<T extends IDataTableRow> {
|
|
3
|
+
tabs: Array<IDataTableTab<T>>;
|
|
4
|
+
activeTab: string;
|
|
5
|
+
onChange: (value: string) => void;
|
|
6
|
+
}
|
|
7
|
+
declare const DataTableSegmentedTabs: <T extends IDataTableRow>({ tabs, activeTab, onChange, }: IDataTableSegmentedTabsProps<T>) => import("react").JSX.Element;
|
|
8
|
+
export default DataTableSegmentedTabs;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import ControlledButton from "../../Form/ControlledButton.js";
|
|
4
|
+
import HorizontalScrollArea from "../HorizontalScrollArea.js";
|
|
5
|
+
const DataTableSegmentedTabs = ({
|
|
6
|
+
tabs,
|
|
7
|
+
activeTab,
|
|
8
|
+
onChange
|
|
9
|
+
}) => (
|
|
10
|
+
// The segments never wrap (a wrapped pill bar reads as two separate controls),
|
|
11
|
+
// so on a narrow toolbar they scroll instead of being clipped out of reach.
|
|
12
|
+
/* @__PURE__ */ jsx(HorizontalScrollArea, { containerClassName: "rounded-lg bg-muted-hover", className: "p-1", children: /* @__PURE__ */ jsx("div", { className: "flex w-max items-center gap-1", children: tabs.map((tab) => {
|
|
13
|
+
const isActive = tab.value === activeTab;
|
|
14
|
+
return /* @__PURE__ */ jsx(
|
|
15
|
+
ControlledButton,
|
|
16
|
+
{
|
|
17
|
+
defaultHtmlButton: true,
|
|
18
|
+
onClick: () => onChange(tab.value),
|
|
19
|
+
className: classNames(
|
|
20
|
+
"min-h-9 shrink-0 whitespace-nowrap rounded-md px-4 py-1.5 text-sm font-medium transition-colors",
|
|
21
|
+
{
|
|
22
|
+
"bg-brand text-brand-fg shadow-sm": isActive,
|
|
23
|
+
"text-foreground-muted hover:text-foreground": !isActive
|
|
24
|
+
}
|
|
25
|
+
),
|
|
26
|
+
children: tab.count !== void 0 ? `${tab.label} (${tab.count})` : tab.label
|
|
27
|
+
},
|
|
28
|
+
tab.value
|
|
29
|
+
);
|
|
30
|
+
}) }) })
|
|
31
|
+
);
|
|
32
|
+
export {
|
|
33
|
+
DataTableSegmentedTabs as default
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=DataTableSegmentedTabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableSegmentedTabs.js","sources":["../../../../src/components/UI/DataTable/DataTableSegmentedTabs.tsx"],"sourcesContent":["import classNames from 'classnames';\n\nimport ControlledButton from '@/components/Form/ControlledButton';\nimport HorizontalScrollArea from '@/components/UI/HorizontalScrollArea';\n\nimport type { IDataTableRow, IDataTableTab } from './types';\n\ninterface IDataTableSegmentedTabsProps<T extends IDataTableRow> {\n tabs: Array<IDataTableTab<T>>;\n activeTab: string;\n onChange: (value: string) => void;\n}\n\nconst DataTableSegmentedTabs = <T extends IDataTableRow>({\n tabs,\n activeTab,\n onChange,\n}: IDataTableSegmentedTabsProps<T>) => (\n // The segments never wrap (a wrapped pill bar reads as two separate controls),\n // so on a narrow toolbar they scroll instead of being clipped out of reach.\n <HorizontalScrollArea containerClassName=\"rounded-lg bg-muted-hover\" className=\"p-1\">\n <div className=\"flex w-max items-center gap-1\">\n {tabs.map((tab) => {\n const isActive = tab.value === activeTab;\n\n return (\n <ControlledButton\n key={tab.value}\n defaultHtmlButton\n onClick={() => onChange(tab.value)}\n className={classNames(\n 'min-h-9 shrink-0 whitespace-nowrap rounded-md px-4 py-1.5 text-sm font-medium transition-colors',\n {\n 'bg-brand text-brand-fg shadow-sm': isActive,\n 'text-foreground-muted hover:text-foreground': !isActive,\n },\n )}\n >\n {tab.count !== undefined ? `${tab.label} (${tab.count})` : tab.label}\n </ControlledButton>\n );\n })}\n </div>\n </HorizontalScrollArea>\n);\n\nexport default DataTableSegmentedTabs;\n"],"names":[],"mappings":";;;;AAaA,MAAM,yBAAyB,CAA0B;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AACF;AAAA;AAAA;AAAA,EAGE,oBAAC,sBAAA,EAAqB,oBAAmB,6BAA4B,WAAU,OAC7E,UAAA,oBAAC,OAAA,EAAI,WAAU,iCACZ,UAAA,KAAK,IAAI,CAAC,QAAQ;AACjB,UAAM,WAAW,IAAI,UAAU;AAE/B,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,mBAAiB;AAAA,QACjB,SAAS,MAAM,SAAS,IAAI,KAAK;AAAA,QACjC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,YACE,oCAAoC;AAAA,YACpC,+CAA+C,CAAC;AAAA,UAAA;AAAA,QAClD;AAAA,QAGD,UAAA,IAAI,UAAU,SAAY,GAAG,IAAI,KAAK,KAAK,IAAI,KAAK,MAAM,IAAI;AAAA,MAAA;AAAA,MAX1D,IAAI;AAAA,IAAA;AAAA,EAcf,CAAC,GACH,EAAA,CACF;AAAA;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const DataTableSkeletonState: React.FC<{
|
|
2
|
+
rows?: number;
|
|
3
|
+
}>;
|
|
4
|
+
export declare const DataTableCardsSkeletonState: React.FC<{
|
|
5
|
+
cardClassName?: string;
|
|
6
|
+
}>;
|
|
7
|
+
interface IDataTableErrorStateProps {
|
|
8
|
+
onRetry?: () => void;
|
|
9
|
+
/** The caught error, so a denial or a dropped connection does not read as a system failure. */
|
|
10
|
+
errorCause?: unknown;
|
|
11
|
+
}
|
|
12
|
+
export declare const DataTableErrorState: React.FC<IDataTableErrorStateProps>;
|
|
13
|
+
interface IDataTableEmptyStateProps {
|
|
14
|
+
emptyMessage?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const DataTableEmptyState: React.FC<IDataTableEmptyStateProps>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation } from "react-i18next";
|
|
3
|
+
import NoDataFound from "../NoDataFound/index.js";
|
|
4
|
+
import SkeletonLoading from "../SkeletonLoading.js";
|
|
5
|
+
import { mergeClasses } from "../../../helpers/mergeClasses.js";
|
|
6
|
+
import { describeUiError } from "../../../helpers/uiErrorPresenter.js";
|
|
7
|
+
const DEFAULT_SKELETON_ROWS = 8;
|
|
8
|
+
const DataTableSkeletonState = ({ rows = DEFAULT_SKELETON_ROWS }) => /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 py-4", children: Array.from({ length: Math.max(1, rows) }).map((_, index) => /* @__PURE__ */ jsx(SkeletonLoading, { className: "h-9" }, `data-table-skeleton-${index}`)) });
|
|
9
|
+
const DataTableCardsSkeletonState = ({ cardClassName }) => (
|
|
10
|
+
// Mesmo contêiner e mesmo alinhamento da grade real: sem o `@container` aqui, um
|
|
11
|
+
// card de largura responsiva não teria contra o que medir enquanto carrega.
|
|
12
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap justify-center gap-4 py-2 @container @md:justify-start", children: Array.from({ length: 12 }).map((_, index) => /* @__PURE__ */ jsxs(
|
|
13
|
+
"div",
|
|
14
|
+
{
|
|
15
|
+
className: mergeClasses(
|
|
16
|
+
"w-52 animate-pulse overflow-hidden rounded-lg border border-border-subtle bg-surface",
|
|
17
|
+
cardClassName
|
|
18
|
+
),
|
|
19
|
+
children: [
|
|
20
|
+
/* @__PURE__ */ jsx("div", { className: "aspect-square w-full bg-muted-active" }),
|
|
21
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 p-3", children: [
|
|
22
|
+
/* @__PURE__ */ jsx(SkeletonLoading, { className: "h-4 w-3/4" }),
|
|
23
|
+
/* @__PURE__ */ jsx(SkeletonLoading, { className: "h-3 w-1/2" }),
|
|
24
|
+
/* @__PURE__ */ jsx(SkeletonLoading, { className: "h-3 w-2/3" }),
|
|
25
|
+
/* @__PURE__ */ jsx(SkeletonLoading, { className: "mt-1 h-3 w-1/3" })
|
|
26
|
+
] })
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
`data-table-card-skeleton-${index}`
|
|
30
|
+
)) })
|
|
31
|
+
);
|
|
32
|
+
const DataTableErrorState = ({ onRetry, errorCause }) => {
|
|
33
|
+
const { t } = useTranslation("ui");
|
|
34
|
+
const presentation = describeUiError(errorCause);
|
|
35
|
+
const retryAction = onRetry ? { label: t("actions.tryAgain"), onClick: onRetry, icon: "refresh" } : void 0;
|
|
36
|
+
if (!presentation) {
|
|
37
|
+
return /* @__PURE__ */ jsx(NoDataFound, { variant: "error", title: t("dataTable.error"), action: retryAction });
|
|
38
|
+
}
|
|
39
|
+
return /* @__PURE__ */ jsx(
|
|
40
|
+
NoDataFound,
|
|
41
|
+
{
|
|
42
|
+
variant: presentation.variant,
|
|
43
|
+
title: t(presentation.titleKey),
|
|
44
|
+
description: t(presentation.descriptionKey),
|
|
45
|
+
action: presentation.isRetryable ? retryAction : void 0
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
};
|
|
49
|
+
const DataTableEmptyState = ({ emptyMessage }) => {
|
|
50
|
+
const { t } = useTranslation("ui");
|
|
51
|
+
return /* @__PURE__ */ jsx(NoDataFound, { message: emptyMessage ?? t("dataTable.empty") });
|
|
52
|
+
};
|
|
53
|
+
export {
|
|
54
|
+
DataTableCardsSkeletonState,
|
|
55
|
+
DataTableEmptyState,
|
|
56
|
+
DataTableErrorState,
|
|
57
|
+
DataTableSkeletonState
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=DataTableStates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableStates.js","sources":["../../../../src/components/UI/DataTable/DataTableStates.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\n\nimport NoDataFound from '@/components/UI/NoDataFound';\nimport SkeletonLoading from '@/components/UI/SkeletonLoading';\nimport { mergeClasses } from '@/helpers/mergeClasses';\nimport { describeUiError } from '@/helpers/uiErrorPresenter';\n\nconst DEFAULT_SKELETON_ROWS = 8;\n\nexport const DataTableSkeletonState: React.FC<{ rows?: number }> = ({ rows = DEFAULT_SKELETON_ROWS }) => (\n <div className=\"flex flex-col gap-2 py-4\">\n {Array.from({ length: Math.max(1, rows) }).map((_, index) => (\n <SkeletonLoading key={`data-table-skeleton-${index}`} className=\"h-9\" />\n ))}\n </div>\n);\n\nexport const DataTableCardsSkeletonState: React.FC<{ cardClassName?: string }> = ({ cardClassName }) => (\n // Mesmo contêiner e mesmo alinhamento da grade real: sem o `@container` aqui, um\n // card de largura responsiva não teria contra o que medir enquanto carrega.\n <div className=\"flex flex-wrap justify-center gap-4 py-2 @container @md:justify-start\">\n {Array.from({ length: 12 }).map((_, index) => (\n <div\n key={`data-table-card-skeleton-${index}`}\n className={mergeClasses(\n 'w-52 animate-pulse overflow-hidden rounded-lg border border-border-subtle bg-surface',\n cardClassName,\n )}\n >\n <div className=\"aspect-square w-full bg-muted-active\" />\n <div className=\"flex flex-col gap-2 p-3\">\n <SkeletonLoading className=\"h-4 w-3/4\" />\n <SkeletonLoading className=\"h-3 w-1/2\" />\n <SkeletonLoading className=\"h-3 w-2/3\" />\n <SkeletonLoading className=\"mt-1 h-3 w-1/3\" />\n </div>\n </div>\n ))}\n </div>\n);\n\ninterface IDataTableErrorStateProps {\n onRetry?: () => void;\n /** The caught error, so a denial or a dropped connection does not read as a system failure. */\n errorCause?: unknown;\n}\n\nexport const DataTableErrorState: React.FC<IDataTableErrorStateProps> = ({ onRetry, errorCause }) => {\n const { t } = useTranslation('ui');\n const presentation = describeUiError(errorCause);\n const retryAction = onRetry\n ? { label: t('actions.tryAgain'), onClick: onRetry, icon: 'refresh' as const }\n : undefined;\n\n if (!presentation) {\n return <NoDataFound variant=\"error\" title={t('dataTable.error')} action={retryAction} />;\n }\n\n return (\n <NoDataFound\n variant={presentation.variant}\n title={t(presentation.titleKey)}\n description={t(presentation.descriptionKey)}\n action={presentation.isRetryable ? retryAction : undefined}\n />\n );\n};\n\ninterface IDataTableEmptyStateProps {\n emptyMessage?: string;\n}\n\nexport const DataTableEmptyState: React.FC<IDataTableEmptyStateProps> = ({ emptyMessage }) => {\n const { t } = useTranslation('ui');\n\n return <NoDataFound message={emptyMessage ?? t('dataTable.empty')} />;\n};\n"],"names":[],"mappings":";;;;;;AAOA,MAAM,wBAAwB;AAEvB,MAAM,yBAAsD,CAAC,EAAE,OAAO,4BAC3E,oBAAC,OAAA,EAAI,WAAU,4BACZ,UAAA,MAAM,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,EAAA,CAAG,EAAE,IAAI,CAAC,GAAG,UACjD,oBAAC,iBAAA,EAAqD,WAAU,MAAA,GAA1C,uBAAuB,KAAK,EAAoB,CACvE,EAAA,CACH;AAGK,MAAM,8BAAoE,CAAC,EAAE,cAAA;AAAA;AAAA;AAAA,EAGlF,oBAAC,OAAA,EAAI,WAAU,yEACZ,gBAAM,KAAK,EAAE,QAAQ,GAAA,CAAI,EAAE,IAAI,CAAC,GAAG,UAClC;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAA,oBAAC,OAAA,EAAI,WAAU,uCAAA,CAAuC;AAAA,QACtD,qBAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,UAAA,oBAAC,iBAAA,EAAgB,WAAU,YAAA,CAAY;AAAA,UACvC,oBAAC,iBAAA,EAAgB,WAAU,YAAA,CAAY;AAAA,UACvC,oBAAC,iBAAA,EAAgB,WAAU,YAAA,CAAY;AAAA,UACvC,oBAAC,iBAAA,EAAgB,WAAU,iBAAA,CAAiB;AAAA,QAAA,EAAA,CAC9C;AAAA,MAAA;AAAA,IAAA;AAAA,IAZK,4BAA4B,KAAK;AAAA,EAAA,CAczC,EAAA,CACH;AAAA;AASK,MAAM,sBAA2D,CAAC,EAAE,SAAS,iBAAiB;AACnG,QAAM,EAAE,EAAA,IAAM,eAAe,IAAI;AACjC,QAAM,eAAe,gBAAgB,UAAU;AAC/C,QAAM,cAAc,UAChB,EAAE,OAAO,EAAE,kBAAkB,GAAG,SAAS,SAAS,MAAM,UAAA,IACxD;AAEJ,MAAI,CAAC,cAAc;AACjB,WAAO,oBAAC,eAAY,SAAQ,SAAQ,OAAO,EAAE,iBAAiB,GAAG,QAAQ,YAAA,CAAa;AAAA,EACxF;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAS,aAAa;AAAA,MACtB,OAAO,EAAE,aAAa,QAAQ;AAAA,MAC9B,aAAa,EAAE,aAAa,cAAc;AAAA,MAC1C,QAAQ,aAAa,cAAc,cAAc;AAAA,IAAA;AAAA,EAAA;AAGvD;AAMO,MAAM,sBAA2D,CAAC,EAAE,mBAAmB;AAC5F,QAAM,EAAE,EAAA,IAAM,eAAe,IAAI;AAEjC,6BAAQ,aAAA,EAAY,SAAS,gBAAgB,EAAE,iBAAiB,GAAG;AACrE;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { JSX } from 'react';
|
|
2
|
+
import { IDataTableRow, IDataTableTab, TDataTableViewMode } from './types';
|
|
3
|
+
interface IDataTableToolbarProps<T extends IDataTableRow> {
|
|
4
|
+
tabs?: Array<IDataTableTab<T>>;
|
|
5
|
+
activeTab: string;
|
|
6
|
+
onTabChange: (value: string) => void;
|
|
7
|
+
showViewToggle?: boolean;
|
|
8
|
+
showGroupedView?: boolean;
|
|
9
|
+
showKanbanView?: boolean;
|
|
10
|
+
viewMode?: TDataTableViewMode;
|
|
11
|
+
onViewModeChange?: (mode: TDataTableViewMode) => void;
|
|
12
|
+
showSearch: boolean;
|
|
13
|
+
searchLabel?: string;
|
|
14
|
+
initialSearch?: string;
|
|
15
|
+
searchDisabled: boolean;
|
|
16
|
+
searchDebounceTime: number;
|
|
17
|
+
searchMinLength: number;
|
|
18
|
+
searchAtStart?: boolean;
|
|
19
|
+
onSearchInput: (value: string) => void;
|
|
20
|
+
toolbarSlot?: JSX.Element;
|
|
21
|
+
toolbarStartSlot?: JSX.Element;
|
|
22
|
+
/** Toggle de colunas quando o host opta por exibi-lo no toolbar em vez do cabeçalho. */
|
|
23
|
+
columnToggleSlot?: JSX.Element;
|
|
24
|
+
/** First load only: renders placeholders with the same footprint as the real controls. */
|
|
25
|
+
showSkeleton?: boolean;
|
|
26
|
+
}
|
|
27
|
+
declare const DataTableToolbar: <T extends IDataTableRow>({ tabs, activeTab, onTabChange, showViewToggle, showGroupedView, showKanbanView, viewMode, onViewModeChange, showSearch, searchLabel, initialSearch, searchDisabled, searchDebounceTime, searchMinLength, searchAtStart, onSearchInput, toolbarSlot, toolbarStartSlot, columnToggleSlot, showSkeleton, }: IDataTableToolbarProps<T>) => JSX.Element;
|
|
28
|
+
export default DataTableToolbar;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation } from "react-i18next";
|
|
3
|
+
import ControlledViewToggle from "../../Form/ControlledViewToggle.js";
|
|
4
|
+
import "classnames";
|
|
5
|
+
import "../../Form/ControlledButton.js";
|
|
6
|
+
import "react";
|
|
7
|
+
import "../ControlledMenu.js";
|
|
8
|
+
import "motion/react";
|
|
9
|
+
import "react-dom";
|
|
10
|
+
import "../../../helpers/mergeClasses.js";
|
|
11
|
+
import "@floating-ui/dom";
|
|
12
|
+
import "../../../motion/motionPresets.js";
|
|
13
|
+
import "../../../motion/motionTokens.js";
|
|
14
|
+
import "../MaterialSymbol/index.js";
|
|
15
|
+
import "../../Form/ControlledSwitch.js";
|
|
16
|
+
import "date-fns";
|
|
17
|
+
import "date-fns/locale";
|
|
18
|
+
import "react-day-picker";
|
|
19
|
+
import "../ControlledPopover.js";
|
|
20
|
+
import "react-day-picker/style.css";
|
|
21
|
+
import "../../DateTime/DateRangePicker.js";
|
|
22
|
+
import "react-infinite-scroll-component";
|
|
23
|
+
import "react-window";
|
|
24
|
+
import UnifiedSearchBar from "../../Search/UnifiedSearchBar.js";
|
|
25
|
+
import "../NoDataFound/index.js";
|
|
26
|
+
/* empty css */
|
|
27
|
+
import SkeletonLoading from "../SkeletonLoading.js";
|
|
28
|
+
import "../../Search/filters/FiltersButton.js";
|
|
29
|
+
import "../../../helpers/utilityHelpers.js";
|
|
30
|
+
import "../../Form/ControlledDialog.js";
|
|
31
|
+
import "../../Navigation/UiNavigationContext.js";
|
|
32
|
+
import DataTableSegmentedTabs from "./DataTableSegmentedTabs.js";
|
|
33
|
+
const DataTableToolbar = ({
|
|
34
|
+
tabs,
|
|
35
|
+
activeTab,
|
|
36
|
+
onTabChange,
|
|
37
|
+
showViewToggle = false,
|
|
38
|
+
showGroupedView = false,
|
|
39
|
+
showKanbanView = false,
|
|
40
|
+
viewMode = "list",
|
|
41
|
+
onViewModeChange,
|
|
42
|
+
showSearch,
|
|
43
|
+
searchLabel,
|
|
44
|
+
initialSearch,
|
|
45
|
+
searchDisabled,
|
|
46
|
+
searchDebounceTime,
|
|
47
|
+
searchMinLength,
|
|
48
|
+
searchAtStart = false,
|
|
49
|
+
onSearchInput,
|
|
50
|
+
toolbarSlot,
|
|
51
|
+
toolbarStartSlot,
|
|
52
|
+
columnToggleSlot,
|
|
53
|
+
showSkeleton = false
|
|
54
|
+
}) => {
|
|
55
|
+
const { t } = useTranslation("ui");
|
|
56
|
+
const viewOptions = [
|
|
57
|
+
{ value: "cards", icon: "grid_view", label: t("dataTable.viewCards") },
|
|
58
|
+
{ value: "list", icon: "format_list_bulleted", label: t("dataTable.viewList") },
|
|
59
|
+
...showGroupedView ? [{ value: "grouped", icon: "workspaces", label: t("dataTable.viewGrouped") }] : [],
|
|
60
|
+
...showKanbanView ? [{ value: "kanban", icon: "view_kanban", label: t("dataTable.viewKanban") }] : []
|
|
61
|
+
];
|
|
62
|
+
const searchBar = showSearch ? /* @__PURE__ */ jsx(
|
|
63
|
+
UnifiedSearchBar,
|
|
64
|
+
{
|
|
65
|
+
mode: "callback",
|
|
66
|
+
containerClassName: "flex w-full items-center gap-x-2 tablet:w-72 tablet:shrink-0",
|
|
67
|
+
className: "!h-10 !min-h-10 !w-full tablet:!w-72",
|
|
68
|
+
label: searchLabel ?? t("actions.search"),
|
|
69
|
+
initialValue: initialSearch,
|
|
70
|
+
disabled: searchDisabled,
|
|
71
|
+
debounceTime: searchDebounceTime,
|
|
72
|
+
minSearchLength: searchMinLength,
|
|
73
|
+
showClearButton: true,
|
|
74
|
+
filterCallback: onSearchInput
|
|
75
|
+
}
|
|
76
|
+
) : null;
|
|
77
|
+
const searchSkeleton = showSearch ? /* @__PURE__ */ jsx(SkeletonLoading, { className: "!h-10 !w-full !rounded-lg tablet:!w-72" }) : null;
|
|
78
|
+
if (showSkeleton) {
|
|
79
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [
|
|
80
|
+
/* @__PURE__ */ jsxs("div", { className: "flex w-full min-w-0 flex-wrap items-center gap-3 tablet:w-auto", children: [
|
|
81
|
+
toolbarStartSlot && /* @__PURE__ */ jsx(SkeletonLoading, { className: "!h-10 !w-32 !rounded-lg" }),
|
|
82
|
+
tabs && tabs.length > 0 && /* @__PURE__ */ jsx(SkeletonLoading, { className: "!h-10 !w-64 !rounded-xl" }),
|
|
83
|
+
searchAtStart && searchSkeleton
|
|
84
|
+
] }),
|
|
85
|
+
/* @__PURE__ */ jsxs("div", { className: "flex w-full flex-wrap items-center gap-3 tablet:w-auto tablet:flex-nowrap", children: [
|
|
86
|
+
!searchAtStart && searchSkeleton,
|
|
87
|
+
columnToggleSlot && /* @__PURE__ */ jsx(SkeletonLoading, { className: "!h-10 !w-28 !rounded-lg" }),
|
|
88
|
+
showViewToggle && onViewModeChange && /* @__PURE__ */ jsx(SkeletonLoading, { className: "!h-10 !w-24 !rounded-lg" }),
|
|
89
|
+
toolbarSlot && /* @__PURE__ */ jsx(SkeletonLoading, { className: "!h-10 !w-28 !rounded-lg" })
|
|
90
|
+
] })
|
|
91
|
+
] });
|
|
92
|
+
}
|
|
93
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [
|
|
94
|
+
/* @__PURE__ */ jsxs("div", { className: "flex w-full min-w-0 flex-wrap items-center gap-3 tablet:w-auto", children: [
|
|
95
|
+
toolbarStartSlot,
|
|
96
|
+
tabs && tabs.length > 0 && /* @__PURE__ */ jsx(DataTableSegmentedTabs, { tabs, activeTab, onChange: onTabChange }),
|
|
97
|
+
searchAtStart && searchBar
|
|
98
|
+
] }),
|
|
99
|
+
/* @__PURE__ */ jsxs("div", { className: "flex w-full flex-wrap items-center gap-3 tablet:w-auto tablet:flex-nowrap", children: [
|
|
100
|
+
!searchAtStart && searchBar,
|
|
101
|
+
columnToggleSlot,
|
|
102
|
+
showViewToggle && onViewModeChange && /* @__PURE__ */ jsx(ControlledViewToggle, { options: viewOptions, value: viewMode, onChange: onViewModeChange }),
|
|
103
|
+
toolbarSlot
|
|
104
|
+
] })
|
|
105
|
+
] });
|
|
106
|
+
};
|
|
107
|
+
export {
|
|
108
|
+
DataTableToolbar as default
|
|
109
|
+
};
|
|
110
|
+
//# sourceMappingURL=DataTableToolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableToolbar.js","sources":["../../../../src/components/UI/DataTable/DataTableToolbar.tsx"],"sourcesContent":["import { JSX } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ControlledViewToggle, { type IControlledViewToggleOption } from '@/components/Form/ControlledViewToggle';\nimport { UnifiedSearchBar } from '@/components/Search';\nimport SkeletonLoading from '@/components/UI/SkeletonLoading';\n\nimport DataTableSegmentedTabs from './DataTableSegmentedTabs';\nimport type { IDataTableRow, IDataTableTab, TDataTableViewMode } from './types';\n\ninterface IDataTableToolbarProps<T extends IDataTableRow> {\n tabs?: Array<IDataTableTab<T>>;\n activeTab: string;\n onTabChange: (value: string) => void;\n showViewToggle?: boolean;\n showGroupedView?: boolean;\n showKanbanView?: boolean;\n viewMode?: TDataTableViewMode;\n onViewModeChange?: (mode: TDataTableViewMode) => void;\n showSearch: boolean;\n searchLabel?: string;\n initialSearch?: string;\n searchDisabled: boolean;\n searchDebounceTime: number;\n searchMinLength: number;\n searchAtStart?: boolean;\n onSearchInput: (value: string) => void;\n toolbarSlot?: JSX.Element;\n toolbarStartSlot?: JSX.Element;\n /** Toggle de colunas quando o host opta por exibi-lo no toolbar em vez do cabeçalho. */\n columnToggleSlot?: JSX.Element;\n /** First load only: renders placeholders with the same footprint as the real controls. */\n showSkeleton?: boolean;\n}\n\nconst DataTableToolbar = <T extends IDataTableRow>({\n tabs,\n activeTab,\n onTabChange,\n showViewToggle = false,\n showGroupedView = false,\n showKanbanView = false,\n viewMode = 'list',\n onViewModeChange,\n showSearch,\n searchLabel,\n initialSearch,\n searchDisabled,\n searchDebounceTime,\n searchMinLength,\n searchAtStart = false,\n onSearchInput,\n toolbarSlot,\n toolbarStartSlot,\n columnToggleSlot,\n showSkeleton = false,\n}: IDataTableToolbarProps<T>) => {\n const { t } = useTranslation('ui');\n\n const viewOptions: Array<IControlledViewToggleOption<TDataTableViewMode>> = [\n { value: 'cards', icon: 'grid_view', label: t('dataTable.viewCards') },\n { value: 'list', icon: 'format_list_bulleted', label: t('dataTable.viewList') },\n ...(showGroupedView\n ? [{ value: 'grouped' as const, icon: 'workspaces' as const, label: t('dataTable.viewGrouped') }]\n : []),\n ...(showKanbanView\n ? [{ value: 'kanban' as const, icon: 'view_kanban' as const, label: t('dataTable.viewKanban') }]\n : []),\n ];\n\n const searchBar = showSearch ? (\n <UnifiedSearchBar\n mode=\"callback\"\n containerClassName=\"flex w-full items-center gap-x-2 tablet:w-72 tablet:shrink-0\"\n className=\"!h-10 !min-h-10 !w-full tablet:!w-72\"\n label={searchLabel ?? t('actions.search')}\n initialValue={initialSearch}\n disabled={searchDisabled}\n debounceTime={searchDebounceTime}\n minSearchLength={searchMinLength}\n showClearButton\n filterCallback={onSearchInput}\n />\n ) : null;\n\n const searchSkeleton = showSearch ? <SkeletonLoading className=\"!h-10 !w-full !rounded-lg tablet:!w-72\" /> : null;\n\n if (showSkeleton) {\n return (\n <div className=\"flex flex-wrap items-center justify-between gap-3\">\n <div className=\"flex w-full min-w-0 flex-wrap items-center gap-3 tablet:w-auto\">\n {toolbarStartSlot && <SkeletonLoading className=\"!h-10 !w-32 !rounded-lg\" />}\n {tabs && tabs.length > 0 && <SkeletonLoading className=\"!h-10 !w-64 !rounded-xl\" />}\n {searchAtStart && searchSkeleton}\n </div>\n\n <div className=\"flex w-full flex-wrap items-center gap-3 tablet:w-auto tablet:flex-nowrap\">\n {!searchAtStart && searchSkeleton}\n {columnToggleSlot && <SkeletonLoading className=\"!h-10 !w-28 !rounded-lg\" />}\n {showViewToggle && onViewModeChange && <SkeletonLoading className=\"!h-10 !w-24 !rounded-lg\" />}\n {toolbarSlot && <SkeletonLoading className=\"!h-10 !w-28 !rounded-lg\" />}\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-wrap items-center justify-between gap-3\">\n <div className=\"flex w-full min-w-0 flex-wrap items-center gap-3 tablet:w-auto\">\n {toolbarStartSlot}\n {tabs && tabs.length > 0 && <DataTableSegmentedTabs tabs={tabs} activeTab={activeTab} onChange={onTabChange} />}\n {searchAtStart && searchBar}\n </div>\n\n <div className=\"flex w-full flex-wrap items-center gap-3 tablet:w-auto tablet:flex-nowrap\">\n {!searchAtStart && searchBar}\n {columnToggleSlot}\n {showViewToggle && onViewModeChange && (\n <ControlledViewToggle options={viewOptions} value={viewMode} onChange={onViewModeChange} />\n )}\n {toolbarSlot}\n </div>\n </div>\n );\n};\n\nexport default DataTableToolbar;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,MAAM,mBAAmB,CAA0B;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AACjB,MAAiC;AAC/B,QAAM,EAAE,EAAA,IAAM,eAAe,IAAI;AAEjC,QAAM,cAAsE;AAAA,IAC1E,EAAE,OAAO,SAAS,MAAM,aAAa,OAAO,EAAE,qBAAqB,EAAA;AAAA,IACnE,EAAE,OAAO,QAAQ,MAAM,wBAAwB,OAAO,EAAE,oBAAoB,EAAA;AAAA,IAC5E,GAAI,kBACA,CAAC,EAAE,OAAO,WAAoB,MAAM,cAAuB,OAAO,EAAE,uBAAuB,EAAA,CAAG,IAC9F,CAAA;AAAA,IACJ,GAAI,iBACA,CAAC,EAAE,OAAO,UAAmB,MAAM,eAAwB,OAAO,EAAE,sBAAsB,EAAA,CAAG,IAC7F,CAAA;AAAA,EAAC;AAGP,QAAM,YAAY,aAChB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,oBAAmB;AAAA,MACnB,WAAU;AAAA,MACV,OAAO,eAAe,EAAE,gBAAgB;AAAA,MACxC,cAAc;AAAA,MACd,UAAU;AAAA,MACV,cAAc;AAAA,MACd,iBAAiB;AAAA,MACjB,iBAAe;AAAA,MACf,gBAAgB;AAAA,IAAA;AAAA,EAAA,IAEhB;AAEJ,QAAM,iBAAiB,aAAa,oBAAC,iBAAA,EAAgB,WAAU,0CAAyC,IAAK;AAE7G,MAAI,cAAc;AAChB,WACE,qBAAC,OAAA,EAAI,WAAU,qDACb,UAAA;AAAA,MAAA,qBAAC,OAAA,EAAI,WAAU,kEACZ,UAAA;AAAA,QAAA,oBAAoB,oBAAC,iBAAA,EAAgB,WAAU,0BAAA,CAA0B;AAAA,QACzE,QAAQ,KAAK,SAAS,KAAK,oBAAC,iBAAA,EAAgB,WAAU,2BAA0B;AAAA,QAChF,iBAAiB;AAAA,MAAA,GACpB;AAAA,MAEA,qBAAC,OAAA,EAAI,WAAU,6EACZ,UAAA;AAAA,QAAA,CAAC,iBAAiB;AAAA,QAClB,oBAAoB,oBAAC,iBAAA,EAAgB,WAAU,0BAAA,CAA0B;AAAA,QACzE,kBAAkB,oBAAoB,oBAAC,iBAAA,EAAgB,WAAU,2BAA0B;AAAA,QAC3F,eAAe,oBAAC,iBAAA,EAAgB,WAAU,0BAAA,CAA0B;AAAA,MAAA,EAAA,CACvE;AAAA,IAAA,GACF;AAAA,EAEJ;AAEA,SACE,qBAAC,OAAA,EAAI,WAAU,qDACb,UAAA;AAAA,IAAA,qBAAC,OAAA,EAAI,WAAU,kEACZ,UAAA;AAAA,MAAA;AAAA,MACA,QAAQ,KAAK,SAAS,yBAAM,wBAAA,EAAuB,MAAY,WAAsB,UAAU,YAAA,CAAa;AAAA,MAC5G,iBAAiB;AAAA,IAAA,GACpB;AAAA,IAEA,qBAAC,OAAA,EAAI,WAAU,6EACZ,UAAA;AAAA,MAAA,CAAC,iBAAiB;AAAA,MAClB;AAAA,MACA,kBAAkB,oBACjB,oBAAC,sBAAA,EAAqB,SAAS,aAAa,OAAO,UAAU,UAAU,iBAAA,CAAkB;AAAA,MAE1F;AAAA,IAAA,EAAA,CACH;AAAA,EAAA,GACF;AAEJ;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IDataTableFiltersConfig, IDataTableRow, TDataTableFilterValues } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* CLIENT-mode filtering driven by the table's filter config. Only active fields
|
|
4
|
+
* that declare a `predicate` narrow the rows. Server-only fields (no
|
|
5
|
+
* `predicate`) are ignored here. `combinator` decides whether a row must pass
|
|
6
|
+
* every active field or at least one.
|
|
7
|
+
*/
|
|
8
|
+
export declare const applyDataTableFilters: <T extends IDataTableRow>(rows: Array<T>, filters: IDataTableFiltersConfig<T> | undefined, values: TDataTableFilterValues) => Array<T>;
|
|
9
|
+
/**
|
|
10
|
+
* SERVER-mode counterpart: collects the backend query params from every active
|
|
11
|
+
* field that declares `toServerParams`. The host merges these into its fetch
|
|
12
|
+
* instead of filtering in memory.
|
|
13
|
+
*/
|
|
14
|
+
export declare const buildDataTableFilterParams: <T extends IDataTableRow>(filters: IDataTableFiltersConfig<T> | undefined, values: TDataTableFilterValues) => Record<string, unknown>;
|
|
15
|
+
/** Number of active filter fields. Drives the filter button badge count. */
|
|
16
|
+
export declare const countActiveDataTableFilters: <T extends IDataTableRow>(filters: IDataTableFiltersConfig<T> | undefined, values: TDataTableFilterValues) => number;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import "react/jsx-runtime";
|
|
2
|
+
import "classnames";
|
|
3
|
+
import "react-i18next";
|
|
4
|
+
import "../../Form/ControlledButton.js";
|
|
5
|
+
import "react";
|
|
6
|
+
import "../ControlledMenu.js";
|
|
7
|
+
import "motion/react";
|
|
8
|
+
import "react-dom";
|
|
9
|
+
import "../../../helpers/mergeClasses.js";
|
|
10
|
+
import "@floating-ui/dom";
|
|
11
|
+
import "../../../motion/motionPresets.js";
|
|
12
|
+
import "../../../motion/motionTokens.js";
|
|
13
|
+
import "../MaterialSymbol/index.js";
|
|
14
|
+
import { countActiveFilters, isFilterValueEmpty } from "../../Search/filters/filterValues.js";
|
|
15
|
+
import "../../Form/ControlledSwitch.js";
|
|
16
|
+
import "date-fns";
|
|
17
|
+
import "date-fns/locale";
|
|
18
|
+
import "react-day-picker";
|
|
19
|
+
import "../ControlledPopover.js";
|
|
20
|
+
import "react-day-picker/style.css";
|
|
21
|
+
import "../../DateTime/DateRangePicker.js";
|
|
22
|
+
import "react-infinite-scroll-component";
|
|
23
|
+
import "react-window";
|
|
24
|
+
import "../NoDataFound/index.js";
|
|
25
|
+
/* empty css */
|
|
26
|
+
import "../../Search/filters/FiltersButton.js";
|
|
27
|
+
import "../../../helpers/utilityHelpers.js";
|
|
28
|
+
import "../../Form/ControlledDialog.js";
|
|
29
|
+
import "../../Navigation/UiNavigationContext.js";
|
|
30
|
+
const isFieldActive = (field, values) => !isFilterValueEmpty(field, values?.[field.key]);
|
|
31
|
+
const applyDataTableFilters = (rows, filters, values) => {
|
|
32
|
+
if (!filters) return rows;
|
|
33
|
+
const activeFields = (filters.fields ?? []).filter((field) => isFieldActive(field, values) && field.predicate);
|
|
34
|
+
if (activeFields.length === 0) return rows;
|
|
35
|
+
const matches = (row, field) => field.predicate ? field.predicate(row, values?.[field.key]) : true;
|
|
36
|
+
if (filters.combinator === "OR") {
|
|
37
|
+
return (rows ?? []).filter((row) => activeFields.some((field) => matches(row, field)));
|
|
38
|
+
}
|
|
39
|
+
return (rows ?? []).filter((row) => activeFields.every((field) => matches(row, field)));
|
|
40
|
+
};
|
|
41
|
+
const buildDataTableFilterParams = (filters, values) => {
|
|
42
|
+
if (!filters) return {};
|
|
43
|
+
return (filters.fields ?? []).reduce((params, field) => {
|
|
44
|
+
if (!isFieldActive(field, values) || !field.toServerParams) return params;
|
|
45
|
+
return { ...params, ...field.toServerParams(values?.[field.key]) };
|
|
46
|
+
}, {});
|
|
47
|
+
};
|
|
48
|
+
const countActiveDataTableFilters = (filters, values) => filters ? countActiveFilters(filters.fields ?? [], values ?? {}) : 0;
|
|
49
|
+
export {
|
|
50
|
+
applyDataTableFilters,
|
|
51
|
+
buildDataTableFilterParams,
|
|
52
|
+
countActiveDataTableFilters
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=applyDataTableFilters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyDataTableFilters.js","sources":["../../../../src/components/UI/DataTable/applyDataTableFilters.ts"],"sourcesContent":["import { countActiveFilters, isFilterValueEmpty } from '@/components/Search/filters';\n\nimport type { IDataTableFiltersConfig, IDataTableRow, TDataTableFilterField, TDataTableFilterValues } from './types';\n\nconst isFieldActive = <T extends IDataTableRow>(\n field: TDataTableFilterField<T>,\n values: TDataTableFilterValues,\n): boolean => !isFilterValueEmpty(field, values?.[field.key]);\n\n/**\n * CLIENT-mode filtering driven by the table's filter config. Only active fields\n * that declare a `predicate` narrow the rows. Server-only fields (no\n * `predicate`) are ignored here. `combinator` decides whether a row must pass\n * every active field or at least one.\n */\nexport const applyDataTableFilters = <T extends IDataTableRow>(\n rows: Array<T>,\n filters: IDataTableFiltersConfig<T> | undefined,\n values: TDataTableFilterValues,\n): Array<T> => {\n if (!filters) return rows;\n\n const activeFields = (filters.fields ?? []).filter((field) => isFieldActive(field, values) && field.predicate);\n if (activeFields.length === 0) return rows;\n\n const matches = (row: T, field: TDataTableFilterField<T>) =>\n field.predicate ? field.predicate(row, values?.[field.key]) : true;\n\n if (filters.combinator === 'OR') {\n return (rows ?? []).filter((row) => activeFields.some((field) => matches(row, field)));\n }\n\n return (rows ?? []).filter((row) => activeFields.every((field) => matches(row, field)));\n};\n\n/**\n * SERVER-mode counterpart: collects the backend query params from every active\n * field that declares `toServerParams`. The host merges these into its fetch\n * instead of filtering in memory.\n */\nexport const buildDataTableFilterParams = <T extends IDataTableRow>(\n filters: IDataTableFiltersConfig<T> | undefined,\n values: TDataTableFilterValues,\n): Record<string, unknown> => {\n if (!filters) return {};\n\n return (filters.fields ?? []).reduce<Record<string, unknown>>((params, field) => {\n if (!isFieldActive(field, values) || !field.toServerParams) return params;\n\n return { ...params, ...field.toServerParams(values?.[field.key]) };\n }, {});\n};\n\n/** Number of active filter fields. Drives the filter button badge count. */\nexport const countActiveDataTableFilters = <T extends IDataTableRow>(\n filters: IDataTableFiltersConfig<T> | undefined,\n values: TDataTableFilterValues,\n): number => (filters ? countActiveFilters(filters.fields ?? [], values ?? {}) : 0);\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,gBAAgB,CACpB,OACA,WACY,CAAC,mBAAmB,OAAO,SAAS,MAAM,GAAG,CAAC;AAQrD,MAAM,wBAAwB,CACnC,MACA,SACA,WACa;AACb,MAAI,CAAC,QAAS,QAAO;AAErB,QAAM,gBAAgB,QAAQ,UAAU,CAAA,GAAI,OAAO,CAAC,UAAU,cAAc,OAAO,MAAM,KAAK,MAAM,SAAS;AAC7G,MAAI,aAAa,WAAW,EAAG,QAAO;AAEtC,QAAM,UAAU,CAAC,KAAQ,UACvB,MAAM,YAAY,MAAM,UAAU,KAAK,SAAS,MAAM,GAAG,CAAC,IAAI;AAEhE,MAAI,QAAQ,eAAe,MAAM;AAC/B,YAAQ,QAAQ,CAAA,GAAI,OAAO,CAAC,QAAQ,aAAa,KAAK,CAAC,UAAU,QAAQ,KAAK,KAAK,CAAC,CAAC;AAAA,EACvF;AAEA,UAAQ,QAAQ,CAAA,GAAI,OAAO,CAAC,QAAQ,aAAa,MAAM,CAAC,UAAU,QAAQ,KAAK,KAAK,CAAC,CAAC;AACxF;AAOO,MAAM,6BAA6B,CACxC,SACA,WAC4B;AAC5B,MAAI,CAAC,QAAS,QAAO,CAAA;AAErB,UAAQ,QAAQ,UAAU,CAAA,GAAI,OAAgC,CAAC,QAAQ,UAAU;AAC/E,QAAI,CAAC,cAAc,OAAO,MAAM,KAAK,CAAC,MAAM,eAAgB,QAAO;AAEnE,WAAO,EAAE,GAAG,QAAQ,GAAG,MAAM,eAAe,SAAS,MAAM,GAAG,CAAC,EAAA;AAAA,EACjE,GAAG,CAAA,CAAE;AACP;AAGO,MAAM,8BAA8B,CACzC,SACA,WACY,UAAU,mBAAmB,QAAQ,UAAU,CAAA,GAAI,UAAU,CAAA,CAAE,IAAI;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const isBulkValueEmpty: (value: unknown) => boolean;
|
|
2
|
+
/**
|
|
3
|
+
* Compares a cell draft with the row's current value. Editors produce strings
|
|
4
|
+
* while the document may store numbers, so both sides are compared in textual
|
|
5
|
+
* form; empty (null, '', []) is a single state, so editing and reverting does
|
|
6
|
+
* not count as a change.
|
|
7
|
+
*/
|
|
8
|
+
export declare const areBulkValuesEqual: (left: unknown, right: unknown) => boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const isBulkValueEmpty = (value) => Array.isArray(value) ? value.length === 0 : value == null || value === "";
|
|
2
|
+
const areBulkValuesEqual = (left, right) => {
|
|
3
|
+
if (isBulkValueEmpty(left) && isBulkValueEmpty(right)) return true;
|
|
4
|
+
if (isBulkValueEmpty(left) !== isBulkValueEmpty(right)) return false;
|
|
5
|
+
const leftEntries = (Array.isArray(left) ? left : [left]).map(String);
|
|
6
|
+
const rightEntries = (Array.isArray(right) ? right : [right]).map(String);
|
|
7
|
+
return leftEntries.length === rightEntries.length && leftEntries.every((entry, index) => entry === rightEntries[index]);
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
areBulkValuesEqual,
|
|
11
|
+
isBulkValueEmpty
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=bulkEditValues.js.map
|