@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
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
6
|
+
exports.default = void 0;
|
|
7
7
|
var React = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _Dialog = _interopRequireDefault(require("@mui/material/Dialog"));
|
|
9
9
|
var _DialogTitle = _interopRequireDefault(require("@mui/material/DialogTitle"));
|
|
@@ -17,15 +17,9 @@ var _styles = require("@mui/material/styles");
|
|
|
17
17
|
var _tokens = require("../tokens");
|
|
18
18
|
var _useFocusTrap = _interopRequireDefault(require("../hooks/useFocusTrap"));
|
|
19
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
|
-
function _interopRequireDefault(
|
|
21
|
-
function
|
|
22
|
-
|
|
23
|
-
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); }
|
|
24
|
-
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; }
|
|
25
|
-
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; }
|
|
26
|
-
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; }
|
|
27
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
28
|
-
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); } /**
|
|
20
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
|
+
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); }
|
|
22
|
+
/**
|
|
29
23
|
* Modal - Portnet UI v2
|
|
30
24
|
*
|
|
31
25
|
* Charter §03 · Component "Modal · Dialog".
|
|
@@ -81,14 +75,15 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
81
75
|
* (a leftover from MUI's 1100..1500 scale before the v2 remap to
|
|
82
76
|
* 0..250); that buried those in-modal popups (at 100) behind the modal
|
|
83
77
|
* and pushed the modal above toasts/tooltips.
|
|
84
|
-
*/
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
/* ── Hoisted static sx (D5) ────────────────────────────────────────────
|
|
85
81
|
* Frozen at module load. Same emotion / allocation rationale as Tabs +
|
|
86
82
|
* DataGrid hoisting. The paper slotProps cannot be fully hoisted because
|
|
87
83
|
* it embeds the dynamic `maxWidth` (size-driven) and the `ref` (per
|
|
88
84
|
* Modal instance) — its static base is hoisted and the dynamic
|
|
89
85
|
* additions are layered via useMemo at the call site.
|
|
90
|
-
*/
|
|
91
|
-
var DIALOG_ROOT_SX = Object.freeze({
|
|
86
|
+
*/const DIALOG_ROOT_SX = Object.freeze({
|
|
92
87
|
// v2 z-index token (zIndex.js). modal:100 sits ABOVE drawer:80 (so a
|
|
93
88
|
// Modal opened from inside a Drawer stacks correctly) and BELOW
|
|
94
89
|
// snackbar:150 / toast:200 / tooltip:250. In-modal MUI popups
|
|
@@ -103,14 +98,14 @@ var DIALOG_ROOT_SX = Object.freeze({
|
|
|
103
98
|
// at the Dialog top-level in v5/v6/v7, removed in v9). The content
|
|
104
99
|
// `{ sx: {...} }` is unchanged — the backdrop slot receives the same
|
|
105
100
|
// shape.
|
|
106
|
-
|
|
101
|
+
const BACKDROP_SLOT_PROPS = Object.freeze({
|
|
107
102
|
// R-AI.1 - backdrop derived from the live --fg token instead of hard
|
|
108
103
|
// rgba(15,21,37,...). Adapts to any future theme override.
|
|
109
104
|
sx: {
|
|
110
105
|
backgroundColor: "color-mix(in srgb, var(--fg) 45%, transparent)"
|
|
111
106
|
}
|
|
112
107
|
});
|
|
113
|
-
|
|
108
|
+
const PAPER_BASE_SX = Object.freeze({
|
|
114
109
|
width: "100%",
|
|
115
110
|
borderRadius: "var(--r-lg)",
|
|
116
111
|
boxShadow: "var(--shadow-lg)"
|
|
@@ -121,103 +116,100 @@ var PAPER_BASE_SX = Object.freeze({
|
|
|
121
116
|
* paper fill the viewport. maxWidth is forced to 100% so the size-driven
|
|
122
117
|
* token max-width can't re-clamp it. Kept as a frozen module constant so
|
|
123
118
|
* the reference is stable across renders. */
|
|
124
|
-
|
|
119
|
+
const PAPER_FULLSCREEN_SX = Object.freeze({
|
|
125
120
|
width: "100%",
|
|
126
121
|
maxWidth: "100%",
|
|
127
122
|
borderRadius: 0,
|
|
128
123
|
boxShadow: "none"
|
|
129
124
|
});
|
|
130
|
-
|
|
125
|
+
const DIALOG_TITLE_SX = Object.freeze({
|
|
131
126
|
padding: "var(--s-4) var(--s-5) var(--s-2)",
|
|
132
127
|
display: "flex",
|
|
133
128
|
alignItems: "flex-start",
|
|
134
129
|
justifyContent: "space-between",
|
|
135
130
|
gap: "var(--s-2)"
|
|
136
131
|
});
|
|
137
|
-
|
|
132
|
+
const TITLE_TYPOGRAPHY_SX = Object.freeze({
|
|
138
133
|
fontSize: "var(--text-h3)",
|
|
139
134
|
fontWeight: "var(--fw-bold)",
|
|
140
135
|
color: "var(--fg)"
|
|
141
136
|
});
|
|
142
|
-
|
|
137
|
+
const SUBTITLE_TYPOGRAPHY_SX = Object.freeze({
|
|
143
138
|
fontSize: "var(--text-sm)",
|
|
144
139
|
color: "var(--fg-muted)",
|
|
145
140
|
marginTop: "var(--s-1)"
|
|
146
141
|
});
|
|
147
|
-
|
|
142
|
+
const CLOSE_ICON_BUTTON_SX = Object.freeze({
|
|
148
143
|
color: "var(--fg-subtle)",
|
|
149
144
|
marginRight: "calc(-1 * var(--s-1))",
|
|
150
145
|
marginTop: "calc(-1 * var(--s-1))"
|
|
151
146
|
});
|
|
152
|
-
|
|
147
|
+
const DIALOG_CONTENT_SX = Object.freeze({
|
|
153
148
|
padding: "var(--s-4) var(--s-5)",
|
|
154
149
|
borderColor: "var(--border)"
|
|
155
150
|
});
|
|
156
|
-
|
|
151
|
+
const DIALOG_ACTIONS_SX = Object.freeze({
|
|
157
152
|
padding: "var(--s-3) var(--s-5) var(--s-4)",
|
|
158
153
|
gap: "var(--s-2)"
|
|
159
154
|
});
|
|
160
|
-
function Modal(
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
fullScreenOnMobile = _ref$fullScreenOnMobi === void 0 ? true : _ref$fullScreenOnMobi,
|
|
175
|
-
ariaLabel = _ref.ariaLabel,
|
|
176
|
-
_ref$ariaLabelClose = _ref.ariaLabelClose,
|
|
177
|
-
ariaLabelClose = _ref$ariaLabelClose === void 0 ? "Fermer la boîte de dialogue" : _ref$ariaLabelClose;
|
|
155
|
+
function Modal({
|
|
156
|
+
open,
|
|
157
|
+
onClose,
|
|
158
|
+
title,
|
|
159
|
+
subtitle,
|
|
160
|
+
children,
|
|
161
|
+
footer,
|
|
162
|
+
size = "md",
|
|
163
|
+
disableBackdropClick = false,
|
|
164
|
+
disableEscape = false,
|
|
165
|
+
fullScreenOnMobile = true,
|
|
166
|
+
ariaLabel,
|
|
167
|
+
ariaLabelClose = "Fermer la boîte de dialogue"
|
|
168
|
+
}) {
|
|
178
169
|
// R-Ar.5 - stable, per-instance, collision-safe ID for aria-labelledby.
|
|
179
|
-
|
|
170
|
+
const titleId = React.useId();
|
|
180
171
|
|
|
181
172
|
// R-F.2 / R-M.2 - the v2 trap is wired on the Dialog Paper element,
|
|
182
173
|
// activated only while the modal is open. MUI's own trap is disabled
|
|
183
174
|
// via the disable*Focus props on Dialog below so the two implementations
|
|
184
175
|
// don't compete for the same DOM event stream.
|
|
185
|
-
|
|
186
|
-
(0, _useFocusTrap
|
|
176
|
+
const paperRef = React.useRef(null);
|
|
177
|
+
(0, _useFocusTrap.default)(paperRef, !!open);
|
|
187
178
|
|
|
188
179
|
// R-RS.2 — full-screen below the `sm` breakpoint TOKEN (< 481px now
|
|
189
180
|
// that tokens are wired into the theme). Reads the live theme so a host
|
|
190
181
|
// breakpoint override is honoured. Gated behind fullScreenOnMobile so a
|
|
191
182
|
// caller can keep a small confirm dialog centred on phones.
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
183
|
+
const theme = (0, _styles.useTheme)();
|
|
184
|
+
const isMobile = (0, _useMediaQuery.default)(theme.breakpoints.down("sm"));
|
|
185
|
+
const fullScreen = fullScreenOnMobile && isMobile;
|
|
186
|
+
const handleClose = (_e, reason) => {
|
|
196
187
|
if (reason === "backdropClick" && disableBackdropClick) return;
|
|
197
188
|
if (reason === "escapeKeyDown" && disableEscape) return;
|
|
198
|
-
onClose
|
|
189
|
+
onClose?.();
|
|
199
190
|
};
|
|
200
191
|
|
|
201
192
|
// R-AI.1 - modal sizing is owned by the token system (layout.modal),
|
|
202
193
|
// not duplicated here. See src/lib/v2/tokens/density.js.
|
|
203
|
-
|
|
194
|
+
const maxWidth = _tokens.layout.modal[size] || _tokens.layout.modal.md;
|
|
204
195
|
|
|
205
196
|
// MUI v9: paper slot is forwarded through slotProps.paper. The slot
|
|
206
197
|
// cannot be fully hoisted — embeds the dynamic maxWidth (size-driven)
|
|
207
198
|
// and the per-instance ref. Memo on [maxWidth, fullScreen] so the
|
|
208
199
|
// reference is stable until either the size or the mobile branch flips.
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
|
|
200
|
+
const slotProps = React.useMemo(() => ({
|
|
201
|
+
paper: {
|
|
202
|
+
ref: paperRef,
|
|
203
|
+
sx: fullScreen ? {
|
|
204
|
+
...PAPER_FULLSCREEN_SX
|
|
205
|
+
} : {
|
|
206
|
+
...PAPER_BASE_SX,
|
|
207
|
+
maxWidth
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
backdrop: BACKDROP_SLOT_PROPS
|
|
211
|
+
}), [maxWidth, fullScreen]);
|
|
212
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Dialog.default, {
|
|
221
213
|
open: !!open,
|
|
222
214
|
onClose: handleClose,
|
|
223
215
|
role: "dialog",
|
|
@@ -245,37 +237,37 @@ function Modal(_ref) {
|
|
|
245
237
|
,
|
|
246
238
|
sx: DIALOG_ROOT_SX,
|
|
247
239
|
slotProps: slotProps,
|
|
248
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_DialogTitle
|
|
240
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_DialogTitle.default, {
|
|
249
241
|
sx: DIALOG_TITLE_SX,
|
|
250
242
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
251
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography
|
|
243
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
252
244
|
id: titleId,
|
|
253
245
|
variant: "h3",
|
|
254
246
|
component: "h2",
|
|
255
247
|
sx: TITLE_TYPOGRAPHY_SX,
|
|
256
248
|
children: title
|
|
257
|
-
}), subtitle && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography
|
|
249
|
+
}), subtitle && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
258
250
|
sx: SUBTITLE_TYPOGRAPHY_SX,
|
|
259
251
|
children: subtitle
|
|
260
252
|
})]
|
|
261
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton
|
|
253
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
262
254
|
"aria-label": ariaLabelClose,
|
|
263
255
|
onClick: onClose,
|
|
264
256
|
size: "small",
|
|
265
257
|
sx: CLOSE_ICON_BUTTON_SX,
|
|
266
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Close
|
|
258
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Close.default, {
|
|
267
259
|
fontSize: "small"
|
|
268
260
|
})
|
|
269
261
|
})]
|
|
270
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogContent
|
|
262
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogContent.default, {
|
|
271
263
|
dividers: !!footer,
|
|
272
264
|
sx: DIALOG_CONTENT_SX,
|
|
273
265
|
children: children
|
|
274
|
-
}), footer && /*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogActions
|
|
266
|
+
}), footer && /*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogActions.default, {
|
|
275
267
|
sx: DIALOG_ACTIONS_SX,
|
|
276
268
|
children: footer
|
|
277
269
|
})]
|
|
278
270
|
});
|
|
279
271
|
}
|
|
280
|
-
var _default = exports
|
|
272
|
+
var _default = exports.default = Modal;
|
|
281
273
|
//# sourceMappingURL=Modal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","names":["React","_interopRequireWildcard","require","_Dialog","_interopRequireDefault","_DialogTitle","_DialogContent","_DialogActions","_IconButton","_Close","_Typography","_useMediaQuery","_styles","_tokens","_useFocusTrap","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","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","toPrimitive","undefined","res","TypeError","Number","DIALOG_ROOT_SX","freeze","zIndex","modal","BACKDROP_SLOT_PROPS","sx","backgroundColor","PAPER_BASE_SX","width","borderRadius","boxShadow","PAPER_FULLSCREEN_SX","maxWidth","DIALOG_TITLE_SX","padding","display","alignItems","justifyContent","gap","TITLE_TYPOGRAPHY_SX","fontSize","fontWeight","color","SUBTITLE_TYPOGRAPHY_SX","marginTop","CLOSE_ICON_BUTTON_SX","marginRight","DIALOG_CONTENT_SX","borderColor","DIALOG_ACTIONS_SX","Modal","_ref","open","onClose","title","subtitle","children","footer","_ref$size","size","_ref$disableBackdropC","disableBackdropClick","_ref$disableEscape","disableEscape","_ref$fullScreenOnMobi","fullScreenOnMobile","ariaLabel","_ref$ariaLabelClose","ariaLabelClose","titleId","useId","paperRef","useRef","useFocusTrap","theme","useTheme","isMobile","useMediaQuery","breakpoints","down","fullScreen","handleClose","_e","reason","layout","md","slotProps","useMemo","paper","ref","backdrop","jsxs","role","disableAutoFocus","disableEnforceFocus","disableRestoreFocus","jsx","id","variant","component","onClick","dividers","_default","exports"],"sources":["../../../src/lib/v2/components/Modal.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Dialog from \"@mui/material/Dialog\";\r\nimport DialogTitle from \"@mui/material/DialogTitle\";\r\nimport DialogContent from \"@mui/material/DialogContent\";\r\nimport DialogActions from \"@mui/material/DialogActions\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport Typography from \"@mui/material/Typography\";\r\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\r\nimport { useTheme } from \"@mui/material/styles\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { layout, zIndex } from \"../tokens\";\r\nimport useFocusTrap from \"../hooks/useFocusTrap\";\r\n\r\n/**\r\n * Modal - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Modal · Dialog\".\r\n *\r\n * R-M.1 - Closable via Esc + backdrop click + explicit X button.\r\n * R-M.2 - Focus trap when open, focus restored to trigger on close.\r\n * Backed by the v2 useFocusTrap hook (Batch 3) - honours\r\n * [autofocus] and [data-autofocus] markers, coordinates\r\n * with nested traps via a module-level trapStack, and\r\n * filters disabled/hidden/inert subtrees.\r\n * R-M.3 - role=\"dialog\" + aria-modal=\"true\" + aria-labelledby.\r\n * R-M.4 - No modal inside modal - use stepper flow.\r\n * R-M.5 - Use Drawer (not Modal) for ≥ 3 fields or long scroll.\r\n * R-M.6 - Action principale à droite, secondaire à gauche.\r\n * R-RS.2 - Below the `sm` breakpoint token (< 481px) the dialog goes\r\n * FULL-SCREEN by default. A md/lg/xl modal centred with its\r\n * token max-width left only a thin sliver of usable width at\r\n * 320–375px; full-screen restores a usable reading column and\r\n * keeps the footer actions reachable (WCAG 1.4.10 Reflow).\r\n * Opt out with fullScreenOnMobile={false} for genuinely tiny\r\n * confirm dialogs that read better centred.\r\n *\r\n * <Modal open={open} onClose={close} title=\"Confirmation\" size=\"sm\"\r\n * footer={<><Button variant=\"ghost\" onClick={close}>Annuler</Button>\r\n * <Button variant=\"primary\">OK</Button></>}>\r\n * Body content here.\r\n * </Modal>\r\n *\r\n * Accessible name (R-Ar.5 / R-M.3):\r\n * `aria-labelledby` points at the title <Typography> (id=titleId), so the\r\n * dialog's accessible name is the title text ONLY — the close button and\r\n * subtitle are not part of it. When no `title` is provided, pass `ariaLabel`\r\n * to name the dialog; otherwise it would have no accessible name.\r\n *\r\n * Initial focus targeting (R-Ar.4):\r\n * By default the FIRST focusable element of the dialog gets focus on\r\n * open. To opt a specific control in (e.g. the destructive \"Delete\"\r\n * button which intentionally is NOT first), mark it with either:\r\n * - React's <button autoFocus> attribute (standard), or\r\n * - <button data-autofocus> (v2 marker, identical effect).\r\n * Both are matched by useFocusTrap's AUTOFOCUS_SELECTORS.\r\n *\r\n * Stacking:\r\n * The modal's portal layer uses the v2 `zIndex.modal` token (100), so\r\n * it stacks ABOVE a Drawer (zIndex.drawer:80) when opened from inside\r\n * one (e.g. a ReferentielField search launched from the filters Drawer)\r\n * and BELOW snackbar:150 / toast:200 / tooltip:250 so notifications and\r\n * tooltips fired from a modal action stay on top. MUI popups rendered\r\n * inside the modal — Combobox/Autocomplete listboxes and X date-picker\r\n * calendars — also render at theme.zIndex.modal (100) and, opening\r\n * after the dialog, paint above it by DOM order (MUI's own\r\n * Dialog+Autocomplete contract). A previous build hardcoded 1350 here\r\n * (a leftover from MUI's 1100..1500 scale before the v2 remap to\r\n * 0..250); that buried those in-modal popups (at 100) behind the modal\r\n * and pushed the modal above toasts/tooltips.\r\n */\r\n\r\n/* ── Hoisted static sx (D5) ────────────────────────────────────────────\r\n * Frozen at module load. Same emotion / allocation rationale as Tabs +\r\n * DataGrid hoisting. The paper slotProps cannot be fully hoisted because\r\n * it embeds the dynamic `maxWidth` (size-driven) and the `ref` (per\r\n * Modal instance) — its static base is hoisted and the dynamic\r\n * additions are layered via useMemo at the call site.\r\n */\r\n\r\nconst DIALOG_ROOT_SX = Object.freeze({\r\n // v2 z-index token (zIndex.js). modal:100 sits ABOVE drawer:80 (so a\r\n // Modal opened from inside a Drawer stacks correctly) and BELOW\r\n // snackbar:150 / toast:200 / tooltip:250. In-modal MUI popups\r\n // (Combobox listboxes, X date-picker calendars) also use\r\n // theme.zIndex.modal and paint above the dialog by DOM order. The\r\n // previous hardcoded 1350 predated the v2 remap of MUI's 1100..1500\r\n // scale down to 0..250.\r\n zIndex: zIndex.modal,\r\n});\r\n\r\n// MUI v9: backdrop forwarded via slotProps.backdrop (was BackdropProps\r\n// at the Dialog top-level in v5/v6/v7, removed in v9). The content\r\n// `{ sx: {...} }` is unchanged — the backdrop slot receives the same\r\n// shape.\r\nconst BACKDROP_SLOT_PROPS = Object.freeze({\r\n // R-AI.1 - backdrop derived from the live --fg token instead of hard\r\n // rgba(15,21,37,...). Adapts to any future theme override.\r\n sx: { backgroundColor: \"color-mix(in srgb, var(--fg) 45%, transparent)\" },\r\n});\r\n\r\nconst PAPER_BASE_SX = Object.freeze({\r\n width: \"100%\",\r\n borderRadius: \"var(--r-lg)\",\r\n boxShadow: \"var(--shadow-lg)\",\r\n});\r\n\r\n/* R-RS.2 — full-screen paper sx for the mobile (< sm token) branch.\r\n * Drops the rounded corners + shadow (no longer floating) and lets the\r\n * paper fill the viewport. maxWidth is forced to 100% so the size-driven\r\n * token max-width can't re-clamp it. Kept as a frozen module constant so\r\n * the reference is stable across renders. */\r\nconst PAPER_FULLSCREEN_SX = Object.freeze({\r\n width: \"100%\",\r\n maxWidth: \"100%\",\r\n borderRadius: 0,\r\n boxShadow: \"none\",\r\n});\r\n\r\nconst DIALOG_TITLE_SX = Object.freeze({\r\n padding: \"var(--s-4) var(--s-5) var(--s-2)\",\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TITLE_TYPOGRAPHY_SX = Object.freeze({\r\n fontSize: \"var(--text-h3)\",\r\n fontWeight: \"var(--fw-bold)\",\r\n color: \"var(--fg)\",\r\n});\r\n\r\nconst SUBTITLE_TYPOGRAPHY_SX = Object.freeze({\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg-muted)\",\r\n marginTop: \"var(--s-1)\",\r\n});\r\n\r\nconst CLOSE_ICON_BUTTON_SX = Object.freeze({\r\n color: \"var(--fg-subtle)\",\r\n marginRight: \"calc(-1 * var(--s-1))\",\r\n marginTop: \"calc(-1 * var(--s-1))\",\r\n});\r\n\r\nconst DIALOG_CONTENT_SX = Object.freeze({\r\n padding: \"var(--s-4) var(--s-5)\",\r\n borderColor: \"var(--border)\",\r\n});\r\n\r\nconst DIALOG_ACTIONS_SX = Object.freeze({\r\n padding: \"var(--s-3) var(--s-5) var(--s-4)\",\r\n gap: \"var(--s-2)\",\r\n});\r\n\r\nexport type ModalSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\r\n\r\nexport interface ModalProps {\r\n open?: boolean | undefined;\r\n onClose?: (() => void) | undefined;\r\n title?: React.ReactNode | undefined;\r\n subtitle?: React.ReactNode | undefined;\r\n children?: React.ReactNode | undefined;\r\n footer?: React.ReactNode | undefined;\r\n size?: ModalSize | undefined;\r\n disableBackdropClick?: boolean | undefined;\r\n disableEscape?: boolean | undefined;\r\n /** R-RS.2 — go full-screen below the `sm` token (< 481px). Default true. */\r\n fullScreenOnMobile?: boolean | undefined;\r\n /** Accessible name for the dialog when no `title` is rendered (R-M.3). */\r\n ariaLabel?: string | undefined;\r\n ariaLabelClose?: string | undefined;\r\n}\r\n\r\nfunction Modal({\r\n open,\r\n onClose,\r\n title,\r\n subtitle,\r\n children,\r\n footer,\r\n size = \"md\",\r\n disableBackdropClick = false,\r\n disableEscape = false,\r\n fullScreenOnMobile = true,\r\n ariaLabel,\r\n ariaLabelClose = \"Fermer la boîte de dialogue\",\r\n}: ModalProps) {\r\n // R-Ar.5 - stable, per-instance, collision-safe ID for aria-labelledby.\r\n const titleId = React.useId();\r\n\r\n // R-F.2 / R-M.2 - the v2 trap is wired on the Dialog Paper element,\r\n // activated only while the modal is open. MUI's own trap is disabled\r\n // via the disable*Focus props on Dialog below so the two implementations\r\n // don't compete for the same DOM event stream.\r\n const paperRef = React.useRef<HTMLDivElement>(null);\r\n useFocusTrap(paperRef, !!open);\r\n\r\n // R-RS.2 — full-screen below the `sm` breakpoint TOKEN (< 481px now\r\n // that tokens are wired into the theme). Reads the live theme so a host\r\n // breakpoint override is honoured. Gated behind fullScreenOnMobile so a\r\n // caller can keep a small confirm dialog centred on phones.\r\n const theme = useTheme();\r\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\r\n const fullScreen = fullScreenOnMobile && isMobile;\r\n\r\n const handleClose = (_e: unknown, reason: \"backdropClick\" | \"escapeKeyDown\") => {\r\n if (reason === \"backdropClick\" && disableBackdropClick) return;\r\n if (reason === \"escapeKeyDown\" && disableEscape) return;\r\n onClose?.();\r\n };\r\n\r\n // R-AI.1 - modal sizing is owned by the token system (layout.modal),\r\n // not duplicated here. See src/lib/v2/tokens/density.js.\r\n const maxWidth = layout.modal[size] || layout.modal.md;\r\n\r\n // MUI v9: paper slot is forwarded through slotProps.paper. The slot\r\n // cannot be fully hoisted — embeds the dynamic maxWidth (size-driven)\r\n // and the per-instance ref. Memo on [maxWidth, fullScreen] so the\r\n // reference is stable until either the size or the mobile branch flips.\r\n const slotProps = React.useMemo(\r\n () => ({\r\n paper: {\r\n ref: paperRef,\r\n sx: fullScreen\r\n ? { ...PAPER_FULLSCREEN_SX }\r\n : { ...PAPER_BASE_SX, maxWidth },\r\n },\r\n backdrop: BACKDROP_SLOT_PROPS,\r\n }),\r\n [maxWidth, fullScreen]\r\n );\r\n\r\n return (\r\n <Dialog\r\n open={!!open}\r\n onClose={handleClose}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n // Name = title text only (id is on the title Typography). Falls back\r\n // to ariaLabel when the dialog has no title.\r\n aria-labelledby={title != null ? titleId : undefined}\r\n aria-label={title == null ? ariaLabel : undefined}\r\n maxWidth={false}\r\n // R-RS.2 — hand the full-screen decision to MUI's own prop so it\r\n // applies the correct fullscreen paper geometry (100vw/100vh,\r\n // no margin); our PAPER_FULLSCREEN_SX only relaxes radius/shadow.\r\n fullScreen={fullScreen}\r\n // Hand over focus management to useFocusTrap above. Dialog still\r\n // owns the Portal, Backdrop, scroll lock, transitions, and Esc\r\n // wiring - just not the focus trap itself.\r\n disableAutoFocus\r\n disableEnforceFocus\r\n disableRestoreFocus\r\n // Root sx anchors the portal at the v2 zIndex.modal token — above\r\n // the Drawer, below snackbar/toast/tooltip. See DIALOG_ROOT_SX.\r\n sx={DIALOG_ROOT_SX}\r\n slotProps={slotProps}\r\n >\r\n <DialogTitle sx={DIALOG_TITLE_SX}>\r\n <div>\r\n <Typography id={titleId} variant=\"h3\" component=\"h2\" sx={TITLE_TYPOGRAPHY_SX}>\r\n {title}\r\n </Typography>\r\n {subtitle && (\r\n <Typography sx={SUBTITLE_TYPOGRAPHY_SX}>\r\n {subtitle}\r\n </Typography>\r\n )}\r\n </div>\r\n <IconButton\r\n aria-label={ariaLabelClose}\r\n onClick={onClose}\r\n size=\"small\"\r\n sx={CLOSE_ICON_BUTTON_SX}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </DialogTitle>\r\n\r\n <DialogContent dividers={!!footer} sx={DIALOG_CONTENT_SX}>\r\n {children}\r\n </DialogContent>\r\n\r\n {footer && (\r\n <DialogActions sx={DIALOG_ACTIONS_SX}>\r\n {footer}\r\n </DialogActions>\r\n )}\r\n </Dialog>\r\n );\r\n}\r\n\r\nexport default Modal;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Modal.js","names":["React","_interopRequireWildcard","require","_Dialog","_interopRequireDefault","_DialogTitle","_DialogContent","_DialogActions","_IconButton","_Close","_Typography","_useMediaQuery","_styles","_tokens","_useFocusTrap","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DIALOG_ROOT_SX","freeze","zIndex","modal","BACKDROP_SLOT_PROPS","sx","backgroundColor","PAPER_BASE_SX","width","borderRadius","boxShadow","PAPER_FULLSCREEN_SX","maxWidth","DIALOG_TITLE_SX","padding","display","alignItems","justifyContent","gap","TITLE_TYPOGRAPHY_SX","fontSize","fontWeight","color","SUBTITLE_TYPOGRAPHY_SX","marginTop","CLOSE_ICON_BUTTON_SX","marginRight","DIALOG_CONTENT_SX","borderColor","DIALOG_ACTIONS_SX","Modal","open","onClose","title","subtitle","children","footer","size","disableBackdropClick","disableEscape","fullScreenOnMobile","ariaLabel","ariaLabelClose","titleId","useId","paperRef","useRef","useFocusTrap","theme","useTheme","isMobile","useMediaQuery","breakpoints","down","fullScreen","handleClose","_e","reason","layout","md","slotProps","useMemo","paper","ref","backdrop","jsxs","role","undefined","disableAutoFocus","disableEnforceFocus","disableRestoreFocus","jsx","id","variant","component","onClick","dividers","_default","exports"],"sources":["../../../src/lib/v2/components/Modal.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Dialog from \"@mui/material/Dialog\";\r\nimport DialogTitle from \"@mui/material/DialogTitle\";\r\nimport DialogContent from \"@mui/material/DialogContent\";\r\nimport DialogActions from \"@mui/material/DialogActions\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport Typography from \"@mui/material/Typography\";\r\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\r\nimport { useTheme } from \"@mui/material/styles\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { layout, zIndex } from \"../tokens\";\r\nimport useFocusTrap from \"../hooks/useFocusTrap\";\r\n\r\n/**\r\n * Modal - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Modal · Dialog\".\r\n *\r\n * R-M.1 - Closable via Esc + backdrop click + explicit X button.\r\n * R-M.2 - Focus trap when open, focus restored to trigger on close.\r\n * Backed by the v2 useFocusTrap hook (Batch 3) - honours\r\n * [autofocus] and [data-autofocus] markers, coordinates\r\n * with nested traps via a module-level trapStack, and\r\n * filters disabled/hidden/inert subtrees.\r\n * R-M.3 - role=\"dialog\" + aria-modal=\"true\" + aria-labelledby.\r\n * R-M.4 - No modal inside modal - use stepper flow.\r\n * R-M.5 - Use Drawer (not Modal) for ≥ 3 fields or long scroll.\r\n * R-M.6 - Action principale à droite, secondaire à gauche.\r\n * R-RS.2 - Below the `sm` breakpoint token (< 481px) the dialog goes\r\n * FULL-SCREEN by default. A md/lg/xl modal centred with its\r\n * token max-width left only a thin sliver of usable width at\r\n * 320–375px; full-screen restores a usable reading column and\r\n * keeps the footer actions reachable (WCAG 1.4.10 Reflow).\r\n * Opt out with fullScreenOnMobile={false} for genuinely tiny\r\n * confirm dialogs that read better centred.\r\n *\r\n * <Modal open={open} onClose={close} title=\"Confirmation\" size=\"sm\"\r\n * footer={<><Button variant=\"ghost\" onClick={close}>Annuler</Button>\r\n * <Button variant=\"primary\">OK</Button></>}>\r\n * Body content here.\r\n * </Modal>\r\n *\r\n * Accessible name (R-Ar.5 / R-M.3):\r\n * `aria-labelledby` points at the title <Typography> (id=titleId), so the\r\n * dialog's accessible name is the title text ONLY — the close button and\r\n * subtitle are not part of it. When no `title` is provided, pass `ariaLabel`\r\n * to name the dialog; otherwise it would have no accessible name.\r\n *\r\n * Initial focus targeting (R-Ar.4):\r\n * By default the FIRST focusable element of the dialog gets focus on\r\n * open. To opt a specific control in (e.g. the destructive \"Delete\"\r\n * button which intentionally is NOT first), mark it with either:\r\n * - React's <button autoFocus> attribute (standard), or\r\n * - <button data-autofocus> (v2 marker, identical effect).\r\n * Both are matched by useFocusTrap's AUTOFOCUS_SELECTORS.\r\n *\r\n * Stacking:\r\n * The modal's portal layer uses the v2 `zIndex.modal` token (100), so\r\n * it stacks ABOVE a Drawer (zIndex.drawer:80) when opened from inside\r\n * one (e.g. a ReferentielField search launched from the filters Drawer)\r\n * and BELOW snackbar:150 / toast:200 / tooltip:250 so notifications and\r\n * tooltips fired from a modal action stay on top. MUI popups rendered\r\n * inside the modal — Combobox/Autocomplete listboxes and X date-picker\r\n * calendars — also render at theme.zIndex.modal (100) and, opening\r\n * after the dialog, paint above it by DOM order (MUI's own\r\n * Dialog+Autocomplete contract). A previous build hardcoded 1350 here\r\n * (a leftover from MUI's 1100..1500 scale before the v2 remap to\r\n * 0..250); that buried those in-modal popups (at 100) behind the modal\r\n * and pushed the modal above toasts/tooltips.\r\n */\r\n\r\n/* ── Hoisted static sx (D5) ────────────────────────────────────────────\r\n * Frozen at module load. Same emotion / allocation rationale as Tabs +\r\n * DataGrid hoisting. The paper slotProps cannot be fully hoisted because\r\n * it embeds the dynamic `maxWidth` (size-driven) and the `ref` (per\r\n * Modal instance) — its static base is hoisted and the dynamic\r\n * additions are layered via useMemo at the call site.\r\n */\r\n\r\nconst DIALOG_ROOT_SX = Object.freeze({\r\n // v2 z-index token (zIndex.js). modal:100 sits ABOVE drawer:80 (so a\r\n // Modal opened from inside a Drawer stacks correctly) and BELOW\r\n // snackbar:150 / toast:200 / tooltip:250. In-modal MUI popups\r\n // (Combobox listboxes, X date-picker calendars) also use\r\n // theme.zIndex.modal and paint above the dialog by DOM order. The\r\n // previous hardcoded 1350 predated the v2 remap of MUI's 1100..1500\r\n // scale down to 0..250.\r\n zIndex: zIndex.modal,\r\n});\r\n\r\n// MUI v9: backdrop forwarded via slotProps.backdrop (was BackdropProps\r\n// at the Dialog top-level in v5/v6/v7, removed in v9). The content\r\n// `{ sx: {...} }` is unchanged — the backdrop slot receives the same\r\n// shape.\r\nconst BACKDROP_SLOT_PROPS = Object.freeze({\r\n // R-AI.1 - backdrop derived from the live --fg token instead of hard\r\n // rgba(15,21,37,...). Adapts to any future theme override.\r\n sx: { backgroundColor: \"color-mix(in srgb, var(--fg) 45%, transparent)\" },\r\n});\r\n\r\nconst PAPER_BASE_SX = Object.freeze({\r\n width: \"100%\",\r\n borderRadius: \"var(--r-lg)\",\r\n boxShadow: \"var(--shadow-lg)\",\r\n});\r\n\r\n/* R-RS.2 — full-screen paper sx for the mobile (< sm token) branch.\r\n * Drops the rounded corners + shadow (no longer floating) and lets the\r\n * paper fill the viewport. maxWidth is forced to 100% so the size-driven\r\n * token max-width can't re-clamp it. Kept as a frozen module constant so\r\n * the reference is stable across renders. */\r\nconst PAPER_FULLSCREEN_SX = Object.freeze({\r\n width: \"100%\",\r\n maxWidth: \"100%\",\r\n borderRadius: 0,\r\n boxShadow: \"none\",\r\n});\r\n\r\nconst DIALOG_TITLE_SX = Object.freeze({\r\n padding: \"var(--s-4) var(--s-5) var(--s-2)\",\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TITLE_TYPOGRAPHY_SX = Object.freeze({\r\n fontSize: \"var(--text-h3)\",\r\n fontWeight: \"var(--fw-bold)\",\r\n color: \"var(--fg)\",\r\n});\r\n\r\nconst SUBTITLE_TYPOGRAPHY_SX = Object.freeze({\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg-muted)\",\r\n marginTop: \"var(--s-1)\",\r\n});\r\n\r\nconst CLOSE_ICON_BUTTON_SX = Object.freeze({\r\n color: \"var(--fg-subtle)\",\r\n marginRight: \"calc(-1 * var(--s-1))\",\r\n marginTop: \"calc(-1 * var(--s-1))\",\r\n});\r\n\r\nconst DIALOG_CONTENT_SX = Object.freeze({\r\n padding: \"var(--s-4) var(--s-5)\",\r\n borderColor: \"var(--border)\",\r\n});\r\n\r\nconst DIALOG_ACTIONS_SX = Object.freeze({\r\n padding: \"var(--s-3) var(--s-5) var(--s-4)\",\r\n gap: \"var(--s-2)\",\r\n});\r\n\r\nexport type ModalSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\r\n\r\nexport interface ModalProps {\r\n open?: boolean | undefined;\r\n onClose?: (() => void) | undefined;\r\n title?: React.ReactNode | undefined;\r\n subtitle?: React.ReactNode | undefined;\r\n children?: React.ReactNode | undefined;\r\n footer?: React.ReactNode | undefined;\r\n size?: ModalSize | undefined;\r\n disableBackdropClick?: boolean | undefined;\r\n disableEscape?: boolean | undefined;\r\n /** R-RS.2 — go full-screen below the `sm` token (< 481px). Default true. */\r\n fullScreenOnMobile?: boolean | undefined;\r\n /** Accessible name for the dialog when no `title` is rendered (R-M.3). */\r\n ariaLabel?: string | undefined;\r\n ariaLabelClose?: string | undefined;\r\n}\r\n\r\nfunction Modal({\r\n open,\r\n onClose,\r\n title,\r\n subtitle,\r\n children,\r\n footer,\r\n size = \"md\",\r\n disableBackdropClick = false,\r\n disableEscape = false,\r\n fullScreenOnMobile = true,\r\n ariaLabel,\r\n ariaLabelClose = \"Fermer la boîte de dialogue\",\r\n}: ModalProps) {\r\n // R-Ar.5 - stable, per-instance, collision-safe ID for aria-labelledby.\r\n const titleId = React.useId();\r\n\r\n // R-F.2 / R-M.2 - the v2 trap is wired on the Dialog Paper element,\r\n // activated only while the modal is open. MUI's own trap is disabled\r\n // via the disable*Focus props on Dialog below so the two implementations\r\n // don't compete for the same DOM event stream.\r\n const paperRef = React.useRef<HTMLDivElement>(null);\r\n useFocusTrap(paperRef, !!open);\r\n\r\n // R-RS.2 — full-screen below the `sm` breakpoint TOKEN (< 481px now\r\n // that tokens are wired into the theme). Reads the live theme so a host\r\n // breakpoint override is honoured. Gated behind fullScreenOnMobile so a\r\n // caller can keep a small confirm dialog centred on phones.\r\n const theme = useTheme();\r\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\r\n const fullScreen = fullScreenOnMobile && isMobile;\r\n\r\n const handleClose = (_e: unknown, reason: \"backdropClick\" | \"escapeKeyDown\") => {\r\n if (reason === \"backdropClick\" && disableBackdropClick) return;\r\n if (reason === \"escapeKeyDown\" && disableEscape) return;\r\n onClose?.();\r\n };\r\n\r\n // R-AI.1 - modal sizing is owned by the token system (layout.modal),\r\n // not duplicated here. See src/lib/v2/tokens/density.js.\r\n const maxWidth = layout.modal[size] || layout.modal.md;\r\n\r\n // MUI v9: paper slot is forwarded through slotProps.paper. The slot\r\n // cannot be fully hoisted — embeds the dynamic maxWidth (size-driven)\r\n // and the per-instance ref. Memo on [maxWidth, fullScreen] so the\r\n // reference is stable until either the size or the mobile branch flips.\r\n const slotProps = React.useMemo(\r\n () => ({\r\n paper: {\r\n ref: paperRef,\r\n sx: fullScreen\r\n ? { ...PAPER_FULLSCREEN_SX }\r\n : { ...PAPER_BASE_SX, maxWidth },\r\n },\r\n backdrop: BACKDROP_SLOT_PROPS,\r\n }),\r\n [maxWidth, fullScreen]\r\n );\r\n\r\n return (\r\n <Dialog\r\n open={!!open}\r\n onClose={handleClose}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n // Name = title text only (id is on the title Typography). Falls back\r\n // to ariaLabel when the dialog has no title.\r\n aria-labelledby={title != null ? titleId : undefined}\r\n aria-label={title == null ? ariaLabel : undefined}\r\n maxWidth={false}\r\n // R-RS.2 — hand the full-screen decision to MUI's own prop so it\r\n // applies the correct fullscreen paper geometry (100vw/100vh,\r\n // no margin); our PAPER_FULLSCREEN_SX only relaxes radius/shadow.\r\n fullScreen={fullScreen}\r\n // Hand over focus management to useFocusTrap above. Dialog still\r\n // owns the Portal, Backdrop, scroll lock, transitions, and Esc\r\n // wiring - just not the focus trap itself.\r\n disableAutoFocus\r\n disableEnforceFocus\r\n disableRestoreFocus\r\n // Root sx anchors the portal at the v2 zIndex.modal token — above\r\n // the Drawer, below snackbar/toast/tooltip. See DIALOG_ROOT_SX.\r\n sx={DIALOG_ROOT_SX}\r\n slotProps={slotProps}\r\n >\r\n <DialogTitle sx={DIALOG_TITLE_SX}>\r\n <div>\r\n <Typography id={titleId} variant=\"h3\" component=\"h2\" sx={TITLE_TYPOGRAPHY_SX}>\r\n {title}\r\n </Typography>\r\n {subtitle && (\r\n <Typography sx={SUBTITLE_TYPOGRAPHY_SX}>\r\n {subtitle}\r\n </Typography>\r\n )}\r\n </div>\r\n <IconButton\r\n aria-label={ariaLabelClose}\r\n onClick={onClose}\r\n size=\"small\"\r\n sx={CLOSE_ICON_BUTTON_SX}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </DialogTitle>\r\n\r\n <DialogContent dividers={!!footer} sx={DIALOG_CONTENT_SX}>\r\n {children}\r\n </DialogContent>\r\n\r\n {footer && (\r\n <DialogActions sx={DIALOG_ACTIONS_SX}>\r\n {footer}\r\n </DialogActions>\r\n )}\r\n </Dialog>\r\n );\r\n}\r\n\r\nexport default Modal;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
export interface NetworkErrorPageLabels {
|
|
2
|
+
/** First breadcrumb crumb. */
|
|
3
|
+
breadcrumbRoot?: string | undefined;
|
|
4
|
+
/** Last breadcrumb crumb — aria-current="page". */
|
|
5
|
+
breadcrumbCurrent?: string | undefined;
|
|
6
|
+
/** ActionBar heading (the page's <h1>). */
|
|
7
|
+
title?: string | undefined;
|
|
8
|
+
/** Descriptive sentence under the code ornament (the <h2>). */
|
|
9
|
+
heading?: string | undefined;
|
|
10
|
+
/** Body paragraph — what to check, and that the service may be down. */
|
|
11
|
+
description?: string | undefined;
|
|
12
|
+
/** Secondary retry label — only rendered when onRetry is supplied. */
|
|
13
|
+
retry?: string | undefined;
|
|
14
|
+
/** Primary CTA label. */
|
|
15
|
+
home?: string | undefined;
|
|
16
|
+
}
|
|
1
17
|
export interface NetworkErrorPageProps {
|
|
2
18
|
/** Callback for the back button (top-bar arrow). */
|
|
3
19
|
onBack: () => void;
|
|
@@ -5,7 +21,9 @@ export interface NetworkErrorPageProps {
|
|
|
5
21
|
onHome: () => void;
|
|
6
22
|
/** Optional retry callback. When omitted, the Réessayer button is hidden. */
|
|
7
23
|
onRetry?: (() => void) | undefined;
|
|
24
|
+
/** Overrides for the page's French defaults (P-4). */
|
|
25
|
+
labels?: NetworkErrorPageLabels | undefined;
|
|
8
26
|
}
|
|
9
|
-
declare function NetworkErrorPage({ onBack, onHome, onRetry }: NetworkErrorPageProps): import("react").JSX.Element;
|
|
27
|
+
declare function NetworkErrorPage({ onBack, onHome, onRetry, labels }: NetworkErrorPageProps): import("react").JSX.Element;
|
|
10
28
|
export default NetworkErrorPage;
|
|
11
29
|
//# sourceMappingURL=NetworkErrorPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkErrorPage.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/NetworkErrorPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NetworkErrorPage.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/NetworkErrorPage.tsx"],"names":[],"mappings":"AA0CA,MAAM,WAAW,sBAAsB;IACrC,8BAA8B;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAaD,MAAM,WAAW,qBAAqB;IACpC,oDAAoD;IACpD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,yDAAyD;IACzD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,sDAAsD;IACtD,MAAM,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;CAC7C;AAED,iBAAS,gBAAgB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,qBAAqB,+BAmCnF;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -3,22 +3,23 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
6
|
+
exports.default = void 0;
|
|
7
7
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
8
8
|
var _ArrowBack = _interopRequireDefault(require("@mui/icons-material/ArrowBack"));
|
|
9
9
|
var _WifiOff = _interopRequireDefault(require("@mui/icons-material/WifiOff"));
|
|
10
10
|
var _ActionBar = _interopRequireDefault(require("../patterns/ActionBar"));
|
|
11
11
|
var _Button = _interopRequireDefault(require("./Button"));
|
|
12
12
|
var _ErrorPageBody = _interopRequireDefault(require("./_ErrorPageBody"));
|
|
13
|
+
var _mergeLabels = require("../utils/mergeLabels");
|
|
13
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
-
function _interopRequireDefault(
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
16
|
/**
|
|
16
17
|
* NetworkErrorPage — Portnet UI v2 (component)
|
|
17
18
|
*
|
|
18
19
|
* Charter §07 · Connexion perdue.
|
|
19
20
|
*
|
|
20
21
|
* Same contract as ServerErrorPage: router-agnostic with required
|
|
21
|
-
* onBack + onHome and an optional onRetry. The code
|
|
22
|
+
* onBack + onHome and an optional onRetry. The code ornament reads
|
|
22
23
|
* "—" since there is no HTTP status to surface.
|
|
23
24
|
*
|
|
24
25
|
* import { NetworkErrorPage } from "@portnet/ui/lib/v2";
|
|
@@ -35,6 +36,10 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
|
|
|
35
36
|
* );
|
|
36
37
|
* }
|
|
37
38
|
*
|
|
39
|
+
* Localisation (P-4): every visible string is overridable through
|
|
40
|
+
* `labels`, defaulting to French. The shape matches the other three
|
|
41
|
+
* error pages so one translation object can serve all of them.
|
|
42
|
+
*
|
|
38
43
|
* NB: for TRANSIENT connection drops during normal navigation, the
|
|
39
44
|
* v2.NetworkErrorBanner (top of the page, with inline Retry CTA)
|
|
40
45
|
* is the charter-preferred pattern — Charter R-A.3 explicitly
|
|
@@ -43,44 +48,56 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
|
|
|
43
48
|
* This page is for the explicit /network-error route only.
|
|
44
49
|
*/
|
|
45
50
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
51
|
+
const DEFAULT_LABELS = Object.freeze({
|
|
52
|
+
breadcrumbRoot: "Erreur",
|
|
53
|
+
breadcrumbCurrent: "Connexion perdue",
|
|
54
|
+
title: "Connexion perdue",
|
|
55
|
+
heading: "Aucune connexion au serveur",
|
|
56
|
+
description: "Vérifiez votre connexion réseau, puis réessayez. Si vous êtes connecté, le service est peut-être momentanément interrompu.",
|
|
57
|
+
retry: "Réessayer",
|
|
58
|
+
home: "Retour à l'accueil"
|
|
59
|
+
});
|
|
60
|
+
function NetworkErrorPage({
|
|
61
|
+
onBack,
|
|
62
|
+
onHome,
|
|
63
|
+
onRetry,
|
|
64
|
+
labels
|
|
65
|
+
}) {
|
|
66
|
+
const L = (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, labels);
|
|
50
67
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
51
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ActionBar
|
|
68
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ActionBar.default, {
|
|
52
69
|
back: onBack,
|
|
53
|
-
breadcrumb: [
|
|
54
|
-
title:
|
|
55
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ErrorPageBody
|
|
56
|
-
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_WifiOff
|
|
70
|
+
breadcrumb: [L.breadcrumbRoot, L.breadcrumbCurrent],
|
|
71
|
+
title: L.title
|
|
72
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ErrorPageBody.default, {
|
|
73
|
+
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_WifiOff.default, {
|
|
57
74
|
sx: {
|
|
58
75
|
fontSize: 64,
|
|
59
76
|
color: "var(--warning)"
|
|
60
77
|
}
|
|
61
78
|
}),
|
|
62
79
|
code: "\u2014",
|
|
63
|
-
title:
|
|
64
|
-
description:
|
|
65
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box
|
|
80
|
+
title: L.heading,
|
|
81
|
+
description: L.description
|
|
82
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
66
83
|
sx: {
|
|
67
84
|
display: "flex",
|
|
68
85
|
justifyContent: "center",
|
|
69
86
|
gap: "var(--s-3)",
|
|
70
87
|
paddingBottom: "var(--s-7)"
|
|
71
88
|
},
|
|
72
|
-
children: [onRetry ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button
|
|
89
|
+
children: [onRetry ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
73
90
|
variant: "ghost",
|
|
74
91
|
onClick: onRetry,
|
|
75
|
-
children:
|
|
76
|
-
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button
|
|
92
|
+
children: L.retry
|
|
93
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
77
94
|
variant: "primary",
|
|
78
|
-
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ArrowBack
|
|
95
|
+
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ArrowBack.default, {}),
|
|
79
96
|
onClick: onHome,
|
|
80
|
-
children:
|
|
97
|
+
children: L.home
|
|
81
98
|
})]
|
|
82
99
|
})]
|
|
83
100
|
});
|
|
84
101
|
}
|
|
85
|
-
var _default = exports
|
|
102
|
+
var _default = exports.default = NetworkErrorPage;
|
|
86
103
|
//# sourceMappingURL=NetworkErrorPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkErrorPage.js","names":["_Box","_interopRequireDefault","require","_ArrowBack","_WifiOff","_ActionBar","_Button","_ErrorPageBody","_jsxRuntime","
|
|
1
|
+
{"version":3,"file":"NetworkErrorPage.js","names":["_Box","_interopRequireDefault","require","_ArrowBack","_WifiOff","_ActionBar","_Button","_ErrorPageBody","_mergeLabels","_jsxRuntime","e","__esModule","default","DEFAULT_LABELS","Object","freeze","breadcrumbRoot","breadcrumbCurrent","title","heading","description","retry","home","NetworkErrorPage","onBack","onHome","onRetry","labels","L","mergeLabels","jsxs","Fragment","children","jsx","back","breadcrumb","icon","sx","fontSize","color","code","display","justifyContent","gap","paddingBottom","variant","onClick","_default","exports"],"sources":["../../../src/lib/v2/components/NetworkErrorPage.tsx"],"sourcesContent":["/**\r\n * NetworkErrorPage — Portnet UI v2 (component)\r\n *\r\n * Charter §07 · Connexion perdue.\r\n *\r\n * Same contract as ServerErrorPage: router-agnostic with required\r\n * onBack + onHome and an optional onRetry. The code ornament reads\r\n * \"—\" since there is no HTTP status to surface.\r\n *\r\n * import { NetworkErrorPage } from \"@portnet/ui/lib/v2\";\r\n * import { useNavigate } from \"react-router-dom\";\r\n *\r\n * function NetworkErrorRoute() {\r\n * const navigate = useNavigate();\r\n * return (\r\n * <NetworkErrorPage\r\n * onBack={() => navigate(-1)}\r\n * onHome={() => navigate(\"/\")}\r\n * onRetry={() => window.location.reload()}\r\n * />\r\n * );\r\n * }\r\n *\r\n * Localisation (P-4): every visible string is overridable through\r\n * `labels`, defaulting to French. The shape matches the other three\r\n * error pages so one translation object can serve all of them.\r\n *\r\n * NB: for TRANSIENT connection drops during normal navigation, the\r\n * v2.NetworkErrorBanner (top of the page, with inline Retry CTA)\r\n * is the charter-preferred pattern — Charter R-A.3 explicitly\r\n * forbids forced navigation to a full error page on transient\r\n * network failure, since it destroys the user's current context.\r\n * This page is for the explicit /network-error route only.\r\n */\r\nimport Box from \"@mui/material/Box\";\r\nimport ArrowBack from \"@mui/icons-material/ArrowBack\";\r\nimport WifiOff from \"@mui/icons-material/WifiOff\";\r\nimport ActionBar from \"../patterns/ActionBar\";\r\nimport Button from \"./Button\";\r\nimport ErrorPageBody from \"./_ErrorPageBody\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\nexport interface NetworkErrorPageLabels {\r\n /** First breadcrumb crumb. */\r\n breadcrumbRoot?: string | undefined;\r\n /** Last breadcrumb crumb — aria-current=\"page\". */\r\n breadcrumbCurrent?: string | undefined;\r\n /** ActionBar heading (the page's <h1>). */\r\n title?: string | undefined;\r\n /** Descriptive sentence under the code ornament (the <h2>). */\r\n heading?: string | undefined;\r\n /** Body paragraph — what to check, and that the service may be down. */\r\n description?: string | undefined;\r\n /** Secondary retry label — only rendered when onRetry is supplied. */\r\n retry?: string | undefined;\r\n /** Primary CTA label. */\r\n home?: string | undefined;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n breadcrumbRoot: \"Erreur\",\r\n breadcrumbCurrent: \"Connexion perdue\",\r\n title: \"Connexion perdue\",\r\n heading: \"Aucune connexion au serveur\",\r\n description:\r\n \"Vérifiez votre connexion réseau, puis réessayez. Si vous êtes connecté, le service est peut-être momentanément interrompu.\",\r\n retry: \"Réessayer\",\r\n home: \"Retour à l'accueil\",\r\n});\r\n\r\nexport interface NetworkErrorPageProps {\r\n /** Callback for the back button (top-bar arrow). */\r\n onBack: () => void;\r\n /** Callback for the primary \"Retour à l'accueil\" CTA. */\r\n onHome: () => void;\r\n /** Optional retry callback. When omitted, the Réessayer button is hidden. */\r\n onRetry?: (() => void) | undefined;\r\n /** Overrides for the page's French defaults (P-4). */\r\n labels?: NetworkErrorPageLabels | undefined;\r\n}\r\n\r\nfunction NetworkErrorPage({ onBack, onHome, onRetry, labels }: NetworkErrorPageProps) {\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n\r\n return (\r\n <>\r\n <ActionBar\r\n back={onBack}\r\n breadcrumb={[L.breadcrumbRoot, L.breadcrumbCurrent]}\r\n title={L.title}\r\n />\r\n <ErrorPageBody\r\n icon={<WifiOff sx={{ fontSize: 64, color: \"var(--warning)\" }} />}\r\n code=\"—\"\r\n title={L.heading}\r\n description={L.description}\r\n />\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n gap: \"var(--s-3)\",\r\n paddingBottom: \"var(--s-7)\",\r\n }}\r\n >\r\n {onRetry ? (\r\n <Button variant=\"ghost\" onClick={onRetry}>\r\n {L.retry}\r\n </Button>\r\n ) : null}\r\n <Button variant=\"primary\" icon={<ArrowBack />} onClick={onHome}>\r\n {L.home}\r\n </Button>\r\n </Box>\r\n </>\r\n );\r\n}\r\n\r\nexport default NetworkErrorPage;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,9 +1,25 @@
|
|
|
1
|
+
export interface NotFoundPageLabels {
|
|
2
|
+
/** First breadcrumb crumb. */
|
|
3
|
+
breadcrumbRoot?: string | undefined;
|
|
4
|
+
/** Last breadcrumb crumb — aria-current="page". */
|
|
5
|
+
breadcrumbCurrent?: string | undefined;
|
|
6
|
+
/** ActionBar heading (the page's <h1>). */
|
|
7
|
+
title?: string | undefined;
|
|
8
|
+
/** Descriptive sentence under the code ornament (the <h2>). */
|
|
9
|
+
heading?: string | undefined;
|
|
10
|
+
/** Body paragraph — names the likely causes and the one action. */
|
|
11
|
+
description?: string | undefined;
|
|
12
|
+
/** Primary CTA label. */
|
|
13
|
+
home?: string | undefined;
|
|
14
|
+
}
|
|
1
15
|
export interface NotFoundPageProps {
|
|
2
16
|
/** Callback for the back button (top-bar arrow). */
|
|
3
17
|
onBack: () => void;
|
|
4
18
|
/** Callback for the primary "Retour à l'accueil" CTA. */
|
|
5
19
|
onHome: () => void;
|
|
20
|
+
/** Overrides for the page's French defaults (P-4). */
|
|
21
|
+
labels?: NotFoundPageLabels | undefined;
|
|
6
22
|
}
|
|
7
|
-
declare function NotFoundPage({ onBack, onHome }: NotFoundPageProps): import("react").JSX.Element;
|
|
23
|
+
declare function NotFoundPage({ onBack, onHome, labels }: NotFoundPageProps): import("react").JSX.Element;
|
|
8
24
|
export default NotFoundPage;
|
|
9
25
|
//# sourceMappingURL=NotFoundPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotFoundPage.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/NotFoundPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NotFoundPage.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/NotFoundPage.tsx"],"names":[],"mappings":"AA+BA,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAYD,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,yDAAyD;IACzD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,sDAAsD;IACtD,MAAM,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACzC;AAED,iBAAS,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,iBAAiB,+BAuBlE;AAED,eAAe,YAAY,CAAC"}
|