@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,35 @@
|
|
|
1
|
+
import { Updater, VisibilityState } from '@tanstack/react-table';
|
|
2
|
+
import { IDataTableColumnConfig, IDataTableRow } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Column preferences of the nested detail table, owned by the DataTable (one
|
|
5
|
+
* shared state for every expanded row) and persisted under `${entityKey}:detail`.
|
|
6
|
+
*/
|
|
7
|
+
export interface IDataTableDetailColumnsState {
|
|
8
|
+
visibility: VisibilityState;
|
|
9
|
+
toggleVisibility: (columnId: string) => void;
|
|
10
|
+
order: Array<string>;
|
|
11
|
+
onOrderChange: (updater: Updater<Array<string>>) => void;
|
|
12
|
+
resetOrder: () => void;
|
|
13
|
+
}
|
|
14
|
+
interface IDataTableDetailTableProps<C extends IDataTableRow> {
|
|
15
|
+
columns: Array<IDataTableColumnConfig<C>>;
|
|
16
|
+
rows: Array<C>;
|
|
17
|
+
onRowClick?: (row: C) => void;
|
|
18
|
+
rowIsDimmed?: (row: C) => boolean;
|
|
19
|
+
emptyMessage?: string;
|
|
20
|
+
columnsState?: IDataTableDetailColumnsState;
|
|
21
|
+
/** Show the frozen actions column shadow (set while the card scrolls sideways). */
|
|
22
|
+
showFrozenShadow?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Nested table rendered inside the detail panel card of a `detailTable`
|
|
26
|
+
* expansion (see DataTableBody for the inset/tinted card that makes it read as
|
|
27
|
+
* content belonging to the parent row). The card is its own scroll context:
|
|
28
|
+
* the header pins at the card top, the first column freezes left and the actions
|
|
29
|
+
* column freezes right, all relative to the card. Reuses the standard cell
|
|
30
|
+
* renderer catalog and carries its own "Colunas" menu (visibility + drag
|
|
31
|
+
* reordering, shared with the parent toggle); it has no toolbar, sorting or
|
|
32
|
+
* pagination.
|
|
33
|
+
*/
|
|
34
|
+
declare const DataTableDetailTable: <C extends IDataTableRow>({ columns: columnsProp, rows: rowsProp, onRowClick, rowIsDimmed, emptyMessage, columnsState, showFrozenShadow, }: IDataTableDetailTableProps<C>) => import("react").JSX.Element;
|
|
35
|
+
export default DataTableDetailTable;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import classNames from "classnames";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
5
|
+
import NoDataFound from "../NoDataFound/index.js";
|
|
6
|
+
import DataTableActionsCell from "./cells/DataTableActionsCell.js";
|
|
7
|
+
import DataTableCell from "./cells/DataTableCell.js";
|
|
8
|
+
import { alignClass, resolveColumnWidthClass, FROZEN_COLUMN_SHADOW } from "./dataTableClasses.js";
|
|
9
|
+
import { DataTableColumnMenu } from "./DataTableColumnToggle.js";
|
|
10
|
+
import { isBadgeColumnType } from "./dataTableColumnWidths.js";
|
|
11
|
+
const DataTableDetailTable = ({
|
|
12
|
+
columns: columnsProp,
|
|
13
|
+
rows: rowsProp,
|
|
14
|
+
onRowClick,
|
|
15
|
+
rowIsDimmed,
|
|
16
|
+
emptyMessage,
|
|
17
|
+
columnsState,
|
|
18
|
+
showFrozenShadow = false
|
|
19
|
+
}) => {
|
|
20
|
+
const { t } = useTranslation("ui");
|
|
21
|
+
const columns = useMemo(() => Array.isArray(columnsProp) ? columnsProp : [], [columnsProp]);
|
|
22
|
+
const rows = useMemo(() => Array.isArray(rowsProp) ? rowsProp : [], [rowsProp]);
|
|
23
|
+
const columnOrder = columnsState?.order;
|
|
24
|
+
const columnVisibility = columnsState?.visibility;
|
|
25
|
+
const orderedColumns = useMemo(() => {
|
|
26
|
+
if (!columnOrder?.length) return columns;
|
|
27
|
+
const columnById = new Map(columns.map((column) => [column.id, column]));
|
|
28
|
+
const ordered = columnOrder.map((columnId) => columnById.get(columnId)).filter((column) => !!column);
|
|
29
|
+
const orderedIds = new Set(ordered.map((column) => column.id));
|
|
30
|
+
for (const column of columns) if (!orderedIds.has(column.id)) ordered.push(column);
|
|
31
|
+
return ordered;
|
|
32
|
+
}, [columns, columnOrder]);
|
|
33
|
+
const visibleColumns = useMemo(
|
|
34
|
+
() => orderedColumns.filter((column) => {
|
|
35
|
+
if (column.hideable === false) return true;
|
|
36
|
+
if (columnVisibility) return columnVisibility[column.id] !== false;
|
|
37
|
+
return !column.defaultHidden;
|
|
38
|
+
}),
|
|
39
|
+
[orderedColumns, columnVisibility]
|
|
40
|
+
);
|
|
41
|
+
const flexColumnId = useMemo(() => {
|
|
42
|
+
const candidates = visibleColumns.filter(
|
|
43
|
+
(column, index) => index > 0 && column.type !== "actions" && !isBadgeColumnType(column.type)
|
|
44
|
+
);
|
|
45
|
+
return candidates[candidates.length - 1]?.id ?? null;
|
|
46
|
+
}, [visibleColumns]);
|
|
47
|
+
if (rows.length === 0) {
|
|
48
|
+
return /* @__PURE__ */ jsx("div", { className: "px-4 py-3", children: /* @__PURE__ */ jsx(NoDataFound, { compact: true, message: emptyMessage ?? t("dataTable.empty") }) });
|
|
49
|
+
}
|
|
50
|
+
const lastColumnIndex = visibleColumns.length - 1;
|
|
51
|
+
const isActionsColumn = (column, index) => index === lastColumnIndex && column.type === "actions";
|
|
52
|
+
return /* @__PURE__ */ jsxs("table", { className: "w-full table-auto border-separate border-spacing-0", children: [
|
|
53
|
+
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsx("tr", { className: "bg-muted", children: visibleColumns.map((column, columnIndex) => {
|
|
54
|
+
const isFirstColumn = columnIndex === 0;
|
|
55
|
+
const isActions = isActionsColumn(column, columnIndex);
|
|
56
|
+
return /* @__PURE__ */ jsx(
|
|
57
|
+
"th",
|
|
58
|
+
{
|
|
59
|
+
className: classNames(
|
|
60
|
+
// Header band pinned to the top of the enclosing card (the
|
|
61
|
+
// card provides the border and rounded corners, so no per-cell
|
|
62
|
+
// rounding here). z tiers are local to the card's own scroll
|
|
63
|
+
// context: header above rows, frozen first/actions header
|
|
64
|
+
// cells above the scrolling header cells.
|
|
65
|
+
"sticky top-0 z-20 whitespace-nowrap border-b border-border bg-muted px-4 py-2.5 text-xxs font-semibold uppercase tracking-wide text-foreground-subtle",
|
|
66
|
+
alignClass(column.headerAlign ?? column.cellAlign),
|
|
67
|
+
resolveColumnWidthClass(column, "", { isFlexColumn: column.id === flexColumnId }),
|
|
68
|
+
isFirstColumn && "left-0 z-30",
|
|
69
|
+
isActions && "right-0 z-30",
|
|
70
|
+
isActions && showFrozenShadow && FROZEN_COLUMN_SHADOW
|
|
71
|
+
),
|
|
72
|
+
children: isFirstColumn ? /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center justify-between gap-2", children: [
|
|
73
|
+
/* @__PURE__ */ jsx("span", { children: column.header }),
|
|
74
|
+
columnsState && /* @__PURE__ */ jsx(
|
|
75
|
+
DataTableColumnMenu,
|
|
76
|
+
{
|
|
77
|
+
columns,
|
|
78
|
+
columnOrder: columnsState.order,
|
|
79
|
+
onColumnOrderChange: columnsState.onOrderChange,
|
|
80
|
+
resetColumnOrder: columnsState.resetOrder,
|
|
81
|
+
isColumnVisible: (columnId) => columnsState.visibility[columnId] !== false,
|
|
82
|
+
onToggleColumnVisibility: columnsState.toggleVisibility
|
|
83
|
+
}
|
|
84
|
+
)
|
|
85
|
+
] }) : column.header
|
|
86
|
+
},
|
|
87
|
+
column.id
|
|
88
|
+
);
|
|
89
|
+
}) }) }),
|
|
90
|
+
/* @__PURE__ */ jsx("tbody", { className: "[&_tr:last-child_td]:border-b-0", children: rows.map((row) => {
|
|
91
|
+
const isDimmed = rowIsDimmed?.(row) ?? false;
|
|
92
|
+
return /* @__PURE__ */ jsx(
|
|
93
|
+
"tr",
|
|
94
|
+
{
|
|
95
|
+
onClick: () => onRowClick?.(row),
|
|
96
|
+
className: classNames("bg-surface transition-colors", {
|
|
97
|
+
"cursor-pointer hover:bg-muted": !!onRowClick
|
|
98
|
+
}),
|
|
99
|
+
children: visibleColumns.map((column, columnIndex) => {
|
|
100
|
+
const isFirstColumn = columnIndex === 0;
|
|
101
|
+
const isActions = isActionsColumn(column, columnIndex);
|
|
102
|
+
const cellContent = column.type === "actions" && column.actions ? /* @__PURE__ */ jsx(DataTableActionsCell, { row, actions: column.actions }) : /* @__PURE__ */ jsx(DataTableCell, { column, row });
|
|
103
|
+
return /* @__PURE__ */ jsx(
|
|
104
|
+
"td",
|
|
105
|
+
{
|
|
106
|
+
className: classNames(
|
|
107
|
+
"border-b border-border bg-inherit px-4 py-2 align-middle",
|
|
108
|
+
alignClass(column.cellAlign),
|
|
109
|
+
resolveColumnWidthClass(column, "", { isFlexColumn: column.id === flexColumnId }),
|
|
110
|
+
{ "opacity-60": isDimmed && column.type !== "actions" },
|
|
111
|
+
isFirstColumn && "sticky left-0 z-10",
|
|
112
|
+
isActions && "sticky right-0 z-10",
|
|
113
|
+
isActions && showFrozenShadow && FROZEN_COLUMN_SHADOW
|
|
114
|
+
),
|
|
115
|
+
children: isFirstColumn ? /* @__PURE__ */ jsx("div", { className: "min-w-0", children: cellContent }) : cellContent
|
|
116
|
+
},
|
|
117
|
+
column.id
|
|
118
|
+
);
|
|
119
|
+
})
|
|
120
|
+
},
|
|
121
|
+
row.id
|
|
122
|
+
);
|
|
123
|
+
}) })
|
|
124
|
+
] });
|
|
125
|
+
};
|
|
126
|
+
export {
|
|
127
|
+
DataTableDetailTable as default
|
|
128
|
+
};
|
|
129
|
+
//# sourceMappingURL=DataTableDetailTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableDetailTable.js","sources":["../../../../src/components/UI/DataTable/DataTableDetailTable.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport type { Updater, VisibilityState } from '@tanstack/react-table';\n\nimport NoDataFound from '../NoDataFound';\n\nimport DataTableActionsCell from './cells/DataTableActionsCell';\nimport DataTableCell from './cells/DataTableCell';\nimport { alignClass, FROZEN_COLUMN_SHADOW, isBadgeColumnType, resolveColumnWidthClass } from './dataTableClasses';\nimport { DataTableColumnMenu } from './DataTableColumnToggle';\nimport type { IDataTableColumnConfig, IDataTableRow } from './types';\n\n/**\n * Column preferences of the nested detail table, owned by the DataTable (one\n * shared state for every expanded row) and persisted under `${entityKey}:detail`.\n */\nexport interface IDataTableDetailColumnsState {\n visibility: VisibilityState;\n toggleVisibility: (columnId: string) => void;\n order: Array<string>;\n onOrderChange: (updater: Updater<Array<string>>) => void;\n resetOrder: () => void;\n}\n\ninterface IDataTableDetailTableProps<C extends IDataTableRow> {\n columns: Array<IDataTableColumnConfig<C>>;\n rows: Array<C>;\n onRowClick?: (row: C) => void;\n rowIsDimmed?: (row: C) => boolean;\n emptyMessage?: string;\n columnsState?: IDataTableDetailColumnsState;\n /** Show the frozen actions column shadow (set while the card scrolls sideways). */\n showFrozenShadow?: boolean;\n}\n\n/**\n * Nested table rendered inside the detail panel card of a `detailTable`\n * expansion (see DataTableBody for the inset/tinted card that makes it read as\n * content belonging to the parent row). The card is its own scroll context:\n * the header pins at the card top, the first column freezes left and the actions\n * column freezes right, all relative to the card. Reuses the standard cell\n * renderer catalog and carries its own \"Colunas\" menu (visibility + drag\n * reordering, shared with the parent toggle); it has no toolbar, sorting or\n * pagination.\n */\nconst DataTableDetailTable = <C extends IDataTableRow>({\n columns: columnsProp,\n rows: rowsProp,\n onRowClick,\n rowIsDimmed,\n emptyMessage,\n columnsState,\n showFrozenShadow = false,\n}: IDataTableDetailTableProps<C>) => {\n const { t } = useTranslation('ui');\n\n const columns = useMemo(() => (Array.isArray(columnsProp) ? columnsProp : []), [columnsProp]);\n const rows = useMemo(() => (Array.isArray(rowsProp) ? rowsProp : []), [rowsProp]);\n\n const columnOrder = columnsState?.order;\n const columnVisibility = columnsState?.visibility;\n\n // Config columns re-sequenced by the persisted order; ids missing from the\n // order (defensive) are appended in config order.\n const orderedColumns = useMemo(() => {\n if (!columnOrder?.length) return columns;\n\n const columnById = new Map(columns.map((column) => [column.id, column]));\n const ordered = columnOrder\n .map((columnId) => columnById.get(columnId))\n .filter((column): column is IDataTableColumnConfig<C> => !!column);\n\n const orderedIds = new Set(ordered.map((column) => column.id));\n for (const column of columns) if (!orderedIds.has(column.id)) ordered.push(column);\n\n return ordered;\n }, [columns, columnOrder]);\n\n const visibleColumns = useMemo(\n () =>\n orderedColumns.filter((column) => {\n if (column.hideable === false) return true;\n if (columnVisibility) return columnVisibility[column.id] !== false;\n return !column.defaultHidden;\n }),\n [orderedColumns, columnVisibility],\n );\n\n // Under table-auto layout, width classes are only minimum hints: leftover\n // width spreads across every column, including actions, which would render it\n // wider than the parent's. One data column must absorb all slack (w-full) so\n // the actions column keeps its intrinsic width. When no visible column\n // declares w-full (e.g. the configured absorber was hidden), fall back to the\n // last non-actions column that is not the sticky first one.\n const flexColumnId = useMemo(() => {\n const candidates = visibleColumns.filter(\n (column, index) => index > 0 && column.type !== 'actions' && !isBadgeColumnType(column.type),\n );\n return candidates[candidates.length - 1]?.id ?? null;\n }, [visibleColumns]);\n\n if (rows.length === 0) {\n return (\n <div className=\"px-4 py-3\">\n <NoDataFound compact message={emptyMessage ?? t('dataTable.empty')} />\n </div>\n );\n }\n\n const lastColumnIndex = visibleColumns.length - 1;\n const isActionsColumn = (column: IDataTableColumnConfig<C>, index: number) =>\n index === lastColumnIndex && column.type === 'actions';\n\n return (\n <table className=\"w-full table-auto border-separate border-spacing-0\">\n <thead>\n <tr className=\"bg-muted\">\n {visibleColumns.map((column, columnIndex) => {\n const isFirstColumn = columnIndex === 0;\n const isActions = isActionsColumn(column, columnIndex);\n\n return (\n <th\n key={column.id}\n className={classNames(\n // Header band pinned to the top of the enclosing card (the\n // card provides the border and rounded corners, so no per-cell\n // rounding here). z tiers are local to the card's own scroll\n // context: header above rows, frozen first/actions header\n // cells above the scrolling header cells.\n 'sticky top-0 z-20 whitespace-nowrap border-b border-border bg-muted px-4 py-2.5 text-xxs font-semibold uppercase tracking-wide text-foreground-subtle',\n alignClass(column.headerAlign ?? column.cellAlign),\n resolveColumnWidthClass(column, '', { isFlexColumn: column.id === flexColumnId }),\n isFirstColumn && 'left-0 z-30',\n isActions && 'right-0 z-30',\n isActions && showFrozenShadow && FROZEN_COLUMN_SHADOW,\n )}\n >\n {isFirstColumn ? (\n <div className=\"flex min-w-0 items-center justify-between gap-2\">\n <span>{column.header}</span>\n {columnsState && (\n <DataTableColumnMenu\n columns={columns}\n columnOrder={columnsState.order}\n onColumnOrderChange={columnsState.onOrderChange}\n resetColumnOrder={columnsState.resetOrder}\n isColumnVisible={(columnId) => columnsState.visibility[columnId] !== false}\n onToggleColumnVisibility={columnsState.toggleVisibility}\n />\n )}\n </div>\n ) : (\n column.header\n )}\n </th>\n );\n })}\n </tr>\n </thead>\n\n <tbody className=\"[&_tr:last-child_td]:border-b-0\">\n {rows.map((row) => {\n const isDimmed = rowIsDimmed?.(row) ?? false;\n\n return (\n <tr\n key={row.id}\n onClick={() => onRowClick?.(row)}\n className={classNames('bg-surface transition-colors', {\n 'cursor-pointer hover:bg-muted': !!onRowClick,\n })}\n >\n {visibleColumns.map((column, columnIndex) => {\n const isFirstColumn = columnIndex === 0;\n const isActions = isActionsColumn(column, columnIndex);\n\n const cellContent =\n column.type === 'actions' && column.actions ? (\n <DataTableActionsCell row={row} actions={column.actions} />\n ) : (\n <DataTableCell column={column} row={row} />\n );\n\n return (\n <td\n key={column.id}\n className={classNames(\n 'border-b border-border bg-inherit px-4 py-2 align-middle',\n alignClass(column.cellAlign),\n resolveColumnWidthClass(column, '', { isFlexColumn: column.id === flexColumnId }),\n { 'opacity-60': isDimmed && column.type !== 'actions' },\n isFirstColumn && 'sticky left-0 z-10',\n isActions && 'sticky right-0 z-10',\n isActions && showFrozenShadow && FROZEN_COLUMN_SHADOW,\n )}\n >\n {isFirstColumn ? <div className=\"min-w-0\">{cellContent}</div> : cellContent}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n};\n\nexport default DataTableDetailTable;\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface IDataTableEditModeButtonProps {
|
|
3
|
+
active: boolean;
|
|
4
|
+
onToggle: () => void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Liga e desliga a edição em célula. Fica junto do controle de colunas, no rodapé
|
|
8
|
+
* da tabela: o modo pertence à tabela, não ao cabeçalho da página, e enquanto ele
|
|
9
|
+
* está ativo o clique na linha deixa de abrir o registro.
|
|
10
|
+
*/
|
|
11
|
+
declare const DataTableEditModeButton: React.FC<IDataTableEditModeButtonProps>;
|
|
12
|
+
export default DataTableEditModeButton;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { useTranslation } from "react-i18next";
|
|
4
|
+
import ControlledButton from "../../Form/ControlledButton.js";
|
|
5
|
+
import ControlledTooltip from "../ControlledTooltip.js";
|
|
6
|
+
import { MaterialSymbol } from "../MaterialSymbol/index.js";
|
|
7
|
+
const DataTableEditModeButton = ({ active, onToggle }) => {
|
|
8
|
+
const { t } = useTranslation("ui");
|
|
9
|
+
return /* @__PURE__ */ jsx(ControlledTooltip, { content: active ? t("dataTable.editMode.activeHint") : t("dataTable.editMode.inactiveHint"), children: /* @__PURE__ */ jsxs(
|
|
10
|
+
ControlledButton,
|
|
11
|
+
{
|
|
12
|
+
defaultHtmlButton: true,
|
|
13
|
+
onClick: onToggle,
|
|
14
|
+
"aria-pressed": active,
|
|
15
|
+
className: classNames(
|
|
16
|
+
"inline-flex shrink-0 items-center gap-1.5 rounded-lg border p-2.5 text-sm font-medium shadow-sm transition-colors",
|
|
17
|
+
active ? "border-brand-border bg-brand text-brand-fg hover:bg-brand-hover" : "border-border bg-surface text-foreground-subtle hover:bg-muted-hover hover:text-foreground-muted"
|
|
18
|
+
),
|
|
19
|
+
children: [
|
|
20
|
+
/* @__PURE__ */ jsx(MaterialSymbol, { icon: active ? "edit_off" : "edit", size: 18 }),
|
|
21
|
+
/* @__PURE__ */ jsx("span", { children: active ? t("dataTable.editMode.exit") : t("dataTable.editMode.enter") })
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
) });
|
|
25
|
+
};
|
|
26
|
+
export {
|
|
27
|
+
DataTableEditModeButton as default
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=DataTableEditModeButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableEditModeButton.js","sources":["../../../../src/components/UI/DataTable/DataTableEditModeButton.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport ControlledButton from '@/components/Form/ControlledButton';\nimport ControlledTooltip from '@/components/UI/ControlledTooltip';\nimport { MaterialSymbol } from '@/components/UI/MaterialSymbol';\n\ninterface IDataTableEditModeButtonProps {\n active: boolean;\n onToggle: () => void;\n}\n\n/**\n * Liga e desliga a edição em célula. Fica junto do controle de colunas, no rodapé\n * da tabela: o modo pertence à tabela, não ao cabeçalho da página, e enquanto ele\n * está ativo o clique na linha deixa de abrir o registro.\n */\nconst DataTableEditModeButton: React.FC<IDataTableEditModeButtonProps> = ({ active, onToggle }) => {\n const { t } = useTranslation('ui');\n\n return (\n <ControlledTooltip content={active ? t('dataTable.editMode.activeHint') : t('dataTable.editMode.inactiveHint')}>\n <ControlledButton\n defaultHtmlButton\n onClick={onToggle}\n aria-pressed={active}\n className={classNames(\n 'inline-flex shrink-0 items-center gap-1.5 rounded-lg border p-2.5 text-sm font-medium shadow-sm transition-colors',\n active\n ? 'border-brand-border bg-brand text-brand-fg hover:bg-brand-hover'\n : 'border-border bg-surface text-foreground-subtle hover:bg-muted-hover hover:text-foreground-muted',\n )}\n >\n <MaterialSymbol icon={active ? 'edit_off' : 'edit'} size={18} />\n <span>{active ? t('dataTable.editMode.exit') : t('dataTable.editMode.enter')}</span>\n </ControlledButton>\n </ControlledTooltip>\n );\n};\n\nexport default DataTableEditModeButton;\n"],"names":[],"mappings":";;;;;;AAkBA,MAAM,0BAAmE,CAAC,EAAE,QAAQ,eAAe;AACjG,QAAM,EAAE,EAAA,IAAM,eAAe,IAAI;AAEjC,SACE,oBAAC,qBAAkB,SAAS,SAAS,EAAE,+BAA+B,IAAI,EAAE,iCAAiC,GAC3G,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,mBAAiB;AAAA,MACjB,SAAS;AAAA,MACT,gBAAc;AAAA,MACd,WAAW;AAAA,QACT;AAAA,QACA,SACI,oEACA;AAAA,MAAA;AAAA,MAGN,UAAA;AAAA,QAAA,oBAAC,kBAAe,MAAM,SAAS,aAAa,QAAQ,MAAM,IAAI;AAAA,QAC9D,oBAAC,UAAM,UAAA,SAAS,EAAE,yBAAyB,IAAI,EAAE,0BAA0B,EAAA,CAAE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEjF;AAEJ;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { TFiltersSize, TFiltersVariant } from '../../Search/filters';
|
|
2
|
+
import { IDataTableFiltersConfig, IDataTableRow, TDataTableFilterValues } from './types';
|
|
3
|
+
interface IDataTableFiltersProps<T extends IDataTableRow> {
|
|
4
|
+
filters: IDataTableFiltersConfig<T>;
|
|
5
|
+
values: TDataTableFilterValues;
|
|
6
|
+
onChange: (values: TDataTableFilterValues) => void;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
variant?: TFiltersVariant;
|
|
9
|
+
size?: TFiltersSize;
|
|
10
|
+
/** Persists the applied values in the URL under `f.<urlKey>.<fieldKey>`. */
|
|
11
|
+
urlKey?: string;
|
|
12
|
+
onFirstOpen?: () => void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Adapter between a table config and the shared filter panel. The panel owns
|
|
16
|
+
* the draft, the dirty state, the badge count and the discard guard, so this
|
|
17
|
+
* file no longer mirrors state in a ref to survive the commit ordering.
|
|
18
|
+
*/
|
|
19
|
+
declare const DataTableFilters: <T extends IDataTableRow>({ filters, values, onChange, disabled, variant, size, urlKey, onFirstOpen, }: IDataTableFiltersProps<T>) => import("react").JSX.Element;
|
|
20
|
+
export default DataTableFilters;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import "classnames";
|
|
4
|
+
import "react-i18next";
|
|
5
|
+
import "../../Form/ControlledButton.js";
|
|
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 "../../Form/ControlledSwitch.js";
|
|
15
|
+
import "date-fns";
|
|
16
|
+
import "date-fns/locale";
|
|
17
|
+
import "react-day-picker";
|
|
18
|
+
import "../ControlledPopover.js";
|
|
19
|
+
import "react-day-picker/style.css";
|
|
20
|
+
import "../../DateTime/DateRangePicker.js";
|
|
21
|
+
import "react-infinite-scroll-component";
|
|
22
|
+
import "react-window";
|
|
23
|
+
import "../NoDataFound/index.js";
|
|
24
|
+
/* empty css */
|
|
25
|
+
import "../../Search/filters/FiltersButton.js";
|
|
26
|
+
import "../../../helpers/utilityHelpers.js";
|
|
27
|
+
import FiltersPanel from "../../Search/filters/FiltersPanel.js";
|
|
28
|
+
import "../../Navigation/UiNavigationContext.js";
|
|
29
|
+
const DataTableFilters = ({
|
|
30
|
+
filters,
|
|
31
|
+
values,
|
|
32
|
+
onChange,
|
|
33
|
+
disabled,
|
|
34
|
+
variant,
|
|
35
|
+
size,
|
|
36
|
+
urlKey,
|
|
37
|
+
onFirstOpen
|
|
38
|
+
}) => {
|
|
39
|
+
const schema = useMemo(
|
|
40
|
+
() => ({
|
|
41
|
+
title: filters?.title,
|
|
42
|
+
subtitle: filters?.subtitle,
|
|
43
|
+
groups: filters?.groups,
|
|
44
|
+
fields: filters?.fields ?? []
|
|
45
|
+
}),
|
|
46
|
+
[filters]
|
|
47
|
+
);
|
|
48
|
+
return /* @__PURE__ */ jsx(
|
|
49
|
+
FiltersPanel,
|
|
50
|
+
{
|
|
51
|
+
schema,
|
|
52
|
+
values,
|
|
53
|
+
onChange,
|
|
54
|
+
disabled,
|
|
55
|
+
variant,
|
|
56
|
+
size,
|
|
57
|
+
urlKey,
|
|
58
|
+
onFirstOpen
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
};
|
|
62
|
+
export {
|
|
63
|
+
DataTableFilters as default
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=DataTableFilters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableFilters.js","sources":["../../../../src/components/UI/DataTable/DataTableFilters.tsx"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { FiltersPanel, IFiltersSchema, TFiltersSize, TFiltersVariant } from '@/components/Search/filters';\n\nimport type { IDataTableFiltersConfig, IDataTableRow, TDataTableFilterValues } from './types';\n\ninterface IDataTableFiltersProps<T extends IDataTableRow> {\n filters: IDataTableFiltersConfig<T>;\n values: TDataTableFilterValues;\n onChange: (values: TDataTableFilterValues) => void;\n disabled?: boolean;\n variant?: TFiltersVariant;\n size?: TFiltersSize;\n /** Persists the applied values in the URL under `f.<urlKey>.<fieldKey>`. */\n urlKey?: string;\n onFirstOpen?: () => void;\n}\n\n/**\n * Adapter between a table config and the shared filter panel. The panel owns\n * the draft, the dirty state, the badge count and the discard guard, so this\n * file no longer mirrors state in a ref to survive the commit ordering.\n */\nconst DataTableFilters = <T extends IDataTableRow>({\n filters,\n values,\n onChange,\n disabled,\n variant,\n size,\n urlKey,\n onFirstOpen,\n}: IDataTableFiltersProps<T>) => {\n const schema = useMemo<IFiltersSchema>(\n () => ({\n title: filters?.title,\n subtitle: filters?.subtitle,\n groups: filters?.groups,\n fields: filters?.fields ?? [],\n }),\n [filters],\n );\n\n return (\n <FiltersPanel\n schema={schema}\n values={values}\n onChange={onChange}\n disabled={disabled}\n variant={variant}\n size={size}\n urlKey={urlKey}\n onFirstOpen={onFirstOpen}\n />\n );\n};\n\nexport default DataTableFilters;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAM,mBAAmB,CAA0B;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAiC;AAC/B,QAAM,SAAS;AAAA,IACb,OAAO;AAAA,MACL,OAAO,SAAS;AAAA,MAChB,UAAU,SAAS;AAAA,MACnB,QAAQ,SAAS;AAAA,MACjB,QAAQ,SAAS,UAAU,CAAA;AAAA,IAAC;AAAA,IAE9B,CAAC,OAAO;AAAA,EAAA;AAGV,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Table, Updater } from '@tanstack/react-table';
|
|
2
|
+
import { IDataTableColumnConfig, IDataTableRow } from './types';
|
|
3
|
+
interface IDataTableHeadProps<T extends IDataTableRow> {
|
|
4
|
+
table: Table<T>;
|
|
5
|
+
columns: Array<IDataTableColumnConfig<T>>;
|
|
6
|
+
columnConfigById: Map<string, IDataTableColumnConfig<T>>;
|
|
7
|
+
/** Row-derived widths for actions/badge columns; other columns fall back to the seed. */
|
|
8
|
+
columnContentWidths: Map<string, number>;
|
|
9
|
+
columnOrder: Array<string>;
|
|
10
|
+
onColumnOrderChange: (updater: Updater<Array<string>>) => void;
|
|
11
|
+
resetColumnOrder: () => void;
|
|
12
|
+
resetColumnSizing: () => void;
|
|
13
|
+
onHeaderSortClick: (columnConfig: IDataTableColumnConfig<T>) => void;
|
|
14
|
+
resolveSortDirection: (columnConfig: IDataTableColumnConfig<T>) => false | 'asc' | 'desc';
|
|
15
|
+
/** Omite o toggle de colunas do cabeçalho (quando o host o renderiza no toolbar). */
|
|
16
|
+
hideColumnToggle?: boolean;
|
|
17
|
+
/** Column that absorbs leftover horizontal space under table-fixed. */
|
|
18
|
+
flexColumnId?: string | null;
|
|
19
|
+
/** Show the frozen actions column shadow (set while the table scrolls sideways). */
|
|
20
|
+
showActionsShadow?: boolean;
|
|
21
|
+
/** Denser cell padding for embedded/editor (fit) layouts. */
|
|
22
|
+
dense?: boolean;
|
|
23
|
+
/** Roomier cell padding and type scale, for tables that need to read bigger. */
|
|
24
|
+
spacious?: boolean;
|
|
25
|
+
}
|
|
26
|
+
declare const DataTableHead: <T extends IDataTableRow>({ table, columns, columnConfigById, columnContentWidths, columnOrder, onColumnOrderChange, resetColumnOrder, resetColumnSizing, onHeaderSortClick, resolveSortDirection, hideColumnToggle, flexColumnId, showActionsShadow, dense, spacious, }: IDataTableHeadProps<T>) => import("react").JSX.Element;
|
|
27
|
+
export default DataTableHead;
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { jsxs, Fragment, 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 ControlledTooltip from "../ControlledTooltip.js";
|
|
6
|
+
import { MaterialSymbol } from "../MaterialSymbol/index.js";
|
|
7
|
+
import { flexRender } from "@tanstack/react-table";
|
|
8
|
+
import { alignClass, FROZEN_LEFT_COLUMN_SHADOW, FROZEN_COLUMN_SHADOW } from "./dataTableClasses.js";
|
|
9
|
+
import DataTableColumnToggle from "./DataTableColumnToggle.js";
|
|
10
|
+
import { resolveColumnMinWidthPx } from "./dataTableColumnWidths.js";
|
|
11
|
+
const DataTableHead = ({
|
|
12
|
+
table,
|
|
13
|
+
columns,
|
|
14
|
+
columnConfigById,
|
|
15
|
+
columnContentWidths,
|
|
16
|
+
columnOrder,
|
|
17
|
+
onColumnOrderChange,
|
|
18
|
+
resetColumnOrder,
|
|
19
|
+
resetColumnSizing,
|
|
20
|
+
onHeaderSortClick,
|
|
21
|
+
resolveSortDirection,
|
|
22
|
+
hideColumnToggle = false,
|
|
23
|
+
flexColumnId = null,
|
|
24
|
+
showActionsShadow = false,
|
|
25
|
+
dense = false,
|
|
26
|
+
spacious = false
|
|
27
|
+
}) => {
|
|
28
|
+
const { t } = useTranslation("ui");
|
|
29
|
+
const columnSizing = table.getState().columnSizing;
|
|
30
|
+
const { isResizingColumn } = table.getState().columnSizingInfo;
|
|
31
|
+
const renderResizeHandle = (header) => {
|
|
32
|
+
if (!header.column.getCanResize()) return null;
|
|
33
|
+
if (header.column.id === flexColumnId && !columnSizing[header.column.id]) return null;
|
|
34
|
+
const isResizing = isResizingColumn === header.column.id;
|
|
35
|
+
return /* @__PURE__ */ jsx(ControlledTooltip, { content: t("dataTable.resizeColumn"), children: /* @__PURE__ */ jsx(
|
|
36
|
+
ControlledButton,
|
|
37
|
+
{
|
|
38
|
+
defaultHtmlButton: true,
|
|
39
|
+
onMouseDown: header.getResizeHandler(),
|
|
40
|
+
onTouchStart: header.getResizeHandler(),
|
|
41
|
+
onDoubleClick: () => header.column.resetSize(),
|
|
42
|
+
onClick: (event) => event.stopPropagation(),
|
|
43
|
+
className: classNames(
|
|
44
|
+
"absolute right-0 top-0 z-40 h-full w-3 cursor-col-resize touch-none select-none",
|
|
45
|
+
"before:absolute before:inset-y-1 before:right-0 before:w-0.5 before:rounded-full before:content-['']",
|
|
46
|
+
isResizing ? "before:bg-brand" : "before:bg-transparent hover:before:bg-brand-hover"
|
|
47
|
+
),
|
|
48
|
+
children: null
|
|
49
|
+
}
|
|
50
|
+
) });
|
|
51
|
+
};
|
|
52
|
+
const renderSortIndicator = (columnConfig) => {
|
|
53
|
+
if (!columnConfig.sortable) return null;
|
|
54
|
+
const direction = resolveSortDirection(columnConfig);
|
|
55
|
+
const icon = direction === "desc" ? "arrow_downward" : "arrow_upward";
|
|
56
|
+
return /* @__PURE__ */ jsx(
|
|
57
|
+
MaterialSymbol,
|
|
58
|
+
{
|
|
59
|
+
icon,
|
|
60
|
+
size: 14,
|
|
61
|
+
className: classNames("transition-opacity", {
|
|
62
|
+
"text-brand-emphasis opacity-100": !!direction,
|
|
63
|
+
"opacity-30": !direction
|
|
64
|
+
})
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
};
|
|
68
|
+
const visibleColumns = table.getVisibleLeafColumns();
|
|
69
|
+
const leafHeaders = table.getHeaderGroups()[0]?.headers ?? [];
|
|
70
|
+
const headerGroupSegments = leafHeaders.reduce((segments, header, index) => {
|
|
71
|
+
const label = columnConfigById.get(header.column.id)?.headerGroupLabel ?? null;
|
|
72
|
+
const lastSegment = segments[segments.length - 1];
|
|
73
|
+
if (lastSegment && lastSegment.label === label) {
|
|
74
|
+
lastSegment.headers.push({ header, index });
|
|
75
|
+
return segments;
|
|
76
|
+
}
|
|
77
|
+
segments.push({ label, headers: [{ header, index }] });
|
|
78
|
+
return segments;
|
|
79
|
+
}, []);
|
|
80
|
+
const hasHeaderGroupRow = headerGroupSegments.some((segment) => segment.label !== null);
|
|
81
|
+
const renderColumnHeaderCell = (header, headerIndex, totalHeaders, placement) => {
|
|
82
|
+
const columnConfig = columnConfigById.get(header.column.id);
|
|
83
|
+
const isSortable = !!columnConfig?.sortable;
|
|
84
|
+
const isFirstColumn = headerIndex === 0;
|
|
85
|
+
const isLastColumn = headerIndex === totalHeaders - 1;
|
|
86
|
+
const isStickyLeft = isFirstColumn;
|
|
87
|
+
const isStickyRight = isLastColumn && columnConfig?.type === "actions";
|
|
88
|
+
const rawHeaderContent = isSortable ? /* @__PURE__ */ jsxs(
|
|
89
|
+
ControlledButton,
|
|
90
|
+
{
|
|
91
|
+
defaultHtmlButton: true,
|
|
92
|
+
onClick: () => columnConfig && onHeaderSortClick(columnConfig),
|
|
93
|
+
className: "inline-flex cursor-pointer items-center gap-1 uppercase hover:text-foreground-muted",
|
|
94
|
+
children: [
|
|
95
|
+
flexRender(header.column.columnDef.header, header.getContext()),
|
|
96
|
+
columnConfig && renderSortIndicator(columnConfig)
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
) : flexRender(header.column.columnDef.header, header.getContext());
|
|
100
|
+
const headerContent = columnConfig?.headerTooltip ? /* @__PURE__ */ jsx(ControlledTooltip, { content: columnConfig.headerTooltip, children: /* @__PURE__ */ jsx("span", { className: "inline-flex max-w-full", children: rawHeaderContent }) }) : rawHeaderContent;
|
|
101
|
+
return /* @__PURE__ */ jsxs(
|
|
102
|
+
"th",
|
|
103
|
+
{
|
|
104
|
+
rowSpan: placement === "spanning" ? 2 : void 0,
|
|
105
|
+
className: classNames(
|
|
106
|
+
"sticky z-20 whitespace-nowrap bg-muted font-semibold uppercase tracking-wide text-foreground-subtle",
|
|
107
|
+
// The leaf row sits below the band row (fixed h-6) and closes the
|
|
108
|
+
// header's bottom edge; the other placements own both edges.
|
|
109
|
+
placement === "leaf" ? "top-6 border-b border-border" : "top-0 border-y border-border",
|
|
110
|
+
// Outer edges come from the column's table position, not the row
|
|
111
|
+
// position: a banded header splits columns across two rows, so the
|
|
112
|
+
// `first:`/`last:` pseudo-classes would decorate the wrong cells.
|
|
113
|
+
isFirstColumn && "border-l",
|
|
114
|
+
isFirstColumn && (placement === "leaf" ? "rounded-bl-md" : "rounded-l-md"),
|
|
115
|
+
isLastColumn && "border-r",
|
|
116
|
+
isLastColumn && (placement === "leaf" ? "rounded-br-md" : "rounded-r-md"),
|
|
117
|
+
placement === "spanning" && "align-middle",
|
|
118
|
+
spacious ? "text-xs" : "text-xxs",
|
|
119
|
+
placement === "leaf" ? dense ? "px-3 py-1" : spacious ? "px-5 py-1.5" : "px-4 py-1" : dense ? "px-3 py-1.5" : spacious ? "px-5 py-3.5" : "px-4 py-2.5",
|
|
120
|
+
alignClass(columnConfig?.headerAlign ?? columnConfig?.cellAlign),
|
|
121
|
+
isStickyLeft && "left-0 z-30",
|
|
122
|
+
isStickyLeft && showActionsShadow && FROZEN_LEFT_COLUMN_SHADOW,
|
|
123
|
+
isStickyRight && "right-0 z-30",
|
|
124
|
+
isStickyRight && showActionsShadow && FROZEN_COLUMN_SHADOW
|
|
125
|
+
),
|
|
126
|
+
style: {
|
|
127
|
+
minWidth: columnContentWidths.get(header.column.id) ?? resolveColumnMinWidthPx(columnConfig, {
|
|
128
|
+
isFirstColumn,
|
|
129
|
+
hasColumnToggle: isFirstColumn && !hideColumnToggle
|
|
130
|
+
})
|
|
131
|
+
},
|
|
132
|
+
children: [
|
|
133
|
+
isFirstColumn && !hideColumnToggle ? /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2", children: [
|
|
134
|
+
headerContent,
|
|
135
|
+
/* @__PURE__ */ jsx(
|
|
136
|
+
DataTableColumnToggle,
|
|
137
|
+
{
|
|
138
|
+
table,
|
|
139
|
+
columns,
|
|
140
|
+
columnOrder,
|
|
141
|
+
onColumnOrderChange,
|
|
142
|
+
resetColumnOrder,
|
|
143
|
+
resetColumnSizing
|
|
144
|
+
}
|
|
145
|
+
)
|
|
146
|
+
] }) : headerContent,
|
|
147
|
+
renderResizeHandle(header)
|
|
148
|
+
]
|
|
149
|
+
},
|
|
150
|
+
header.id
|
|
151
|
+
);
|
|
152
|
+
};
|
|
153
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
154
|
+
/* @__PURE__ */ jsx("colgroup", { children: visibleColumns.map((leafColumn, columnIndex) => {
|
|
155
|
+
const colConfig = columnConfigById.get(leafColumn.id);
|
|
156
|
+
const isFirstColumn = columnIndex === 0;
|
|
157
|
+
const isFlexColumn = leafColumn.id === flexColumnId && !columnSizing[leafColumn.id];
|
|
158
|
+
const minWidthPx = columnContentWidths.get(leafColumn.id) ?? resolveColumnMinWidthPx(colConfig, {
|
|
159
|
+
isFirstColumn,
|
|
160
|
+
hasColumnToggle: isFirstColumn && !hideColumnToggle
|
|
161
|
+
});
|
|
162
|
+
return /* @__PURE__ */ jsx(
|
|
163
|
+
"col",
|
|
164
|
+
{
|
|
165
|
+
style: isFlexColumn ? { minWidth: minWidthPx } : { width: leafColumn.getSize(), minWidth: minWidthPx }
|
|
166
|
+
},
|
|
167
|
+
leafColumn.id
|
|
168
|
+
);
|
|
169
|
+
}) }),
|
|
170
|
+
/* @__PURE__ */ jsx("thead", { children: hasHeaderGroupRow ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
171
|
+
/* @__PURE__ */ jsx("tr", { className: "bg-muted", children: headerGroupSegments.map(
|
|
172
|
+
(segment) => segment.label === null ? segment.headers.map(
|
|
173
|
+
({ header, index }) => renderColumnHeaderCell(header, index, leafHeaders.length, "spanning")
|
|
174
|
+
) : /* @__PURE__ */ jsx(
|
|
175
|
+
"th",
|
|
176
|
+
{
|
|
177
|
+
colSpan: segment.headers.length,
|
|
178
|
+
className: classNames(
|
|
179
|
+
"sticky top-0 z-20 h-6 whitespace-nowrap border-x border-y border-border bg-muted px-3 py-0 text-center align-middle font-semibold uppercase tracking-wide text-foreground-subtle",
|
|
180
|
+
spacious ? "text-xs" : "text-xxs",
|
|
181
|
+
segment.headers[0]?.index === 0 && "rounded-tl-md",
|
|
182
|
+
segment.headers[segment.headers.length - 1]?.index === leafHeaders.length - 1 && "rounded-tr-md"
|
|
183
|
+
),
|
|
184
|
+
children: segment.label
|
|
185
|
+
},
|
|
186
|
+
`band:${segment.headers[0]?.header.id}`
|
|
187
|
+
)
|
|
188
|
+
) }),
|
|
189
|
+
/* @__PURE__ */ jsx("tr", { className: "bg-muted", children: headerGroupSegments.filter((segment) => segment.label !== null).flatMap((segment) => segment.headers).map(({ header, index }) => renderColumnHeaderCell(header, index, leafHeaders.length, "leaf")) })
|
|
190
|
+
] }) : /* @__PURE__ */ jsx("tr", { className: "bg-muted", children: leafHeaders.map(
|
|
191
|
+
(header, headerIndex) => renderColumnHeaderCell(header, headerIndex, leafHeaders.length, "single")
|
|
192
|
+
) }) })
|
|
193
|
+
] });
|
|
194
|
+
};
|
|
195
|
+
export {
|
|
196
|
+
DataTableHead as default
|
|
197
|
+
};
|
|
198
|
+
//# sourceMappingURL=DataTableHead.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableHead.js","sources":["../../../../src/components/UI/DataTable/DataTableHead.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport ControlledButton from '@/components/Form/ControlledButton';\nimport ControlledTooltip from '@/components/UI/ControlledTooltip';\nimport { MaterialSymbol } from '@/components/UI/MaterialSymbol';\nimport { flexRender, type Header, type Table, type Updater } from '@tanstack/react-table';\n\nimport { alignClass, FROZEN_COLUMN_SHADOW, FROZEN_LEFT_COLUMN_SHADOW } from './dataTableClasses';\nimport DataTableColumnToggle from './DataTableColumnToggle';\nimport { resolveColumnMinWidthPx } from './dataTableColumnWidths';\nimport type { IDataTableColumnConfig, IDataTableRow } from './types';\n\ninterface IDataTableHeadProps<T extends IDataTableRow> {\n table: Table<T>;\n columns: Array<IDataTableColumnConfig<T>>;\n columnConfigById: Map<string, IDataTableColumnConfig<T>>;\n /** Row-derived widths for actions/badge columns; other columns fall back to the seed. */\n columnContentWidths: Map<string, number>;\n columnOrder: Array<string>;\n onColumnOrderChange: (updater: Updater<Array<string>>) => void;\n resetColumnOrder: () => void;\n resetColumnSizing: () => void;\n onHeaderSortClick: (columnConfig: IDataTableColumnConfig<T>) => void;\n resolveSortDirection: (columnConfig: IDataTableColumnConfig<T>) => false | 'asc' | 'desc';\n /** Omite o toggle de colunas do cabeçalho (quando o host o renderiza no toolbar). */\n hideColumnToggle?: boolean;\n /** Column that absorbs leftover horizontal space under table-fixed. */\n flexColumnId?: string | null;\n /** Show the frozen actions column shadow (set while the table scrolls sideways). */\n showActionsShadow?: boolean;\n /** Denser cell padding for embedded/editor (fit) layouts. */\n dense?: boolean;\n /** Roomier cell padding and type scale, for tables that need to read bigger. */\n spacious?: boolean;\n}\n\nconst DataTableHead = <T extends IDataTableRow>({\n table,\n columns,\n columnConfigById,\n columnContentWidths,\n columnOrder,\n onColumnOrderChange,\n resetColumnOrder,\n resetColumnSizing,\n onHeaderSortClick,\n resolveSortDirection,\n hideColumnToggle = false,\n flexColumnId = null,\n showActionsShadow = false,\n dense = false,\n spacious = false,\n}: IDataTableHeadProps<T>) => {\n const { t } = useTranslation('ui');\n\n const columnSizing = table.getState().columnSizing;\n const { isResizingColumn } = table.getState().columnSizingInfo;\n\n const renderResizeHandle = (header: Header<T, unknown>) => {\n if (!header.column.getCanResize()) return null;\n if (header.column.id === flexColumnId && !columnSizing[header.column.id]) return null;\n\n const isResizing = isResizingColumn === header.column.id;\n\n return (\n <ControlledTooltip content={t('dataTable.resizeColumn')}>\n <ControlledButton\n defaultHtmlButton\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n onDoubleClick={() => header.column.resetSize()}\n onClick={(event) => event.stopPropagation()}\n className={classNames(\n 'absolute right-0 top-0 z-40 h-full w-3 cursor-col-resize touch-none select-none',\n \"before:absolute before:inset-y-1 before:right-0 before:w-0.5 before:rounded-full before:content-['']\",\n isResizing ? 'before:bg-brand' : 'before:bg-transparent hover:before:bg-brand-hover',\n )}\n >\n {null}\n </ControlledButton>\n </ControlledTooltip>\n );\n };\n\n const renderSortIndicator = (columnConfig: IDataTableColumnConfig<T>) => {\n if (!columnConfig.sortable) return null;\n\n const direction = resolveSortDirection(columnConfig);\n const icon = direction === 'desc' ? 'arrow_downward' : 'arrow_upward';\n\n return (\n <MaterialSymbol\n icon={icon}\n size={14}\n className={classNames('transition-opacity', {\n 'text-brand-emphasis opacity-100': !!direction,\n 'opacity-30': !direction,\n })}\n />\n );\n };\n\n const visibleColumns = table.getVisibleLeafColumns();\n const leafHeaders = table.getHeaderGroups()[0]?.headers ?? [];\n\n // Banded header. The header keeps its single-row height: columns WITHOUT a\n // `headerGroupLabel` render one cell spanning both rows (rowSpan 2, centered),\n // while contiguous columns sharing a label split that same height into the\n // group label (band row, fixed h-6) and their own labels (leaf row).\n const headerGroupSegments = leafHeaders.reduce<\n Array<{ label: string | null; headers: Array<{ header: Header<T, unknown>; index: number }> }>\n >((segments, header, index) => {\n const label = columnConfigById.get(header.column.id)?.headerGroupLabel ?? null;\n const lastSegment = segments[segments.length - 1];\n\n if (lastSegment && lastSegment.label === label) {\n lastSegment.headers.push({ header, index });\n return segments;\n }\n\n segments.push({ label, headers: [{ header, index }] });\n return segments;\n }, []);\n const hasHeaderGroupRow = headerGroupSegments.some((segment) => segment.label !== null);\n\n // `single`: the only row (no bands). `spanning`: ungrouped column spanning both\n // rows of a banded header. `leaf`: grouped column's own label under its band.\n const renderColumnHeaderCell = (\n header: Header<T, unknown>,\n headerIndex: number,\n totalHeaders: number,\n placement: 'single' | 'spanning' | 'leaf',\n ) => {\n const columnConfig = columnConfigById.get(header.column.id);\n const isSortable = !!columnConfig?.sortable;\n const isFirstColumn = headerIndex === 0;\n const isLastColumn = headerIndex === totalHeaders - 1;\n const isStickyLeft = isFirstColumn;\n const isStickyRight = isLastColumn && columnConfig?.type === 'actions';\n\n const rawHeaderContent = isSortable ? (\n <ControlledButton\n defaultHtmlButton\n onClick={() => columnConfig && onHeaderSortClick(columnConfig)}\n className=\"inline-flex cursor-pointer items-center gap-1 uppercase hover:text-foreground-muted\"\n >\n {flexRender(header.column.columnDef.header, header.getContext())}\n {columnConfig && renderSortIndicator(columnConfig)}\n </ControlledButton>\n ) : (\n flexRender(header.column.columnDef.header, header.getContext())\n );\n\n const headerContent = columnConfig?.headerTooltip ? (\n <ControlledTooltip content={columnConfig.headerTooltip}>\n <span className=\"inline-flex max-w-full\">{rawHeaderContent}</span>\n </ControlledTooltip>\n ) : (\n rawHeaderContent\n );\n\n return (\n <th\n key={header.id}\n rowSpan={placement === 'spanning' ? 2 : undefined}\n className={classNames(\n 'sticky z-20 whitespace-nowrap bg-muted font-semibold uppercase tracking-wide text-foreground-subtle',\n // The leaf row sits below the band row (fixed h-6) and closes the\n // header's bottom edge; the other placements own both edges.\n placement === 'leaf' ? 'top-6 border-b border-border' : 'top-0 border-y border-border',\n // Outer edges come from the column's table position, not the row\n // position: a banded header splits columns across two rows, so the\n // `first:`/`last:` pseudo-classes would decorate the wrong cells.\n isFirstColumn && 'border-l',\n isFirstColumn && (placement === 'leaf' ? 'rounded-bl-md' : 'rounded-l-md'),\n isLastColumn && 'border-r',\n isLastColumn && (placement === 'leaf' ? 'rounded-br-md' : 'rounded-r-md'),\n placement === 'spanning' && 'align-middle',\n spacious ? 'text-xs' : 'text-xxs',\n placement === 'leaf'\n ? dense\n ? 'px-3 py-1'\n : spacious\n ? 'px-5 py-1.5'\n : 'px-4 py-1'\n : dense\n ? 'px-3 py-1.5'\n : spacious\n ? 'px-5 py-3.5'\n : 'px-4 py-2.5',\n alignClass(columnConfig?.headerAlign ?? columnConfig?.cellAlign),\n isStickyLeft && 'left-0 z-30',\n isStickyLeft && showActionsShadow && FROZEN_LEFT_COLUMN_SHADOW,\n isStickyRight && 'right-0 z-30',\n isStickyRight && showActionsShadow && FROZEN_COLUMN_SHADOW,\n )}\n style={{\n minWidth:\n columnContentWidths.get(header.column.id) ??\n resolveColumnMinWidthPx(columnConfig, {\n isFirstColumn,\n hasColumnToggle: isFirstColumn && !hideColumnToggle,\n }),\n }}\n >\n {isFirstColumn && !hideColumnToggle ? (\n <div className=\"flex items-center justify-between gap-2\">\n {headerContent}\n <DataTableColumnToggle\n table={table}\n columns={columns}\n columnOrder={columnOrder}\n onColumnOrderChange={onColumnOrderChange}\n resetColumnOrder={resetColumnOrder}\n resetColumnSizing={resetColumnSizing}\n />\n </div>\n ) : (\n headerContent\n )}\n {renderResizeHandle(header)}\n </th>\n );\n };\n\n return (\n <>\n <colgroup>\n {visibleColumns.map((leafColumn, columnIndex) => {\n const colConfig = columnConfigById.get(leafColumn.id);\n const isFirstColumn = columnIndex === 0;\n const isFlexColumn = leafColumn.id === flexColumnId && !columnSizing[leafColumn.id];\n const minWidthPx =\n columnContentWidths.get(leafColumn.id) ??\n resolveColumnMinWidthPx(colConfig, {\n isFirstColumn,\n hasColumnToggle: isFirstColumn && !hideColumnToggle,\n });\n\n return (\n <col\n key={leafColumn.id}\n style={isFlexColumn ? { minWidth: minWidthPx } : { width: leafColumn.getSize(), minWidth: minWidthPx }}\n />\n );\n })}\n </colgroup>\n\n <thead>\n {hasHeaderGroupRow ? (\n <>\n <tr className=\"bg-muted\">\n {headerGroupSegments.map((segment) =>\n segment.label === null ? (\n segment.headers.map(({ header, index }) =>\n renderColumnHeaderCell(header, index, leafHeaders.length, 'spanning'),\n )\n ) : (\n <th\n key={`band:${segment.headers[0]?.header.id}`}\n colSpan={segment.headers.length}\n className={classNames(\n 'sticky top-0 z-20 h-6 whitespace-nowrap border-x border-y border-border bg-muted px-3 py-0 text-center align-middle font-semibold uppercase tracking-wide text-foreground-subtle',\n spacious ? 'text-xs' : 'text-xxs',\n segment.headers[0]?.index === 0 && 'rounded-tl-md',\n segment.headers[segment.headers.length - 1]?.index === leafHeaders.length - 1 && 'rounded-tr-md',\n )}\n >\n {segment.label}\n </th>\n ),\n )}\n </tr>\n <tr className=\"bg-muted\">\n {headerGroupSegments\n .filter((segment) => segment.label !== null)\n .flatMap((segment) => segment.headers)\n .map(({ header, index }) => renderColumnHeaderCell(header, index, leafHeaders.length, 'leaf'))}\n </tr>\n </>\n ) : (\n <tr className=\"bg-muted\">\n {leafHeaders.map((header, headerIndex) =>\n renderColumnHeaderCell(header, headerIndex, leafHeaders.length, 'single'),\n )}\n </tr>\n )}\n </thead>\n </>\n );\n};\n\nexport default DataTableHead;\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface IDataTablePaginationProps {
|
|
2
|
+
pageSize: number;
|
|
3
|
+
numberOfPages: number;
|
|
4
|
+
currentPage: number;
|
|
5
|
+
setCurrentPage: (page: number) => void;
|
|
6
|
+
onPageSizeChange?: (pageSize: number) => void;
|
|
7
|
+
totalItems?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare const DATA_TABLE_MIN_PAGE_SIZE: number;
|
|
10
|
+
/**
|
|
11
|
+
* Compact, right-aligned pagination for the DataTable. Deliberately smaller and
|
|
12
|
+
* more discreet than the shared TableComponentPagination.
|
|
13
|
+
*/
|
|
14
|
+
declare const DataTablePagination: React.FC<IDataTablePaginationProps>;
|
|
15
|
+
export default DataTablePagination;
|