@portnet/ui 6.0.2 → 6.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +652 -0
- package/dist/esm/index.js +72 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/v2/__tests__/AppMain.test.js +130 -0
- package/dist/esm/v2/__tests__/AppMain.test.js.map +1 -0
- package/dist/esm/v2/__tests__/ChartFigure.test.js +180 -0
- package/dist/esm/v2/__tests__/ChartFigure.test.js.map +1 -0
- package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js +150 -0
- package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
- package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js +93 -0
- package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldError.test.js +71 -38
- package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FieldNaming.test.js +160 -0
- package/dist/esm/v2/__tests__/FieldNaming.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldWidth.test.js +11 -11
- package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FileCard.test.js +18 -17
- package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js +87 -179
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +32 -44
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js +101 -0
- package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +118 -199
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
- package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -42
- package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/PreviewDrawer.test.js +165 -0
- package/dist/esm/v2/__tests__/PreviewDrawer.test.js.map +1 -0
- package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js +156 -0
- package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +37 -52
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/esm/v2/__tests__/apiError.test.js +50 -69
- package/dist/esm/v2/__tests__/apiError.test.js.map +1 -1
- package/dist/esm/v2/__tests__/banned-patterns.test.js +41 -122
- package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -1
- package/dist/esm/v2/__tests__/chart-palette.test.js +204 -0
- package/dist/esm/v2/__tests__/chart-palette.test.js.map +1 -0
- package/dist/esm/v2/__tests__/contrast-palette.test.js +42 -74
- package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -1
- package/dist/esm/v2/__tests__/cssVariables.test.js +44 -51
- package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -1
- package/dist/esm/v2/__tests__/fileValidation.test.js +134 -0
- package/dist/esm/v2/__tests__/fileValidation.test.js.map +1 -0
- package/dist/esm/v2/__tests__/filterCriteria.test.js +321 -0
- package/dist/esm/v2/__tests__/filterCriteria.test.js.map +1 -0
- package/dist/esm/v2/__tests__/fmtDate.test.js +68 -0
- package/dist/esm/v2/__tests__/fmtDate.test.js.map +1 -0
- package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js +218 -0
- package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
- package/dist/esm/v2/__tests__/labels-merge.test.js +17 -21
- package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/esm/v2/__tests__/locale-fallback.test.js +35 -40
- package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -1
- package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js +143 -0
- package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
- package/dist/esm/v2/__tests__/rowActions.test.js +182 -0
- package/dist/esm/v2/__tests__/rowActions.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js +155 -0
- package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusTrap.test.js +266 -402
- package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -1
- package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js +120 -0
- package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
- package/dist/esm/v2/components/Accordion.js +48 -70
- package/dist/esm/v2/components/Accordion.js.map +1 -1
- package/dist/esm/v2/components/ActionStrip.js +31 -43
- package/dist/esm/v2/components/ActionStrip.js.map +1 -1
- package/dist/esm/v2/components/Banner.js +25 -22
- package/dist/esm/v2/components/Banner.js.map +1 -1
- package/dist/esm/v2/components/Busy.js +14 -19
- package/dist/esm/v2/components/Busy.js.map +1 -1
- package/dist/esm/v2/components/Button.js +34 -45
- package/dist/esm/v2/components/Button.js.map +1 -1
- package/dist/esm/v2/components/CategoryTag.js +44 -27
- package/dist/esm/v2/components/CategoryTag.js.map +1 -1
- package/dist/esm/v2/components/Checkbox.js +32 -38
- package/dist/esm/v2/components/Checkbox.js.map +1 -1
- package/dist/esm/v2/components/Chip.js +23 -36
- package/dist/esm/v2/components/Chip.js.map +1 -1
- package/dist/esm/v2/components/Combobox.js +112 -136
- package/dist/esm/v2/components/Combobox.js.map +1 -1
- package/dist/esm/v2/components/CommandPalette.js +113 -198
- package/dist/esm/v2/components/CommandPalette.js.map +1 -1
- package/dist/esm/v2/components/ConfirmDialog.js +36 -45
- package/dist/esm/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/esm/v2/components/DatePicker.js +78 -81
- package/dist/esm/v2/components/DatePicker.js.map +1 -1
- package/dist/esm/v2/components/DateRangePicker.js +63 -74
- package/dist/esm/v2/components/DateRangePicker.js.map +1 -1
- package/dist/esm/v2/components/DateTimePicker.js +81 -86
- package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
- package/dist/esm/v2/components/Drawer.js +71 -65
- package/dist/esm/v2/components/Drawer.js.map +1 -1
- package/dist/esm/v2/components/Dropzone.js +130 -177
- package/dist/esm/v2/components/Dropzone.js.map +1 -1
- package/dist/esm/v2/components/EmptyState.js +9 -9
- package/dist/esm/v2/components/EmptyState.js.map +1 -1
- package/dist/esm/v2/components/FavoriteToggle.js +24 -33
- package/dist/esm/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/esm/v2/components/Field.js +155 -59
- package/dist/esm/v2/components/Field.js.map +1 -1
- package/dist/esm/v2/components/FieldError.js +9 -13
- package/dist/esm/v2/components/FieldError.js.map +1 -1
- package/dist/esm/v2/components/FieldHelp.js +28 -49
- package/dist/esm/v2/components/FieldHelp.js.map +1 -1
- package/dist/esm/v2/components/FileCard.js +14 -19
- package/dist/esm/v2/components/FileCard.js.map +1 -1
- package/dist/esm/v2/components/FilterTab.js +22 -31
- package/dist/esm/v2/components/FilterTab.js.map +1 -1
- package/dist/esm/v2/components/ForbiddenPage.js +28 -8
- package/dist/esm/v2/components/ForbiddenPage.js.map +1 -1
- package/dist/esm/v2/components/FormGrid.js +48 -54
- package/dist/esm/v2/components/FormGrid.js.map +1 -1
- package/dist/esm/v2/components/FormikDisplay.js +98 -24
- package/dist/esm/v2/components/FormikDisplay.js.map +1 -1
- package/dist/esm/v2/components/Input.js +75 -34
- package/dist/esm/v2/components/Input.js.map +1 -1
- package/dist/esm/v2/components/KPICard.js +42 -51
- package/dist/esm/v2/components/KPICard.js.map +1 -1
- package/dist/esm/v2/components/KPIStrip.js +9 -15
- package/dist/esm/v2/components/KPIStrip.js.map +1 -1
- package/dist/esm/v2/components/KV.js +16 -23
- package/dist/esm/v2/components/KV.js.map +1 -1
- package/dist/esm/v2/components/KVGrid.js +15 -23
- package/dist/esm/v2/components/KVGrid.js.map +1 -1
- package/dist/esm/v2/components/Layout.js +81 -117
- package/dist/esm/v2/components/Layout.js.map +1 -1
- package/dist/esm/v2/components/MobileRowCard.js +64 -75
- package/dist/esm/v2/components/MobileRowCard.js.map +1 -1
- package/dist/esm/v2/components/Modal.js +44 -53
- package/dist/esm/v2/components/Modal.js.map +1 -1
- package/dist/esm/v2/components/NetworkErrorPage.js +28 -11
- package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/esm/v2/components/NotFoundPage.js +28 -9
- package/dist/esm/v2/components/NotFoundPage.js.map +1 -1
- package/dist/esm/v2/components/NumberInput.js +77 -107
- package/dist/esm/v2/components/NumberInput.js.map +1 -1
- package/dist/esm/v2/components/OverflowMenu.js +24 -42
- package/dist/esm/v2/components/OverflowMenu.js.map +1 -1
- package/dist/esm/v2/components/PdfViewer.js +24 -33
- package/dist/esm/v2/components/PdfViewer.js.map +1 -1
- package/dist/esm/v2/components/ProgressBar.js +28 -36
- package/dist/esm/v2/components/ProgressBar.js.map +1 -1
- package/dist/esm/v2/components/Radio.js +49 -57
- package/dist/esm/v2/components/Radio.js.map +1 -1
- package/dist/esm/v2/components/SectionErrorBoundary.js +84 -130
- package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -1
- package/dist/esm/v2/components/SectionHeader.js +24 -31
- package/dist/esm/v2/components/SectionHeader.js.map +1 -1
- package/dist/esm/v2/components/Segmented.js +59 -84
- package/dist/esm/v2/components/Segmented.js.map +1 -1
- package/dist/esm/v2/components/Select.js +100 -138
- package/dist/esm/v2/components/Select.js.map +1 -1
- package/dist/esm/v2/components/ServerErrorPage.js +27 -10
- package/dist/esm/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/esm/v2/components/Skeleton.js +81 -96
- package/dist/esm/v2/components/Skeleton.js.map +1 -1
- package/dist/esm/v2/components/SkipLink.js +6 -7
- package/dist/esm/v2/components/SkipLink.js.map +1 -1
- package/dist/esm/v2/components/Spinner.js +13 -22
- package/dist/esm/v2/components/Spinner.js.map +1 -1
- package/dist/esm/v2/components/Status.js +14 -25
- package/dist/esm/v2/components/Status.js.map +1 -1
- package/dist/esm/v2/components/Stepper.js +68 -71
- package/dist/esm/v2/components/Stepper.js.map +1 -1
- package/dist/esm/v2/components/Surface.js +25 -44
- package/dist/esm/v2/components/Surface.js.map +1 -1
- package/dist/esm/v2/components/Switch.js +21 -29
- package/dist/esm/v2/components/Switch.js.map +1 -1
- package/dist/esm/v2/components/TabPanel.js +84 -0
- package/dist/esm/v2/components/TabPanel.js.map +1 -0
- package/dist/esm/v2/components/Tabs.js +43 -19
- package/dist/esm/v2/components/Tabs.js.map +1 -1
- package/dist/esm/v2/components/TelInput.js +75 -108
- package/dist/esm/v2/components/TelInput.js.map +1 -1
- package/dist/esm/v2/components/Textarea.js +21 -30
- package/dist/esm/v2/components/Textarea.js.map +1 -1
- package/dist/esm/v2/components/TimePicker.js +59 -69
- package/dist/esm/v2/components/TimePicker.js.map +1 -1
- package/dist/esm/v2/components/Toast.js +109 -163
- package/dist/esm/v2/components/Toast.js.map +1 -1
- package/dist/esm/v2/components/Tooltip.js +18 -31
- package/dist/esm/v2/components/Tooltip.js.map +1 -1
- package/dist/esm/v2/components/_ErrorPageBody.js +6 -5
- package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -1
- package/dist/esm/v2/components/_pickerShared.js +2 -2
- package/dist/esm/v2/components/_pickerShared.js.map +1 -1
- package/dist/esm/v2/components/index.js +37 -0
- package/dist/esm/v2/components/index.js.map +1 -1
- package/dist/esm/v2/hooks/index.js +62 -0
- package/dist/esm/v2/hooks/index.js.map +1 -1
- package/dist/esm/v2/hooks/useAppliedFilters.js +112 -0
- package/dist/esm/v2/hooks/useAppliedFilters.js.map +1 -0
- package/dist/esm/v2/hooks/useDebouncedCallback.js +82 -0
- package/dist/esm/v2/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/esm/v2/hooks/useDelayedFlag.js +5 -19
- package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -1
- package/dist/esm/v2/hooks/useDensity.js +13 -17
- package/dist/esm/v2/hooks/useDensity.js.map +1 -1
- package/dist/esm/v2/hooks/useFocusFirstError.js +25 -33
- package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -1
- package/dist/esm/v2/hooks/useFocusOnRouteChange.js +81 -0
- package/dist/esm/v2/hooks/useFocusOnRouteChange.js.map +1 -0
- package/dist/esm/v2/hooks/useFocusTrap.js +19 -23
- package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -1
- package/dist/esm/v2/hooks/useFormAutoSave.js +38 -53
- package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -1
- package/dist/esm/v2/hooks/useFormCompletionProgress.js +32 -51
- package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -1
- package/dist/esm/v2/hooks/useKeyboardShortcuts.js +125 -0
- package/dist/esm/v2/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/esm/v2/hooks/usePrefersReducedMotion.js +99 -0
- package/dist/esm/v2/hooks/usePrefersReducedMotion.js.map +1 -0
- package/dist/esm/v2/hooks/useResolvedDensity.js +2 -10
- package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -1
- package/dist/esm/v2/hooks/useSortedRows.js +3 -5
- package/dist/esm/v2/hooks/useSortedRows.js.map +1 -1
- package/dist/esm/v2/hooks/useTabLoading.js +6 -21
- package/dist/esm/v2/hooks/useTabLoading.js.map +1 -1
- package/dist/esm/v2/index.js +2 -3
- package/dist/esm/v2/index.js.map +1 -1
- package/dist/esm/v2/modalContext.js +2 -2
- package/dist/esm/v2/modalContext.js.map +1 -1
- package/dist/esm/v2/models/favorite.js.map +1 -1
- package/dist/esm/v2/models/personalization.js.map +1 -1
- package/dist/esm/v2/models/referentiel.js.map +1 -1
- package/dist/esm/v2/models/savedFilter.js.map +1 -1
- package/dist/esm/v2/patterns/ActionBar.js +115 -159
- package/dist/esm/v2/patterns/ActionBar.js.map +1 -1
- package/dist/esm/v2/patterns/AppMain.js +108 -0
- package/dist/esm/v2/patterns/AppMain.js.map +1 -0
- package/dist/esm/v2/patterns/BulkActionBar.js +31 -34
- package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/esm/v2/patterns/ChartFigure.js +151 -0
- package/dist/esm/v2/patterns/ChartFigure.js.map +1 -0
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js +111 -152
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/esm/v2/patterns/ColumnsToggle.js +43 -77
- package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/esm/v2/patterns/DataGrid.js +221 -255
- package/dist/esm/v2/patterns/DataGrid.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js +76 -94
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridToolbar.js +85 -89
- package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridVirtualized.js +141 -182
- package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +26 -30
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/esm/v2/patterns/DetailSplit.js +108 -0
- package/dist/esm/v2/patterns/DetailSplit.js.map +1 -0
- package/dist/esm/v2/patterns/FavoriteColumn.js +15 -17
- package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/esm/v2/patterns/FavoritesFilter.js +30 -39
- package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/esm/v2/patterns/FilterTabBar.js +112 -0
- package/dist/esm/v2/patterns/FilterTabBar.js.map +1 -0
- package/dist/esm/v2/patterns/FormErrorSummary.js +12 -13
- package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/esm/v2/patterns/FormPageShell.js +43 -41
- package/dist/esm/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/esm/v2/patterns/FormSection.js +30 -38
- package/dist/esm/v2/patterns/FormSection.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCheckbox.js +29 -39
- package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js +56 -60
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCombobox.js +51 -69
- package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDatePicker.js +44 -58
- package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDateTimePicker.js +44 -58
- package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -1
- package/dist/esm/v2/patterns/FormikErrorFocus.js +22 -23
- package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/esm/v2/patterns/FormikErrorSummary.js +89 -0
- package/dist/esm/v2/patterns/FormikErrorSummary.js.map +1 -0
- package/dist/esm/v2/patterns/FormikFile.js +94 -78
- package/dist/esm/v2/patterns/FormikFile.js.map +1 -1
- package/dist/esm/v2/patterns/FormikInput.js +40 -53
- package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
- package/dist/esm/v2/patterns/FormikRadioGroup.js +39 -51
- package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -1
- package/dist/esm/v2/patterns/FormikReferentielField.js +49 -59
- package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/esm/v2/patterns/FormikSelect.js +64 -87
- package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/esm/v2/patterns/FormikTextarea.js +30 -46
- package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +53 -71
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/esm/v2/patterns/NetworkErrorBanner.js +6 -7
- package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/esm/v2/patterns/PageContent.js +10 -14
- package/dist/esm/v2/patterns/PageContent.js.map +1 -1
- package/dist/esm/v2/patterns/PreviewDrawer.js +153 -0
- package/dist/esm/v2/patterns/PreviewDrawer.js.map +1 -0
- package/dist/esm/v2/patterns/ReferentielField.js +327 -312
- package/dist/esm/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/esm/v2/patterns/RowFavoriteToggle.js +27 -22
- package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -1
- package/dist/esm/v2/patterns/SaveFilterDialog.js +38 -66
- package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/esm/v2/patterns/SavedFiltersMenu.js +62 -81
- package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/esm/v2/patterns/SkeletonPageShell.js +106 -129
- package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/esm/v2/patterns/SortableHeader.js +22 -45
- package/dist/esm/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/esm/v2/patterns/Tour.js +94 -120
- package/dist/esm/v2/patterns/Tour.js.map +1 -1
- package/dist/esm/v2/patterns/_dataGridShared.js +107 -128
- package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/esm/v2/patterns/_pickerSerialisation.js +6 -8
- package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -1
- package/dist/esm/v2/patterns/_sort.js +17 -33
- package/dist/esm/v2/patterns/_sort.js.map +1 -1
- package/dist/esm/v2/patterns/_useColumnReorder.js +122 -160
- package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/esm/v2/patterns/_useColumnResize.js +78 -96
- package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/esm/v2/patterns/filterCriteria.js +102 -0
- package/dist/esm/v2/patterns/filterCriteria.js.map +1 -0
- package/dist/esm/v2/patterns/index.js +152 -0
- package/dist/esm/v2/patterns/index.js.map +1 -1
- package/dist/esm/v2/patterns/rowActions.js +223 -0
- package/dist/esm/v2/patterns/rowActions.js.map +1 -0
- package/dist/esm/v2/personalization/PersonalizationProvider.js +50 -47
- package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/_storageKey.js +5 -5
- package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +22 -23
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +13 -13
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/favorites.js +36 -60
- package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/favoritesView.js +22 -34
- package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js +28 -34
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
- package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
- package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
- package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/esm/v2/personalization/index.js +17 -0
- package/dist/esm/v2/personalization/index.js.map +1 -1
- package/dist/esm/v2/personalization/personalizationContext.js +9 -9
- package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
- package/dist/esm/v2/personalization/schema.js +8 -9
- package/dist/esm/v2/personalization/schema.js.map +1 -1
- package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
- package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/esm/v2/referentiel/types.js +2 -0
- package/dist/esm/v2/referentiel/types.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
- package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
- package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
- package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
- package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/esm/v2/theme/_brand.js +8 -24
- package/dist/esm/v2/theme/_brand.js.map +1 -1
- package/dist/esm/v2/theme/_brandSecondary.js +8 -24
- package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
- package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
- package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/esm/v2/theme/cssVariables.js +62 -69
- package/dist/esm/v2/theme/cssVariables.js.map +1 -1
- package/dist/esm/v2/theme/index.js +5 -5
- package/dist/esm/v2/theme/index.js.map +1 -1
- package/dist/esm/v2/tokens/breakpoints.js +14 -14
- package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
- package/dist/esm/v2/tokens/chart.js +261 -0
- package/dist/esm/v2/tokens/chart.js.map +1 -0
- package/dist/esm/v2/tokens/colors.js +22 -22
- package/dist/esm/v2/tokens/colors.js.map +1 -1
- package/dist/esm/v2/tokens/density.js +62 -7
- package/dist/esm/v2/tokens/density.js.map +1 -1
- package/dist/esm/v2/tokens/index.js +49 -34
- package/dist/esm/v2/tokens/index.js.map +1 -1
- package/dist/esm/v2/tokens/motion.js +12 -20
- package/dist/esm/v2/tokens/motion.js.map +1 -1
- package/dist/esm/v2/tokens/radius.js +1 -1
- package/dist/esm/v2/tokens/radius.js.map +1 -1
- package/dist/esm/v2/tokens/shadows.js +6 -6
- package/dist/esm/v2/tokens/shadows.js.map +1 -1
- package/dist/esm/v2/tokens/spacing.js +2 -2
- package/dist/esm/v2/tokens/spacing.js.map +1 -1
- package/dist/esm/v2/tokens/state.js +1 -1
- package/dist/esm/v2/tokens/state.js.map +1 -1
- package/dist/esm/v2/tokens/statusPalette.js +17 -21
- package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
- package/dist/esm/v2/tokens/tokens.json +6 -1
- package/dist/esm/v2/tokens/typography.js +13 -13
- package/dist/esm/v2/tokens/typography.js.map +1 -1
- package/dist/esm/v2/tokens/zIndex.js +1 -1
- package/dist/esm/v2/tokens/zIndex.js.map +1 -1
- package/dist/esm/v2/types/datagrid.js.map +1 -1
- package/dist/esm/v2/utils/apiError.js +16 -37
- package/dist/esm/v2/utils/apiError.js.map +1 -1
- package/dist/esm/v2/utils/contrast.js +31 -32
- package/dist/esm/v2/utils/contrast.js.map +1 -1
- package/dist/esm/v2/utils/cx.js +5 -25
- package/dist/esm/v2/utils/cx.js.map +1 -1
- package/dist/esm/v2/utils/fileDownload.js +23 -26
- package/dist/esm/v2/utils/fileDownload.js.map +1 -1
- package/dist/esm/v2/utils/fileValidation.js +209 -0
- package/dist/esm/v2/utils/fileValidation.js.map +1 -0
- package/dist/esm/v2/utils/fmtDate.js +111 -0
- package/dist/esm/v2/utils/fmtDate.js.map +1 -0
- package/dist/esm/v2/utils/fmtMoney.js +8 -10
- package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
- package/dist/esm/v2/utils/formikErrors.js +78 -0
- package/dist/esm/v2/utils/formikErrors.js.map +1 -0
- package/dist/esm/v2/utils/index.js +35 -2
- package/dist/esm/v2/utils/index.js.map +1 -1
- package/dist/esm/v2/utils/mergeLabels.js +7 -12
- package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
- package/dist/esm/v2/utils/networkStatus.js +12 -12
- package/dist/esm/v2/utils/networkStatus.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +110 -49
- package/dist/index.js.map +1 -1
- package/dist/v2/__tests__/AppMain.test.js +133 -0
- package/dist/v2/__tests__/AppMain.test.js.map +1 -0
- package/dist/v2/__tests__/ChartFigure.test.js +183 -0
- package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
- package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
- package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
- package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
- package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
- package/dist/v2/__tests__/FieldError.test.js +82 -49
- package/dist/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/v2/__tests__/FieldNaming.test.js +161 -0
- package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
- package/dist/v2/__tests__/FieldWidth.test.js +23 -25
- package/dist/v2/__tests__/FieldWidth.test.js.map +1 -1
- package/dist/v2/__tests__/FileCard.test.js +29 -28
- package/dist/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/v2/__tests__/FormikCheckbox.test.js +90 -183
- package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -1
- package/dist/v2/__tests__/FormikDateTimePicker.test.js +38 -48
- package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
- package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
- package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js +123 -204
- package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
- package/dist/v2/__tests__/MobileRowCard.test.js +63 -61
- package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
- package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
- package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
- package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
- package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
- package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/v2/__tests__/apiError.test.js +50 -69
- package/dist/v2/__tests__/apiError.test.js.map +1 -1
- package/dist/v2/__tests__/banned-patterns.test.js +42 -123
- package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
- package/dist/v2/__tests__/chart-palette.test.js +205 -0
- package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
- package/dist/v2/__tests__/contrast-palette.test.js +42 -74
- package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
- package/dist/v2/__tests__/cssVariables.test.js +44 -51
- package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
- package/dist/v2/__tests__/fileValidation.test.js +136 -0
- package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
- package/dist/v2/__tests__/filterCriteria.test.js +324 -0
- package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
- package/dist/v2/__tests__/fmtDate.test.js +69 -0
- package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
- package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
- package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
- package/dist/v2/__tests__/labels-merge.test.js +23 -27
- package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/v2/__tests__/locale-fallback.test.js +47 -52
- package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
- package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
- package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
- package/dist/v2/__tests__/rowActions.test.js +186 -0
- package/dist/v2/__tests__/rowActions.test.js.map +1 -0
- package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
- package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
- package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
- package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
- package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
- package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
- package/dist/v2/components/Accordion.js +60 -82
- package/dist/v2/components/Accordion.js.map +1 -1
- package/dist/v2/components/ActionStrip.js +40 -52
- package/dist/v2/components/ActionStrip.js.map +1 -1
- package/dist/v2/components/Banner.js +42 -41
- package/dist/v2/components/Banner.js.map +1 -1
- package/dist/v2/components/Busy.js +22 -27
- package/dist/v2/components/Busy.js.map +1 -1
- package/dist/v2/components/Button.js +39 -50
- package/dist/v2/components/Button.js.map +1 -1
- package/dist/v2/components/CategoryTag.d.ts.map +1 -1
- package/dist/v2/components/CategoryTag.js +49 -32
- package/dist/v2/components/CategoryTag.js.map +1 -1
- package/dist/v2/components/Checkbox.js +39 -45
- package/dist/v2/components/Checkbox.js.map +1 -1
- package/dist/v2/components/Chip.js +29 -42
- package/dist/v2/components/Chip.js.map +1 -1
- package/dist/v2/components/Combobox.js +122 -144
- package/dist/v2/components/Combobox.js.map +1 -1
- package/dist/v2/components/CommandPalette.js +138 -225
- package/dist/v2/components/CommandPalette.js.map +1 -1
- package/dist/v2/components/ConfirmDialog.js +46 -56
- package/dist/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/v2/components/DatePicker.js +81 -86
- package/dist/v2/components/DatePicker.js.map +1 -1
- package/dist/v2/components/DateRangePicker.js +77 -87
- package/dist/v2/components/DateRangePicker.js.map +1 -1
- package/dist/v2/components/DateTimePicker.js +84 -91
- package/dist/v2/components/DateTimePicker.js.map +1 -1
- package/dist/v2/components/Drawer.d.ts.map +1 -1
- package/dist/v2/components/Drawer.js +93 -88
- package/dist/v2/components/Drawer.js.map +1 -1
- package/dist/v2/components/Dropzone.js +150 -196
- package/dist/v2/components/Dropzone.js.map +1 -1
- package/dist/v2/components/EmptyState.js +18 -20
- package/dist/v2/components/EmptyState.js.map +1 -1
- package/dist/v2/components/FavoriteToggle.js +28 -39
- package/dist/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/v2/components/Field.d.ts +62 -4
- package/dist/v2/components/Field.d.ts.map +1 -1
- package/dist/v2/components/Field.js +169 -70
- package/dist/v2/components/Field.js.map +1 -1
- package/dist/v2/components/FieldError.js +18 -21
- package/dist/v2/components/FieldError.js.map +1 -1
- package/dist/v2/components/FieldHelp.js +40 -60
- package/dist/v2/components/FieldHelp.js.map +1 -1
- package/dist/v2/components/FileCard.js +27 -31
- package/dist/v2/components/FileCard.js.map +1 -1
- package/dist/v2/components/FilterTab.js +30 -38
- package/dist/v2/components/FilterTab.js.map +1 -1
- package/dist/v2/components/ForbiddenPage.d.ts +25 -1
- package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
- package/dist/v2/components/ForbiddenPage.js +37 -17
- package/dist/v2/components/ForbiddenPage.js.map +1 -1
- package/dist/v2/components/FormGrid.js +53 -59
- package/dist/v2/components/FormGrid.js.map +1 -1
- package/dist/v2/components/FormikDisplay.d.ts +50 -1
- package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
- package/dist/v2/components/FormikDisplay.js +108 -33
- package/dist/v2/components/FormikDisplay.js.map +1 -1
- package/dist/v2/components/Input.d.ts +40 -0
- package/dist/v2/components/Input.d.ts.map +1 -1
- package/dist/v2/components/Input.js +81 -41
- package/dist/v2/components/Input.js.map +1 -1
- package/dist/v2/components/KPICard.js +57 -67
- package/dist/v2/components/KPICard.js.map +1 -1
- package/dist/v2/components/KPIStrip.js +16 -22
- package/dist/v2/components/KPIStrip.js.map +1 -1
- package/dist/v2/components/KV.js +25 -31
- package/dist/v2/components/KV.js.map +1 -1
- package/dist/v2/components/KVGrid.js +19 -26
- package/dist/v2/components/KVGrid.js.map +1 -1
- package/dist/v2/components/Layout.js +91 -120
- package/dist/v2/components/Layout.js.map +1 -1
- package/dist/v2/components/MobileRowCard.js +79 -91
- package/dist/v2/components/MobileRowCard.js.map +1 -1
- package/dist/v2/components/Modal.js +61 -69
- package/dist/v2/components/Modal.js.map +1 -1
- package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
- package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
- package/dist/v2/components/NetworkErrorPage.js +38 -21
- package/dist/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/v2/components/NotFoundPage.d.ts +17 -1
- package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
- package/dist/v2/components/NotFoundPage.js +37 -18
- package/dist/v2/components/NotFoundPage.js.map +1 -1
- package/dist/v2/components/NumberInput.js +88 -118
- package/dist/v2/components/NumberInput.js.map +1 -1
- package/dist/v2/components/OverflowMenu.js +38 -56
- package/dist/v2/components/OverflowMenu.js.map +1 -1
- package/dist/v2/components/PdfViewer.js +34 -45
- package/dist/v2/components/PdfViewer.js.map +1 -1
- package/dist/v2/components/ProgressBar.js +42 -49
- package/dist/v2/components/ProgressBar.js.map +1 -1
- package/dist/v2/components/Radio.js +59 -67
- package/dist/v2/components/Radio.js.map +1 -1
- package/dist/v2/components/SectionErrorBoundary.js +90 -135
- package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
- package/dist/v2/components/SectionHeader.js +34 -41
- package/dist/v2/components/SectionHeader.js.map +1 -1
- package/dist/v2/components/Segmented.js +69 -93
- package/dist/v2/components/Segmented.js.map +1 -1
- package/dist/v2/components/Select.d.ts +26 -2
- package/dist/v2/components/Select.d.ts.map +1 -1
- package/dist/v2/components/Select.js +120 -155
- package/dist/v2/components/Select.js.map +1 -1
- package/dist/v2/components/ServerErrorPage.d.ts +27 -1
- package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
- package/dist/v2/components/ServerErrorPage.js +37 -20
- package/dist/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/v2/components/Skeleton.js +86 -100
- package/dist/v2/components/Skeleton.js.map +1 -1
- package/dist/v2/components/SkipLink.js +9 -12
- package/dist/v2/components/SkipLink.js.map +1 -1
- package/dist/v2/components/Spinner.js +16 -25
- package/dist/v2/components/Spinner.js.map +1 -1
- package/dist/v2/components/Status.js +18 -29
- package/dist/v2/components/Status.js.map +1 -1
- package/dist/v2/components/Stepper.js +80 -82
- package/dist/v2/components/Stepper.js.map +1 -1
- package/dist/v2/components/Surface.js +34 -49
- package/dist/v2/components/Surface.js.map +1 -1
- package/dist/v2/components/Switch.js +29 -37
- package/dist/v2/components/Switch.js.map +1 -1
- package/dist/v2/components/TabPanel.d.ts +17 -0
- package/dist/v2/components/TabPanel.d.ts.map +1 -0
- package/dist/v2/components/TabPanel.js +90 -0
- package/dist/v2/components/TabPanel.js.map +1 -0
- package/dist/v2/components/Tabs.d.ts +25 -0
- package/dist/v2/components/Tabs.d.ts.map +1 -1
- package/dist/v2/components/Tabs.js +53 -29
- package/dist/v2/components/Tabs.js.map +1 -1
- package/dist/v2/components/TelInput.js +80 -115
- package/dist/v2/components/TelInput.js.map +1 -1
- package/dist/v2/components/Textarea.js +26 -35
- package/dist/v2/components/Textarea.js.map +1 -1
- package/dist/v2/components/TimePicker.js +62 -74
- package/dist/v2/components/TimePicker.js.map +1 -1
- package/dist/v2/components/Toast.js +119 -174
- package/dist/v2/components/Toast.js.map +1 -1
- package/dist/v2/components/Tooltip.js +23 -38
- package/dist/v2/components/Tooltip.js.map +1 -1
- package/dist/v2/components/_ErrorPageBody.js +15 -16
- package/dist/v2/components/_ErrorPageBody.js.map +1 -1
- package/dist/v2/components/_pickerShared.js +5 -5
- package/dist/v2/components/_pickerShared.js.map +1 -1
- package/dist/v2/components/index.d.ts +40 -1
- package/dist/v2/components/index.d.ts.map +1 -1
- package/dist/v2/components/index.js +153 -136
- package/dist/v2/components/index.js.map +1 -1
- package/dist/v2/hooks/index.d.ts +65 -0
- package/dist/v2/hooks/index.d.ts.map +1 -1
- package/dist/v2/hooks/index.js +63 -24
- package/dist/v2/hooks/index.js.map +1 -1
- package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
- package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
- package/dist/v2/hooks/useAppliedFilters.js +117 -0
- package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
- package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
- package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
- package/dist/v2/hooks/useDebouncedCallback.js +87 -0
- package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/v2/hooks/useDelayedFlag.js +6 -20
- package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
- package/dist/v2/hooks/useDensity.d.ts.map +1 -1
- package/dist/v2/hooks/useDensity.js +14 -18
- package/dist/v2/hooks/useDensity.js.map +1 -1
- package/dist/v2/hooks/useFocusFirstError.js +26 -34
- package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
- package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
- package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
- package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
- package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
- package/dist/v2/hooks/useFocusTrap.js +20 -24
- package/dist/v2/hooks/useFocusTrap.js.map +1 -1
- package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
- package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
- package/dist/v2/hooks/useFormAutoSave.js +39 -54
- package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
- package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
- package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
- package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
- package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
- package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
- package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
- package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
- package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
- package/dist/v2/hooks/useResolvedDensity.js +5 -13
- package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
- package/dist/v2/hooks/useSortedRows.js +4 -6
- package/dist/v2/hooks/useSortedRows.js.map +1 -1
- package/dist/v2/hooks/useTabLoading.js +7 -22
- package/dist/v2/hooks/useTabLoading.js.map +1 -1
- package/dist/v2/index.js +143 -145
- package/dist/v2/index.js.map +1 -1
- package/dist/v2/modalContext.js +2 -2
- package/dist/v2/modalContext.js.map +1 -1
- package/dist/v2/models/favorite.d.ts +8 -9
- package/dist/v2/models/favorite.d.ts.map +1 -1
- package/dist/v2/models/favorite.js.map +1 -1
- package/dist/v2/models/index.js +4 -4
- package/dist/v2/models/index.js.map +1 -1
- package/dist/v2/models/personalization.d.ts +44 -48
- package/dist/v2/models/personalization.d.ts.map +1 -1
- package/dist/v2/models/personalization.js.map +1 -1
- package/dist/v2/models/referentiel.d.ts +32 -50
- package/dist/v2/models/referentiel.d.ts.map +1 -1
- package/dist/v2/models/referentiel.js.map +1 -1
- package/dist/v2/models/savedFilter.d.ts +8 -17
- package/dist/v2/models/savedFilter.d.ts.map +1 -1
- package/dist/v2/models/savedFilter.js.map +1 -1
- package/dist/v2/patterns/ActionBar.js +152 -187
- package/dist/v2/patterns/ActionBar.js.map +1 -1
- package/dist/v2/patterns/AppMain.d.ts +109 -0
- package/dist/v2/patterns/AppMain.d.ts.map +1 -0
- package/dist/v2/patterns/AppMain.js +115 -0
- package/dist/v2/patterns/AppMain.js.map +1 -0
- package/dist/v2/patterns/BulkActionBar.js +40 -42
- package/dist/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/v2/patterns/ChartFigure.d.ts +124 -0
- package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
- package/dist/v2/patterns/ChartFigure.js +159 -0
- package/dist/v2/patterns/ChartFigure.js.map +1 -0
- package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
- package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/v2/patterns/ColumnsToggle.js +60 -94
- package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
- package/dist/v2/patterns/DataGrid.js +262 -297
- package/dist/v2/patterns/DataGrid.js.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
- package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/v2/patterns/DataGridToolbar.js +103 -106
- package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/v2/patterns/DataGridVirtualized.js +179 -217
- package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/v2/patterns/DetailSplit.d.ts +87 -0
- package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
- package/dist/v2/patterns/DetailSplit.js +116 -0
- package/dist/v2/patterns/DetailSplit.js.map +1 -0
- package/dist/v2/patterns/FavoriteColumn.js +22 -23
- package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/v2/patterns/FavoritesFilter.js +36 -44
- package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
- package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
- package/dist/v2/patterns/FilterTabBar.js +120 -0
- package/dist/v2/patterns/FilterTabBar.js.map +1 -0
- package/dist/v2/patterns/FormErrorSummary.js +20 -23
- package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/v2/patterns/FormPageShell.js +53 -50
- package/dist/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/v2/patterns/FormSection.d.ts +8 -3
- package/dist/v2/patterns/FormSection.d.ts.map +1 -1
- package/dist/v2/patterns/FormSection.js +44 -51
- package/dist/v2/patterns/FormSection.js.map +1 -1
- package/dist/v2/patterns/FormikCheckbox.js +36 -45
- package/dist/v2/patterns/FormikCheckbox.js.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
- package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/v2/patterns/FormikCombobox.js +55 -72
- package/dist/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.js +50 -64
- package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/v2/patterns/FormikDateTimePicker.js +50 -64
- package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -1
- package/dist/v2/patterns/FormikErrorFocus.js +25 -26
- package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
- package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
- package/dist/v2/patterns/FormikErrorSummary.js +97 -0
- package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
- package/dist/v2/patterns/FormikFile.d.ts +14 -1
- package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
- package/dist/v2/patterns/FormikFile.js +99 -83
- package/dist/v2/patterns/FormikFile.js.map +1 -1
- package/dist/v2/patterns/FormikInput.js +45 -58
- package/dist/v2/patterns/FormikInput.js.map +1 -1
- package/dist/v2/patterns/FormikRadioGroup.js +45 -56
- package/dist/v2/patterns/FormikRadioGroup.js.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
- package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.js +54 -64
- package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/v2/patterns/FormikSelect.js +70 -92
- package/dist/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/v2/patterns/FormikTextarea.js +35 -51
- package/dist/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.js +60 -80
- package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
- package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/v2/patterns/PageContent.js +17 -20
- package/dist/v2/patterns/PageContent.js.map +1 -1
- package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
- package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
- package/dist/v2/patterns/PreviewDrawer.js +159 -0
- package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
- package/dist/v2/patterns/ReferentielField.d.ts +86 -2
- package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/ReferentielField.js +347 -327
- package/dist/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/v2/patterns/RowFavoriteToggle.d.ts +6 -0
- package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -1
- package/dist/v2/patterns/RowFavoriteToggle.js +38 -30
- package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -1
- package/dist/v2/patterns/SaveFilterDialog.js +50 -77
- package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
- package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/v2/patterns/SkeletonPageShell.js +122 -143
- package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/v2/patterns/SortableHeader.js +35 -57
- package/dist/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/v2/patterns/Tour.js +121 -142
- package/dist/v2/patterns/Tour.js.map +1 -1
- package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
- package/dist/v2/patterns/_dataGridShared.js +131 -147
- package/dist/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/v2/patterns/_pickerSerialisation.js +9 -10
- package/dist/v2/patterns/_pickerSerialisation.js.map +1 -1
- package/dist/v2/patterns/_sort.js +17 -33
- package/dist/v2/patterns/_sort.js.map +1 -1
- package/dist/v2/patterns/_useColumnReorder.js +124 -163
- package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/v2/patterns/_useColumnResize.js +80 -99
- package/dist/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/v2/patterns/filterCriteria.d.ts +78 -0
- package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
- package/dist/v2/patterns/filterCriteria.js +110 -0
- package/dist/v2/patterns/filterCriteria.js.map +1 -0
- package/dist/v2/patterns/index.d.ts +160 -0
- package/dist/v2/patterns/index.d.ts.map +1 -1
- package/dist/v2/patterns/index.js +157 -79
- package/dist/v2/patterns/index.js.map +1 -1
- package/dist/v2/patterns/rowActions.d.ts +150 -0
- package/dist/v2/patterns/rowActions.d.ts.map +1 -0
- package/dist/v2/patterns/rowActions.js +232 -0
- package/dist/v2/patterns/rowActions.js.map +1 -0
- package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
- package/dist/v2/personalization/PersonalizationProvider.js +57 -53
- package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/v2/personalization/adapters/_storageKey.js +5 -5
- package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
- package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/index.js +5 -5
- package/dist/v2/personalization/adapters/index.js.map +1 -1
- package/dist/v2/personalization/capabilities/favorites.js +39 -62
- package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
- package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
- package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/v2/personalization/capabilities/gridPreferences.js +31 -36
- package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -1
- package/dist/v2/personalization/capabilities/index.js +12 -12
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
- package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
- package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.js +81 -182
- package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/v2/personalization/index.d.ts +16 -0
- package/dist/v2/personalization/index.d.ts.map +1 -1
- package/dist/v2/personalization/index.js +30 -23
- package/dist/v2/personalization/index.js.map +1 -1
- package/dist/v2/personalization/personalizationContext.js +10 -12
- package/dist/v2/personalization/personalizationContext.js.map +1 -1
- package/dist/v2/personalization/schema.js +8 -9
- package/dist/v2/personalization/schema.js.map +1 -1
- package/dist/v2/referentiel/ReferentielProvider.js +31 -45
- package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/v2/referentiel/index.js +11 -13
- package/dist/v2/referentiel/index.js.map +1 -1
- package/dist/v2/referentiel/types.d.ts +105 -0
- package/dist/v2/referentiel/types.d.ts.map +1 -0
- package/dist/v2/referentiel/types.js +6 -0
- package/dist/v2/referentiel/types.js.map +1 -0
- package/dist/v2/referentiel/useReferentielClient.js +13 -16
- package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
- package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.js +63 -120
- package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
- package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.js +40 -95
- package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/v2/theme/_brand.js +12 -26
- package/dist/v2/theme/_brand.js.map +1 -1
- package/dist/v2/theme/_brandSecondary.js +12 -26
- package/dist/v2/theme/_brandSecondary.js.map +1 -1
- package/dist/v2/theme/createPortnetTheme.js +41 -49
- package/dist/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/v2/theme/cssVariables.d.ts +3 -3
- package/dist/v2/theme/cssVariables.d.ts.map +1 -1
- package/dist/v2/theme/cssVariables.js +65 -70
- package/dist/v2/theme/cssVariables.js.map +1 -1
- package/dist/v2/theme/index.js +10 -10
- package/dist/v2/theme/index.js.map +1 -1
- package/dist/v2/tokens/breakpoints.js +16 -16
- package/dist/v2/tokens/breakpoints.js.map +1 -1
- package/dist/v2/tokens/chart.d.ts +103 -0
- package/dist/v2/tokens/chart.d.ts.map +1 -0
- package/dist/v2/tokens/chart.js +270 -0
- package/dist/v2/tokens/chart.js.map +1 -0
- package/dist/v2/tokens/colors.js +24 -24
- package/dist/v2/tokens/colors.js.map +1 -1
- package/dist/v2/tokens/density.d.ts +104 -0
- package/dist/v2/tokens/density.d.ts.map +1 -1
- package/dist/v2/tokens/density.js +67 -12
- package/dist/v2/tokens/density.js.map +1 -1
- package/dist/v2/tokens/index.d.ts +50 -1
- package/dist/v2/tokens/index.d.ts.map +1 -1
- package/dist/v2/tokens/index.js +116 -68
- package/dist/v2/tokens/index.js.map +1 -1
- package/dist/v2/tokens/motion.js +16 -22
- package/dist/v2/tokens/motion.js.map +1 -1
- package/dist/v2/tokens/radius.js +3 -3
- package/dist/v2/tokens/radius.js.map +1 -1
- package/dist/v2/tokens/shadows.js +8 -8
- package/dist/v2/tokens/shadows.js.map +1 -1
- package/dist/v2/tokens/spacing.js +4 -4
- package/dist/v2/tokens/spacing.js.map +1 -1
- package/dist/v2/tokens/state.js +3 -3
- package/dist/v2/tokens/state.js.map +1 -1
- package/dist/v2/tokens/statusPalette.js +21 -23
- package/dist/v2/tokens/statusPalette.js.map +1 -1
- package/dist/v2/tokens/tokens.json +6 -1
- package/dist/v2/tokens/typography.js +15 -15
- package/dist/v2/tokens/typography.js.map +1 -1
- package/dist/v2/tokens/zIndex.js +3 -3
- package/dist/v2/tokens/zIndex.js.map +1 -1
- package/dist/v2/types/datagrid.d.ts +9 -1
- package/dist/v2/types/datagrid.d.ts.map +1 -1
- package/dist/v2/types/datagrid.js.map +1 -1
- package/dist/v2/types/index.js +2 -2
- package/dist/v2/types/index.js.map +1 -1
- package/dist/v2/utils/apiError.js +16 -37
- package/dist/v2/utils/apiError.js.map +1 -1
- package/dist/v2/utils/contrast.js +31 -32
- package/dist/v2/utils/contrast.js.map +1 -1
- package/dist/v2/utils/cx.js +7 -27
- package/dist/v2/utils/cx.js.map +1 -1
- package/dist/v2/utils/fileDownload.js +25 -28
- package/dist/v2/utils/fileDownload.js.map +1 -1
- package/dist/v2/utils/fileValidation.d.ts +116 -0
- package/dist/v2/utils/fileValidation.d.ts.map +1 -0
- package/dist/v2/utils/fileValidation.js +220 -0
- package/dist/v2/utils/fileValidation.js.map +1 -0
- package/dist/v2/utils/fmtDate.d.ts +103 -0
- package/dist/v2/utils/fmtDate.d.ts.map +1 -0
- package/dist/v2/utils/fmtDate.js +119 -0
- package/dist/v2/utils/fmtDate.js.map +1 -0
- package/dist/v2/utils/fmtMoney.d.ts +3 -3
- package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
- package/dist/v2/utils/fmtMoney.js +9 -11
- package/dist/v2/utils/fmtMoney.js.map +1 -1
- package/dist/v2/utils/formikErrors.d.ts +67 -0
- package/dist/v2/utils/formikErrors.d.ts.map +1 -0
- package/dist/v2/utils/formikErrors.js +85 -0
- package/dist/v2/utils/formikErrors.js.map +1 -0
- package/dist/v2/utils/index.d.ts +5 -0
- package/dist/v2/utils/index.d.ts.map +1 -1
- package/dist/v2/utils/index.js +67 -18
- package/dist/v2/utils/index.js.map +1 -1
- package/dist/v2/utils/mergeLabels.js +9 -14
- package/dist/v2/utils/mergeLabels.js.map +1 -1
- package/dist/v2/utils/networkStatus.js +14 -14
- package/dist/v2/utils/networkStatus.js.map +1 -1
- package/package.json +26 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormErrorSummary.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_Banner","_jsxRuntime","
|
|
1
|
+
{"version":3,"file":"FormErrorSummary.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_Banner","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FormErrorSummary","errors","labelByName","onItemClick","title","length","heading","handleClick","name","preventDefault","jsx","variant","children","component","role","sx","margin","paddingInlineStart","fontSize","listStyle","map","err","idx","label","jsxs","marginBottom","type","onClick","background","border","padding","font","cursor","color","textDecoration","fontWeight","outline","outlineOffset","borderRadius","message","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormErrorSummary.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Banner from \"../components/Banner\";\r\n\r\n/**\r\n * FormErrorSummary — Portnet UI v2\r\n *\r\n * Charter §05 / R-FV.2. Synthesis banner rendered above a form after a\r\n * failed-submit so the user sees, at-a-glance, every field that needs\r\n * attention. Each entry is a clickable jump-to-field affordance; the host\r\n * supplies the navigation behaviour via `onItemClick`.\r\n *\r\n * Composition: pure v2.Banner + a semantic <ul> of <button> jump-links.\r\n * No host-specific scroll/focus logic baked in.\r\n *\r\n * Renders nothing when `errors` is empty / nullish — host can mount\r\n * unconditionally above the form.\r\n *\r\n * Accessibility:\r\n * - <button type=\"button\"> instead of <a href=\"#…\">. The entries trigger\r\n * an action (focus/scroll) and don't navigate.\r\n * - Explicit role=\"list\" + role=\"listitem\" because some screen readers\r\n * strip list semantics when CSS list-style:none is applied.\r\n * - Banner already carries the alert/role semantics for the region.\r\n * - Explicit :focus-visible outline on each jump-button on --danger-fg,\r\n * which passes WCAG 1.4.11 ≥ 3:1 on danger-soft (finding B4-EXT-2).\r\n *\r\n * Charter R-AI.2: composition of v2.Banner only — no local primitive.\r\n */\r\n\r\nexport interface FormErrorSummaryError {\r\n name: string;\r\n message: string;\r\n}\r\n\r\nexport interface FormErrorSummaryProps {\r\n errors?: FormErrorSummaryError[] | undefined;\r\n labelByName?: Record<string, string> | undefined;\r\n onItemClick?: ((name: string) => void) | undefined;\r\n title?: string | undefined;\r\n}\r\n\r\nfunction FormErrorSummary({\r\n errors,\r\n labelByName,\r\n onItemClick,\r\n title,\r\n}: FormErrorSummaryProps) {\r\n if (!errors || errors.length === 0) return null;\r\n\r\n const heading = title || \"Veuillez corriger les erreurs ci-dessous\";\r\n\r\n const handleClick = (\r\n e: React.MouseEvent<HTMLButtonElement>,\r\n name: string\r\n ) => {\r\n e.preventDefault();\r\n if (typeof onItemClick === \"function\") {\r\n onItemClick(name);\r\n }\r\n };\r\n\r\n return (\r\n <Banner variant=\"error\" title={heading}>\r\n <Box\r\n component=\"ul\"\r\n role=\"list\"\r\n sx={{\r\n margin: 0,\r\n paddingInlineStart: \"var(--s-5)\",\r\n fontSize: \"var(--text-sm)\",\r\n listStyle: \"disc\",\r\n }}\r\n >\r\n {errors.map((err, idx) => {\r\n const label = (labelByName && labelByName[err.name]) || err.name;\r\n return (\r\n <Box\r\n component=\"li\"\r\n role=\"listitem\"\r\n key={`${err.name}-${idx}`}\r\n sx={{ marginBottom: \"var(--s-1)\" }}\r\n >\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n onClick={(e) => handleClick(e, err.name)}\r\n sx={{\r\n // Reset default <button> chrome so the link reads visually\r\n // as a hyperlink in the banner body.\r\n background: \"transparent\",\r\n border: \"none\",\r\n padding: 0,\r\n margin: 0,\r\n font: \"inherit\",\r\n cursor: \"pointer\",\r\n color: \"var(--danger-fg)\",\r\n textDecoration: \"underline\",\r\n fontWeight: \"var(--fw-medium)\",\r\n // R-F.1 — explicit focus-visible outline. Outline on\r\n // currentColor (danger-fg) passes 1.4.11 ≥ 3:1 on the soft\r\n // danger background; borderRadius aligns the ring with the DS.\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--danger-fg)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n borderRadius: \"var(--r-sm)\",\r\n },\r\n }}\r\n >\r\n {label}\r\n </Box>\r\n {\": \"}\r\n <span>{err.message}</span>\r\n </Box>\r\n );\r\n })}\r\n </Box>\r\n </Banner>\r\n );\r\n}\r\n\r\nexport default FormErrorSummary;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,22 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
6
|
+
exports.default = void 0;
|
|
7
7
|
var React = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
9
9
|
var _ActionBar = _interopRequireDefault(require("./ActionBar"));
|
|
10
10
|
var _PageContent = _interopRequireDefault(require("./PageContent"));
|
|
11
11
|
var _ProgressBar = _interopRequireDefault(require("../components/ProgressBar"));
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
-
function _interopRequireDefault(
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
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); }
|
|
17
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
19
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
20
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
21
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /**
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
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); }
|
|
15
|
+
/**
|
|
22
16
|
* FormPageShell — Portnet UI v2 (pattern)
|
|
23
17
|
*
|
|
24
18
|
* Charter §07 R-L.2 — canonical shell for create/edit form pages.
|
|
@@ -53,17 +47,18 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
53
47
|
* <FormSection number={1} title="Informations">…</FormSection>
|
|
54
48
|
* </FormPageShell>
|
|
55
49
|
*/
|
|
56
|
-
|
|
50
|
+
|
|
51
|
+
const PROGRESS_ROW_SX = Object.freeze({
|
|
57
52
|
display: "flex",
|
|
58
53
|
alignItems: "center",
|
|
59
54
|
gap: "var(--s-3)",
|
|
60
55
|
marginBottom: "var(--s-5)"
|
|
61
56
|
});
|
|
62
|
-
|
|
57
|
+
const PROGRESS_BAR_WRAPPER_SX = Object.freeze({
|
|
63
58
|
flex: 1,
|
|
64
59
|
minWidth: 0
|
|
65
60
|
});
|
|
66
|
-
|
|
61
|
+
const PROGRESS_LABEL_SX = Object.freeze({
|
|
67
62
|
fontSize: "var(--text-xs)",
|
|
68
63
|
color: "var(--fg-muted)",
|
|
69
64
|
whiteSpace: "nowrap",
|
|
@@ -76,58 +71,66 @@ var PROGRESS_LABEL_SX = Object.freeze({
|
|
|
76
71
|
* React 18.3+ supprime le support de defaultProps pour les function
|
|
77
72
|
* components. Aligné sur le pattern DataGridToolbar (B14).
|
|
78
73
|
*/
|
|
79
|
-
function FormPageShell(
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
74
|
+
function FormPageShell({
|
|
75
|
+
/* ActionBar props */
|
|
76
|
+
home,
|
|
77
|
+
back,
|
|
78
|
+
breadcrumb,
|
|
79
|
+
title,
|
|
80
|
+
subtitle,
|
|
81
|
+
icon,
|
|
82
|
+
secondary = [],
|
|
83
|
+
primary,
|
|
84
|
+
overflow = [],
|
|
85
|
+
/* Progress slot */
|
|
86
|
+
progress,
|
|
87
|
+
progressLabel,
|
|
88
|
+
/* Content */
|
|
89
|
+
children,
|
|
90
|
+
contentSx
|
|
91
|
+
}) {
|
|
95
92
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
96
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ActionBar
|
|
93
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ActionBar.default, {
|
|
97
94
|
surface: false,
|
|
98
95
|
title: title,
|
|
99
96
|
subtitle: subtitle,
|
|
100
97
|
secondary: secondary,
|
|
101
|
-
overflow: overflow
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
back
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
98
|
+
overflow: overflow,
|
|
99
|
+
...(home !== undefined ? {
|
|
100
|
+
home
|
|
101
|
+
} : {}),
|
|
102
|
+
...(back !== undefined ? {
|
|
103
|
+
back
|
|
104
|
+
} : {}),
|
|
105
|
+
...(breadcrumb !== undefined ? {
|
|
106
|
+
breadcrumb
|
|
107
|
+
} : {}),
|
|
108
|
+
...(icon !== undefined ? {
|
|
109
|
+
icon
|
|
110
|
+
} : {}),
|
|
111
|
+
...(primary !== undefined ? {
|
|
112
|
+
primary
|
|
113
|
+
} : {})
|
|
114
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PageContent.default, {
|
|
115
|
+
...(contentSx !== undefined ? {
|
|
116
|
+
sx: contentSx
|
|
117
|
+
} : {}),
|
|
118
|
+
children: [typeof progress === "number" && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
116
119
|
sx: PROGRESS_ROW_SX,
|
|
117
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box
|
|
120
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
118
121
|
sx: PROGRESS_BAR_WRAPPER_SX,
|
|
119
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ProgressBar
|
|
122
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ProgressBar.default, {
|
|
120
123
|
value: progress,
|
|
121
124
|
"aria-label": "Avancement de la saisie"
|
|
122
125
|
})
|
|
123
|
-
}), progressLabel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box
|
|
126
|
+
}), progressLabel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
124
127
|
component: "span",
|
|
125
128
|
sx: PROGRESS_LABEL_SX,
|
|
126
129
|
children: progressLabel
|
|
127
130
|
})]
|
|
128
131
|
}), children]
|
|
129
|
-
})
|
|
132
|
+
})]
|
|
130
133
|
});
|
|
131
134
|
}
|
|
132
|
-
var _default = exports
|
|
135
|
+
var _default = exports.default = FormPageShell;
|
|
133
136
|
//# sourceMappingURL=FormPageShell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormPageShell.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_ActionBar","_PageContent","_ProgressBar","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","PROGRESS_ROW_SX","freeze","display","alignItems","gap","marginBottom","PROGRESS_BAR_WRAPPER_SX","flex","minWidth","PROGRESS_LABEL_SX","fontSize","color","whiteSpace","fontVariantNumeric","flexShrink","FormPageShell","_ref","home","back","breadcrumb","title","subtitle","icon","_ref$secondary","secondary","primary","_ref$overflow","overflow","progress","progressLabel","children","contentSx","jsxs","Fragment","jsx","surface","sx","component","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormPageShell.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport ActionBar, { type ActionBarProps } from \"./ActionBar\";\r\nimport PageContent from \"./PageContent\";\r\nimport ProgressBar from \"../components/ProgressBar\";\r\n\r\n/**\r\n * FormPageShell — Portnet UI v2 (pattern)\r\n *\r\n * Charter §07 R-L.2 — canonical shell for create/edit form pages.\r\n *\r\n * Combines a sticky ActionBar (surface=false, accent title) with a\r\n * responsive PageContent wrapper so every module's form page has the\r\n * same structure without reimplementing it.\r\n *\r\n * ┌───────────────────────────────────────────────────────────────┐\r\n * │ 🏠 > Breadcrumb │ sticky\r\n * │ Title [secondary] [primary] [overflow…] │\r\n * │ Subtitle │\r\n * └───────────────────────────────────────────────────────────────┘\r\n * ┌───────────────────────────────────────────────────────────────┐\r\n * │ [ProgressBar ── progressLabel] ← if progress prop given │\r\n * │ children │\r\n * └───────────────────────────────────────────────────────────────┘\r\n *\r\n * @example\r\n * <FormPageShell\r\n * home={() => navigate(\"/\")}\r\n * back={() => navigate(\"/list\")}\r\n * breadcrumb={[\"Autorisations\", \"Nouvelle autorisation\"]}\r\n * title=\"Nouvelle autorisation\"\r\n * subtitle=\"Saisissez les informations…\"\r\n * secondary={[{ label: \"Enregistrer\", icon: <SaveIcon />, onClick: handleSave }]}\r\n * primary={{ label: \"Déposer\", iconRight: <ArrowIcon />, onClick: handleDeposit }}\r\n * overflow={[{ label: \"Retour à la liste\", onClick: goBack }]}\r\n * progress={requiredPct}\r\n * progressLabel={isComplete ? \"Prêt à déposer ✓\" : `${filled}/${total} requis`}\r\n * >\r\n * <FormSection number={1} title=\"Informations\">…</FormSection>\r\n * </FormPageShell>\r\n */\r\n\r\nexport interface FormPageShellProps\r\n extends Pick<\r\n ActionBarProps,\r\n | \"home\"\r\n | \"back\"\r\n | \"breadcrumb\"\r\n | \"title\"\r\n | \"subtitle\"\r\n | \"icon\"\r\n | \"secondary\"\r\n | \"primary\"\r\n | \"overflow\"\r\n > {\r\n /** 0-100; renders a ProgressBar when provided. */\r\n progress?: number | undefined;\r\n /** Companion text beside the progress bar. */\r\n progressLabel?: React.ReactNode | undefined;\r\n children?: React.ReactNode | undefined;\r\n /** MUI sx override for PageContent. */\r\n contentSx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nconst PROGRESS_ROW_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-3)\",\r\n marginBottom: \"var(--s-5)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PROGRESS_BAR_WRAPPER_SX = Object.freeze({ flex: 1, minWidth: 0 });\r\n\r\nconst PROGRESS_LABEL_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-muted)\",\r\n whiteSpace: \"nowrap\",\r\n fontVariantNumeric: \"tabular-nums\",\r\n flexShrink: 0,\r\n} satisfies SxProps<Theme>);\r\n\r\n/**\r\n * Valeurs par défaut inline — plus de defaultProps.\r\n * React 18.3+ supprime le support de defaultProps pour les function\r\n * components. Aligné sur le pattern DataGridToolbar (B14).\r\n */\r\nfunction FormPageShell({\r\n /* ActionBar props */\r\n home,\r\n back,\r\n breadcrumb,\r\n title,\r\n subtitle,\r\n icon,\r\n secondary = [],\r\n primary,\r\n overflow = [],\r\n /* Progress slot */\r\n progress,\r\n progressLabel,\r\n /* Content */\r\n children,\r\n contentSx,\r\n}: FormPageShellProps) {\r\n return (\r\n <>\r\n <ActionBar\r\n surface={false}\r\n title={title}\r\n subtitle={subtitle}\r\n secondary={secondary}\r\n overflow={overflow}\r\n {...(home !== undefined ? { home } : {})}\r\n {...(back !== undefined ? { back } : {})}\r\n {...(breadcrumb !== undefined ? { breadcrumb } : {})}\r\n {...(icon !== undefined ? { icon } : {})}\r\n {...(primary !== undefined ? { primary } : {})}\r\n />\r\n\r\n <PageContent {...(contentSx !== undefined ? { sx: contentSx } : {})}>\r\n {typeof progress === \"number\" && (\r\n <Box sx={PROGRESS_ROW_SX}>\r\n <Box sx={PROGRESS_BAR_WRAPPER_SX}>\r\n <ProgressBar\r\n value={progress}\r\n aria-label=\"Avancement de la saisie\"\r\n />\r\n </Box>\r\n {progressLabel && (\r\n <Box component=\"span\" sx={PROGRESS_LABEL_SX}>\r\n {progressLabel}\r\n </Box>\r\n )}\r\n </Box>\r\n )}\r\n {children}\r\n </PageContent>\r\n </>\r\n );\r\n}\r\n\r\nexport default FormPageShell;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FormPageShell.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_ActionBar","_PageContent","_ProgressBar","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","PROGRESS_ROW_SX","freeze","display","alignItems","gap","marginBottom","PROGRESS_BAR_WRAPPER_SX","flex","minWidth","PROGRESS_LABEL_SX","fontSize","color","whiteSpace","fontVariantNumeric","flexShrink","FormPageShell","home","back","breadcrumb","title","subtitle","icon","secondary","primary","overflow","progress","progressLabel","children","contentSx","jsxs","Fragment","jsx","surface","undefined","sx","value","component","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormPageShell.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport ActionBar, { type ActionBarProps } from \"./ActionBar\";\r\nimport PageContent from \"./PageContent\";\r\nimport ProgressBar from \"../components/ProgressBar\";\r\n\r\n/**\r\n * FormPageShell — Portnet UI v2 (pattern)\r\n *\r\n * Charter §07 R-L.2 — canonical shell for create/edit form pages.\r\n *\r\n * Combines a sticky ActionBar (surface=false, accent title) with a\r\n * responsive PageContent wrapper so every module's form page has the\r\n * same structure without reimplementing it.\r\n *\r\n * ┌───────────────────────────────────────────────────────────────┐\r\n * │ 🏠 > Breadcrumb │ sticky\r\n * │ Title [secondary] [primary] [overflow…] │\r\n * │ Subtitle │\r\n * └───────────────────────────────────────────────────────────────┘\r\n * ┌───────────────────────────────────────────────────────────────┐\r\n * │ [ProgressBar ── progressLabel] ← if progress prop given │\r\n * │ children │\r\n * └───────────────────────────────────────────────────────────────┘\r\n *\r\n * @example\r\n * <FormPageShell\r\n * home={() => navigate(\"/\")}\r\n * back={() => navigate(\"/list\")}\r\n * breadcrumb={[\"Autorisations\", \"Nouvelle autorisation\"]}\r\n * title=\"Nouvelle autorisation\"\r\n * subtitle=\"Saisissez les informations…\"\r\n * secondary={[{ label: \"Enregistrer\", icon: <SaveIcon />, onClick: handleSave }]}\r\n * primary={{ label: \"Déposer\", iconRight: <ArrowIcon />, onClick: handleDeposit }}\r\n * overflow={[{ label: \"Retour à la liste\", onClick: goBack }]}\r\n * progress={requiredPct}\r\n * progressLabel={isComplete ? \"Prêt à déposer ✓\" : `${filled}/${total} requis`}\r\n * >\r\n * <FormSection number={1} title=\"Informations\">…</FormSection>\r\n * </FormPageShell>\r\n */\r\n\r\nexport interface FormPageShellProps\r\n extends Pick<\r\n ActionBarProps,\r\n | \"home\"\r\n | \"back\"\r\n | \"breadcrumb\"\r\n | \"title\"\r\n | \"subtitle\"\r\n | \"icon\"\r\n | \"secondary\"\r\n | \"primary\"\r\n | \"overflow\"\r\n > {\r\n /** 0-100; renders a ProgressBar when provided. */\r\n progress?: number | undefined;\r\n /** Companion text beside the progress bar. */\r\n progressLabel?: React.ReactNode | undefined;\r\n children?: React.ReactNode | undefined;\r\n /** MUI sx override for PageContent. */\r\n contentSx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nconst PROGRESS_ROW_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-3)\",\r\n marginBottom: \"var(--s-5)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PROGRESS_BAR_WRAPPER_SX = Object.freeze({ flex: 1, minWidth: 0 });\r\n\r\nconst PROGRESS_LABEL_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-muted)\",\r\n whiteSpace: \"nowrap\",\r\n fontVariantNumeric: \"tabular-nums\",\r\n flexShrink: 0,\r\n} satisfies SxProps<Theme>);\r\n\r\n/**\r\n * Valeurs par défaut inline — plus de defaultProps.\r\n * React 18.3+ supprime le support de defaultProps pour les function\r\n * components. Aligné sur le pattern DataGridToolbar (B14).\r\n */\r\nfunction FormPageShell({\r\n /* ActionBar props */\r\n home,\r\n back,\r\n breadcrumb,\r\n title,\r\n subtitle,\r\n icon,\r\n secondary = [],\r\n primary,\r\n overflow = [],\r\n /* Progress slot */\r\n progress,\r\n progressLabel,\r\n /* Content */\r\n children,\r\n contentSx,\r\n}: FormPageShellProps) {\r\n return (\r\n <>\r\n <ActionBar\r\n surface={false}\r\n title={title}\r\n subtitle={subtitle}\r\n secondary={secondary}\r\n overflow={overflow}\r\n {...(home !== undefined ? { home } : {})}\r\n {...(back !== undefined ? { back } : {})}\r\n {...(breadcrumb !== undefined ? { breadcrumb } : {})}\r\n {...(icon !== undefined ? { icon } : {})}\r\n {...(primary !== undefined ? { primary } : {})}\r\n />\r\n\r\n <PageContent {...(contentSx !== undefined ? { sx: contentSx } : {})}>\r\n {typeof progress === \"number\" && (\r\n <Box sx={PROGRESS_ROW_SX}>\r\n <Box sx={PROGRESS_BAR_WRAPPER_SX}>\r\n <ProgressBar\r\n value={progress}\r\n aria-label=\"Avancement de la saisie\"\r\n />\r\n </Box>\r\n {progressLabel && (\r\n <Box component=\"span\" sx={PROGRESS_LABEL_SX}>\r\n {progressLabel}\r\n </Box>\r\n )}\r\n </Box>\r\n )}\r\n {children}\r\n </PageContent>\r\n </>\r\n );\r\n}\r\n\r\nexport default FormPageShell;\r\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,YAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,YAAA,GAAAH,sBAAA,CAAAF,OAAA;AAAoD,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAE,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAR,wBAAAQ,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAZ,uBAAA,YAAAA,CAAAQ,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAwBA,MAAMgB,eAAe,GAAGH,MAAM,CAACI,MAAM,CAAC;EACpCC,OAAO,EAAE,MAAM;EACfC,UAAU,EAAE,QAAQ;EACpBC,GAAG,EAAE,YAAY;EACjBC,YAAY,EAAE;AAChB,CAA0B,CAAC;AAE3B,MAAMC,uBAAuB,GAAGT,MAAM,CAACI,MAAM,CAAC;EAAEM,IAAI,EAAE,CAAC;EAAEC,QAAQ,EAAE;AAAE,CAAC,CAAC;AAEvE,MAAMC,iBAAiB,GAAGZ,MAAM,CAACI,MAAM,CAAC;EACtCS,QAAQ,EAAE,gBAAgB;EAC1BC,KAAK,EAAE,iBAAiB;EACxBC,UAAU,EAAE,QAAQ;EACpBC,kBAAkB,EAAE,cAAc;EAClCC,UAAU,EAAE;AACd,CAA0B,CAAC;;AAE3B;AACA;AACA;AACA;AACA;AACA,SAASC,aAAaA,CAAC;EACrB;EACAC,IAAI;EACJC,IAAI;EACJC,UAAU;EACVC,KAAK;EACLC,QAAQ;EACRC,IAAI;EACJC,SAAS,GAAG,EAAE;EACdC,OAAO;EACPC,QAAQ,GAAG,EAAE;EACb;EACAC,QAAQ;EACRC,aAAa;EACb;EACAC,QAAQ;EACRC;AACkB,CAAC,EAAE;EACrB,oBACE,IAAAhD,WAAA,CAAAiD,IAAA,EAAAjD,WAAA,CAAAkD,QAAA;IAAAH,QAAA,gBACE,IAAA/C,WAAA,CAAAmD,GAAA,EAACtD,UAAA,CAAAM,OAAS;MACRiD,OAAO,EAAE,KAAM;MACfb,KAAK,EAAEA,KAAM;MACbC,QAAQ,EAAEA,QAAS;MACnBE,SAAS,EAAEA,SAAU;MACrBE,QAAQ,EAAEA,QAAS;MAAA,IACdR,IAAI,KAAKiB,SAAS,GAAG;QAAEjB;MAAK,CAAC,GAAG,CAAC,CAAC;MAAA,IAClCC,IAAI,KAAKgB,SAAS,GAAG;QAAEhB;MAAK,CAAC,GAAG,CAAC,CAAC;MAAA,IAClCC,UAAU,KAAKe,SAAS,GAAG;QAAEf;MAAW,CAAC,GAAG,CAAC,CAAC;MAAA,IAC9CG,IAAI,KAAKY,SAAS,GAAG;QAAEZ;MAAK,CAAC,GAAG,CAAC,CAAC;MAAA,IAClCE,OAAO,KAAKU,SAAS,GAAG;QAAEV;MAAQ,CAAC,GAAG,CAAC,CAAC;IAAA,CAC9C,CAAC,eAEF,IAAA3C,WAAA,CAAAiD,IAAA,EAACnD,YAAA,CAAAK,OAAW;MAAA,IAAM6C,SAAS,KAAKK,SAAS,GAAG;QAAEC,EAAE,EAAEN;MAAU,CAAC,GAAG,CAAC,CAAC;MAAAD,QAAA,GAC/D,OAAOF,QAAQ,KAAK,QAAQ,iBAC3B,IAAA7C,WAAA,CAAAiD,IAAA,EAACtD,IAAA,CAAAQ,OAAG;QAACmD,EAAE,EAAElC,eAAgB;QAAA2B,QAAA,gBACvB,IAAA/C,WAAA,CAAAmD,GAAA,EAACxD,IAAA,CAAAQ,OAAG;UAACmD,EAAE,EAAE5B,uBAAwB;UAAAqB,QAAA,eAC/B,IAAA/C,WAAA,CAAAmD,GAAA,EAACpD,YAAA,CAAAI,OAAW;YACVoD,KAAK,EAAEV,QAAS;YAChB,cAAW;UAAyB,CACrC;QAAC,CACC,CAAC,EACLC,aAAa,iBACZ,IAAA9C,WAAA,CAAAmD,GAAA,EAACxD,IAAA,CAAAQ,OAAG;UAACqD,SAAS,EAAC,MAAM;UAACF,EAAE,EAAEzB,iBAAkB;UAAAkB,QAAA,EACzCD;QAAa,CACX,CACN;MAAA,CACE,CACN,EACAC,QAAQ;IAAA,CACE,CAAC;EAAA,CACd,CAAC;AAEP;AAAC,IAAAU,QAAA,GAAAC,OAAA,CAAAvD,OAAA,GAEcgC,aAAa","ignoreList":[]}
|
|
@@ -11,7 +11,8 @@ import type { SxProps, Theme } from "@mui/material/styles";
|
|
|
11
11
|
* 2 — two equal columns (narrow forms, few fields, wide labels)
|
|
12
12
|
* 1 — single column (textareas, file uploads, notes)
|
|
13
13
|
* "auto" — auto-fill tracks min 220px
|
|
14
|
-
* "none" — no grid wrapper — children manage their own layout
|
|
14
|
+
* "none" — no grid wrapper — children manage their own layout, stacked in
|
|
15
|
+
* a flex column with `gap` (default --s-4).
|
|
15
16
|
* Use for: KVGrid, DataGrid, nested FormGrid.
|
|
16
17
|
*
|
|
17
18
|
* Full-width items within a 3-col section:
|
|
@@ -46,14 +47,18 @@ export interface FormSectionProps {
|
|
|
46
47
|
*/
|
|
47
48
|
cols?: number | "auto" | "none" | undefined;
|
|
48
49
|
/**
|
|
49
|
-
* Gap
|
|
50
|
-
*
|
|
50
|
+
* Gap between the section's children. Forwarded to the inner `FormGrid`
|
|
51
|
+
* when `cols` is a grid preset; applied to the body's own flex column when
|
|
52
|
+
* `cols="none"`. Omit to inherit the charter default (`--s-4`).
|
|
51
53
|
*
|
|
52
54
|
* Added for gap G-13: `FormSection` wrapped its children in a `FormGrid` but
|
|
53
55
|
* exposed no way to set that grid's gap, so a section needing a non-default
|
|
54
56
|
* spacing had to abandon `cols` entirely and nest its own `FormGrid` — or,
|
|
55
57
|
* as every audited module actually did, hand-roll a raw `Box` grid and
|
|
56
58
|
* reimplement the breakpoint ladder.
|
|
59
|
+
*
|
|
60
|
+
* Extended for gap G-47: it used to be IGNORED under `cols="none"`, where
|
|
61
|
+
* the body was a bare padded box. See the body note below.
|
|
57
62
|
*/
|
|
58
63
|
gap?: string | number | undefined;
|
|
59
64
|
children: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormSection.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/FormSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAI3D
|
|
1
|
+
{"version":3,"file":"FormSection.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/FormSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAI3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1C,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAChE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC7C;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C;;;;;;;;;;;;;OAaG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;CACjC;AAaD,iBAAS,WAAW,CAAC,EACnB,MAAM,EACN,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAA0B,EAC1B,YAAgB,EAChB,IAAQ,EACR,GAAG,EACH,QAAQ,EACR,EAAE,GACH,EAAE,gBAAgB,qBAkJlB;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1,30 +1,18 @@
|
|
|
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 _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
|
11
10
|
var _FormGrid = _interopRequireDefault(require("../components/FormGrid"));
|
|
12
11
|
var _Surface = _interopRequireDefault(require("../components/Surface"));
|
|
13
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
-
function _interopRequireDefault(
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
19
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
20
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
21
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
22
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
23
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
24
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
25
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
26
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
27
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } /**
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
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); }
|
|
15
|
+
/**
|
|
28
16
|
* FormSection - Portnet UI v2 (pattern)
|
|
29
17
|
*
|
|
30
18
|
* Charter R-3.1 — groups form fields into named, numbered sections.
|
|
@@ -35,7 +23,8 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
35
23
|
* 2 — two equal columns (narrow forms, few fields, wide labels)
|
|
36
24
|
* 1 — single column (textareas, file uploads, notes)
|
|
37
25
|
* "auto" — auto-fill tracks min 220px
|
|
38
|
-
* "none" — no grid wrapper — children manage their own layout
|
|
26
|
+
* "none" — no grid wrapper — children manage their own layout, stacked in
|
|
27
|
+
* a flex column with `gap` (default --s-4).
|
|
39
28
|
* Use for: KVGrid, DataGrid, nested FormGrid.
|
|
40
29
|
*
|
|
41
30
|
* Full-width items within a 3-col section:
|
|
@@ -54,9 +43,8 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
54
43
|
* <KVGrid minColumnWidth={180}>...</KVGrid>
|
|
55
44
|
* </FormSection>
|
|
56
45
|
*/
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
};
|
|
46
|
+
|
|
47
|
+
const DEFAULT_SR_LABEL = n => `Section ${n} : `;
|
|
60
48
|
function resolveGridProps(cols) {
|
|
61
49
|
if (!cols || cols === "none") return null;
|
|
62
50
|
if (cols === "auto") return {
|
|
@@ -67,22 +55,20 @@ function resolveGridProps(cols) {
|
|
|
67
55
|
};
|
|
68
56
|
return null;
|
|
69
57
|
}
|
|
70
|
-
function FormSection(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
var HeadingTag = "h".concat(headingLevel);
|
|
85
|
-
var gridProps = resolveGridProps(cols);
|
|
58
|
+
function FormSection({
|
|
59
|
+
number,
|
|
60
|
+
title,
|
|
61
|
+
description,
|
|
62
|
+
actions,
|
|
63
|
+
srLabel = DEFAULT_SR_LABEL,
|
|
64
|
+
headingLevel = 2,
|
|
65
|
+
cols = 3,
|
|
66
|
+
gap,
|
|
67
|
+
children,
|
|
68
|
+
sx
|
|
69
|
+
}) {
|
|
70
|
+
const HeadingTag = `h${headingLevel}`;
|
|
71
|
+
const gridProps = resolveGridProps(cols);
|
|
86
72
|
return (
|
|
87
73
|
/*#__PURE__*/
|
|
88
74
|
/*
|
|
@@ -97,7 +83,7 @@ function FormSection(_ref) {
|
|
|
97
83
|
* byte for byte: FormSection pads its header and body separately, and never
|
|
98
84
|
* carried a shadow.
|
|
99
85
|
*/
|
|
100
|
-
(0, _jsxRuntime.jsxs)(_Surface
|
|
86
|
+
(0, _jsxRuntime.jsxs)(_Surface.default, {
|
|
101
87
|
padding: "none",
|
|
102
88
|
elevation: "none",
|
|
103
89
|
radius: "lg"
|
|
@@ -107,8 +93,8 @@ function FormSection(_ref) {
|
|
|
107
93
|
* everything. Surface forwards the array through to its own composition. */,
|
|
108
94
|
sx: [{
|
|
109
95
|
marginBottom: 3
|
|
110
|
-
}
|
|
111
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box
|
|
96
|
+
}, ...(Array.isArray(sx) ? sx : sx ? [sx] : [])],
|
|
97
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
112
98
|
sx: {
|
|
113
99
|
padding: "var(--s-4) var(--s-5)",
|
|
114
100
|
borderBottom: "1px solid var(--border)",
|
|
@@ -117,7 +103,7 @@ function FormSection(_ref) {
|
|
|
117
103
|
justifyContent: "space-between",
|
|
118
104
|
gap: 2
|
|
119
105
|
},
|
|
120
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box
|
|
106
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
121
107
|
sx: {
|
|
122
108
|
display: "flex",
|
|
123
109
|
gap: 2,
|
|
@@ -125,7 +111,7 @@ function FormSection(_ref) {
|
|
|
125
111
|
flex: 1,
|
|
126
112
|
minWidth: 0
|
|
127
113
|
},
|
|
128
|
-
children: [number != null && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box
|
|
114
|
+
children: [number != null && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
129
115
|
"aria-hidden": "true",
|
|
130
116
|
sx: {
|
|
131
117
|
flexShrink: 0,
|
|
@@ -140,11 +126,11 @@ function FormSection(_ref) {
|
|
|
140
126
|
fontWeight: "var(--fw-bold)"
|
|
141
127
|
},
|
|
142
128
|
children: number
|
|
143
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box
|
|
129
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
144
130
|
sx: {
|
|
145
131
|
minWidth: 0
|
|
146
132
|
},
|
|
147
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography
|
|
133
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {
|
|
148
134
|
component: HeadingTag,
|
|
149
135
|
sx: {
|
|
150
136
|
/* R-2.3 / R-AI.1 MUST — was a bare `15`, a magic font-size no
|
|
@@ -164,7 +150,7 @@ function FormSection(_ref) {
|
|
|
164
150
|
className: "pui-sr-only",
|
|
165
151
|
children: srLabel(number)
|
|
166
152
|
}), title]
|
|
167
|
-
}), description && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography
|
|
153
|
+
}), description && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
168
154
|
sx: {
|
|
169
155
|
fontSize: "var(--text-xs)",
|
|
170
156
|
color: "var(--fg-muted)",
|
|
@@ -174,9 +160,14 @@ function FormSection(_ref) {
|
|
|
174
160
|
})]
|
|
175
161
|
})]
|
|
176
162
|
}), actions]
|
|
177
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box
|
|
163
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
178
164
|
sx: {
|
|
179
|
-
padding: "var(--s-5)"
|
|
165
|
+
padding: "var(--s-5)",
|
|
166
|
+
...(gridProps ? null : {
|
|
167
|
+
display: "flex",
|
|
168
|
+
flexDirection: "column",
|
|
169
|
+
gap: gap ?? "var(--s-4)"
|
|
170
|
+
})
|
|
180
171
|
},
|
|
181
172
|
children: gridProps ?
|
|
182
173
|
/*#__PURE__*/
|
|
@@ -184,14 +175,16 @@ function FormSection(_ref) {
|
|
|
184
175
|
* declares it optional, and forwarding an explicit `undefined` is
|
|
185
176
|
* what breaks under exactOptionalPropertyTypes. Omitting the key is
|
|
186
177
|
* what "inherit the charter default" means. */
|
|
187
|
-
(0, _jsxRuntime.jsx)(_FormGrid
|
|
188
|
-
|
|
189
|
-
|
|
178
|
+
(0, _jsxRuntime.jsx)(_FormGrid.default, {
|
|
179
|
+
...gridProps,
|
|
180
|
+
...(gap !== undefined ? {
|
|
181
|
+
gap
|
|
182
|
+
} : {}),
|
|
190
183
|
children: children
|
|
191
|
-
})
|
|
184
|
+
}) : children
|
|
192
185
|
})]
|
|
193
186
|
})
|
|
194
187
|
);
|
|
195
188
|
}
|
|
196
|
-
var _default = exports
|
|
189
|
+
var _default = exports.default = FormSection;
|
|
197
190
|
//# sourceMappingURL=FormSection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormSection.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_Typography","_FormGrid","_Surface","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","iter","iterator","isArray","len","arr2","DEFAULT_SR_LABEL","concat","resolveGridProps","cols","minColumnWidth","columns","FormSection","_ref","number","title","description","actions","_ref$srLabel","srLabel","_ref$headingLevel","headingLevel","_ref$cols","gap","children","sx","HeadingTag","gridProps","jsxs","padding","elevation","radius","marginBottom","borderBottom","display","alignItems","justifyContent","flex","minWidth","jsx","flexShrink","width","height","borderRadius","background","color","placeItems","fontSize","fontWeight","component","lineHeight","margin","className","marginTop","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormSection.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Typography from \"@mui/material/Typography\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport FormGrid from \"../components/FormGrid\";\r\nimport Surface from \"../components/Surface\";\r\n\r\n/**\r\n * FormSection - Portnet UI v2 (pattern)\r\n *\r\n * Charter R-3.1 — groups form fields into named, numbered sections.\r\n * Charter R-3.2 — 3-column grid is the standard for form sections.\r\n *\r\n * cols (default 3):\r\n * 3 — three equal columns (DEFAULT — standard form layout)\r\n * 2 — two equal columns (narrow forms, few fields, wide labels)\r\n * 1 — single column (textareas, file uploads, notes)\r\n * \"auto\" — auto-fill tracks min 220px\r\n * \"none\" — no grid wrapper — children manage their own layout.\r\n * Use for: KVGrid, DataGrid, nested FormGrid.\r\n *\r\n * Full-width items within a 3-col section:\r\n * <FormGrid.Full><FormikTextarea name=\"obs\" /></FormGrid.Full>\r\n *\r\n * Usage:\r\n * // Standard form section — 3 cols (no need to specify)\r\n * <FormSection number={1} title=\"Identification\">\r\n * <FormikInput name=\"nom\" label=\"Nom\" />\r\n * <FormikInput name=\"prenom\" label=\"Prénom\" />\r\n * <FormikInput name=\"code\" label=\"Code\" />\r\n * </FormSection>\r\n *\r\n * // Read-only section — self-managed layout\r\n * <FormSection title=\"Importateur\" cols=\"none\">\r\n * <KVGrid minColumnWidth={180}>...</KVGrid>\r\n * </FormSection>\r\n */\r\n\r\nexport interface FormSectionProps {\r\n number?: number | string | undefined;\r\n title: React.ReactNode;\r\n description?: React.ReactNode | undefined;\r\n actions?: React.ReactNode | undefined;\r\n srLabel?: ((n: number | string) => React.ReactNode) | undefined;\r\n headingLevel?: 2 | 3 | 4 | 5 | 6 | undefined;\r\n /**\r\n * cols — Charter R-3.2 field layout.\r\n * 3 (DEFAULT) : 3 equal columns — standard form layout.\r\n * 2 | 1 : fewer columns for narrow/simple forms.\r\n * \"auto\" : auto-fill tracks min 220px.\r\n * \"none\" : no grid wrapper — children manage own layout.\r\n */\r\n cols?: number | \"auto\" | \"none\" | undefined;\r\n /**\r\n * Gap forwarded to the inner `FormGrid`. Omit to inherit the charter default\r\n * (`--s-4`). Ignored when `cols=\"none\"`, where the child owns its layout.\r\n *\r\n * Added for gap G-13: `FormSection` wrapped its children in a `FormGrid` but\r\n * exposed no way to set that grid's gap, so a section needing a non-default\r\n * spacing had to abandon `cols` entirely and nest its own `FormGrid` — or,\r\n * as every audited module actually did, hand-roll a raw `Box` grid and\r\n * reimplement the breakpoint ladder.\r\n */\r\n gap?: string | number | undefined;\r\n children: React.ReactNode;\r\n sx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nconst DEFAULT_SR_LABEL = (n: number | string): string => `Section ${n} : `;\r\n\r\nfunction resolveGridProps(\r\n cols: number | \"auto\" | \"none\" | undefined\r\n): { minColumnWidth: number } | { columns: number } | null {\r\n if (!cols || cols === \"none\") return null;\r\n if (cols === \"auto\") return { minColumnWidth: 220 };\r\n if (typeof cols === \"number\") return { columns: cols };\r\n return null;\r\n}\r\n\r\nfunction FormSection({\r\n number,\r\n title,\r\n description,\r\n actions,\r\n srLabel = DEFAULT_SR_LABEL,\r\n headingLevel = 2,\r\n cols = 3,\r\n gap,\r\n children,\r\n sx,\r\n}: FormSectionProps) {\r\n const HeadingTag = `h${headingLevel}` as const;\r\n const gridProps = resolveGridProps(cols);\r\n\r\n return (\r\n /*\r\n * The card container is the shared `Surface` primitive (gap G-10), not an\r\n * inline recipe. This component USED to hold the only copy of\r\n * --surface + --border + -r-lg in the library, which is precisely why every\r\n * consuming module rewrote it: the recipe was reachable only by also taking\r\n * a numbered heading and an inner FormGrid. Dogfooding it here means a\r\n * charter change to the card radius or elevation lands in ONE file.\r\n *\r\n * `padding=\"none\"` / `elevation=\"none\"` reproduce the previous rendering\r\n * byte for byte: FormSection pads its header and body separately, and never\r\n * carried a shadow.\r\n */\r\n <Surface\r\n padding=\"none\"\r\n elevation=\"none\"\r\n radius=\"lg\"\r\n /* ARRAY form (gap G-23). This line previously spread `sx` into an object,\r\n * which silently destroys the array and function shapes `SxProps<Theme>`\r\n * allows — so a host writing MUI's own `sx={[base, cond && override]}` lost\r\n * everything. Surface forwards the array through to its own composition. */\r\n sx={[{ marginBottom: 3 }, ...(Array.isArray(sx) ? sx : sx ? [sx] : [])]}\r\n >\r\n {/* Section header */}\r\n <Box\r\n sx={{\r\n padding: \"var(--s-4) var(--s-5)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n justifyContent: \"space-between\",\r\n gap: 2,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n gap: 2,\r\n alignItems: \"flex-start\",\r\n flex: 1,\r\n minWidth: 0,\r\n }}\r\n >\r\n {number != null && (\r\n <Box\r\n aria-hidden=\"true\"\r\n sx={{\r\n flexShrink: 0,\r\n width: 28,\r\n height: 28,\r\n borderRadius: \"var(--r-full)\",\r\n background: \"var(--accent-soft)\",\r\n color: \"var(--accent)\",\r\n display: \"grid\",\r\n placeItems: \"center\",\r\n fontSize: \"var(--text-sm)\",\r\n fontWeight: \"var(--fw-bold)\",\r\n }}\r\n >\r\n {number}\r\n </Box>\r\n )}\r\n <Box sx={{ minWidth: 0 }}>\r\n <Typography\r\n component={HeadingTag}\r\n sx={{\r\n /* R-2.3 / R-AI.1 MUST — was a bare `15`, a magic font-size no\r\n * token can express (the type scale is 12/13/14/16/20/26).\r\n * The Charter's own typography table assigns --text-h3 (16px)\r\n * to \"Card / form group\" titles, which is exactly what a\r\n * FormSection header is. Fleet-wide 15→16px on section\r\n * headers — needs visual confirmation, but 15 could not\r\n * remain: it is unrepresentable in the token system. */\r\n fontSize: \"var(--text-h3)\",\r\n fontWeight: \"var(--fw-bold)\",\r\n color: \"var(--fg)\",\r\n lineHeight: \"var(--lh-snug)\",\r\n margin: 0,\r\n }}\r\n >\r\n {number != null && (\r\n <span className=\"pui-sr-only\">{srLabel(number)}</span>\r\n )}\r\n {title}\r\n </Typography>\r\n {description && (\r\n <Typography\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-muted)\",\r\n marginTop: 0.25,\r\n }}\r\n >\r\n {description}\r\n </Typography>\r\n )}\r\n </Box>\r\n </Box>\r\n {actions}\r\n </Box>\r\n\r\n {/* Section body */}\r\n <Box sx={{ padding: \"var(--s-5)\" }}>\r\n {gridProps ? (\r\n /* `gap` applied by CONDITIONAL SPREAD, not `gap={gap}`: FormGridProps\r\n * declares it optional, and forwarding an explicit `undefined` is\r\n * what breaks under exactOptionalPropertyTypes. Omitting the key is\r\n * what \"inherit the charter default\" means. */\r\n <FormGrid {...gridProps} {...(gap !== undefined ? { gap } : {})}>\r\n {children}\r\n </FormGrid>\r\n ) : (\r\n children\r\n )}\r\n </Box>\r\n </Surface>\r\n );\r\n}\r\n\r\nexport default FormSection;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FormSection.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_Typography","_FormGrid","_Surface","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_SR_LABEL","resolveGridProps","cols","minColumnWidth","columns","FormSection","number","title","description","actions","srLabel","headingLevel","gap","children","sx","HeadingTag","gridProps","jsxs","padding","elevation","radius","marginBottom","Array","isArray","borderBottom","display","alignItems","justifyContent","flex","minWidth","jsx","flexShrink","width","height","borderRadius","background","color","placeItems","fontSize","fontWeight","component","lineHeight","margin","className","marginTop","flexDirection","undefined","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormSection.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Typography from \"@mui/material/Typography\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport FormGrid from \"../components/FormGrid\";\r\nimport Surface from \"../components/Surface\";\r\n\r\n/**\r\n * FormSection - Portnet UI v2 (pattern)\r\n *\r\n * Charter R-3.1 — groups form fields into named, numbered sections.\r\n * Charter R-3.2 — 3-column grid is the standard for form sections.\r\n *\r\n * cols (default 3):\r\n * 3 — three equal columns (DEFAULT — standard form layout)\r\n * 2 — two equal columns (narrow forms, few fields, wide labels)\r\n * 1 — single column (textareas, file uploads, notes)\r\n * \"auto\" — auto-fill tracks min 220px\r\n * \"none\" — no grid wrapper — children manage their own layout, stacked in\r\n * a flex column with `gap` (default --s-4).\r\n * Use for: KVGrid, DataGrid, nested FormGrid.\r\n *\r\n * Full-width items within a 3-col section:\r\n * <FormGrid.Full><FormikTextarea name=\"obs\" /></FormGrid.Full>\r\n *\r\n * Usage:\r\n * // Standard form section — 3 cols (no need to specify)\r\n * <FormSection number={1} title=\"Identification\">\r\n * <FormikInput name=\"nom\" label=\"Nom\" />\r\n * <FormikInput name=\"prenom\" label=\"Prénom\" />\r\n * <FormikInput name=\"code\" label=\"Code\" />\r\n * </FormSection>\r\n *\r\n * // Read-only section — self-managed layout\r\n * <FormSection title=\"Importateur\" cols=\"none\">\r\n * <KVGrid minColumnWidth={180}>...</KVGrid>\r\n * </FormSection>\r\n */\r\n\r\nexport interface FormSectionProps {\r\n number?: number | string | undefined;\r\n title: React.ReactNode;\r\n description?: React.ReactNode | undefined;\r\n actions?: React.ReactNode | undefined;\r\n srLabel?: ((n: number | string) => React.ReactNode) | undefined;\r\n headingLevel?: 2 | 3 | 4 | 5 | 6 | undefined;\r\n /**\r\n * cols — Charter R-3.2 field layout.\r\n * 3 (DEFAULT) : 3 equal columns — standard form layout.\r\n * 2 | 1 : fewer columns for narrow/simple forms.\r\n * \"auto\" : auto-fill tracks min 220px.\r\n * \"none\" : no grid wrapper — children manage own layout.\r\n */\r\n cols?: number | \"auto\" | \"none\" | undefined;\r\n /**\r\n * Gap between the section's children. Forwarded to the inner `FormGrid`\r\n * when `cols` is a grid preset; applied to the body's own flex column when\r\n * `cols=\"none\"`. Omit to inherit the charter default (`--s-4`).\r\n *\r\n * Added for gap G-13: `FormSection` wrapped its children in a `FormGrid` but\r\n * exposed no way to set that grid's gap, so a section needing a non-default\r\n * spacing had to abandon `cols` entirely and nest its own `FormGrid` — or,\r\n * as every audited module actually did, hand-roll a raw `Box` grid and\r\n * reimplement the breakpoint ladder.\r\n *\r\n * Extended for gap G-47: it used to be IGNORED under `cols=\"none\"`, where\r\n * the body was a bare padded box. See the body note below.\r\n */\r\n gap?: string | number | undefined;\r\n children: React.ReactNode;\r\n sx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nconst DEFAULT_SR_LABEL = (n: number | string): string => `Section ${n} : `;\r\n\r\nfunction resolveGridProps(\r\n cols: number | \"auto\" | \"none\" | undefined\r\n): { minColumnWidth: number } | { columns: number } | null {\r\n if (!cols || cols === \"none\") return null;\r\n if (cols === \"auto\") return { minColumnWidth: 220 };\r\n if (typeof cols === \"number\") return { columns: cols };\r\n return null;\r\n}\r\n\r\nfunction FormSection({\r\n number,\r\n title,\r\n description,\r\n actions,\r\n srLabel = DEFAULT_SR_LABEL,\r\n headingLevel = 2,\r\n cols = 3,\r\n gap,\r\n children,\r\n sx,\r\n}: FormSectionProps) {\r\n const HeadingTag = `h${headingLevel}` as const;\r\n const gridProps = resolveGridProps(cols);\r\n\r\n return (\r\n /*\r\n * The card container is the shared `Surface` primitive (gap G-10), not an\r\n * inline recipe. This component USED to hold the only copy of\r\n * --surface + --border + -r-lg in the library, which is precisely why every\r\n * consuming module rewrote it: the recipe was reachable only by also taking\r\n * a numbered heading and an inner FormGrid. Dogfooding it here means a\r\n * charter change to the card radius or elevation lands in ONE file.\r\n *\r\n * `padding=\"none\"` / `elevation=\"none\"` reproduce the previous rendering\r\n * byte for byte: FormSection pads its header and body separately, and never\r\n * carried a shadow.\r\n */\r\n <Surface\r\n padding=\"none\"\r\n elevation=\"none\"\r\n radius=\"lg\"\r\n /* ARRAY form (gap G-23). This line previously spread `sx` into an object,\r\n * which silently destroys the array and function shapes `SxProps<Theme>`\r\n * allows — so a host writing MUI's own `sx={[base, cond && override]}` lost\r\n * everything. Surface forwards the array through to its own composition. */\r\n sx={[{ marginBottom: 3 }, ...(Array.isArray(sx) ? sx : sx ? [sx] : [])]}\r\n >\r\n {/* Section header */}\r\n <Box\r\n sx={{\r\n padding: \"var(--s-4) var(--s-5)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n justifyContent: \"space-between\",\r\n gap: 2,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n gap: 2,\r\n alignItems: \"flex-start\",\r\n flex: 1,\r\n minWidth: 0,\r\n }}\r\n >\r\n {number != null && (\r\n <Box\r\n aria-hidden=\"true\"\r\n sx={{\r\n flexShrink: 0,\r\n width: 28,\r\n height: 28,\r\n borderRadius: \"var(--r-full)\",\r\n background: \"var(--accent-soft)\",\r\n color: \"var(--accent)\",\r\n display: \"grid\",\r\n placeItems: \"center\",\r\n fontSize: \"var(--text-sm)\",\r\n fontWeight: \"var(--fw-bold)\",\r\n }}\r\n >\r\n {number}\r\n </Box>\r\n )}\r\n <Box sx={{ minWidth: 0 }}>\r\n <Typography\r\n component={HeadingTag}\r\n sx={{\r\n /* R-2.3 / R-AI.1 MUST — was a bare `15`, a magic font-size no\r\n * token can express (the type scale is 12/13/14/16/20/26).\r\n * The Charter's own typography table assigns --text-h3 (16px)\r\n * to \"Card / form group\" titles, which is exactly what a\r\n * FormSection header is. Fleet-wide 15→16px on section\r\n * headers — needs visual confirmation, but 15 could not\r\n * remain: it is unrepresentable in the token system. */\r\n fontSize: \"var(--text-h3)\",\r\n fontWeight: \"var(--fw-bold)\",\r\n color: \"var(--fg)\",\r\n lineHeight: \"var(--lh-snug)\",\r\n margin: 0,\r\n }}\r\n >\r\n {number != null && (\r\n <span className=\"pui-sr-only\">{srLabel(number)}</span>\r\n )}\r\n {title}\r\n </Typography>\r\n {description && (\r\n <Typography\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-muted)\",\r\n marginTop: 0.25,\r\n }}\r\n >\r\n {description}\r\n </Typography>\r\n )}\r\n </Box>\r\n </Box>\r\n {actions}\r\n </Box>\r\n\r\n {/* Section body\r\n *\r\n * GAP UNDER `cols=\"none\"` (gap G-47). This was a bare padded box, so a\r\n * section whose children manage their own layout had NO spacing between\r\n * them — and the only tool left to the host was a margin on the second\r\n * child, which R-S.2 (MUST) forbids: \"Utiliser flex/grid + gap ; jamais\r\n * d'espacement par margin sur sibling adjacent\". The library was\r\n * therefore forcing every read-only or mixed section in the fleet into a\r\n * charter violation; `refonte-frontend`'s Area 7 audit counted 3 uses of\r\n * `gap` against ~30 sibling margins, most of them here.\r\n *\r\n * A flex column is a no-op for the single-child case (one KVGrid, one\r\n * DataGrid — the majority), and supplies the missing rhythm as soon as\r\n * there are two. `gap` is now honoured here too, which is what its own\r\n * doc above promised and did not deliver. */}\r\n <Box\r\n sx={{\r\n padding: \"var(--s-5)\",\r\n ...(gridProps\r\n ? null\r\n : {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: gap ?? \"var(--s-4)\",\r\n }),\r\n }}\r\n >\r\n {gridProps ? (\r\n /* `gap` applied by CONDITIONAL SPREAD, not `gap={gap}`: FormGridProps\r\n * declares it optional, and forwarding an explicit `undefined` is\r\n * what breaks under exactOptionalPropertyTypes. Omitting the key is\r\n * what \"inherit the charter default\" means. */\r\n <FormGrid {...gridProps} {...(gap !== undefined ? { gap } : {})}>\r\n {children}\r\n </FormGrid>\r\n ) : (\r\n children\r\n )}\r\n </Box>\r\n </Surface>\r\n );\r\n}\r\n\r\nexport default FormSection;\r\n"],"mappings":"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","ignoreList":[]}
|