@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 @@
|
|
|
1
|
+
{"version":3,"file":"bulkEditValues.js","sources":["../../../../src/components/UI/DataTable/bulkEditValues.ts"],"sourcesContent":["export const isBulkValueEmpty = (value: unknown): boolean =>\n Array.isArray(value) ? value.length === 0 : value == null || value === '';\n\n/**\n * Compares a cell draft with the row's current value. Editors produce strings\n * while the document may store numbers, so both sides are compared in textual\n * form; empty (null, '', []) is a single state, so editing and reverting does\n * not count as a change.\n */\nexport const areBulkValuesEqual = (left: unknown, right: unknown): boolean => {\n if (isBulkValueEmpty(left) && isBulkValueEmpty(right)) return true;\n if (isBulkValueEmpty(left) !== isBulkValueEmpty(right)) return false;\n\n const leftEntries = (Array.isArray(left) ? left : [left]).map(String);\n const rightEntries = (Array.isArray(right) ? right : [right]).map(String);\n\n return (\n leftEntries.length === rightEntries.length && leftEntries.every((entry, index) => entry === rightEntries[index])\n );\n};\n"],"names":[],"mappings":"AAAO,MAAM,mBAAmB,CAAC,UAC/B,MAAM,QAAQ,KAAK,IAAI,MAAM,WAAW,IAAI,SAAS,QAAQ,UAAU;AAQlE,MAAM,qBAAqB,CAAC,MAAe,UAA4B;AAC5E,MAAI,iBAAiB,IAAI,KAAK,iBAAiB,KAAK,EAAG,QAAO;AAC9D,MAAI,iBAAiB,IAAI,MAAM,iBAAiB,KAAK,EAAG,QAAO;AAE/D,QAAM,eAAe,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,MAAM;AACpE,QAAM,gBAAgB,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG,IAAI,MAAM;AAExE,SACE,YAAY,WAAW,aAAa,UAAU,YAAY,MAAM,CAAC,OAAO,UAAU,UAAU,aAAa,KAAK,CAAC;AAEnH;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IDataTableActionItem, IDataTableRow } from '../types';
|
|
2
|
+
interface IDataTableActionsCellProps<T extends IDataTableRow> {
|
|
3
|
+
row: T;
|
|
4
|
+
actions: Array<IDataTableActionItem<T>>;
|
|
5
|
+
}
|
|
6
|
+
declare const DataTableActionsCell: <T extends IDataTableRow>({ row, actions }: IDataTableActionsCellProps<T>) => import("react").JSX.Element | null;
|
|
7
|
+
export default DataTableActionsCell;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { useTranslation } from "react-i18next";
|
|
4
|
+
import ControlledButton from "../../../Form/ControlledButton.js";
|
|
5
|
+
import ControlledSwitch from "../../../Form/ControlledSwitch.js";
|
|
6
|
+
import { useUiAccess } from "../../access/UiAccessContext.js";
|
|
7
|
+
import ControlledTooltip from "../../ControlledTooltip.js";
|
|
8
|
+
import { MaterialSymbol } from "../../MaterialSymbol/index.js";
|
|
9
|
+
import { formatNumber } from "../../../../helpers/formatHelpers.js";
|
|
10
|
+
const DataTableActionsCell = ({ row, actions }) => {
|
|
11
|
+
const { t } = useTranslation("ui");
|
|
12
|
+
const { check } = useUiAccess();
|
|
13
|
+
const visibleActions = actions.filter((action) => !action.hidden?.(row));
|
|
14
|
+
if (visibleActions.length === 0) return null;
|
|
15
|
+
return /* @__PURE__ */ jsx("div", { className: "flex items-center justify-end gap-1", onClick: (event) => event.stopPropagation(), children: visibleActions.map((action) => {
|
|
16
|
+
const label = typeof action.label === "function" ? action.label(row) : action.label;
|
|
17
|
+
const icon = typeof action.icon === "function" ? action.icon(row) : action.icon;
|
|
18
|
+
const count = action.count?.(row);
|
|
19
|
+
const isDeniedByPermission = Boolean(action.capability) && !check(action.capability ?? [], "any");
|
|
20
|
+
const isDisabled = isDeniedByPermission || action.disabled?.(row);
|
|
21
|
+
if (action.toggle) {
|
|
22
|
+
return /* @__PURE__ */ jsx(ControlledTooltip, { content: isDeniedByPermission ? t("permissions.deniedAction") : label, children: /* @__PURE__ */ jsx("span", { className: "inline-flex px-1", children: /* @__PURE__ */ jsx(
|
|
23
|
+
ControlledSwitch,
|
|
24
|
+
{
|
|
25
|
+
size: "sm",
|
|
26
|
+
checked: action.toggle(row),
|
|
27
|
+
disabled: isDisabled,
|
|
28
|
+
ariaLabel: label,
|
|
29
|
+
onChange: () => action.onClick(row)
|
|
30
|
+
}
|
|
31
|
+
) }) }, action.key);
|
|
32
|
+
}
|
|
33
|
+
return /* @__PURE__ */ jsx(ControlledTooltip, { content: isDeniedByPermission ? t("permissions.deniedAction") : label, children: /* @__PURE__ */ jsx("span", { className: "inline-flex", children: /* @__PURE__ */ jsxs(
|
|
34
|
+
ControlledButton,
|
|
35
|
+
{
|
|
36
|
+
defaultHtmlButton: true,
|
|
37
|
+
"aria-label": label,
|
|
38
|
+
disabled: isDisabled,
|
|
39
|
+
onClick: () => action.onClick(row),
|
|
40
|
+
className: classNames(
|
|
41
|
+
"inline-flex cursor-pointer items-center justify-center gap-1 rounded-md p-1.5 transition-colors disabled:cursor-not-allowed",
|
|
42
|
+
action.danger ? "text-danger-emphasis hover:bg-danger-soft disabled:text-danger-soft" : "text-foreground-subtle hover:bg-muted-hover hover:text-foreground-muted disabled:text-foreground-faint"
|
|
43
|
+
),
|
|
44
|
+
children: [
|
|
45
|
+
icon && /* @__PURE__ */ jsx(MaterialSymbol, { icon, size: 18 }),
|
|
46
|
+
typeof count === "number" && /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold", children: formatNumber(count) })
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
) }) }, action.key);
|
|
50
|
+
}) });
|
|
51
|
+
};
|
|
52
|
+
export {
|
|
53
|
+
DataTableActionsCell as default
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=DataTableActionsCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableActionsCell.js","sources":["../../../../../src/components/UI/DataTable/cells/DataTableActionsCell.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport ControlledButton from '@/components/Form/ControlledButton';\nimport ControlledSwitch from '@/components/Form/ControlledSwitch';\nimport { useUiAccess } from '@/components/UI/access/UiAccessContext';\nimport ControlledTooltip from '@/components/UI/ControlledTooltip';\nimport { MaterialSymbol } from '@/components/UI/MaterialSymbol';\nimport { formatNumber } from '@/helpers/formatHelpers';\n\nimport type { IDataTableActionItem, IDataTableRow } from '../types';\n\ninterface IDataTableActionsCellProps<T extends IDataTableRow> {\n row: T;\n actions: Array<IDataTableActionItem<T>>;\n}\n\nconst DataTableActionsCell = <T extends IDataTableRow>({ row, actions }: IDataTableActionsCellProps<T>) => {\n const { t } = useTranslation('ui');\n const { check } = useUiAccess();\n\n const visibleActions = actions.filter((action) => !action.hidden?.(row));\n\n if (visibleActions.length === 0) return null;\n\n return (\n <div className=\"flex items-center justify-end gap-1\" onClick={(event) => event.stopPropagation()}>\n {visibleActions.map((action) => {\n const label = typeof action.label === 'function' ? action.label(row) : action.label;\n const icon = typeof action.icon === 'function' ? action.icon(row) : action.icon;\n const count = action.count?.(row);\n const isDeniedByPermission = Boolean(action.capability) && !check(action.capability ?? [], 'any');\n const isDisabled = isDeniedByPermission || action.disabled?.(row);\n\n if (action.toggle) {\n return (\n <ControlledTooltip key={action.key} content={isDeniedByPermission ? t('permissions.deniedAction') : label}>\n <span className=\"inline-flex px-1\">\n <ControlledSwitch\n size=\"sm\"\n checked={action.toggle(row)}\n disabled={isDisabled}\n ariaLabel={label}\n onChange={() => action.onClick(row)}\n />\n </span>\n </ControlledTooltip>\n );\n }\n\n return (\n <ControlledTooltip key={action.key} content={isDeniedByPermission ? t('permissions.deniedAction') : label}>\n <span className=\"inline-flex\">\n <ControlledButton\n defaultHtmlButton\n aria-label={label}\n disabled={isDisabled}\n onClick={() => action.onClick(row)}\n className={classNames(\n 'inline-flex cursor-pointer items-center justify-center gap-1 rounded-md p-1.5 transition-colors disabled:cursor-not-allowed',\n action.danger\n ? 'text-danger-emphasis hover:bg-danger-soft disabled:text-danger-soft'\n : 'text-foreground-subtle hover:bg-muted-hover hover:text-foreground-muted disabled:text-foreground-faint',\n )}\n >\n {icon && <MaterialSymbol icon={icon} size={18} />}\n {typeof count === 'number' && <span className=\"text-xs font-semibold\">{formatNumber(count)}</span>}\n </ControlledButton>\n </span>\n </ControlledTooltip>\n );\n })}\n </div>\n );\n};\n\nexport default DataTableActionsCell;\n"],"names":[],"mappings":";;;;;;;;;AAiBA,MAAM,uBAAuB,CAA0B,EAAE,KAAK,cAA6C;AACzG,QAAM,EAAE,EAAA,IAAM,eAAe,IAAI;AACjC,QAAM,EAAE,MAAA,IAAU,YAAA;AAElB,QAAM,iBAAiB,QAAQ,OAAO,CAAC,WAAW,CAAC,OAAO,SAAS,GAAG,CAAC;AAEvE,MAAI,eAAe,WAAW,EAAG,QAAO;AAExC,SACE,oBAAC,OAAA,EAAI,WAAU,uCAAsC,SAAS,CAAC,UAAU,MAAM,gBAAA,GAC5E,UAAA,eAAe,IAAI,CAAC,WAAW;AAC9B,UAAM,QAAQ,OAAO,OAAO,UAAU,aAAa,OAAO,MAAM,GAAG,IAAI,OAAO;AAC9E,UAAM,OAAO,OAAO,OAAO,SAAS,aAAa,OAAO,KAAK,GAAG,IAAI,OAAO;AAC3E,UAAM,QAAQ,OAAO,QAAQ,GAAG;AAChC,UAAM,uBAAuB,QAAQ,OAAO,UAAU,KAAK,CAAC,MAAM,OAAO,cAAc,CAAA,GAAI,KAAK;AAChG,UAAM,aAAa,wBAAwB,OAAO,WAAW,GAAG;AAEhE,QAAI,OAAO,QAAQ;AACjB,aACE,oBAAC,mBAAA,EAAmC,SAAS,uBAAuB,EAAE,0BAA0B,IAAI,OAClG,UAAA,oBAAC,QAAA,EAAK,WAAU,oBACd,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,OAAO,OAAO,GAAG;AAAA,UAC1B,UAAU;AAAA,UACV,WAAW;AAAA,UACX,UAAU,MAAM,OAAO,QAAQ,GAAG;AAAA,QAAA;AAAA,MAAA,GAEtC,EAAA,GATsB,OAAO,GAU/B;AAAA,IAEJ;AAEA,WACE,oBAAC,mBAAA,EAAmC,SAAS,uBAAuB,EAAE,0BAA0B,IAAI,OAClG,UAAA,oBAAC,QAAA,EAAK,WAAU,eACd,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,mBAAiB;AAAA,QACjB,cAAY;AAAA,QACZ,UAAU;AAAA,QACV,SAAS,MAAM,OAAO,QAAQ,GAAG;AAAA,QACjC,WAAW;AAAA,UACT;AAAA,UACA,OAAO,SACH,wEACA;AAAA,QAAA;AAAA,QAGL,UAAA;AAAA,UAAA,QAAQ,oBAAC,gBAAA,EAAe,MAAY,MAAM,IAAI;AAAA,UAC9C,OAAO,UAAU,YAAY,oBAAC,UAAK,WAAU,yBAAyB,UAAA,aAAa,KAAK,EAAA,CAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAE/F,EAAA,GAjBsB,OAAO,GAkB/B;AAAA,EAEJ,CAAC,EAAA,CACH;AAEJ;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IDataTableColumnConfig, IDataTableRow } from '../types';
|
|
2
|
+
interface IDataTableCellProps<T extends IDataTableRow> {
|
|
3
|
+
column: IDataTableColumnConfig<T>;
|
|
4
|
+
row: T;
|
|
5
|
+
/** TanStack row id, the grid coordinate of this cell in the spreadsheet layer. */
|
|
6
|
+
gridRowId?: string;
|
|
7
|
+
/** When present and the column is `editable`, the cell renders a controlled editor. */
|
|
8
|
+
onCellChange?: (row: T, columnId: string, value: unknown) => void;
|
|
9
|
+
/** Forwarded to the editable cell: Enter moves focus to the next editable input. */
|
|
10
|
+
keyboardNav?: boolean;
|
|
11
|
+
/** Forwarded to the editable cell: the value shows as text until the cell is clicked. */
|
|
12
|
+
clickToEdit?: boolean;
|
|
13
|
+
}
|
|
14
|
+
declare const DataTableCell: <T extends IDataTableRow>({ column, row, gridRowId, onCellChange, keyboardNav, clickToEdit, }: IDataTableCellProps<T>) => import("react").JSX.Element;
|
|
15
|
+
export default DataTableCell;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx, Fragment } from "react/jsx-runtime";
|
|
2
|
+
import DataTableCodeCell from "./DataTableCodeCell.js";
|
|
3
|
+
import DataTableColorCell from "./DataTableColorCell.js";
|
|
4
|
+
import DataTableCountCell from "./DataTableCountCell.js";
|
|
5
|
+
import DataTableDateCell from "./DataTableDateCell.js";
|
|
6
|
+
import DataTableEditableCell from "./DataTableEditableCell.js";
|
|
7
|
+
import DataTableEmpenhoCell from "./DataTableEmpenhoCell.js";
|
|
8
|
+
import DataTableOriginCell from "./DataTableOriginCell.js";
|
|
9
|
+
import DataTableStatusCell from "./DataTableStatusCell.js";
|
|
10
|
+
import DataTableTagCell from "./DataTableTagCell.js";
|
|
11
|
+
import DataTableTextCell from "./DataTableTextCell.js";
|
|
12
|
+
import DataTableThumbnailCell from "./DataTableThumbnailCell.js";
|
|
13
|
+
const DataTableCell = ({
|
|
14
|
+
column,
|
|
15
|
+
row,
|
|
16
|
+
gridRowId,
|
|
17
|
+
onCellChange,
|
|
18
|
+
keyboardNav,
|
|
19
|
+
clickToEdit
|
|
20
|
+
}) => {
|
|
21
|
+
if (column.editable && onCellChange) {
|
|
22
|
+
return /* @__PURE__ */ jsx(
|
|
23
|
+
DataTableEditableCell,
|
|
24
|
+
{
|
|
25
|
+
column,
|
|
26
|
+
row,
|
|
27
|
+
gridRowId,
|
|
28
|
+
onCellChange,
|
|
29
|
+
keyboardNav,
|
|
30
|
+
clickToEdit
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
if (column.render) return /* @__PURE__ */ jsx(Fragment, { children: column.render(row) });
|
|
35
|
+
const value = column.accessor?.(row);
|
|
36
|
+
switch (column.type) {
|
|
37
|
+
case "code":
|
|
38
|
+
return /* @__PURE__ */ jsx(DataTableCodeCell, { value });
|
|
39
|
+
case "color":
|
|
40
|
+
return /* @__PURE__ */ jsx(DataTableColorCell, { value });
|
|
41
|
+
case "thumbnail":
|
|
42
|
+
return /* @__PURE__ */ jsx(DataTableThumbnailCell, { value });
|
|
43
|
+
case "badgeStatus":
|
|
44
|
+
return /* @__PURE__ */ jsx(DataTableStatusCell, { value });
|
|
45
|
+
case "origin":
|
|
46
|
+
return /* @__PURE__ */ jsx(DataTableOriginCell, { value });
|
|
47
|
+
case "tag":
|
|
48
|
+
return /* @__PURE__ */ jsx(DataTableTagCell, { value });
|
|
49
|
+
case "count":
|
|
50
|
+
return /* @__PURE__ */ jsx(DataTableCountCell, { value });
|
|
51
|
+
case "commitment":
|
|
52
|
+
return /* @__PURE__ */ jsx(DataTableEmpenhoCell, { value });
|
|
53
|
+
case "date":
|
|
54
|
+
return /* @__PURE__ */ jsx(DataTableDateCell, { value });
|
|
55
|
+
case "text":
|
|
56
|
+
default:
|
|
57
|
+
return /* @__PURE__ */ jsx(DataTableTextCell, { value });
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
export {
|
|
61
|
+
DataTableCell as default
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=DataTableCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableCell.js","sources":["../../../../../src/components/UI/DataTable/cells/DataTableCell.tsx"],"sourcesContent":["import type {\n IDataTableColorValue,\n IDataTableColumnConfig,\n IDataTableOriginValue,\n IDataTableRow,\n IDataTableStatusValue,\n IDataTableTagValue,\n IDataTableThumbnailValue,\n} from '../types';\n\nimport DataTableCodeCell from './DataTableCodeCell';\nimport DataTableColorCell from './DataTableColorCell';\nimport DataTableCountCell from './DataTableCountCell';\nimport DataTableDateCell from './DataTableDateCell';\nimport DataTableEditableCell from './DataTableEditableCell';\nimport DataTableEmpenhoCell from './DataTableEmpenhoCell';\nimport DataTableOriginCell from './DataTableOriginCell';\nimport DataTableStatusCell from './DataTableStatusCell';\nimport DataTableTagCell from './DataTableTagCell';\nimport DataTableTextCell from './DataTableTextCell';\nimport DataTableThumbnailCell from './DataTableThumbnailCell';\n\ninterface IDataTableCellProps<T extends IDataTableRow> {\n column: IDataTableColumnConfig<T>;\n row: T;\n /** TanStack row id, the grid coordinate of this cell in the spreadsheet layer. */\n gridRowId?: string;\n /** When present and the column is `editable`, the cell renders a controlled editor. */\n onCellChange?: (row: T, columnId: string, value: unknown) => void;\n /** Forwarded to the editable cell: Enter moves focus to the next editable input. */\n keyboardNav?: boolean;\n /** Forwarded to the editable cell: the value shows as text until the cell is clicked. */\n clickToEdit?: boolean;\n}\n\nconst DataTableCell = <T extends IDataTableRow>({\n column,\n row,\n gridRowId,\n onCellChange,\n keyboardNav,\n clickToEdit,\n}: IDataTableCellProps<T>) => {\n if (column.editable && onCellChange) {\n return (\n <DataTableEditableCell\n column={column}\n row={row}\n gridRowId={gridRowId}\n onCellChange={onCellChange}\n keyboardNav={keyboardNav}\n clickToEdit={clickToEdit}\n />\n );\n }\n\n if (column.render) return <>{column.render(row)}</>;\n\n const value = column.accessor?.(row);\n\n switch (column.type) {\n case 'code':\n return <DataTableCodeCell value={value as string} />;\n case 'color':\n return <DataTableColorCell value={value as IDataTableColorValue} />;\n case 'thumbnail':\n return <DataTableThumbnailCell value={value as IDataTableThumbnailValue} />;\n case 'badgeStatus':\n return <DataTableStatusCell value={value as IDataTableStatusValue} />;\n case 'origin':\n return <DataTableOriginCell value={value as IDataTableOriginValue} />;\n case 'tag':\n return <DataTableTagCell value={value as IDataTableTagValue} />;\n case 'count':\n return <DataTableCountCell value={value as number} />;\n case 'commitment':\n return <DataTableEmpenhoCell value={value as number} />;\n case 'date':\n return <DataTableDateCell value={value as string} />;\n case 'text':\n default:\n return <DataTableTextCell value={value as string} />;\n }\n};\n\nexport default DataTableCell;\n"],"names":[],"mappings":";;;;;;;;;;;;AAmCA,MAAM,gBAAgB,CAA0B;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA8B;AAC5B,MAAI,OAAO,YAAY,cAAc;AACnC,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AAEA,MAAI,OAAO,OAAQ,wCAAU,UAAA,OAAO,OAAO,GAAG,GAAE;AAEhD,QAAM,QAAQ,OAAO,WAAW,GAAG;AAEnC,UAAQ,OAAO,MAAA;AAAA,IACb,KAAK;AACH,aAAO,oBAAC,qBAAkB,OAAwB;AAAA,IACpD,KAAK;AACH,aAAO,oBAAC,sBAAmB,OAAsC;AAAA,IACnE,KAAK;AACH,aAAO,oBAAC,0BAAuB,OAA0C;AAAA,IAC3E,KAAK;AACH,aAAO,oBAAC,uBAAoB,OAAuC;AAAA,IACrE,KAAK;AACH,aAAO,oBAAC,uBAAoB,OAAuC;AAAA,IACrE,KAAK;AACH,aAAO,oBAAC,oBAAiB,OAAoC;AAAA,IAC/D,KAAK;AACH,aAAO,oBAAC,sBAAmB,OAAwB;AAAA,IACrD,KAAK;AACH,aAAO,oBAAC,wBAAqB,OAAwB;AAAA,IACvD,KAAK;AACH,aAAO,oBAAC,qBAAkB,OAAwB;AAAA,IACpD,KAAK;AAAA,IACL;AACE,aAAO,oBAAC,qBAAkB,OAAwB;AAAA,EAAA;AAExD;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
const DataTableCodeCell = ({ value, className }) => /* @__PURE__ */ jsx("span", { className: classNames("block truncate font-mono text-xs text-foreground-subtle", className), children: value?.length ? value : "-" });
|
|
4
|
+
export {
|
|
5
|
+
DataTableCodeCell as default
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=DataTableCodeCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableCodeCell.js","sources":["../../../../../src/components/UI/DataTable/cells/DataTableCodeCell.tsx"],"sourcesContent":["import classNames from 'classnames';\n\ninterface IDataTableCodeCellProps {\n value: string | null | undefined;\n className?: string;\n}\n\nconst DataTableCodeCell: React.FC<IDataTableCodeCellProps> = ({ value, className }) => (\n <span className={classNames('block truncate font-mono text-xs text-foreground-subtle', className)}>\n {value?.length ? value : '-'}\n </span>\n);\n\nexport default DataTableCodeCell;\n"],"names":[],"mappings":";;AAOA,MAAM,oBAAuD,CAAC,EAAE,OAAO,UAAA,MACrE,oBAAC,QAAA,EAAK,WAAW,WAAW,2DAA2D,SAAS,GAC7F,UAAA,OAAO,SAAS,QAAQ,IAAA,CAC3B;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IDataTableColorValue } from '../types';
|
|
2
|
+
interface IDataTableColorCellProps {
|
|
3
|
+
value: IDataTableColorValue | null | undefined;
|
|
4
|
+
}
|
|
5
|
+
/** Sem cor atribuída é um traço; cor atribuída sem código vira o cinza padrão, nunca um vazio. */
|
|
6
|
+
declare const DataTableColorCell: React.FC<IDataTableColorCellProps>;
|
|
7
|
+
export default DataTableColorCell;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import Colors from "../../Colors.js";
|
|
3
|
+
const DataTableColorCell = ({ value }) => {
|
|
4
|
+
if (!value?.hex && !value?.label) return /* @__PURE__ */ jsx("span", { className: "text-sm text-foreground-faint", children: "-" });
|
|
5
|
+
return /* @__PURE__ */ jsx(Colors, { colors: value.hex ? [value.hex] : [], isSquare: true, label: value.label, className: "size-6 min-h-6 min-w-6" });
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
DataTableColorCell as default
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=DataTableColorCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableColorCell.js","sources":["../../../../../src/components/UI/DataTable/cells/DataTableColorCell.tsx"],"sourcesContent":["import Colors from '@/components/UI/Colors';\n\nimport type { IDataTableColorValue } from '../types';\n\ninterface IDataTableColorCellProps {\n value: IDataTableColorValue | null | undefined;\n}\n\n/** Sem cor atribuída é um traço; cor atribuída sem código vira o cinza padrão, nunca um vazio. */\nconst DataTableColorCell: React.FC<IDataTableColorCellProps> = ({ value }) => {\n if (!value?.hex && !value?.label) return <span className=\"text-sm text-foreground-faint\">-</span>;\n\n return (\n <Colors colors={value.hex ? [value.hex] : []} isSquare label={value.label} className=\"size-6 min-h-6 min-w-6\" />\n );\n};\n\nexport default DataTableColorCell;\n"],"names":[],"mappings":";;AASA,MAAM,qBAAyD,CAAC,EAAE,YAAY;AAC5E,MAAI,CAAC,OAAO,OAAO,CAAC,OAAO,MAAO,QAAO,oBAAC,QAAA,EAAK,WAAU,iCAAgC,UAAA,IAAA,CAAC;AAE1F,6BACG,QAAA,EAAO,QAAQ,MAAM,MAAM,CAAC,MAAM,GAAG,IAAI,CAAA,GAAI,UAAQ,MAAC,OAAO,MAAM,OAAO,WAAU,0BAAyB;AAElH;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { formatNumber } from "../../../../helpers/formatHelpers.js";
|
|
3
|
+
const DataTableCountCell = ({ value }) => /* @__PURE__ */ jsx("span", { className: "text-sm tabular-nums text-foreground", children: formatNumber(value ?? 0) });
|
|
4
|
+
export {
|
|
5
|
+
DataTableCountCell as default
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=DataTableCountCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableCountCell.js","sources":["../../../../../src/components/UI/DataTable/cells/DataTableCountCell.tsx"],"sourcesContent":["import { formatNumber } from '@/helpers/formatHelpers';\n\ninterface IDataTableCountCellProps {\n value: number | null | undefined;\n}\n\nconst DataTableCountCell: React.FC<IDataTableCountCellProps> = ({ value }) => (\n <span className=\"text-sm tabular-nums text-foreground\">{formatNumber(value ?? 0)}</span>\n);\n\nexport default DataTableCountCell;\n"],"names":[],"mappings":";;AAMA,MAAM,qBAAyD,CAAC,EAAE,YAChE,oBAAC,QAAA,EAAK,WAAU,wCAAwC,UAAA,aAAa,SAAS,CAAC,EAAA,CAAE;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { formatDate } from "../../../../helpers/dateHelpers.js";
|
|
3
|
+
const DataTableDateCell = ({ value }) => {
|
|
4
|
+
if (!value) return /* @__PURE__ */ jsx("span", { className: "text-sm text-foreground-faint", children: "-" });
|
|
5
|
+
const parsed = value instanceof Date ? value : new Date(value);
|
|
6
|
+
if (Number.isNaN(parsed.getTime())) return /* @__PURE__ */ jsx("span", { className: "text-sm text-foreground-faint", children: "-" });
|
|
7
|
+
return /* @__PURE__ */ jsx("span", { className: "text-sm text-foreground", children: formatDate(parsed) });
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
DataTableDateCell as default
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=DataTableDateCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableDateCell.js","sources":["../../../../../src/components/UI/DataTable/cells/DataTableDateCell.tsx"],"sourcesContent":["import { formatDate } from '@/helpers/dateHelpers';\n\ninterface IDataTableDateCellProps {\n value: string | Date | null | undefined;\n}\n\nconst DataTableDateCell: React.FC<IDataTableDateCellProps> = ({ value }) => {\n if (!value) return <span className=\"text-sm text-foreground-faint\">-</span>;\n\n const parsed = value instanceof Date ? value : new Date(value);\n\n if (Number.isNaN(parsed.getTime())) return <span className=\"text-sm text-foreground-faint\">-</span>;\n\n return <span className=\"text-sm text-foreground\">{formatDate(parsed)}</span>;\n};\n\nexport default DataTableDateCell;\n"],"names":[],"mappings":";;AAMA,MAAM,oBAAuD,CAAC,EAAE,YAAY;AAC1E,MAAI,CAAC,MAAO,4BAAQ,QAAA,EAAK,WAAU,iCAAgC,UAAA,KAAC;AAEpE,QAAM,SAAS,iBAAiB,OAAO,QAAQ,IAAI,KAAK,KAAK;AAE7D,MAAI,OAAO,MAAM,OAAO,QAAA,CAAS,EAAG,QAAO,oBAAC,QAAA,EAAK,WAAU,iCAAgC,UAAA,IAAA,CAAC;AAE5F,6BAAQ,QAAA,EAAK,WAAU,2BAA2B,UAAA,WAAW,MAAM,GAAE;AACvE;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { IDataTableColumnConfig, IDataTableRow } from '../types';
|
|
2
|
+
interface IDataTableEditableCellProps<T extends IDataTableRow> {
|
|
3
|
+
column: IDataTableColumnConfig<T>;
|
|
4
|
+
row: T;
|
|
5
|
+
/** TanStack row id: present only inside a spreadsheet-enabled table. */
|
|
6
|
+
gridRowId?: string;
|
|
7
|
+
onCellChange: (row: T, columnId: string, value: unknown) => void;
|
|
8
|
+
/** When true, pressing Enter moves focus to the next editable input (DOM order). */
|
|
9
|
+
keyboardNav?: boolean;
|
|
10
|
+
/** When true, the cell shows the value as text until it is clicked. */
|
|
11
|
+
clickToEdit?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Controlled inline editor for a single cell. Reads the current value from the
|
|
15
|
+
* host-owned row via `column.editable.getValue` and reports every edit through
|
|
16
|
+
* `onCellChange`; the host re-renders with the updated row. Validation is derived
|
|
17
|
+
* from the current value on each render, so no local state is kept.
|
|
18
|
+
*
|
|
19
|
+
* With `clickToEdit`, the cell renders the value as text and only swaps in the editor
|
|
20
|
+
* once clicked, no editor is mounted before that.
|
|
21
|
+
*/
|
|
22
|
+
declare const DataTableEditableCell: <T extends IDataTableRow>({ column, row, gridRowId, onCellChange, keyboardNav, clickToEdit, }: IDataTableEditableCellProps<T>) => string | number | boolean | Iterable<import('react').ReactNode> | import("react").JSX.Element | null | undefined;
|
|
23
|
+
export default DataTableEditableCell;
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useRef, useState, useEffect } from "react";
|
|
3
|
+
import classNames from "classnames";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
5
|
+
import DatePicker from "../../../DateTime/DatePicker.js";
|
|
6
|
+
import ControlledInput from "../../../Form/ControlledInput.js";
|
|
7
|
+
import { ControlledSelect } from "../../../Form/ControlledSelect.js";
|
|
8
|
+
import ControlledTooltip from "../../ControlledTooltip.js";
|
|
9
|
+
import { MaterialSymbol } from "../../MaterialSymbol/index.js";
|
|
10
|
+
import { formatIsoDate } from "../../../../helpers/dateHelpers.js";
|
|
11
|
+
import { useHoverCapable } from "../../../../hooks/useHoverCapable.js";
|
|
12
|
+
import { useInlineEditor } from "../../../../hooks/useInlineEditor.js";
|
|
13
|
+
import { useGridStoreApi, useGridCellState } from "../grid/GridProvider.js";
|
|
14
|
+
import { GRID_CELL_EDITING } from "../grid/gridTypes.js";
|
|
15
|
+
import { useGridEditMode } from "../grid/useGridInstance.js";
|
|
16
|
+
import { useDataTableCellEditing, buildEditableCellKey, EDITABLE_CELL_ATTR } from "../useCellEditingState.js";
|
|
17
|
+
const EDITABLE_INPUT_ATTR = "data-datatable-editable-input";
|
|
18
|
+
const isSameEditableValue = (current, previous) => {
|
|
19
|
+
if (Array.isArray(current) || Array.isArray(previous)) {
|
|
20
|
+
if (!Array.isArray(current) || !Array.isArray(previous)) return false;
|
|
21
|
+
return current.length === previous.length && current.every((entry, index) => entry === previous[index]);
|
|
22
|
+
}
|
|
23
|
+
return current === previous;
|
|
24
|
+
};
|
|
25
|
+
const resolveDecimalSeparator = (language) => {
|
|
26
|
+
const separator = 1.1.toLocaleString(language || "pt-BR").replace(/\d/g, "");
|
|
27
|
+
return separator || ".";
|
|
28
|
+
};
|
|
29
|
+
const focusNextEditableInput = (current) => {
|
|
30
|
+
const inputs = Array.from(document.querySelectorAll(`[${EDITABLE_INPUT_ATTR}]`));
|
|
31
|
+
const index = inputs.indexOf(current);
|
|
32
|
+
if (index === -1) return;
|
|
33
|
+
inputs[index + 1]?.focus();
|
|
34
|
+
};
|
|
35
|
+
const DataTableEditableCell = ({
|
|
36
|
+
column,
|
|
37
|
+
row,
|
|
38
|
+
gridRowId,
|
|
39
|
+
onCellChange,
|
|
40
|
+
keyboardNav = false,
|
|
41
|
+
clickToEdit = false
|
|
42
|
+
}) => {
|
|
43
|
+
const { t, i18n } = useTranslation("ui");
|
|
44
|
+
const hoverCapable = useHoverCapable();
|
|
45
|
+
const cellEditing = useDataTableCellEditing();
|
|
46
|
+
const gridStore = useGridStoreApi();
|
|
47
|
+
const gridCellState = useGridCellState(gridRowId ?? "", column.id);
|
|
48
|
+
const cellKey = buildEditableCellKey(row.id, column.id);
|
|
49
|
+
const isGridEditModeOn = useGridEditMode(gridStore);
|
|
50
|
+
const hasGrid = !!gridStore && !!gridRowId;
|
|
51
|
+
const isGridCell = hasGrid && isGridEditModeOn;
|
|
52
|
+
const isEditing = isGridCell ? (gridCellState & GRID_CELL_EDITING) !== 0 : clickToEdit ? cellEditing?.editingCellKey === cellKey : true;
|
|
53
|
+
const showsReadView = isGridCell || clickToEdit;
|
|
54
|
+
const { containerRef, handleKeyDown } = useInlineEditor(
|
|
55
|
+
Boolean(!isGridCell && clickToEdit && isEditing),
|
|
56
|
+
() => cellEditing?.stopEditing(),
|
|
57
|
+
(direction) => cellEditing?.navigate(cellKey, direction)
|
|
58
|
+
);
|
|
59
|
+
const editable = column.editable;
|
|
60
|
+
const valueBeforeEditRef = useRef(null);
|
|
61
|
+
const wasEditingRef = useRef(false);
|
|
62
|
+
const [draftText, setDraftText] = useState(null);
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
if (!isEditing) setDraftText(null);
|
|
65
|
+
}, [isEditing]);
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
if (!isGridCell || !editable) return;
|
|
68
|
+
if (isEditing) {
|
|
69
|
+
if (wasEditingRef.current) return;
|
|
70
|
+
wasEditingRef.current = true;
|
|
71
|
+
valueBeforeEditRef.current = editable.getValue(row);
|
|
72
|
+
const typedSeed = gridStore?.getState().editingSeed;
|
|
73
|
+
if (typedSeed == null) return;
|
|
74
|
+
setDraftText(typedSeed);
|
|
75
|
+
onCellChange(row, column.id, typedSeed);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (!wasEditingRef.current) return;
|
|
79
|
+
wasEditingRef.current = false;
|
|
80
|
+
if (gridStore?.getState().editingOutcome !== "cancel") return;
|
|
81
|
+
if (isSameEditableValue(editable.getValue(row), valueBeforeEditRef.current)) return;
|
|
82
|
+
onCellChange(row, column.id, valueBeforeEditRef.current);
|
|
83
|
+
}, [isEditing, isGridCell, editable, gridStore, onCellChange, row, column.id]);
|
|
84
|
+
if (!editable) return null;
|
|
85
|
+
const rawValue = editable.getValue(row);
|
|
86
|
+
const disabled = editable.disabled?.(row) ?? false;
|
|
87
|
+
const error = editable.validate?.(rawValue, row) ?? null;
|
|
88
|
+
const arrayValue = Array.isArray(rawValue) ? rawValue.map(String) : [];
|
|
89
|
+
const stringValue = rawValue == null || Array.isArray(rawValue) ? "" : String(rawValue);
|
|
90
|
+
const editorOptions = editable.getOptions?.(row) ?? editable.options;
|
|
91
|
+
const selectOptions = Array.isArray(editorOptions) ? editorOptions : [];
|
|
92
|
+
const decimalValue = editable.type === "number" && typeof rawValue === "number" ? stringValue.replace(".", resolveDecimalSeparator(i18n.language)) : stringValue;
|
|
93
|
+
const renderEditor = () => {
|
|
94
|
+
if (editable.renderEditor) {
|
|
95
|
+
return editable.renderEditor({
|
|
96
|
+
value: rawValue,
|
|
97
|
+
onChange: (nextValue) => onCellChange(row, column.id, nextValue),
|
|
98
|
+
disabled,
|
|
99
|
+
label: column.header,
|
|
100
|
+
row
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
if (editable.type === "multiselect") {
|
|
104
|
+
return /* @__PURE__ */ jsx(
|
|
105
|
+
ControlledSelect,
|
|
106
|
+
{
|
|
107
|
+
className: "w-full [&_.controlled-select-container]:!min-w-0 [&_.controlled-select-input]:!min-w-0",
|
|
108
|
+
options: selectOptions,
|
|
109
|
+
selectedValue: arrayValue,
|
|
110
|
+
onChangeHook: (selected) => onCellChange(row, column.id, Array.isArray(selected) ? selected : [selected]),
|
|
111
|
+
multiple: true,
|
|
112
|
+
searchable: true,
|
|
113
|
+
clearable: true,
|
|
114
|
+
disabled,
|
|
115
|
+
error: !!error
|
|
116
|
+
}
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
if (editable.type === "select") {
|
|
120
|
+
return (
|
|
121
|
+
// `ControlledSelect` ships hard min-widths (`min-w-52` on the field and the MT
|
|
122
|
+
// container's `min-w-[200px]`) that overflow narrow table cells and spill into
|
|
123
|
+
// the neighbouring column; force both to shrink so the editor fits its column
|
|
124
|
+
// like the text/number editors do.
|
|
125
|
+
/* @__PURE__ */ jsx(
|
|
126
|
+
ControlledSelect,
|
|
127
|
+
{
|
|
128
|
+
className: "w-full [&_.controlled-select-container]:!min-w-0 [&_.controlled-select-input]:!min-w-0",
|
|
129
|
+
options: selectOptions,
|
|
130
|
+
selectedValue: stringValue,
|
|
131
|
+
onChangeHook: (selected) => onCellChange(row, column.id, selected),
|
|
132
|
+
multiple: false,
|
|
133
|
+
searchable: true,
|
|
134
|
+
clearable: true,
|
|
135
|
+
disabled,
|
|
136
|
+
error: !!error
|
|
137
|
+
}
|
|
138
|
+
)
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
if (editable.type === "date") {
|
|
142
|
+
const parsed = stringValue ? new Date(stringValue) : void 0;
|
|
143
|
+
const startValue = parsed && !Number.isNaN(parsed.getTime()) ? parsed : void 0;
|
|
144
|
+
return /* @__PURE__ */ jsx(
|
|
145
|
+
DatePicker,
|
|
146
|
+
{
|
|
147
|
+
startValue,
|
|
148
|
+
onUpdate: (value) => onCellChange(row, column.id, value ?? null),
|
|
149
|
+
disabled
|
|
150
|
+
}
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
return /* @__PURE__ */ jsx(
|
|
154
|
+
ControlledInput,
|
|
155
|
+
{
|
|
156
|
+
value: draftText ?? decimalValue,
|
|
157
|
+
onChange: (event) => {
|
|
158
|
+
setDraftText(event.target.value);
|
|
159
|
+
onCellChange(row, column.id, event.target.value);
|
|
160
|
+
},
|
|
161
|
+
onBlur: () => setDraftText(null),
|
|
162
|
+
onKeyDown: keyboardNav && !isGridCell ? (event) => {
|
|
163
|
+
if (event.key === "Enter") {
|
|
164
|
+
event.preventDefault();
|
|
165
|
+
focusNextEditableInput(event.currentTarget);
|
|
166
|
+
}
|
|
167
|
+
} : void 0,
|
|
168
|
+
inputMode: editable.type === "number" ? "decimal" : void 0,
|
|
169
|
+
disabled,
|
|
170
|
+
error: !!error,
|
|
171
|
+
errorMessage: error ?? void 0,
|
|
172
|
+
"aria-label": column.header,
|
|
173
|
+
...{ [EDITABLE_INPUT_ATTR]: "" },
|
|
174
|
+
containerClassName: "min-w-0"
|
|
175
|
+
}
|
|
176
|
+
);
|
|
177
|
+
};
|
|
178
|
+
if (!hasGrid && (!showsReadView || !cellEditing)) return renderEditor();
|
|
179
|
+
const resolveOptionLabel = (optionValue) => (editable.options ?? []).find((option) => String(option.value) === optionValue)?.label ?? optionValue;
|
|
180
|
+
const resolveDisplayText = () => {
|
|
181
|
+
if (editable.displayValue) return editable.displayValue(row);
|
|
182
|
+
if (editable.type === "multiselect") return arrayValue.map(resolveOptionLabel).join(", ");
|
|
183
|
+
if (stringValue === "") return "";
|
|
184
|
+
if (editable.type === "select") return resolveOptionLabel(stringValue);
|
|
185
|
+
if (editable.type === "date") return formatIsoDate(stringValue);
|
|
186
|
+
return decimalValue;
|
|
187
|
+
};
|
|
188
|
+
const displayText = resolveDisplayText();
|
|
189
|
+
const displayContent = !editable.displayValue && column.render ? column.render(row) : /* @__PURE__ */ jsx("span", { className: classNames("min-w-0 flex-1 truncate", displayText === "" && "text-foreground-faint"), children: displayText === "" ? "-" : displayText });
|
|
190
|
+
const showsEditAffordance = !disabled && (!hasGrid || isGridEditModeOn);
|
|
191
|
+
const readCell = /* @__PURE__ */ jsxs(
|
|
192
|
+
"div",
|
|
193
|
+
{
|
|
194
|
+
className: classNames(
|
|
195
|
+
// A mesma altura do editor (h-10), para a linha não pular quando a célula é aberta.
|
|
196
|
+
"flex min-h-10 w-full items-center gap-1 rounded-md border border-transparent px-2 py-1.5 text-sm",
|
|
197
|
+
disabled && "text-foreground-faint",
|
|
198
|
+
!disabled && !showsEditAffordance && "text-foreground",
|
|
199
|
+
showsEditAffordance && "group cursor-pointer text-foreground transition-colors hover:border-brand-border hover:bg-brand-soft/50",
|
|
200
|
+
error && "border-danger-border"
|
|
201
|
+
),
|
|
202
|
+
children: [
|
|
203
|
+
/* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1 truncate", children: displayContent }),
|
|
204
|
+
showsEditAffordance && // On touch there is no hover, so a hover-only pencil means the cell never
|
|
205
|
+
// advertises that it can be edited. Keep it visible (dimmed) there instead.
|
|
206
|
+
/* @__PURE__ */ jsx(
|
|
207
|
+
MaterialSymbol,
|
|
208
|
+
{
|
|
209
|
+
icon: "edit",
|
|
210
|
+
size: 13,
|
|
211
|
+
className: classNames(
|
|
212
|
+
"shrink-0 text-brand-emphasis transition-opacity",
|
|
213
|
+
hoverCapable ? "opacity-0 group-hover:opacity-100" : "opacity-60"
|
|
214
|
+
)
|
|
215
|
+
}
|
|
216
|
+
)
|
|
217
|
+
]
|
|
218
|
+
}
|
|
219
|
+
);
|
|
220
|
+
if (hasGrid && !isGridEditModeOn) return readCell;
|
|
221
|
+
if (isGridCell) return isEditing ? renderEditor() : readCell;
|
|
222
|
+
if (!cellEditing) return renderEditor();
|
|
223
|
+
return /* @__PURE__ */ jsx("div", { ref: containerRef, onKeyDown: handleKeyDown, ...{ [EDITABLE_CELL_ATTR]: cellKey }, children: isEditing ? renderEditor() : disabled ? readCell : /* @__PURE__ */ jsx(ControlledTooltip, { content: t("dataTable.editCell"), children: /* @__PURE__ */ jsx(
|
|
224
|
+
"div",
|
|
225
|
+
{
|
|
226
|
+
role: "button",
|
|
227
|
+
tabIndex: 0,
|
|
228
|
+
onClick: () => cellEditing.startEditing(cellKey),
|
|
229
|
+
onKeyDown: (event) => {
|
|
230
|
+
if (event.key !== "Enter" && event.key !== " ") return;
|
|
231
|
+
event.preventDefault();
|
|
232
|
+
cellEditing.startEditing(cellKey);
|
|
233
|
+
},
|
|
234
|
+
className: "rounded-md focus:outline-none focus-visible:ring-1 focus-visible:ring-brand-border",
|
|
235
|
+
children: readCell
|
|
236
|
+
}
|
|
237
|
+
) }) });
|
|
238
|
+
};
|
|
239
|
+
export {
|
|
240
|
+
DataTableEditableCell as default
|
|
241
|
+
};
|
|
242
|
+
//# sourceMappingURL=DataTableEditableCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableEditableCell.js","sources":["../../../../../src/components/UI/DataTable/cells/DataTableEditableCell.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport DatePicker from '@/components/DateTime/DatePicker';\nimport ControlledInput from '@/components/Form/ControlledInput';\nimport { ControlledSelect } from '@/components/Form/ControlledSelect';\nimport ControlledTooltip from '@/components/UI/ControlledTooltip';\nimport { MaterialSymbol } from '@/components/UI/MaterialSymbol';\nimport { formatIsoDate } from '@/helpers/dateHelpers';\nimport { useHoverCapable } from '@/hooks/useHoverCapable';\nimport { useInlineEditor } from '@/hooks/useInlineEditor';\n\nimport { useGridCellState, useGridStoreApi } from '../grid/GridProvider';\nimport { GRID_CELL_EDITING } from '../grid/gridTypes';\nimport { useGridEditMode } from '../grid/useGridInstance';\nimport type { IDataTableColumnConfig, IDataTableRow } from '../types';\nimport { buildEditableCellKey, EDITABLE_CELL_ATTR, useDataTableCellEditing } from '../useCellEditingState';\n\n/**\n * Marks the typeable editable inputs so `keyboardNav` can walk them in DOM order.\n * Only text/number inputs opt in; date and select cells drive their own popovers\n * and fall back to native Tab traversal.\n */\nconst EDITABLE_INPUT_ATTR = 'data-datatable-editable-input';\n\ntype TEditableValue = string | number | Array<string> | null;\n\n/** Multi-select devolve um array novo a cada leitura, então `===` nunca casaria. */\nconst isSameEditableValue = (current: TEditableValue, previous: TEditableValue): boolean => {\n if (Array.isArray(current) || Array.isArray(previous)) {\n if (!Array.isArray(current) || !Array.isArray(previous)) return false;\n return current.length === previous.length && current.every((entry, index) => entry === previous[index]);\n }\n\n return current === previous;\n};\n\n/** `,` for pt-BR, `.` for en: derived from the locale itself, no language table. */\nconst resolveDecimalSeparator = (language: string): string => {\n const separator = (1.1).toLocaleString(language || 'pt-BR').replace(/\\d/g, '');\n return separator || '.';\n};\n\nconst focusNextEditableInput = (current: HTMLElement): void => {\n const inputs = Array.from(document.querySelectorAll<HTMLElement>(`[${EDITABLE_INPUT_ATTR}]`));\n const index = inputs.indexOf(current);\n if (index === -1) return;\n inputs[index + 1]?.focus();\n};\n\ninterface IDataTableEditableCellProps<T extends IDataTableRow> {\n column: IDataTableColumnConfig<T>;\n row: T;\n /** TanStack row id: present only inside a spreadsheet-enabled table. */\n gridRowId?: string;\n onCellChange: (row: T, columnId: string, value: unknown) => void;\n /** When true, pressing Enter moves focus to the next editable input (DOM order). */\n keyboardNav?: boolean;\n /** When true, the cell shows the value as text until it is clicked. */\n clickToEdit?: boolean;\n}\n\n/**\n * Controlled inline editor for a single cell. Reads the current value from the\n * host-owned row via `column.editable.getValue` and reports every edit through\n * `onCellChange`; the host re-renders with the updated row. Validation is derived\n * from the current value on each render, so no local state is kept.\n *\n * With `clickToEdit`, the cell renders the value as text and only swaps in the editor\n * once clicked, no editor is mounted before that.\n */\nconst DataTableEditableCell = <T extends IDataTableRow>({\n column,\n row,\n gridRowId,\n onCellChange,\n keyboardNav = false,\n clickToEdit = false,\n}: IDataTableEditableCellProps<T>) => {\n const { t, i18n } = useTranslation('ui');\n const hoverCapable = useHoverCapable();\n const cellEditing = useDataTableCellEditing();\n const gridStore = useGridStoreApi();\n const gridCellState = useGridCellState(gridRowId ?? '', column.id);\n const cellKey = buildEditableCellKey(row.id, column.id);\n\n // Inside a spreadsheet-enabled table the grid store owns the editing state, so\n // the legacy click-to-edit context and its document listener stay out of the way.\n const isGridEditModeOn = useGridEditMode(gridStore);\n const hasGrid = !!gridStore && !!gridRowId;\n const isGridCell = hasGrid && isGridEditModeOn;\n const isEditing = isGridCell\n ? (gridCellState & GRID_CELL_EDITING) !== 0\n : clickToEdit\n ? cellEditing?.editingCellKey === cellKey\n : true;\n const showsReadView = isGridCell || clickToEdit;\n\n const { containerRef, handleKeyDown } = useInlineEditor(\n Boolean(!isGridCell && clickToEdit && isEditing),\n () => cellEditing?.stopEditing(),\n (direction) => cellEditing?.navigate(cellKey, direction),\n );\n\n const editable = column.editable;\n const valueBeforeEditRef = useRef<string | number | Array<string> | null>(null);\n const wasEditingRef = useRef(false);\n\n // The cell is controlled by the value the host ALREADY parsed, so a half-typed\n // decimal is erased on the same keystroke: `1,` parses to the number 1 and comes\n // back as `\"1\"`, taking with it the separator just typed. The draft holds the exact\n // text while the field is focused; the host still receives every keystroke and\n // remains the source of truth.\n const [draftText, setDraftText] = useState<string | null>(null);\n\n useEffect(() => {\n if (!isEditing) setDraftText(null);\n }, [isEditing]);\n\n // Escape restores what the cell held when the editor opened. The editing model is\n // controlled (every keystroke already reached the host), so cancelling means\n // writing the snapshot back, not dropping local state.\n useEffect(() => {\n if (!isGridCell || !editable) return;\n\n if (isEditing) {\n if (wasEditingRef.current) return;\n wasEditingRef.current = true;\n valueBeforeEditRef.current = editable.getValue(row);\n\n // The key that opened the editor IS the new value, so the first keystroke is not lost.\n const typedSeed = gridStore?.getState().editingSeed;\n if (typedSeed == null) return;\n setDraftText(typedSeed);\n onCellChange(row, column.id, typedSeed);\n return;\n }\n\n if (!wasEditingRef.current) return;\n wasEditingRef.current = false;\n\n if (gridStore?.getState().editingOutcome !== 'cancel') return;\n if (isSameEditableValue(editable.getValue(row), valueBeforeEditRef.current)) return;\n\n onCellChange(row, column.id, valueBeforeEditRef.current);\n }, [isEditing, isGridCell, editable, gridStore, onCellChange, row, column.id]);\n\n if (!editable) return null;\n\n const rawValue = editable.getValue(row);\n const disabled = editable.disabled?.(row) ?? false;\n const error = editable.validate?.(rawValue, row) ?? null;\n const arrayValue = Array.isArray(rawValue) ? rawValue.map(String) : [];\n const stringValue = rawValue == null || Array.isArray(rawValue) ? '' : String(rawValue);\n const editorOptions = editable.getOptions?.(row) ?? editable.options;\n const selectOptions = Array.isArray(editorOptions) ? editorOptions : [];\n\n // `String()` on a number always writes a dot, so a pt-BR user would get back a\n // separator that is not theirs. Hosts that keep the raw text (the edit buffer) are\n // untouched: only an actual number reaches this branch.\n const decimalValue =\n editable.type === 'number' && typeof rawValue === 'number'\n ? stringValue.replace('.', resolveDecimalSeparator(i18n.language))\n : stringValue;\n\n const renderEditor = () => {\n if (editable.renderEditor) {\n return editable.renderEditor({\n value: rawValue,\n onChange: (nextValue) => onCellChange(row, column.id, nextValue),\n disabled,\n label: column.header,\n row,\n });\n }\n\n if (editable.type === 'multiselect') {\n return (\n <ControlledSelect\n className=\"w-full [&_.controlled-select-container]:!min-w-0 [&_.controlled-select-input]:!min-w-0\"\n options={selectOptions}\n selectedValue={arrayValue}\n onChangeHook={(selected) => onCellChange(row, column.id, Array.isArray(selected) ? selected : [selected])}\n multiple\n searchable\n clearable\n disabled={disabled}\n error={!!error}\n />\n );\n }\n\n if (editable.type === 'select') {\n return (\n // `ControlledSelect` ships hard min-widths (`min-w-52` on the field and the MT\n // container's `min-w-[200px]`) that overflow narrow table cells and spill into\n // the neighbouring column; force both to shrink so the editor fits its column\n // like the text/number editors do.\n <ControlledSelect\n className=\"w-full [&_.controlled-select-container]:!min-w-0 [&_.controlled-select-input]:!min-w-0\"\n options={selectOptions}\n selectedValue={stringValue}\n onChangeHook={(selected) => onCellChange(row, column.id, selected)}\n multiple={false}\n searchable\n clearable\n disabled={disabled}\n error={!!error}\n />\n );\n }\n\n if (editable.type === 'date') {\n const parsed = stringValue ? new Date(stringValue) : undefined;\n const startValue = parsed && !Number.isNaN(parsed.getTime()) ? parsed : undefined;\n\n return (\n <DatePicker\n startValue={startValue}\n onUpdate={(value) => onCellChange(row, column.id, value ?? null)}\n disabled={disabled}\n />\n );\n }\n\n // `number` renders a text input with a decimal input mode rather than\n // `type=\"number\"`, so pt-BR comma decimals are not blocked by the browser; the\n // host parses the raw string it receives in `onCellChange`.\n return (\n <ControlledInput\n value={draftText ?? decimalValue}\n onChange={(event) => {\n setDraftText(event.target.value);\n onCellChange(row, column.id, event.target.value);\n }}\n onBlur={() => setDraftText(null)}\n onKeyDown={\n keyboardNav && !isGridCell\n ? (event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n focusNextEditableInput(event.currentTarget);\n }\n }\n : undefined\n }\n inputMode={editable.type === 'number' ? 'decimal' : undefined}\n disabled={disabled}\n error={!!error}\n errorMessage={error ?? undefined}\n aria-label={column.header}\n {...{ [EDITABLE_INPUT_ATTR]: '' }}\n // The Material-Tailwind input container ships a hard `min-w-[200px]` that\n // overflows narrow table cells; force it to shrink so the editor fits its\n // column (the cell padding then provides the gap between adjacent inputs).\n containerClassName=\"min-w-0\"\n />\n );\n };\n\n if (!hasGrid && (!showsReadView || !cellEditing)) return renderEditor();\n\n const resolveOptionLabel = (optionValue: string): string =>\n (editable.options ?? []).find((option) => String(option.value) === optionValue)?.label ?? optionValue;\n\n const resolveDisplayText = (): string => {\n if (editable.displayValue) return editable.displayValue(row);\n if (editable.type === 'multiselect') return arrayValue.map(resolveOptionLabel).join(', ');\n if (stringValue === '') return '';\n if (editable.type === 'select') return resolveOptionLabel(stringValue);\n if (editable.type === 'date') return formatIsoDate(stringValue);\n return decimalValue;\n };\n\n const displayText = resolveDisplayText();\n\n // Uma coluna com renderização própria (chip de etapa, status, thumbnail) mantém\n // esse visual no modo de leitura: só o editor aberto troca a célula por um input.\n const displayContent =\n !editable.displayValue && column.render ? (\n column.render(row)\n ) : (\n <span className={classNames('min-w-0 flex-1 truncate', displayText === '' && 'text-foreground-faint')}>\n {displayText === '' ? '-' : displayText}\n </span>\n );\n\n // Com o grid montado mas o modo de edição desligado, a célula é só o valor: sem\n // lápis, sem realce e sem clique, para não prometer uma edição que não abre.\n const showsEditAffordance = !disabled && (!hasGrid || isGridEditModeOn);\n\n const readCell = (\n <div\n className={classNames(\n // A mesma altura do editor (h-10), para a linha não pular quando a célula é aberta.\n 'flex min-h-10 w-full items-center gap-1 rounded-md border border-transparent px-2 py-1.5 text-sm',\n disabled && 'text-foreground-faint',\n !disabled && !showsEditAffordance && 'text-foreground',\n showsEditAffordance &&\n 'group cursor-pointer text-foreground transition-colors hover:border-brand-border hover:bg-brand-soft/50',\n error && 'border-danger-border',\n )}\n >\n <div className=\"min-w-0 flex-1 truncate\">{displayContent}</div>\n {showsEditAffordance && (\n // On touch there is no hover, so a hover-only pencil means the cell never\n // advertises that it can be edited. Keep it visible (dimmed) there instead.\n <MaterialSymbol\n icon=\"edit\"\n size={13}\n className={classNames(\n 'shrink-0 text-brand-emphasis transition-opacity',\n hoverCapable ? 'opacity-0 group-hover:opacity-100' : 'opacity-60',\n )}\n />\n )}\n </div>\n );\n\n // Fora do modo de edição a tabela é de leitura: nenhum editor fica montado.\n if (hasGrid && !isGridEditModeOn) return readCell;\n\n // The `<td>` owns the gestures that open the editor: a click, Enter, F2 or typing.\n if (isGridCell) return isEditing ? renderEditor() : readCell;\n\n if (!cellEditing) return renderEditor();\n\n return (\n <div ref={containerRef} onKeyDown={handleKeyDown} {...{ [EDITABLE_CELL_ATTR]: cellKey }}>\n {isEditing ? (\n renderEditor()\n ) : disabled ? (\n readCell\n ) : (\n <ControlledTooltip content={t('dataTable.editCell')}>\n <div\n role=\"button\"\n tabIndex={0}\n onClick={() => cellEditing.startEditing(cellKey)}\n onKeyDown={(event) => {\n if (event.key !== 'Enter' && event.key !== ' ') return;\n event.preventDefault();\n cellEditing.startEditing(cellKey);\n }}\n className=\"rounded-md focus:outline-none focus-visible:ring-1 focus-visible:ring-brand-border\"\n >\n {readCell}\n </div>\n </ControlledTooltip>\n )}\n </div>\n );\n};\n\nexport default DataTableEditableCell;\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface IDataTableEmpenhoCellProps {
|
|
2
|
+
value: number | null | undefined;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Placeholder renderer for empenho counts. The clickable behavior (opening the
|
|
6
|
+
* linked products/materials) is intentionally NOT wired yet. The business
|
|
7
|
+
* definition is still pending. For now it renders the count as plain text.
|
|
8
|
+
*/
|
|
9
|
+
declare const DataTableEmpenhoCell: React.FC<IDataTableEmpenhoCellProps>;
|
|
10
|
+
export default DataTableEmpenhoCell;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { formatNumber } from "../../../../helpers/formatHelpers.js";
|
|
3
|
+
const DataTableEmpenhoCell = ({ value }) => /* @__PURE__ */ jsx("span", { className: "text-sm tabular-nums text-foreground", children: formatNumber(value ?? 0) });
|
|
4
|
+
export {
|
|
5
|
+
DataTableEmpenhoCell as default
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=DataTableEmpenhoCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableEmpenhoCell.js","sources":["../../../../../src/components/UI/DataTable/cells/DataTableEmpenhoCell.tsx"],"sourcesContent":["import { formatNumber } from '@/helpers/formatHelpers';\n\ninterface IDataTableEmpenhoCellProps {\n value: number | null | undefined;\n}\n\n/**\n * Placeholder renderer for empenho counts. The clickable behavior (opening the\n * linked products/materials) is intentionally NOT wired yet. The business\n * definition is still pending. For now it renders the count as plain text.\n */\nconst DataTableEmpenhoCell: React.FC<IDataTableEmpenhoCellProps> = ({ value }) => (\n <span className=\"text-sm tabular-nums text-foreground\">{formatNumber(value ?? 0)}</span>\n);\n\nexport default DataTableEmpenhoCell;\n"],"names":[],"mappings":";;AAWA,MAAM,uBAA6D,CAAC,EAAE,YACpE,oBAAC,QAAA,EAAK,WAAU,wCAAwC,UAAA,aAAa,SAAS,CAAC,EAAA,CAAE;"}
|