@portnet/ui 6.0.1 → 6.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +737 -0
- package/dist/esm/index.js +90 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/v2/__tests__/AppMain.test.js +130 -0
- package/dist/esm/v2/__tests__/AppMain.test.js.map +1 -0
- package/dist/esm/v2/__tests__/ChartFigure.test.js +180 -0
- package/dist/esm/v2/__tests__/ChartFigure.test.js.map +1 -0
- package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js +150 -0
- package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
- package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js +93 -0
- package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldError.test.js +71 -39
- package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FieldNaming.test.js +160 -0
- package/dist/esm/v2/__tests__/FieldNaming.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldWidth.test.js +146 -0
- package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FileCard.test.js +18 -18
- package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js +173 -0
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +236 -0
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js +101 -0
- package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +299 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
- package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -43
- package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/PreviewDrawer.test.js +165 -0
- package/dist/esm/v2/__tests__/PreviewDrawer.test.js.map +1 -0
- package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js +156 -0
- package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +37 -52
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/esm/v2/__tests__/apiError.test.js +50 -69
- package/dist/esm/v2/__tests__/apiError.test.js.map +1 -1
- package/dist/esm/v2/__tests__/banned-patterns.test.js +41 -122
- package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -1
- package/dist/esm/v2/__tests__/chart-palette.test.js +204 -0
- package/dist/esm/v2/__tests__/chart-palette.test.js.map +1 -0
- package/dist/esm/v2/__tests__/contrast-palette.test.js +42 -74
- package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -1
- package/dist/esm/v2/__tests__/cssVariables.test.js +44 -51
- package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -1
- package/dist/esm/v2/__tests__/fileValidation.test.js +134 -0
- package/dist/esm/v2/__tests__/fileValidation.test.js.map +1 -0
- package/dist/esm/v2/__tests__/filterCriteria.test.js +321 -0
- package/dist/esm/v2/__tests__/filterCriteria.test.js.map +1 -0
- package/dist/esm/v2/__tests__/fmtDate.test.js +68 -0
- package/dist/esm/v2/__tests__/fmtDate.test.js.map +1 -0
- package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js +218 -0
- package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
- package/dist/esm/v2/__tests__/labels-merge.test.js +17 -22
- package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/esm/v2/__tests__/locale-fallback.test.js +35 -40
- package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -1
- package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js +143 -0
- package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
- package/dist/esm/v2/__tests__/rowActions.test.js +182 -0
- package/dist/esm/v2/__tests__/rowActions.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js +155 -0
- package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusTrap.test.js +266 -402
- package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -1
- package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js +120 -0
- package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
- package/dist/esm/v2/components/Accordion.js +48 -70
- package/dist/esm/v2/components/Accordion.js.map +1 -1
- package/dist/esm/v2/components/ActionStrip.js +31 -43
- package/dist/esm/v2/components/ActionStrip.js.map +1 -1
- package/dist/esm/v2/components/Banner.js +25 -22
- package/dist/esm/v2/components/Banner.js.map +1 -1
- package/dist/esm/v2/components/Busy.js +14 -19
- package/dist/esm/v2/components/Busy.js.map +1 -1
- package/dist/esm/v2/components/Button.js +34 -45
- package/dist/esm/v2/components/Button.js.map +1 -1
- package/dist/esm/v2/components/CategoryTag.js +44 -27
- package/dist/esm/v2/components/CategoryTag.js.map +1 -1
- package/dist/esm/v2/components/Checkbox.js +32 -38
- package/dist/esm/v2/components/Checkbox.js.map +1 -1
- package/dist/esm/v2/components/Chip.js +23 -36
- package/dist/esm/v2/components/Chip.js.map +1 -1
- package/dist/esm/v2/components/Combobox.js +112 -136
- package/dist/esm/v2/components/Combobox.js.map +1 -1
- package/dist/esm/v2/components/CommandPalette.js +113 -198
- package/dist/esm/v2/components/CommandPalette.js.map +1 -1
- package/dist/esm/v2/components/ConfirmDialog.js +36 -45
- package/dist/esm/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/esm/v2/components/DatePicker.js +78 -81
- package/dist/esm/v2/components/DatePicker.js.map +1 -1
- package/dist/esm/v2/components/DateRangePicker.js +63 -74
- package/dist/esm/v2/components/DateRangePicker.js.map +1 -1
- package/dist/esm/v2/components/DateTimePicker.js +118 -90
- package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
- package/dist/esm/v2/components/Drawer.js +71 -65
- package/dist/esm/v2/components/Drawer.js.map +1 -1
- package/dist/esm/v2/components/Dropzone.js +130 -177
- package/dist/esm/v2/components/Dropzone.js.map +1 -1
- package/dist/esm/v2/components/EmptyState.js +9 -9
- package/dist/esm/v2/components/EmptyState.js.map +1 -1
- package/dist/esm/v2/components/FavoriteToggle.js +24 -33
- package/dist/esm/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/esm/v2/components/Field.js +210 -52
- package/dist/esm/v2/components/Field.js.map +1 -1
- package/dist/esm/v2/components/FieldError.js +9 -13
- package/dist/esm/v2/components/FieldError.js.map +1 -1
- package/dist/esm/v2/components/FieldHelp.js +28 -49
- package/dist/esm/v2/components/FieldHelp.js.map +1 -1
- package/dist/esm/v2/components/FileCard.js +14 -19
- package/dist/esm/v2/components/FileCard.js.map +1 -1
- package/dist/esm/v2/components/FilterTab.js +22 -31
- package/dist/esm/v2/components/FilterTab.js.map +1 -1
- package/dist/esm/v2/components/ForbiddenPage.js +28 -8
- package/dist/esm/v2/components/ForbiddenPage.js.map +1 -1
- package/dist/esm/v2/components/FormGrid.js +48 -54
- package/dist/esm/v2/components/FormGrid.js.map +1 -1
- package/dist/esm/v2/components/FormikDisplay.js +98 -24
- package/dist/esm/v2/components/FormikDisplay.js.map +1 -1
- package/dist/esm/v2/components/Input.js +75 -34
- package/dist/esm/v2/components/Input.js.map +1 -1
- package/dist/esm/v2/components/KPICard.js +42 -51
- package/dist/esm/v2/components/KPICard.js.map +1 -1
- package/dist/esm/v2/components/KPIStrip.js +9 -15
- package/dist/esm/v2/components/KPIStrip.js.map +1 -1
- package/dist/esm/v2/components/KV.js +16 -23
- package/dist/esm/v2/components/KV.js.map +1 -1
- package/dist/esm/v2/components/KVGrid.js +15 -23
- package/dist/esm/v2/components/KVGrid.js.map +1 -1
- package/dist/esm/v2/components/Layout.js +81 -117
- package/dist/esm/v2/components/Layout.js.map +1 -1
- package/dist/esm/v2/components/MobileRowCard.js +64 -75
- package/dist/esm/v2/components/MobileRowCard.js.map +1 -1
- package/dist/esm/v2/components/Modal.js +44 -53
- package/dist/esm/v2/components/Modal.js.map +1 -1
- package/dist/esm/v2/components/NetworkErrorPage.js +28 -11
- package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/esm/v2/components/NotFoundPage.js +28 -9
- package/dist/esm/v2/components/NotFoundPage.js.map +1 -1
- package/dist/esm/v2/components/NumberInput.js +77 -107
- package/dist/esm/v2/components/NumberInput.js.map +1 -1
- package/dist/esm/v2/components/OverflowMenu.js +24 -42
- package/dist/esm/v2/components/OverflowMenu.js.map +1 -1
- package/dist/esm/v2/components/PdfViewer.js +24 -33
- package/dist/esm/v2/components/PdfViewer.js.map +1 -1
- package/dist/esm/v2/components/ProgressBar.js +28 -36
- package/dist/esm/v2/components/ProgressBar.js.map +1 -1
- package/dist/esm/v2/components/Radio.js +49 -57
- package/dist/esm/v2/components/Radio.js.map +1 -1
- package/dist/esm/v2/components/SectionErrorBoundary.js +84 -130
- package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -1
- package/dist/esm/v2/components/SectionHeader.js +24 -31
- package/dist/esm/v2/components/SectionHeader.js.map +1 -1
- package/dist/esm/v2/components/Segmented.js +59 -84
- package/dist/esm/v2/components/Segmented.js.map +1 -1
- package/dist/esm/v2/components/Select.js +100 -138
- package/dist/esm/v2/components/Select.js.map +1 -1
- package/dist/esm/v2/components/ServerErrorPage.js +27 -10
- package/dist/esm/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/esm/v2/components/Skeleton.js +81 -96
- package/dist/esm/v2/components/Skeleton.js.map +1 -1
- package/dist/esm/v2/components/SkipLink.js +6 -7
- package/dist/esm/v2/components/SkipLink.js.map +1 -1
- package/dist/esm/v2/components/Spinner.js +13 -22
- package/dist/esm/v2/components/Spinner.js.map +1 -1
- package/dist/esm/v2/components/Status.js +14 -25
- package/dist/esm/v2/components/Status.js.map +1 -1
- package/dist/esm/v2/components/Stepper.js +68 -71
- package/dist/esm/v2/components/Stepper.js.map +1 -1
- package/dist/esm/v2/components/Surface.js +25 -44
- package/dist/esm/v2/components/Surface.js.map +1 -1
- package/dist/esm/v2/components/Switch.js +21 -29
- package/dist/esm/v2/components/Switch.js.map +1 -1
- package/dist/esm/v2/components/TabPanel.js +84 -0
- package/dist/esm/v2/components/TabPanel.js.map +1 -0
- package/dist/esm/v2/components/Tabs.js +43 -19
- package/dist/esm/v2/components/Tabs.js.map +1 -1
- package/dist/esm/v2/components/TelInput.js +75 -108
- package/dist/esm/v2/components/TelInput.js.map +1 -1
- package/dist/esm/v2/components/Textarea.js +21 -30
- package/dist/esm/v2/components/Textarea.js.map +1 -1
- package/dist/esm/v2/components/TimePicker.js +59 -69
- package/dist/esm/v2/components/TimePicker.js.map +1 -1
- package/dist/esm/v2/components/Toast.js +109 -163
- package/dist/esm/v2/components/Toast.js.map +1 -1
- package/dist/esm/v2/components/Tooltip.js +18 -31
- package/dist/esm/v2/components/Tooltip.js.map +1 -1
- package/dist/esm/v2/components/_ErrorPageBody.js +6 -5
- package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -1
- package/dist/esm/v2/components/_pickerShared.js +2 -2
- package/dist/esm/v2/components/_pickerShared.js.map +1 -1
- package/dist/esm/v2/components/index.js +64 -0
- package/dist/esm/v2/components/index.js.map +1 -1
- package/dist/esm/v2/hooks/index.js +62 -0
- package/dist/esm/v2/hooks/index.js.map +1 -1
- package/dist/esm/v2/hooks/useAppliedFilters.js +112 -0
- package/dist/esm/v2/hooks/useAppliedFilters.js.map +1 -0
- package/dist/esm/v2/hooks/useDebouncedCallback.js +82 -0
- package/dist/esm/v2/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/esm/v2/hooks/useDelayedFlag.js +5 -19
- package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -1
- package/dist/esm/v2/hooks/useDensity.js +13 -17
- package/dist/esm/v2/hooks/useDensity.js.map +1 -1
- package/dist/esm/v2/hooks/useFocusFirstError.js +25 -33
- package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -1
- package/dist/esm/v2/hooks/useFocusOnRouteChange.js +81 -0
- package/dist/esm/v2/hooks/useFocusOnRouteChange.js.map +1 -0
- package/dist/esm/v2/hooks/useFocusTrap.js +19 -23
- package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -1
- package/dist/esm/v2/hooks/useFormAutoSave.js +38 -53
- package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -1
- package/dist/esm/v2/hooks/useFormCompletionProgress.js +32 -51
- package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -1
- package/dist/esm/v2/hooks/useKeyboardShortcuts.js +125 -0
- package/dist/esm/v2/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/esm/v2/hooks/usePrefersReducedMotion.js +99 -0
- package/dist/esm/v2/hooks/usePrefersReducedMotion.js.map +1 -0
- package/dist/esm/v2/hooks/useResolvedDensity.js +2 -10
- package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -1
- package/dist/esm/v2/hooks/useSortedRows.js +3 -5
- package/dist/esm/v2/hooks/useSortedRows.js.map +1 -1
- package/dist/esm/v2/hooks/useTabLoading.js +6 -21
- package/dist/esm/v2/hooks/useTabLoading.js.map +1 -1
- package/dist/esm/v2/index.js +14 -4
- package/dist/esm/v2/index.js.map +1 -1
- package/dist/esm/v2/modalContext.js +2 -2
- package/dist/esm/v2/modalContext.js.map +1 -1
- package/dist/esm/v2/models/favorite.js.map +1 -1
- package/dist/esm/v2/models/personalization.js.map +1 -1
- package/dist/esm/v2/models/referentiel.js.map +1 -1
- package/dist/esm/v2/models/savedFilter.js.map +1 -1
- package/dist/esm/v2/patterns/ActionBar.js +115 -159
- package/dist/esm/v2/patterns/ActionBar.js.map +1 -1
- package/dist/esm/v2/patterns/AppMain.js +108 -0
- package/dist/esm/v2/patterns/AppMain.js.map +1 -0
- package/dist/esm/v2/patterns/BulkActionBar.js +31 -34
- package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/esm/v2/patterns/ChartFigure.js +151 -0
- package/dist/esm/v2/patterns/ChartFigure.js.map +1 -0
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js +111 -152
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/esm/v2/patterns/ColumnsToggle.js +43 -77
- package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/esm/v2/patterns/DataGrid.js +221 -255
- package/dist/esm/v2/patterns/DataGrid.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js +76 -94
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridToolbar.js +85 -89
- package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridVirtualized.js +141 -182
- package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +26 -30
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/esm/v2/patterns/DetailSplit.js +108 -0
- package/dist/esm/v2/patterns/DetailSplit.js.map +1 -0
- package/dist/esm/v2/patterns/FavoriteColumn.js +26 -75
- package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/esm/v2/patterns/FavoritesFilter.js +30 -39
- package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/esm/v2/patterns/FilterTabBar.js +112 -0
- package/dist/esm/v2/patterns/FilterTabBar.js.map +1 -0
- package/dist/esm/v2/patterns/FormErrorSummary.js +12 -13
- package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/esm/v2/patterns/FormPageShell.js +43 -41
- package/dist/esm/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/esm/v2/patterns/FormSection.js +30 -38
- package/dist/esm/v2/patterns/FormSection.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCheckbox.js +130 -0
- package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js +56 -60
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCombobox.js +51 -66
- package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDatePicker.js +51 -99
- package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDateTimePicker.js +136 -0
- package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
- package/dist/esm/v2/patterns/FormikErrorFocus.js +22 -23
- package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/esm/v2/patterns/FormikErrorSummary.js +89 -0
- package/dist/esm/v2/patterns/FormikErrorSummary.js.map +1 -0
- package/dist/esm/v2/patterns/FormikFile.js +94 -78
- package/dist/esm/v2/patterns/FormikFile.js.map +1 -1
- package/dist/esm/v2/patterns/FormikInput.js +40 -50
- package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
- package/dist/esm/v2/patterns/FormikRadioGroup.js +129 -0
- package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
- package/dist/esm/v2/patterns/FormikReferentielField.js +49 -59
- package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/esm/v2/patterns/FormikSelect.js +64 -84
- package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/esm/v2/patterns/FormikTextarea.js +30 -43
- package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +64 -65
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/esm/v2/patterns/NetworkErrorBanner.js +6 -7
- package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/esm/v2/patterns/PageContent.js +10 -14
- package/dist/esm/v2/patterns/PageContent.js.map +1 -1
- package/dist/esm/v2/patterns/PreviewDrawer.js +153 -0
- package/dist/esm/v2/patterns/PreviewDrawer.js.map +1 -0
- package/dist/esm/v2/patterns/ReferentielField.js +327 -312
- package/dist/esm/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/esm/v2/patterns/RowFavoriteToggle.js +127 -0
- package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
- package/dist/esm/v2/patterns/SaveFilterDialog.js +38 -66
- package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/esm/v2/patterns/SavedFiltersMenu.js +62 -81
- package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/esm/v2/patterns/SkeletonPageShell.js +106 -129
- package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/esm/v2/patterns/SortableHeader.js +22 -45
- package/dist/esm/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/esm/v2/patterns/Tour.js +94 -120
- package/dist/esm/v2/patterns/Tour.js.map +1 -1
- package/dist/esm/v2/patterns/_dataGridShared.js +107 -128
- package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/esm/v2/patterns/_pickerSerialisation.js +72 -0
- package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
- package/dist/esm/v2/patterns/_sort.js +17 -33
- package/dist/esm/v2/patterns/_sort.js.map +1 -1
- package/dist/esm/v2/patterns/_useColumnReorder.js +122 -160
- package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/esm/v2/patterns/_useColumnResize.js +78 -96
- package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/esm/v2/patterns/filterCriteria.js +102 -0
- package/dist/esm/v2/patterns/filterCriteria.js.map +1 -0
- package/dist/esm/v2/patterns/index.js +235 -0
- package/dist/esm/v2/patterns/index.js.map +1 -1
- package/dist/esm/v2/patterns/rowActions.js +223 -0
- package/dist/esm/v2/patterns/rowActions.js.map +1 -0
- package/dist/esm/v2/personalization/PersonalizationProvider.js +50 -47
- package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/_storageKey.js +5 -5
- package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +22 -23
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +13 -13
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/favorites.js +36 -60
- package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/favoritesView.js +22 -34
- package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js +203 -0
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/index.js +5 -0
- package/dist/esm/v2/personalization/capabilities/index.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
- package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
- package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
- package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/esm/v2/personalization/index.js +35 -0
- package/dist/esm/v2/personalization/index.js.map +1 -1
- package/dist/esm/v2/personalization/personalizationContext.js +9 -9
- package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
- package/dist/esm/v2/personalization/schema.js +8 -9
- package/dist/esm/v2/personalization/schema.js.map +1 -1
- package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
- package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/esm/v2/referentiel/types.js +2 -0
- package/dist/esm/v2/referentiel/types.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
- package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
- package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
- package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
- package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/esm/v2/theme/_brand.js +8 -24
- package/dist/esm/v2/theme/_brand.js.map +1 -1
- package/dist/esm/v2/theme/_brandSecondary.js +8 -24
- package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
- package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
- package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/esm/v2/theme/cssVariables.js +62 -69
- package/dist/esm/v2/theme/cssVariables.js.map +1 -1
- package/dist/esm/v2/theme/index.js +5 -5
- package/dist/esm/v2/theme/index.js.map +1 -1
- package/dist/esm/v2/tokens/breakpoints.js +14 -14
- package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
- package/dist/esm/v2/tokens/chart.js +261 -0
- package/dist/esm/v2/tokens/chart.js.map +1 -0
- package/dist/esm/v2/tokens/colors.js +22 -22
- package/dist/esm/v2/tokens/colors.js.map +1 -1
- package/dist/esm/v2/tokens/density.js +62 -7
- package/dist/esm/v2/tokens/density.js.map +1 -1
- package/dist/esm/v2/tokens/index.js +49 -34
- package/dist/esm/v2/tokens/index.js.map +1 -1
- package/dist/esm/v2/tokens/motion.js +12 -20
- package/dist/esm/v2/tokens/motion.js.map +1 -1
- package/dist/esm/v2/tokens/radius.js +1 -1
- package/dist/esm/v2/tokens/radius.js.map +1 -1
- package/dist/esm/v2/tokens/shadows.js +6 -6
- package/dist/esm/v2/tokens/shadows.js.map +1 -1
- package/dist/esm/v2/tokens/spacing.js +2 -2
- package/dist/esm/v2/tokens/spacing.js.map +1 -1
- package/dist/esm/v2/tokens/state.js +1 -1
- package/dist/esm/v2/tokens/state.js.map +1 -1
- package/dist/esm/v2/tokens/statusPalette.js +17 -21
- package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
- package/dist/esm/v2/tokens/tokens.json +6 -1
- package/dist/esm/v2/tokens/typography.js +13 -13
- package/dist/esm/v2/tokens/typography.js.map +1 -1
- package/dist/esm/v2/tokens/zIndex.js +1 -1
- package/dist/esm/v2/tokens/zIndex.js.map +1 -1
- package/dist/esm/v2/types/datagrid.js.map +1 -1
- package/dist/esm/v2/utils/apiError.js +16 -37
- package/dist/esm/v2/utils/apiError.js.map +1 -1
- package/dist/esm/v2/utils/contrast.js +31 -32
- package/dist/esm/v2/utils/contrast.js.map +1 -1
- package/dist/esm/v2/utils/cx.js +5 -25
- package/dist/esm/v2/utils/cx.js.map +1 -1
- package/dist/esm/v2/utils/fileDownload.js +23 -26
- package/dist/esm/v2/utils/fileDownload.js.map +1 -1
- package/dist/esm/v2/utils/fileValidation.js +209 -0
- package/dist/esm/v2/utils/fileValidation.js.map +1 -0
- package/dist/esm/v2/utils/fmtDate.js +111 -0
- package/dist/esm/v2/utils/fmtDate.js.map +1 -0
- package/dist/esm/v2/utils/fmtMoney.js +8 -10
- package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
- package/dist/esm/v2/utils/formikErrors.js +78 -0
- package/dist/esm/v2/utils/formikErrors.js.map +1 -0
- package/dist/esm/v2/utils/index.js +35 -2
- package/dist/esm/v2/utils/index.js.map +1 -1
- package/dist/esm/v2/utils/mergeLabels.js +7 -12
- package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
- package/dist/esm/v2/utils/networkStatus.js +12 -12
- package/dist/esm/v2/utils/networkStatus.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +122 -47
- package/dist/index.js.map +1 -1
- package/dist/v2/__tests__/AppMain.test.js +133 -0
- package/dist/v2/__tests__/AppMain.test.js.map +1 -0
- package/dist/v2/__tests__/ChartFigure.test.js +183 -0
- package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
- package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
- package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
- package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
- package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
- package/dist/v2/__tests__/FieldError.test.js +98 -69
- package/dist/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/v2/__tests__/FieldNaming.test.js +161 -0
- package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
- package/dist/v2/__tests__/FieldWidth.test.js +148 -0
- package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
- package/dist/v2/__tests__/FileCard.test.js +45 -48
- package/dist/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/v2/__tests__/FormikCheckbox.test.js +175 -0
- package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
- package/dist/v2/__tests__/FormikDateTimePicker.test.js +237 -0
- package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
- package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
- package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js +300 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
- package/dist/v2/__tests__/MobileRowCard.test.js +100 -102
- package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
- package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
- package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
- package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
- package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
- package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/v2/__tests__/apiError.test.js +50 -69
- package/dist/v2/__tests__/apiError.test.js.map +1 -1
- package/dist/v2/__tests__/banned-patterns.test.js +42 -123
- package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
- package/dist/v2/__tests__/chart-palette.test.js +205 -0
- package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
- package/dist/v2/__tests__/contrast-palette.test.js +42 -74
- package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
- package/dist/v2/__tests__/cssVariables.test.js +44 -51
- package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
- package/dist/v2/__tests__/fileValidation.test.js +136 -0
- package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
- package/dist/v2/__tests__/filterCriteria.test.js +324 -0
- package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
- package/dist/v2/__tests__/fmtDate.test.js +69 -0
- package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
- package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
- package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
- package/dist/v2/__tests__/labels-merge.test.js +38 -46
- package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/v2/__tests__/locale-fallback.test.js +47 -52
- package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
- package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
- package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
- package/dist/v2/__tests__/rowActions.test.js +186 -0
- package/dist/v2/__tests__/rowActions.test.js.map +1 -0
- package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
- package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
- package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
- package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
- package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
- package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
- package/dist/v2/components/Accordion.js +60 -82
- package/dist/v2/components/Accordion.js.map +1 -1
- package/dist/v2/components/ActionStrip.js +40 -52
- package/dist/v2/components/ActionStrip.js.map +1 -1
- package/dist/v2/components/Banner.js +42 -41
- package/dist/v2/components/Banner.js.map +1 -1
- package/dist/v2/components/Busy.js +22 -27
- package/dist/v2/components/Busy.js.map +1 -1
- package/dist/v2/components/Button.js +39 -50
- package/dist/v2/components/Button.js.map +1 -1
- package/dist/v2/components/CategoryTag.d.ts.map +1 -1
- package/dist/v2/components/CategoryTag.js +49 -32
- package/dist/v2/components/CategoryTag.js.map +1 -1
- package/dist/v2/components/Checkbox.js +39 -45
- package/dist/v2/components/Checkbox.js.map +1 -1
- package/dist/v2/components/Chip.js +29 -42
- package/dist/v2/components/Chip.js.map +1 -1
- package/dist/v2/components/Combobox.js +122 -144
- package/dist/v2/components/Combobox.js.map +1 -1
- package/dist/v2/components/CommandPalette.js +138 -225
- package/dist/v2/components/CommandPalette.js.map +1 -1
- package/dist/v2/components/ConfirmDialog.js +46 -56
- package/dist/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/v2/components/DatePicker.js +81 -86
- package/dist/v2/components/DatePicker.js.map +1 -1
- package/dist/v2/components/DateRangePicker.js +77 -87
- package/dist/v2/components/DateRangePicker.js.map +1 -1
- package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
- package/dist/v2/components/DateTimePicker.js +121 -95
- package/dist/v2/components/DateTimePicker.js.map +1 -1
- package/dist/v2/components/Drawer.d.ts.map +1 -1
- package/dist/v2/components/Drawer.js +93 -88
- package/dist/v2/components/Drawer.js.map +1 -1
- package/dist/v2/components/Dropzone.js +150 -196
- package/dist/v2/components/Dropzone.js.map +1 -1
- package/dist/v2/components/EmptyState.js +18 -20
- package/dist/v2/components/EmptyState.js.map +1 -1
- package/dist/v2/components/FavoriteToggle.js +28 -39
- package/dist/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/v2/components/Field.d.ts +121 -5
- package/dist/v2/components/Field.d.ts.map +1 -1
- package/dist/v2/components/Field.js +221 -62
- package/dist/v2/components/Field.js.map +1 -1
- package/dist/v2/components/FieldError.js +18 -21
- package/dist/v2/components/FieldError.js.map +1 -1
- package/dist/v2/components/FieldHelp.js +40 -60
- package/dist/v2/components/FieldHelp.js.map +1 -1
- package/dist/v2/components/FileCard.js +27 -31
- package/dist/v2/components/FileCard.js.map +1 -1
- package/dist/v2/components/FilterTab.js +30 -38
- package/dist/v2/components/FilterTab.js.map +1 -1
- package/dist/v2/components/ForbiddenPage.d.ts +25 -1
- package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
- package/dist/v2/components/ForbiddenPage.js +37 -17
- package/dist/v2/components/ForbiddenPage.js.map +1 -1
- package/dist/v2/components/FormGrid.js +53 -59
- package/dist/v2/components/FormGrid.js.map +1 -1
- package/dist/v2/components/FormikDisplay.d.ts +50 -1
- package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
- package/dist/v2/components/FormikDisplay.js +108 -33
- package/dist/v2/components/FormikDisplay.js.map +1 -1
- package/dist/v2/components/Input.d.ts +40 -0
- package/dist/v2/components/Input.d.ts.map +1 -1
- package/dist/v2/components/Input.js +81 -41
- package/dist/v2/components/Input.js.map +1 -1
- package/dist/v2/components/KPICard.js +57 -67
- package/dist/v2/components/KPICard.js.map +1 -1
- package/dist/v2/components/KPIStrip.js +16 -22
- package/dist/v2/components/KPIStrip.js.map +1 -1
- package/dist/v2/components/KV.js +25 -31
- package/dist/v2/components/KV.js.map +1 -1
- package/dist/v2/components/KVGrid.js +19 -26
- package/dist/v2/components/KVGrid.js.map +1 -1
- package/dist/v2/components/Layout.js +91 -120
- package/dist/v2/components/Layout.js.map +1 -1
- package/dist/v2/components/MobileRowCard.js +79 -91
- package/dist/v2/components/MobileRowCard.js.map +1 -1
- package/dist/v2/components/Modal.js +61 -69
- package/dist/v2/components/Modal.js.map +1 -1
- package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
- package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
- package/dist/v2/components/NetworkErrorPage.js +38 -21
- package/dist/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/v2/components/NotFoundPage.d.ts +17 -1
- package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
- package/dist/v2/components/NotFoundPage.js +37 -18
- package/dist/v2/components/NotFoundPage.js.map +1 -1
- package/dist/v2/components/NumberInput.js +88 -118
- package/dist/v2/components/NumberInput.js.map +1 -1
- package/dist/v2/components/OverflowMenu.js +38 -56
- package/dist/v2/components/OverflowMenu.js.map +1 -1
- package/dist/v2/components/PdfViewer.js +34 -45
- package/dist/v2/components/PdfViewer.js.map +1 -1
- package/dist/v2/components/ProgressBar.js +42 -49
- package/dist/v2/components/ProgressBar.js.map +1 -1
- package/dist/v2/components/Radio.js +59 -67
- package/dist/v2/components/Radio.js.map +1 -1
- package/dist/v2/components/SectionErrorBoundary.js +90 -135
- package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
- package/dist/v2/components/SectionHeader.js +34 -41
- package/dist/v2/components/SectionHeader.js.map +1 -1
- package/dist/v2/components/Segmented.js +69 -93
- package/dist/v2/components/Segmented.js.map +1 -1
- package/dist/v2/components/Select.d.ts +26 -2
- package/dist/v2/components/Select.d.ts.map +1 -1
- package/dist/v2/components/Select.js +120 -155
- package/dist/v2/components/Select.js.map +1 -1
- package/dist/v2/components/ServerErrorPage.d.ts +27 -1
- package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
- package/dist/v2/components/ServerErrorPage.js +37 -20
- package/dist/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/v2/components/Skeleton.js +86 -100
- package/dist/v2/components/Skeleton.js.map +1 -1
- package/dist/v2/components/SkipLink.js +9 -12
- package/dist/v2/components/SkipLink.js.map +1 -1
- package/dist/v2/components/Spinner.js +16 -25
- package/dist/v2/components/Spinner.js.map +1 -1
- package/dist/v2/components/Status.js +18 -29
- package/dist/v2/components/Status.js.map +1 -1
- package/dist/v2/components/Stepper.js +80 -82
- package/dist/v2/components/Stepper.js.map +1 -1
- package/dist/v2/components/Surface.js +34 -49
- package/dist/v2/components/Surface.js.map +1 -1
- package/dist/v2/components/Switch.js +29 -37
- package/dist/v2/components/Switch.js.map +1 -1
- package/dist/v2/components/TabPanel.d.ts +17 -0
- package/dist/v2/components/TabPanel.d.ts.map +1 -0
- package/dist/v2/components/TabPanel.js +90 -0
- package/dist/v2/components/TabPanel.js.map +1 -0
- package/dist/v2/components/Tabs.d.ts +25 -0
- package/dist/v2/components/Tabs.d.ts.map +1 -1
- package/dist/v2/components/Tabs.js +53 -29
- package/dist/v2/components/Tabs.js.map +1 -1
- package/dist/v2/components/TelInput.js +80 -115
- package/dist/v2/components/TelInput.js.map +1 -1
- package/dist/v2/components/Textarea.js +26 -35
- package/dist/v2/components/Textarea.js.map +1 -1
- package/dist/v2/components/TimePicker.js +62 -74
- package/dist/v2/components/TimePicker.js.map +1 -1
- package/dist/v2/components/Toast.js +119 -174
- package/dist/v2/components/Toast.js.map +1 -1
- package/dist/v2/components/Tooltip.js +23 -38
- package/dist/v2/components/Tooltip.js.map +1 -1
- package/dist/v2/components/_ErrorPageBody.js +15 -16
- package/dist/v2/components/_ErrorPageBody.js.map +1 -1
- package/dist/v2/components/_pickerShared.js +5 -5
- package/dist/v2/components/_pickerShared.js.map +1 -1
- package/dist/v2/components/index.d.ts +67 -1
- package/dist/v2/components/index.d.ts.map +1 -1
- package/dist/v2/components/index.js +153 -136
- package/dist/v2/components/index.js.map +1 -1
- package/dist/v2/hooks/index.d.ts +65 -0
- package/dist/v2/hooks/index.d.ts.map +1 -1
- package/dist/v2/hooks/index.js +63 -24
- package/dist/v2/hooks/index.js.map +1 -1
- package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
- package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
- package/dist/v2/hooks/useAppliedFilters.js +117 -0
- package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
- package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
- package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
- package/dist/v2/hooks/useDebouncedCallback.js +87 -0
- package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/v2/hooks/useDelayedFlag.js +6 -20
- package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
- package/dist/v2/hooks/useDensity.d.ts.map +1 -1
- package/dist/v2/hooks/useDensity.js +14 -18
- package/dist/v2/hooks/useDensity.js.map +1 -1
- package/dist/v2/hooks/useFocusFirstError.js +26 -34
- package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
- package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
- package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
- package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
- package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
- package/dist/v2/hooks/useFocusTrap.js +20 -24
- package/dist/v2/hooks/useFocusTrap.js.map +1 -1
- package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
- package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
- package/dist/v2/hooks/useFormAutoSave.js +39 -54
- package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
- package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
- package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
- package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
- package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
- package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
- package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
- package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
- package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
- package/dist/v2/hooks/useResolvedDensity.js +5 -13
- package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
- package/dist/v2/hooks/useSortedRows.js +4 -6
- package/dist/v2/hooks/useSortedRows.js.map +1 -1
- package/dist/v2/hooks/useTabLoading.js +7 -22
- package/dist/v2/hooks/useTabLoading.js.map +1 -1
- package/dist/v2/index.d.ts.map +1 -1
- package/dist/v2/index.js +143 -145
- package/dist/v2/index.js.map +1 -1
- package/dist/v2/modalContext.js +2 -2
- package/dist/v2/modalContext.js.map +1 -1
- package/dist/v2/models/favorite.d.ts +8 -9
- package/dist/v2/models/favorite.d.ts.map +1 -1
- package/dist/v2/models/favorite.js.map +1 -1
- package/dist/v2/models/index.js +4 -4
- package/dist/v2/models/index.js.map +1 -1
- package/dist/v2/models/personalization.d.ts +44 -48
- package/dist/v2/models/personalization.d.ts.map +1 -1
- package/dist/v2/models/personalization.js.map +1 -1
- package/dist/v2/models/referentiel.d.ts +32 -50
- package/dist/v2/models/referentiel.d.ts.map +1 -1
- package/dist/v2/models/referentiel.js.map +1 -1
- package/dist/v2/models/savedFilter.d.ts +8 -17
- package/dist/v2/models/savedFilter.d.ts.map +1 -1
- package/dist/v2/models/savedFilter.js.map +1 -1
- package/dist/v2/patterns/ActionBar.js +152 -187
- package/dist/v2/patterns/ActionBar.js.map +1 -1
- package/dist/v2/patterns/AppMain.d.ts +109 -0
- package/dist/v2/patterns/AppMain.d.ts.map +1 -0
- package/dist/v2/patterns/AppMain.js +115 -0
- package/dist/v2/patterns/AppMain.js.map +1 -0
- package/dist/v2/patterns/BulkActionBar.js +40 -42
- package/dist/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/v2/patterns/ChartFigure.d.ts +124 -0
- package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
- package/dist/v2/patterns/ChartFigure.js +159 -0
- package/dist/v2/patterns/ChartFigure.js.map +1 -0
- package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
- package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/v2/patterns/ColumnsToggle.js +60 -94
- package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
- package/dist/v2/patterns/DataGrid.js +262 -297
- package/dist/v2/patterns/DataGrid.js.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
- package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/v2/patterns/DataGridToolbar.js +103 -106
- package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/v2/patterns/DataGridVirtualized.js +179 -217
- package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/v2/patterns/DetailSplit.d.ts +87 -0
- package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
- package/dist/v2/patterns/DetailSplit.js +116 -0
- package/dist/v2/patterns/DetailSplit.js.map +1 -0
- package/dist/v2/patterns/FavoriteColumn.d.ts +9 -9
- package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
- package/dist/v2/patterns/FavoriteColumn.js +32 -80
- package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/v2/patterns/FavoritesFilter.js +36 -44
- package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
- package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
- package/dist/v2/patterns/FilterTabBar.js +120 -0
- package/dist/v2/patterns/FilterTabBar.js.map +1 -0
- package/dist/v2/patterns/FormErrorSummary.js +20 -23
- package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/v2/patterns/FormPageShell.js +53 -50
- package/dist/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/v2/patterns/FormSection.d.ts +8 -3
- package/dist/v2/patterns/FormSection.d.ts.map +1 -1
- package/dist/v2/patterns/FormSection.js +44 -51
- package/dist/v2/patterns/FormSection.js.map +1 -1
- package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
- package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
- package/dist/v2/patterns/FormikCheckbox.js +138 -0
- package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
- package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/v2/patterns/FormikCombobox.d.ts +7 -1
- package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCombobox.js +55 -69
- package/dist/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.d.ts +13 -1
- package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.js +59 -106
- package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
- package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
- package/dist/v2/patterns/FormikDateTimePicker.js +144 -0
- package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
- package/dist/v2/patterns/FormikErrorFocus.js +25 -26
- package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
- package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
- package/dist/v2/patterns/FormikErrorSummary.js +97 -0
- package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
- package/dist/v2/patterns/FormikFile.d.ts +14 -1
- package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
- package/dist/v2/patterns/FormikFile.js +99 -83
- package/dist/v2/patterns/FormikFile.js.map +1 -1
- package/dist/v2/patterns/FormikInput.d.ts +11 -1
- package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
- package/dist/v2/patterns/FormikInput.js +45 -55
- package/dist/v2/patterns/FormikInput.js.map +1 -1
- package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
- package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
- package/dist/v2/patterns/FormikRadioGroup.js +137 -0
- package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
- package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
- package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.js +54 -64
- package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/v2/patterns/FormikSelect.d.ts +9 -1
- package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
- package/dist/v2/patterns/FormikSelect.js +70 -89
- package/dist/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/v2/patterns/FormikTextarea.d.ts +9 -1
- package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
- package/dist/v2/patterns/FormikTextarea.js +35 -48
- package/dist/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +14 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.js +71 -74
- package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
- package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/v2/patterns/PageContent.js +17 -20
- package/dist/v2/patterns/PageContent.js.map +1 -1
- package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
- package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
- package/dist/v2/patterns/PreviewDrawer.js +159 -0
- package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
- package/dist/v2/patterns/ReferentielField.d.ts +86 -2
- package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/ReferentielField.js +347 -327
- package/dist/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/v2/patterns/RowFavoriteToggle.d.ts +98 -0
- package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
- package/dist/v2/patterns/RowFavoriteToggle.js +135 -0
- package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
- package/dist/v2/patterns/SaveFilterDialog.js +50 -77
- package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
- package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/v2/patterns/SkeletonPageShell.js +122 -143
- package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/v2/patterns/SortableHeader.js +35 -57
- package/dist/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/v2/patterns/Tour.js +121 -142
- package/dist/v2/patterns/Tour.js.map +1 -1
- package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
- package/dist/v2/patterns/_dataGridShared.js +131 -147
- package/dist/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
- package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
- package/dist/v2/patterns/_pickerSerialisation.js +80 -0
- package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
- package/dist/v2/patterns/_sort.js +17 -33
- package/dist/v2/patterns/_sort.js.map +1 -1
- package/dist/v2/patterns/_useColumnReorder.js +124 -163
- package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/v2/patterns/_useColumnResize.js +80 -99
- package/dist/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/v2/patterns/filterCriteria.d.ts +78 -0
- package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
- package/dist/v2/patterns/filterCriteria.js +110 -0
- package/dist/v2/patterns/filterCriteria.js.map +1 -0
- package/dist/v2/patterns/index.d.ts +247 -0
- package/dist/v2/patterns/index.d.ts.map +1 -1
- package/dist/v2/patterns/index.js +182 -70
- package/dist/v2/patterns/index.js.map +1 -1
- package/dist/v2/patterns/rowActions.d.ts +150 -0
- package/dist/v2/patterns/rowActions.d.ts.map +1 -0
- package/dist/v2/patterns/rowActions.js +232 -0
- package/dist/v2/patterns/rowActions.js.map +1 -0
- package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
- package/dist/v2/personalization/PersonalizationProvider.js +57 -53
- package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/v2/personalization/adapters/_storageKey.js +5 -5
- package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
- package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/index.js +5 -5
- package/dist/v2/personalization/adapters/index.js.map +1 -1
- package/dist/v2/personalization/capabilities/favorites.js +39 -62
- package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
- package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
- package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
- package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/gridPreferences.js +210 -0
- package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
- package/dist/v2/personalization/capabilities/index.d.ts +6 -0
- package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
- package/dist/v2/personalization/capabilities/index.js +23 -10
- package/dist/v2/personalization/capabilities/index.js.map +1 -1
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
- package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
- package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.js +81 -182
- package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/v2/personalization/index.d.ts +34 -0
- package/dist/v2/personalization/index.d.ts.map +1 -1
- package/dist/v2/personalization/index.js +41 -21
- package/dist/v2/personalization/index.js.map +1 -1
- package/dist/v2/personalization/personalizationContext.js +10 -12
- package/dist/v2/personalization/personalizationContext.js.map +1 -1
- package/dist/v2/personalization/schema.js +8 -9
- package/dist/v2/personalization/schema.js.map +1 -1
- package/dist/v2/referentiel/ReferentielProvider.js +31 -45
- package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/v2/referentiel/index.js +11 -13
- package/dist/v2/referentiel/index.js.map +1 -1
- package/dist/v2/referentiel/types.d.ts +105 -0
- package/dist/v2/referentiel/types.d.ts.map +1 -0
- package/dist/v2/referentiel/types.js +6 -0
- package/dist/v2/referentiel/types.js.map +1 -0
- package/dist/v2/referentiel/useReferentielClient.js +13 -16
- package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
- package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.js +63 -120
- package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
- package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.js +40 -95
- package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/v2/theme/_brand.js +12 -26
- package/dist/v2/theme/_brand.js.map +1 -1
- package/dist/v2/theme/_brandSecondary.js +12 -26
- package/dist/v2/theme/_brandSecondary.js.map +1 -1
- package/dist/v2/theme/createPortnetTheme.js +41 -49
- package/dist/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/v2/theme/cssVariables.d.ts +3 -3
- package/dist/v2/theme/cssVariables.d.ts.map +1 -1
- package/dist/v2/theme/cssVariables.js +65 -70
- package/dist/v2/theme/cssVariables.js.map +1 -1
- package/dist/v2/theme/index.js +10 -10
- package/dist/v2/theme/index.js.map +1 -1
- package/dist/v2/tokens/breakpoints.js +16 -16
- package/dist/v2/tokens/breakpoints.js.map +1 -1
- package/dist/v2/tokens/chart.d.ts +103 -0
- package/dist/v2/tokens/chart.d.ts.map +1 -0
- package/dist/v2/tokens/chart.js +270 -0
- package/dist/v2/tokens/chart.js.map +1 -0
- package/dist/v2/tokens/colors.js +24 -24
- package/dist/v2/tokens/colors.js.map +1 -1
- package/dist/v2/tokens/density.d.ts +104 -0
- package/dist/v2/tokens/density.d.ts.map +1 -1
- package/dist/v2/tokens/density.js +67 -12
- package/dist/v2/tokens/density.js.map +1 -1
- package/dist/v2/tokens/index.d.ts +50 -1
- package/dist/v2/tokens/index.d.ts.map +1 -1
- package/dist/v2/tokens/index.js +116 -68
- package/dist/v2/tokens/index.js.map +1 -1
- package/dist/v2/tokens/motion.js +16 -22
- package/dist/v2/tokens/motion.js.map +1 -1
- package/dist/v2/tokens/radius.js +3 -3
- package/dist/v2/tokens/radius.js.map +1 -1
- package/dist/v2/tokens/shadows.js +8 -8
- package/dist/v2/tokens/shadows.js.map +1 -1
- package/dist/v2/tokens/spacing.js +4 -4
- package/dist/v2/tokens/spacing.js.map +1 -1
- package/dist/v2/tokens/state.js +3 -3
- package/dist/v2/tokens/state.js.map +1 -1
- package/dist/v2/tokens/statusPalette.js +21 -23
- package/dist/v2/tokens/statusPalette.js.map +1 -1
- package/dist/v2/tokens/tokens.json +6 -1
- package/dist/v2/tokens/typography.js +15 -15
- package/dist/v2/tokens/typography.js.map +1 -1
- package/dist/v2/tokens/zIndex.js +3 -3
- package/dist/v2/tokens/zIndex.js.map +1 -1
- package/dist/v2/types/datagrid.d.ts +9 -1
- package/dist/v2/types/datagrid.d.ts.map +1 -1
- package/dist/v2/types/datagrid.js.map +1 -1
- package/dist/v2/types/index.js +2 -2
- package/dist/v2/types/index.js.map +1 -1
- package/dist/v2/utils/apiError.js +16 -37
- package/dist/v2/utils/apiError.js.map +1 -1
- package/dist/v2/utils/contrast.js +31 -32
- package/dist/v2/utils/contrast.js.map +1 -1
- package/dist/v2/utils/cx.js +7 -27
- package/dist/v2/utils/cx.js.map +1 -1
- package/dist/v2/utils/fileDownload.js +25 -28
- package/dist/v2/utils/fileDownload.js.map +1 -1
- package/dist/v2/utils/fileValidation.d.ts +116 -0
- package/dist/v2/utils/fileValidation.d.ts.map +1 -0
- package/dist/v2/utils/fileValidation.js +220 -0
- package/dist/v2/utils/fileValidation.js.map +1 -0
- package/dist/v2/utils/fmtDate.d.ts +103 -0
- package/dist/v2/utils/fmtDate.d.ts.map +1 -0
- package/dist/v2/utils/fmtDate.js +119 -0
- package/dist/v2/utils/fmtDate.js.map +1 -0
- package/dist/v2/utils/fmtMoney.d.ts +3 -3
- package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
- package/dist/v2/utils/fmtMoney.js +9 -11
- package/dist/v2/utils/fmtMoney.js.map +1 -1
- package/dist/v2/utils/formikErrors.d.ts +67 -0
- package/dist/v2/utils/formikErrors.d.ts.map +1 -0
- package/dist/v2/utils/formikErrors.js +85 -0
- package/dist/v2/utils/formikErrors.js.map +1 -0
- package/dist/v2/utils/index.d.ts +5 -0
- package/dist/v2/utils/index.d.ts.map +1 -1
- package/dist/v2/utils/index.js +67 -18
- package/dist/v2/utils/index.js.map +1 -1
- package/dist/v2/utils/mergeLabels.js +9 -14
- package/dist/v2/utils/mergeLabels.js.map +1 -1
- package/dist/v2/utils/networkStatus.js +14 -14
- package/dist/v2/utils/networkStatus.js.map +1 -1
- package/package.json +26 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.js","names":["React","_interopRequireWildcard","require","_ExpandMore","_interopRequireDefault","_Box","_jsxRuntime","_excluded","_excluded2","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","AccordionContext","createContext","Accordion","_ref","children","defaultOpen","open","onChange","_ref$mode","mode","sx","rest","controlled","_React$useState","useState","Set","_React$useState2","internalOpen","setInternalOpen","openSet","useMemo","toggle","useCallback","id","clear","add","nextArr","ctx","jsx","Provider","display","flexDirection","gap","AccordionItem","_ref2","title","badge","icon","useContext","Error","isOpen","handleClick","e","preventDefault","jsxs","component","border","borderRadius","background","listStyle","onClick","alignItems","padding","cursor","userSelect","fontSize","fontWeight","color","outline","outlineOffset","flex","minWidth","transition","transform","borderTop","_default","exports","assign","Item"],"sources":["../../../src/lib/v2/components/Accordion.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { BoxProps } from \"@mui/material/Box\";\r\n\r\n/**\r\n * Accordion — Portnet UI v2\r\n *\r\n * Charter §03 · atomic disclosure primitive. Replaces the local\r\n * AppAccordion wrapper that host modules previously maintained\r\n * (audit Batch 2 violation C1 in ms-ti-fe — direct MUI Accordion\r\n * with no tokens / a11y harmonisation).\r\n *\r\n * Implementation uses native <details>/<summary> elements so the\r\n * keyboard interaction (Enter/Space to toggle, Tab to enter\r\n * content) and ARIA role/state mapping come from the browser\r\n * (WCAG 2.1 SC 4.1.2, R-Ar.1).\r\n *\r\n * Compound-component API:\r\n *\r\n * <Accordion defaultOpen={[\"general\"]}>\r\n * <Accordion.Item id=\"general\" title=\"Informations générales\">\r\n * … content …\r\n * </Accordion.Item>\r\n * <Accordion.Item id=\"documents\" title=\"Documents joints\" badge=\"5\">\r\n * … content …\r\n * </Accordion.Item>\r\n * </Accordion>\r\n *\r\n * Controlled mode:\r\n *\r\n * const [open, setOpen] = useState([\"general\"]);\r\n * <Accordion open={open} onChange={setOpen}>…</Accordion>\r\n *\r\n * Modes:\r\n * \"multiple\" (default) — any number of items may be open\r\n * \"single\" — only one item open at a time\r\n * (mutually-exclusive accordion)\r\n */\r\n\r\nexport type AccordionMode = \"multiple\" | \"single\";\r\n\r\ninterface AccordionContextValue {\r\n openSet: Set<string>;\r\n toggle: (id: string) => void;\r\n}\r\n\r\nconst AccordionContext = React.createContext<AccordionContextValue | null>(null);\r\n\r\nexport interface AccordionProps extends Omit<BoxProps, \"onChange\"> {\r\n defaultOpen?: string[] | undefined;\r\n open?: string[] | undefined;\r\n onChange?: ((open: string[]) => void) | undefined;\r\n mode?: AccordionMode | undefined;\r\n}\r\n\r\nfunction Accordion({\r\n children,\r\n defaultOpen,\r\n open,\r\n onChange,\r\n mode = \"multiple\",\r\n sx,\r\n ...rest\r\n}: AccordionProps) {\r\n const controlled = open !== undefined;\r\n const [internalOpen, setInternalOpen] = React.useState<Set<string>>(() =>\r\n new Set<string>(defaultOpen || [])\r\n );\r\n\r\n const openSet = React.useMemo(\r\n () => (controlled ? new Set<string>(open) : internalOpen),\r\n [controlled, open, internalOpen]\r\n );\r\n\r\n const toggle = React.useCallback(\r\n (id: string) => {\r\n const next = new Set<string>(openSet);\r\n if (next.has(id)) {\r\n next.delete(id);\r\n } else {\r\n if (mode === \"single\") next.clear();\r\n next.add(id);\r\n }\r\n const nextArr = Array.from(next);\r\n if (!controlled) setInternalOpen(next);\r\n onChange?.(nextArr);\r\n },\r\n [openSet, mode, controlled, onChange]\r\n );\r\n\r\n const ctx = React.useMemo<AccordionContextValue>(\r\n () => ({ openSet, toggle }),\r\n [openSet, toggle]\r\n );\r\n\r\n return (\r\n <AccordionContext.Provider value={ctx}>\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-2)\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n </AccordionContext.Provider>\r\n );\r\n}\r\n\r\n// BoxProps<\"details\">: AccordionItem always renders through native <details>,\r\n// so its inherited DOM-attribute surface (onClick, onCopy, aria-*, ...) must\r\n// be typed against HTMLDetailsElement, not the plain-BoxProps default of\r\n// HTMLDivElement — otherwise every handler mismatches the details overload\r\n// once `component=\"details\"` resolves cleanly (TS2769). `component` / `open` /\r\n// `name` are additionally omitted: this item owns `open` via Accordion's\r\n// context state and is never meant to be re-parented or native-name-grouped,\r\n// so neither should be an externally settable prop.\r\nexport interface AccordionItemProps\r\n extends Omit<BoxProps<\"details\">, \"id\" | \"title\" | \"open\" | \"name\" | \"component\"> {\r\n id: string;\r\n title: React.ReactNode;\r\n badge?: React.ReactNode | undefined;\r\n icon?: React.ReactNode | undefined;\r\n}\r\n\r\nfunction AccordionItem({ id, title, badge, icon, children, sx, ...rest }: AccordionItemProps) {\r\n const ctx = React.useContext(AccordionContext);\r\n if (!ctx) {\r\n throw new Error(\"Accordion.Item must be rendered inside <Accordion>.\");\r\n }\r\n const isOpen = ctx.openSet.has(id);\r\n\r\n /* React's controlled <details>/open is fiddly — we use the native\r\n * element but intercept the click on the summary, preventing the\r\n * default toggle so our state stays the single source of truth. */\r\n const handleClick = (e: React.MouseEvent<HTMLElement>) => {\r\n e.preventDefault();\r\n ctx.toggle(id);\r\n };\r\n\r\n return (\r\n <Box\r\n component=\"details\"\r\n // We re-render with the boolean so React/DOM stay in sync.\r\n open={isOpen || undefined}\r\n sx={{\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-md)\",\r\n background: \"var(--surface)\",\r\n // Remove the default browser triangle marker — we render\r\n // our own chevron in the summary content.\r\n \"& > summary::-webkit-details-marker\": { display: \"none\" },\r\n \"& > summary\": { listStyle: \"none\" },\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n <Box\r\n component=\"summary\"\r\n onClick={handleClick}\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-2)\",\r\n padding: \"var(--s-3) var(--s-4)\",\r\n cursor: \"pointer\",\r\n userSelect: \"none\",\r\n borderRadius: \"var(--r-md)\",\r\n fontSize: \"var(--text-body)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg)\",\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n }}\r\n >\r\n {icon && (\r\n <Box\r\n aria-hidden=\"true\"\r\n sx={{\r\n color: \"var(--fg-muted)\",\r\n display: \"inline-flex\",\r\n \"& svg\": { fontSize: 18 },\r\n }}\r\n >\r\n {icon}\r\n </Box>\r\n )}\r\n <Box sx={{ flex: 1, minWidth: 0 }}>{title}</Box>\r\n {badge != null && (\r\n <Box\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n color: \"var(--fg-subtle)\",\r\n background: \"var(--bg-subtle)\",\r\n borderRadius: \"var(--r-full)\",\r\n padding: \"2px 8px\",\r\n }}\r\n >\r\n {badge}\r\n </Box>\r\n )}\r\n <Box\r\n aria-hidden=\"true\"\r\n sx={{\r\n display: \"inline-flex\",\r\n color: \"var(--fg-muted)\",\r\n transition: \"transform var(--duration-base, 180ms)\",\r\n transform: isOpen ? \"rotate(180deg)\" : \"rotate(0deg)\",\r\n \"& svg\": { fontSize: 20 },\r\n \"@media (prefers-reduced-motion: reduce)\": {\r\n transition: \"none\",\r\n },\r\n }}\r\n >\r\n <ExpandMoreIcon />\r\n </Box>\r\n </Box>\r\n\r\n <Box\r\n sx={{\r\n padding: \"var(--s-2) var(--s-4) var(--s-4)\",\r\n borderTop: \"1px solid var(--border-subtle, var(--border))\",\r\n }}\r\n >\r\n {children}\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n\r\nexport default Object.assign(Accordion, { Item: AccordionItem });\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Accordion.js","names":["React","_interopRequireWildcard","require","_ExpandMore","_interopRequireDefault","_Box","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AccordionContext","createContext","Accordion","children","defaultOpen","open","onChange","mode","sx","rest","controlled","undefined","internalOpen","setInternalOpen","useState","Set","openSet","useMemo","toggle","useCallback","id","next","delete","clear","add","nextArr","Array","from","ctx","jsx","Provider","value","display","flexDirection","gap","AccordionItem","title","badge","icon","useContext","Error","isOpen","handleClick","preventDefault","jsxs","component","border","borderRadius","background","listStyle","onClick","alignItems","padding","cursor","userSelect","fontSize","fontWeight","color","outline","outlineOffset","flex","minWidth","transition","transform","borderTop","_default","exports","assign","Item"],"sources":["../../../src/lib/v2/components/Accordion.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { BoxProps } from \"@mui/material/Box\";\r\n\r\n/**\r\n * Accordion — Portnet UI v2\r\n *\r\n * Charter §03 · atomic disclosure primitive. Replaces the local\r\n * AppAccordion wrapper that host modules previously maintained\r\n * (audit Batch 2 violation C1 in ms-ti-fe — direct MUI Accordion\r\n * with no tokens / a11y harmonisation).\r\n *\r\n * Implementation uses native <details>/<summary> elements so the\r\n * keyboard interaction (Enter/Space to toggle, Tab to enter\r\n * content) and ARIA role/state mapping come from the browser\r\n * (WCAG 2.1 SC 4.1.2, R-Ar.1).\r\n *\r\n * Compound-component API:\r\n *\r\n * <Accordion defaultOpen={[\"general\"]}>\r\n * <Accordion.Item id=\"general\" title=\"Informations générales\">\r\n * … content …\r\n * </Accordion.Item>\r\n * <Accordion.Item id=\"documents\" title=\"Documents joints\" badge=\"5\">\r\n * … content …\r\n * </Accordion.Item>\r\n * </Accordion>\r\n *\r\n * Controlled mode:\r\n *\r\n * const [open, setOpen] = useState([\"general\"]);\r\n * <Accordion open={open} onChange={setOpen}>…</Accordion>\r\n *\r\n * Modes:\r\n * \"multiple\" (default) — any number of items may be open\r\n * \"single\" — only one item open at a time\r\n * (mutually-exclusive accordion)\r\n */\r\n\r\nexport type AccordionMode = \"multiple\" | \"single\";\r\n\r\ninterface AccordionContextValue {\r\n openSet: Set<string>;\r\n toggle: (id: string) => void;\r\n}\r\n\r\nconst AccordionContext = React.createContext<AccordionContextValue | null>(null);\r\n\r\nexport interface AccordionProps extends Omit<BoxProps, \"onChange\"> {\r\n defaultOpen?: string[] | undefined;\r\n open?: string[] | undefined;\r\n onChange?: ((open: string[]) => void) | undefined;\r\n mode?: AccordionMode | undefined;\r\n}\r\n\r\nfunction Accordion({\r\n children,\r\n defaultOpen,\r\n open,\r\n onChange,\r\n mode = \"multiple\",\r\n sx,\r\n ...rest\r\n}: AccordionProps) {\r\n const controlled = open !== undefined;\r\n const [internalOpen, setInternalOpen] = React.useState<Set<string>>(() =>\r\n new Set<string>(defaultOpen || [])\r\n );\r\n\r\n const openSet = React.useMemo(\r\n () => (controlled ? new Set<string>(open) : internalOpen),\r\n [controlled, open, internalOpen]\r\n );\r\n\r\n const toggle = React.useCallback(\r\n (id: string) => {\r\n const next = new Set<string>(openSet);\r\n if (next.has(id)) {\r\n next.delete(id);\r\n } else {\r\n if (mode === \"single\") next.clear();\r\n next.add(id);\r\n }\r\n const nextArr = Array.from(next);\r\n if (!controlled) setInternalOpen(next);\r\n onChange?.(nextArr);\r\n },\r\n [openSet, mode, controlled, onChange]\r\n );\r\n\r\n const ctx = React.useMemo<AccordionContextValue>(\r\n () => ({ openSet, toggle }),\r\n [openSet, toggle]\r\n );\r\n\r\n return (\r\n <AccordionContext.Provider value={ctx}>\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-2)\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n </AccordionContext.Provider>\r\n );\r\n}\r\n\r\n// BoxProps<\"details\">: AccordionItem always renders through native <details>,\r\n// so its inherited DOM-attribute surface (onClick, onCopy, aria-*, ...) must\r\n// be typed against HTMLDetailsElement, not the plain-BoxProps default of\r\n// HTMLDivElement — otherwise every handler mismatches the details overload\r\n// once `component=\"details\"` resolves cleanly (TS2769). `component` / `open` /\r\n// `name` are additionally omitted: this item owns `open` via Accordion's\r\n// context state and is never meant to be re-parented or native-name-grouped,\r\n// so neither should be an externally settable prop.\r\nexport interface AccordionItemProps\r\n extends Omit<BoxProps<\"details\">, \"id\" | \"title\" | \"open\" | \"name\" | \"component\"> {\r\n id: string;\r\n title: React.ReactNode;\r\n badge?: React.ReactNode | undefined;\r\n icon?: React.ReactNode | undefined;\r\n}\r\n\r\nfunction AccordionItem({ id, title, badge, icon, children, sx, ...rest }: AccordionItemProps) {\r\n const ctx = React.useContext(AccordionContext);\r\n if (!ctx) {\r\n throw new Error(\"Accordion.Item must be rendered inside <Accordion>.\");\r\n }\r\n const isOpen = ctx.openSet.has(id);\r\n\r\n /* React's controlled <details>/open is fiddly — we use the native\r\n * element but intercept the click on the summary, preventing the\r\n * default toggle so our state stays the single source of truth. */\r\n const handleClick = (e: React.MouseEvent<HTMLElement>) => {\r\n e.preventDefault();\r\n ctx.toggle(id);\r\n };\r\n\r\n return (\r\n <Box\r\n component=\"details\"\r\n // We re-render with the boolean so React/DOM stay in sync.\r\n open={isOpen || undefined}\r\n sx={{\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-md)\",\r\n background: \"var(--surface)\",\r\n // Remove the default browser triangle marker — we render\r\n // our own chevron in the summary content.\r\n \"& > summary::-webkit-details-marker\": { display: \"none\" },\r\n \"& > summary\": { listStyle: \"none\" },\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n <Box\r\n component=\"summary\"\r\n onClick={handleClick}\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-2)\",\r\n padding: \"var(--s-3) var(--s-4)\",\r\n cursor: \"pointer\",\r\n userSelect: \"none\",\r\n borderRadius: \"var(--r-md)\",\r\n fontSize: \"var(--text-body)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg)\",\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n }}\r\n >\r\n {icon && (\r\n <Box\r\n aria-hidden=\"true\"\r\n sx={{\r\n color: \"var(--fg-muted)\",\r\n display: \"inline-flex\",\r\n \"& svg\": { fontSize: 18 },\r\n }}\r\n >\r\n {icon}\r\n </Box>\r\n )}\r\n <Box sx={{ flex: 1, minWidth: 0 }}>{title}</Box>\r\n {badge != null && (\r\n <Box\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n color: \"var(--fg-subtle)\",\r\n background: \"var(--bg-subtle)\",\r\n borderRadius: \"var(--r-full)\",\r\n padding: \"2px 8px\",\r\n }}\r\n >\r\n {badge}\r\n </Box>\r\n )}\r\n <Box\r\n aria-hidden=\"true\"\r\n sx={{\r\n display: \"inline-flex\",\r\n color: \"var(--fg-muted)\",\r\n transition: \"transform var(--duration-base, 180ms)\",\r\n transform: isOpen ? \"rotate(180deg)\" : \"rotate(0deg)\",\r\n \"& svg\": { fontSize: 20 },\r\n \"@media (prefers-reduced-motion: reduce)\": {\r\n transition: \"none\",\r\n },\r\n }}\r\n >\r\n <ExpandMoreIcon />\r\n </Box>\r\n </Box>\r\n\r\n <Box\r\n sx={{\r\n padding: \"var(--s-2) var(--s-4) var(--s-4)\",\r\n borderTop: \"1px solid var(--border-subtle, var(--border))\",\r\n }}\r\n >\r\n {children}\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n\r\nexport default Object.assign(Accordion, { Item: AccordionItem });\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
|
-
exports
|
|
6
|
+
exports.default = void 0;
|
|
8
7
|
var React = _interopRequireWildcard(require("react"));
|
|
9
8
|
var _ArrowBack = _interopRequireDefault(require("@mui/icons-material/ArrowBack"));
|
|
10
9
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
11
10
|
var _Button = _interopRequireDefault(require("./Button"));
|
|
12
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
-
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
14
|
/**
|
|
15
15
|
* ActionStrip — Portnet UI v2
|
|
16
16
|
*
|
|
@@ -55,29 +55,18 @@ var _excluded = ["back", "backLabel", "secondary", "primary", "align", "sx"];
|
|
|
55
55
|
* column-reverse with stretched (full-width) buttons; the outer
|
|
56
56
|
* container is column-reverse too, so Back sits at the very bottom.
|
|
57
57
|
*/
|
|
58
|
-
|
|
59
|
-
function
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
_ref$backLabel = _ref.backLabel,
|
|
71
|
-
backLabel = _ref$backLabel === void 0 ? "Retour" : _ref$backLabel,
|
|
72
|
-
_ref$secondary = _ref.secondary,
|
|
73
|
-
secondary = _ref$secondary === void 0 ? [] : _ref$secondary,
|
|
74
|
-
primary = _ref.primary,
|
|
75
|
-
_ref$align = _ref.align,
|
|
76
|
-
align = _ref$align === void 0 ? "end" : _ref$align,
|
|
77
|
-
sx = _ref.sx,
|
|
78
|
-
rest = _objectWithoutProperties(_ref, _excluded);
|
|
79
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], _objectSpread(_objectSpread({
|
|
80
|
-
sx: _objectSpread({
|
|
58
|
+
|
|
59
|
+
function ActionStrip({
|
|
60
|
+
back,
|
|
61
|
+
backLabel = "Retour",
|
|
62
|
+
secondary = [],
|
|
63
|
+
primary,
|
|
64
|
+
align = "end",
|
|
65
|
+
sx,
|
|
66
|
+
...rest
|
|
67
|
+
}) {
|
|
68
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
69
|
+
sx: {
|
|
81
70
|
display: "flex",
|
|
82
71
|
flexDirection: {
|
|
83
72
|
xs: "column-reverse",
|
|
@@ -91,22 +80,23 @@ function ActionStrip(_ref) {
|
|
|
91
80
|
gap: "var(--s-3)",
|
|
92
81
|
marginTop: "var(--s-5)",
|
|
93
82
|
paddingTop: "var(--s-4)",
|
|
94
|
-
borderTop: "1px solid var(--border)"
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
83
|
+
borderTop: "1px solid var(--border)",
|
|
84
|
+
...sx
|
|
85
|
+
},
|
|
86
|
+
...rest,
|
|
87
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
98
88
|
sx: {
|
|
99
89
|
display: "flex",
|
|
100
90
|
alignItems: "center",
|
|
101
91
|
gap: "var(--s-2)"
|
|
102
92
|
},
|
|
103
|
-
children: back && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button
|
|
93
|
+
children: back && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
104
94
|
variant: "ghost",
|
|
105
|
-
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ArrowBack
|
|
95
|
+
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ArrowBack.default, {}),
|
|
106
96
|
onClick: back,
|
|
107
97
|
children: backLabel
|
|
108
98
|
})
|
|
109
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box
|
|
99
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
110
100
|
sx: {
|
|
111
101
|
display: "flex",
|
|
112
102
|
flexDirection: {
|
|
@@ -124,31 +114,29 @@ function ActionStrip(_ref) {
|
|
|
124
114
|
sm: "flex-end"
|
|
125
115
|
}
|
|
126
116
|
},
|
|
127
|
-
children: [secondary.map(
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
}, action.loading !== undefined ? {
|
|
117
|
+
children: [secondary.map((action, i) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
118
|
+
variant: action.variant || "ghost",
|
|
119
|
+
icon: action.icon,
|
|
120
|
+
onClick: action.onClick,
|
|
121
|
+
disabled: action.disabled,
|
|
122
|
+
type: action.type,
|
|
123
|
+
...(action.loading !== undefined ? {
|
|
135
124
|
loading: action.loading
|
|
136
|
-
} : {}),
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
}), primary && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], _objectSpread(_objectSpread({
|
|
125
|
+
} : {}),
|
|
126
|
+
children: action.label
|
|
127
|
+
}, action.id || `sec-${i}`)), primary && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
140
128
|
variant: primary.variant || "primary",
|
|
141
129
|
icon: primary.icon,
|
|
142
130
|
onClick: primary.onClick,
|
|
143
131
|
disabled: primary.disabled,
|
|
144
|
-
type: primary.type
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
132
|
+
type: primary.type,
|
|
133
|
+
...(primary.loading !== undefined ? {
|
|
134
|
+
loading: primary.loading
|
|
135
|
+
} : {}),
|
|
148
136
|
children: primary.label
|
|
149
|
-
})
|
|
137
|
+
})]
|
|
150
138
|
})]
|
|
151
|
-
})
|
|
139
|
+
});
|
|
152
140
|
}
|
|
153
|
-
var _default = exports
|
|
141
|
+
var _default = exports.default = ActionStrip;
|
|
154
142
|
//# sourceMappingURL=ActionStrip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionStrip.js","names":["React","_interopRequireWildcard","require","_ArrowBack","_interopRequireDefault","_Box","_Button","_jsxRuntime","_excluded","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","ActionStrip","_ref","back","_ref$backLabel","backLabel","_ref$secondary","secondary","primary","_ref$align","align","sx","rest","jsxs","display","flexDirection","xs","sm","alignItems","justifyContent","gap","marginTop","paddingTop","borderTop","children","jsx","variant","icon","onClick","flexWrap","map","action","disabled","type","loading","label","id","concat","_default","exports"],"sources":["../../../src/lib/v2/components/ActionStrip.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport ArrowBackIcon from \"@mui/icons-material/ArrowBack\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { BoxProps } from \"@mui/material/Box\";\r\nimport Button from \"./Button\";\r\nimport type { ButtonProps } from \"./Button\";\r\n\r\n/**\r\n * ActionStrip — Portnet UI v2\r\n *\r\n * Charter §03 · footer-level action row. Distinct from ActionBar\r\n * (page header) and BulkActionBar (selection toolbar). Use this\r\n * primitive at the BOTTOM of a form or below a section's content\r\n * to anchor the principal CTAs.\r\n *\r\n * ┌─────────────────────────────────────────────────────────┐\r\n * │ ← Retour Annuler ✉ Envoyer │\r\n * └─────────────────────────────────────────────────────────┘\r\n *\r\n * Replaces:\r\n * - AppGlobalActions wrapper (audit Batch 2 M17)\r\n * - AppButtonsGroup wrapper (audit Batch 2 M13)\r\n * - inline `display:flex; justifyContent: flex-end; gap: var(--s-3)`\r\n * Box blocks in CreationTIMarchandises update dialog, etc.\r\n *\r\n * API:\r\n *\r\n * <ActionStrip\r\n * back={() => navigate(-1)} // omit if no Back affordance\r\n * backLabel=\"Retour\"\r\n * secondary={[\r\n * { label: \"Annuler\", variant: \"ghost\", onClick: cancel },\r\n * ]}\r\n * primary={{\r\n * label: \"Envoyer\",\r\n * icon: <SendIcon />,\r\n * onClick: submit,\r\n * loading: isSubmitting,\r\n * }}\r\n * />\r\n *\r\n * Single-CTA shortcut:\r\n *\r\n * <ActionStrip primary={{ label: \"Valider\", onClick: confirm }} />\r\n *\r\n * Responsive: on the `xs` breakpoint the strip becomes a vertical\r\n * stack of primary → secondary → back so the primary CTA stays\r\n * above the fold and reachable by thumb. The right cluster stacks\r\n * column-reverse with stretched (full-width) buttons; the outer\r\n * container is column-reverse too, so Back sits at the very bottom.\r\n */\r\n\r\nexport interface ActionStripAction {\r\n id?: string | undefined;\r\n label: React.ReactNode;\r\n onClick?: ButtonProps[\"onClick\"] | undefined;\r\n icon?: React.ReactNode | undefined;\r\n variant?: ButtonProps[\"variant\"] | undefined;\r\n loading?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n type?: \"button\" | \"submit\" | \"reset\" | undefined;\r\n}\r\n\r\nexport interface ActionStripProps extends BoxProps {\r\n back?: ButtonProps[\"onClick\"] | undefined;\r\n backLabel?: React.ReactNode | undefined;\r\n secondary?: ActionStripAction[] | undefined;\r\n primary?: ActionStripAction | undefined;\r\n align?: \"start\" | \"end\" | undefined;\r\n}\r\n\r\nfunction ActionStrip({\r\n back,\r\n backLabel = \"Retour\",\r\n secondary = [],\r\n primary,\r\n align = \"end\",\r\n sx,\r\n ...rest\r\n}: ActionStripProps) {\r\n return (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: { xs: \"column-reverse\", sm: \"row\" },\r\n alignItems: { xs: \"stretch\", sm: \"center\" },\r\n justifyContent: align === \"start\" ? \"flex-start\" : \"space-between\",\r\n gap: \"var(--s-3)\",\r\n marginTop: \"var(--s-5)\",\r\n paddingTop: \"var(--s-4)\",\r\n borderTop: \"1px solid var(--border)\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {/* Left cluster — Back affordance */}\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: \"var(--s-2)\" }}>\r\n {back && (\r\n <Button\r\n variant=\"ghost\"\r\n icon={<ArrowBackIcon />}\r\n onClick={back}\r\n >\r\n {backLabel}\r\n </Button>\r\n )}\r\n </Box>\r\n\r\n {/* Right cluster — secondary + primary.\r\n xs : column-reverse + stretch → full-width buttons, primary on\r\n top (primary → secondary), reachable by thumb.\r\n sm+ : single centred row, primary anchored to the right edge. */}\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: { xs: \"column-reverse\", sm: \"row\" },\r\n alignItems: { xs: \"stretch\", sm: \"center\" },\r\n gap: \"var(--s-3)\",\r\n flexWrap: \"wrap\",\r\n justifyContent: { xs: \"flex-start\", sm: \"flex-end\" },\r\n }}\r\n >\r\n {secondary.map((action, i) => (\r\n <Button\r\n key={action.id || `sec-${i}`}\r\n variant={action.variant || \"ghost\"}\r\n icon={action.icon}\r\n onClick={action.onClick}\r\n disabled={action.disabled}\r\n type={action.type}\r\n {...(action.loading !== undefined ? { loading: action.loading } : {})}\r\n >\r\n {action.label}\r\n </Button>\r\n ))}\r\n {primary && (\r\n <Button\r\n variant={primary.variant || \"primary\"}\r\n icon={primary.icon}\r\n onClick={primary.onClick}\r\n disabled={primary.disabled}\r\n type={primary.type}\r\n {...(primary.loading !== undefined ? { loading: primary.loading } : {})}\r\n >\r\n {primary.label}\r\n </Button>\r\n )}\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n\r\nexport default ActionStrip;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ActionStrip.js","names":["React","_interopRequireWildcard","require","_ArrowBack","_interopRequireDefault","_Box","_Button","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ActionStrip","back","backLabel","secondary","primary","align","sx","rest","jsxs","display","flexDirection","xs","sm","alignItems","justifyContent","gap","marginTop","paddingTop","borderTop","children","jsx","variant","icon","onClick","flexWrap","map","action","disabled","type","loading","undefined","label","id","_default","exports"],"sources":["../../../src/lib/v2/components/ActionStrip.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport ArrowBackIcon from \"@mui/icons-material/ArrowBack\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { BoxProps } from \"@mui/material/Box\";\r\nimport Button from \"./Button\";\r\nimport type { ButtonProps } from \"./Button\";\r\n\r\n/**\r\n * ActionStrip — Portnet UI v2\r\n *\r\n * Charter §03 · footer-level action row. Distinct from ActionBar\r\n * (page header) and BulkActionBar (selection toolbar). Use this\r\n * primitive at the BOTTOM of a form or below a section's content\r\n * to anchor the principal CTAs.\r\n *\r\n * ┌─────────────────────────────────────────────────────────┐\r\n * │ ← Retour Annuler ✉ Envoyer │\r\n * └─────────────────────────────────────────────────────────┘\r\n *\r\n * Replaces:\r\n * - AppGlobalActions wrapper (audit Batch 2 M17)\r\n * - AppButtonsGroup wrapper (audit Batch 2 M13)\r\n * - inline `display:flex; justifyContent: flex-end; gap: var(--s-3)`\r\n * Box blocks in CreationTIMarchandises update dialog, etc.\r\n *\r\n * API:\r\n *\r\n * <ActionStrip\r\n * back={() => navigate(-1)} // omit if no Back affordance\r\n * backLabel=\"Retour\"\r\n * secondary={[\r\n * { label: \"Annuler\", variant: \"ghost\", onClick: cancel },\r\n * ]}\r\n * primary={{\r\n * label: \"Envoyer\",\r\n * icon: <SendIcon />,\r\n * onClick: submit,\r\n * loading: isSubmitting,\r\n * }}\r\n * />\r\n *\r\n * Single-CTA shortcut:\r\n *\r\n * <ActionStrip primary={{ label: \"Valider\", onClick: confirm }} />\r\n *\r\n * Responsive: on the `xs` breakpoint the strip becomes a vertical\r\n * stack of primary → secondary → back so the primary CTA stays\r\n * above the fold and reachable by thumb. The right cluster stacks\r\n * column-reverse with stretched (full-width) buttons; the outer\r\n * container is column-reverse too, so Back sits at the very bottom.\r\n */\r\n\r\nexport interface ActionStripAction {\r\n id?: string | undefined;\r\n label: React.ReactNode;\r\n onClick?: ButtonProps[\"onClick\"] | undefined;\r\n icon?: React.ReactNode | undefined;\r\n variant?: ButtonProps[\"variant\"] | undefined;\r\n loading?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n type?: \"button\" | \"submit\" | \"reset\" | undefined;\r\n}\r\n\r\nexport interface ActionStripProps extends BoxProps {\r\n back?: ButtonProps[\"onClick\"] | undefined;\r\n backLabel?: React.ReactNode | undefined;\r\n secondary?: ActionStripAction[] | undefined;\r\n primary?: ActionStripAction | undefined;\r\n align?: \"start\" | \"end\" | undefined;\r\n}\r\n\r\nfunction ActionStrip({\r\n back,\r\n backLabel = \"Retour\",\r\n secondary = [],\r\n primary,\r\n align = \"end\",\r\n sx,\r\n ...rest\r\n}: ActionStripProps) {\r\n return (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: { xs: \"column-reverse\", sm: \"row\" },\r\n alignItems: { xs: \"stretch\", sm: \"center\" },\r\n justifyContent: align === \"start\" ? \"flex-start\" : \"space-between\",\r\n gap: \"var(--s-3)\",\r\n marginTop: \"var(--s-5)\",\r\n paddingTop: \"var(--s-4)\",\r\n borderTop: \"1px solid var(--border)\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {/* Left cluster — Back affordance */}\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: \"var(--s-2)\" }}>\r\n {back && (\r\n <Button\r\n variant=\"ghost\"\r\n icon={<ArrowBackIcon />}\r\n onClick={back}\r\n >\r\n {backLabel}\r\n </Button>\r\n )}\r\n </Box>\r\n\r\n {/* Right cluster — secondary + primary.\r\n xs : column-reverse + stretch → full-width buttons, primary on\r\n top (primary → secondary), reachable by thumb.\r\n sm+ : single centred row, primary anchored to the right edge. */}\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: { xs: \"column-reverse\", sm: \"row\" },\r\n alignItems: { xs: \"stretch\", sm: \"center\" },\r\n gap: \"var(--s-3)\",\r\n flexWrap: \"wrap\",\r\n justifyContent: { xs: \"flex-start\", sm: \"flex-end\" },\r\n }}\r\n >\r\n {secondary.map((action, i) => (\r\n <Button\r\n key={action.id || `sec-${i}`}\r\n variant={action.variant || \"ghost\"}\r\n icon={action.icon}\r\n onClick={action.onClick}\r\n disabled={action.disabled}\r\n type={action.type}\r\n {...(action.loading !== undefined ? { loading: action.loading } : {})}\r\n >\r\n {action.label}\r\n </Button>\r\n ))}\r\n {primary && (\r\n <Button\r\n variant={primary.variant || \"primary\"}\r\n icon={primary.icon}\r\n onClick={primary.onClick}\r\n disabled={primary.disabled}\r\n type={primary.type}\r\n {...(primary.loading !== undefined ? { loading: primary.loading } : {})}\r\n >\r\n {primary.label}\r\n </Button>\r\n )}\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n\r\nexport default ActionStrip;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
|
-
exports
|
|
6
|
+
exports.default = void 0;
|
|
8
7
|
var React = _interopRequireWildcard(require("react"));
|
|
9
8
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
10
9
|
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
@@ -14,9 +13,8 @@ var _ErrorOutlined = _interopRequireDefault(require("@mui/icons-material/ErrorOu
|
|
|
14
13
|
var _WarningAmberOutlined = _interopRequireDefault(require("@mui/icons-material/WarningAmberOutlined"));
|
|
15
14
|
var _InfoOutlined = _interopRequireDefault(require("@mui/icons-material/InfoOutlined"));
|
|
16
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
-
function _interopRequireDefault(
|
|
18
|
-
function
|
|
19
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
20
18
|
/**
|
|
21
19
|
* Banner - Portnet UI v2
|
|
22
20
|
*
|
|
@@ -77,30 +75,30 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
77
75
|
* Defense-in-depth.
|
|
78
76
|
*/
|
|
79
77
|
|
|
80
|
-
|
|
78
|
+
const VARIANT = {
|
|
81
79
|
info: {
|
|
82
80
|
bg: "var(--info-soft)",
|
|
83
81
|
fg: "var(--info)",
|
|
84
82
|
text: "var(--info-fg)",
|
|
85
|
-
icon: _InfoOutlined
|
|
83
|
+
icon: _InfoOutlined.default
|
|
86
84
|
},
|
|
87
85
|
success: {
|
|
88
86
|
bg: "var(--success-soft)",
|
|
89
87
|
fg: "var(--success)",
|
|
90
88
|
text: "var(--success-fg)",
|
|
91
|
-
icon: _Check
|
|
89
|
+
icon: _Check.default
|
|
92
90
|
},
|
|
93
91
|
warning: {
|
|
94
92
|
bg: "var(--warning-soft)",
|
|
95
93
|
fg: "var(--warning)",
|
|
96
94
|
text: "var(--warning-fg)",
|
|
97
|
-
icon: _WarningAmberOutlined
|
|
95
|
+
icon: _WarningAmberOutlined.default
|
|
98
96
|
},
|
|
99
97
|
error: {
|
|
100
98
|
bg: "var(--danger-soft)",
|
|
101
99
|
fg: "var(--danger)",
|
|
102
100
|
text: "var(--danger-fg)",
|
|
103
|
-
icon: _ErrorOutlined
|
|
101
|
+
icon: _ErrorOutlined.default
|
|
104
102
|
}
|
|
105
103
|
};
|
|
106
104
|
/**
|
|
@@ -113,12 +111,13 @@ var VARIANT = {
|
|
|
113
111
|
* text and 1.4.11 (≥ 3:1) as a UI boundary on the soft background. Do not swap
|
|
114
112
|
* it for `cfg.fg`, which only clears the non-text threshold.
|
|
115
113
|
*/
|
|
116
|
-
function BannerActionButton(
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
114
|
+
function BannerActionButton({
|
|
115
|
+
action,
|
|
116
|
+
color,
|
|
117
|
+
emphasis
|
|
118
|
+
}) {
|
|
119
|
+
const isPrimary = emphasis === "primary";
|
|
120
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
122
121
|
component: "button",
|
|
123
122
|
type: "button",
|
|
124
123
|
onClick: action.onClick,
|
|
@@ -129,8 +128,8 @@ function BannerActionButton(_ref) {
|
|
|
129
128
|
background: "transparent",
|
|
130
129
|
/* Transparent border on the secondary keeps both buttons on the same
|
|
131
130
|
* baseline and the same height — without it the cluster jitters. */
|
|
132
|
-
border:
|
|
133
|
-
color
|
|
131
|
+
border: `1px solid ${isPrimary ? color : "transparent"}`,
|
|
132
|
+
color,
|
|
134
133
|
padding: "var(--s-1) var(--s-3)",
|
|
135
134
|
borderRadius: "var(--r-sm)",
|
|
136
135
|
fontSize: "var(--text-xs)",
|
|
@@ -149,7 +148,7 @@ function BannerActionButton(_ref) {
|
|
|
149
148
|
outlineOffset: "var(--pui-outline-offset)"
|
|
150
149
|
}
|
|
151
150
|
},
|
|
152
|
-
children: [action.icon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box
|
|
151
|
+
children: [action.icon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
153
152
|
component: "span",
|
|
154
153
|
"aria-hidden": "true",
|
|
155
154
|
sx: {
|
|
@@ -165,20 +164,22 @@ function BannerActionButton(_ref) {
|
|
|
165
164
|
}), action.label]
|
|
166
165
|
});
|
|
167
166
|
}
|
|
168
|
-
function Banner(
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
167
|
+
function Banner({
|
|
168
|
+
variant = "info",
|
|
169
|
+
children,
|
|
170
|
+
title,
|
|
171
|
+
action,
|
|
172
|
+
// { label, onClick, icon } — primary
|
|
173
|
+
secondaryAction,
|
|
174
|
+
// { label, onClick, icon } — subordinate (G-19)
|
|
175
|
+
onClose,
|
|
176
|
+
// optional dismissal (✕), distinct from an action
|
|
177
|
+
closeLabel = "Fermer"
|
|
178
|
+
}) {
|
|
179
|
+
const cfg = VARIANT[variant] || VARIANT.info;
|
|
180
|
+
const Icon = cfg.icon;
|
|
181
|
+
const isErr = variant === "error";
|
|
182
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
182
183
|
role: isErr ? "alert" : "status",
|
|
183
184
|
"aria-live": isErr ? "assertive" : "polite",
|
|
184
185
|
"aria-relevant": "additions text",
|
|
@@ -193,7 +194,7 @@ function Banner(_ref2) {
|
|
|
193
194
|
// maximum legibility (the soft bg is light, --fg is the darkest).
|
|
194
195
|
color: "var(--fg)",
|
|
195
196
|
// Border on the saturated variant colour - meets 1.4.11.
|
|
196
|
-
border:
|
|
197
|
+
border: `1px solid ${cfg.fg}`,
|
|
197
198
|
fontSize: "var(--text-sm)"
|
|
198
199
|
},
|
|
199
200
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Icon, {
|
|
@@ -211,24 +212,24 @@ function Banner(_ref2) {
|
|
|
211
212
|
marginTop: 2,
|
|
212
213
|
flexShrink: 0
|
|
213
214
|
}
|
|
214
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box
|
|
215
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
215
216
|
sx: {
|
|
216
217
|
flex: 1
|
|
217
218
|
},
|
|
218
219
|
children: [title &&
|
|
219
220
|
/*#__PURE__*/
|
|
220
221
|
// Title uses cfg.text - passes 1.4.3 (≥ 4.5:1) on cfg.bg.
|
|
221
|
-
(0, _jsxRuntime.jsx)(_Box
|
|
222
|
+
(0, _jsxRuntime.jsx)(_Box.default, {
|
|
222
223
|
sx: {
|
|
223
224
|
fontWeight: "var(--fw-semibold)",
|
|
224
225
|
marginBottom: "var(--s-1)",
|
|
225
226
|
color: cfg.text
|
|
226
227
|
},
|
|
227
228
|
children: title
|
|
228
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box
|
|
229
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
229
230
|
children: children
|
|
230
231
|
})]
|
|
231
|
-
}), (action || secondaryAction) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box
|
|
232
|
+
}), (action || secondaryAction) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
232
233
|
sx: {
|
|
233
234
|
display: "flex",
|
|
234
235
|
alignItems: "center",
|
|
@@ -244,7 +245,7 @@ function Banner(_ref2) {
|
|
|
244
245
|
color: cfg.text,
|
|
245
246
|
emphasis: "primary"
|
|
246
247
|
})]
|
|
247
|
-
}), onClose && /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton
|
|
248
|
+
}), onClose && /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
248
249
|
"aria-label": closeLabel,
|
|
249
250
|
size: "small",
|
|
250
251
|
onClick: onClose
|
|
@@ -254,11 +255,11 @@ function Banner(_ref2) {
|
|
|
254
255
|
color: cfg.fg,
|
|
255
256
|
marginRight: "calc(-1 * var(--s-1))"
|
|
256
257
|
},
|
|
257
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Close
|
|
258
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Close.default, {
|
|
258
259
|
fontSize: "small"
|
|
259
260
|
})
|
|
260
261
|
})]
|
|
261
262
|
});
|
|
262
263
|
}
|
|
263
|
-
var _default = exports
|
|
264
|
+
var _default = exports.default = Banner;
|
|
264
265
|
//# sourceMappingURL=Banner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Banner.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_IconButton","_Close","_Check","_ErrorOutlined","_WarningAmberOutlined","_InfoOutlined","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","VARIANT","info","bg","fg","text","icon","InfoIcon","success","CheckIcon","warning","WarningIcon","error","ErrorIcon","BannerActionButton","_ref","action","color","emphasis","isPrimary","jsxs","component","type","onClick","sx","display","alignItems","gap","background","border","concat","padding","borderRadius","fontSize","fontWeight","textDecoration","cursor","fontFamily","whiteSpace","transition","outline","outlineOffset","children","jsx","flexShrink","label","Banner","_ref2","_ref2$variant","variant","title","secondaryAction","onClose","_ref2$closeLabel","closeLabel","cfg","Icon","isErr","role","style","marginTop","flex","marginBottom","size","marginRight","_default","exports"],"sources":["../../../src/lib/v2/components/Banner.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport type { SvgIconComponent } from \"@mui/icons-material\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport CheckIcon from \"@mui/icons-material/Check\";\r\nimport ErrorIcon from \"@mui/icons-material/ErrorOutlined\";\r\nimport WarningIcon from \"@mui/icons-material/WarningAmberOutlined\";\r\nimport InfoIcon from \"@mui/icons-material/InfoOutlined\";\r\n\r\n/**\r\n * Banner - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Banner\". For persistent system-wide messages\r\n * (network error, maintenance, banner alerts on top of a section).\r\n *\r\n * R-A.2 - Erreur bloquante = role=\"alert\" aria-live=\"assertive\".\r\n * R-F.1 - Focus visible required on the action button.\r\n *\r\n * <Banner variant=\"error\" action={{ label: \"Réessayer\", onClick: retry }}>\r\n * Connexion perdue.\r\n * </Banner>\r\n *\r\n * Action cluster (capability gap G-19)\r\n * ------------------------------------\r\n * `action` is the primary affordance (outlined). `secondaryAction` is the\r\n * subordinate one (borderless + underlined), rendered to its LEFT per the\r\n * charter's R-M.6 ordering (« action principale à droite, secondaire à gauche »).\r\n * Both accept an optional leading `icon`.\r\n *\r\n * <Banner\r\n * variant=\"info\"\r\n * title=\"Brouillon trouvé\"\r\n * action={{ label: \"Restaurer\", onClick: restore }}\r\n * secondaryAction={{ label: \"Ignorer\", onClick: discard }}\r\n * >\r\n * Une saisie en cours a été détectée sur ce poste.\r\n * </Banner>\r\n *\r\n * WHY THIS WAS ADDED. Banner previously destructured a FIXED prop list with no\r\n * rest spread and supported neither `secondaryAction` nor `action.icon`. Every\r\n * audited module had nonetheless passed them — four dead props in addpe-fe alone\r\n * (its own comments record the discovery) — so the affordances silently did not\r\n * exist: a draft-restore banner offered \"Restaurer\" with NO way to dismiss, and\r\n * error banners lost their intended escape hatch. Props that look supported and\r\n * are dropped in silence are worse than absent ones, because a reviewer reading\r\n * the call site believes the affordance ships.\r\n *\r\n * `onClose` remains a distinct concern: it is DISMISSAL (an ✕ icon-button), not\r\n * an action. Use `secondaryAction` when the second choice carries business\r\n * meaning (\"Ignorer\" clears a draft; \"Retour à la liste\" navigates).\r\n *\r\n * Localisation (FR / EN / AR):\r\n * - `action.label` / `secondaryAction.label` are consumer-controlled.\r\n * - `closeLabel` overrides the dismiss button's aria-label\r\n * (default \"Fermer\").\r\n *\r\n * A11y note (WCAG 1.4.3):\r\n * Each variant carries TWO colours - a saturated one for icons + border\r\n * (passes 1.4.11 ≥ 3:1) and a darker -fg one for text (passes 1.4.3\r\n * ≥ 4.5:1) on the soft background. Don't collapse them.\r\n *\r\n * A11y note (live regions, R-A.1 / R-A.2):\r\n * aria-relevant=\"additions text\" is set explicitly. Per WAI-ARIA both\r\n * role=\"alert\" and role=\"status\" imply this default, but real-world\r\n * SR + browser combos (NVDA + Firefox especially) have shipped\r\n * announcement-skipping bugs in the absence of an explicit attribute.\r\n * Defense-in-depth.\r\n */\r\n\r\nexport type BannerVariant = \"info\" | \"success\" | \"warning\" | \"error\";\r\n\r\ninterface BannerVariantConfig {\r\n bg: string;\r\n fg: string;\r\n text: string;\r\n icon: SvgIconComponent;\r\n}\r\n\r\nconst VARIANT: Record<BannerVariant, BannerVariantConfig> = {\r\n info: { bg: \"var(--info-soft)\", fg: \"var(--info)\", text: \"var(--info-fg)\", icon: InfoIcon },\r\n success: { bg: \"var(--success-soft)\", fg: \"var(--success)\", text: \"var(--success-fg)\", icon: CheckIcon },\r\n warning: { bg: \"var(--warning-soft)\", fg: \"var(--warning)\", text: \"var(--warning-fg)\", icon: WarningIcon },\r\n error: { bg: \"var(--danger-soft)\", fg: \"var(--danger)\", text: \"var(--danger-fg)\", icon: ErrorIcon },\r\n};\r\n\r\nexport interface BannerAction {\r\n label: React.ReactNode;\r\n onClick?: (() => void) | undefined;\r\n /**\r\n * Optional leading icon. Rendered `aria-hidden` — the label carries the\r\n * accessible name (R-Ar.2), so an icon-only banner action is not supported by\r\n * design: a banner action must read as a verb+object CTA (§09.2).\r\n */\r\n icon?: React.ReactNode | undefined;\r\n}\r\n\r\nexport interface BannerProps {\r\n variant?: BannerVariant | undefined;\r\n children: React.ReactNode;\r\n title?: React.ReactNode | undefined;\r\n /** Primary affordance — outlined, rendered rightmost of the cluster. */\r\n action?: BannerAction | undefined;\r\n /** Subordinate affordance — borderless, rendered LEFT of `action` (R-M.6). */\r\n secondaryAction?: BannerAction | undefined;\r\n onClose?: (() => void) | undefined;\r\n closeLabel?: string | undefined;\r\n}\r\n\r\n/**\r\n * One button of the action cluster. Extracted rather than duplicated: the two\r\n * emphases differ only by border and underline, and a second inline copy of a\r\n * 25-line `sx` block is exactly how the focus-visible and contrast guarantees\r\n * below drift apart.\r\n *\r\n * Colour is `cfg.text` for BOTH border and label — it passes 1.4.3 (≥ 4.5:1) as\r\n * text and 1.4.11 (≥ 3:1) as a UI boundary on the soft background. Do not swap\r\n * it for `cfg.fg`, which only clears the non-text threshold.\r\n */\r\nfunction BannerActionButton({\r\n action,\r\n color,\r\n emphasis,\r\n}: {\r\n action: BannerAction;\r\n color: string;\r\n emphasis: \"primary\" | \"secondary\";\r\n}) {\r\n const isPrimary = emphasis === \"primary\";\r\n return (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n onClick={action.onClick}\r\n sx={{\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-1)\",\r\n background: \"transparent\",\r\n /* Transparent border on the secondary keeps both buttons on the same\r\n * baseline and the same height — without it the cluster jitters. */\r\n border: `1px solid ${isPrimary ? color : \"transparent\"}`,\r\n color,\r\n padding: \"var(--s-1) var(--s-3)\",\r\n borderRadius: \"var(--r-sm)\",\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n textDecoration: isPrimary ? \"none\" : \"underline\",\r\n cursor: \"pointer\",\r\n fontFamily: \"inherit\",\r\n whiteSpace: \"nowrap\",\r\n transition: \"background var(--duration-fast) ease\",\r\n \"&:hover\": {\r\n background: \"color-mix(in srgb, currentColor 10%, transparent)\",\r\n },\r\n // R-F.1 - focus-visible required, charter §05.\r\n \"&:focus-visible\": {\r\n outline: \"2px solid currentColor\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n }}\r\n >\r\n {action.icon && (\r\n <Box\r\n component=\"span\"\r\n aria-hidden=\"true\"\r\n sx={{\r\n display: \"inline-flex\",\r\n flexShrink: 0,\r\n /* Normalise a consumer-supplied MUI icon (24px by default) onto the\r\n * label's optical scale. --text-h3 is the 16px token. */\r\n \"& > *\": { fontSize: \"var(--text-h3)\" },\r\n }}\r\n >\r\n {action.icon}\r\n </Box>\r\n )}\r\n {action.label}\r\n </Box>\r\n );\r\n}\r\n\r\nfunction Banner({\r\n variant = \"info\",\r\n children,\r\n title,\r\n action, // { label, onClick, icon } — primary\r\n secondaryAction, // { label, onClick, icon } — subordinate (G-19)\r\n onClose, // optional dismissal (✕), distinct from an action\r\n closeLabel = \"Fermer\",\r\n}: BannerProps) {\r\n const cfg = VARIANT[variant] || VARIANT.info;\r\n const Icon = cfg.icon;\r\n const isErr = variant === \"error\";\r\n\r\n return (\r\n <Box\r\n role={isErr ? \"alert\" : \"status\"}\r\n aria-live={isErr ? \"assertive\" : \"polite\"}\r\n aria-relevant=\"additions text\"\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n gap: \"var(--s-3)\",\r\n padding: \"var(--s-3) var(--s-4)\",\r\n borderRadius: \"var(--r-md)\",\r\n background: cfg.bg,\r\n // Body text inherits this colour - keep at standard --fg for\r\n // maximum legibility (the soft bg is light, --fg is the darkest).\r\n color: \"var(--fg)\",\r\n // Border on the saturated variant colour - meets 1.4.11.\r\n border: `1px solid ${cfg.fg}`,\r\n fontSize: \"var(--text-sm)\",\r\n }}\r\n >\r\n <Icon\r\n fontSize=\"small\"\r\n aria-hidden=\"true\"\r\n // Icon stays on cfg.fg - passes 1.4.11 (≥ 3:1) for non-text UI.\r\n sx={{ color: cfg.fg }}\r\n // Optical alignment of the icon with the first text line -\r\n // deliberate non-token value (not a spacing token concern).\r\n style={{ marginTop: 2, flexShrink: 0 }}\r\n />\r\n <Box sx={{ flex: 1 }}>\r\n {title && (\r\n // Title uses cfg.text - passes 1.4.3 (≥ 4.5:1) on cfg.bg.\r\n <Box sx={{ fontWeight: \"var(--fw-semibold)\", marginBottom: \"var(--s-1)\", color: cfg.text }}>\r\n {title}\r\n </Box>\r\n )}\r\n <Box>{children}</Box>\r\n </Box>\r\n {(action || secondaryAction) && (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-2)\",\r\n flexShrink: 0,\r\n }}\r\n >\r\n {/* R-M.6 — secondary on the LEFT, primary on the right. */}\r\n {secondaryAction && (\r\n <BannerActionButton\r\n action={secondaryAction}\r\n color={cfg.text}\r\n emphasis=\"secondary\"\r\n />\r\n )}\r\n {action && (\r\n <BannerActionButton\r\n action={action}\r\n color={cfg.text}\r\n emphasis=\"primary\"\r\n />\r\n )}\r\n </Box>\r\n )}\r\n {onClose && (\r\n <IconButton\r\n aria-label={closeLabel}\r\n size=\"small\"\r\n onClick={onClose}\r\n // Close icon is non-text UI - cfg.fg is fine (1.4.11).\r\n sx={{ color: cfg.fg, marginRight: \"calc(-1 * var(--s-1))\" }}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default Banner;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Banner.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_IconButton","_Close","_Check","_ErrorOutlined","_WarningAmberOutlined","_InfoOutlined","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","VARIANT","info","bg","fg","text","icon","InfoIcon","success","CheckIcon","warning","WarningIcon","error","ErrorIcon","BannerActionButton","action","color","emphasis","isPrimary","jsxs","component","type","onClick","sx","display","alignItems","gap","background","border","padding","borderRadius","fontSize","fontWeight","textDecoration","cursor","fontFamily","whiteSpace","transition","outline","outlineOffset","children","jsx","flexShrink","label","Banner","variant","title","secondaryAction","onClose","closeLabel","cfg","Icon","isErr","role","style","marginTop","flex","marginBottom","size","marginRight","_default","exports"],"sources":["../../../src/lib/v2/components/Banner.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport type { SvgIconComponent } from \"@mui/icons-material\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport CheckIcon from \"@mui/icons-material/Check\";\r\nimport ErrorIcon from \"@mui/icons-material/ErrorOutlined\";\r\nimport WarningIcon from \"@mui/icons-material/WarningAmberOutlined\";\r\nimport InfoIcon from \"@mui/icons-material/InfoOutlined\";\r\n\r\n/**\r\n * Banner - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Banner\". For persistent system-wide messages\r\n * (network error, maintenance, banner alerts on top of a section).\r\n *\r\n * R-A.2 - Erreur bloquante = role=\"alert\" aria-live=\"assertive\".\r\n * R-F.1 - Focus visible required on the action button.\r\n *\r\n * <Banner variant=\"error\" action={{ label: \"Réessayer\", onClick: retry }}>\r\n * Connexion perdue.\r\n * </Banner>\r\n *\r\n * Action cluster (capability gap G-19)\r\n * ------------------------------------\r\n * `action` is the primary affordance (outlined). `secondaryAction` is the\r\n * subordinate one (borderless + underlined), rendered to its LEFT per the\r\n * charter's R-M.6 ordering (« action principale à droite, secondaire à gauche »).\r\n * Both accept an optional leading `icon`.\r\n *\r\n * <Banner\r\n * variant=\"info\"\r\n * title=\"Brouillon trouvé\"\r\n * action={{ label: \"Restaurer\", onClick: restore }}\r\n * secondaryAction={{ label: \"Ignorer\", onClick: discard }}\r\n * >\r\n * Une saisie en cours a été détectée sur ce poste.\r\n * </Banner>\r\n *\r\n * WHY THIS WAS ADDED. Banner previously destructured a FIXED prop list with no\r\n * rest spread and supported neither `secondaryAction` nor `action.icon`. Every\r\n * audited module had nonetheless passed them — four dead props in addpe-fe alone\r\n * (its own comments record the discovery) — so the affordances silently did not\r\n * exist: a draft-restore banner offered \"Restaurer\" with NO way to dismiss, and\r\n * error banners lost their intended escape hatch. Props that look supported and\r\n * are dropped in silence are worse than absent ones, because a reviewer reading\r\n * the call site believes the affordance ships.\r\n *\r\n * `onClose` remains a distinct concern: it is DISMISSAL (an ✕ icon-button), not\r\n * an action. Use `secondaryAction` when the second choice carries business\r\n * meaning (\"Ignorer\" clears a draft; \"Retour à la liste\" navigates).\r\n *\r\n * Localisation (FR / EN / AR):\r\n * - `action.label` / `secondaryAction.label` are consumer-controlled.\r\n * - `closeLabel` overrides the dismiss button's aria-label\r\n * (default \"Fermer\").\r\n *\r\n * A11y note (WCAG 1.4.3):\r\n * Each variant carries TWO colours - a saturated one for icons + border\r\n * (passes 1.4.11 ≥ 3:1) and a darker -fg one for text (passes 1.4.3\r\n * ≥ 4.5:1) on the soft background. Don't collapse them.\r\n *\r\n * A11y note (live regions, R-A.1 / R-A.2):\r\n * aria-relevant=\"additions text\" is set explicitly. Per WAI-ARIA both\r\n * role=\"alert\" and role=\"status\" imply this default, but real-world\r\n * SR + browser combos (NVDA + Firefox especially) have shipped\r\n * announcement-skipping bugs in the absence of an explicit attribute.\r\n * Defense-in-depth.\r\n */\r\n\r\nexport type BannerVariant = \"info\" | \"success\" | \"warning\" | \"error\";\r\n\r\ninterface BannerVariantConfig {\r\n bg: string;\r\n fg: string;\r\n text: string;\r\n icon: SvgIconComponent;\r\n}\r\n\r\nconst VARIANT: Record<BannerVariant, BannerVariantConfig> = {\r\n info: { bg: \"var(--info-soft)\", fg: \"var(--info)\", text: \"var(--info-fg)\", icon: InfoIcon },\r\n success: { bg: \"var(--success-soft)\", fg: \"var(--success)\", text: \"var(--success-fg)\", icon: CheckIcon },\r\n warning: { bg: \"var(--warning-soft)\", fg: \"var(--warning)\", text: \"var(--warning-fg)\", icon: WarningIcon },\r\n error: { bg: \"var(--danger-soft)\", fg: \"var(--danger)\", text: \"var(--danger-fg)\", icon: ErrorIcon },\r\n};\r\n\r\nexport interface BannerAction {\r\n label: React.ReactNode;\r\n onClick?: (() => void) | undefined;\r\n /**\r\n * Optional leading icon. Rendered `aria-hidden` — the label carries the\r\n * accessible name (R-Ar.2), so an icon-only banner action is not supported by\r\n * design: a banner action must read as a verb+object CTA (§09.2).\r\n */\r\n icon?: React.ReactNode | undefined;\r\n}\r\n\r\nexport interface BannerProps {\r\n variant?: BannerVariant | undefined;\r\n children: React.ReactNode;\r\n title?: React.ReactNode | undefined;\r\n /** Primary affordance — outlined, rendered rightmost of the cluster. */\r\n action?: BannerAction | undefined;\r\n /** Subordinate affordance — borderless, rendered LEFT of `action` (R-M.6). */\r\n secondaryAction?: BannerAction | undefined;\r\n onClose?: (() => void) | undefined;\r\n closeLabel?: string | undefined;\r\n}\r\n\r\n/**\r\n * One button of the action cluster. Extracted rather than duplicated: the two\r\n * emphases differ only by border and underline, and a second inline copy of a\r\n * 25-line `sx` block is exactly how the focus-visible and contrast guarantees\r\n * below drift apart.\r\n *\r\n * Colour is `cfg.text` for BOTH border and label — it passes 1.4.3 (≥ 4.5:1) as\r\n * text and 1.4.11 (≥ 3:1) as a UI boundary on the soft background. Do not swap\r\n * it for `cfg.fg`, which only clears the non-text threshold.\r\n */\r\nfunction BannerActionButton({\r\n action,\r\n color,\r\n emphasis,\r\n}: {\r\n action: BannerAction;\r\n color: string;\r\n emphasis: \"primary\" | \"secondary\";\r\n}) {\r\n const isPrimary = emphasis === \"primary\";\r\n return (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n onClick={action.onClick}\r\n sx={{\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-1)\",\r\n background: \"transparent\",\r\n /* Transparent border on the secondary keeps both buttons on the same\r\n * baseline and the same height — without it the cluster jitters. */\r\n border: `1px solid ${isPrimary ? color : \"transparent\"}`,\r\n color,\r\n padding: \"var(--s-1) var(--s-3)\",\r\n borderRadius: \"var(--r-sm)\",\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n textDecoration: isPrimary ? \"none\" : \"underline\",\r\n cursor: \"pointer\",\r\n fontFamily: \"inherit\",\r\n whiteSpace: \"nowrap\",\r\n transition: \"background var(--duration-fast) ease\",\r\n \"&:hover\": {\r\n background: \"color-mix(in srgb, currentColor 10%, transparent)\",\r\n },\r\n // R-F.1 - focus-visible required, charter §05.\r\n \"&:focus-visible\": {\r\n outline: \"2px solid currentColor\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n }}\r\n >\r\n {action.icon && (\r\n <Box\r\n component=\"span\"\r\n aria-hidden=\"true\"\r\n sx={{\r\n display: \"inline-flex\",\r\n flexShrink: 0,\r\n /* Normalise a consumer-supplied MUI icon (24px by default) onto the\r\n * label's optical scale. --text-h3 is the 16px token. */\r\n \"& > *\": { fontSize: \"var(--text-h3)\" },\r\n }}\r\n >\r\n {action.icon}\r\n </Box>\r\n )}\r\n {action.label}\r\n </Box>\r\n );\r\n}\r\n\r\nfunction Banner({\r\n variant = \"info\",\r\n children,\r\n title,\r\n action, // { label, onClick, icon } — primary\r\n secondaryAction, // { label, onClick, icon } — subordinate (G-19)\r\n onClose, // optional dismissal (✕), distinct from an action\r\n closeLabel = \"Fermer\",\r\n}: BannerProps) {\r\n const cfg = VARIANT[variant] || VARIANT.info;\r\n const Icon = cfg.icon;\r\n const isErr = variant === \"error\";\r\n\r\n return (\r\n <Box\r\n role={isErr ? \"alert\" : \"status\"}\r\n aria-live={isErr ? \"assertive\" : \"polite\"}\r\n aria-relevant=\"additions text\"\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n gap: \"var(--s-3)\",\r\n padding: \"var(--s-3) var(--s-4)\",\r\n borderRadius: \"var(--r-md)\",\r\n background: cfg.bg,\r\n // Body text inherits this colour - keep at standard --fg for\r\n // maximum legibility (the soft bg is light, --fg is the darkest).\r\n color: \"var(--fg)\",\r\n // Border on the saturated variant colour - meets 1.4.11.\r\n border: `1px solid ${cfg.fg}`,\r\n fontSize: \"var(--text-sm)\",\r\n }}\r\n >\r\n <Icon\r\n fontSize=\"small\"\r\n aria-hidden=\"true\"\r\n // Icon stays on cfg.fg - passes 1.4.11 (≥ 3:1) for non-text UI.\r\n sx={{ color: cfg.fg }}\r\n // Optical alignment of the icon with the first text line -\r\n // deliberate non-token value (not a spacing token concern).\r\n style={{ marginTop: 2, flexShrink: 0 }}\r\n />\r\n <Box sx={{ flex: 1 }}>\r\n {title && (\r\n // Title uses cfg.text - passes 1.4.3 (≥ 4.5:1) on cfg.bg.\r\n <Box sx={{ fontWeight: \"var(--fw-semibold)\", marginBottom: \"var(--s-1)\", color: cfg.text }}>\r\n {title}\r\n </Box>\r\n )}\r\n <Box>{children}</Box>\r\n </Box>\r\n {(action || secondaryAction) && (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-2)\",\r\n flexShrink: 0,\r\n }}\r\n >\r\n {/* R-M.6 — secondary on the LEFT, primary on the right. */}\r\n {secondaryAction && (\r\n <BannerActionButton\r\n action={secondaryAction}\r\n color={cfg.text}\r\n emphasis=\"secondary\"\r\n />\r\n )}\r\n {action && (\r\n <BannerActionButton\r\n action={action}\r\n color={cfg.text}\r\n emphasis=\"primary\"\r\n />\r\n )}\r\n </Box>\r\n )}\r\n {onClose && (\r\n <IconButton\r\n aria-label={closeLabel}\r\n size=\"small\"\r\n onClick={onClose}\r\n // Close icon is non-text UI - cfg.fg is fine (1.4.11).\r\n sx={{ color: cfg.fg, marginRight: \"calc(-1 * var(--s-1))\" }}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default Banner;\r\n"],"mappings":"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","ignoreList":[]}
|