@umodeapporg/ui 0.1.0
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/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 +182 -0
- package/dist/components/DateTime/DatePicker.d.ts +19 -0
- package/dist/components/DateTime/DatePicker.js +121 -0
- package/dist/components/DateTime/DatePicker.js.map +1 -0
- package/dist/components/DateTime/DateRangePicker.d.ts +19 -0
- package/dist/components/DateTime/DateRangePicker.js +205 -0
- package/dist/components/DateTime/DateRangePicker.js.map +1 -0
- package/dist/components/Form/ControlledButton.d.ts +13 -0
- package/dist/components/Form/ControlledButton.js +68 -0
- package/dist/components/Form/ControlledButton.js.map +1 -0
- package/dist/components/Form/ControlledCheckbox.d.ts +12 -0
- package/dist/components/Form/ControlledCheckbox.js +101 -0
- package/dist/components/Form/ControlledCheckbox.js.map +1 -0
- package/dist/components/Form/ControlledDialog.d.ts +44 -0
- package/dist/components/Form/ControlledDialog.js +185 -0
- package/dist/components/Form/ControlledDialog.js.map +1 -0
- package/dist/components/Form/ControlledDialogPrimitives.d.ts +30 -0
- package/dist/components/Form/ControlledDialogPrimitives.js +121 -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 +237 -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 +30 -0
- package/dist/components/Form/ControlledImage/index.js +107 -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 +44 -0
- package/dist/components/Form/ControlledSelect.js +545 -0
- package/dist/components/Form/ControlledSelect.js.map +1 -0
- package/dist/components/Form/ControlledSwitch.d.ts +14 -0
- package/dist/components/Form/ControlledSwitch.js +88 -0
- package/dist/components/Form/ControlledSwitch.js.map +1 -0
- package/dist/components/Form/ControlledTabs.d.ts +70 -0
- package/dist/components/Form/ControlledTabs.js +470 -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 +47 -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 +57 -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 +11 -0
- package/dist/components/Form/ControlledVoiceTextarea.js +88 -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/RichTextEditor.d.ts +80 -0
- package/dist/components/Form/RichTextEditor.js +546 -0
- package/dist/components/Form/RichTextEditor.js.map +1 -0
- package/dist/components/Form/attachments/AttachmentPreviewList.d.ts +8 -0
- package/dist/components/Form/attachments/AttachmentPreviewList.js +71 -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 +23 -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/PageTitle.d.ts +41 -0
- package/dist/components/Navigation/PageTitle.js +147 -0
- package/dist/components/Navigation/PageTitle.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/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 +387 -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 +264 -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/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 +25 -0
- package/dist/components/UI/BaseDataCard.js +163 -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 +125 -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 +183 -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 +89 -0
- package/dist/components/UI/ControlledAccordion.js.map +1 -0
- package/dist/components/UI/ControlledCollapse.d.ts +13 -0
- package/dist/components/UI/ControlledCollapse.js +32 -0
- package/dist/components/UI/ControlledCollapse.js.map +1 -0
- package/dist/components/UI/ControlledMenu.d.ts +73 -0
- package/dist/components/UI/ControlledMenu.js +231 -0
- package/dist/components/UI/ControlledMenu.js.map +1 -0
- package/dist/components/UI/ControlledPopover.d.ts +44 -0
- package/dist/components/UI/ControlledPopover.js +144 -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 +13 -0
- package/dist/components/UI/ControlledSlider.js +29 -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 +140 -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 +100 -0
- package/dist/components/UI/DataTable/DataTable.js +546 -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 +29 -0
- package/dist/components/UI/DataTable/DataTableBody.js +243 -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 +77 -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 +251 -0
- package/dist/components/UI/DataTable/DataTableBulkEditDialog.js.map +1 -0
- package/dist/components/UI/DataTable/DataTableColumnToggle.d.ts +34 -0
- package/dist/components/UI/DataTable/DataTableColumnToggle.js +168 -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 +64 -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 +145 -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 +109 -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 +53 -0
- package/dist/components/UI/DataTable/applyDataTableFilters.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 +31 -0
- package/dist/components/UI/DataTable/grid/GridProvider.js +85 -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 +69 -0
- package/dist/components/UI/DataTable/grid/gridStore.js +219 -0
- package/dist/components/UI/DataTable/grid/gridStore.js.map +1 -0
- package/dist/components/UI/DataTable/grid/gridTypes.d.ts +47 -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 +17 -0
- package/dist/components/UI/DataTable/grid/useGridKeyboard.js +114 -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 +513 -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 +306 -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/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/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 +73 -0
- package/dist/components/UI/HorizontalScrollArea.js.map +1 -0
- package/dist/components/UI/ImageAiAdjust/ImageAiAdjustDialog.d.ts +15 -0
- package/dist/components/UI/ImageAiAdjust/ImageAiAdjustDialog.js +144 -0
- package/dist/components/UI/ImageAiAdjust/ImageAiAdjustDialog.js.map +1 -0
- package/dist/components/UI/ImageAiAdjust/useImageAiAdjust.d.ts +29 -0
- package/dist/components/UI/ImageAiAdjust/useImageAiAdjust.js +84 -0
- package/dist/components/UI/ImageAiAdjust/useImageAiAdjust.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/AnnotationEditor.d.ts +12 -0
- package/dist/components/UI/ImageAnnotator/AnnotationEditor.js +267 -0
- package/dist/components/UI/ImageAnnotator/AnnotationEditor.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/ImageAnnotationDialog.d.ts +13 -0
- package/dist/components/UI/ImageAnnotator/ImageAnnotationDialog.js +58 -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/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 +125 -0
- package/dist/components/UI/ImageAnnotator/canvas/AnnotationSelection.js.map +1 -0
- package/dist/components/UI/ImageAnnotator/canvas/AnnotationStage.d.ts +19 -0
- package/dist/components/UI/ImageAnnotator/canvas/AnnotationStage.js +216 -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 +69 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationColorPopover.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 +15 -0
- package/dist/components/UI/ImageAnnotator/components/AnnotationTextOverlay.js +78 -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 +80 -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/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 +27 -0
- package/dist/components/UI/ImageAnnotator/hooks/useAnnotationDocument.js +149 -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 +79 -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 +89 -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/ImagePlaceholder.d.ts +24 -0
- package/dist/components/UI/ImagePlaceholder.js +26 -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 +49 -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 +89 -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 +46 -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 +28 -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 +18 -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/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/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 +16 -0
- package/dist/helpers/imageFile.js +59 -0
- package/dist/helpers/imageFile.js.map +1 -0
- package/dist/helpers/layeredSurfaces.d.ts +10 -0
- package/dist/helpers/layeredSurfaces.js +14 -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 +6 -0
- package/dist/helpers/mergeClasses.js +12 -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 +60 -0
- package/dist/helpers/objectHelpers.js.map +1 -0
- package/dist/helpers/richText.d.ts +37 -0
- package/dist/helpers/richText.js +171 -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/themeTokens.d.ts +28 -0
- package/dist/helpers/themeTokens.js +33 -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 +41 -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/useVoiceTranscription.d.ts +25 -0
- package/dist/hooks/useVoiceTranscription.js +106 -0
- package/dist/hooks/useVoiceTranscription.js.map +1 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.js +125 -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 +10 -0
- package/dist/interfaces/IFilterOption.js +2 -0
- package/dist/interfaces/IFilterOption.js.map +1 -0
- package/dist/locales/en/ui.json.d.ts +470 -0
- package/dist/locales/en/ui.json.js +99 -0
- package/dist/locales/en/ui.json.js.map +1 -0
- package/dist/locales/index.d.ts +938 -0
- package/dist/locales/index.js +7 -0
- package/dist/locales/index.js.map +1 -0
- package/dist/locales/pt/ui.json.d.ts +470 -0
- package/dist/locales/pt/ui.json.js +99 -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 +174 -0
- package/src/assets/styles/theme.css +381 -0
- package/tailwind-plugins/glass.js +167 -0
- package/tailwind.preset.js +367 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from "react";
|
|
3
|
+
import classNames from "classnames";
|
|
4
|
+
const ControlledSwitch = ({
|
|
5
|
+
checked,
|
|
6
|
+
onChange,
|
|
7
|
+
label,
|
|
8
|
+
ariaLabel,
|
|
9
|
+
color = "purple",
|
|
10
|
+
disabled = false,
|
|
11
|
+
className = "",
|
|
12
|
+
labelClassName = "",
|
|
13
|
+
size = "md"
|
|
14
|
+
}) => {
|
|
15
|
+
const [colorClasses, setColorClasses] = useState("");
|
|
16
|
+
const sizeConfig = {
|
|
17
|
+
sm: {
|
|
18
|
+
container: "w-8 h-4",
|
|
19
|
+
thumb: "h-3 w-3"
|
|
20
|
+
},
|
|
21
|
+
md: {
|
|
22
|
+
container: "w-10 h-6",
|
|
23
|
+
thumb: "h-5 w-5"
|
|
24
|
+
},
|
|
25
|
+
lg: {
|
|
26
|
+
container: "w-12 h-7",
|
|
27
|
+
thumb: "h-6 w-6"
|
|
28
|
+
},
|
|
29
|
+
xl: {
|
|
30
|
+
container: "w-14 h-8",
|
|
31
|
+
thumb: "h-7 w-7"
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
const colorMap = {
|
|
36
|
+
blue: "bg-info",
|
|
37
|
+
red: "bg-danger",
|
|
38
|
+
green: "bg-success",
|
|
39
|
+
amber: "bg-warning",
|
|
40
|
+
purple: "bg-brand",
|
|
41
|
+
indigo: "bg-brand",
|
|
42
|
+
pink: "bg-accent",
|
|
43
|
+
teal: "bg-secondary"
|
|
44
|
+
};
|
|
45
|
+
setColorClasses(colorMap[color] || "bg-brand");
|
|
46
|
+
}, [color]);
|
|
47
|
+
return /* @__PURE__ */ jsxs("div", { className: classNames("flex items-center gap-2", className), children: [
|
|
48
|
+
/* @__PURE__ */ jsxs("label", { className: "relative inline-block", children: [
|
|
49
|
+
/* @__PURE__ */ jsx(
|
|
50
|
+
"input",
|
|
51
|
+
{
|
|
52
|
+
type: "checkbox",
|
|
53
|
+
checked,
|
|
54
|
+
onChange: () => onChange(!checked),
|
|
55
|
+
disabled,
|
|
56
|
+
"aria-label": ariaLabel ?? label,
|
|
57
|
+
className: "peer sr-only"
|
|
58
|
+
}
|
|
59
|
+
),
|
|
60
|
+
/* @__PURE__ */ jsx(
|
|
61
|
+
"div",
|
|
62
|
+
{
|
|
63
|
+
className: classNames(
|
|
64
|
+
sizeConfig[size].container,
|
|
65
|
+
"relative rounded-full transition-colors duration-base ease-standard",
|
|
66
|
+
checked ? colorClasses : "bg-border-emphasis",
|
|
67
|
+
disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"
|
|
68
|
+
),
|
|
69
|
+
children: /* @__PURE__ */ jsx(
|
|
70
|
+
"span",
|
|
71
|
+
{
|
|
72
|
+
className: classNames(
|
|
73
|
+
"absolute top-1/2 inline-block -translate-y-1/2 rounded-full bg-surface shadow-md transition-interactive duration-base",
|
|
74
|
+
sizeConfig[size].thumb,
|
|
75
|
+
checked ? "right-0.5" : "left-0.5"
|
|
76
|
+
)
|
|
77
|
+
}
|
|
78
|
+
)
|
|
79
|
+
}
|
|
80
|
+
)
|
|
81
|
+
] }),
|
|
82
|
+
label && /* @__PURE__ */ jsx("span", { className: classNames("text-sm font-medium text-foreground", labelClassName), children: label })
|
|
83
|
+
] });
|
|
84
|
+
};
|
|
85
|
+
export {
|
|
86
|
+
ControlledSwitch as default
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=ControlledSwitch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlledSwitch.js","sources":["../../../src/components/Form/ControlledSwitch.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport classNames from 'classnames';\n\ninterface IControlledSwitchProps {\n checked: boolean;\n onChange: (checked: boolean) => void;\n label?: string;\n /** Nome acessível quando o switch não tem `label` visível (ex.: linha com rótulo à esquerda). */\n ariaLabel?: string;\n color?: 'blue' | 'red' | 'green' | 'amber' | 'purple' | 'indigo' | 'pink' | 'teal';\n disabled?: boolean;\n className?: string;\n labelClassName?: string;\n size?: 'sm' | 'md' | 'lg' | 'xl';\n}\n\nconst ControlledSwitch = ({\n checked,\n onChange,\n label,\n ariaLabel,\n color = 'purple',\n disabled = false,\n className = '',\n labelClassName = '',\n size = 'md',\n}: IControlledSwitchProps) => {\n const [colorClasses, setColorClasses] = useState('');\n\n const sizeConfig = {\n sm: {\n container: 'w-8 h-4',\n thumb: 'h-3 w-3',\n },\n md: {\n container: 'w-10 h-6',\n thumb: 'h-5 w-5',\n },\n lg: {\n container: 'w-12 h-7',\n thumb: 'h-6 w-6',\n },\n xl: {\n container: 'w-14 h-8',\n thumb: 'h-7 w-7',\n },\n };\n\n useEffect(() => {\n const colorMap = {\n blue: 'bg-info',\n red: 'bg-danger',\n green: 'bg-success',\n amber: 'bg-warning',\n purple: 'bg-brand',\n indigo: 'bg-brand',\n pink: 'bg-accent',\n teal: 'bg-secondary',\n };\n\n setColorClasses(colorMap[color] || 'bg-brand');\n }, [color]);\n\n return (\n <div className={classNames('flex items-center gap-2', className)}>\n <label className=\"relative inline-block\">\n <input\n type=\"checkbox\"\n checked={checked}\n onChange={() => onChange(!checked)}\n disabled={disabled}\n aria-label={ariaLabel ?? label}\n className=\"peer sr-only\"\n />\n <div\n className={classNames(\n sizeConfig[size].container,\n 'relative rounded-full transition-colors duration-base ease-standard',\n checked ? colorClasses : 'bg-border-emphasis',\n disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer',\n )}\n >\n <span\n className={classNames(\n 'absolute top-1/2 inline-block -translate-y-1/2 rounded-full bg-surface shadow-md transition-interactive duration-base',\n sizeConfig[size].thumb,\n checked ? 'right-0.5' : 'left-0.5',\n )}\n ></span>\n </div>\n </label>\n {label && <span className={classNames('text-sm font-medium text-foreground', labelClassName)}>{label}</span>}\n </div>\n );\n};\n\nexport default ControlledSwitch;\n"],"names":[],"mappings":";;;AAgBA,MAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,OAAO;AACT,MAA8B;AAC5B,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,EAAE;AAEnD,QAAM,aAAa;AAAA,IACjB,IAAI;AAAA,MACF,WAAW;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAET,IAAI;AAAA,MACF,WAAW;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAET,IAAI;AAAA,MACF,WAAW;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAET,IAAI;AAAA,MACF,WAAW;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,EACT;AAGF,YAAU,MAAM;AACd,UAAM,WAAW;AAAA,MACf,MAAM;AAAA,MACN,KAAK;AAAA,MACL,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,MAAM;AAAA,IAAA;AAGR,oBAAgB,SAAS,KAAK,KAAK,UAAU;AAAA,EAC/C,GAAG,CAAC,KAAK,CAAC;AAEV,8BACG,OAAA,EAAI,WAAW,WAAW,2BAA2B,SAAS,GAC7D,UAAA;AAAA,IAAA,qBAAC,SAAA,EAAM,WAAU,yBACf,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL;AAAA,UACA,UAAU,MAAM,SAAS,CAAC,OAAO;AAAA,UACjC;AAAA,UACA,cAAY,aAAa;AAAA,UACzB,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAEZ;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW;AAAA,YACT,WAAW,IAAI,EAAE;AAAA,YACjB;AAAA,YACA,UAAU,eAAe;AAAA,YACzB,WAAW,kCAAkC;AAAA,UAAA;AAAA,UAG/C,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW;AAAA,gBACT;AAAA,gBACA,WAAW,IAAI,EAAE;AAAA,gBACjB,UAAU,cAAc;AAAA,cAAA;AAAA,YAC1B;AAAA,UAAA;AAAA,QACD;AAAA,MAAA;AAAA,IACH,GACF;AAAA,IACC,6BAAU,QAAA,EAAK,WAAW,WAAW,uCAAuC,cAAc,GAAI,UAAA,MAAA,CAAM;AAAA,EAAA,GACvG;AAEJ;"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { TUiCapability } from '../UI/access/UiAccessContext';
|
|
3
|
+
export interface ITabInfo {
|
|
4
|
+
label: string;
|
|
5
|
+
value: string;
|
|
6
|
+
/** Missing capability removes the tab and never mounts its panel, so no protected request runs. */
|
|
7
|
+
capability?: TUiCapability | Array<TUiCapability>;
|
|
8
|
+
count?: number;
|
|
9
|
+
/** Pendências/alertas da aba — badge âmbar ao lado do nome (oculto quando 0/ausente). */
|
|
10
|
+
alertCount?: number;
|
|
11
|
+
tooltip?: string;
|
|
12
|
+
status?: number | string;
|
|
13
|
+
isVisible?: boolean;
|
|
14
|
+
/** When false, the tab keeps a plain label in the bar: no inline rename pencil and no visibility eye (e.g. aggregate tabs). */
|
|
15
|
+
editable?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface IDataTab {
|
|
18
|
+
key: string;
|
|
19
|
+
element: ReactNode;
|
|
20
|
+
}
|
|
21
|
+
interface IControlledTabsProps {
|
|
22
|
+
initialActiveTab: string;
|
|
23
|
+
activeTab?: string;
|
|
24
|
+
tabs: Array<ITabInfo>;
|
|
25
|
+
dataTabs: Array<IDataTab>;
|
|
26
|
+
loading?: boolean;
|
|
27
|
+
/** Blocks tab switching and dims the header, e.g. while a blocking operation runs in the active tab. */
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
handleActiveTabChildren?: () => void;
|
|
30
|
+
useRenderValidation?: boolean;
|
|
31
|
+
onTabChange?: (tab: string) => void;
|
|
32
|
+
beforeTabChange?: (from: string, to: string) => boolean;
|
|
33
|
+
tabsBodyClassName?: string;
|
|
34
|
+
tabPanelClassName?: string;
|
|
35
|
+
rootClassName?: string;
|
|
36
|
+
/** Classes extras aplicadas a cada aba (ex.: reduzir o padding vertical em telas específicas). */
|
|
37
|
+
tabClassName?: string;
|
|
38
|
+
headerSlot?: ReactNode;
|
|
39
|
+
/** Conteúdo fixo alinhado à direita do cabeçalho das abas (ex.: botão de ação principal). */
|
|
40
|
+
actionsSlot?: ReactNode;
|
|
41
|
+
onRenameTab?: (value: string, newLabel: string) => void;
|
|
42
|
+
onToggleTabVisibility?: (value: string) => void;
|
|
43
|
+
/**
|
|
44
|
+
* Habilita arrastar-e-soltar das abas no cabeçalho (mesmo molde do drag nativo dos
|
|
45
|
+
* campos do construtor de fichas). Recebe os values da aba arrastada e da aba alvo;
|
|
46
|
+
* o consumidor decide como persistir a nova ordem (ex.: tabOrderPriority).
|
|
47
|
+
*/
|
|
48
|
+
onReorderTab?: (fromValue: string, toValue: string) => void;
|
|
49
|
+
/**
|
|
50
|
+
* Renders the tab header as a single horizontally-scrollable line (browser-tab style)
|
|
51
|
+
* with navigation arrows and a "+N" overflow menu, instead of wrapping onto several lines.
|
|
52
|
+
*/
|
|
53
|
+
scrollableHeader?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Faz o cabeçalho das abas grudar no topo do container rolável (`position: sticky`), com
|
|
56
|
+
* fundo sólido e uma sombra sutil que aparece só ao rolar, além de um acabamento mais
|
|
57
|
+
* delicado nas abas (pill no hover, sublinhado fino e transição suave). Use quando a barra
|
|
58
|
+
* precisa ficar visível durante todo o scroll (ex.: ficha técnica do produto).
|
|
59
|
+
*/
|
|
60
|
+
stickyHeader?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Sincroniza a aba ativa com o query param `activeTab` da URL (ler no mount e
|
|
63
|
+
* escrever a cada troca). Default `true`. Use `false` em abas dentro de modais/
|
|
64
|
+
* dialogs, cujo estado é efêmero e não deve poluir a URL da página nem competir
|
|
65
|
+
* com abas de nível de página que já usam `activeTab`.
|
|
66
|
+
*/
|
|
67
|
+
syncWithUrl?: boolean;
|
|
68
|
+
}
|
|
69
|
+
declare const ControlledTabs: import('react').ForwardRefExoticComponent<IControlledTabsProps & import('react').RefAttributes<unknown>>;
|
|
70
|
+
export default ControlledTabs;
|
|
@@ -0,0 +1,470 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef, useMemo, useRef, useState, useImperativeHandle, useEffect, useCallback } from "react";
|
|
3
|
+
import classNames from "classnames";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
5
|
+
import { useLocation, useSearchParams } from "react-router-dom";
|
|
6
|
+
import { useUiAccess } from "../UI/access/UiAccessContext.js";
|
|
7
|
+
import ControlledTooltip from "../UI/ControlledTooltip.js";
|
|
8
|
+
import { formatNumber } from "../../helpers/formatHelpers.js";
|
|
9
|
+
import { claimUrlParam, releaseUrlParam, TABS_URL_PARAM, queueUrlParamUpdate, URL_PARAM_PRIORITY } from "../../helpers/urlParamSync.js";
|
|
10
|
+
import LoadingSpinner from "../UI/LoadingSpinner.js";
|
|
11
|
+
import { MaterialSymbol } from "../UI/MaterialSymbol/index.js";
|
|
12
|
+
import ControlledButton from "./ControlledButton.js";
|
|
13
|
+
import { Tab, TabsRoot, TabsHeader, TabsBody, TabPanel } from "./ControlledTabsPrimitives.js";
|
|
14
|
+
const EditableTabLabel = ({
|
|
15
|
+
label,
|
|
16
|
+
count,
|
|
17
|
+
loading,
|
|
18
|
+
isVisible = true,
|
|
19
|
+
canToggleVisibility = true,
|
|
20
|
+
onRename,
|
|
21
|
+
onToggleVisibility
|
|
22
|
+
}) => {
|
|
23
|
+
const { t } = useTranslation("ui");
|
|
24
|
+
const [editing, setEditing] = useState(false);
|
|
25
|
+
const [draft, setDraft] = useState(label);
|
|
26
|
+
const inputRef = useRef(null);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (editing) {
|
|
29
|
+
inputRef.current?.focus();
|
|
30
|
+
inputRef.current?.select();
|
|
31
|
+
}
|
|
32
|
+
}, [editing]);
|
|
33
|
+
const handleEditClick = (e) => {
|
|
34
|
+
e.stopPropagation();
|
|
35
|
+
setDraft(label);
|
|
36
|
+
setEditing(true);
|
|
37
|
+
};
|
|
38
|
+
const commit = () => {
|
|
39
|
+
const trimmed = draft.trim();
|
|
40
|
+
if (trimmed && trimmed !== label) onRename(trimmed);
|
|
41
|
+
setEditing(false);
|
|
42
|
+
};
|
|
43
|
+
const handleKeyDown = (e) => {
|
|
44
|
+
if (e.key === "Enter") {
|
|
45
|
+
e.preventDefault();
|
|
46
|
+
commit();
|
|
47
|
+
}
|
|
48
|
+
if (e.key === "Escape") {
|
|
49
|
+
setEditing(false);
|
|
50
|
+
setDraft(label);
|
|
51
|
+
}
|
|
52
|
+
e.stopPropagation();
|
|
53
|
+
};
|
|
54
|
+
if (editing) {
|
|
55
|
+
return /* @__PURE__ */ jsx("div", { className: "flex items-center", onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx(
|
|
56
|
+
"input",
|
|
57
|
+
{
|
|
58
|
+
ref: inputRef,
|
|
59
|
+
value: draft,
|
|
60
|
+
onChange: (e) => setDraft(e.target.value),
|
|
61
|
+
onBlur: commit,
|
|
62
|
+
onKeyDown: handleKeyDown,
|
|
63
|
+
style: { width: `${Math.max(draft.length + 2, 6)}ch` },
|
|
64
|
+
className: "border-b border-brand-border bg-transparent px-0 py-0.5 text-sm font-medium leading-none focus:outline-none"
|
|
65
|
+
}
|
|
66
|
+
) });
|
|
67
|
+
}
|
|
68
|
+
return /* @__PURE__ */ jsxs("div", { className: "group/tab flex items-center gap-x-1.5 align-bottom", children: [
|
|
69
|
+
/* @__PURE__ */ jsx("span", { children: label }),
|
|
70
|
+
count !== void 0 && (loading ? /* @__PURE__ */ jsx(LoadingSpinner, { size: 3 }) : /* @__PURE__ */ jsx("span", { className: "inline-flex min-w-[18px] items-center justify-center rounded-full bg-muted-hover px-1.5 py-px text-[11px] font-medium leading-none text-foreground-subtle", children: formatNumber(count) })),
|
|
71
|
+
/* @__PURE__ */ jsx(ControlledTooltip, { content: t("controlledTabs.renameTab"), children: /* @__PURE__ */ jsx(
|
|
72
|
+
ControlledButton,
|
|
73
|
+
{
|
|
74
|
+
defaultHtmlButton: true,
|
|
75
|
+
onClick: handleEditClick,
|
|
76
|
+
className: "ml-0.5 flex items-center text-foreground-faint transition-colors hover:text-brand-emphasis",
|
|
77
|
+
tabIndex: -1,
|
|
78
|
+
children: /* @__PURE__ */ jsx(MaterialSymbol, { icon: "edit", size: 14 })
|
|
79
|
+
}
|
|
80
|
+
) }),
|
|
81
|
+
onToggleVisibility && /* @__PURE__ */ jsx(
|
|
82
|
+
ControlledTooltip,
|
|
83
|
+
{
|
|
84
|
+
content: !canToggleVisibility ? t("controlledTabs.mustKeepOneEnabled") : isVisible ? t("controlledTabs.disableTab") : t("controlledTabs.enableTabShort"),
|
|
85
|
+
children: /* @__PURE__ */ jsx(
|
|
86
|
+
ControlledButton,
|
|
87
|
+
{
|
|
88
|
+
defaultHtmlButton: true,
|
|
89
|
+
onClick: (e) => {
|
|
90
|
+
e.stopPropagation();
|
|
91
|
+
if (canToggleVisibility) onToggleVisibility();
|
|
92
|
+
},
|
|
93
|
+
className: classNames("ml-0.5 flex items-center transition-colors", {
|
|
94
|
+
["text-foreground-faint hover:text-warning-emphasis"]: isVisible && canToggleVisibility,
|
|
95
|
+
["text-warning-emphasis hover:text-success-emphasis"]: !isVisible,
|
|
96
|
+
["cursor-not-allowed text-foreground-faint"]: isVisible && !canToggleVisibility
|
|
97
|
+
}),
|
|
98
|
+
tabIndex: -1,
|
|
99
|
+
children: /* @__PURE__ */ jsx(MaterialSymbol, { icon: isVisible ? "visibility" : "visibility_off", size: 14 })
|
|
100
|
+
}
|
|
101
|
+
)
|
|
102
|
+
}
|
|
103
|
+
)
|
|
104
|
+
] });
|
|
105
|
+
};
|
|
106
|
+
const ControlledTabs = forwardRef(
|
|
107
|
+
({
|
|
108
|
+
initialActiveTab,
|
|
109
|
+
activeTab: controlledActiveTab,
|
|
110
|
+
tabs: tabsProp,
|
|
111
|
+
dataTabs: dataTabsProp,
|
|
112
|
+
loading = false,
|
|
113
|
+
disabled = false,
|
|
114
|
+
handleActiveTabChildren,
|
|
115
|
+
useRenderValidation = false,
|
|
116
|
+
onTabChange,
|
|
117
|
+
beforeTabChange,
|
|
118
|
+
tabsBodyClassName,
|
|
119
|
+
tabPanelClassName,
|
|
120
|
+
rootClassName,
|
|
121
|
+
tabClassName,
|
|
122
|
+
headerSlot,
|
|
123
|
+
actionsSlot,
|
|
124
|
+
onRenameTab,
|
|
125
|
+
onToggleTabVisibility,
|
|
126
|
+
onReorderTab,
|
|
127
|
+
scrollableHeader = false,
|
|
128
|
+
stickyHeader = false,
|
|
129
|
+
syncWithUrl = true
|
|
130
|
+
}, ref) => {
|
|
131
|
+
const { t } = useTranslation("ui");
|
|
132
|
+
const { check } = useUiAccess();
|
|
133
|
+
const deniedTabValues = useMemo(
|
|
134
|
+
() => new Set(tabsProp.filter((tab) => tab.capability && !check(tab.capability)).map((tab) => tab.value)),
|
|
135
|
+
[tabsProp, check]
|
|
136
|
+
);
|
|
137
|
+
const tabs = useMemo(() => tabsProp.filter((tab) => !deniedTabValues.has(tab.value)), [tabsProp, deniedTabValues]);
|
|
138
|
+
const dataTabs = useMemo(
|
|
139
|
+
() => dataTabsProp.filter((tabPanel) => !deniedTabValues.has(tabPanel.key)),
|
|
140
|
+
[dataTabsProp, deniedTabValues]
|
|
141
|
+
);
|
|
142
|
+
const location = useLocation();
|
|
143
|
+
const [searchParams, setSearchParams] = useSearchParams();
|
|
144
|
+
const urlParamOwnerIdRef = useRef({});
|
|
145
|
+
const scrollRef = useRef(null);
|
|
146
|
+
const stickySentinelRef = useRef(null);
|
|
147
|
+
const stickyBarRef = useRef(null);
|
|
148
|
+
const [canScrollLeft, setCanScrollLeft] = useState(false);
|
|
149
|
+
const [canScrollRight, setCanScrollRight] = useState(false);
|
|
150
|
+
const [clippedTabValues, setClippedTabValues] = useState([]);
|
|
151
|
+
const [isStuck, setIsStuck] = useState(false);
|
|
152
|
+
const dragTabValueRef = useRef(null);
|
|
153
|
+
const [draggingTabValue, setDraggingTabValue] = useState(null);
|
|
154
|
+
const [dragOverTabValue, setDragOverTabValue] = useState(null);
|
|
155
|
+
const resolveInitialActiveTab = () => {
|
|
156
|
+
const fallbackTab = tabs.some((tab) => tab.value === initialActiveTab) ? initialActiveTab : tabs[0]?.value ?? initialActiveTab;
|
|
157
|
+
if (!syncWithUrl) return fallbackTab;
|
|
158
|
+
if (location.state?.ignoreActiveTab === true) return fallbackTab;
|
|
159
|
+
const urlActiveTab = searchParams.get(TABS_URL_PARAM);
|
|
160
|
+
const isValidUrlTab = urlActiveTab != null && tabs.some((tab) => tab.value === urlActiveTab);
|
|
161
|
+
return isValidUrlTab ? urlActiveTab : fallbackTab;
|
|
162
|
+
};
|
|
163
|
+
const [internalActiveTab, setInternalActiveTab] = useState(resolveInitialActiveTab);
|
|
164
|
+
const isControlled = controlledActiveTab !== void 0;
|
|
165
|
+
const activeTab = isControlled ? controlledActiveTab : internalActiveTab;
|
|
166
|
+
const handleActiveTab = (tab) => {
|
|
167
|
+
if (disabled) return;
|
|
168
|
+
if (beforeTabChange && !beforeTabChange(activeTab, tab)) {
|
|
169
|
+
if (!isControlled) {
|
|
170
|
+
setInternalActiveTab(activeTab);
|
|
171
|
+
}
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
if (handleActiveTabChildren) {
|
|
175
|
+
handleActiveTabChildren();
|
|
176
|
+
}
|
|
177
|
+
if (!isControlled) {
|
|
178
|
+
setInternalActiveTab(tab);
|
|
179
|
+
}
|
|
180
|
+
if (onTabChange) {
|
|
181
|
+
onTabChange(tab);
|
|
182
|
+
}
|
|
183
|
+
if (syncWithUrl) {
|
|
184
|
+
queueUrlParamUpdate(TABS_URL_PARAM, tab, setSearchParams);
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
useImperativeHandle(ref, () => ({
|
|
188
|
+
activeTab,
|
|
189
|
+
setActiveTab: handleActiveTab
|
|
190
|
+
}));
|
|
191
|
+
const handleToggleTabVisibility = (value) => {
|
|
192
|
+
const visibleCount = tabs.filter((t2) => t2.isVisible !== false).length;
|
|
193
|
+
const isCurrentlyVisible = tabs.find((t2) => t2.value === value)?.isVisible !== false;
|
|
194
|
+
if (isCurrentlyVisible && visibleCount <= 1) return;
|
|
195
|
+
onToggleTabVisibility?.(value);
|
|
196
|
+
};
|
|
197
|
+
useEffect(() => {
|
|
198
|
+
if (!syncWithUrl) return;
|
|
199
|
+
const ownerId = urlParamOwnerIdRef.current;
|
|
200
|
+
claimUrlParam(TABS_URL_PARAM, ownerId, URL_PARAM_PRIORITY.tabs);
|
|
201
|
+
return () => releaseUrlParam(TABS_URL_PARAM, ownerId);
|
|
202
|
+
}, [syncWithUrl]);
|
|
203
|
+
useEffect(() => {
|
|
204
|
+
if (syncWithUrl && searchParams.get(TABS_URL_PARAM) !== activeTab) {
|
|
205
|
+
queueUrlParamUpdate(TABS_URL_PARAM, activeTab, setSearchParams);
|
|
206
|
+
}
|
|
207
|
+
const tabButton = document.querySelector(`li[data-value=${activeTab}]`);
|
|
208
|
+
if (tabButton) {
|
|
209
|
+
tabButton.click();
|
|
210
|
+
}
|
|
211
|
+
}, [activeTab]);
|
|
212
|
+
const updateOverflow = useCallback(() => {
|
|
213
|
+
const container = scrollRef.current;
|
|
214
|
+
if (!container) return;
|
|
215
|
+
setCanScrollLeft(container.scrollLeft > 4);
|
|
216
|
+
setCanScrollRight(container.scrollLeft + container.clientWidth < container.scrollWidth - 4);
|
|
217
|
+
const EDGE_TOLERANCE = 1;
|
|
218
|
+
const containerRect = container.getBoundingClientRect();
|
|
219
|
+
const clipped = [];
|
|
220
|
+
container.querySelectorAll("[data-value]").forEach((node) => {
|
|
221
|
+
const element = node;
|
|
222
|
+
const value = element.getAttribute("data-value");
|
|
223
|
+
if (!value || value === activeTab) return;
|
|
224
|
+
const rect = element.getBoundingClientRect();
|
|
225
|
+
const crossesLeftEdge = rect.left < containerRect.left - EDGE_TOLERANCE && rect.right > containerRect.left + EDGE_TOLERANCE;
|
|
226
|
+
const crossesRightEdge = rect.right > containerRect.right + EDGE_TOLERANCE && rect.left < containerRect.right - EDGE_TOLERANCE;
|
|
227
|
+
if (crossesLeftEdge || crossesRightEdge) clipped.push(value);
|
|
228
|
+
});
|
|
229
|
+
setClippedTabValues(
|
|
230
|
+
(prev) => prev.length === clipped.length && prev.every((value, index) => value === clipped[index]) ? prev : clipped
|
|
231
|
+
);
|
|
232
|
+
}, [activeTab]);
|
|
233
|
+
useEffect(() => {
|
|
234
|
+
if (!stickyHeader) return;
|
|
235
|
+
const sentinel = stickySentinelRef.current;
|
|
236
|
+
if (!sentinel || typeof IntersectionObserver === "undefined") return;
|
|
237
|
+
let scrollParent = sentinel.parentElement;
|
|
238
|
+
while (scrollParent) {
|
|
239
|
+
const overflowY = getComputedStyle(scrollParent).overflowY;
|
|
240
|
+
if (overflowY === "auto" || overflowY === "scroll") break;
|
|
241
|
+
scrollParent = scrollParent.parentElement;
|
|
242
|
+
}
|
|
243
|
+
const observer = new IntersectionObserver(([entry]) => setIsStuck(!entry.isIntersecting), {
|
|
244
|
+
root: scrollParent ?? null,
|
|
245
|
+
threshold: 0
|
|
246
|
+
});
|
|
247
|
+
observer.observe(sentinel);
|
|
248
|
+
return () => observer.disconnect();
|
|
249
|
+
}, [stickyHeader]);
|
|
250
|
+
useEffect(() => {
|
|
251
|
+
if (!stickyHeader) return;
|
|
252
|
+
const bar = stickyBarRef.current;
|
|
253
|
+
if (!bar) return;
|
|
254
|
+
let scrollParent = bar.parentElement;
|
|
255
|
+
while (scrollParent) {
|
|
256
|
+
const overflowY = getComputedStyle(scrollParent).overflowY;
|
|
257
|
+
if (overflowY === "auto" || overflowY === "scroll") break;
|
|
258
|
+
scrollParent = scrollParent.parentElement;
|
|
259
|
+
}
|
|
260
|
+
if (!scrollParent) return;
|
|
261
|
+
const target = scrollParent;
|
|
262
|
+
let rafId = 0;
|
|
263
|
+
let lastHeight = -1;
|
|
264
|
+
const publishHeight = () => {
|
|
265
|
+
const height = bar.offsetHeight;
|
|
266
|
+
if (height === lastHeight) return;
|
|
267
|
+
lastHeight = height;
|
|
268
|
+
target.style.setProperty("--sticky-tabs-height", `${height}px`);
|
|
269
|
+
};
|
|
270
|
+
publishHeight();
|
|
271
|
+
if (typeof ResizeObserver === "undefined") return;
|
|
272
|
+
const observer = new ResizeObserver(() => {
|
|
273
|
+
cancelAnimationFrame(rafId);
|
|
274
|
+
rafId = requestAnimationFrame(publishHeight);
|
|
275
|
+
});
|
|
276
|
+
observer.observe(bar);
|
|
277
|
+
return () => {
|
|
278
|
+
cancelAnimationFrame(rafId);
|
|
279
|
+
observer.disconnect();
|
|
280
|
+
target.style.removeProperty("--sticky-tabs-height");
|
|
281
|
+
};
|
|
282
|
+
}, [stickyHeader]);
|
|
283
|
+
useEffect(() => {
|
|
284
|
+
if (!scrollableHeader) return;
|
|
285
|
+
updateOverflow();
|
|
286
|
+
const onResize = () => updateOverflow();
|
|
287
|
+
window.addEventListener("resize", onResize);
|
|
288
|
+
return () => window.removeEventListener("resize", onResize);
|
|
289
|
+
}, [scrollableHeader, tabs, updateOverflow]);
|
|
290
|
+
const scrollByStep = (direction) => {
|
|
291
|
+
const container = scrollRef.current;
|
|
292
|
+
if (!container) return;
|
|
293
|
+
const EDGE_TOLERANCE = 1;
|
|
294
|
+
const containerRect = container.getBoundingClientRect();
|
|
295
|
+
const nodes = Array.from(container.querySelectorAll("[data-value]"));
|
|
296
|
+
if (direction > 0) {
|
|
297
|
+
const nextHidden = nodes.find(
|
|
298
|
+
(node) => node.getBoundingClientRect().right > containerRect.right + EDGE_TOLERANCE
|
|
299
|
+
);
|
|
300
|
+
if (!nextHidden) return;
|
|
301
|
+
container.scrollBy({ left: nextHidden.getBoundingClientRect().left - containerRect.left, behavior: "smooth" });
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
const previousHidden = [...nodes].reverse().find((node) => node.getBoundingClientRect().left < containerRect.left - EDGE_TOLERANCE);
|
|
305
|
+
if (!previousHidden) return;
|
|
306
|
+
container.scrollBy({
|
|
307
|
+
left: previousHidden.getBoundingClientRect().right - containerRect.right,
|
|
308
|
+
behavior: "smooth"
|
|
309
|
+
});
|
|
310
|
+
};
|
|
311
|
+
const tabLabel = (label, count, alertCount) => {
|
|
312
|
+
const showCount = count !== void 0;
|
|
313
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-1.5 align-bottom", children: [
|
|
314
|
+
label,
|
|
315
|
+
loading && showCount ? /* @__PURE__ */ jsx(LoadingSpinner, { size: 3 }) : showCount ? /* @__PURE__ */ jsx("span", { className: "inline-flex min-w-[18px] items-center justify-center rounded-full bg-muted-hover px-1.5 py-px text-[11px] font-medium leading-none text-foreground-subtle", children: formatNumber(count) }) : null,
|
|
316
|
+
Boolean(alertCount) && /* @__PURE__ */ jsx("span", { className: "inline-flex min-w-[18px] items-center justify-center rounded-full bg-warning-soft px-1.5 py-px text-[11px] font-semibold leading-none text-warning-emphasis", children: formatNumber(alertCount) })
|
|
317
|
+
] });
|
|
318
|
+
};
|
|
319
|
+
const handleTabDragEnd = () => {
|
|
320
|
+
const from = dragTabValueRef.current;
|
|
321
|
+
const to = dragOverTabValue;
|
|
322
|
+
if (from && to && from !== to) {
|
|
323
|
+
onReorderTab?.(from, to);
|
|
324
|
+
}
|
|
325
|
+
dragTabValueRef.current = null;
|
|
326
|
+
setDraggingTabValue(null);
|
|
327
|
+
setDragOverTabValue(null);
|
|
328
|
+
};
|
|
329
|
+
const tabElements = tabs.map((tab, index) => {
|
|
330
|
+
const isActive = activeTab === tab.value && tab.isVisible !== false;
|
|
331
|
+
const isInactive = activeTab !== tab.value && tab.isVisible !== false;
|
|
332
|
+
const isTabDropTarget = Boolean(draggingTabValue) && dragOverTabValue === tab.value && draggingTabValue !== tab.value;
|
|
333
|
+
const tabDragProps = onReorderTab ? {
|
|
334
|
+
draggable: true,
|
|
335
|
+
onDragStart: (event) => {
|
|
336
|
+
if (event.target.closest("input")) {
|
|
337
|
+
event.preventDefault();
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
event.dataTransfer.effectAllowed = "move";
|
|
341
|
+
dragTabValueRef.current = tab.value;
|
|
342
|
+
setDraggingTabValue(tab.value);
|
|
343
|
+
},
|
|
344
|
+
onDragEnter: (event) => {
|
|
345
|
+
event.preventDefault();
|
|
346
|
+
if (dragTabValueRef.current) setDragOverTabValue(tab.value);
|
|
347
|
+
},
|
|
348
|
+
onDragOver: (event) => event.preventDefault(),
|
|
349
|
+
onDragEnd: handleTabDragEnd
|
|
350
|
+
} : {};
|
|
351
|
+
return /* @__PURE__ */ jsx(
|
|
352
|
+
Tab,
|
|
353
|
+
{
|
|
354
|
+
value: tab.value,
|
|
355
|
+
style: { zIndex: 2 },
|
|
356
|
+
disabled: loading,
|
|
357
|
+
onClick: () => handleActiveTab(tab.value),
|
|
358
|
+
...tabDragProps,
|
|
359
|
+
className: classNames(
|
|
360
|
+
"max-w-fit px-4",
|
|
361
|
+
tabClassName,
|
|
362
|
+
// Acabamento mais delicado quando a barra é sticky: pill sutil no hover das abas
|
|
363
|
+
// inativas e peso de fonte mais leve ao trocar de aba.
|
|
364
|
+
stickyHeader && "rounded-md transition-interactive duration-fast",
|
|
365
|
+
{
|
|
366
|
+
[stickyHeader ? "font-medium text-brand-emphasis" : "text-brand-emphasis"]: isActive,
|
|
367
|
+
[stickyHeader ? "font-normal opacity-70 hover:bg-muted-hover hover:opacity-100" : "opacity-70"]: isInactive,
|
|
368
|
+
["!text-foreground-faint line-through opacity-60 hover:!text-foreground-faint"]: tab.isVisible === false,
|
|
369
|
+
["cursor-grab active:cursor-grabbing"]: Boolean(onReorderTab),
|
|
370
|
+
["rounded-md bg-brand-soft !opacity-100 ring-1 ring-brand-border"]: isTabDropTarget,
|
|
371
|
+
["opacity-40"]: draggingTabValue === tab.value,
|
|
372
|
+
["invisible"]: clippedTabValues.includes(tab.value)
|
|
373
|
+
}
|
|
374
|
+
),
|
|
375
|
+
children: onRenameTab && tab.editable !== false ? /* @__PURE__ */ jsx(
|
|
376
|
+
EditableTabLabel,
|
|
377
|
+
{
|
|
378
|
+
label: tab.label,
|
|
379
|
+
count: tab.count,
|
|
380
|
+
loading,
|
|
381
|
+
isVisible: tab.isVisible !== false,
|
|
382
|
+
canToggleVisibility: tab.isVisible === false || tabs.filter((t2) => t2.isVisible !== false).length > 1,
|
|
383
|
+
onRename: (newLabel) => onRenameTab(tab.value, newLabel),
|
|
384
|
+
onToggleVisibility: onToggleTabVisibility ? () => handleToggleTabVisibility(tab.value) : void 0
|
|
385
|
+
}
|
|
386
|
+
) : tab.tooltip ? /* @__PURE__ */ jsx(ControlledTooltip, { content: tab.tooltip, className: "max-w-60", children: tabLabel(tab.label, tab.count, tab.alertCount) }) : tabLabel(tab.label, tab.count, tab.alertCount)
|
|
387
|
+
},
|
|
388
|
+
`controlled-tab-${index}-${tab.value}`
|
|
389
|
+
);
|
|
390
|
+
});
|
|
391
|
+
const scrollArrowClass = "flex size-8 shrink-0 items-center justify-center rounded-full text-foreground-subtle transition-colors hover:bg-brand-soft hover:text-brand-emphasis";
|
|
392
|
+
return /* @__PURE__ */ jsxs(TabsRoot, { value: activeTab, className: classNames("!overflow-visible", rootClassName), children: [
|
|
393
|
+
stickyHeader && /* @__PURE__ */ jsx("div", { ref: stickySentinelRef, className: "h-px", "aria-hidden": true }),
|
|
394
|
+
/* @__PURE__ */ jsxs(
|
|
395
|
+
"div",
|
|
396
|
+
{
|
|
397
|
+
ref: stickyBarRef,
|
|
398
|
+
className: classNames(
|
|
399
|
+
"flex shrink-0 items-center",
|
|
400
|
+
// Com header rolável a barra é sempre UMA linha (nowrap): as abas cedem e viram scroll
|
|
401
|
+
// horizontal, enquanto as ações (shrink-0 + ml-auto) permanecem pinadas à direita e nunca
|
|
402
|
+
// caem para baixo. Sem header rolável, mantém o comportamento antigo de wrap.
|
|
403
|
+
scrollableHeader ? "flex-nowrap gap-x-3" : actionsSlot ? "flex-wrap gap-x-3 gap-y-2" : "gap-1",
|
|
404
|
+
// Gruda logo abaixo do header do produto: fundo sólido para tapar o conteúdo que
|
|
405
|
+
// rola por baixo e sombra sutil só depois que a barra encosta no topo.
|
|
406
|
+
stickyHeader && "sticky top-0 z-20 bg-surface transition-shadow duration-fast",
|
|
407
|
+
stickyHeader && isStuck && "shadow-elevation1",
|
|
408
|
+
disabled && "pointer-events-none select-none opacity-50"
|
|
409
|
+
),
|
|
410
|
+
children: [
|
|
411
|
+
headerSlot && /* @__PURE__ */ jsx(Fragment, { children: headerSlot }),
|
|
412
|
+
scrollableHeader ? /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-1 border-b border-border-subtle", children: [
|
|
413
|
+
/* @__PURE__ */ jsx(
|
|
414
|
+
ControlledButton,
|
|
415
|
+
{
|
|
416
|
+
defaultHtmlButton: true,
|
|
417
|
+
onClick: () => scrollByStep(-1),
|
|
418
|
+
disabled: !canScrollLeft,
|
|
419
|
+
className: classNames(scrollArrowClass, { ["pointer-events-none opacity-0"]: !canScrollLeft }),
|
|
420
|
+
tabIndex: -1,
|
|
421
|
+
children: /* @__PURE__ */ jsx(MaterialSymbol, { icon: "chevron_left", size: 20 })
|
|
422
|
+
}
|
|
423
|
+
),
|
|
424
|
+
/* @__PURE__ */ jsx("div", { ref: scrollRef, onScroll: updateOverflow, className: "scrollbar-hide min-w-0 flex-1 overflow-x-auto", children: /* @__PURE__ */ jsx(TabsHeader, { className: "flex w-max flex-nowrap items-center gap-1 rounded-none border-b-0 border-border-subtle bg-transparent p-0", children: tabElements }) }),
|
|
425
|
+
/* @__PURE__ */ jsx(
|
|
426
|
+
ControlledButton,
|
|
427
|
+
{
|
|
428
|
+
defaultHtmlButton: true,
|
|
429
|
+
onClick: () => scrollByStep(1),
|
|
430
|
+
disabled: !canScrollRight,
|
|
431
|
+
className: classNames(scrollArrowClass, { ["pointer-events-none opacity-0"]: !canScrollRight }),
|
|
432
|
+
tabIndex: -1,
|
|
433
|
+
children: /* @__PURE__ */ jsx(MaterialSymbol, { icon: "chevron_right", size: 20 })
|
|
434
|
+
}
|
|
435
|
+
)
|
|
436
|
+
] }) : /* @__PURE__ */ jsx(TabsHeader, { className: "flex flex-1 flex-wrap items-center gap-1 rounded-none border-b-0 border-border-subtle bg-transparent p-0", children: tabElements }),
|
|
437
|
+
actionsSlot && /* @__PURE__ */ jsx("div", { className: "ml-auto flex shrink-0 items-center", children: actionsSlot })
|
|
438
|
+
]
|
|
439
|
+
}
|
|
440
|
+
),
|
|
441
|
+
/* @__PURE__ */ jsx(TabsBody, { className: tabsBodyClassName, children: dataTabs.map((tabPanel) => {
|
|
442
|
+
const isTabVisible = tabs.find((t2) => t2.value === tabPanel.key)?.isVisible !== false;
|
|
443
|
+
return /* @__PURE__ */ jsx(TabPanel, { value: tabPanel.key, className: classNames("size-full", tabPanelClassName), children: /* @__PURE__ */ jsxs("div", { className: classNames("relative size-full", { ["pointer-events-none"]: !isTabVisible }), children: [
|
|
444
|
+
useRenderValidation ? activeTab === tabPanel.key && /* @__PURE__ */ jsx("div", { className: "size-full animate-fade-in transition-interactive duration-slow ease-standard", children: tabPanel.element }) : tabPanel.element,
|
|
445
|
+
!isTabVisible && /* @__PURE__ */ jsxs("div", { className: "absolute inset-0 z-10 flex flex-col items-center justify-center gap-2 rounded-lg bg-muted-hover/70 glass-veil", children: [
|
|
446
|
+
/* @__PURE__ */ jsx(MaterialSymbol, { icon: "visibility_off", size: 32, className: "text-foreground-faint" }),
|
|
447
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-foreground-subtle", children: t("controlledTabs.tabDisabled") }),
|
|
448
|
+
onToggleTabVisibility && /* @__PURE__ */ jsxs(
|
|
449
|
+
ControlledButton,
|
|
450
|
+
{
|
|
451
|
+
size: "sm",
|
|
452
|
+
variant: "outlined",
|
|
453
|
+
className: "pointer-events-auto mt-1 flex items-center gap-x-1",
|
|
454
|
+
onClick: () => onToggleTabVisibility(tabPanel.key),
|
|
455
|
+
children: [
|
|
456
|
+
/* @__PURE__ */ jsx(MaterialSymbol, { icon: "visibility", size: 16 }),
|
|
457
|
+
t("controlledTabs.enableTab")
|
|
458
|
+
]
|
|
459
|
+
}
|
|
460
|
+
)
|
|
461
|
+
] })
|
|
462
|
+
] }) }, tabPanel.key);
|
|
463
|
+
}) })
|
|
464
|
+
] });
|
|
465
|
+
}
|
|
466
|
+
);
|
|
467
|
+
export {
|
|
468
|
+
ControlledTabs as default
|
|
469
|
+
};
|
|
470
|
+
//# sourceMappingURL=ControlledTabs.js.map
|