@portnet/ui 6.0.2 → 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 +652 -0
- package/dist/esm/index.js +72 -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 -38
- 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 +11 -11
- package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FileCard.test.js +18 -17
- package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js +87 -179
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +32 -44
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
- 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 +118 -199
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
- package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -42
- 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 -21
- 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 +81 -86
- 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 +155 -59
- 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 +37 -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 +2 -3
- 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 +15 -17
- 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 +29 -39
- package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -1
- 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 -69
- package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDatePicker.js +44 -58
- package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDateTimePicker.js +44 -58
- package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -1
- 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 -53
- package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
- package/dist/esm/v2/patterns/FormikRadioGroup.js +39 -51
- package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -1
- 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 -87
- package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/esm/v2/patterns/FormikTextarea.js +30 -46
- package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +53 -71
- 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 +27 -22
- package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -1
- 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 +6 -8
- package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -1
- 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 +152 -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 +28 -34
- package/dist/esm/v2/personalization/capabilities/gridPreferences.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 +17 -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 +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +110 -49
- 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 +82 -49
- 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 +23 -25
- package/dist/v2/__tests__/FieldWidth.test.js.map +1 -1
- package/dist/v2/__tests__/FileCard.test.js +29 -28
- package/dist/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/v2/__tests__/FormikCheckbox.test.js +90 -183
- package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -1
- package/dist/v2/__tests__/FormikDateTimePicker.test.js +38 -48
- package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
- 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 +123 -204
- package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
- package/dist/v2/__tests__/MobileRowCard.test.js +63 -61
- 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 +23 -27
- 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.js +84 -91
- 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 +62 -4
- package/dist/v2/components/Field.d.ts.map +1 -1
- package/dist/v2/components/Field.js +169 -70
- 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 +40 -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.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.js +22 -23
- 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.js +36 -45
- package/dist/v2/patterns/FormikCheckbox.js.map +1 -1
- 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.js +55 -72
- package/dist/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.js +50 -64
- package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/v2/patterns/FormikDateTimePicker.js +50 -64
- package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -1
- 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.js +45 -58
- package/dist/v2/patterns/FormikInput.js.map +1 -1
- package/dist/v2/patterns/FormikRadioGroup.js +45 -56
- package/dist/v2/patterns/FormikRadioGroup.js.map +1 -1
- 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.js +70 -92
- package/dist/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/v2/patterns/FormikTextarea.js +35 -51
- package/dist/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.js +60 -80
- 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 +6 -0
- package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -1
- package/dist/v2/patterns/RowFavoriteToggle.js +38 -30
- package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -1
- 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.js +9 -10
- package/dist/v2/patterns/_pickerSerialisation.js.map +1 -1
- 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 +160 -0
- package/dist/v2/patterns/index.d.ts.map +1 -1
- package/dist/v2/patterns/index.js +157 -79
- 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.js +31 -36
- package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -1
- package/dist/v2/personalization/capabilities/index.js +12 -12
- 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 +16 -0
- package/dist/v2/personalization/index.d.ts.map +1 -1
- package/dist/v2/personalization/index.js +30 -23
- 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
|
@@ -23,6 +23,10 @@
|
|
|
23
23
|
* />
|
|
24
24
|
* );
|
|
25
25
|
* }
|
|
26
|
+
*
|
|
27
|
+
* Localisation (P-4): every visible string is overridable through
|
|
28
|
+
* `labels`, defaulting to French. The shape matches the other three
|
|
29
|
+
* error pages so one translation object can serve all of them.
|
|
26
30
|
*/
|
|
27
31
|
import Box from "@mui/material/Box";
|
|
28
32
|
import ArrowBack from "@mui/icons-material/ArrowBack";
|
|
@@ -30,16 +34,29 @@ import ErrorOutline from "@mui/icons-material/ErrorOutlined";
|
|
|
30
34
|
import ActionBar from "../patterns/ActionBar";
|
|
31
35
|
import Button from "./Button";
|
|
32
36
|
import ErrorPageBody from "./_ErrorPageBody";
|
|
37
|
+
import { mergeLabels } from "../utils/mergeLabels";
|
|
33
38
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
const DEFAULT_LABELS = Object.freeze({
|
|
40
|
+
breadcrumbRoot: "Erreur",
|
|
41
|
+
breadcrumbCurrent: "Erreur serveur",
|
|
42
|
+
title: "Erreur serveur",
|
|
43
|
+
heading: "Le serveur a rencontré une erreur",
|
|
44
|
+
description: "Le service est momentanément indisponible. Réessayez dans quelques instants. Si le problème persiste, contactez le support en mentionnant le code 500.",
|
|
45
|
+
retry: "Réessayer",
|
|
46
|
+
home: "Retour à l'accueil"
|
|
47
|
+
});
|
|
48
|
+
function ServerErrorPage({
|
|
49
|
+
onBack,
|
|
50
|
+
onHome,
|
|
51
|
+
onRetry,
|
|
52
|
+
labels
|
|
53
|
+
}) {
|
|
54
|
+
const L = mergeLabels(DEFAULT_LABELS, labels);
|
|
38
55
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
39
56
|
children: [/*#__PURE__*/_jsx(ActionBar, {
|
|
40
57
|
back: onBack,
|
|
41
|
-
breadcrumb: [
|
|
42
|
-
title:
|
|
58
|
+
breadcrumb: [L.breadcrumbRoot, L.breadcrumbCurrent],
|
|
59
|
+
title: L.title
|
|
43
60
|
}), /*#__PURE__*/_jsx(ErrorPageBody, {
|
|
44
61
|
icon: /*#__PURE__*/_jsx(ErrorOutline, {
|
|
45
62
|
sx: {
|
|
@@ -48,8 +65,8 @@ function ServerErrorPage(_ref) {
|
|
|
48
65
|
}
|
|
49
66
|
}),
|
|
50
67
|
code: "500",
|
|
51
|
-
title:
|
|
52
|
-
description:
|
|
68
|
+
title: L.heading,
|
|
69
|
+
description: L.description
|
|
53
70
|
}), /*#__PURE__*/_jsxs(Box, {
|
|
54
71
|
sx: {
|
|
55
72
|
display: "flex",
|
|
@@ -60,12 +77,12 @@ function ServerErrorPage(_ref) {
|
|
|
60
77
|
children: [onRetry ? /*#__PURE__*/_jsx(Button, {
|
|
61
78
|
variant: "ghost",
|
|
62
79
|
onClick: onRetry,
|
|
63
|
-
children:
|
|
80
|
+
children: L.retry
|
|
64
81
|
}) : null, /*#__PURE__*/_jsx(Button, {
|
|
65
82
|
variant: "primary",
|
|
66
83
|
icon: /*#__PURE__*/_jsx(ArrowBack, {}),
|
|
67
84
|
onClick: onHome,
|
|
68
|
-
children:
|
|
85
|
+
children: L.home
|
|
69
86
|
})]
|
|
70
87
|
})]
|
|
71
88
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerErrorPage.js","names":["Box","ArrowBack","ErrorOutline","ActionBar","Button","ErrorPageBody","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","
|
|
1
|
+
{"version":3,"file":"ServerErrorPage.js","names":["Box","ArrowBack","ErrorOutline","ActionBar","Button","ErrorPageBody","mergeLabels","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_LABELS","Object","freeze","breadcrumbRoot","breadcrumbCurrent","title","heading","description","retry","home","ServerErrorPage","onBack","onHome","onRetry","labels","L","children","back","breadcrumb","icon","sx","fontSize","color","code","display","justifyContent","gap","paddingBottom","variant","onClick"],"sources":["../../../../src/lib/v2/components/ServerErrorPage.tsx"],"sourcesContent":["/**\r\n * ServerErrorPage — Portnet UI v2 (component)\r\n *\r\n * Charter §07 · 500 / Erreur serveur.\r\n *\r\n * Adds an optional onRetry callback on top of the ForbiddenPage /\r\n * NotFoundPage contract. The retry button is only rendered when\r\n * onRetry is supplied — the lib deliberately avoids defaulting it\r\n * to window.location.reload() because that policy belongs to the\r\n * host (some hosts may prefer cache-clear, axios retry, backoff,\r\n * or a route-level revalidation).\r\n *\r\n * import { ServerErrorPage } from \"@portnet/ui/lib/v2\";\r\n * import { useNavigate } from \"react-router-dom\";\r\n *\r\n * function ServerErrorRoute() {\r\n * const navigate = useNavigate();\r\n * return (\r\n * <ServerErrorPage\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\nimport Box from \"@mui/material/Box\";\r\nimport ArrowBack from \"@mui/icons-material/ArrowBack\";\r\nimport ErrorOutline from \"@mui/icons-material/ErrorOutlined\";\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 ServerErrorPageLabels {\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 /**\r\n * Body paragraph.\r\n *\r\n * KEEP THE STATUS CODE IN THE TEXT when translating. The big \"500\"\r\n * ornament is aria-hidden (B4-EXT-1 — it used to be an <h1> that\r\n * collided with ActionBar's), so this sentence is the only access a\r\n * screen-reader user has to the number they would quote to support.\r\n * It reads as redundant next to the ornament and is not.\r\n */\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: \"Erreur serveur\",\r\n title: \"Erreur serveur\",\r\n heading: \"Le serveur a rencontré une erreur\",\r\n description:\r\n \"Le service est momentanément indisponible. Réessayez dans quelques instants. Si le problème persiste, contactez le support en mentionnant le code 500.\",\r\n retry: \"Réessayer\",\r\n home: \"Retour à l'accueil\",\r\n});\r\n\r\nexport interface ServerErrorPageProps {\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?: ServerErrorPageLabels | undefined;\r\n}\r\n\r\nfunction ServerErrorPage({ onBack, onHome, onRetry, labels }: ServerErrorPageProps) {\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={<ErrorOutline sx={{ fontSize: 64, color: \"var(--danger)\" }} />}\r\n code=\"500\"\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 ServerErrorPage;\r\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,GAAG,MAAM,mBAAmB;AACnC,OAAOC,SAAS,MAAM,+BAA+B;AACrD,OAAOC,YAAY,MAAM,mCAAmC;AAC5D,OAAOC,SAAS,MAAM,uBAAuB;AAC7C,OAAOC,MAAM,MAAM,UAAU;AAC7B,OAAOC,aAAa,MAAM,kBAAkB;AAC5C,SAASC,WAAW,QAAQ,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AA2BnD,MAAMC,cAAc,GAAGC,MAAM,CAACC,MAAM,CAAC;EACnCC,cAAc,EAAK,QAAQ;EAC3BC,iBAAiB,EAAE,gBAAgB;EACnCC,KAAK,EAAc,gBAAgB;EACnCC,OAAO,EAAY,mCAAmC;EACtDC,WAAW,EACT,wJAAwJ;EAC1JC,KAAK,EAAc,WAAW;EAC9BC,IAAI,EAAe;AACrB,CAAC,CAAC;AAaF,SAASC,eAAeA,CAAC;EAAEC,MAAM;EAAEC,MAAM;EAAEC,OAAO;EAAEC;AAA6B,CAAC,EAAE;EAClF,MAAMC,CAAC,GAAGtB,WAAW,CAACO,cAAc,EAAEc,MAAM,CAAC;EAE7C,oBACEjB,KAAA,CAAAE,SAAA;IAAAiB,QAAA,gBACErB,IAAA,CAACL,SAAS;MACR2B,IAAI,EAAEN,MAAO;MACbO,UAAU,EAAE,CAACH,CAAC,CAACZ,cAAc,EAAEY,CAAC,CAACX,iBAAiB,CAAE;MACpDC,KAAK,EAAEU,CAAC,CAACV;IAAM,CAChB,CAAC,eACFV,IAAA,CAACH,aAAa;MACZ2B,IAAI,eAAExB,IAAA,CAACN,YAAY;QAAC+B,EAAE,EAAE;UAAEC,QAAQ,EAAE,EAAE;UAAEC,KAAK,EAAE;QAAgB;MAAE,CAAE,CAAE;MACrEC,IAAI,EAAC,KAAK;MACVlB,KAAK,EAAEU,CAAC,CAACT,OAAQ;MACjBC,WAAW,EAAEQ,CAAC,CAACR;IAAY,CAC5B,CAAC,eACFV,KAAA,CAACV,GAAG;MACFiC,EAAE,EAAE;QACFI,OAAO,EAAS,MAAM;QACtBC,cAAc,EAAE,QAAQ;QACxBC,GAAG,EAAa,YAAY;QAC5BC,aAAa,EAAG;MAClB,CAAE;MAAAX,QAAA,GAEDH,OAAO,gBACNlB,IAAA,CAACJ,MAAM;QAACqC,OAAO,EAAC,OAAO;QAACC,OAAO,EAAEhB,OAAQ;QAAAG,QAAA,EACtCD,CAAC,CAACP;MAAK,CACF,CAAC,GACP,IAAI,eACRb,IAAA,CAACJ,MAAM;QAACqC,OAAO,EAAC,SAAS;QAACT,IAAI,eAAExB,IAAA,CAACP,SAAS,IAAE,CAAE;QAACyC,OAAO,EAAEjB,MAAO;QAAAI,QAAA,EAC5DD,CAAC,CAACN;MAAI,CACD,CAAC;IAAA,CACN,CAAC;EAAA,CACN,CAAC;AAEP;AAEA,eAAeC,eAAe","ignoreList":[]}
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
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); }
|
|
2
|
-
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; }
|
|
3
|
-
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; }
|
|
4
|
-
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; }
|
|
5
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
-
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); }
|
|
7
1
|
import * as React from "react";
|
|
8
2
|
import { cx } from "../utils/cx";
|
|
9
3
|
|
|
@@ -32,23 +26,22 @@ import { cx } from "../utils/cx";
|
|
|
32
26
|
* are aria-hidden placeholders that don't carry localisable strings.
|
|
33
27
|
*/
|
|
34
28
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
35
|
-
export function Skeleton(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
style = _ref.style,
|
|
43
|
-
className = _ref.className;
|
|
29
|
+
export function Skeleton({
|
|
30
|
+
width = "100%",
|
|
31
|
+
height = 14,
|
|
32
|
+
radius = 6,
|
|
33
|
+
style,
|
|
34
|
+
className
|
|
35
|
+
}) {
|
|
44
36
|
return /*#__PURE__*/_jsx("span", {
|
|
45
37
|
className: cx("pui-skeleton", className),
|
|
46
|
-
style:
|
|
38
|
+
style: {
|
|
47
39
|
display: "block",
|
|
48
|
-
width
|
|
49
|
-
height
|
|
50
|
-
borderRadius: radius
|
|
51
|
-
|
|
40
|
+
width,
|
|
41
|
+
height,
|
|
42
|
+
borderRadius: radius,
|
|
43
|
+
...style
|
|
44
|
+
},
|
|
52
45
|
"aria-hidden": "true"
|
|
53
46
|
});
|
|
54
47
|
}
|
|
@@ -79,14 +72,12 @@ export function SkeletonKPI() {
|
|
|
79
72
|
})]
|
|
80
73
|
});
|
|
81
74
|
}
|
|
82
|
-
export function SkeletonRow(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
withActions = _ref2$withActions === void 0 ? true : _ref2$withActions;
|
|
89
|
-
var widths = ["28%", "16%", "9%", "12%", "14%", "20%", "12%", "10%"];
|
|
75
|
+
export function SkeletonRow({
|
|
76
|
+
cols = 8,
|
|
77
|
+
withCheckbox = true,
|
|
78
|
+
withActions = true
|
|
79
|
+
}) {
|
|
80
|
+
const widths = ["28%", "16%", "9%", "12%", "14%", "20%", "12%", "10%"];
|
|
90
81
|
return /*#__PURE__*/_jsxs("tr", {
|
|
91
82
|
"aria-hidden": "true",
|
|
92
83
|
style: {
|
|
@@ -103,17 +94,18 @@ export function SkeletonRow(_ref2) {
|
|
|
103
94
|
})
|
|
104
95
|
}), Array.from({
|
|
105
96
|
length: cols
|
|
106
|
-
},
|
|
107
|
-
|
|
97
|
+
}, (_, i) => {
|
|
98
|
+
const w = widths[i % widths.length];
|
|
108
99
|
return /*#__PURE__*/_jsx("td", {
|
|
109
100
|
style: {
|
|
110
101
|
padding: "var(--s-3) var(--s-4)"
|
|
111
102
|
},
|
|
112
|
-
children: /*#__PURE__*/_jsx(Skeleton,
|
|
113
|
-
height: 13
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
103
|
+
children: /*#__PURE__*/_jsx(Skeleton, {
|
|
104
|
+
height: 13,
|
|
105
|
+
...(w !== undefined ? {
|
|
106
|
+
width: w
|
|
107
|
+
} : {})
|
|
108
|
+
})
|
|
117
109
|
}, i);
|
|
118
110
|
}), withActions && /*#__PURE__*/_jsx("td", {})]
|
|
119
111
|
});
|
|
@@ -147,31 +139,28 @@ export function SkeletonDetailHero() {
|
|
|
147
139
|
paddingTop: "var(--s-4)",
|
|
148
140
|
borderTop: "1px solid var(--border)"
|
|
149
141
|
},
|
|
150
|
-
children: [1, 2, 3].map(
|
|
151
|
-
|
|
142
|
+
children: [1, 2, 3].map(i => /*#__PURE__*/_jsxs("div", {
|
|
143
|
+
style: {
|
|
144
|
+
flex: 1
|
|
145
|
+
},
|
|
146
|
+
children: [/*#__PURE__*/_jsx(Skeleton, {
|
|
147
|
+
width: "60%",
|
|
148
|
+
height: 10,
|
|
152
149
|
style: {
|
|
153
|
-
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}
|
|
161
|
-
}), /*#__PURE__*/_jsx(Skeleton, {
|
|
162
|
-
width: "80%",
|
|
163
|
-
height: 16
|
|
164
|
-
})]
|
|
165
|
-
}, i);
|
|
166
|
-
})
|
|
150
|
+
marginBottom: "var(--s-2)"
|
|
151
|
+
}
|
|
152
|
+
}), /*#__PURE__*/_jsx(Skeleton, {
|
|
153
|
+
width: "80%",
|
|
154
|
+
height: 16
|
|
155
|
+
})]
|
|
156
|
+
}, i))
|
|
167
157
|
})]
|
|
168
158
|
});
|
|
169
159
|
}
|
|
170
|
-
export function SkeletonTabContent(
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
loadingLabel = _ref3$loadingLabel === void 0 ? "Chargement du contenu…" : _ref3$loadingLabel;
|
|
160
|
+
export function SkeletonTabContent({
|
|
161
|
+
rows = 4,
|
|
162
|
+
loadingLabel = "Chargement du contenu…"
|
|
163
|
+
}) {
|
|
175
164
|
return /*#__PURE__*/_jsxs("div", {
|
|
176
165
|
"aria-busy": "true",
|
|
177
166
|
"aria-label": loadingLabel,
|
|
@@ -189,25 +178,23 @@ export function SkeletonTabContent(_ref3) {
|
|
|
189
178
|
}
|
|
190
179
|
}), Array.from({
|
|
191
180
|
length: rows
|
|
192
|
-
},
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
}, i);
|
|
210
|
-
})]
|
|
181
|
+
}, (_, i) => /*#__PURE__*/_jsxs("div", {
|
|
182
|
+
style: {
|
|
183
|
+
display: "flex",
|
|
184
|
+
gap: "var(--s-3)",
|
|
185
|
+
alignItems: "center"
|
|
186
|
+
},
|
|
187
|
+
children: [/*#__PURE__*/_jsx(Skeleton, {
|
|
188
|
+
width: `${60 + i % 3 * 12}%`,
|
|
189
|
+
height: 13
|
|
190
|
+
}), /*#__PURE__*/_jsx(Skeleton, {
|
|
191
|
+
width: "15%",
|
|
192
|
+
height: 13
|
|
193
|
+
}), /*#__PURE__*/_jsx(Skeleton, {
|
|
194
|
+
width: "10%",
|
|
195
|
+
height: 13
|
|
196
|
+
})]
|
|
197
|
+
}, i))]
|
|
211
198
|
});
|
|
212
199
|
}
|
|
213
200
|
|
|
@@ -230,38 +217,36 @@ export function SkeletonTabContent(_ref3) {
|
|
|
230
217
|
* region — it's typically used as a standalone loading surface, not
|
|
231
218
|
* as a sub-element of a larger Skeleton composition.
|
|
232
219
|
*/
|
|
233
|
-
|
|
234
|
-
export function SkeletonText(
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
loadingLabel = _ref4$loadingLabel === void 0 ? "Chargement…" : _ref4$loadingLabel;
|
|
244
|
-
var safeLines = Math.max(1, Math.floor(lines));
|
|
245
|
-
var pattern = Array.isArray(widths) && widths.length > 0 ? widths : SKELETON_TEXT_DEFAULT_WIDTHS;
|
|
220
|
+
const SKELETON_TEXT_DEFAULT_WIDTHS = [80, 60, 90, 70, 50];
|
|
221
|
+
export function SkeletonText({
|
|
222
|
+
lines = 3,
|
|
223
|
+
widths,
|
|
224
|
+
height = 14,
|
|
225
|
+
gap = "var(--s-3)",
|
|
226
|
+
loadingLabel = "Chargement…"
|
|
227
|
+
}) {
|
|
228
|
+
const safeLines = Math.max(1, Math.floor(lines));
|
|
229
|
+
const pattern = Array.isArray(widths) && widths.length > 0 ? widths : SKELETON_TEXT_DEFAULT_WIDTHS;
|
|
246
230
|
return /*#__PURE__*/_jsx("div", {
|
|
247
231
|
"aria-busy": "true",
|
|
248
232
|
"aria-label": loadingLabel,
|
|
249
233
|
style: {
|
|
250
234
|
display: "flex",
|
|
251
235
|
flexDirection: "column",
|
|
252
|
-
gap
|
|
236
|
+
gap
|
|
253
237
|
},
|
|
254
238
|
children: Array.from({
|
|
255
239
|
length: safeLines
|
|
256
|
-
},
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
return /*#__PURE__*/_jsx(Skeleton,
|
|
260
|
-
|
|
261
|
-
|
|
240
|
+
}, (_, i) => {
|
|
241
|
+
const raw = pattern[i % pattern.length];
|
|
242
|
+
const w = typeof raw === "number" ? `${raw}%` : raw;
|
|
243
|
+
return /*#__PURE__*/_jsx(Skeleton, {
|
|
244
|
+
...(w !== undefined ? {
|
|
245
|
+
width: w
|
|
246
|
+
} : {}),
|
|
262
247
|
height: height,
|
|
263
248
|
radius: 4
|
|
264
|
-
}
|
|
249
|
+
}, i);
|
|
265
250
|
})
|
|
266
251
|
});
|
|
267
252
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Skeleton.js","names":["React","cx","jsx","_jsx","jsxs","_jsxs","Skeleton","_ref","_ref$width","width","_ref$height","height","_ref$radius","radius","style","className","_objectSpread","display","borderRadius","SkeletonKPI","padding","background","border","children","marginBottom","SkeletonRow","_ref2","_ref2$cols","cols","_ref2$withCheckbox","withCheckbox","_ref2$withActions","withActions","widths","borderBottom","Array","from","length","_","i","w","undefined","SkeletonDetailHero","gap","paddingTop","borderTop","map","flex","SkeletonTabContent","_ref3","_ref3$rows","rows","_ref3$loadingLabel","loadingLabel","flexDirection","alignItems","concat","SKELETON_TEXT_DEFAULT_WIDTHS","SkeletonText","_ref4","_ref4$lines","lines","_ref4$height","_ref4$gap","_ref4$loadingLabel","safeLines","Math","max","floor","pattern","isArray","raw"],"sources":["../../../../src/lib/v2/components/Skeleton.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { cx } from \"../utils/cx\";\r\n\r\n/**\r\n * Skeleton - Portnet UI v2\r\n *\r\n * Charter §03 / §04.2.\r\n * R-Sk.1 - Affiché si chargement > 200 ms ; sinon ne rien afficher.\r\n * R-Sk.2 - Forme et nombre miment le contenu réel.\r\n * R-Sk.3 - aria-busy sur container, contenu skeleton aria-hidden.\r\n * R-Sk.4 - Animation supprimée si prefers-reduced-motion (handled in base.css).\r\n *\r\n * Primitive:\r\n * <Skeleton width=\"60%\" height={14} />\r\n *\r\n * Named compositions:\r\n * <SkeletonRow cols={6} />\r\n * <SkeletonKPI />\r\n * <SkeletonDetailHero />\r\n * <SkeletonTabContent rows={4} />\r\n * <SkeletonText lines={5} />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * SkeletonTabContent and SkeletonText surface a textual aria-busy\r\n * region; pass `loadingLabel` to localise. The other compositions\r\n * are aria-hidden placeholders that don't carry localisable strings.\r\n */\r\n\r\nexport interface SkeletonProps {\r\n width?: string | number | undefined;\r\n height?: string | number | undefined;\r\n radius?: number | undefined;\r\n style?: React.CSSProperties | undefined;\r\n className?: string | undefined;\r\n}\r\n\r\nexport function Skeleton({ width = \"100%\", height = 14, radius = 6, style, className }: SkeletonProps) {\r\n return (\r\n <span\r\n className={cx(\"pui-skeleton\", className)}\r\n style={{\r\n display: \"block\",\r\n width,\r\n height,\r\n borderRadius: radius,\r\n ...style,\r\n }}\r\n aria-hidden=\"true\"\r\n />\r\n );\r\n}\r\n\r\nexport function SkeletonKPI() {\r\n return (\r\n <div\r\n aria-hidden=\"true\"\r\n style={{\r\n padding: \"var(--s-4) var(--s-5)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n }}\r\n >\r\n <Skeleton width=\"55%\" height={11} style={{ marginBottom: \"var(--s-3)\" }} />\r\n <Skeleton width=\"38%\" height={28} style={{ marginBottom: \"var(--s-2)\" }} />\r\n <Skeleton width=\"72%\" height={11} />\r\n </div>\r\n );\r\n}\r\n\r\nexport interface SkeletonRowProps {\r\n cols?: number | undefined;\r\n withCheckbox?: boolean | undefined;\r\n withActions?: boolean | undefined;\r\n}\r\n\r\nexport function SkeletonRow({ cols = 8, withCheckbox = true, withActions = true }: SkeletonRowProps) {\r\n const widths = [\"28%\", \"16%\", \"9%\", \"12%\", \"14%\", \"20%\", \"12%\", \"10%\"];\r\n return (\r\n <tr aria-hidden=\"true\" style={{ borderBottom: \"1px solid var(--border)\" }}>\r\n {withCheckbox && (\r\n <td style={{ padding: \"var(--s-3) var(--s-4)\" }}>\r\n <Skeleton width={16} height={16} radius={4} />\r\n </td>\r\n )}\r\n {Array.from({ length: cols }, (_, i) => {\r\n const w = widths[i % widths.length];\r\n return (\r\n <td key={i} style={{ padding: \"var(--s-3) var(--s-4)\" }}>\r\n <Skeleton height={13} {...(w !== undefined ? { width: w } : {})} />\r\n </td>\r\n );\r\n })}\r\n {withActions && <td />}\r\n </tr>\r\n );\r\n}\r\n\r\nexport function SkeletonDetailHero() {\r\n return (\r\n <div\r\n aria-hidden=\"true\"\r\n style={{\r\n padding: \"var(--s-5) var(--s-6)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n marginBottom: \"var(--s-4)\",\r\n }}\r\n >\r\n <Skeleton width=\"38%\" height={22} style={{ marginBottom: \"var(--s-2)\" }} />\r\n <Skeleton width=\"55%\" height={11} style={{ marginBottom: \"var(--s-4)\" }} />\r\n <div style={{ display: \"flex\", gap: \"var(--s-6)\", paddingTop: \"var(--s-4)\", borderTop: \"1px solid var(--border)\" }}>\r\n {[1, 2, 3].map((i) => (\r\n <div key={i} style={{ flex: 1 }}>\r\n <Skeleton width=\"60%\" height={10} style={{ marginBottom: \"var(--s-2)\" }} />\r\n <Skeleton width=\"80%\" height={16} />\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport interface SkeletonTabContentProps {\r\n rows?: number | undefined;\r\n loadingLabel?: string | undefined;\r\n}\r\n\r\nexport function SkeletonTabContent({ rows = 4, loadingLabel = \"Chargement du contenu…\" }: SkeletonTabContentProps) {\r\n return (\r\n <div\r\n aria-busy=\"true\"\r\n aria-label={loadingLabel}\r\n style={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--s-3)\", padding: \"var(--s-2) 0\" }}\r\n >\r\n <Skeleton width=\"40%\" height={18} style={{ marginBottom: \"var(--s-1)\" }} />\r\n {Array.from({ length: rows }, (_, i) => (\r\n <div key={i} style={{ display: \"flex\", gap: \"var(--s-3)\", alignItems: \"center\" }}>\r\n <Skeleton width={`${60 + (i % 3) * 12}%`} height={13} />\r\n <Skeleton width=\"15%\" height={13} />\r\n <Skeleton width=\"10%\" height={13} />\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * SkeletonText — 5-line shimmer for narrow contexts (drawer body,\r\n * sub-skeleton inside a tab, narrow-column placeholder). Targets the\r\n * gap between SkeletonRow (table cells) and SkeletonDetailHero (full\r\n * page surface).\r\n *\r\n * API:\r\n * <SkeletonText lines={5} /> // varied widths\r\n * <SkeletonText lines={4} widths={[80, 60, 90, 50]} /> // explicit\r\n * <SkeletonText lines={5} height={16} loadingLabel=\"…\" />\r\n *\r\n * `widths` accepts numbers (treated as percentages) or strings\r\n * (passed through to the Skeleton primitive width prop).\r\n * If `widths` is shorter than `lines`, it cycles.\r\n *\r\n * Like SkeletonTabContent, this carries the labelled aria-busy\r\n * region — it's typically used as a standalone loading surface, not\r\n * as a sub-element of a larger Skeleton composition.\r\n */\r\nconst SKELETON_TEXT_DEFAULT_WIDTHS = [80, 60, 90, 70, 50];\r\n\r\nexport interface SkeletonTextProps {\r\n lines?: number | undefined;\r\n widths?: Array<string | number> | undefined;\r\n height?: string | number | undefined;\r\n gap?: string | undefined;\r\n loadingLabel?: string | undefined;\r\n}\r\n\r\nexport function SkeletonText({\r\n lines = 3,\r\n widths,\r\n height = 14,\r\n gap = \"var(--s-3)\",\r\n loadingLabel = \"Chargement…\",\r\n}: SkeletonTextProps) {\r\n const safeLines = Math.max(1, Math.floor(lines));\r\n const pattern =\r\n Array.isArray(widths) && widths.length > 0\r\n ? widths\r\n : SKELETON_TEXT_DEFAULT_WIDTHS;\r\n\r\n return (\r\n <div\r\n aria-busy=\"true\"\r\n aria-label={loadingLabel}\r\n style={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap,\r\n }}\r\n >\r\n {Array.from({ length: safeLines }, (_, i) => {\r\n const raw = pattern[i % pattern.length];\r\n const w = typeof raw === \"number\" ? `${raw}%` : raw;\r\n return (\r\n <Skeleton key={i} {...(w !== undefined ? { width: w } : {})} height={height} radius={4} />\r\n );\r\n })}\r\n </div>\r\n );\r\n}\r\n\r\nexport default Skeleton;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Skeleton.js","names":["React","cx","jsx","_jsx","jsxs","_jsxs","Skeleton","width","height","radius","style","className","display","borderRadius","SkeletonKPI","padding","background","border","children","marginBottom","SkeletonRow","cols","withCheckbox","withActions","widths","borderBottom","Array","from","length","_","i","w","undefined","SkeletonDetailHero","gap","paddingTop","borderTop","map","flex","SkeletonTabContent","rows","loadingLabel","flexDirection","alignItems","SKELETON_TEXT_DEFAULT_WIDTHS","SkeletonText","lines","safeLines","Math","max","floor","pattern","isArray","raw"],"sources":["../../../../src/lib/v2/components/Skeleton.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { cx } from \"../utils/cx\";\r\n\r\n/**\r\n * Skeleton - Portnet UI v2\r\n *\r\n * Charter §03 / §04.2.\r\n * R-Sk.1 - Affiché si chargement > 200 ms ; sinon ne rien afficher.\r\n * R-Sk.2 - Forme et nombre miment le contenu réel.\r\n * R-Sk.3 - aria-busy sur container, contenu skeleton aria-hidden.\r\n * R-Sk.4 - Animation supprimée si prefers-reduced-motion (handled in base.css).\r\n *\r\n * Primitive:\r\n * <Skeleton width=\"60%\" height={14} />\r\n *\r\n * Named compositions:\r\n * <SkeletonRow cols={6} />\r\n * <SkeletonKPI />\r\n * <SkeletonDetailHero />\r\n * <SkeletonTabContent rows={4} />\r\n * <SkeletonText lines={5} />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * SkeletonTabContent and SkeletonText surface a textual aria-busy\r\n * region; pass `loadingLabel` to localise. The other compositions\r\n * are aria-hidden placeholders that don't carry localisable strings.\r\n */\r\n\r\nexport interface SkeletonProps {\r\n width?: string | number | undefined;\r\n height?: string | number | undefined;\r\n radius?: number | undefined;\r\n style?: React.CSSProperties | undefined;\r\n className?: string | undefined;\r\n}\r\n\r\nexport function Skeleton({ width = \"100%\", height = 14, radius = 6, style, className }: SkeletonProps) {\r\n return (\r\n <span\r\n className={cx(\"pui-skeleton\", className)}\r\n style={{\r\n display: \"block\",\r\n width,\r\n height,\r\n borderRadius: radius,\r\n ...style,\r\n }}\r\n aria-hidden=\"true\"\r\n />\r\n );\r\n}\r\n\r\nexport function SkeletonKPI() {\r\n return (\r\n <div\r\n aria-hidden=\"true\"\r\n style={{\r\n padding: \"var(--s-4) var(--s-5)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n }}\r\n >\r\n <Skeleton width=\"55%\" height={11} style={{ marginBottom: \"var(--s-3)\" }} />\r\n <Skeleton width=\"38%\" height={28} style={{ marginBottom: \"var(--s-2)\" }} />\r\n <Skeleton width=\"72%\" height={11} />\r\n </div>\r\n );\r\n}\r\n\r\nexport interface SkeletonRowProps {\r\n cols?: number | undefined;\r\n withCheckbox?: boolean | undefined;\r\n withActions?: boolean | undefined;\r\n}\r\n\r\nexport function SkeletonRow({ cols = 8, withCheckbox = true, withActions = true }: SkeletonRowProps) {\r\n const widths = [\"28%\", \"16%\", \"9%\", \"12%\", \"14%\", \"20%\", \"12%\", \"10%\"];\r\n return (\r\n <tr aria-hidden=\"true\" style={{ borderBottom: \"1px solid var(--border)\" }}>\r\n {withCheckbox && (\r\n <td style={{ padding: \"var(--s-3) var(--s-4)\" }}>\r\n <Skeleton width={16} height={16} radius={4} />\r\n </td>\r\n )}\r\n {Array.from({ length: cols }, (_, i) => {\r\n const w = widths[i % widths.length];\r\n return (\r\n <td key={i} style={{ padding: \"var(--s-3) var(--s-4)\" }}>\r\n <Skeleton height={13} {...(w !== undefined ? { width: w } : {})} />\r\n </td>\r\n );\r\n })}\r\n {withActions && <td />}\r\n </tr>\r\n );\r\n}\r\n\r\nexport function SkeletonDetailHero() {\r\n return (\r\n <div\r\n aria-hidden=\"true\"\r\n style={{\r\n padding: \"var(--s-5) var(--s-6)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n marginBottom: \"var(--s-4)\",\r\n }}\r\n >\r\n <Skeleton width=\"38%\" height={22} style={{ marginBottom: \"var(--s-2)\" }} />\r\n <Skeleton width=\"55%\" height={11} style={{ marginBottom: \"var(--s-4)\" }} />\r\n <div style={{ display: \"flex\", gap: \"var(--s-6)\", paddingTop: \"var(--s-4)\", borderTop: \"1px solid var(--border)\" }}>\r\n {[1, 2, 3].map((i) => (\r\n <div key={i} style={{ flex: 1 }}>\r\n <Skeleton width=\"60%\" height={10} style={{ marginBottom: \"var(--s-2)\" }} />\r\n <Skeleton width=\"80%\" height={16} />\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport interface SkeletonTabContentProps {\r\n rows?: number | undefined;\r\n loadingLabel?: string | undefined;\r\n}\r\n\r\nexport function SkeletonTabContent({ rows = 4, loadingLabel = \"Chargement du contenu…\" }: SkeletonTabContentProps) {\r\n return (\r\n <div\r\n aria-busy=\"true\"\r\n aria-label={loadingLabel}\r\n style={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--s-3)\", padding: \"var(--s-2) 0\" }}\r\n >\r\n <Skeleton width=\"40%\" height={18} style={{ marginBottom: \"var(--s-1)\" }} />\r\n {Array.from({ length: rows }, (_, i) => (\r\n <div key={i} style={{ display: \"flex\", gap: \"var(--s-3)\", alignItems: \"center\" }}>\r\n <Skeleton width={`${60 + (i % 3) * 12}%`} height={13} />\r\n <Skeleton width=\"15%\" height={13} />\r\n <Skeleton width=\"10%\" height={13} />\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * SkeletonText — 5-line shimmer for narrow contexts (drawer body,\r\n * sub-skeleton inside a tab, narrow-column placeholder). Targets the\r\n * gap between SkeletonRow (table cells) and SkeletonDetailHero (full\r\n * page surface).\r\n *\r\n * API:\r\n * <SkeletonText lines={5} /> // varied widths\r\n * <SkeletonText lines={4} widths={[80, 60, 90, 50]} /> // explicit\r\n * <SkeletonText lines={5} height={16} loadingLabel=\"…\" />\r\n *\r\n * `widths` accepts numbers (treated as percentages) or strings\r\n * (passed through to the Skeleton primitive width prop).\r\n * If `widths` is shorter than `lines`, it cycles.\r\n *\r\n * Like SkeletonTabContent, this carries the labelled aria-busy\r\n * region — it's typically used as a standalone loading surface, not\r\n * as a sub-element of a larger Skeleton composition.\r\n */\r\nconst SKELETON_TEXT_DEFAULT_WIDTHS = [80, 60, 90, 70, 50];\r\n\r\nexport interface SkeletonTextProps {\r\n lines?: number | undefined;\r\n widths?: Array<string | number> | undefined;\r\n height?: string | number | undefined;\r\n gap?: string | undefined;\r\n loadingLabel?: string | undefined;\r\n}\r\n\r\nexport function SkeletonText({\r\n lines = 3,\r\n widths,\r\n height = 14,\r\n gap = \"var(--s-3)\",\r\n loadingLabel = \"Chargement…\",\r\n}: SkeletonTextProps) {\r\n const safeLines = Math.max(1, Math.floor(lines));\r\n const pattern =\r\n Array.isArray(widths) && widths.length > 0\r\n ? widths\r\n : SKELETON_TEXT_DEFAULT_WIDTHS;\r\n\r\n return (\r\n <div\r\n aria-busy=\"true\"\r\n aria-label={loadingLabel}\r\n style={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap,\r\n }}\r\n >\r\n {Array.from({ length: safeLines }, (_, i) => {\r\n const raw = pattern[i % pattern.length];\r\n const w = typeof raw === \"number\" ? `${raw}%` : raw;\r\n return (\r\n <Skeleton key={i} {...(w !== undefined ? { width: w } : {})} height={height} radius={4} />\r\n );\r\n })}\r\n </div>\r\n );\r\n}\r\n\r\nexport default Skeleton;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,14 +23,13 @@ import * as React from "react";
|
|
|
23
23
|
* preserved (no preventDefault).
|
|
24
24
|
*/
|
|
25
25
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
26
|
-
function SkipLink(
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
var handleClick = React.useCallback(function () {
|
|
26
|
+
function SkipLink({
|
|
27
|
+
href = "#main-content",
|
|
28
|
+
label = "Aller au contenu principal"
|
|
29
|
+
}) {
|
|
30
|
+
const handleClick = React.useCallback(() => {
|
|
32
31
|
if (typeof document === "undefined" || !href.startsWith("#")) return;
|
|
33
|
-
|
|
32
|
+
const target = document.getElementById(href.slice(1));
|
|
34
33
|
if (!target) return;
|
|
35
34
|
// Bare in-page anchors don't reliably move focus into the target across
|
|
36
35
|
// browsers; make it programmatically focusable (without joining the tab
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkipLink.js","names":["React","jsx","_jsx","SkipLink","
|
|
1
|
+
{"version":3,"file":"SkipLink.js","names":["React","jsx","_jsx","SkipLink","href","label","handleClick","useCallback","document","startsWith","target","getElementById","slice","hasAttribute","setAttribute","focus","className","onClick","children"],"sources":["../../../../src/lib/v2/components/SkipLink.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\n/**\r\n * SkipLink — Portnet UI v2\r\n *\r\n * WCAG 2.4.1 · Charter R-N.6.\r\n * Mount as the FIRST focusable element of the AppShell.\r\n *\r\n * <SkipLink href=\"#main-content\" />\r\n * …\r\n * <main id=\"main-content\">\r\n *\r\n * Visible-on-focus is handled by the `.pui-skip-link` class (base.css):\r\n * clipped off-screen but kept in the tab order, revealed on :focus /\r\n * :focus-visible.\r\n *\r\n * Focus movement (SL-1): a bare in-page anchor scrolls to the target and sets\r\n * the sequential-focus starting point in Chrome/Firefox/Edge, but Safari does\r\n * not move focus INTO the target unless it is focusable — so the next Tab may\r\n * not continue from the main region there. On activation we additionally focus\r\n * the target, adding tabIndex=-1 if the host didn't, so keyboard + screen-reader\r\n * users land in the region. The default anchor behaviour (scroll + hash) is\r\n * preserved (no preventDefault).\r\n */\r\n\r\nexport interface SkipLinkProps {\r\n href?: string | undefined;\r\n label?: React.ReactNode | undefined;\r\n}\r\n\r\nfunction SkipLink({ href = \"#main-content\", label = \"Aller au contenu principal\" }: SkipLinkProps) {\r\n const handleClick = React.useCallback(() => {\r\n if (typeof document === \"undefined\" || !href.startsWith(\"#\")) return;\r\n const target = document.getElementById(href.slice(1));\r\n if (!target) return;\r\n // Bare in-page anchors don't reliably move focus into the target across\r\n // browsers; make it programmatically focusable (without joining the tab\r\n // order) and focus it. Default scroll + hash update are left intact.\r\n if (!target.hasAttribute(\"tabindex\")) target.setAttribute(\"tabindex\", \"-1\");\r\n target.focus();\r\n }, [href]);\r\n\r\n return (\r\n <a className=\"pui-skip-link\" href={href} onClick={handleClick}>\r\n {label}\r\n </a>\r\n );\r\n}\r\n\r\nexport default SkipLink;\r\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AArBA,SAAAC,GAAA,IAAAC,IAAA;AA4BA,SAASC,QAAQA,CAAC;EAAEC,IAAI,GAAG,eAAe;EAAEC,KAAK,GAAG;AAA4C,CAAC,EAAE;EACjG,MAAMC,WAAW,GAAGN,KAAK,CAACO,WAAW,CAAC,MAAM;IAC1C,IAAI,OAAOC,QAAQ,KAAK,WAAW,IAAI,CAACJ,IAAI,CAACK,UAAU,CAAC,GAAG,CAAC,EAAE;IAC9D,MAAMC,MAAM,GAAGF,QAAQ,CAACG,cAAc,CAACP,IAAI,CAACQ,KAAK,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,CAACF,MAAM,EAAE;IACb;IACA;IACA;IACA,IAAI,CAACA,MAAM,CAACG,YAAY,CAAC,UAAU,CAAC,EAAEH,MAAM,CAACI,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;IAC3EJ,MAAM,CAACK,KAAK,CAAC,CAAC;EAChB,CAAC,EAAE,CAACX,IAAI,CAAC,CAAC;EAEV,oBACEF,IAAA;IAAGc,SAAS,EAAC,eAAe;IAACZ,IAAI,EAAEA,IAAK;IAACa,OAAO,EAAEX,WAAY;IAAAY,QAAA,EAC3Db;EAAK,CACL,CAAC;AAER;AAEA,eAAeF,QAAQ","ignoreList":[]}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
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); }
|
|
2
|
-
var _excluded = ["size", "className", "label"];
|
|
3
|
-
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; }
|
|
4
|
-
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; }
|
|
5
|
-
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; }
|
|
6
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
7
|
-
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); }
|
|
8
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
9
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
10
1
|
import * as React from "react";
|
|
11
2
|
|
|
12
3
|
/**
|
|
@@ -36,34 +27,34 @@ import * as React from "react";
|
|
|
36
27
|
* users hear a meaningful cue.
|
|
37
28
|
*/
|
|
38
29
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
39
|
-
export default function Spinner(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
rest = _objectWithoutProperties(_ref, _excluded);
|
|
30
|
+
export default function Spinner({
|
|
31
|
+
size = 14,
|
|
32
|
+
className = "",
|
|
33
|
+
label,
|
|
34
|
+
...rest
|
|
35
|
+
}) {
|
|
46
36
|
// When `label` is supplied, expose the SVG as an accessible image.
|
|
47
37
|
// When omitted, default to decorative (aria-hidden).
|
|
48
|
-
|
|
38
|
+
const a11y = label ? {
|
|
49
39
|
role: "img",
|
|
50
40
|
"aria-label": label
|
|
51
41
|
} : {
|
|
52
42
|
"aria-hidden": "true"
|
|
53
43
|
};
|
|
54
|
-
return /*#__PURE__*/_jsx("svg",
|
|
55
|
-
className:
|
|
44
|
+
return /*#__PURE__*/_jsx("svg", {
|
|
45
|
+
className: `pui-spinner ${className}`,
|
|
56
46
|
width: size,
|
|
57
47
|
height: size,
|
|
58
48
|
viewBox: "0 0 24 24",
|
|
59
49
|
fill: "none",
|
|
60
50
|
stroke: "currentColor",
|
|
61
51
|
strokeWidth: "2.5",
|
|
62
|
-
strokeLinecap: "round"
|
|
63
|
-
|
|
52
|
+
strokeLinecap: "round",
|
|
53
|
+
...a11y,
|
|
54
|
+
...rest,
|
|
64
55
|
children: /*#__PURE__*/_jsx("path", {
|
|
65
56
|
d: "M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83"
|
|
66
57
|
})
|
|
67
|
-
})
|
|
58
|
+
});
|
|
68
59
|
}
|
|
69
60
|
//# sourceMappingURL=Spinner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Spinner.js","names":["React","jsx","_jsx","Spinner","
|
|
1
|
+
{"version":3,"file":"Spinner.js","names":["React","jsx","_jsx","Spinner","size","className","label","rest","a11y","role","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","children","d"],"sources":["../../../../src/lib/v2/components/Spinner.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\n/**\r\n * Spinner - Portnet UI v2\r\n *\r\n * Inline loading indicator. Animation suppressed under\r\n * prefers-reduced-motion via base.css.\r\n *\r\n * Two usage modes:\r\n *\r\n * 1. DECORATIVE (inside <Button loading>, where the button itself\r\n * carries `aria-busy=\"true\"` and SR users hear \"<label>, busy\"):\r\n *\r\n * <Spinner size={14} />\r\n *\r\n * The spinner is hidden from AT (aria-hidden), avoiding\r\n * duplicate \"loading\" announcements on top of aria-busy.\r\n *\r\n * 2. STANDALONE (the spinner is the SOLE loading indicator on\r\n * screen — e.g. a section-level loading state without a\r\n * surrounding aria-busy container):\r\n *\r\n * <Spinner size={20} label=\"Chargement des documents…\" />\r\n *\r\n * Pass `label` to surface a localised message. The SVG is\r\n * exposed as role=\"img\" with the supplied aria-label, so SR\r\n * users hear a meaningful cue.\r\n */\r\ninterface SpinnerProps extends React.SVGAttributes<SVGSVGElement> {\r\n /** Pixel size (width & height). @default 14 */\r\n size?: number;\r\n /**\r\n * Accessible label. When provided, the SVG is exposed as role=\"img\"\r\n * with this aria-label (standalone loading indicator). When omitted,\r\n * the spinner is decorative (aria-hidden).\r\n */\r\n label?: string;\r\n}\r\n\r\nexport default function Spinner({ size = 14, className = \"\", label, ...rest }: SpinnerProps) {\r\n // When `label` is supplied, expose the SVG as an accessible image.\r\n // When omitted, default to decorative (aria-hidden).\r\n const a11y = label\r\n ? ({ role: \"img\", \"aria-label\": label } as const)\r\n : ({ \"aria-hidden\": \"true\" } as const);\r\n\r\n return (\r\n <svg\r\n className={`pui-spinner ${className}`}\r\n width={size}\r\n height={size}\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2.5\"\r\n strokeLinecap=\"round\"\r\n {...a11y}\r\n {...rest}\r\n >\r\n <path d=\"M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83\" />\r\n </svg>\r\n );\r\n}\r\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAzBA,SAAAC,GAAA,IAAAC,IAAA;AAqCA,eAAe,SAASC,OAAOA,CAAC;EAAEC,IAAI,GAAG,EAAE;EAAEC,SAAS,GAAG,EAAE;EAAEC,KAAK;EAAE,GAAGC;AAAmB,CAAC,EAAE;EAC3F;EACA;EACA,MAAMC,IAAI,GAAGF,KAAK,GACb;IAAEG,IAAI,EAAE,KAAK;IAAE,YAAY,EAAEH;EAAM,CAAC,GACpC;IAAE,aAAa,EAAE;EAAO,CAAW;EAExC,oBACEJ,IAAA;IACEG,SAAS,EAAE,eAAeA,SAAS,EAAG;IACtCK,KAAK,EAAEN,IAAK;IACZO,MAAM,EAAEP,IAAK;IACbQ,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAC,MAAM;IACXC,MAAM,EAAC,cAAc;IACrBC,WAAW,EAAC,KAAK;IACjBC,aAAa,EAAC,OAAO;IAAA,GACjBR,IAAI;IAAA,GACJD,IAAI;IAAAU,QAAA,eAERf,IAAA;MAAMgB,CAAC,EAAC;IAAoH,CAAE;EAAC,CAC5H,CAAC;AAEV","ignoreList":[]}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
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); }
|
|
2
|
-
var _excluded = ["kind", "label", "labels", "className"];
|
|
3
|
-
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; }
|
|
4
|
-
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; }
|
|
5
|
-
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; }
|
|
6
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
7
|
-
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); }
|
|
8
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
9
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
10
1
|
import * as React from "react";
|
|
11
2
|
import { STATUS_KEYS, STATUS_LABELS_FR } from "../tokens/statusPalette";
|
|
12
3
|
|
|
@@ -42,23 +33,21 @@ import { STATUS_KEYS, STATUS_LABELS_FR } from "../tokens/statusPalette";
|
|
|
42
33
|
* Forbidden: ad-hoc colours. Use Chip for filter pills, not Status.
|
|
43
34
|
*/
|
|
44
35
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
45
|
-
function Status(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"data-kind": safe
|
|
59
|
-
}, rest), {}, {
|
|
36
|
+
function Status({
|
|
37
|
+
kind = "neutral",
|
|
38
|
+
label,
|
|
39
|
+
labels,
|
|
40
|
+
className = "",
|
|
41
|
+
...rest
|
|
42
|
+
}) {
|
|
43
|
+
const safe = STATUS_KEYS.includes(kind) ? kind : "neutral";
|
|
44
|
+
const text = label ?? (labels && labels[safe]) ?? STATUS_LABELS_FR[safe];
|
|
45
|
+
return /*#__PURE__*/_jsx("span", {
|
|
46
|
+
className: `pui-status ${className}`.trim(),
|
|
47
|
+
"data-kind": safe,
|
|
48
|
+
...rest,
|
|
60
49
|
children: text
|
|
61
|
-
})
|
|
50
|
+
});
|
|
62
51
|
}
|
|
63
52
|
export default Status;
|
|
64
53
|
//# sourceMappingURL=Status.js.map
|