@portnet/ui 6.0.1 → 6.0.3
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/CHANGELOG.md +737 -0
- package/dist/esm/index.js +90 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/v2/__tests__/AppMain.test.js +130 -0
- package/dist/esm/v2/__tests__/AppMain.test.js.map +1 -0
- package/dist/esm/v2/__tests__/ChartFigure.test.js +180 -0
- package/dist/esm/v2/__tests__/ChartFigure.test.js.map +1 -0
- package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js +150 -0
- package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
- package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js +93 -0
- package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldError.test.js +71 -39
- package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FieldNaming.test.js +160 -0
- package/dist/esm/v2/__tests__/FieldNaming.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldWidth.test.js +146 -0
- package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FileCard.test.js +18 -18
- package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js +173 -0
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +236 -0
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js +101 -0
- package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +299 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
- package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -43
- package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/PreviewDrawer.test.js +165 -0
- package/dist/esm/v2/__tests__/PreviewDrawer.test.js.map +1 -0
- package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js +156 -0
- package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +37 -52
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/esm/v2/__tests__/apiError.test.js +50 -69
- package/dist/esm/v2/__tests__/apiError.test.js.map +1 -1
- package/dist/esm/v2/__tests__/banned-patterns.test.js +41 -122
- package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -1
- package/dist/esm/v2/__tests__/chart-palette.test.js +204 -0
- package/dist/esm/v2/__tests__/chart-palette.test.js.map +1 -0
- package/dist/esm/v2/__tests__/contrast-palette.test.js +42 -74
- package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -1
- package/dist/esm/v2/__tests__/cssVariables.test.js +44 -51
- package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -1
- package/dist/esm/v2/__tests__/fileValidation.test.js +134 -0
- package/dist/esm/v2/__tests__/fileValidation.test.js.map +1 -0
- package/dist/esm/v2/__tests__/filterCriteria.test.js +321 -0
- package/dist/esm/v2/__tests__/filterCriteria.test.js.map +1 -0
- package/dist/esm/v2/__tests__/fmtDate.test.js +68 -0
- package/dist/esm/v2/__tests__/fmtDate.test.js.map +1 -0
- package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js +218 -0
- package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
- package/dist/esm/v2/__tests__/labels-merge.test.js +17 -22
- package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/esm/v2/__tests__/locale-fallback.test.js +35 -40
- package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -1
- package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js +143 -0
- package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
- package/dist/esm/v2/__tests__/rowActions.test.js +182 -0
- package/dist/esm/v2/__tests__/rowActions.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js +155 -0
- package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusTrap.test.js +266 -402
- package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -1
- package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js +120 -0
- package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
- package/dist/esm/v2/components/Accordion.js +48 -70
- package/dist/esm/v2/components/Accordion.js.map +1 -1
- package/dist/esm/v2/components/ActionStrip.js +31 -43
- package/dist/esm/v2/components/ActionStrip.js.map +1 -1
- package/dist/esm/v2/components/Banner.js +25 -22
- package/dist/esm/v2/components/Banner.js.map +1 -1
- package/dist/esm/v2/components/Busy.js +14 -19
- package/dist/esm/v2/components/Busy.js.map +1 -1
- package/dist/esm/v2/components/Button.js +34 -45
- package/dist/esm/v2/components/Button.js.map +1 -1
- package/dist/esm/v2/components/CategoryTag.js +44 -27
- package/dist/esm/v2/components/CategoryTag.js.map +1 -1
- package/dist/esm/v2/components/Checkbox.js +32 -38
- package/dist/esm/v2/components/Checkbox.js.map +1 -1
- package/dist/esm/v2/components/Chip.js +23 -36
- package/dist/esm/v2/components/Chip.js.map +1 -1
- package/dist/esm/v2/components/Combobox.js +112 -136
- package/dist/esm/v2/components/Combobox.js.map +1 -1
- package/dist/esm/v2/components/CommandPalette.js +113 -198
- package/dist/esm/v2/components/CommandPalette.js.map +1 -1
- package/dist/esm/v2/components/ConfirmDialog.js +36 -45
- package/dist/esm/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/esm/v2/components/DatePicker.js +78 -81
- package/dist/esm/v2/components/DatePicker.js.map +1 -1
- package/dist/esm/v2/components/DateRangePicker.js +63 -74
- package/dist/esm/v2/components/DateRangePicker.js.map +1 -1
- package/dist/esm/v2/components/DateTimePicker.js +118 -90
- package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
- package/dist/esm/v2/components/Drawer.js +71 -65
- package/dist/esm/v2/components/Drawer.js.map +1 -1
- package/dist/esm/v2/components/Dropzone.js +130 -177
- package/dist/esm/v2/components/Dropzone.js.map +1 -1
- package/dist/esm/v2/components/EmptyState.js +9 -9
- package/dist/esm/v2/components/EmptyState.js.map +1 -1
- package/dist/esm/v2/components/FavoriteToggle.js +24 -33
- package/dist/esm/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/esm/v2/components/Field.js +210 -52
- package/dist/esm/v2/components/Field.js.map +1 -1
- package/dist/esm/v2/components/FieldError.js +9 -13
- package/dist/esm/v2/components/FieldError.js.map +1 -1
- package/dist/esm/v2/components/FieldHelp.js +28 -49
- package/dist/esm/v2/components/FieldHelp.js.map +1 -1
- package/dist/esm/v2/components/FileCard.js +14 -19
- package/dist/esm/v2/components/FileCard.js.map +1 -1
- package/dist/esm/v2/components/FilterTab.js +22 -31
- package/dist/esm/v2/components/FilterTab.js.map +1 -1
- package/dist/esm/v2/components/ForbiddenPage.js +28 -8
- package/dist/esm/v2/components/ForbiddenPage.js.map +1 -1
- package/dist/esm/v2/components/FormGrid.js +48 -54
- package/dist/esm/v2/components/FormGrid.js.map +1 -1
- package/dist/esm/v2/components/FormikDisplay.js +98 -24
- package/dist/esm/v2/components/FormikDisplay.js.map +1 -1
- package/dist/esm/v2/components/Input.js +75 -34
- package/dist/esm/v2/components/Input.js.map +1 -1
- package/dist/esm/v2/components/KPICard.js +42 -51
- package/dist/esm/v2/components/KPICard.js.map +1 -1
- package/dist/esm/v2/components/KPIStrip.js +9 -15
- package/dist/esm/v2/components/KPIStrip.js.map +1 -1
- package/dist/esm/v2/components/KV.js +16 -23
- package/dist/esm/v2/components/KV.js.map +1 -1
- package/dist/esm/v2/components/KVGrid.js +15 -23
- package/dist/esm/v2/components/KVGrid.js.map +1 -1
- package/dist/esm/v2/components/Layout.js +81 -117
- package/dist/esm/v2/components/Layout.js.map +1 -1
- package/dist/esm/v2/components/MobileRowCard.js +64 -75
- package/dist/esm/v2/components/MobileRowCard.js.map +1 -1
- package/dist/esm/v2/components/Modal.js +44 -53
- package/dist/esm/v2/components/Modal.js.map +1 -1
- package/dist/esm/v2/components/NetworkErrorPage.js +28 -11
- package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/esm/v2/components/NotFoundPage.js +28 -9
- package/dist/esm/v2/components/NotFoundPage.js.map +1 -1
- package/dist/esm/v2/components/NumberInput.js +77 -107
- package/dist/esm/v2/components/NumberInput.js.map +1 -1
- package/dist/esm/v2/components/OverflowMenu.js +24 -42
- package/dist/esm/v2/components/OverflowMenu.js.map +1 -1
- package/dist/esm/v2/components/PdfViewer.js +24 -33
- package/dist/esm/v2/components/PdfViewer.js.map +1 -1
- package/dist/esm/v2/components/ProgressBar.js +28 -36
- package/dist/esm/v2/components/ProgressBar.js.map +1 -1
- package/dist/esm/v2/components/Radio.js +49 -57
- package/dist/esm/v2/components/Radio.js.map +1 -1
- package/dist/esm/v2/components/SectionErrorBoundary.js +84 -130
- package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -1
- package/dist/esm/v2/components/SectionHeader.js +24 -31
- package/dist/esm/v2/components/SectionHeader.js.map +1 -1
- package/dist/esm/v2/components/Segmented.js +59 -84
- package/dist/esm/v2/components/Segmented.js.map +1 -1
- package/dist/esm/v2/components/Select.js +100 -138
- package/dist/esm/v2/components/Select.js.map +1 -1
- package/dist/esm/v2/components/ServerErrorPage.js +27 -10
- package/dist/esm/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/esm/v2/components/Skeleton.js +81 -96
- package/dist/esm/v2/components/Skeleton.js.map +1 -1
- package/dist/esm/v2/components/SkipLink.js +6 -7
- package/dist/esm/v2/components/SkipLink.js.map +1 -1
- package/dist/esm/v2/components/Spinner.js +13 -22
- package/dist/esm/v2/components/Spinner.js.map +1 -1
- package/dist/esm/v2/components/Status.js +14 -25
- package/dist/esm/v2/components/Status.js.map +1 -1
- package/dist/esm/v2/components/Stepper.js +68 -71
- package/dist/esm/v2/components/Stepper.js.map +1 -1
- package/dist/esm/v2/components/Surface.js +25 -44
- package/dist/esm/v2/components/Surface.js.map +1 -1
- package/dist/esm/v2/components/Switch.js +21 -29
- package/dist/esm/v2/components/Switch.js.map +1 -1
- package/dist/esm/v2/components/TabPanel.js +84 -0
- package/dist/esm/v2/components/TabPanel.js.map +1 -0
- package/dist/esm/v2/components/Tabs.js +43 -19
- package/dist/esm/v2/components/Tabs.js.map +1 -1
- package/dist/esm/v2/components/TelInput.js +75 -108
- package/dist/esm/v2/components/TelInput.js.map +1 -1
- package/dist/esm/v2/components/Textarea.js +21 -30
- package/dist/esm/v2/components/Textarea.js.map +1 -1
- package/dist/esm/v2/components/TimePicker.js +59 -69
- package/dist/esm/v2/components/TimePicker.js.map +1 -1
- package/dist/esm/v2/components/Toast.js +109 -163
- package/dist/esm/v2/components/Toast.js.map +1 -1
- package/dist/esm/v2/components/Tooltip.js +18 -31
- package/dist/esm/v2/components/Tooltip.js.map +1 -1
- package/dist/esm/v2/components/_ErrorPageBody.js +6 -5
- package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -1
- package/dist/esm/v2/components/_pickerShared.js +2 -2
- package/dist/esm/v2/components/_pickerShared.js.map +1 -1
- package/dist/esm/v2/components/index.js +64 -0
- package/dist/esm/v2/components/index.js.map +1 -1
- package/dist/esm/v2/hooks/index.js +62 -0
- package/dist/esm/v2/hooks/index.js.map +1 -1
- package/dist/esm/v2/hooks/useAppliedFilters.js +112 -0
- package/dist/esm/v2/hooks/useAppliedFilters.js.map +1 -0
- package/dist/esm/v2/hooks/useDebouncedCallback.js +82 -0
- package/dist/esm/v2/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/esm/v2/hooks/useDelayedFlag.js +5 -19
- package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -1
- package/dist/esm/v2/hooks/useDensity.js +13 -17
- package/dist/esm/v2/hooks/useDensity.js.map +1 -1
- package/dist/esm/v2/hooks/useFocusFirstError.js +25 -33
- package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -1
- package/dist/esm/v2/hooks/useFocusOnRouteChange.js +81 -0
- package/dist/esm/v2/hooks/useFocusOnRouteChange.js.map +1 -0
- package/dist/esm/v2/hooks/useFocusTrap.js +19 -23
- package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -1
- package/dist/esm/v2/hooks/useFormAutoSave.js +38 -53
- package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -1
- package/dist/esm/v2/hooks/useFormCompletionProgress.js +32 -51
- package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -1
- package/dist/esm/v2/hooks/useKeyboardShortcuts.js +125 -0
- package/dist/esm/v2/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/esm/v2/hooks/usePrefersReducedMotion.js +99 -0
- package/dist/esm/v2/hooks/usePrefersReducedMotion.js.map +1 -0
- package/dist/esm/v2/hooks/useResolvedDensity.js +2 -10
- package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -1
- package/dist/esm/v2/hooks/useSortedRows.js +3 -5
- package/dist/esm/v2/hooks/useSortedRows.js.map +1 -1
- package/dist/esm/v2/hooks/useTabLoading.js +6 -21
- package/dist/esm/v2/hooks/useTabLoading.js.map +1 -1
- package/dist/esm/v2/index.js +14 -4
- package/dist/esm/v2/index.js.map +1 -1
- package/dist/esm/v2/modalContext.js +2 -2
- package/dist/esm/v2/modalContext.js.map +1 -1
- package/dist/esm/v2/models/favorite.js.map +1 -1
- package/dist/esm/v2/models/personalization.js.map +1 -1
- package/dist/esm/v2/models/referentiel.js.map +1 -1
- package/dist/esm/v2/models/savedFilter.js.map +1 -1
- package/dist/esm/v2/patterns/ActionBar.js +115 -159
- package/dist/esm/v2/patterns/ActionBar.js.map +1 -1
- package/dist/esm/v2/patterns/AppMain.js +108 -0
- package/dist/esm/v2/patterns/AppMain.js.map +1 -0
- package/dist/esm/v2/patterns/BulkActionBar.js +31 -34
- package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/esm/v2/patterns/ChartFigure.js +151 -0
- package/dist/esm/v2/patterns/ChartFigure.js.map +1 -0
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js +111 -152
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/esm/v2/patterns/ColumnsToggle.js +43 -77
- package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/esm/v2/patterns/DataGrid.js +221 -255
- package/dist/esm/v2/patterns/DataGrid.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js +76 -94
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridToolbar.js +85 -89
- package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridVirtualized.js +141 -182
- package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +26 -30
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/esm/v2/patterns/DetailSplit.js +108 -0
- package/dist/esm/v2/patterns/DetailSplit.js.map +1 -0
- package/dist/esm/v2/patterns/FavoriteColumn.js +26 -75
- package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/esm/v2/patterns/FavoritesFilter.js +30 -39
- package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/esm/v2/patterns/FilterTabBar.js +112 -0
- package/dist/esm/v2/patterns/FilterTabBar.js.map +1 -0
- package/dist/esm/v2/patterns/FormErrorSummary.js +12 -13
- package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/esm/v2/patterns/FormPageShell.js +43 -41
- package/dist/esm/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/esm/v2/patterns/FormSection.js +30 -38
- package/dist/esm/v2/patterns/FormSection.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCheckbox.js +130 -0
- package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js +56 -60
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCombobox.js +51 -66
- package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDatePicker.js +51 -99
- package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDateTimePicker.js +136 -0
- package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
- package/dist/esm/v2/patterns/FormikErrorFocus.js +22 -23
- package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/esm/v2/patterns/FormikErrorSummary.js +89 -0
- package/dist/esm/v2/patterns/FormikErrorSummary.js.map +1 -0
- package/dist/esm/v2/patterns/FormikFile.js +94 -78
- package/dist/esm/v2/patterns/FormikFile.js.map +1 -1
- package/dist/esm/v2/patterns/FormikInput.js +40 -50
- package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
- package/dist/esm/v2/patterns/FormikRadioGroup.js +129 -0
- package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
- package/dist/esm/v2/patterns/FormikReferentielField.js +49 -59
- package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/esm/v2/patterns/FormikSelect.js +64 -84
- package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/esm/v2/patterns/FormikTextarea.js +30 -43
- package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +64 -65
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/esm/v2/patterns/NetworkErrorBanner.js +6 -7
- package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/esm/v2/patterns/PageContent.js +10 -14
- package/dist/esm/v2/patterns/PageContent.js.map +1 -1
- package/dist/esm/v2/patterns/PreviewDrawer.js +153 -0
- package/dist/esm/v2/patterns/PreviewDrawer.js.map +1 -0
- package/dist/esm/v2/patterns/ReferentielField.js +327 -312
- package/dist/esm/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/esm/v2/patterns/RowFavoriteToggle.js +127 -0
- package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
- package/dist/esm/v2/patterns/SaveFilterDialog.js +38 -66
- package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/esm/v2/patterns/SavedFiltersMenu.js +62 -81
- package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/esm/v2/patterns/SkeletonPageShell.js +106 -129
- package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/esm/v2/patterns/SortableHeader.js +22 -45
- package/dist/esm/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/esm/v2/patterns/Tour.js +94 -120
- package/dist/esm/v2/patterns/Tour.js.map +1 -1
- package/dist/esm/v2/patterns/_dataGridShared.js +107 -128
- package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/esm/v2/patterns/_pickerSerialisation.js +72 -0
- package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
- package/dist/esm/v2/patterns/_sort.js +17 -33
- package/dist/esm/v2/patterns/_sort.js.map +1 -1
- package/dist/esm/v2/patterns/_useColumnReorder.js +122 -160
- package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/esm/v2/patterns/_useColumnResize.js +78 -96
- package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/esm/v2/patterns/filterCriteria.js +102 -0
- package/dist/esm/v2/patterns/filterCriteria.js.map +1 -0
- package/dist/esm/v2/patterns/index.js +235 -0
- package/dist/esm/v2/patterns/index.js.map +1 -1
- package/dist/esm/v2/patterns/rowActions.js +223 -0
- package/dist/esm/v2/patterns/rowActions.js.map +1 -0
- package/dist/esm/v2/personalization/PersonalizationProvider.js +50 -47
- package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/_storageKey.js +5 -5
- package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +22 -23
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +13 -13
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/favorites.js +36 -60
- package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/favoritesView.js +22 -34
- package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js +203 -0
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/index.js +5 -0
- package/dist/esm/v2/personalization/capabilities/index.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
- package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
- package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
- package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/esm/v2/personalization/index.js +35 -0
- package/dist/esm/v2/personalization/index.js.map +1 -1
- package/dist/esm/v2/personalization/personalizationContext.js +9 -9
- package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
- package/dist/esm/v2/personalization/schema.js +8 -9
- package/dist/esm/v2/personalization/schema.js.map +1 -1
- package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
- package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/esm/v2/referentiel/types.js +2 -0
- package/dist/esm/v2/referentiel/types.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
- package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
- package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
- package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
- package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/esm/v2/theme/_brand.js +8 -24
- package/dist/esm/v2/theme/_brand.js.map +1 -1
- package/dist/esm/v2/theme/_brandSecondary.js +8 -24
- package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
- package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
- package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/esm/v2/theme/cssVariables.js +62 -69
- package/dist/esm/v2/theme/cssVariables.js.map +1 -1
- package/dist/esm/v2/theme/index.js +5 -5
- package/dist/esm/v2/theme/index.js.map +1 -1
- package/dist/esm/v2/tokens/breakpoints.js +14 -14
- package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
- package/dist/esm/v2/tokens/chart.js +261 -0
- package/dist/esm/v2/tokens/chart.js.map +1 -0
- package/dist/esm/v2/tokens/colors.js +22 -22
- package/dist/esm/v2/tokens/colors.js.map +1 -1
- package/dist/esm/v2/tokens/density.js +62 -7
- package/dist/esm/v2/tokens/density.js.map +1 -1
- package/dist/esm/v2/tokens/index.js +49 -34
- package/dist/esm/v2/tokens/index.js.map +1 -1
- package/dist/esm/v2/tokens/motion.js +12 -20
- package/dist/esm/v2/tokens/motion.js.map +1 -1
- package/dist/esm/v2/tokens/radius.js +1 -1
- package/dist/esm/v2/tokens/radius.js.map +1 -1
- package/dist/esm/v2/tokens/shadows.js +6 -6
- package/dist/esm/v2/tokens/shadows.js.map +1 -1
- package/dist/esm/v2/tokens/spacing.js +2 -2
- package/dist/esm/v2/tokens/spacing.js.map +1 -1
- package/dist/esm/v2/tokens/state.js +1 -1
- package/dist/esm/v2/tokens/state.js.map +1 -1
- package/dist/esm/v2/tokens/statusPalette.js +17 -21
- package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
- package/dist/esm/v2/tokens/tokens.json +6 -1
- package/dist/esm/v2/tokens/typography.js +13 -13
- package/dist/esm/v2/tokens/typography.js.map +1 -1
- package/dist/esm/v2/tokens/zIndex.js +1 -1
- package/dist/esm/v2/tokens/zIndex.js.map +1 -1
- package/dist/esm/v2/types/datagrid.js.map +1 -1
- package/dist/esm/v2/utils/apiError.js +16 -37
- package/dist/esm/v2/utils/apiError.js.map +1 -1
- package/dist/esm/v2/utils/contrast.js +31 -32
- package/dist/esm/v2/utils/contrast.js.map +1 -1
- package/dist/esm/v2/utils/cx.js +5 -25
- package/dist/esm/v2/utils/cx.js.map +1 -1
- package/dist/esm/v2/utils/fileDownload.js +23 -26
- package/dist/esm/v2/utils/fileDownload.js.map +1 -1
- package/dist/esm/v2/utils/fileValidation.js +209 -0
- package/dist/esm/v2/utils/fileValidation.js.map +1 -0
- package/dist/esm/v2/utils/fmtDate.js +111 -0
- package/dist/esm/v2/utils/fmtDate.js.map +1 -0
- package/dist/esm/v2/utils/fmtMoney.js +8 -10
- package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
- package/dist/esm/v2/utils/formikErrors.js +78 -0
- package/dist/esm/v2/utils/formikErrors.js.map +1 -0
- package/dist/esm/v2/utils/index.js +35 -2
- package/dist/esm/v2/utils/index.js.map +1 -1
- package/dist/esm/v2/utils/mergeLabels.js +7 -12
- package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
- package/dist/esm/v2/utils/networkStatus.js +12 -12
- package/dist/esm/v2/utils/networkStatus.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +122 -47
- package/dist/index.js.map +1 -1
- package/dist/v2/__tests__/AppMain.test.js +133 -0
- package/dist/v2/__tests__/AppMain.test.js.map +1 -0
- package/dist/v2/__tests__/ChartFigure.test.js +183 -0
- package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
- package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
- package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
- package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
- package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
- package/dist/v2/__tests__/FieldError.test.js +98 -69
- package/dist/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/v2/__tests__/FieldNaming.test.js +161 -0
- package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
- package/dist/v2/__tests__/FieldWidth.test.js +148 -0
- package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
- package/dist/v2/__tests__/FileCard.test.js +45 -48
- package/dist/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/v2/__tests__/FormikCheckbox.test.js +175 -0
- package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
- package/dist/v2/__tests__/FormikDateTimePicker.test.js +237 -0
- package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
- package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
- package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js +300 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
- package/dist/v2/__tests__/MobileRowCard.test.js +100 -102
- package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
- package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
- package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
- package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
- package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
- package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/v2/__tests__/apiError.test.js +50 -69
- package/dist/v2/__tests__/apiError.test.js.map +1 -1
- package/dist/v2/__tests__/banned-patterns.test.js +42 -123
- package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
- package/dist/v2/__tests__/chart-palette.test.js +205 -0
- package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
- package/dist/v2/__tests__/contrast-palette.test.js +42 -74
- package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
- package/dist/v2/__tests__/cssVariables.test.js +44 -51
- package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
- package/dist/v2/__tests__/fileValidation.test.js +136 -0
- package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
- package/dist/v2/__tests__/filterCriteria.test.js +324 -0
- package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
- package/dist/v2/__tests__/fmtDate.test.js +69 -0
- package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
- package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
- package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
- package/dist/v2/__tests__/labels-merge.test.js +38 -46
- package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/v2/__tests__/locale-fallback.test.js +47 -52
- package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
- package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
- package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
- package/dist/v2/__tests__/rowActions.test.js +186 -0
- package/dist/v2/__tests__/rowActions.test.js.map +1 -0
- package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
- package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
- package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
- package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
- package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
- package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
- package/dist/v2/components/Accordion.js +60 -82
- package/dist/v2/components/Accordion.js.map +1 -1
- package/dist/v2/components/ActionStrip.js +40 -52
- package/dist/v2/components/ActionStrip.js.map +1 -1
- package/dist/v2/components/Banner.js +42 -41
- package/dist/v2/components/Banner.js.map +1 -1
- package/dist/v2/components/Busy.js +22 -27
- package/dist/v2/components/Busy.js.map +1 -1
- package/dist/v2/components/Button.js +39 -50
- package/dist/v2/components/Button.js.map +1 -1
- package/dist/v2/components/CategoryTag.d.ts.map +1 -1
- package/dist/v2/components/CategoryTag.js +49 -32
- package/dist/v2/components/CategoryTag.js.map +1 -1
- package/dist/v2/components/Checkbox.js +39 -45
- package/dist/v2/components/Checkbox.js.map +1 -1
- package/dist/v2/components/Chip.js +29 -42
- package/dist/v2/components/Chip.js.map +1 -1
- package/dist/v2/components/Combobox.js +122 -144
- package/dist/v2/components/Combobox.js.map +1 -1
- package/dist/v2/components/CommandPalette.js +138 -225
- package/dist/v2/components/CommandPalette.js.map +1 -1
- package/dist/v2/components/ConfirmDialog.js +46 -56
- package/dist/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/v2/components/DatePicker.js +81 -86
- package/dist/v2/components/DatePicker.js.map +1 -1
- package/dist/v2/components/DateRangePicker.js +77 -87
- package/dist/v2/components/DateRangePicker.js.map +1 -1
- package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
- package/dist/v2/components/DateTimePicker.js +121 -95
- package/dist/v2/components/DateTimePicker.js.map +1 -1
- package/dist/v2/components/Drawer.d.ts.map +1 -1
- package/dist/v2/components/Drawer.js +93 -88
- package/dist/v2/components/Drawer.js.map +1 -1
- package/dist/v2/components/Dropzone.js +150 -196
- package/dist/v2/components/Dropzone.js.map +1 -1
- package/dist/v2/components/EmptyState.js +18 -20
- package/dist/v2/components/EmptyState.js.map +1 -1
- package/dist/v2/components/FavoriteToggle.js +28 -39
- package/dist/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/v2/components/Field.d.ts +121 -5
- package/dist/v2/components/Field.d.ts.map +1 -1
- package/dist/v2/components/Field.js +221 -62
- package/dist/v2/components/Field.js.map +1 -1
- package/dist/v2/components/FieldError.js +18 -21
- package/dist/v2/components/FieldError.js.map +1 -1
- package/dist/v2/components/FieldHelp.js +40 -60
- package/dist/v2/components/FieldHelp.js.map +1 -1
- package/dist/v2/components/FileCard.js +27 -31
- package/dist/v2/components/FileCard.js.map +1 -1
- package/dist/v2/components/FilterTab.js +30 -38
- package/dist/v2/components/FilterTab.js.map +1 -1
- package/dist/v2/components/ForbiddenPage.d.ts +25 -1
- package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
- package/dist/v2/components/ForbiddenPage.js +37 -17
- package/dist/v2/components/ForbiddenPage.js.map +1 -1
- package/dist/v2/components/FormGrid.js +53 -59
- package/dist/v2/components/FormGrid.js.map +1 -1
- package/dist/v2/components/FormikDisplay.d.ts +50 -1
- package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
- package/dist/v2/components/FormikDisplay.js +108 -33
- package/dist/v2/components/FormikDisplay.js.map +1 -1
- package/dist/v2/components/Input.d.ts +40 -0
- package/dist/v2/components/Input.d.ts.map +1 -1
- package/dist/v2/components/Input.js +81 -41
- package/dist/v2/components/Input.js.map +1 -1
- package/dist/v2/components/KPICard.js +57 -67
- package/dist/v2/components/KPICard.js.map +1 -1
- package/dist/v2/components/KPIStrip.js +16 -22
- package/dist/v2/components/KPIStrip.js.map +1 -1
- package/dist/v2/components/KV.js +25 -31
- package/dist/v2/components/KV.js.map +1 -1
- package/dist/v2/components/KVGrid.js +19 -26
- package/dist/v2/components/KVGrid.js.map +1 -1
- package/dist/v2/components/Layout.js +91 -120
- package/dist/v2/components/Layout.js.map +1 -1
- package/dist/v2/components/MobileRowCard.js +79 -91
- package/dist/v2/components/MobileRowCard.js.map +1 -1
- package/dist/v2/components/Modal.js +61 -69
- package/dist/v2/components/Modal.js.map +1 -1
- package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
- package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
- package/dist/v2/components/NetworkErrorPage.js +38 -21
- package/dist/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/v2/components/NotFoundPage.d.ts +17 -1
- package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
- package/dist/v2/components/NotFoundPage.js +37 -18
- package/dist/v2/components/NotFoundPage.js.map +1 -1
- package/dist/v2/components/NumberInput.js +88 -118
- package/dist/v2/components/NumberInput.js.map +1 -1
- package/dist/v2/components/OverflowMenu.js +38 -56
- package/dist/v2/components/OverflowMenu.js.map +1 -1
- package/dist/v2/components/PdfViewer.js +34 -45
- package/dist/v2/components/PdfViewer.js.map +1 -1
- package/dist/v2/components/ProgressBar.js +42 -49
- package/dist/v2/components/ProgressBar.js.map +1 -1
- package/dist/v2/components/Radio.js +59 -67
- package/dist/v2/components/Radio.js.map +1 -1
- package/dist/v2/components/SectionErrorBoundary.js +90 -135
- package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
- package/dist/v2/components/SectionHeader.js +34 -41
- package/dist/v2/components/SectionHeader.js.map +1 -1
- package/dist/v2/components/Segmented.js +69 -93
- package/dist/v2/components/Segmented.js.map +1 -1
- package/dist/v2/components/Select.d.ts +26 -2
- package/dist/v2/components/Select.d.ts.map +1 -1
- package/dist/v2/components/Select.js +120 -155
- package/dist/v2/components/Select.js.map +1 -1
- package/dist/v2/components/ServerErrorPage.d.ts +27 -1
- package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
- package/dist/v2/components/ServerErrorPage.js +37 -20
- package/dist/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/v2/components/Skeleton.js +86 -100
- package/dist/v2/components/Skeleton.js.map +1 -1
- package/dist/v2/components/SkipLink.js +9 -12
- package/dist/v2/components/SkipLink.js.map +1 -1
- package/dist/v2/components/Spinner.js +16 -25
- package/dist/v2/components/Spinner.js.map +1 -1
- package/dist/v2/components/Status.js +18 -29
- package/dist/v2/components/Status.js.map +1 -1
- package/dist/v2/components/Stepper.js +80 -82
- package/dist/v2/components/Stepper.js.map +1 -1
- package/dist/v2/components/Surface.js +34 -49
- package/dist/v2/components/Surface.js.map +1 -1
- package/dist/v2/components/Switch.js +29 -37
- package/dist/v2/components/Switch.js.map +1 -1
- package/dist/v2/components/TabPanel.d.ts +17 -0
- package/dist/v2/components/TabPanel.d.ts.map +1 -0
- package/dist/v2/components/TabPanel.js +90 -0
- package/dist/v2/components/TabPanel.js.map +1 -0
- package/dist/v2/components/Tabs.d.ts +25 -0
- package/dist/v2/components/Tabs.d.ts.map +1 -1
- package/dist/v2/components/Tabs.js +53 -29
- package/dist/v2/components/Tabs.js.map +1 -1
- package/dist/v2/components/TelInput.js +80 -115
- package/dist/v2/components/TelInput.js.map +1 -1
- package/dist/v2/components/Textarea.js +26 -35
- package/dist/v2/components/Textarea.js.map +1 -1
- package/dist/v2/components/TimePicker.js +62 -74
- package/dist/v2/components/TimePicker.js.map +1 -1
- package/dist/v2/components/Toast.js +119 -174
- package/dist/v2/components/Toast.js.map +1 -1
- package/dist/v2/components/Tooltip.js +23 -38
- package/dist/v2/components/Tooltip.js.map +1 -1
- package/dist/v2/components/_ErrorPageBody.js +15 -16
- package/dist/v2/components/_ErrorPageBody.js.map +1 -1
- package/dist/v2/components/_pickerShared.js +5 -5
- package/dist/v2/components/_pickerShared.js.map +1 -1
- package/dist/v2/components/index.d.ts +67 -1
- package/dist/v2/components/index.d.ts.map +1 -1
- package/dist/v2/components/index.js +153 -136
- package/dist/v2/components/index.js.map +1 -1
- package/dist/v2/hooks/index.d.ts +65 -0
- package/dist/v2/hooks/index.d.ts.map +1 -1
- package/dist/v2/hooks/index.js +63 -24
- package/dist/v2/hooks/index.js.map +1 -1
- package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
- package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
- package/dist/v2/hooks/useAppliedFilters.js +117 -0
- package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
- package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
- package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
- package/dist/v2/hooks/useDebouncedCallback.js +87 -0
- package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/v2/hooks/useDelayedFlag.js +6 -20
- package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
- package/dist/v2/hooks/useDensity.d.ts.map +1 -1
- package/dist/v2/hooks/useDensity.js +14 -18
- package/dist/v2/hooks/useDensity.js.map +1 -1
- package/dist/v2/hooks/useFocusFirstError.js +26 -34
- package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
- package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
- package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
- package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
- package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
- package/dist/v2/hooks/useFocusTrap.js +20 -24
- package/dist/v2/hooks/useFocusTrap.js.map +1 -1
- package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
- package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
- package/dist/v2/hooks/useFormAutoSave.js +39 -54
- package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
- package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
- package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
- package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
- package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
- package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
- package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
- package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
- package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
- package/dist/v2/hooks/useResolvedDensity.js +5 -13
- package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
- package/dist/v2/hooks/useSortedRows.js +4 -6
- package/dist/v2/hooks/useSortedRows.js.map +1 -1
- package/dist/v2/hooks/useTabLoading.js +7 -22
- package/dist/v2/hooks/useTabLoading.js.map +1 -1
- package/dist/v2/index.d.ts.map +1 -1
- package/dist/v2/index.js +143 -145
- package/dist/v2/index.js.map +1 -1
- package/dist/v2/modalContext.js +2 -2
- package/dist/v2/modalContext.js.map +1 -1
- package/dist/v2/models/favorite.d.ts +8 -9
- package/dist/v2/models/favorite.d.ts.map +1 -1
- package/dist/v2/models/favorite.js.map +1 -1
- package/dist/v2/models/index.js +4 -4
- package/dist/v2/models/index.js.map +1 -1
- package/dist/v2/models/personalization.d.ts +44 -48
- package/dist/v2/models/personalization.d.ts.map +1 -1
- package/dist/v2/models/personalization.js.map +1 -1
- package/dist/v2/models/referentiel.d.ts +32 -50
- package/dist/v2/models/referentiel.d.ts.map +1 -1
- package/dist/v2/models/referentiel.js.map +1 -1
- package/dist/v2/models/savedFilter.d.ts +8 -17
- package/dist/v2/models/savedFilter.d.ts.map +1 -1
- package/dist/v2/models/savedFilter.js.map +1 -1
- package/dist/v2/patterns/ActionBar.js +152 -187
- package/dist/v2/patterns/ActionBar.js.map +1 -1
- package/dist/v2/patterns/AppMain.d.ts +109 -0
- package/dist/v2/patterns/AppMain.d.ts.map +1 -0
- package/dist/v2/patterns/AppMain.js +115 -0
- package/dist/v2/patterns/AppMain.js.map +1 -0
- package/dist/v2/patterns/BulkActionBar.js +40 -42
- package/dist/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/v2/patterns/ChartFigure.d.ts +124 -0
- package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
- package/dist/v2/patterns/ChartFigure.js +159 -0
- package/dist/v2/patterns/ChartFigure.js.map +1 -0
- package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
- package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/v2/patterns/ColumnsToggle.js +60 -94
- package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
- package/dist/v2/patterns/DataGrid.js +262 -297
- package/dist/v2/patterns/DataGrid.js.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
- package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/v2/patterns/DataGridToolbar.js +103 -106
- package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/v2/patterns/DataGridVirtualized.js +179 -217
- package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/v2/patterns/DetailSplit.d.ts +87 -0
- package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
- package/dist/v2/patterns/DetailSplit.js +116 -0
- package/dist/v2/patterns/DetailSplit.js.map +1 -0
- package/dist/v2/patterns/FavoriteColumn.d.ts +9 -9
- package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
- package/dist/v2/patterns/FavoriteColumn.js +32 -80
- package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/v2/patterns/FavoritesFilter.js +36 -44
- package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
- package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
- package/dist/v2/patterns/FilterTabBar.js +120 -0
- package/dist/v2/patterns/FilterTabBar.js.map +1 -0
- package/dist/v2/patterns/FormErrorSummary.js +20 -23
- package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/v2/patterns/FormPageShell.js +53 -50
- package/dist/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/v2/patterns/FormSection.d.ts +8 -3
- package/dist/v2/patterns/FormSection.d.ts.map +1 -1
- package/dist/v2/patterns/FormSection.js +44 -51
- package/dist/v2/patterns/FormSection.js.map +1 -1
- package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
- package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
- package/dist/v2/patterns/FormikCheckbox.js +138 -0
- package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
- package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/v2/patterns/FormikCombobox.d.ts +7 -1
- package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCombobox.js +55 -69
- package/dist/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.d.ts +13 -1
- package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.js +59 -106
- package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
- package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
- package/dist/v2/patterns/FormikDateTimePicker.js +144 -0
- package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
- package/dist/v2/patterns/FormikErrorFocus.js +25 -26
- package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
- package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
- package/dist/v2/patterns/FormikErrorSummary.js +97 -0
- package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
- package/dist/v2/patterns/FormikFile.d.ts +14 -1
- package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
- package/dist/v2/patterns/FormikFile.js +99 -83
- package/dist/v2/patterns/FormikFile.js.map +1 -1
- package/dist/v2/patterns/FormikInput.d.ts +11 -1
- package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
- package/dist/v2/patterns/FormikInput.js +45 -55
- package/dist/v2/patterns/FormikInput.js.map +1 -1
- package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
- package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
- package/dist/v2/patterns/FormikRadioGroup.js +137 -0
- package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
- package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
- package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.js +54 -64
- package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/v2/patterns/FormikSelect.d.ts +9 -1
- package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
- package/dist/v2/patterns/FormikSelect.js +70 -89
- package/dist/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/v2/patterns/FormikTextarea.d.ts +9 -1
- package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
- package/dist/v2/patterns/FormikTextarea.js +35 -48
- package/dist/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +14 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.js +71 -74
- package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
- package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/v2/patterns/PageContent.js +17 -20
- package/dist/v2/patterns/PageContent.js.map +1 -1
- package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
- package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
- package/dist/v2/patterns/PreviewDrawer.js +159 -0
- package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
- package/dist/v2/patterns/ReferentielField.d.ts +86 -2
- package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/ReferentielField.js +347 -327
- package/dist/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/v2/patterns/RowFavoriteToggle.d.ts +98 -0
- package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
- package/dist/v2/patterns/RowFavoriteToggle.js +135 -0
- package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
- package/dist/v2/patterns/SaveFilterDialog.js +50 -77
- package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
- package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/v2/patterns/SkeletonPageShell.js +122 -143
- package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/v2/patterns/SortableHeader.js +35 -57
- package/dist/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/v2/patterns/Tour.js +121 -142
- package/dist/v2/patterns/Tour.js.map +1 -1
- package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
- package/dist/v2/patterns/_dataGridShared.js +131 -147
- package/dist/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
- package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
- package/dist/v2/patterns/_pickerSerialisation.js +80 -0
- package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
- package/dist/v2/patterns/_sort.js +17 -33
- package/dist/v2/patterns/_sort.js.map +1 -1
- package/dist/v2/patterns/_useColumnReorder.js +124 -163
- package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/v2/patterns/_useColumnResize.js +80 -99
- package/dist/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/v2/patterns/filterCriteria.d.ts +78 -0
- package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
- package/dist/v2/patterns/filterCriteria.js +110 -0
- package/dist/v2/patterns/filterCriteria.js.map +1 -0
- package/dist/v2/patterns/index.d.ts +247 -0
- package/dist/v2/patterns/index.d.ts.map +1 -1
- package/dist/v2/patterns/index.js +182 -70
- package/dist/v2/patterns/index.js.map +1 -1
- package/dist/v2/patterns/rowActions.d.ts +150 -0
- package/dist/v2/patterns/rowActions.d.ts.map +1 -0
- package/dist/v2/patterns/rowActions.js +232 -0
- package/dist/v2/patterns/rowActions.js.map +1 -0
- package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
- package/dist/v2/personalization/PersonalizationProvider.js +57 -53
- package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/v2/personalization/adapters/_storageKey.js +5 -5
- package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
- package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/index.js +5 -5
- package/dist/v2/personalization/adapters/index.js.map +1 -1
- package/dist/v2/personalization/capabilities/favorites.js +39 -62
- package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
- package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
- package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
- package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/gridPreferences.js +210 -0
- package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
- package/dist/v2/personalization/capabilities/index.d.ts +6 -0
- package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
- package/dist/v2/personalization/capabilities/index.js +23 -10
- package/dist/v2/personalization/capabilities/index.js.map +1 -1
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
- package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
- package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.js +81 -182
- package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/v2/personalization/index.d.ts +34 -0
- package/dist/v2/personalization/index.d.ts.map +1 -1
- package/dist/v2/personalization/index.js +41 -21
- package/dist/v2/personalization/index.js.map +1 -1
- package/dist/v2/personalization/personalizationContext.js +10 -12
- package/dist/v2/personalization/personalizationContext.js.map +1 -1
- package/dist/v2/personalization/schema.js +8 -9
- package/dist/v2/personalization/schema.js.map +1 -1
- package/dist/v2/referentiel/ReferentielProvider.js +31 -45
- package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/v2/referentiel/index.js +11 -13
- package/dist/v2/referentiel/index.js.map +1 -1
- package/dist/v2/referentiel/types.d.ts +105 -0
- package/dist/v2/referentiel/types.d.ts.map +1 -0
- package/dist/v2/referentiel/types.js +6 -0
- package/dist/v2/referentiel/types.js.map +1 -0
- package/dist/v2/referentiel/useReferentielClient.js +13 -16
- package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
- package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.js +63 -120
- package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
- package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.js +40 -95
- package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/v2/theme/_brand.js +12 -26
- package/dist/v2/theme/_brand.js.map +1 -1
- package/dist/v2/theme/_brandSecondary.js +12 -26
- package/dist/v2/theme/_brandSecondary.js.map +1 -1
- package/dist/v2/theme/createPortnetTheme.js +41 -49
- package/dist/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/v2/theme/cssVariables.d.ts +3 -3
- package/dist/v2/theme/cssVariables.d.ts.map +1 -1
- package/dist/v2/theme/cssVariables.js +65 -70
- package/dist/v2/theme/cssVariables.js.map +1 -1
- package/dist/v2/theme/index.js +10 -10
- package/dist/v2/theme/index.js.map +1 -1
- package/dist/v2/tokens/breakpoints.js +16 -16
- package/dist/v2/tokens/breakpoints.js.map +1 -1
- package/dist/v2/tokens/chart.d.ts +103 -0
- package/dist/v2/tokens/chart.d.ts.map +1 -0
- package/dist/v2/tokens/chart.js +270 -0
- package/dist/v2/tokens/chart.js.map +1 -0
- package/dist/v2/tokens/colors.js +24 -24
- package/dist/v2/tokens/colors.js.map +1 -1
- package/dist/v2/tokens/density.d.ts +104 -0
- package/dist/v2/tokens/density.d.ts.map +1 -1
- package/dist/v2/tokens/density.js +67 -12
- package/dist/v2/tokens/density.js.map +1 -1
- package/dist/v2/tokens/index.d.ts +50 -1
- package/dist/v2/tokens/index.d.ts.map +1 -1
- package/dist/v2/tokens/index.js +116 -68
- package/dist/v2/tokens/index.js.map +1 -1
- package/dist/v2/tokens/motion.js +16 -22
- package/dist/v2/tokens/motion.js.map +1 -1
- package/dist/v2/tokens/radius.js +3 -3
- package/dist/v2/tokens/radius.js.map +1 -1
- package/dist/v2/tokens/shadows.js +8 -8
- package/dist/v2/tokens/shadows.js.map +1 -1
- package/dist/v2/tokens/spacing.js +4 -4
- package/dist/v2/tokens/spacing.js.map +1 -1
- package/dist/v2/tokens/state.js +3 -3
- package/dist/v2/tokens/state.js.map +1 -1
- package/dist/v2/tokens/statusPalette.js +21 -23
- package/dist/v2/tokens/statusPalette.js.map +1 -1
- package/dist/v2/tokens/tokens.json +6 -1
- package/dist/v2/tokens/typography.js +15 -15
- package/dist/v2/tokens/typography.js.map +1 -1
- package/dist/v2/tokens/zIndex.js +3 -3
- package/dist/v2/tokens/zIndex.js.map +1 -1
- package/dist/v2/types/datagrid.d.ts +9 -1
- package/dist/v2/types/datagrid.d.ts.map +1 -1
- package/dist/v2/types/datagrid.js.map +1 -1
- package/dist/v2/types/index.js +2 -2
- package/dist/v2/types/index.js.map +1 -1
- package/dist/v2/utils/apiError.js +16 -37
- package/dist/v2/utils/apiError.js.map +1 -1
- package/dist/v2/utils/contrast.js +31 -32
- package/dist/v2/utils/contrast.js.map +1 -1
- package/dist/v2/utils/cx.js +7 -27
- package/dist/v2/utils/cx.js.map +1 -1
- package/dist/v2/utils/fileDownload.js +25 -28
- package/dist/v2/utils/fileDownload.js.map +1 -1
- package/dist/v2/utils/fileValidation.d.ts +116 -0
- package/dist/v2/utils/fileValidation.d.ts.map +1 -0
- package/dist/v2/utils/fileValidation.js +220 -0
- package/dist/v2/utils/fileValidation.js.map +1 -0
- package/dist/v2/utils/fmtDate.d.ts +103 -0
- package/dist/v2/utils/fmtDate.d.ts.map +1 -0
- package/dist/v2/utils/fmtDate.js +119 -0
- package/dist/v2/utils/fmtDate.js.map +1 -0
- package/dist/v2/utils/fmtMoney.d.ts +3 -3
- package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
- package/dist/v2/utils/fmtMoney.js +9 -11
- package/dist/v2/utils/fmtMoney.js.map +1 -1
- package/dist/v2/utils/formikErrors.d.ts +67 -0
- package/dist/v2/utils/formikErrors.d.ts.map +1 -0
- package/dist/v2/utils/formikErrors.js +85 -0
- package/dist/v2/utils/formikErrors.js.map +1 -0
- package/dist/v2/utils/index.d.ts +5 -0
- package/dist/v2/utils/index.d.ts.map +1 -1
- package/dist/v2/utils/index.js +67 -18
- package/dist/v2/utils/index.js.map +1 -1
- package/dist/v2/utils/mergeLabels.js +9 -14
- package/dist/v2/utils/mergeLabels.js.map +1 -1
- package/dist/v2/utils/networkStatus.js +14 -14
- package/dist/v2/utils/networkStatus.js.map +1 -1
- package/package.json +26 -9
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.ToastProvider = ToastProvider;
|
|
8
|
-
exports
|
|
7
|
+
exports.default = void 0;
|
|
9
8
|
exports.useToast = useToast;
|
|
10
9
|
var React = _interopRequireWildcard(require("react"));
|
|
11
10
|
var _Check = _interopRequireDefault(require("@mui/icons-material/Check"));
|
|
@@ -15,24 +14,9 @@ var _InfoOutlined = _interopRequireDefault(require("@mui/icons-material/InfoOutl
|
|
|
15
14
|
var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
|
|
16
15
|
var _mergeLabels = require("../utils/mergeLabels");
|
|
17
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
-
function _interopRequireDefault(
|
|
19
|
-
function
|
|
20
|
-
|
|
21
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
22
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
23
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
24
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
25
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
26
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
27
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
28
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
29
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
30
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
31
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
32
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
33
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
34
|
-
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
35
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /**
|
|
17
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
19
|
+
/**
|
|
36
20
|
* Toast - Portnet UI v2
|
|
37
21
|
*
|
|
38
22
|
* Charter §03 · Component "Toast". 3 niveaux : Toast / Inline Alert / Banner.
|
|
@@ -85,51 +69,53 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /**
|
|
|
85
69
|
* // Or host-managed via id:
|
|
86
70
|
* const up = toast.progress("…");
|
|
87
71
|
* toast.dismiss(up.id); // cancel mid-flight
|
|
88
|
-
*/
|
|
89
|
-
var MAX_TOASTS = 3;
|
|
72
|
+
*/const MAX_TOASTS = 3;
|
|
90
73
|
|
|
91
74
|
// Auto-dismiss delay after `done()` is called on a progress handle.
|
|
92
75
|
// Lets the user see the "100% + final message" state before the toast
|
|
93
76
|
// disappears.
|
|
94
|
-
|
|
95
|
-
|
|
77
|
+
const PROGRESS_DONE_DISMISS_DELAY_MS = 1000;
|
|
78
|
+
const DEFAULT_LABELS = Object.freeze({
|
|
96
79
|
undo: "Annuler",
|
|
97
80
|
dismiss: "Fermer cette notification"
|
|
98
81
|
});
|
|
99
|
-
|
|
82
|
+
const ToastContext = /*#__PURE__*/React.createContext(null);
|
|
100
83
|
// Separate context so ToastItem can read labels without a value-churn
|
|
101
84
|
// every time the toasts array updates.
|
|
102
|
-
|
|
85
|
+
const ToastLabelsContext = /*#__PURE__*/React.createContext(DEFAULT_LABELS);
|
|
103
86
|
function useToast() {
|
|
104
|
-
|
|
87
|
+
const ctx = React.useContext(ToastContext);
|
|
105
88
|
if (!ctx) {
|
|
106
89
|
throw new Error("[@portnet/ui v2] useToast() must be called inside <ToastProvider>");
|
|
107
90
|
}
|
|
108
91
|
return ctx;
|
|
109
92
|
}
|
|
110
|
-
function ToastItem(
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
93
|
+
function ToastItem({
|
|
94
|
+
toast,
|
|
95
|
+
onDismiss
|
|
96
|
+
}) {
|
|
97
|
+
const labels = React.useContext(ToastLabelsContext);
|
|
98
|
+
const {
|
|
99
|
+
id,
|
|
100
|
+
message,
|
|
101
|
+
variant,
|
|
102
|
+
undoCfg,
|
|
103
|
+
action,
|
|
104
|
+
progress
|
|
105
|
+
} = toast;
|
|
120
106
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
121
107
|
className: "pui-toast",
|
|
122
108
|
"data-variant": variant,
|
|
123
|
-
children: [variant === "success" && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Check
|
|
109
|
+
children: [variant === "success" && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Check.default, {
|
|
124
110
|
fontSize: "small",
|
|
125
111
|
"aria-hidden": "true"
|
|
126
|
-
}), variant === "error" && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ErrorOutlined
|
|
112
|
+
}), variant === "error" && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ErrorOutlined.default, {
|
|
127
113
|
fontSize: "small",
|
|
128
114
|
"aria-hidden": "true"
|
|
129
|
-
}), variant === "warning" && /*#__PURE__*/(0, _jsxRuntime.jsx)(_WarningAmberOutlined
|
|
115
|
+
}), variant === "warning" && /*#__PURE__*/(0, _jsxRuntime.jsx)(_WarningAmberOutlined.default, {
|
|
130
116
|
fontSize: "small",
|
|
131
117
|
"aria-hidden": "true"
|
|
132
|
-
}), (variant === "default" || variant === "info") && /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoOutlined
|
|
118
|
+
}), (variant === "default" || variant === "info") && /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoOutlined.default, {
|
|
133
119
|
fontSize: "small",
|
|
134
120
|
"aria-hidden": "true"
|
|
135
121
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
@@ -140,29 +126,25 @@ function ToastItem(_ref) {
|
|
|
140
126
|
}), undoCfg && /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
|
|
141
127
|
type: "button",
|
|
142
128
|
className: "pui-toast-undo",
|
|
143
|
-
onClick:
|
|
144
|
-
|
|
145
|
-
(_undoCfg$onUndo = undoCfg.onUndo) === null || _undoCfg$onUndo === void 0 ? void 0 : _undoCfg$onUndo.call(undoCfg);
|
|
129
|
+
onClick: () => {
|
|
130
|
+
undoCfg.onUndo?.();
|
|
146
131
|
onDismiss(id, true);
|
|
147
132
|
},
|
|
148
133
|
children: undoCfg.label
|
|
149
134
|
}), action && !undoCfg && /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
|
|
150
135
|
type: "button",
|
|
151
136
|
className: "pui-toast-action",
|
|
152
|
-
onClick:
|
|
153
|
-
|
|
154
|
-
(_action$onClick = action.onClick) === null || _action$onClick === void 0 ? void 0 : _action$onClick.call(action);
|
|
137
|
+
onClick: () => {
|
|
138
|
+
action.onClick?.();
|
|
155
139
|
onDismiss(id, true);
|
|
156
140
|
},
|
|
157
141
|
children: action.label
|
|
158
142
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
|
|
159
143
|
type: "button",
|
|
160
144
|
className: "pui-toast-dismiss",
|
|
161
|
-
onClick:
|
|
162
|
-
return onDismiss(id, true);
|
|
163
|
-
},
|
|
145
|
+
onClick: () => onDismiss(id, true),
|
|
164
146
|
"aria-label": labels.dismiss,
|
|
165
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Close
|
|
147
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Close.default, {
|
|
166
148
|
style: {
|
|
167
149
|
width: 14,
|
|
168
150
|
height: 14
|
|
@@ -171,66 +153,51 @@ function ToastItem(_ref) {
|
|
|
171
153
|
}), progress != null && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
172
154
|
className: "pui-toast-progress",
|
|
173
155
|
style: {
|
|
174
|
-
width:
|
|
156
|
+
width: `${progress}%`
|
|
175
157
|
},
|
|
176
158
|
"aria-hidden": "true"
|
|
177
159
|
})]
|
|
178
160
|
});
|
|
179
161
|
}
|
|
180
|
-
function ToastProvider(
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
var triggersRef = React.useRef({});
|
|
192
|
-
var idSeq = React.useRef(0);
|
|
193
|
-
var nextId = React.useCallback(function () {
|
|
194
|
-
return "t".concat(++idSeq.current);
|
|
195
|
-
}, []);
|
|
196
|
-
var dismiss = React.useCallback(function (id) {
|
|
197
|
-
var fromInteraction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
162
|
+
function ToastProvider({
|
|
163
|
+
children,
|
|
164
|
+
labels
|
|
165
|
+
}) {
|
|
166
|
+
const mergedLabels = React.useMemo(() => (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, labels), [labels]);
|
|
167
|
+
const [toasts, setToasts] = React.useState([]);
|
|
168
|
+
const timers = React.useRef({});
|
|
169
|
+
const triggersRef = React.useRef({});
|
|
170
|
+
const idSeq = React.useRef(0);
|
|
171
|
+
const nextId = React.useCallback(() => `t${++idSeq.current}`, []);
|
|
172
|
+
const dismiss = React.useCallback((id, fromInteraction = false) => {
|
|
198
173
|
clearTimeout(timers.current[id]);
|
|
199
174
|
delete timers.current[id];
|
|
200
|
-
|
|
175
|
+
const trigger = triggersRef.current[id];
|
|
201
176
|
delete triggersRef.current[id];
|
|
202
|
-
setToasts(
|
|
203
|
-
return arr.filter(function (t) {
|
|
204
|
-
return t.id !== id;
|
|
205
|
-
});
|
|
206
|
-
});
|
|
177
|
+
setToasts(arr => arr.filter(t => t.id !== id));
|
|
207
178
|
if (fromInteraction && trigger) {
|
|
208
|
-
setTimeout(
|
|
209
|
-
|
|
179
|
+
setTimeout(() => {
|
|
180
|
+
const el = trigger;
|
|
210
181
|
if (el !== document.body && typeof el.focus === "function" && document.body.contains(el) && !el.disabled) {
|
|
211
182
|
el.focus();
|
|
212
183
|
}
|
|
213
184
|
}, 0);
|
|
214
185
|
}
|
|
215
186
|
}, []);
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
var undoCfg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
219
|
-
var action = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
220
|
-
var progress = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
|
|
221
|
-
var id = nextId();
|
|
187
|
+
const push = React.useCallback((message, variant = "default", undoCfg = null, action = null, progress = null) => {
|
|
188
|
+
const id = nextId();
|
|
222
189
|
triggersRef.current[id] = typeof document !== "undefined" ? document.activeElement : null;
|
|
223
|
-
setToasts(
|
|
224
|
-
|
|
225
|
-
id
|
|
226
|
-
message
|
|
227
|
-
variant
|
|
228
|
-
undoCfg
|
|
229
|
-
action
|
|
230
|
-
progress
|
|
231
|
-
}]
|
|
190
|
+
setToasts(arr => {
|
|
191
|
+
const next = [...arr, {
|
|
192
|
+
id,
|
|
193
|
+
message,
|
|
194
|
+
variant,
|
|
195
|
+
undoCfg,
|
|
196
|
+
action,
|
|
197
|
+
progress
|
|
198
|
+
}];
|
|
232
199
|
if (next.length > MAX_TOASTS) {
|
|
233
|
-
|
|
200
|
+
const dropped = next.shift();
|
|
234
201
|
if (dropped) {
|
|
235
202
|
clearTimeout(timers.current[dropped.id]);
|
|
236
203
|
delete timers.current[dropped.id];
|
|
@@ -243,10 +210,8 @@ function ToastProvider(_ref2) {
|
|
|
243
210
|
// H5 — progress toasts have NO auto-dismiss timer. They are long-
|
|
244
211
|
// running by definition; the host calls done() or dismiss(id).
|
|
245
212
|
if (progress == null) {
|
|
246
|
-
|
|
247
|
-
timers.current[id] = setTimeout(
|
|
248
|
-
return dismiss(id, false);
|
|
249
|
-
}, duration);
|
|
213
|
+
const duration = undoCfg ? 5000 : variant === "error" ? 5000 : 3500;
|
|
214
|
+
timers.current[id] = setTimeout(() => dismiss(id, false), duration);
|
|
250
215
|
}
|
|
251
216
|
return id;
|
|
252
217
|
}, [dismiss, nextId]);
|
|
@@ -254,98 +219,82 @@ function ToastProvider(_ref2) {
|
|
|
254
219
|
// H5 — Internal helper: patch a single toast's fields by id.
|
|
255
220
|
// setState updater form so concurrent updates don't trample each
|
|
256
221
|
// other if a host fires update() in tight succession.
|
|
257
|
-
|
|
258
|
-
setToasts(
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
});
|
|
222
|
+
const patch = React.useCallback((id, fields) => {
|
|
223
|
+
setToasts(arr => arr.map(t => t.id === id ? {
|
|
224
|
+
...t,
|
|
225
|
+
...fields
|
|
226
|
+
} : t));
|
|
263
227
|
}, []);
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
};
|
|
269
|
-
var undo = function undo(message, onUndo, opts) {
|
|
270
|
-
var o = typeof opts === "string" ? {
|
|
228
|
+
const api = React.useMemo(() => {
|
|
229
|
+
const base = (message, variant = "default") => push(message, variant, null, null, null);
|
|
230
|
+
const undo = (message, onUndo, opts) => {
|
|
231
|
+
const o = typeof opts === "string" ? {
|
|
271
232
|
variant: opts
|
|
272
233
|
} : opts || {};
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
return push(message, variant,
|
|
276
|
-
onUndo
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
var action = function action(message, label, onClick) {
|
|
282
|
-
var variant = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "default";
|
|
283
|
-
return push(message, variant, null, _objectSpread({
|
|
284
|
-
label: label
|
|
285
|
-
}, onClick !== undefined ? {
|
|
286
|
-
onClick: onClick
|
|
287
|
-
} : {}), null);
|
|
288
|
-
};
|
|
289
|
-
var dismissApi = function dismissApi(id) {
|
|
290
|
-
return dismiss(id, false);
|
|
234
|
+
const variant = o.variant || "default";
|
|
235
|
+
const label = o.label != null ? o.label : mergedLabels.undo;
|
|
236
|
+
return push(message, variant, {
|
|
237
|
+
...(onUndo !== undefined ? {
|
|
238
|
+
onUndo
|
|
239
|
+
} : {}),
|
|
240
|
+
label
|
|
241
|
+
}, null, null);
|
|
291
242
|
};
|
|
243
|
+
const action = (message, label, onClick, variant = "default") => push(message, variant, null, {
|
|
244
|
+
label,
|
|
245
|
+
...(onClick !== undefined ? {
|
|
246
|
+
onClick
|
|
247
|
+
} : {})
|
|
248
|
+
}, null);
|
|
249
|
+
const dismissApi = id => dismiss(id, false);
|
|
292
250
|
|
|
293
251
|
// H5 — fluent progress API. Returns { id, update, done } so the
|
|
294
252
|
// host can drive the toast over its lifetime without juggling
|
|
295
253
|
// the id manually (though id is also available for explicit
|
|
296
254
|
// toast.dismiss(id) cancellation).
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
var id = push(message, variant, null, null, 0);
|
|
255
|
+
const progress = (message, opts = {}) => {
|
|
256
|
+
const variant = opts.variant || "default";
|
|
257
|
+
const id = push(message, variant, null, null, 0);
|
|
301
258
|
return {
|
|
302
|
-
id
|
|
303
|
-
update:
|
|
259
|
+
id,
|
|
260
|
+
update: p => {
|
|
304
261
|
// Clamp defensively so a host passing 137 doesn't blow the bar.
|
|
305
|
-
|
|
262
|
+
const clamped = Math.max(0, Math.min(100, Number(p) || 0));
|
|
306
263
|
patch(id, {
|
|
307
264
|
progress: clamped
|
|
308
265
|
});
|
|
309
266
|
},
|
|
310
|
-
done:
|
|
311
|
-
patch(id,
|
|
312
|
-
progress: 100
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
267
|
+
done: finalMessage => {
|
|
268
|
+
patch(id, {
|
|
269
|
+
progress: 100,
|
|
270
|
+
...(finalMessage != null && {
|
|
271
|
+
message: finalMessage
|
|
272
|
+
}),
|
|
316
273
|
variant: "success"
|
|
317
|
-
})
|
|
274
|
+
});
|
|
318
275
|
// Schedule auto-dismiss after a brief pause so the user sees
|
|
319
276
|
// the filled bar + final message before the toast disappears.
|
|
320
277
|
clearTimeout(timers.current[id]);
|
|
321
|
-
timers.current[id] = setTimeout(
|
|
322
|
-
return dismiss(id, false);
|
|
323
|
-
}, PROGRESS_DONE_DISMISS_DELAY_MS);
|
|
278
|
+
timers.current[id] = setTimeout(() => dismiss(id, false), PROGRESS_DONE_DISMISS_DELAY_MS);
|
|
324
279
|
}
|
|
325
280
|
};
|
|
326
281
|
};
|
|
327
282
|
return Object.assign(base, {
|
|
328
|
-
undo
|
|
329
|
-
action
|
|
283
|
+
undo,
|
|
284
|
+
action,
|
|
330
285
|
dismiss: dismissApi,
|
|
331
|
-
progress
|
|
286
|
+
progress
|
|
332
287
|
});
|
|
333
288
|
}, [push, dismiss, patch, mergedLabels]);
|
|
334
289
|
|
|
335
290
|
// D6 (Batch 14) — Symmetric ref cleanup on unmount.
|
|
336
|
-
React.useEffect(
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
triggersRef.current = {};
|
|
341
|
-
};
|
|
291
|
+
React.useEffect(() => () => {
|
|
292
|
+
Object.values(timers.current).forEach(clearTimeout);
|
|
293
|
+
timers.current = {};
|
|
294
|
+
triggersRef.current = {};
|
|
342
295
|
}, []);
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
});
|
|
346
|
-
var assertive = toasts.filter(function (t) {
|
|
347
|
-
return t.variant === "error";
|
|
348
|
-
});
|
|
296
|
+
const polite = toasts.filter(t => t.variant !== "error");
|
|
297
|
+
const assertive = toasts.filter(t => t.variant === "error");
|
|
349
298
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ToastContext.Provider, {
|
|
350
299
|
value: api,
|
|
351
300
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(ToastLabelsContext.Provider, {
|
|
@@ -359,27 +308,23 @@ function ToastProvider(_ref2) {
|
|
|
359
308
|
"aria-live": "polite",
|
|
360
309
|
"aria-relevant": "additions text",
|
|
361
310
|
"aria-atomic": "false",
|
|
362
|
-
children: polite.map(
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
}, t.id);
|
|
367
|
-
})
|
|
311
|
+
children: polite.map(t => /*#__PURE__*/(0, _jsxRuntime.jsx)(ToastItem, {
|
|
312
|
+
toast: t,
|
|
313
|
+
onDismiss: dismiss
|
|
314
|
+
}, t.id))
|
|
368
315
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
369
316
|
role: "alert",
|
|
370
317
|
"aria-live": "assertive",
|
|
371
318
|
"aria-relevant": "additions text",
|
|
372
319
|
"aria-atomic": "false",
|
|
373
|
-
children: assertive.map(
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
}, t.id);
|
|
378
|
-
})
|
|
320
|
+
children: assertive.map(t => /*#__PURE__*/(0, _jsxRuntime.jsx)(ToastItem, {
|
|
321
|
+
toast: t,
|
|
322
|
+
onDismiss: dismiss
|
|
323
|
+
}, t.id))
|
|
379
324
|
})]
|
|
380
325
|
})]
|
|
381
326
|
})
|
|
382
327
|
});
|
|
383
328
|
}
|
|
384
|
-
var _default = exports
|
|
329
|
+
var _default = exports.default = ToastProvider;
|
|
385
330
|
//# sourceMappingURL=Toast.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.js","names":["React","_interopRequireWildcard","require","_Check","_interopRequireDefault","_ErrorOutlined","_WarningAmberOutlined","_InfoOutlined","_Close","_mergeLabels","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iter","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","o","minLen","n","toString","slice","constructor","name","test","len","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","err","MAX_TOASTS","PROGRESS_DONE_DISMISS_DELAY_MS","DEFAULT_LABELS","freeze","undo","dismiss","ToastContext","createContext","ToastLabelsContext","useToast","ctx","useContext","Error","ToastItem","_ref","toast","onDismiss","labels","id","message","variant","undoCfg","action","progress","jsxs","className","children","jsx","fontSize","style","flex","type","onClick","_undoCfg$onUndo","onUndo","label","_action$onClick","width","height","concat","ToastProvider","_ref2","mergedLabels","useMemo","mergeLabels","_React$useState","useState","_React$useState2","toasts","setToasts","timers","useRef","triggersRef","idSeq","nextId","useCallback","current","fromInteraction","clearTimeout","trigger","t","setTimeout","el","document","body","focus","contains","disabled","activeElement","dropped","shift","duration","patch","fields","map","api","base","opts","dismissApi","update","p","clamped","Math","max","min","finalMessage","assign","useEffect","values","polite","assertive","Provider","role","_default","exports"],"sources":["../../../src/lib/v2/components/Toast.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport CheckIcon from \"@mui/icons-material/Check\";\r\nimport ErrorIcon from \"@mui/icons-material/ErrorOutlined\";\r\nimport WarningIcon from \"@mui/icons-material/WarningAmberOutlined\";\r\nimport InfoIcon from \"@mui/icons-material/InfoOutlined\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * Toast - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Toast\". 3 niveaux : Toast / Inline Alert / Banner.\r\n *\r\n * R-A.1 - Toast = role=\"status\" aria-live=\"polite\".\r\n * R-A.2 - Erreur bloquante = role=\"alert\" aria-live=\"assertive\".\r\n * R-A.3 - Max 3 toasts simultanés ; pile en bas-centre.\r\n * R-A.4 - Pas de toast pour valider une action utilisateur (succès uniquement).\r\n *\r\n * Implementation note (R-A.1 / R-A.2):\r\n * We render TWO live regions, not one. A single region with\r\n * aria-live=\"polite\" whose children override to aria-live=\"assertive\"\r\n * is unreliable across screen readers - most SRs honour the OUTER\r\n * region's live setting. To ensure assertive errors interrupt as\r\n * required, error toasts go into a dedicated role=\"alert\"\r\n * aria-live=\"assertive\" region, while every other variant goes into\r\n * a role=\"status\" aria-live=\"polite\" region. Both stacks render\r\n * visually at the same anchor.\r\n *\r\n * Landmark wrapping (a11y, axe-core 4.11):\r\n * The outer .pui-toast-host wrapper carries role=\"region\" so the\r\n * aria-label=\"Notifications\" is valid (aria-label is prohibited on\r\n * bare generic <div>s per ARIA 1.2) AND the portal joins the page's\r\n * landmark structure (AT users running landmark-only navigation\r\n * now reach it). The two inner live regions keep their own\r\n * status/alert semantics unchanged.\r\n *\r\n * Focus restoration (R-F.2 spirit):\r\n * When the user dismisses a toast by clicking Undo / Action /\r\n * Close, focus returns to whichever element was focused when\r\n * the toast first appeared. Auto-dismiss (timeout) and host-\r\n * initiated dismissal (api.dismiss(id)) deliberately do NOT\r\n * restore.\r\n *\r\n * Localisation (FR / EN / AR):\r\n * <ToastProvider labels={{ undo: \"Undo\", dismiss: \"Dismiss\" }}>\r\n *\r\n * API:\r\n * const toast = useToast();\r\n * toast(\"Sauvegardé.\", \"success\");\r\n * toast.undo(\"Titre supprimé.\", () => restore());\r\n * toast.action(\"Mise à jour disponible.\", \"Recharger\", () => location.reload());\r\n *\r\n * // Long-running progress (Batch 16 / H5):\r\n * const up = toast.progress(\"Téléversement en cours…\");\r\n * up.update(45);\r\n * up.update(90);\r\n * up.done(\"Téléversement terminé.\");\r\n *\r\n * // Or host-managed via id:\r\n * const up = toast.progress(\"…\");\r\n * toast.dismiss(up.id); // cancel mid-flight\r\n */\r\n\r\nconst MAX_TOASTS = 3;\r\n\r\n// Auto-dismiss delay after `done()` is called on a progress handle.\r\n// Lets the user see the \"100% + final message\" state before the toast\r\n// disappears.\r\nconst PROGRESS_DONE_DISMISS_DELAY_MS = 1000;\r\n\r\nexport type ToastVariant = \"success\" | \"error\" | \"warning\" | \"info\" | \"default\";\r\n\r\ninterface UndoCfg {\r\n onUndo?: () => void;\r\n label?: React.ReactNode;\r\n}\r\n\r\ninterface ToastAction {\r\n onClick?: () => void;\r\n label?: React.ReactNode;\r\n}\r\n\r\ninterface ToastData {\r\n id: string;\r\n message?: React.ReactNode;\r\n variant?: ToastVariant;\r\n undoCfg?: UndoCfg | null;\r\n action?: ToastAction | null;\r\n progress?: number | null;\r\n}\r\n\r\ninterface ToastLabels {\r\n undo: string;\r\n dismiss: string;\r\n}\r\n\r\nexport interface ToastProviderLabels {\r\n undo?: string | undefined;\r\n dismiss?: string | undefined;\r\n}\r\n\r\nexport interface ToastUndoOptions {\r\n variant?: ToastVariant | undefined;\r\n label?: React.ReactNode | undefined;\r\n}\r\n\r\nexport interface ToastProgressHandle {\r\n id: string;\r\n update: (p: number) => void;\r\n done: (finalMessage?: React.ReactNode) => void;\r\n}\r\n\r\nexport interface ToastApi {\r\n (message: React.ReactNode, variant?: ToastVariant): string;\r\n undo: (message: React.ReactNode, onUndo?: () => void, opts?: ToastUndoOptions | ToastVariant) => string;\r\n action: (message: React.ReactNode, label: React.ReactNode, onClick?: () => void, variant?: ToastVariant) => string;\r\n dismiss: (id: string) => void;\r\n progress: (message: React.ReactNode, opts?: { variant?: ToastVariant }) => ToastProgressHandle;\r\n}\r\n\r\nconst DEFAULT_LABELS: ToastLabels = Object.freeze({\r\n undo: \"Annuler\",\r\n dismiss: \"Fermer cette notification\",\r\n});\r\n\r\nconst ToastContext = React.createContext<ToastApi | null>(null);\r\n// Separate context so ToastItem can read labels without a value-churn\r\n// every time the toasts array updates.\r\nconst ToastLabelsContext = React.createContext<ToastLabels>(DEFAULT_LABELS);\r\n\r\nexport function useToast(): ToastApi {\r\n const ctx = React.useContext(ToastContext);\r\n if (!ctx) {\r\n throw new Error(\"[@portnet/ui v2] useToast() must be called inside <ToastProvider>\");\r\n }\r\n return ctx;\r\n}\r\n\r\ninterface ToastItemProps {\r\n toast: ToastData;\r\n onDismiss: (id: string, fromInteraction?: boolean) => void;\r\n}\r\n\r\nfunction ToastItem({ toast, onDismiss }: ToastItemProps) {\r\n const labels = React.useContext(ToastLabelsContext);\r\n const { id, message, variant, undoCfg, action, progress } = toast;\r\n return (\r\n <div className=\"pui-toast\" data-variant={variant}>\r\n {variant === \"success\" && <CheckIcon fontSize=\"small\" aria-hidden=\"true\" />}\r\n {variant === \"error\" && <ErrorIcon fontSize=\"small\" aria-hidden=\"true\" />}\r\n {variant === \"warning\" && <WarningIcon fontSize=\"small\" aria-hidden=\"true\" />}\r\n {(variant === \"default\" || variant === \"info\") && <InfoIcon fontSize=\"small\" aria-hidden=\"true\" />}\r\n <span style={{ flex: 1 }}>{message}</span>\r\n {undoCfg && (\r\n <button\r\n type=\"button\"\r\n className=\"pui-toast-undo\"\r\n onClick={() => { undoCfg.onUndo?.(); onDismiss(id, true); }}\r\n >\r\n {undoCfg.label}\r\n </button>\r\n )}\r\n {action && !undoCfg && (\r\n <button\r\n type=\"button\"\r\n className=\"pui-toast-action\"\r\n onClick={() => { action.onClick?.(); onDismiss(id, true); }}\r\n >\r\n {action.label}\r\n </button>\r\n )}\r\n <button\r\n type=\"button\"\r\n className=\"pui-toast-dismiss\"\r\n onClick={() => onDismiss(id, true)}\r\n aria-label={labels.dismiss}\r\n >\r\n <CloseIcon style={{ width: 14, height: 14 }} />\r\n </button>\r\n {/* H5 — Progress bar at the bottom of the toast. Renders only\r\n for progress toasts (progress != null). The class is\r\n declared in base.css; uses currentColor so it adapts to\r\n every variant background (white-ish on the dark variants). */}\r\n {progress != null && (\r\n <div\r\n className=\"pui-toast-progress\"\r\n style={{ width: `${progress}%` }}\r\n aria-hidden=\"true\"\r\n />\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport interface ToastProviderProps {\r\n children?: React.ReactNode | undefined;\r\n labels?: ToastProviderLabels | undefined;\r\n}\r\n\r\nexport function ToastProvider({ children, labels }: ToastProviderProps) {\r\n const mergedLabels = React.useMemo<ToastLabels>(\r\n () => (mergeLabels(DEFAULT_LABELS, labels)),\r\n [labels]\r\n );\r\n\r\n const [toasts, setToasts] = React.useState<ToastData[]>([]);\r\n const timers = React.useRef<Record<string, ReturnType<typeof setTimeout>>>({});\r\n const triggersRef = React.useRef<Record<string, Element | null>>({});\r\n\r\n const idSeq = React.useRef(0);\r\n const nextId = React.useCallback(() => `t${++idSeq.current}`, []);\r\n\r\n const dismiss = React.useCallback((id: string, fromInteraction = false) => {\r\n clearTimeout(timers.current[id]);\r\n delete timers.current[id];\r\n\r\n const trigger = triggersRef.current[id];\r\n delete triggersRef.current[id];\r\n\r\n setToasts((arr) => arr.filter((t) => t.id !== id));\r\n\r\n if (fromInteraction && trigger) {\r\n setTimeout(() => {\r\n const el = trigger as HTMLElement & { disabled?: boolean };\r\n if (\r\n el !== document.body &&\r\n typeof el.focus === \"function\" &&\r\n document.body.contains(el) &&\r\n !el.disabled\r\n ) {\r\n el.focus();\r\n }\r\n }, 0);\r\n }\r\n }, []);\r\n\r\n const push = React.useCallback((\r\n message: React.ReactNode,\r\n variant: ToastVariant = \"default\",\r\n undoCfg: UndoCfg | null = null,\r\n action: ToastAction | null = null,\r\n progress: number | null = null\r\n ): string => {\r\n const id = nextId();\r\n\r\n triggersRef.current[id] = (typeof document !== \"undefined\")\r\n ? document.activeElement\r\n : null;\r\n\r\n setToasts((arr) => {\r\n const next = [...arr, { id, message, variant, undoCfg, action, progress }];\r\n if (next.length > MAX_TOASTS) {\r\n const dropped = next.shift();\r\n if (dropped) {\r\n clearTimeout(timers.current[dropped.id]);\r\n delete timers.current[dropped.id];\r\n delete triggersRef.current[dropped.id];\r\n }\r\n }\r\n return next;\r\n });\r\n\r\n // H5 — progress toasts have NO auto-dismiss timer. They are long-\r\n // running by definition; the host calls done() or dismiss(id).\r\n if (progress == null) {\r\n const duration = undoCfg ? 5000 : variant === \"error\" ? 5000 : 3500;\r\n timers.current[id] = setTimeout(() => dismiss(id, false), duration);\r\n }\r\n return id;\r\n }, [dismiss, nextId]);\r\n\r\n // H5 — Internal helper: patch a single toast's fields by id.\r\n // setState updater form so concurrent updates don't trample each\r\n // other if a host fires update() in tight succession.\r\n const patch = React.useCallback((id: string, fields: Partial<ToastData>) => {\r\n setToasts((arr) => arr.map((t) => (t.id === id ? { ...t, ...fields } : t)));\r\n }, []);\r\n\r\n const api = React.useMemo<ToastApi>(() => {\r\n const base = (message: React.ReactNode, variant: ToastVariant = \"default\"): string =>\r\n push(message, variant, null, null, null);\r\n\r\n const undo: ToastApi[\"undo\"] = (message, onUndo, opts) => {\r\n const o: ToastUndoOptions = typeof opts === \"string\" ? { variant: opts } : (opts || {});\r\n const variant = o.variant || \"default\";\r\n const label = o.label != null ? o.label : mergedLabels.undo;\r\n return push(message, variant, { ...(onUndo !== undefined ? { onUndo } : {}), label }, null, null);\r\n };\r\n\r\n const action: ToastApi[\"action\"] = (message, label, onClick, variant = \"default\") =>\r\n push(message, variant, null, { label, ...(onClick !== undefined ? { onClick } : {}) }, null);\r\n\r\n const dismissApi: ToastApi[\"dismiss\"] = (id) => dismiss(id, false);\r\n\r\n // H5 — fluent progress API. Returns { id, update, done } so the\r\n // host can drive the toast over its lifetime without juggling\r\n // the id manually (though id is also available for explicit\r\n // toast.dismiss(id) cancellation).\r\n const progress: ToastApi[\"progress\"] = (message, opts = {}) => {\r\n const variant = opts.variant || \"default\";\r\n const id = push(message, variant, null, null, 0);\r\n return {\r\n id,\r\n update: (p) => {\r\n // Clamp defensively so a host passing 137 doesn't blow the bar.\r\n const clamped = Math.max(0, Math.min(100, Number(p) || 0));\r\n patch(id, { progress: clamped });\r\n },\r\n done: (finalMessage) => {\r\n patch(id, {\r\n progress: 100,\r\n ...(finalMessage != null && { message: finalMessage }),\r\n variant: \"success\",\r\n });\r\n // Schedule auto-dismiss after a brief pause so the user sees\r\n // the filled bar + final message before the toast disappears.\r\n clearTimeout(timers.current[id]);\r\n timers.current[id] = setTimeout(\r\n () => dismiss(id, false),\r\n PROGRESS_DONE_DISMISS_DELAY_MS\r\n );\r\n },\r\n };\r\n };\r\n\r\n return Object.assign(base, { undo, action, dismiss: dismissApi, progress });\r\n }, [push, dismiss, patch, mergedLabels]);\r\n\r\n // D6 (Batch 14) — Symmetric ref cleanup on unmount.\r\n React.useEffect(() => () => {\r\n Object.values(timers.current).forEach(clearTimeout);\r\n timers.current = {};\r\n triggersRef.current = {};\r\n }, []);\r\n\r\n const polite = toasts.filter((t) => t.variant !== \"error\");\r\n const assertive = toasts.filter((t) => t.variant === \"error\");\r\n\r\n return (\r\n <ToastContext.Provider value={api}>\r\n <ToastLabelsContext.Provider value={mergedLabels}>\r\n {children}\r\n {/* role=\"region\" promotes the wrapper from generic to a\r\n landmark so:\r\n (a) the aria-label is valid (ARIA 1.2 prohibits\r\n aria-label on generic elements — axe-core 4.11\r\n rule `aria-prohibited-attr`);\r\n (b) the portal joins the page's landmark structure\r\n and is reachable via SR landmark-only navigation\r\n (axe-core rule `region`).\r\n The inner status/alert regions keep their own\r\n live-region semantics. */}\r\n <div className=\"pui-toast-host\" role=\"region\" aria-label=\"Notifications\">\r\n <div role=\"status\" aria-live=\"polite\" aria-relevant=\"additions text\" aria-atomic=\"false\">\r\n {polite.map((t) => <ToastItem key={t.id} toast={t} onDismiss={dismiss} />)}\r\n </div>\r\n <div role=\"alert\" aria-live=\"assertive\" aria-relevant=\"additions text\" aria-atomic=\"false\">\r\n {assertive.map((t) => <ToastItem key={t.id} toast={t} onDismiss={dismiss} />)}\r\n </div>\r\n </div>\r\n </ToastLabelsContext.Provider>\r\n </ToastContext.Provider>\r\n );\r\n}\r\n\r\nexport default ToastProvider;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Toast.js","names":["React","_interopRequireWildcard","require","_Check","_interopRequireDefault","_ErrorOutlined","_WarningAmberOutlined","_InfoOutlined","_Close","_mergeLabels","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MAX_TOASTS","PROGRESS_DONE_DISMISS_DELAY_MS","DEFAULT_LABELS","freeze","undo","dismiss","ToastContext","createContext","ToastLabelsContext","useToast","ctx","useContext","Error","ToastItem","toast","onDismiss","labels","id","message","variant","undoCfg","action","progress","jsxs","className","children","jsx","fontSize","style","flex","type","onClick","onUndo","label","width","height","ToastProvider","mergedLabels","useMemo","mergeLabels","toasts","setToasts","useState","timers","useRef","triggersRef","idSeq","nextId","useCallback","current","fromInteraction","clearTimeout","trigger","arr","filter","setTimeout","el","document","body","focus","contains","disabled","push","activeElement","next","length","dropped","shift","duration","patch","fields","map","api","base","opts","undefined","dismissApi","update","p","clamped","Math","max","min","Number","done","finalMessage","assign","useEffect","values","forEach","polite","assertive","Provider","value","role","_default","exports"],"sources":["../../../src/lib/v2/components/Toast.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport CheckIcon from \"@mui/icons-material/Check\";\r\nimport ErrorIcon from \"@mui/icons-material/ErrorOutlined\";\r\nimport WarningIcon from \"@mui/icons-material/WarningAmberOutlined\";\r\nimport InfoIcon from \"@mui/icons-material/InfoOutlined\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * Toast - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Toast\". 3 niveaux : Toast / Inline Alert / Banner.\r\n *\r\n * R-A.1 - Toast = role=\"status\" aria-live=\"polite\".\r\n * R-A.2 - Erreur bloquante = role=\"alert\" aria-live=\"assertive\".\r\n * R-A.3 - Max 3 toasts simultanés ; pile en bas-centre.\r\n * R-A.4 - Pas de toast pour valider une action utilisateur (succès uniquement).\r\n *\r\n * Implementation note (R-A.1 / R-A.2):\r\n * We render TWO live regions, not one. A single region with\r\n * aria-live=\"polite\" whose children override to aria-live=\"assertive\"\r\n * is unreliable across screen readers - most SRs honour the OUTER\r\n * region's live setting. To ensure assertive errors interrupt as\r\n * required, error toasts go into a dedicated role=\"alert\"\r\n * aria-live=\"assertive\" region, while every other variant goes into\r\n * a role=\"status\" aria-live=\"polite\" region. Both stacks render\r\n * visually at the same anchor.\r\n *\r\n * Landmark wrapping (a11y, axe-core 4.11):\r\n * The outer .pui-toast-host wrapper carries role=\"region\" so the\r\n * aria-label=\"Notifications\" is valid (aria-label is prohibited on\r\n * bare generic <div>s per ARIA 1.2) AND the portal joins the page's\r\n * landmark structure (AT users running landmark-only navigation\r\n * now reach it). The two inner live regions keep their own\r\n * status/alert semantics unchanged.\r\n *\r\n * Focus restoration (R-F.2 spirit):\r\n * When the user dismisses a toast by clicking Undo / Action /\r\n * Close, focus returns to whichever element was focused when\r\n * the toast first appeared. Auto-dismiss (timeout) and host-\r\n * initiated dismissal (api.dismiss(id)) deliberately do NOT\r\n * restore.\r\n *\r\n * Localisation (FR / EN / AR):\r\n * <ToastProvider labels={{ undo: \"Undo\", dismiss: \"Dismiss\" }}>\r\n *\r\n * API:\r\n * const toast = useToast();\r\n * toast(\"Sauvegardé.\", \"success\");\r\n * toast.undo(\"Titre supprimé.\", () => restore());\r\n * toast.action(\"Mise à jour disponible.\", \"Recharger\", () => location.reload());\r\n *\r\n * // Long-running progress (Batch 16 / H5):\r\n * const up = toast.progress(\"Téléversement en cours…\");\r\n * up.update(45);\r\n * up.update(90);\r\n * up.done(\"Téléversement terminé.\");\r\n *\r\n * // Or host-managed via id:\r\n * const up = toast.progress(\"…\");\r\n * toast.dismiss(up.id); // cancel mid-flight\r\n */\r\n\r\nconst MAX_TOASTS = 3;\r\n\r\n// Auto-dismiss delay after `done()` is called on a progress handle.\r\n// Lets the user see the \"100% + final message\" state before the toast\r\n// disappears.\r\nconst PROGRESS_DONE_DISMISS_DELAY_MS = 1000;\r\n\r\nexport type ToastVariant = \"success\" | \"error\" | \"warning\" | \"info\" | \"default\";\r\n\r\ninterface UndoCfg {\r\n onUndo?: () => void;\r\n label?: React.ReactNode;\r\n}\r\n\r\ninterface ToastAction {\r\n onClick?: () => void;\r\n label?: React.ReactNode;\r\n}\r\n\r\ninterface ToastData {\r\n id: string;\r\n message?: React.ReactNode;\r\n variant?: ToastVariant;\r\n undoCfg?: UndoCfg | null;\r\n action?: ToastAction | null;\r\n progress?: number | null;\r\n}\r\n\r\ninterface ToastLabels {\r\n undo: string;\r\n dismiss: string;\r\n}\r\n\r\nexport interface ToastProviderLabels {\r\n undo?: string | undefined;\r\n dismiss?: string | undefined;\r\n}\r\n\r\nexport interface ToastUndoOptions {\r\n variant?: ToastVariant | undefined;\r\n label?: React.ReactNode | undefined;\r\n}\r\n\r\nexport interface ToastProgressHandle {\r\n id: string;\r\n update: (p: number) => void;\r\n done: (finalMessage?: React.ReactNode) => void;\r\n}\r\n\r\nexport interface ToastApi {\r\n (message: React.ReactNode, variant?: ToastVariant): string;\r\n undo: (message: React.ReactNode, onUndo?: () => void, opts?: ToastUndoOptions | ToastVariant) => string;\r\n action: (message: React.ReactNode, label: React.ReactNode, onClick?: () => void, variant?: ToastVariant) => string;\r\n dismiss: (id: string) => void;\r\n progress: (message: React.ReactNode, opts?: { variant?: ToastVariant }) => ToastProgressHandle;\r\n}\r\n\r\nconst DEFAULT_LABELS: ToastLabels = Object.freeze({\r\n undo: \"Annuler\",\r\n dismiss: \"Fermer cette notification\",\r\n});\r\n\r\nconst ToastContext = React.createContext<ToastApi | null>(null);\r\n// Separate context so ToastItem can read labels without a value-churn\r\n// every time the toasts array updates.\r\nconst ToastLabelsContext = React.createContext<ToastLabels>(DEFAULT_LABELS);\r\n\r\nexport function useToast(): ToastApi {\r\n const ctx = React.useContext(ToastContext);\r\n if (!ctx) {\r\n throw new Error(\"[@portnet/ui v2] useToast() must be called inside <ToastProvider>\");\r\n }\r\n return ctx;\r\n}\r\n\r\ninterface ToastItemProps {\r\n toast: ToastData;\r\n onDismiss: (id: string, fromInteraction?: boolean) => void;\r\n}\r\n\r\nfunction ToastItem({ toast, onDismiss }: ToastItemProps) {\r\n const labels = React.useContext(ToastLabelsContext);\r\n const { id, message, variant, undoCfg, action, progress } = toast;\r\n return (\r\n <div className=\"pui-toast\" data-variant={variant}>\r\n {variant === \"success\" && <CheckIcon fontSize=\"small\" aria-hidden=\"true\" />}\r\n {variant === \"error\" && <ErrorIcon fontSize=\"small\" aria-hidden=\"true\" />}\r\n {variant === \"warning\" && <WarningIcon fontSize=\"small\" aria-hidden=\"true\" />}\r\n {(variant === \"default\" || variant === \"info\") && <InfoIcon fontSize=\"small\" aria-hidden=\"true\" />}\r\n <span style={{ flex: 1 }}>{message}</span>\r\n {undoCfg && (\r\n <button\r\n type=\"button\"\r\n className=\"pui-toast-undo\"\r\n onClick={() => { undoCfg.onUndo?.(); onDismiss(id, true); }}\r\n >\r\n {undoCfg.label}\r\n </button>\r\n )}\r\n {action && !undoCfg && (\r\n <button\r\n type=\"button\"\r\n className=\"pui-toast-action\"\r\n onClick={() => { action.onClick?.(); onDismiss(id, true); }}\r\n >\r\n {action.label}\r\n </button>\r\n )}\r\n <button\r\n type=\"button\"\r\n className=\"pui-toast-dismiss\"\r\n onClick={() => onDismiss(id, true)}\r\n aria-label={labels.dismiss}\r\n >\r\n <CloseIcon style={{ width: 14, height: 14 }} />\r\n </button>\r\n {/* H5 — Progress bar at the bottom of the toast. Renders only\r\n for progress toasts (progress != null). The class is\r\n declared in base.css; uses currentColor so it adapts to\r\n every variant background (white-ish on the dark variants). */}\r\n {progress != null && (\r\n <div\r\n className=\"pui-toast-progress\"\r\n style={{ width: `${progress}%` }}\r\n aria-hidden=\"true\"\r\n />\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport interface ToastProviderProps {\r\n children?: React.ReactNode | undefined;\r\n labels?: ToastProviderLabels | undefined;\r\n}\r\n\r\nexport function ToastProvider({ children, labels }: ToastProviderProps) {\r\n const mergedLabels = React.useMemo<ToastLabels>(\r\n () => (mergeLabels(DEFAULT_LABELS, labels)),\r\n [labels]\r\n );\r\n\r\n const [toasts, setToasts] = React.useState<ToastData[]>([]);\r\n const timers = React.useRef<Record<string, ReturnType<typeof setTimeout>>>({});\r\n const triggersRef = React.useRef<Record<string, Element | null>>({});\r\n\r\n const idSeq = React.useRef(0);\r\n const nextId = React.useCallback(() => `t${++idSeq.current}`, []);\r\n\r\n const dismiss = React.useCallback((id: string, fromInteraction = false) => {\r\n clearTimeout(timers.current[id]);\r\n delete timers.current[id];\r\n\r\n const trigger = triggersRef.current[id];\r\n delete triggersRef.current[id];\r\n\r\n setToasts((arr) => arr.filter((t) => t.id !== id));\r\n\r\n if (fromInteraction && trigger) {\r\n setTimeout(() => {\r\n const el = trigger as HTMLElement & { disabled?: boolean };\r\n if (\r\n el !== document.body &&\r\n typeof el.focus === \"function\" &&\r\n document.body.contains(el) &&\r\n !el.disabled\r\n ) {\r\n el.focus();\r\n }\r\n }, 0);\r\n }\r\n }, []);\r\n\r\n const push = React.useCallback((\r\n message: React.ReactNode,\r\n variant: ToastVariant = \"default\",\r\n undoCfg: UndoCfg | null = null,\r\n action: ToastAction | null = null,\r\n progress: number | null = null\r\n ): string => {\r\n const id = nextId();\r\n\r\n triggersRef.current[id] = (typeof document !== \"undefined\")\r\n ? document.activeElement\r\n : null;\r\n\r\n setToasts((arr) => {\r\n const next = [...arr, { id, message, variant, undoCfg, action, progress }];\r\n if (next.length > MAX_TOASTS) {\r\n const dropped = next.shift();\r\n if (dropped) {\r\n clearTimeout(timers.current[dropped.id]);\r\n delete timers.current[dropped.id];\r\n delete triggersRef.current[dropped.id];\r\n }\r\n }\r\n return next;\r\n });\r\n\r\n // H5 — progress toasts have NO auto-dismiss timer. They are long-\r\n // running by definition; the host calls done() or dismiss(id).\r\n if (progress == null) {\r\n const duration = undoCfg ? 5000 : variant === \"error\" ? 5000 : 3500;\r\n timers.current[id] = setTimeout(() => dismiss(id, false), duration);\r\n }\r\n return id;\r\n }, [dismiss, nextId]);\r\n\r\n // H5 — Internal helper: patch a single toast's fields by id.\r\n // setState updater form so concurrent updates don't trample each\r\n // other if a host fires update() in tight succession.\r\n const patch = React.useCallback((id: string, fields: Partial<ToastData>) => {\r\n setToasts((arr) => arr.map((t) => (t.id === id ? { ...t, ...fields } : t)));\r\n }, []);\r\n\r\n const api = React.useMemo<ToastApi>(() => {\r\n const base = (message: React.ReactNode, variant: ToastVariant = \"default\"): string =>\r\n push(message, variant, null, null, null);\r\n\r\n const undo: ToastApi[\"undo\"] = (message, onUndo, opts) => {\r\n const o: ToastUndoOptions = typeof opts === \"string\" ? { variant: opts } : (opts || {});\r\n const variant = o.variant || \"default\";\r\n const label = o.label != null ? o.label : mergedLabels.undo;\r\n return push(message, variant, { ...(onUndo !== undefined ? { onUndo } : {}), label }, null, null);\r\n };\r\n\r\n const action: ToastApi[\"action\"] = (message, label, onClick, variant = \"default\") =>\r\n push(message, variant, null, { label, ...(onClick !== undefined ? { onClick } : {}) }, null);\r\n\r\n const dismissApi: ToastApi[\"dismiss\"] = (id) => dismiss(id, false);\r\n\r\n // H5 — fluent progress API. Returns { id, update, done } so the\r\n // host can drive the toast over its lifetime without juggling\r\n // the id manually (though id is also available for explicit\r\n // toast.dismiss(id) cancellation).\r\n const progress: ToastApi[\"progress\"] = (message, opts = {}) => {\r\n const variant = opts.variant || \"default\";\r\n const id = push(message, variant, null, null, 0);\r\n return {\r\n id,\r\n update: (p) => {\r\n // Clamp defensively so a host passing 137 doesn't blow the bar.\r\n const clamped = Math.max(0, Math.min(100, Number(p) || 0));\r\n patch(id, { progress: clamped });\r\n },\r\n done: (finalMessage) => {\r\n patch(id, {\r\n progress: 100,\r\n ...(finalMessage != null && { message: finalMessage }),\r\n variant: \"success\",\r\n });\r\n // Schedule auto-dismiss after a brief pause so the user sees\r\n // the filled bar + final message before the toast disappears.\r\n clearTimeout(timers.current[id]);\r\n timers.current[id] = setTimeout(\r\n () => dismiss(id, false),\r\n PROGRESS_DONE_DISMISS_DELAY_MS\r\n );\r\n },\r\n };\r\n };\r\n\r\n return Object.assign(base, { undo, action, dismiss: dismissApi, progress });\r\n }, [push, dismiss, patch, mergedLabels]);\r\n\r\n // D6 (Batch 14) — Symmetric ref cleanup on unmount.\r\n React.useEffect(() => () => {\r\n Object.values(timers.current).forEach(clearTimeout);\r\n timers.current = {};\r\n triggersRef.current = {};\r\n }, []);\r\n\r\n const polite = toasts.filter((t) => t.variant !== \"error\");\r\n const assertive = toasts.filter((t) => t.variant === \"error\");\r\n\r\n return (\r\n <ToastContext.Provider value={api}>\r\n <ToastLabelsContext.Provider value={mergedLabels}>\r\n {children}\r\n {/* role=\"region\" promotes the wrapper from generic to a\r\n landmark so:\r\n (a) the aria-label is valid (ARIA 1.2 prohibits\r\n aria-label on generic elements — axe-core 4.11\r\n rule `aria-prohibited-attr`);\r\n (b) the portal joins the page's landmark structure\r\n and is reachable via SR landmark-only navigation\r\n (axe-core rule `region`).\r\n The inner status/alert regions keep their own\r\n live-region semantics. */}\r\n <div className=\"pui-toast-host\" role=\"region\" aria-label=\"Notifications\">\r\n <div role=\"status\" aria-live=\"polite\" aria-relevant=\"additions text\" aria-atomic=\"false\">\r\n {polite.map((t) => <ToastItem key={t.id} toast={t} onDismiss={dismiss} />)}\r\n </div>\r\n <div role=\"alert\" aria-live=\"assertive\" aria-relevant=\"additions text\" aria-atomic=\"false\">\r\n {assertive.map((t) => <ToastItem key={t.id} toast={t} onDismiss={dismiss} />)}\r\n </div>\r\n </div>\r\n </ToastLabelsContext.Provider>\r\n </ToastContext.Provider>\r\n );\r\n}\r\n\r\nexport default ToastProvider;\r\n"],"mappings":"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","ignoreList":[]}
|