@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,25 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import OutlinedChip from "../../Chips/OutlinedChip.js";
|
|
4
|
+
const DataTableOriginCell = ({ value }) => {
|
|
5
|
+
if (!value) return /* @__PURE__ */ jsx("span", { className: "text-sm text-foreground-faint", children: "-" });
|
|
6
|
+
return /* @__PURE__ */ jsx("div", { className: "flex w-full min-w-0", children: /* @__PURE__ */ jsx(
|
|
7
|
+
OutlinedChip,
|
|
8
|
+
{
|
|
9
|
+
label: value.label,
|
|
10
|
+
tooltip: value.label,
|
|
11
|
+
className: classNames("w-full min-w-0 border uppercase", {
|
|
12
|
+
"border-info-border bg-info-soft text-info-emphasis": value.tone === "erp",
|
|
13
|
+
"border-brand-border bg-brand-soft text-brand-emphasis": value.tone === "custom",
|
|
14
|
+
"border-success-border bg-success-soft text-success-emphasis": value.tone === "official",
|
|
15
|
+
"border-warning-border bg-warning-soft text-warning-emphasis": value.tone === "legacy",
|
|
16
|
+
"border-border bg-muted text-foreground-muted": value.tone === "default"
|
|
17
|
+
}),
|
|
18
|
+
labelClassName: "truncate"
|
|
19
|
+
}
|
|
20
|
+
) });
|
|
21
|
+
};
|
|
22
|
+
export {
|
|
23
|
+
DataTableOriginCell as default
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=DataTableOriginCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableOriginCell.js","sources":["../../../../../src/components/UI/DataTable/cells/DataTableOriginCell.tsx"],"sourcesContent":["import classNames from 'classnames';\n\nimport OutlinedChip from '@/components/UI/Chips/OutlinedChip';\n\nimport type { IDataTableOriginValue } from '../types';\n\ninterface IDataTableOriginCellProps {\n value: IDataTableOriginValue | null | undefined;\n}\n\nconst DataTableOriginCell: React.FC<IDataTableOriginCellProps> = ({ value }) => {\n if (!value) return <span className=\"text-sm text-foreground-faint\">-</span>;\n\n return (\n <div className=\"flex w-full min-w-0\">\n <OutlinedChip\n label={value.label}\n tooltip={value.label}\n className={classNames('w-full min-w-0 border uppercase', {\n 'border-info-border bg-info-soft text-info-emphasis': value.tone === 'erp',\n 'border-brand-border bg-brand-soft text-brand-emphasis': value.tone === 'custom',\n 'border-success-border bg-success-soft text-success-emphasis': value.tone === 'official',\n 'border-warning-border bg-warning-soft text-warning-emphasis': value.tone === 'legacy',\n 'border-border bg-muted text-foreground-muted': value.tone === 'default',\n })}\n labelClassName=\"truncate\"\n />\n </div>\n );\n};\n\nexport default DataTableOriginCell;\n"],"names":[],"mappings":";;;AAUA,MAAM,sBAA2D,CAAC,EAAE,YAAY;AAC9E,MAAI,CAAC,MAAO,4BAAQ,QAAA,EAAK,WAAU,iCAAgC,UAAA,KAAC;AAEpE,SACE,oBAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO,MAAM;AAAA,MACb,SAAS,MAAM;AAAA,MACf,WAAW,WAAW,mCAAmC;AAAA,QACvD,sDAAsD,MAAM,SAAS;AAAA,QACrE,yDAAyD,MAAM,SAAS;AAAA,QACxE,+DAA+D,MAAM,SAAS;AAAA,QAC9E,+DAA+D,MAAM,SAAS;AAAA,QAC9E,gDAAgD,MAAM,SAAS;AAAA,MAAA,CAChE;AAAA,MACD,gBAAe;AAAA,IAAA;AAAA,EAAA,GAEnB;AAEJ;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import OutlinedChip from "../../Chips/OutlinedChip.js";
|
|
4
|
+
const DataTableStatusCell = ({ value }) => {
|
|
5
|
+
if (!value) return /* @__PURE__ */ jsx("span", { className: "text-sm text-foreground-faint", children: "-" });
|
|
6
|
+
const isActive = value.tone === "active";
|
|
7
|
+
return /* @__PURE__ */ jsx("div", { className: "flex w-full min-w-0", children: /* @__PURE__ */ jsx(
|
|
8
|
+
OutlinedChip,
|
|
9
|
+
{
|
|
10
|
+
label: value.label,
|
|
11
|
+
tooltip: value.label,
|
|
12
|
+
dotClassName: classNames({ "bg-success": isActive, "bg-foreground-faint": !isActive }),
|
|
13
|
+
className: classNames("w-full min-w-0 border uppercase", {
|
|
14
|
+
"border-success-border bg-success-soft text-success-emphasis": isActive,
|
|
15
|
+
"border-border bg-muted text-foreground-subtle": !isActive
|
|
16
|
+
}),
|
|
17
|
+
labelClassName: "truncate"
|
|
18
|
+
}
|
|
19
|
+
) });
|
|
20
|
+
};
|
|
21
|
+
export {
|
|
22
|
+
DataTableStatusCell as default
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=DataTableStatusCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableStatusCell.js","sources":["../../../../../src/components/UI/DataTable/cells/DataTableStatusCell.tsx"],"sourcesContent":["import classNames from 'classnames';\n\nimport OutlinedChip from '@/components/UI/Chips/OutlinedChip';\n\nimport type { IDataTableStatusValue } from '../types';\n\ninterface IDataTableStatusCellProps {\n value: IDataTableStatusValue | null | undefined;\n}\n\nconst DataTableStatusCell: React.FC<IDataTableStatusCellProps> = ({ value }) => {\n if (!value) return <span className=\"text-sm text-foreground-faint\">-</span>;\n\n const isActive = value.tone === 'active';\n\n return (\n <div className=\"flex w-full min-w-0\">\n <OutlinedChip\n label={value.label}\n tooltip={value.label}\n dotClassName={classNames({ 'bg-success': isActive, 'bg-foreground-faint': !isActive })}\n className={classNames('w-full min-w-0 border uppercase', {\n 'border-success-border bg-success-soft text-success-emphasis': isActive,\n 'border-border bg-muted text-foreground-subtle': !isActive,\n })}\n labelClassName=\"truncate\"\n />\n </div>\n );\n};\n\nexport default DataTableStatusCell;\n"],"names":[],"mappings":";;;AAUA,MAAM,sBAA2D,CAAC,EAAE,YAAY;AAC9E,MAAI,CAAC,MAAO,4BAAQ,QAAA,EAAK,WAAU,iCAAgC,UAAA,KAAC;AAEpE,QAAM,WAAW,MAAM,SAAS;AAEhC,SACE,oBAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO,MAAM;AAAA,MACb,SAAS,MAAM;AAAA,MACf,cAAc,WAAW,EAAE,cAAc,UAAU,uBAAuB,CAAC,UAAU;AAAA,MACrF,WAAW,WAAW,mCAAmC;AAAA,QACvD,+DAA+D;AAAA,QAC/D,iDAAiD,CAAC;AAAA,MAAA,CACnD;AAAA,MACD,gBAAe;AAAA,IAAA;AAAA,EAAA,GAEnB;AAEJ;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import OutlinedChip from "../../Chips/OutlinedChip.js";
|
|
4
|
+
const FULL_WIDTH = "w-full";
|
|
5
|
+
const DataTableTagCell = ({ value }) => {
|
|
6
|
+
if (!value?.label) return /* @__PURE__ */ jsx("span", { className: "text-sm text-foreground-faint", children: "-" });
|
|
7
|
+
return /* @__PURE__ */ jsx("div", { className: "flex w-full min-w-0", children: /* @__PURE__ */ jsx(
|
|
8
|
+
OutlinedChip,
|
|
9
|
+
{
|
|
10
|
+
label: value.label,
|
|
11
|
+
tooltip: value.label,
|
|
12
|
+
chipIcon: value.chipIcon,
|
|
13
|
+
className: classNames(
|
|
14
|
+
"w-full min-w-0 border border-border bg-muted uppercase text-foreground-muted",
|
|
15
|
+
value.className
|
|
16
|
+
),
|
|
17
|
+
wrapperClassName: FULL_WIDTH,
|
|
18
|
+
labelClassName: "truncate"
|
|
19
|
+
}
|
|
20
|
+
) });
|
|
21
|
+
};
|
|
22
|
+
export {
|
|
23
|
+
DataTableTagCell as default
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=DataTableTagCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableTagCell.js","sources":["../../../../../src/components/UI/DataTable/cells/DataTableTagCell.tsx"],"sourcesContent":["import classNames from 'classnames';\n\nimport OutlinedChip from '@/components/UI/Chips/OutlinedChip';\n\nimport type { IDataTableTagValue } from '../types';\n\ninterface IDataTableTagCellProps {\n value: IDataTableTagValue | null | undefined;\n}\n\nconst FULL_WIDTH = 'w-full';\n\nconst DataTableTagCell: React.FC<IDataTableTagCellProps> = ({ value }) => {\n if (!value?.label) return <span className=\"text-sm text-foreground-faint\">-</span>;\n\n return (\n <div className=\"flex w-full min-w-0\">\n <OutlinedChip\n label={value.label}\n tooltip={value.label}\n chipIcon={value.chipIcon}\n className={classNames(\n 'w-full min-w-0 border border-border bg-muted uppercase text-foreground-muted',\n value.className,\n )}\n wrapperClassName={FULL_WIDTH}\n labelClassName=\"truncate\"\n />\n </div>\n );\n};\n\nexport default DataTableTagCell;\n"],"names":[],"mappings":";;;AAUA,MAAM,aAAa;AAEnB,MAAM,mBAAqD,CAAC,EAAE,YAAY;AACxE,MAAI,CAAC,OAAO,MAAO,4BAAQ,QAAA,EAAK,WAAU,iCAAgC,UAAA,KAAC;AAE3E,SACE,oBAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO,MAAM;AAAA,MACb,SAAS,MAAM;AAAA,MACf,UAAU,MAAM;AAAA,MAChB,WAAW;AAAA,QACT;AAAA,QACA,MAAM;AAAA,MAAA;AAAA,MAER,kBAAkB;AAAA,MAClB,gBAAe;AAAA,IAAA;AAAA,EAAA,GAEnB;AAEJ;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
const DataTableTextCell = ({ value, className }) => /* @__PURE__ */ jsx("span", { className: classNames("block truncate text-sm text-foreground", className), children: value?.length ? value : "-" });
|
|
4
|
+
export {
|
|
5
|
+
DataTableTextCell as default
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=DataTableTextCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableTextCell.js","sources":["../../../../../src/components/UI/DataTable/cells/DataTableTextCell.tsx"],"sourcesContent":["import classNames from 'classnames';\n\ninterface IDataTableTextCellProps {\n value: string | null | undefined;\n className?: string;\n}\n\nconst DataTableTextCell: React.FC<IDataTableTextCellProps> = ({ value, className }) => (\n <span className={classNames('block truncate text-sm text-foreground', className)}>{value?.length ? value : '-'}</span>\n);\n\nexport default DataTableTextCell;\n"],"names":[],"mappings":";;AAOA,MAAM,oBAAuD,CAAC,EAAE,OAAO,UAAA,MACrE,oBAAC,QAAA,EAAK,WAAW,WAAW,0CAA0C,SAAS,GAAI,UAAA,OAAO,SAAS,QAAQ,IAAA,CAAI;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IDataTableThumbnailValue } from '../types';
|
|
2
|
+
interface IDataTableThumbnailCellProps {
|
|
3
|
+
value: IDataTableThumbnailValue | null | undefined;
|
|
4
|
+
}
|
|
5
|
+
declare const DataTableThumbnailCell: React.FC<IDataTableThumbnailCellProps>;
|
|
6
|
+
export default DataTableThumbnailCell;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import ControlledImage from "../../../Form/ControlledImage/index.js";
|
|
3
|
+
const DataTableThumbnailCell = ({ value }) => {
|
|
4
|
+
if (!value?.src) return /* @__PURE__ */ jsx("span", { className: "text-sm text-foreground-faint", children: "-" });
|
|
5
|
+
return /* @__PURE__ */ jsx(ControlledImage, { src: value.src, tooltip: value.label, className: "size-9 rounded-md object-cover" });
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
DataTableThumbnailCell as default
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=DataTableThumbnailCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableThumbnailCell.js","sources":["../../../../../src/components/UI/DataTable/cells/DataTableThumbnailCell.tsx"],"sourcesContent":["import ControlledImage from '@/components/Form/ControlledImage';\n\nimport type { IDataTableThumbnailValue } from '../types';\n\ninterface IDataTableThumbnailCellProps {\n value: IDataTableThumbnailValue | null | undefined;\n}\n\nconst DataTableThumbnailCell: React.FC<IDataTableThumbnailCellProps> = ({ value }) => {\n if (!value?.src) return <span className=\"text-sm text-foreground-faint\">-</span>;\n\n return <ControlledImage src={value.src} tooltip={value.label} className=\"size-9 rounded-md object-cover\" />;\n};\n\nexport default DataTableThumbnailCell;\n"],"names":[],"mappings":";;AAQA,MAAM,yBAAiE,CAAC,EAAE,YAAY;AACpF,MAAI,CAAC,OAAO,IAAK,4BAAQ,QAAA,EAAK,WAAU,iCAAgC,UAAA,KAAC;AAEzE,SAAO,oBAAC,mBAAgB,KAAK,MAAM,KAAK,SAAS,MAAM,OAAO,WAAU,iCAAA,CAAiC;AAC3G;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IDataTableColumnConfig, IDataTableRow } from './types';
|
|
2
|
+
export { isBadgeColumnType } from './dataTableColumnWidths';
|
|
3
|
+
export declare const alignClass: (align?: "left" | "center" | "right") => string;
|
|
4
|
+
export declare const FROZEN_COLUMN_SHADOW = "shadow-[-8px_0_8px_-8px_rgb(var(--color-foreground)/0.12)]";
|
|
5
|
+
export declare const FROZEN_LEFT_COLUMN_SHADOW = "shadow-[8px_0_8px_-8px_rgb(var(--color-foreground)/0.12)]";
|
|
6
|
+
export declare const DEFAULT_MIN_WIDTH = "min-w-[11.25rem]";
|
|
7
|
+
export declare const ACTIONS_COLUMN_WIDTH = "w-40 whitespace-nowrap";
|
|
8
|
+
export declare const BADGE_COLUMN_WIDTH = "w-[1%] min-w-0 whitespace-nowrap";
|
|
9
|
+
export interface IResolveColumnWidthClassOptions {
|
|
10
|
+
isFlexColumn?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare const resolveColumnWidthClass: <T extends IDataTableRow>(columnConfig: IDataTableColumnConfig<T> | undefined, fallback: string, options?: IResolveColumnWidthClassOptions) => string;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import classNames from "classnames";
|
|
2
|
+
import { isBadgeColumnType } from "./dataTableColumnWidths.js";
|
|
3
|
+
const alignClass = (align) => classNames({
|
|
4
|
+
"text-left": !align || align === "left",
|
|
5
|
+
"text-center": align === "center",
|
|
6
|
+
"text-right": align === "right"
|
|
7
|
+
});
|
|
8
|
+
const FROZEN_COLUMN_SHADOW = "shadow-[-8px_0_8px_-8px_rgb(var(--color-foreground)/0.12)]";
|
|
9
|
+
const FROZEN_LEFT_COLUMN_SHADOW = "shadow-[8px_0_8px_-8px_rgb(var(--color-foreground)/0.12)]";
|
|
10
|
+
const DEFAULT_MIN_WIDTH = "min-w-[11.25rem]";
|
|
11
|
+
const ACTIONS_COLUMN_WIDTH = "w-40 whitespace-nowrap";
|
|
12
|
+
const BADGE_COLUMN_WIDTH = "w-[1%] min-w-0 whitespace-nowrap";
|
|
13
|
+
const resolveColumnWidthClass = (columnConfig, fallback, options = {}) => {
|
|
14
|
+
if (columnConfig?.type === "actions") return ACTIONS_COLUMN_WIDTH;
|
|
15
|
+
if (isBadgeColumnType(columnConfig?.type)) return BADGE_COLUMN_WIDTH;
|
|
16
|
+
if (columnConfig?.widthClassName) return columnConfig.widthClassName;
|
|
17
|
+
return classNames(fallback, options.isFlexColumn && "w-full");
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
ACTIONS_COLUMN_WIDTH,
|
|
21
|
+
BADGE_COLUMN_WIDTH,
|
|
22
|
+
DEFAULT_MIN_WIDTH,
|
|
23
|
+
FROZEN_COLUMN_SHADOW,
|
|
24
|
+
FROZEN_LEFT_COLUMN_SHADOW,
|
|
25
|
+
alignClass,
|
|
26
|
+
isBadgeColumnType,
|
|
27
|
+
resolveColumnWidthClass
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=dataTableClasses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataTableClasses.js","sources":["../../../../src/components/UI/DataTable/dataTableClasses.ts"],"sourcesContent":["import classNames from 'classnames';\n\nimport { isBadgeColumnType } from './dataTableColumnWidths';\nimport type { IDataTableColumnConfig, IDataTableRow } from './types';\n\nexport { isBadgeColumnType } from './dataTableColumnWidths';\n\nexport const alignClass = (align?: 'left' | 'center' | 'right') =>\n classNames({\n 'text-left': !align || align === 'left',\n 'text-center': align === 'center',\n 'text-right': align === 'right',\n });\n\nexport const FROZEN_COLUMN_SHADOW = 'shadow-[-8px_0_8px_-8px_rgb(var(--color-foreground)/0.12)]';\n\nexport const FROZEN_LEFT_COLUMN_SHADOW = 'shadow-[8px_0_8px_-8px_rgb(var(--color-foreground)/0.12)]';\n\nexport const DEFAULT_MIN_WIDTH = 'min-w-[11.25rem]';\n\nexport const ACTIONS_COLUMN_WIDTH = 'w-40 whitespace-nowrap';\n\nexport const BADGE_COLUMN_WIDTH = 'w-[1%] min-w-0 whitespace-nowrap';\n\nexport interface IResolveColumnWidthClassOptions {\n isFlexColumn?: boolean;\n}\n\nexport const resolveColumnWidthClass = <T extends IDataTableRow>(\n columnConfig: IDataTableColumnConfig<T> | undefined,\n fallback: string,\n options: IResolveColumnWidthClassOptions = {},\n): string => {\n if (columnConfig?.type === 'actions') return ACTIONS_COLUMN_WIDTH;\n if (isBadgeColumnType(columnConfig?.type)) return BADGE_COLUMN_WIDTH;\n if (columnConfig?.widthClassName) return columnConfig.widthClassName;\n\n return classNames(fallback, options.isFlexColumn && 'w-full');\n};\n"],"names":[],"mappings":";;AAOO,MAAM,aAAa,CAAC,UACzB,WAAW;AAAA,EACT,aAAa,CAAC,SAAS,UAAU;AAAA,EACjC,eAAe,UAAU;AAAA,EACzB,cAAc,UAAU;AAC1B,CAAC;AAEI,MAAM,uBAAuB;AAE7B,MAAM,4BAA4B;AAElC,MAAM,oBAAoB;AAE1B,MAAM,uBAAuB;AAE7B,MAAM,qBAAqB;AAM3B,MAAM,0BAA0B,CACrC,cACA,UACA,UAA2C,CAAA,MAChC;AACX,MAAI,cAAc,SAAS,UAAW,QAAO;AAC7C,MAAI,kBAAkB,cAAc,IAAI,EAAG,QAAO;AAClD,MAAI,cAAc,eAAgB,QAAO,aAAa;AAEtD,SAAO,WAAW,UAAU,QAAQ,gBAAgB,QAAQ;AAC9D;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IDataTableColumnConfig, IDataTableRow, TDataTableCellType } from './types';
|
|
2
|
+
export declare const DEFAULT_COLUMN_WIDTH_PX = 180;
|
|
3
|
+
export declare const ACTIONS_COLUMN_WIDTH_PX = 160;
|
|
4
|
+
export declare const BADGE_COLUMN_WIDTH_PX = 96;
|
|
5
|
+
export declare const isBadgeColumnType: (type?: TDataTableCellType) => boolean;
|
|
6
|
+
export interface IEstimateColumnHeaderMinWidthContext {
|
|
7
|
+
isFirstColumn?: boolean;
|
|
8
|
+
hasColumnToggle?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const estimateColumnHeaderMinWidthPx: <T extends IDataTableRow>(columnConfig: IDataTableColumnConfig<T> | undefined, context?: IEstimateColumnHeaderMinWidthContext) => number;
|
|
11
|
+
export declare const resolveTypeSeedWidthPx: <T extends IDataTableRow>(columnConfig: IDataTableColumnConfig<T> | undefined) => number;
|
|
12
|
+
export declare const resolveColumnMinWidthPx: <T extends IDataTableRow>(columnConfig: IDataTableColumnConfig<T> | undefined, context?: IEstimateColumnHeaderMinWidthContext) => number;
|
|
13
|
+
export declare const parseWidthClassToPx: (widthClassName?: string) => number | undefined;
|
|
14
|
+
export declare const estimateActionsColumnWidthPx: (visibleActionCount: number) => number;
|
|
15
|
+
export declare const computeColumnContentWidths: <T extends IDataTableRow>(columns: Array<IDataTableColumnConfig<T>>, rows: Array<T>) => Map<string, number>;
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
const DEFAULT_COLUMN_WIDTH_PX = 180;
|
|
2
|
+
const ACTIONS_COLUMN_WIDTH_PX = 160;
|
|
3
|
+
const BADGE_COLUMN_WIDTH_PX = 96;
|
|
4
|
+
const REM_TO_PX = 16;
|
|
5
|
+
const TAILWIND_SCALE_TO_PX = 4;
|
|
6
|
+
const BADGE_CELL_TYPES = /* @__PURE__ */ new Set(["badgeStatus", "origin", "tag"]);
|
|
7
|
+
const isBadgeColumnType = (type) => !!type && BADGE_CELL_TYPES.has(type);
|
|
8
|
+
const HEADER_FONT = "600 0.625rem Inter, ui-sans-serif, system-ui, sans-serif";
|
|
9
|
+
const FALLBACK_CHAR_WIDTH_PX = 7;
|
|
10
|
+
let measureCanvas = null;
|
|
11
|
+
const textWidthCache = /* @__PURE__ */ new Map();
|
|
12
|
+
const measureTextWidthPx = (text, font) => {
|
|
13
|
+
const cacheKey = `${font}
|
|
14
|
+
${text}`;
|
|
15
|
+
const cached = textWidthCache.get(cacheKey);
|
|
16
|
+
if (cached !== void 0) return cached;
|
|
17
|
+
let width = text.length * FALLBACK_CHAR_WIDTH_PX;
|
|
18
|
+
if (typeof document !== "undefined") {
|
|
19
|
+
measureCanvas ?? (measureCanvas = document.createElement("canvas"));
|
|
20
|
+
const context = measureCanvas.getContext("2d");
|
|
21
|
+
if (context) {
|
|
22
|
+
context.font = font;
|
|
23
|
+
width = context.measureText(text).width;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
textWidthCache.set(cacheKey, width);
|
|
27
|
+
return width;
|
|
28
|
+
};
|
|
29
|
+
const measureHeaderTextWidthPx = (header) => measureTextWidthPx(header.toUpperCase(), HEADER_FONT);
|
|
30
|
+
const estimateColumnHeaderMinWidthPx = (columnConfig, context = {}) => {
|
|
31
|
+
if (!columnConfig) return DEFAULT_COLUMN_WIDTH_PX;
|
|
32
|
+
const horizontalPaddingPx = 32;
|
|
33
|
+
const sortIndicatorPx = columnConfig.sortable ? 22 : 0;
|
|
34
|
+
const resizeHandlePx = columnConfig.type !== "actions" ? 12 : 0;
|
|
35
|
+
const columnTogglePx = context.isFirstColumn && context.hasColumnToggle ? 32 : 0;
|
|
36
|
+
const labelWidthPx = measureHeaderTextWidthPx(columnConfig.header);
|
|
37
|
+
return Math.ceil(horizontalPaddingPx + labelWidthPx + sortIndicatorPx + resizeHandlePx + columnTogglePx);
|
|
38
|
+
};
|
|
39
|
+
const resolveTypeSeedWidthPx = (columnConfig) => {
|
|
40
|
+
if (!columnConfig) return DEFAULT_COLUMN_WIDTH_PX;
|
|
41
|
+
if (columnConfig.type === "actions") {
|
|
42
|
+
return parseWidthClassToPx(columnConfig.widthClassName) ?? ACTIONS_COLUMN_WIDTH_PX;
|
|
43
|
+
}
|
|
44
|
+
if (isBadgeColumnType(columnConfig.type)) {
|
|
45
|
+
return parseWidthClassToPx(columnConfig.widthClassName) ?? BADGE_COLUMN_WIDTH_PX;
|
|
46
|
+
}
|
|
47
|
+
return parseWidthClassToPx(columnConfig.widthClassName) ?? DEFAULT_COLUMN_WIDTH_PX;
|
|
48
|
+
};
|
|
49
|
+
const resolveColumnMinWidthPx = (columnConfig, context = {}) => Math.max(resolveTypeSeedWidthPx(columnConfig), estimateColumnHeaderMinWidthPx(columnConfig, context));
|
|
50
|
+
const parseWidthClassToPx = (widthClassName) => {
|
|
51
|
+
if (!widthClassName) return void 0;
|
|
52
|
+
const tokens = widthClassName.split(/\s+/).filter(Boolean);
|
|
53
|
+
for (const token of tokens) {
|
|
54
|
+
const arbitraryMatch = token.match(/^(?:min-)?w-\[(\d+(?:\.\d+)?)(px|rem)\]$/);
|
|
55
|
+
if (arbitraryMatch) {
|
|
56
|
+
const value = Number(arbitraryMatch[1]);
|
|
57
|
+
if (Number.isNaN(value)) continue;
|
|
58
|
+
return arbitraryMatch[2] === "rem" ? value * REM_TO_PX : value;
|
|
59
|
+
}
|
|
60
|
+
const scaleMatch = token.match(/^(?:min-)?w-(\d+)$/);
|
|
61
|
+
if (scaleMatch) {
|
|
62
|
+
const value = Number(scaleMatch[1]);
|
|
63
|
+
if (Number.isNaN(value)) continue;
|
|
64
|
+
return value * TAILWIND_SCALE_TO_PX;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return void 0;
|
|
68
|
+
};
|
|
69
|
+
const ACTIONS_CELL_HORIZONTAL_PADDING_PX = 32;
|
|
70
|
+
const ACTION_BUTTON_WIDTH_PX = 30;
|
|
71
|
+
const ACTION_BUTTON_GAP_PX = 4;
|
|
72
|
+
const BADGE_CELL_HORIZONTAL_PADDING_PX = 32;
|
|
73
|
+
const CHIP_HORIZONTAL_PADDING_PX = 20;
|
|
74
|
+
const CHIP_BORDER_PX = 2;
|
|
75
|
+
const CHIP_MIN_WIDTH_PX = 56;
|
|
76
|
+
const CHIP_DOT_WIDTH_PX = 10;
|
|
77
|
+
const CHIP_ICON_WIDTH_PX = 20;
|
|
78
|
+
const BADGE_WIDTH_BUFFER_PX = 6;
|
|
79
|
+
const BADGE_LABEL_FONT = HEADER_FONT;
|
|
80
|
+
const estimateActionsColumnWidthPx = (visibleActionCount) => {
|
|
81
|
+
const count = Math.max(visibleActionCount, 1);
|
|
82
|
+
return ACTIONS_CELL_HORIZONTAL_PADDING_PX + count * ACTION_BUTTON_WIDTH_PX + (count - 1) * ACTION_BUTTON_GAP_PX;
|
|
83
|
+
};
|
|
84
|
+
const ACTION_COUNT_FONT = "600 0.75rem Inter, ui-sans-serif, system-ui, sans-serif";
|
|
85
|
+
const ACTION_COUNT_GAP_PX = 4;
|
|
86
|
+
const estimateActionButtonWidthPx = (action, row) => {
|
|
87
|
+
const count = action.count?.(row);
|
|
88
|
+
if (typeof count !== "number") return ACTION_BUTTON_WIDTH_PX;
|
|
89
|
+
return ACTION_BUTTON_WIDTH_PX + ACTION_COUNT_GAP_PX + measureTextWidthPx(String(count), ACTION_COUNT_FONT);
|
|
90
|
+
};
|
|
91
|
+
const estimateActionsCellWidthPx = (actions, row) => {
|
|
92
|
+
const visibleActions = actions.filter((action) => !action.hidden?.(row));
|
|
93
|
+
if (visibleActions.length === 0) return ACTIONS_CELL_HORIZONTAL_PADDING_PX;
|
|
94
|
+
const buttonsWidthPx = visibleActions.reduce((total, action) => total + estimateActionButtonWidthPx(action, row), 0);
|
|
95
|
+
return ACTIONS_CELL_HORIZONTAL_PADDING_PX + buttonsWidthPx + (visibleActions.length - 1) * ACTION_BUTTON_GAP_PX;
|
|
96
|
+
};
|
|
97
|
+
const estimateBadgeCellWidthPx = ({ label, hasDot, hasIcon }) => {
|
|
98
|
+
const chipChromePx = CHIP_HORIZONTAL_PADDING_PX + CHIP_BORDER_PX + (hasDot ? CHIP_DOT_WIDTH_PX : 0) + (hasIcon ? CHIP_ICON_WIDTH_PX : 0);
|
|
99
|
+
const chipWidthPx = Math.max(
|
|
100
|
+
CHIP_MIN_WIDTH_PX,
|
|
101
|
+
chipChromePx + measureTextWidthPx(label.toUpperCase(), BADGE_LABEL_FONT)
|
|
102
|
+
);
|
|
103
|
+
return BADGE_CELL_HORIZONTAL_PADDING_PX + chipWidthPx + BADGE_WIDTH_BUFFER_PX;
|
|
104
|
+
};
|
|
105
|
+
const readBadgeChipMetrics = (column, row) => {
|
|
106
|
+
const value = column.accessor?.(row);
|
|
107
|
+
if (!value || typeof value !== "object") return null;
|
|
108
|
+
const record = value;
|
|
109
|
+
if (typeof record.label !== "string" || !record.label) return null;
|
|
110
|
+
return {
|
|
111
|
+
label: record.label,
|
|
112
|
+
hasDot: column.type === "badgeStatus",
|
|
113
|
+
hasIcon: column.type === "tag" && Boolean(record.chipIcon)
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
const resolveActionsColumnWidthPx = (actions, rows) => {
|
|
117
|
+
if (rows.length === 0) return estimateActionsColumnWidthPx(actions.length);
|
|
118
|
+
let widestPx = 0;
|
|
119
|
+
for (const row of rows) {
|
|
120
|
+
widestPx = Math.max(widestPx, estimateActionsCellWidthPx(actions, row));
|
|
121
|
+
}
|
|
122
|
+
return Math.ceil(widestPx);
|
|
123
|
+
};
|
|
124
|
+
const computeColumnContentWidths = (columns, rows) => {
|
|
125
|
+
const widths = /* @__PURE__ */ new Map();
|
|
126
|
+
for (const column of columns) {
|
|
127
|
+
if (column.type === "actions" && column.actions) {
|
|
128
|
+
widths.set(column.id, resolveActionsColumnWidthPx(column.actions, rows));
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
if (!isBadgeColumnType(column.type) || column.render) continue;
|
|
132
|
+
let widestPx = 0;
|
|
133
|
+
for (const row of rows) {
|
|
134
|
+
const metrics = readBadgeChipMetrics(column, row);
|
|
135
|
+
if (metrics) widestPx = Math.max(widestPx, estimateBadgeCellWidthPx(metrics));
|
|
136
|
+
}
|
|
137
|
+
if (widestPx > 0) widths.set(column.id, Math.ceil(Math.max(widestPx, estimateColumnHeaderMinWidthPx(column))));
|
|
138
|
+
}
|
|
139
|
+
return widths;
|
|
140
|
+
};
|
|
141
|
+
export {
|
|
142
|
+
ACTIONS_COLUMN_WIDTH_PX,
|
|
143
|
+
BADGE_COLUMN_WIDTH_PX,
|
|
144
|
+
DEFAULT_COLUMN_WIDTH_PX,
|
|
145
|
+
computeColumnContentWidths,
|
|
146
|
+
estimateActionsColumnWidthPx,
|
|
147
|
+
estimateColumnHeaderMinWidthPx,
|
|
148
|
+
isBadgeColumnType,
|
|
149
|
+
parseWidthClassToPx,
|
|
150
|
+
resolveColumnMinWidthPx,
|
|
151
|
+
resolveTypeSeedWidthPx
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=dataTableColumnWidths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataTableColumnWidths.js","sources":["../../../../src/components/UI/DataTable/dataTableColumnWidths.ts"],"sourcesContent":["import type { IDataTableActionItem, IDataTableColumnConfig, IDataTableRow, TDataTableCellType } from './types';\n\n// Fallback width for columns that declare no width class (min-w-[11.25rem] = 180px).\nexport const DEFAULT_COLUMN_WIDTH_PX = 180;\n\n// Fallback width for the actions column when no rows are available to size it.\n// The rendered width scales with the action count (see estimateActionsColumnWidthPx).\nexport const ACTIONS_COLUMN_WIDTH_PX = 160;\n\n// Compact seed for badge/chip columns; minSize rises when the header requires more.\nexport const BADGE_COLUMN_WIDTH_PX = 96;\n\nconst REM_TO_PX = 16;\nconst TAILWIND_SCALE_TO_PX = 4;\n\nconst BADGE_CELL_TYPES: ReadonlySet<TDataTableCellType> = new Set(['badgeStatus', 'origin', 'tag']);\n\nexport const isBadgeColumnType = (type?: TDataTableCellType): boolean => !!type && BADGE_CELL_TYPES.has(type);\n\nexport interface IEstimateColumnHeaderMinWidthContext {\n isFirstColumn?: boolean;\n hasColumnToggle?: boolean;\n}\n\n// Matches DataTableHead th styles: text-xxs font-semibold uppercase tracking-wide.\nconst HEADER_FONT = '600 0.625rem Inter, ui-sans-serif, system-ui, sans-serif';\n\nconst FALLBACK_CHAR_WIDTH_PX = 7;\n\nlet measureCanvas: HTMLCanvasElement | null = null;\nconst textWidthCache = new Map<string, number>();\n\nconst measureTextWidthPx = (text: string, font: string): number => {\n const cacheKey = `${font}\\n${text}`;\n const cached = textWidthCache.get(cacheKey);\n if (cached !== undefined) return cached;\n\n let width = text.length * FALLBACK_CHAR_WIDTH_PX;\n if (typeof document !== 'undefined') {\n measureCanvas ??= document.createElement('canvas');\n const context = measureCanvas.getContext('2d');\n if (context) {\n context.font = font;\n width = context.measureText(text).width;\n }\n }\n\n textWidthCache.set(cacheKey, width);\n return width;\n};\n\nconst measureHeaderTextWidthPx = (header: string): number => measureTextWidthPx(header.toUpperCase(), HEADER_FONT);\n\nexport const estimateColumnHeaderMinWidthPx = <T extends IDataTableRow>(\n columnConfig: IDataTableColumnConfig<T> | undefined,\n context: IEstimateColumnHeaderMinWidthContext = {},\n): number => {\n if (!columnConfig) return DEFAULT_COLUMN_WIDTH_PX;\n\n const horizontalPaddingPx = 32;\n const sortIndicatorPx = columnConfig.sortable ? 22 : 0;\n const resizeHandlePx = columnConfig.type !== 'actions' ? 12 : 0;\n const columnTogglePx = context.isFirstColumn && context.hasColumnToggle ? 32 : 0;\n\n const labelWidthPx = measureHeaderTextWidthPx(columnConfig.header);\n\n return Math.ceil(horizontalPaddingPx + labelWidthPx + sortIndicatorPx + resizeHandlePx + columnTogglePx);\n};\n\nexport const resolveTypeSeedWidthPx = <T extends IDataTableRow>(\n columnConfig: IDataTableColumnConfig<T> | undefined,\n): number => {\n if (!columnConfig) return DEFAULT_COLUMN_WIDTH_PX;\n if (columnConfig.type === 'actions') {\n return parseWidthClassToPx(columnConfig.widthClassName) ?? ACTIONS_COLUMN_WIDTH_PX;\n }\n if (isBadgeColumnType(columnConfig.type)) {\n return parseWidthClassToPx(columnConfig.widthClassName) ?? BADGE_COLUMN_WIDTH_PX;\n }\n\n return parseWidthClassToPx(columnConfig.widthClassName) ?? DEFAULT_COLUMN_WIDTH_PX;\n};\n\nexport const resolveColumnMinWidthPx = <T extends IDataTableRow>(\n columnConfig: IDataTableColumnConfig<T> | undefined,\n context: IEstimateColumnHeaderMinWidthContext = {},\n): number => Math.max(resolveTypeSeedWidthPx(columnConfig), estimateColumnHeaderMinWidthPx(columnConfig, context));\n\n// Escape hatch only — configs should not rely on widthClassName.\nexport const parseWidthClassToPx = (widthClassName?: string): number | undefined => {\n if (!widthClassName) return undefined;\n\n const tokens = widthClassName.split(/\\s+/).filter(Boolean);\n\n for (const token of tokens) {\n const arbitraryMatch = token.match(/^(?:min-)?w-\\[(\\d+(?:\\.\\d+)?)(px|rem)\\]$/);\n if (arbitraryMatch) {\n const value = Number(arbitraryMatch[1]);\n if (Number.isNaN(value)) continue;\n return arbitraryMatch[2] === 'rem' ? value * REM_TO_PX : value;\n }\n\n const scaleMatch = token.match(/^(?:min-)?w-(\\d+)$/);\n if (scaleMatch) {\n const value = Number(scaleMatch[1]);\n if (Number.isNaN(value)) continue;\n return value * TAILWIND_SCALE_TO_PX;\n }\n }\n\n return undefined;\n};\n\n// Actions cell chrome: td px-4 (32) plus, per action, an icon button\n// (p-1.5 + an 18px icon = 30) separated by gap-1 (4).\nconst ACTIONS_CELL_HORIZONTAL_PADDING_PX = 32;\nconst ACTION_BUTTON_WIDTH_PX = 30;\nconst ACTION_BUTTON_GAP_PX = 4;\n\n// OutlinedChip chrome: px-2.5 (20) + 1px border each side (2), an optional 6px\n// status dot or 16px leading icon each followed by gap-x-1 (4), floored at\n// min-w-14 (56). BADGE_CELL_HORIZONTAL_PADDING_PX is the surrounding td px-4.\nconst BADGE_CELL_HORIZONTAL_PADDING_PX = 32;\nconst CHIP_HORIZONTAL_PADDING_PX = 20;\nconst CHIP_BORDER_PX = 2;\nconst CHIP_MIN_WIDTH_PX = 56;\nconst CHIP_DOT_WIDTH_PX = 10;\nconst CHIP_ICON_WIDTH_PX = 20;\n// Absorbs sub-pixel measurement rounding so the widest chip is never re-clipped.\nconst BADGE_WIDTH_BUFFER_PX = 6;\n\n// OutlinedChip label matches the header font (text-xxs font-semibold).\nconst BADGE_LABEL_FONT = HEADER_FONT;\n\ninterface IBadgeChipMetrics {\n label: string;\n hasDot: boolean;\n hasIcon: boolean;\n}\n\n// The actions column fits its widest visible action count; the width scales with\n// the number of buttons actually rendered (hidden actions are excluded per row).\nexport const estimateActionsColumnWidthPx = (visibleActionCount: number): number => {\n const count = Math.max(visibleActionCount, 1);\n return ACTIONS_CELL_HORIZONTAL_PADDING_PX + count * ACTION_BUTTON_WIDTH_PX + (count - 1) * ACTION_BUTTON_GAP_PX;\n};\n\n// An action rendering a numeric badge is wider than the icon-only button by the\n// inner gap plus the digits (text-xs font-semibold).\nconst ACTION_COUNT_FONT = '600 0.75rem Inter, ui-sans-serif, system-ui, sans-serif';\nconst ACTION_COUNT_GAP_PX = 4;\n\nconst estimateActionButtonWidthPx = <T extends IDataTableRow>(action: IDataTableActionItem<T>, row: T): number => {\n const count = action.count?.(row);\n if (typeof count !== 'number') return ACTION_BUTTON_WIDTH_PX;\n\n return ACTION_BUTTON_WIDTH_PX + ACTION_COUNT_GAP_PX + measureTextWidthPx(String(count), ACTION_COUNT_FONT);\n};\n\nconst estimateActionsCellWidthPx = <T extends IDataTableRow>(\n actions: Array<IDataTableActionItem<T>>,\n row: T,\n): number => {\n const visibleActions = actions.filter((action) => !action.hidden?.(row));\n if (visibleActions.length === 0) return ACTIONS_CELL_HORIZONTAL_PADDING_PX;\n\n const buttonsWidthPx = visibleActions.reduce((total, action) => total + estimateActionButtonWidthPx(action, row), 0);\n\n return ACTIONS_CELL_HORIZONTAL_PADDING_PX + buttonsWidthPx + (visibleActions.length - 1) * ACTION_BUTTON_GAP_PX;\n};\n\nconst estimateBadgeCellWidthPx = ({ label, hasDot, hasIcon }: IBadgeChipMetrics): number => {\n const chipChromePx =\n CHIP_HORIZONTAL_PADDING_PX + CHIP_BORDER_PX + (hasDot ? CHIP_DOT_WIDTH_PX : 0) + (hasIcon ? CHIP_ICON_WIDTH_PX : 0);\n const chipWidthPx = Math.max(\n CHIP_MIN_WIDTH_PX,\n chipChromePx + measureTextWidthPx(label.toUpperCase(), BADGE_LABEL_FONT),\n );\n\n return BADGE_CELL_HORIZONTAL_PADDING_PX + chipWidthPx + BADGE_WIDTH_BUFFER_PX;\n};\n\nconst readBadgeChipMetrics = <T extends IDataTableRow>(\n column: IDataTableColumnConfig<T>,\n row: T,\n): IBadgeChipMetrics | null => {\n const value = column.accessor?.(row);\n if (!value || typeof value !== 'object') return null;\n\n const record = value as Record<string, unknown>;\n if (typeof record.label !== 'string' || !record.label) return null;\n\n return {\n label: record.label,\n hasDot: column.type === 'badgeStatus',\n hasIcon: column.type === 'tag' && Boolean(record.chipIcon),\n };\n};\n\nconst resolveActionsColumnWidthPx = <T extends IDataTableRow>(\n actions: Array<IDataTableActionItem<T>>,\n rows: Array<T>,\n): number => {\n if (rows.length === 0) return estimateActionsColumnWidthPx(actions.length);\n\n let widestPx = 0;\n for (const row of rows) {\n widestPx = Math.max(widestPx, estimateActionsCellWidthPx(actions, row));\n }\n\n return Math.ceil(widestPx);\n};\n\n// Widths for columns whose size depends on the row data: the actions column\n// (scales with the visible action count) and badge columns (fit the widest chip\n// so labels are never clipped). Consumed by the table instance seed and by the\n// head/body min-width floors so all three agree on the same width.\nexport const computeColumnContentWidths = <T extends IDataTableRow>(\n columns: Array<IDataTableColumnConfig<T>>,\n rows: Array<T>,\n): Map<string, number> => {\n const widths = new Map<string, number>();\n\n for (const column of columns) {\n if (column.type === 'actions' && column.actions) {\n widths.set(column.id, resolveActionsColumnWidthPx(column.actions, rows));\n continue;\n }\n\n if (!isBadgeColumnType(column.type) || column.render) continue;\n\n let widestPx = 0;\n for (const row of rows) {\n const metrics = readBadgeChipMetrics(column, row);\n if (metrics) widestPx = Math.max(widestPx, estimateBadgeCellWidthPx(metrics));\n }\n\n if (widestPx > 0) widths.set(column.id, Math.ceil(Math.max(widestPx, estimateColumnHeaderMinWidthPx(column))));\n }\n\n return widths;\n};\n"],"names":[],"mappings":"AAGO,MAAM,0BAA0B;AAIhC,MAAM,0BAA0B;AAGhC,MAAM,wBAAwB;AAErC,MAAM,YAAY;AAClB,MAAM,uBAAuB;AAE7B,MAAM,mBAAoD,oBAAI,IAAI,CAAC,eAAe,UAAU,KAAK,CAAC;AAE3F,MAAM,oBAAoB,CAAC,SAAuC,CAAC,CAAC,QAAQ,iBAAiB,IAAI,IAAI;AAQ5G,MAAM,cAAc;AAEpB,MAAM,yBAAyB;AAE/B,IAAI,gBAA0C;AAC9C,MAAM,qCAAqB,IAAA;AAE3B,MAAM,qBAAqB,CAAC,MAAc,SAAyB;AACjE,QAAM,WAAW,GAAG,IAAI;AAAA,EAAK,IAAI;AACjC,QAAM,SAAS,eAAe,IAAI,QAAQ;AAC1C,MAAI,WAAW,OAAW,QAAO;AAEjC,MAAI,QAAQ,KAAK,SAAS;AAC1B,MAAI,OAAO,aAAa,aAAa;AACnC,sCAAkB,SAAS,cAAc,QAAQ;AACjD,UAAM,UAAU,cAAc,WAAW,IAAI;AAC7C,QAAI,SAAS;AACX,cAAQ,OAAO;AACf,cAAQ,QAAQ,YAAY,IAAI,EAAE;AAAA,IACpC;AAAA,EACF;AAEA,iBAAe,IAAI,UAAU,KAAK;AAClC,SAAO;AACT;AAEA,MAAM,2BAA2B,CAAC,WAA2B,mBAAmB,OAAO,YAAA,GAAe,WAAW;AAE1G,MAAM,iCAAiC,CAC5C,cACA,UAAgD,OACrC;AACX,MAAI,CAAC,aAAc,QAAO;AAE1B,QAAM,sBAAsB;AAC5B,QAAM,kBAAkB,aAAa,WAAW,KAAK;AACrD,QAAM,iBAAiB,aAAa,SAAS,YAAY,KAAK;AAC9D,QAAM,iBAAiB,QAAQ,iBAAiB,QAAQ,kBAAkB,KAAK;AAE/E,QAAM,eAAe,yBAAyB,aAAa,MAAM;AAEjE,SAAO,KAAK,KAAK,sBAAsB,eAAe,kBAAkB,iBAAiB,cAAc;AACzG;AAEO,MAAM,yBAAyB,CACpC,iBACW;AACX,MAAI,CAAC,aAAc,QAAO;AAC1B,MAAI,aAAa,SAAS,WAAW;AACnC,WAAO,oBAAoB,aAAa,cAAc,KAAK;AAAA,EAC7D;AACA,MAAI,kBAAkB,aAAa,IAAI,GAAG;AACxC,WAAO,oBAAoB,aAAa,cAAc,KAAK;AAAA,EAC7D;AAEA,SAAO,oBAAoB,aAAa,cAAc,KAAK;AAC7D;AAEO,MAAM,0BAA0B,CACrC,cACA,UAAgD,CAAA,MACrC,KAAK,IAAI,uBAAuB,YAAY,GAAG,+BAA+B,cAAc,OAAO,CAAC;AAG1G,MAAM,sBAAsB,CAAC,mBAAgD;AAClF,MAAI,CAAC,eAAgB,QAAO;AAE5B,QAAM,SAAS,eAAe,MAAM,KAAK,EAAE,OAAO,OAAO;AAEzD,aAAW,SAAS,QAAQ;AAC1B,UAAM,iBAAiB,MAAM,MAAM,0CAA0C;AAC7E,QAAI,gBAAgB;AAClB,YAAM,QAAQ,OAAO,eAAe,CAAC,CAAC;AACtC,UAAI,OAAO,MAAM,KAAK,EAAG;AACzB,aAAO,eAAe,CAAC,MAAM,QAAQ,QAAQ,YAAY;AAAA,IAC3D;AAEA,UAAM,aAAa,MAAM,MAAM,oBAAoB;AACnD,QAAI,YAAY;AACd,YAAM,QAAQ,OAAO,WAAW,CAAC,CAAC;AAClC,UAAI,OAAO,MAAM,KAAK,EAAG;AACzB,aAAO,QAAQ;AAAA,IACjB;AAAA,EACF;AAEA,SAAO;AACT;AAIA,MAAM,qCAAqC;AAC3C,MAAM,yBAAyB;AAC/B,MAAM,uBAAuB;AAK7B,MAAM,mCAAmC;AACzC,MAAM,6BAA6B;AACnC,MAAM,iBAAiB;AACvB,MAAM,oBAAoB;AAC1B,MAAM,oBAAoB;AAC1B,MAAM,qBAAqB;AAE3B,MAAM,wBAAwB;AAG9B,MAAM,mBAAmB;AAUlB,MAAM,+BAA+B,CAAC,uBAAuC;AAClF,QAAM,QAAQ,KAAK,IAAI,oBAAoB,CAAC;AAC5C,SAAO,qCAAqC,QAAQ,0BAA0B,QAAQ,KAAK;AAC7F;AAIA,MAAM,oBAAoB;AAC1B,MAAM,sBAAsB;AAE5B,MAAM,8BAA8B,CAA0B,QAAiC,QAAmB;AAChH,QAAM,QAAQ,OAAO,QAAQ,GAAG;AAChC,MAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,SAAO,yBAAyB,sBAAsB,mBAAmB,OAAO,KAAK,GAAG,iBAAiB;AAC3G;AAEA,MAAM,6BAA6B,CACjC,SACA,QACW;AACX,QAAM,iBAAiB,QAAQ,OAAO,CAAC,WAAW,CAAC,OAAO,SAAS,GAAG,CAAC;AACvE,MAAI,eAAe,WAAW,EAAG,QAAO;AAExC,QAAM,iBAAiB,eAAe,OAAO,CAAC,OAAO,WAAW,QAAQ,4BAA4B,QAAQ,GAAG,GAAG,CAAC;AAEnH,SAAO,qCAAqC,kBAAkB,eAAe,SAAS,KAAK;AAC7F;AAEA,MAAM,2BAA2B,CAAC,EAAE,OAAO,QAAQ,cAAyC;AAC1F,QAAM,eACJ,6BAA6B,kBAAkB,SAAS,oBAAoB,MAAM,UAAU,qBAAqB;AACnH,QAAM,cAAc,KAAK;AAAA,IACvB;AAAA,IACA,eAAe,mBAAmB,MAAM,YAAA,GAAe,gBAAgB;AAAA,EAAA;AAGzE,SAAO,mCAAmC,cAAc;AAC1D;AAEA,MAAM,uBAAuB,CAC3B,QACA,QAC6B;AAC7B,QAAM,QAAQ,OAAO,WAAW,GAAG;AACnC,MAAI,CAAC,SAAS,OAAO,UAAU,SAAU,QAAO;AAEhD,QAAM,SAAS;AACf,MAAI,OAAO,OAAO,UAAU,YAAY,CAAC,OAAO,MAAO,QAAO;AAE9D,SAAO;AAAA,IACL,OAAO,OAAO;AAAA,IACd,QAAQ,OAAO,SAAS;AAAA,IACxB,SAAS,OAAO,SAAS,SAAS,QAAQ,OAAO,QAAQ;AAAA,EAAA;AAE7D;AAEA,MAAM,8BAA8B,CAClC,SACA,SACW;AACX,MAAI,KAAK,WAAW,EAAG,QAAO,6BAA6B,QAAQ,MAAM;AAEzE,MAAI,WAAW;AACf,aAAW,OAAO,MAAM;AACtB,eAAW,KAAK,IAAI,UAAU,2BAA2B,SAAS,GAAG,CAAC;AAAA,EACxE;AAEA,SAAO,KAAK,KAAK,QAAQ;AAC3B;AAMO,MAAM,6BAA6B,CACxC,SACA,SACwB;AACxB,QAAM,6BAAa,IAAA;AAEnB,aAAW,UAAU,SAAS;AAC5B,QAAI,OAAO,SAAS,aAAa,OAAO,SAAS;AAC/C,aAAO,IAAI,OAAO,IAAI,4BAA4B,OAAO,SAAS,IAAI,CAAC;AACvE;AAAA,IACF;AAEA,QAAI,CAAC,kBAAkB,OAAO,IAAI,KAAK,OAAO,OAAQ;AAEtD,QAAI,WAAW;AACf,eAAW,OAAO,MAAM;AACtB,YAAM,UAAU,qBAAqB,QAAQ,GAAG;AAChD,UAAI,QAAS,YAAW,KAAK,IAAI,UAAU,yBAAyB,OAAO,CAAC;AAAA,IAC9E;AAEA,QAAI,WAAW,EAAG,QAAO,IAAI,OAAO,IAAI,KAAK,KAAK,KAAK,IAAI,UAAU,+BAA+B,MAAM,CAAC,CAAC,CAAC;AAAA,EAC/G;AAEA,SAAO;AACT;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { VisibilityState } from '@tanstack/react-table';
|
|
2
|
+
export interface IDataTableColumnsEntry {
|
|
3
|
+
/** Full column order: fixed start + reorderable + fixed end. */
|
|
4
|
+
order?: Array<string>;
|
|
5
|
+
/** Visibility of hideable columns only, never the non-hideable ones. */
|
|
6
|
+
visibility?: VisibilityState;
|
|
7
|
+
/** User-resized column widths in pixels, keyed by column id. */
|
|
8
|
+
sizing?: Record<string, number>;
|
|
9
|
+
}
|
|
10
|
+
export declare const detailColumnsEntryKey: (entityKey: string) => string;
|
|
11
|
+
export declare const readColumnsEntry: (entityKey: string) => IDataTableColumnsEntry;
|
|
12
|
+
export declare const writeColumnsEntry: (entityKey: string, patch: IDataTableColumnsEntry) => void;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { writeUiPreference, readUiPreference } from "../../../helpers/uiPreferences.js";
|
|
2
|
+
import { isJSON } from "../../../helpers/utilityHelpers.js";
|
|
3
|
+
const COLUMNS_STORAGE_KEY = "datatable-columns";
|
|
4
|
+
const LEGACY_PER_TABLE_KEY_PREFIX = `${COLUMNS_STORAGE_KEY}-`;
|
|
5
|
+
const ABANDONED_ORDER_KEY = "datatable-column-order";
|
|
6
|
+
const isCurrentEntryShape = (entry) => {
|
|
7
|
+
const candidate = entry;
|
|
8
|
+
return Array.isArray(candidate.order) || !!candidate.visibility && typeof candidate.visibility === "object" || !!candidate.sizing && typeof candidate.sizing === "object";
|
|
9
|
+
};
|
|
10
|
+
const normalizeSizing = (sizing) => {
|
|
11
|
+
if (!sizing || typeof sizing !== "object") return void 0;
|
|
12
|
+
const result = {};
|
|
13
|
+
for (const [columnId, width] of Object.entries(sizing)) {
|
|
14
|
+
if (typeof width === "number" && Number.isFinite(width)) result[columnId] = width;
|
|
15
|
+
}
|
|
16
|
+
return Object.keys(result).length > 0 ? result : void 0;
|
|
17
|
+
};
|
|
18
|
+
const normalizeEntry = (entry) => {
|
|
19
|
+
if (!entry || typeof entry !== "object") return {};
|
|
20
|
+
if (!isCurrentEntryShape(entry)) return { visibility: entry };
|
|
21
|
+
const candidate = entry;
|
|
22
|
+
return {
|
|
23
|
+
order: Array.isArray(candidate.order) ? candidate.order.filter((id) => typeof id === "string") : void 0,
|
|
24
|
+
visibility: candidate.visibility && typeof candidate.visibility === "object" ? candidate.visibility : void 0,
|
|
25
|
+
sizing: normalizeSizing(candidate.sizing)
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
const readNormalizedStore = () => {
|
|
29
|
+
const raw = readUiPreference(COLUMNS_STORAGE_KEY) ?? {};
|
|
30
|
+
const store = {};
|
|
31
|
+
for (const [entityKey, entry] of Object.entries(raw)) store[entityKey] = normalizeEntry(entry);
|
|
32
|
+
return store;
|
|
33
|
+
};
|
|
34
|
+
let didMigrateOrphanKeys = false;
|
|
35
|
+
const migrateOrphanKeys = () => {
|
|
36
|
+
if (didMigrateOrphanKeys) return;
|
|
37
|
+
didMigrateOrphanKeys = true;
|
|
38
|
+
const legacyKeys = Object.keys(localStorage).filter((key) => key.startsWith(LEGACY_PER_TABLE_KEY_PREFIX));
|
|
39
|
+
const hasAbandonedOrderKey = localStorage.getItem(ABANDONED_ORDER_KEY) !== null;
|
|
40
|
+
if (legacyKeys.length === 0 && !hasAbandonedOrderKey) return;
|
|
41
|
+
const store = readNormalizedStore();
|
|
42
|
+
for (const legacyKey of legacyKeys) {
|
|
43
|
+
const entityKey = legacyKey.slice(LEGACY_PER_TABLE_KEY_PREFIX.length);
|
|
44
|
+
const raw = localStorage.getItem(legacyKey);
|
|
45
|
+
if (!store[entityKey]?.visibility && raw && isJSON(raw)) {
|
|
46
|
+
store[entityKey] = { ...store[entityKey], visibility: JSON.parse(raw) };
|
|
47
|
+
}
|
|
48
|
+
localStorage.removeItem(legacyKey);
|
|
49
|
+
}
|
|
50
|
+
localStorage.removeItem(ABANDONED_ORDER_KEY);
|
|
51
|
+
writeUiPreference(COLUMNS_STORAGE_KEY, store);
|
|
52
|
+
};
|
|
53
|
+
const detailColumnsEntryKey = (entityKey) => `${entityKey}:detail`;
|
|
54
|
+
const readColumnsEntry = (entityKey) => {
|
|
55
|
+
migrateOrphanKeys();
|
|
56
|
+
return readNormalizedStore()[entityKey] ?? {};
|
|
57
|
+
};
|
|
58
|
+
const writeColumnsEntry = (entityKey, patch) => {
|
|
59
|
+
migrateOrphanKeys();
|
|
60
|
+
const store = readNormalizedStore();
|
|
61
|
+
writeUiPreference(COLUMNS_STORAGE_KEY, { ...store, [entityKey]: { ...store[entityKey], ...patch } });
|
|
62
|
+
};
|
|
63
|
+
export {
|
|
64
|
+
detailColumnsEntryKey,
|
|
65
|
+
readColumnsEntry,
|
|
66
|
+
writeColumnsEntry
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=dataTableColumnsStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataTableColumnsStore.js","sources":["../../../../src/components/UI/DataTable/dataTableColumnsStore.ts"],"sourcesContent":["import { readUiPreference, writeUiPreference } from '@/helpers/uiPreferences';\nimport { isJSON } from '@/helpers/utilityHelpers';\nimport type { VisibilityState } from '@tanstack/react-table';\n\n// Single localStorage entry for every table. Keys are the table `entityKey`,\n// values hold that table's column preferences (order + visibility together).\nconst COLUMNS_STORAGE_KEY = 'datatable-columns' as const;\nconst LEGACY_PER_TABLE_KEY_PREFIX = `${COLUMNS_STORAGE_KEY}-`;\n// A pre-release build of the column-ordering feature briefly wrote order to its\n// own key. It never reached production, so drop it and spare branch testers an\n// orphaned entry no one reads.\nconst ABANDONED_ORDER_KEY = 'datatable-column-order';\n\nexport interface IDataTableColumnsEntry {\n /** Full column order: fixed start + reorderable + fixed end. */\n order?: Array<string>;\n /** Visibility of hideable columns only, never the non-hideable ones. */\n visibility?: VisibilityState;\n /** User-resized column widths in pixels, keyed by column id. */\n sizing?: Record<string, number>;\n}\n\ntype TDataTableColumnsStore = Record<string, IDataTableColumnsEntry>;\n\n// Older builds stored the entry as a bare visibility map (`{ colors: { rgb: false } }`).\n// Detect the current shape structurally rather than by key presence, so a legacy\n// map holding a column literally named `order`/`visibility` is not misread.\nconst isCurrentEntryShape = (entry: object): boolean => {\n const candidate = entry as { order?: unknown; visibility?: unknown; sizing?: unknown };\n\n return (\n Array.isArray(candidate.order) ||\n (!!candidate.visibility && typeof candidate.visibility === 'object') ||\n (!!candidate.sizing && typeof candidate.sizing === 'object')\n );\n};\n\nconst normalizeSizing = (sizing: unknown): Record<string, number> | undefined => {\n if (!sizing || typeof sizing !== 'object') return undefined;\n\n const result: Record<string, number> = {};\n for (const [columnId, width] of Object.entries(sizing as Record<string, unknown>)) {\n if (typeof width === 'number' && Number.isFinite(width)) result[columnId] = width;\n }\n\n return Object.keys(result).length > 0 ? result : undefined;\n};\n\nconst normalizeEntry = (entry: unknown): IDataTableColumnsEntry => {\n if (!entry || typeof entry !== 'object') return {};\n if (!isCurrentEntryShape(entry)) return { visibility: entry as VisibilityState };\n\n const candidate = entry as { order?: unknown; visibility?: unknown; sizing?: unknown };\n\n return {\n order: Array.isArray(candidate.order)\n ? candidate.order.filter((id): id is string => typeof id === 'string')\n : undefined,\n visibility:\n candidate.visibility && typeof candidate.visibility === 'object'\n ? (candidate.visibility as VisibilityState)\n : undefined,\n sizing: normalizeSizing(candidate.sizing),\n };\n};\n\n// Reading normalizes the legacy shape on the fly, so the upgrade costs nothing\n// and lands on disk at the next write. Only the per-table keys need a real\n// migration, since they live outside the consolidated entry.\nconst readNormalizedStore = (): TDataTableColumnsStore => {\n const raw = readUiPreference<Record<string, unknown>>(COLUMNS_STORAGE_KEY) ?? {};\n const store: TDataTableColumnsStore = {};\n\n for (const [entityKey, entry] of Object.entries(raw)) store[entityKey] = normalizeEntry(entry);\n\n return store;\n};\n\nlet didMigrateOrphanKeys = false;\nconst migrateOrphanKeys = (): void => {\n if (didMigrateOrphanKeys) return;\n didMigrateOrphanKeys = true;\n\n const legacyKeys = Object.keys(localStorage).filter((key) => key.startsWith(LEGACY_PER_TABLE_KEY_PREFIX));\n const hasAbandonedOrderKey = localStorage.getItem(ABANDONED_ORDER_KEY) !== null;\n if (legacyKeys.length === 0 && !hasAbandonedOrderKey) return;\n\n const store = readNormalizedStore();\n\n for (const legacyKey of legacyKeys) {\n const entityKey = legacyKey.slice(LEGACY_PER_TABLE_KEY_PREFIX.length);\n const raw = localStorage.getItem(legacyKey);\n if (!store[entityKey]?.visibility && raw && isJSON(raw)) {\n store[entityKey] = { ...store[entityKey], visibility: JSON.parse(raw) as VisibilityState };\n }\n localStorage.removeItem(legacyKey);\n }\n\n localStorage.removeItem(ABANDONED_ORDER_KEY);\n writeUiPreference(COLUMNS_STORAGE_KEY, store);\n};\n\n// Detail (child) columns of a master/detail table persist their own entry so\n// each side keeps independent order and visibility preferences.\nexport const detailColumnsEntryKey = (entityKey: string): string => `${entityKey}:detail`;\n\nexport const readColumnsEntry = (entityKey: string): IDataTableColumnsEntry => {\n migrateOrphanKeys();\n\n return readNormalizedStore()[entityKey] ?? {};\n};\n\n// Patch-merges into the existing entry so the order and visibility hooks each\n// persist their own slice without clobbering the other.\nexport const writeColumnsEntry = (entityKey: string, patch: IDataTableColumnsEntry): void => {\n migrateOrphanKeys();\n\n const store = readNormalizedStore();\n writeUiPreference(COLUMNS_STORAGE_KEY, { ...store, [entityKey]: { ...store[entityKey], ...patch } });\n};\n"],"names":[],"mappings":";;AAMA,MAAM,sBAAsB;AAC5B,MAAM,8BAA8B,GAAG,mBAAmB;AAI1D,MAAM,sBAAsB;AAgB5B,MAAM,sBAAsB,CAAC,UAA2B;AACtD,QAAM,YAAY;AAElB,SACE,MAAM,QAAQ,UAAU,KAAK,KAC5B,CAAC,CAAC,UAAU,cAAc,OAAO,UAAU,eAAe,YAC1D,CAAC,CAAC,UAAU,UAAU,OAAO,UAAU,WAAW;AAEvD;AAEA,MAAM,kBAAkB,CAAC,WAAwD;AAC/E,MAAI,CAAC,UAAU,OAAO,WAAW,SAAU,QAAO;AAElD,QAAM,SAAiC,CAAA;AACvC,aAAW,CAAC,UAAU,KAAK,KAAK,OAAO,QAAQ,MAAiC,GAAG;AACjF,QAAI,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,EAAG,QAAO,QAAQ,IAAI;AAAA,EAC9E;AAEA,SAAO,OAAO,KAAK,MAAM,EAAE,SAAS,IAAI,SAAS;AACnD;AAEA,MAAM,iBAAiB,CAAC,UAA2C;AACjE,MAAI,CAAC,SAAS,OAAO,UAAU,iBAAiB,CAAA;AAChD,MAAI,CAAC,oBAAoB,KAAK,EAAG,QAAO,EAAE,YAAY,MAAA;AAEtD,QAAM,YAAY;AAElB,SAAO;AAAA,IACL,OAAO,MAAM,QAAQ,UAAU,KAAK,IAChC,UAAU,MAAM,OAAO,CAAC,OAAqB,OAAO,OAAO,QAAQ,IACnE;AAAA,IACJ,YACE,UAAU,cAAc,OAAO,UAAU,eAAe,WACnD,UAAU,aACX;AAAA,IACN,QAAQ,gBAAgB,UAAU,MAAM;AAAA,EAAA;AAE5C;AAKA,MAAM,sBAAsB,MAA8B;AACxD,QAAM,MAAM,iBAA0C,mBAAmB,KAAK,CAAA;AAC9E,QAAM,QAAgC,CAAA;AAEtC,aAAW,CAAC,WAAW,KAAK,KAAK,OAAO,QAAQ,GAAG,EAAG,OAAM,SAAS,IAAI,eAAe,KAAK;AAE7F,SAAO;AACT;AAEA,IAAI,uBAAuB;AAC3B,MAAM,oBAAoB,MAAY;AACpC,MAAI,qBAAsB;AAC1B,yBAAuB;AAEvB,QAAM,aAAa,OAAO,KAAK,YAAY,EAAE,OAAO,CAAC,QAAQ,IAAI,WAAW,2BAA2B,CAAC;AACxG,QAAM,uBAAuB,aAAa,QAAQ,mBAAmB,MAAM;AAC3E,MAAI,WAAW,WAAW,KAAK,CAAC,qBAAsB;AAEtD,QAAM,QAAQ,oBAAA;AAEd,aAAW,aAAa,YAAY;AAClC,UAAM,YAAY,UAAU,MAAM,4BAA4B,MAAM;AACpE,UAAM,MAAM,aAAa,QAAQ,SAAS;AAC1C,QAAI,CAAC,MAAM,SAAS,GAAG,cAAc,OAAO,OAAO,GAAG,GAAG;AACvD,YAAM,SAAS,IAAI,EAAE,GAAG,MAAM,SAAS,GAAG,YAAY,KAAK,MAAM,GAAG,EAAA;AAAA,IACtE;AACA,iBAAa,WAAW,SAAS;AAAA,EACnC;AAEA,eAAa,WAAW,mBAAmB;AAC3C,oBAAkB,qBAAqB,KAAK;AAC9C;AAIO,MAAM,wBAAwB,CAAC,cAA8B,GAAG,SAAS;AAEzE,MAAM,mBAAmB,CAAC,cAA8C;AAC7E,oBAAA;AAEA,SAAO,oBAAA,EAAsB,SAAS,KAAK,CAAA;AAC7C;AAIO,MAAM,oBAAoB,CAAC,WAAmB,UAAwC;AAC3F,oBAAA;AAEA,QAAM,QAAQ,oBAAA;AACd,oBAAkB,qBAAqB,EAAE,GAAG,OAAO,CAAC,SAAS,GAAG,EAAE,GAAG,MAAM,SAAS,GAAG,GAAG,MAAA,GAAS;AACrG;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const DATA_TABLE_OPACITY_TRANSITION_MS = 200;
|
|
2
|
+
export declare const DATA_TABLE_CROSSFADE_DIP_OPACITY = 0.55;
|
|
3
|
+
export declare const DATA_TABLE_UPDATING_OPACITY = 0.8;
|
|
4
|
+
export declare const DATA_TABLE_UPDATING_BAR_DELAY_MS = 100;
|
|
5
|
+
export declare const dataTableOpacityTransitionClass = "transition-opacity duration-base ease-out";
|
|
6
|
+
export declare const prefersReducedMotion: () => boolean;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const DATA_TABLE_OPACITY_TRANSITION_MS = 200;
|
|
2
|
+
const DATA_TABLE_CROSSFADE_DIP_OPACITY = 0.55;
|
|
3
|
+
const DATA_TABLE_UPDATING_OPACITY = 0.8;
|
|
4
|
+
const DATA_TABLE_UPDATING_BAR_DELAY_MS = 100;
|
|
5
|
+
const dataTableOpacityTransitionClass = "transition-opacity duration-base ease-out";
|
|
6
|
+
const prefersReducedMotion = () => typeof window !== "undefined" && typeof window.matchMedia === "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
7
|
+
export {
|
|
8
|
+
DATA_TABLE_CROSSFADE_DIP_OPACITY,
|
|
9
|
+
DATA_TABLE_OPACITY_TRANSITION_MS,
|
|
10
|
+
DATA_TABLE_UPDATING_BAR_DELAY_MS,
|
|
11
|
+
DATA_TABLE_UPDATING_OPACITY,
|
|
12
|
+
dataTableOpacityTransitionClass,
|
|
13
|
+
prefersReducedMotion
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=dataTableMotion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataTableMotion.js","sources":["../../../../src/components/UI/DataTable/dataTableMotion.ts"],"sourcesContent":["export const DATA_TABLE_OPACITY_TRANSITION_MS = 200;\nexport const DATA_TABLE_CROSSFADE_DIP_OPACITY = 0.55;\nexport const DATA_TABLE_UPDATING_OPACITY = 0.8;\nexport const DATA_TABLE_UPDATING_BAR_DELAY_MS = 100;\n\nexport const dataTableOpacityTransitionClass = 'transition-opacity duration-base ease-out';\n\nexport const prefersReducedMotion = (): boolean =>\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n"],"names":[],"mappings":"AAAO,MAAM,mCAAmC;AACzC,MAAM,mCAAmC;AACzC,MAAM,8BAA8B;AACpC,MAAM,mCAAmC;AAEzC,MAAM,kCAAkC;AAExC,MAAM,uBAAuB,MAClC,OAAO,WAAW,eAClB,OAAO,OAAO,eAAe,cAC7B,OAAO,WAAW,kCAAkC,EAAE;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The small square at the bottom-right of the selection. It drives the drag with
|
|
4
|
+
* pointer capture, so every move event is delivered to this element and the grid
|
|
5
|
+
* needs no document-level pointer listeners.
|
|
6
|
+
*/
|
|
7
|
+
declare const GridFillHandle: React.FC;
|
|
8
|
+
export default GridFillHandle;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from "react";
|
|
3
|
+
import { useTranslation } from "react-i18next";
|
|
4
|
+
import ControlledButton from "../../../Form/ControlledButton.js";
|
|
5
|
+
import ControlledTooltip from "../../ControlledTooltip.js";
|
|
6
|
+
import { useGridStoreApi, useGridCellRegistry } from "./GridProvider.js";
|
|
7
|
+
import { GRID_CELL_DATA_ATTR, GRID_ROW_DATA_ATTR, GRID_COLUMN_DATA_ATTR } from "./gridTypes.js";
|
|
8
|
+
const GridFillHandle = () => {
|
|
9
|
+
const { t } = useTranslation("ui");
|
|
10
|
+
const store = useGridStoreApi();
|
|
11
|
+
const registry = useGridCellRegistry();
|
|
12
|
+
const [isDragging, setIsDragging] = useState(false);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
if (!isDragging || !store) return void 0;
|
|
15
|
+
const handleKeyDown = (event) => {
|
|
16
|
+
if (event.key !== "Escape") return;
|
|
17
|
+
store.getState().cancelFill();
|
|
18
|
+
setIsDragging(false);
|
|
19
|
+
};
|
|
20
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
21
|
+
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
22
|
+
}, [isDragging, store]);
|
|
23
|
+
const handlePointerDown = (event) => {
|
|
24
|
+
if (!store) return;
|
|
25
|
+
event.preventDefault();
|
|
26
|
+
event.stopPropagation();
|
|
27
|
+
event.currentTarget.setPointerCapture(event.pointerId);
|
|
28
|
+
store.getState().startFill();
|
|
29
|
+
setIsDragging(true);
|
|
30
|
+
};
|
|
31
|
+
const handlePointerMove = (event) => {
|
|
32
|
+
if (!store || !store.getState().fillSourceRect) return;
|
|
33
|
+
const elementUnderPointer = document.elementFromPoint(event.clientX, event.clientY);
|
|
34
|
+
const cell = elementUnderPointer?.closest(`[${GRID_CELL_DATA_ATTR}]`);
|
|
35
|
+
const rowId = cell?.getAttribute(GRID_ROW_DATA_ATTR);
|
|
36
|
+
const columnId = cell?.getAttribute(GRID_COLUMN_DATA_ATTR);
|
|
37
|
+
if (!rowId || !columnId) return;
|
|
38
|
+
store.getState().updateFillTarget({ rowId, columnId });
|
|
39
|
+
};
|
|
40
|
+
const handlePointerUp = (event) => {
|
|
41
|
+
setIsDragging(false);
|
|
42
|
+
if (event.currentTarget.hasPointerCapture(event.pointerId)) {
|
|
43
|
+
event.currentTarget.releasePointerCapture(event.pointerId);
|
|
44
|
+
}
|
|
45
|
+
if (!store) return;
|
|
46
|
+
const result = store.getState().endFill();
|
|
47
|
+
if (result) registry?.commitFill(result);
|
|
48
|
+
};
|
|
49
|
+
return /* @__PURE__ */ jsx(ControlledTooltip, { content: t("dataTable.fillHandle"), children: /* @__PURE__ */ jsx(
|
|
50
|
+
ControlledButton,
|
|
51
|
+
{
|
|
52
|
+
defaultHtmlButton: true,
|
|
53
|
+
tabIndex: -1,
|
|
54
|
+
onMouseDown: (event) => event.stopPropagation(),
|
|
55
|
+
onPointerDown: handlePointerDown,
|
|
56
|
+
onPointerMove: handlePointerMove,
|
|
57
|
+
onPointerUp: handlePointerUp,
|
|
58
|
+
onPointerCancel: () => {
|
|
59
|
+
setIsDragging(false);
|
|
60
|
+
store?.getState().cancelFill();
|
|
61
|
+
},
|
|
62
|
+
className: "absolute bottom-0 right-0 z-30 size-2 cursor-crosshair rounded-[0.125rem] bg-brand",
|
|
63
|
+
children: null
|
|
64
|
+
}
|
|
65
|
+
) });
|
|
66
|
+
};
|
|
67
|
+
export {
|
|
68
|
+
GridFillHandle as default
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=GridFillHandle.js.map
|