@portnet/ui 6.0.1 → 6.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +737 -0
- package/dist/esm/index.js +90 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/v2/__tests__/AppMain.test.js +130 -0
- package/dist/esm/v2/__tests__/AppMain.test.js.map +1 -0
- package/dist/esm/v2/__tests__/ChartFigure.test.js +180 -0
- package/dist/esm/v2/__tests__/ChartFigure.test.js.map +1 -0
- package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js +150 -0
- package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
- package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js +93 -0
- package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldError.test.js +71 -39
- package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FieldNaming.test.js +160 -0
- package/dist/esm/v2/__tests__/FieldNaming.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldWidth.test.js +146 -0
- package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FileCard.test.js +18 -18
- package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js +173 -0
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +236 -0
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js +101 -0
- package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +299 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
- package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -43
- package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/PreviewDrawer.test.js +165 -0
- package/dist/esm/v2/__tests__/PreviewDrawer.test.js.map +1 -0
- package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js +156 -0
- package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +37 -52
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/esm/v2/__tests__/apiError.test.js +50 -69
- package/dist/esm/v2/__tests__/apiError.test.js.map +1 -1
- package/dist/esm/v2/__tests__/banned-patterns.test.js +41 -122
- package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -1
- package/dist/esm/v2/__tests__/chart-palette.test.js +204 -0
- package/dist/esm/v2/__tests__/chart-palette.test.js.map +1 -0
- package/dist/esm/v2/__tests__/contrast-palette.test.js +42 -74
- package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -1
- package/dist/esm/v2/__tests__/cssVariables.test.js +44 -51
- package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -1
- package/dist/esm/v2/__tests__/fileValidation.test.js +134 -0
- package/dist/esm/v2/__tests__/fileValidation.test.js.map +1 -0
- package/dist/esm/v2/__tests__/filterCriteria.test.js +321 -0
- package/dist/esm/v2/__tests__/filterCriteria.test.js.map +1 -0
- package/dist/esm/v2/__tests__/fmtDate.test.js +68 -0
- package/dist/esm/v2/__tests__/fmtDate.test.js.map +1 -0
- package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js +218 -0
- package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
- package/dist/esm/v2/__tests__/labels-merge.test.js +17 -22
- package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/esm/v2/__tests__/locale-fallback.test.js +35 -40
- package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -1
- package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js +143 -0
- package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
- package/dist/esm/v2/__tests__/rowActions.test.js +182 -0
- package/dist/esm/v2/__tests__/rowActions.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js +155 -0
- package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusTrap.test.js +266 -402
- package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -1
- package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js +120 -0
- package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
- package/dist/esm/v2/components/Accordion.js +48 -70
- package/dist/esm/v2/components/Accordion.js.map +1 -1
- package/dist/esm/v2/components/ActionStrip.js +31 -43
- package/dist/esm/v2/components/ActionStrip.js.map +1 -1
- package/dist/esm/v2/components/Banner.js +25 -22
- package/dist/esm/v2/components/Banner.js.map +1 -1
- package/dist/esm/v2/components/Busy.js +14 -19
- package/dist/esm/v2/components/Busy.js.map +1 -1
- package/dist/esm/v2/components/Button.js +34 -45
- package/dist/esm/v2/components/Button.js.map +1 -1
- package/dist/esm/v2/components/CategoryTag.js +44 -27
- package/dist/esm/v2/components/CategoryTag.js.map +1 -1
- package/dist/esm/v2/components/Checkbox.js +32 -38
- package/dist/esm/v2/components/Checkbox.js.map +1 -1
- package/dist/esm/v2/components/Chip.js +23 -36
- package/dist/esm/v2/components/Chip.js.map +1 -1
- package/dist/esm/v2/components/Combobox.js +112 -136
- package/dist/esm/v2/components/Combobox.js.map +1 -1
- package/dist/esm/v2/components/CommandPalette.js +113 -198
- package/dist/esm/v2/components/CommandPalette.js.map +1 -1
- package/dist/esm/v2/components/ConfirmDialog.js +36 -45
- package/dist/esm/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/esm/v2/components/DatePicker.js +78 -81
- package/dist/esm/v2/components/DatePicker.js.map +1 -1
- package/dist/esm/v2/components/DateRangePicker.js +63 -74
- package/dist/esm/v2/components/DateRangePicker.js.map +1 -1
- package/dist/esm/v2/components/DateTimePicker.js +118 -90
- package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
- package/dist/esm/v2/components/Drawer.js +71 -65
- package/dist/esm/v2/components/Drawer.js.map +1 -1
- package/dist/esm/v2/components/Dropzone.js +130 -177
- package/dist/esm/v2/components/Dropzone.js.map +1 -1
- package/dist/esm/v2/components/EmptyState.js +9 -9
- package/dist/esm/v2/components/EmptyState.js.map +1 -1
- package/dist/esm/v2/components/FavoriteToggle.js +24 -33
- package/dist/esm/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/esm/v2/components/Field.js +210 -52
- package/dist/esm/v2/components/Field.js.map +1 -1
- package/dist/esm/v2/components/FieldError.js +9 -13
- package/dist/esm/v2/components/FieldError.js.map +1 -1
- package/dist/esm/v2/components/FieldHelp.js +28 -49
- package/dist/esm/v2/components/FieldHelp.js.map +1 -1
- package/dist/esm/v2/components/FileCard.js +14 -19
- package/dist/esm/v2/components/FileCard.js.map +1 -1
- package/dist/esm/v2/components/FilterTab.js +22 -31
- package/dist/esm/v2/components/FilterTab.js.map +1 -1
- package/dist/esm/v2/components/ForbiddenPage.js +28 -8
- package/dist/esm/v2/components/ForbiddenPage.js.map +1 -1
- package/dist/esm/v2/components/FormGrid.js +48 -54
- package/dist/esm/v2/components/FormGrid.js.map +1 -1
- package/dist/esm/v2/components/FormikDisplay.js +98 -24
- package/dist/esm/v2/components/FormikDisplay.js.map +1 -1
- package/dist/esm/v2/components/Input.js +75 -34
- package/dist/esm/v2/components/Input.js.map +1 -1
- package/dist/esm/v2/components/KPICard.js +42 -51
- package/dist/esm/v2/components/KPICard.js.map +1 -1
- package/dist/esm/v2/components/KPIStrip.js +9 -15
- package/dist/esm/v2/components/KPIStrip.js.map +1 -1
- package/dist/esm/v2/components/KV.js +16 -23
- package/dist/esm/v2/components/KV.js.map +1 -1
- package/dist/esm/v2/components/KVGrid.js +15 -23
- package/dist/esm/v2/components/KVGrid.js.map +1 -1
- package/dist/esm/v2/components/Layout.js +81 -117
- package/dist/esm/v2/components/Layout.js.map +1 -1
- package/dist/esm/v2/components/MobileRowCard.js +64 -75
- package/dist/esm/v2/components/MobileRowCard.js.map +1 -1
- package/dist/esm/v2/components/Modal.js +44 -53
- package/dist/esm/v2/components/Modal.js.map +1 -1
- package/dist/esm/v2/components/NetworkErrorPage.js +28 -11
- package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/esm/v2/components/NotFoundPage.js +28 -9
- package/dist/esm/v2/components/NotFoundPage.js.map +1 -1
- package/dist/esm/v2/components/NumberInput.js +77 -107
- package/dist/esm/v2/components/NumberInput.js.map +1 -1
- package/dist/esm/v2/components/OverflowMenu.js +24 -42
- package/dist/esm/v2/components/OverflowMenu.js.map +1 -1
- package/dist/esm/v2/components/PdfViewer.js +24 -33
- package/dist/esm/v2/components/PdfViewer.js.map +1 -1
- package/dist/esm/v2/components/ProgressBar.js +28 -36
- package/dist/esm/v2/components/ProgressBar.js.map +1 -1
- package/dist/esm/v2/components/Radio.js +49 -57
- package/dist/esm/v2/components/Radio.js.map +1 -1
- package/dist/esm/v2/components/SectionErrorBoundary.js +84 -130
- package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -1
- package/dist/esm/v2/components/SectionHeader.js +24 -31
- package/dist/esm/v2/components/SectionHeader.js.map +1 -1
- package/dist/esm/v2/components/Segmented.js +59 -84
- package/dist/esm/v2/components/Segmented.js.map +1 -1
- package/dist/esm/v2/components/Select.js +100 -138
- package/dist/esm/v2/components/Select.js.map +1 -1
- package/dist/esm/v2/components/ServerErrorPage.js +27 -10
- package/dist/esm/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/esm/v2/components/Skeleton.js +81 -96
- package/dist/esm/v2/components/Skeleton.js.map +1 -1
- package/dist/esm/v2/components/SkipLink.js +6 -7
- package/dist/esm/v2/components/SkipLink.js.map +1 -1
- package/dist/esm/v2/components/Spinner.js +13 -22
- package/dist/esm/v2/components/Spinner.js.map +1 -1
- package/dist/esm/v2/components/Status.js +14 -25
- package/dist/esm/v2/components/Status.js.map +1 -1
- package/dist/esm/v2/components/Stepper.js +68 -71
- package/dist/esm/v2/components/Stepper.js.map +1 -1
- package/dist/esm/v2/components/Surface.js +25 -44
- package/dist/esm/v2/components/Surface.js.map +1 -1
- package/dist/esm/v2/components/Switch.js +21 -29
- package/dist/esm/v2/components/Switch.js.map +1 -1
- package/dist/esm/v2/components/TabPanel.js +84 -0
- package/dist/esm/v2/components/TabPanel.js.map +1 -0
- package/dist/esm/v2/components/Tabs.js +43 -19
- package/dist/esm/v2/components/Tabs.js.map +1 -1
- package/dist/esm/v2/components/TelInput.js +75 -108
- package/dist/esm/v2/components/TelInput.js.map +1 -1
- package/dist/esm/v2/components/Textarea.js +21 -30
- package/dist/esm/v2/components/Textarea.js.map +1 -1
- package/dist/esm/v2/components/TimePicker.js +59 -69
- package/dist/esm/v2/components/TimePicker.js.map +1 -1
- package/dist/esm/v2/components/Toast.js +109 -163
- package/dist/esm/v2/components/Toast.js.map +1 -1
- package/dist/esm/v2/components/Tooltip.js +18 -31
- package/dist/esm/v2/components/Tooltip.js.map +1 -1
- package/dist/esm/v2/components/_ErrorPageBody.js +6 -5
- package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -1
- package/dist/esm/v2/components/_pickerShared.js +2 -2
- package/dist/esm/v2/components/_pickerShared.js.map +1 -1
- package/dist/esm/v2/components/index.js +64 -0
- package/dist/esm/v2/components/index.js.map +1 -1
- package/dist/esm/v2/hooks/index.js +62 -0
- package/dist/esm/v2/hooks/index.js.map +1 -1
- package/dist/esm/v2/hooks/useAppliedFilters.js +112 -0
- package/dist/esm/v2/hooks/useAppliedFilters.js.map +1 -0
- package/dist/esm/v2/hooks/useDebouncedCallback.js +82 -0
- package/dist/esm/v2/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/esm/v2/hooks/useDelayedFlag.js +5 -19
- package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -1
- package/dist/esm/v2/hooks/useDensity.js +13 -17
- package/dist/esm/v2/hooks/useDensity.js.map +1 -1
- package/dist/esm/v2/hooks/useFocusFirstError.js +25 -33
- package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -1
- package/dist/esm/v2/hooks/useFocusOnRouteChange.js +81 -0
- package/dist/esm/v2/hooks/useFocusOnRouteChange.js.map +1 -0
- package/dist/esm/v2/hooks/useFocusTrap.js +19 -23
- package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -1
- package/dist/esm/v2/hooks/useFormAutoSave.js +38 -53
- package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -1
- package/dist/esm/v2/hooks/useFormCompletionProgress.js +32 -51
- package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -1
- package/dist/esm/v2/hooks/useKeyboardShortcuts.js +125 -0
- package/dist/esm/v2/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/esm/v2/hooks/usePrefersReducedMotion.js +99 -0
- package/dist/esm/v2/hooks/usePrefersReducedMotion.js.map +1 -0
- package/dist/esm/v2/hooks/useResolvedDensity.js +2 -10
- package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -1
- package/dist/esm/v2/hooks/useSortedRows.js +3 -5
- package/dist/esm/v2/hooks/useSortedRows.js.map +1 -1
- package/dist/esm/v2/hooks/useTabLoading.js +6 -21
- package/dist/esm/v2/hooks/useTabLoading.js.map +1 -1
- package/dist/esm/v2/index.js +14 -4
- package/dist/esm/v2/index.js.map +1 -1
- package/dist/esm/v2/modalContext.js +2 -2
- package/dist/esm/v2/modalContext.js.map +1 -1
- package/dist/esm/v2/models/favorite.js.map +1 -1
- package/dist/esm/v2/models/personalization.js.map +1 -1
- package/dist/esm/v2/models/referentiel.js.map +1 -1
- package/dist/esm/v2/models/savedFilter.js.map +1 -1
- package/dist/esm/v2/patterns/ActionBar.js +115 -159
- package/dist/esm/v2/patterns/ActionBar.js.map +1 -1
- package/dist/esm/v2/patterns/AppMain.js +108 -0
- package/dist/esm/v2/patterns/AppMain.js.map +1 -0
- package/dist/esm/v2/patterns/BulkActionBar.js +31 -34
- package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/esm/v2/patterns/ChartFigure.js +151 -0
- package/dist/esm/v2/patterns/ChartFigure.js.map +1 -0
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js +111 -152
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/esm/v2/patterns/ColumnsToggle.js +43 -77
- package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/esm/v2/patterns/DataGrid.js +221 -255
- package/dist/esm/v2/patterns/DataGrid.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js +76 -94
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridToolbar.js +85 -89
- package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridVirtualized.js +141 -182
- package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +26 -30
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/esm/v2/patterns/DetailSplit.js +108 -0
- package/dist/esm/v2/patterns/DetailSplit.js.map +1 -0
- package/dist/esm/v2/patterns/FavoriteColumn.js +26 -75
- package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/esm/v2/patterns/FavoritesFilter.js +30 -39
- package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/esm/v2/patterns/FilterTabBar.js +112 -0
- package/dist/esm/v2/patterns/FilterTabBar.js.map +1 -0
- package/dist/esm/v2/patterns/FormErrorSummary.js +12 -13
- package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/esm/v2/patterns/FormPageShell.js +43 -41
- package/dist/esm/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/esm/v2/patterns/FormSection.js +30 -38
- package/dist/esm/v2/patterns/FormSection.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCheckbox.js +130 -0
- package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js +56 -60
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCombobox.js +51 -66
- package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDatePicker.js +51 -99
- package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDateTimePicker.js +136 -0
- package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
- package/dist/esm/v2/patterns/FormikErrorFocus.js +22 -23
- package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/esm/v2/patterns/FormikErrorSummary.js +89 -0
- package/dist/esm/v2/patterns/FormikErrorSummary.js.map +1 -0
- package/dist/esm/v2/patterns/FormikFile.js +94 -78
- package/dist/esm/v2/patterns/FormikFile.js.map +1 -1
- package/dist/esm/v2/patterns/FormikInput.js +40 -50
- package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
- package/dist/esm/v2/patterns/FormikRadioGroup.js +129 -0
- package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
- package/dist/esm/v2/patterns/FormikReferentielField.js +49 -59
- package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/esm/v2/patterns/FormikSelect.js +64 -84
- package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/esm/v2/patterns/FormikTextarea.js +30 -43
- package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +64 -65
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/esm/v2/patterns/NetworkErrorBanner.js +6 -7
- package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/esm/v2/patterns/PageContent.js +10 -14
- package/dist/esm/v2/patterns/PageContent.js.map +1 -1
- package/dist/esm/v2/patterns/PreviewDrawer.js +153 -0
- package/dist/esm/v2/patterns/PreviewDrawer.js.map +1 -0
- package/dist/esm/v2/patterns/ReferentielField.js +327 -312
- package/dist/esm/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/esm/v2/patterns/RowFavoriteToggle.js +127 -0
- package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
- package/dist/esm/v2/patterns/SaveFilterDialog.js +38 -66
- package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/esm/v2/patterns/SavedFiltersMenu.js +62 -81
- package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/esm/v2/patterns/SkeletonPageShell.js +106 -129
- package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/esm/v2/patterns/SortableHeader.js +22 -45
- package/dist/esm/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/esm/v2/patterns/Tour.js +94 -120
- package/dist/esm/v2/patterns/Tour.js.map +1 -1
- package/dist/esm/v2/patterns/_dataGridShared.js +107 -128
- package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/esm/v2/patterns/_pickerSerialisation.js +72 -0
- package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
- package/dist/esm/v2/patterns/_sort.js +17 -33
- package/dist/esm/v2/patterns/_sort.js.map +1 -1
- package/dist/esm/v2/patterns/_useColumnReorder.js +122 -160
- package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/esm/v2/patterns/_useColumnResize.js +78 -96
- package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/esm/v2/patterns/filterCriteria.js +102 -0
- package/dist/esm/v2/patterns/filterCriteria.js.map +1 -0
- package/dist/esm/v2/patterns/index.js +235 -0
- package/dist/esm/v2/patterns/index.js.map +1 -1
- package/dist/esm/v2/patterns/rowActions.js +223 -0
- package/dist/esm/v2/patterns/rowActions.js.map +1 -0
- package/dist/esm/v2/personalization/PersonalizationProvider.js +50 -47
- package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/_storageKey.js +5 -5
- package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +22 -23
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +13 -13
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/favorites.js +36 -60
- package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/favoritesView.js +22 -34
- package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js +203 -0
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/index.js +5 -0
- package/dist/esm/v2/personalization/capabilities/index.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
- package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
- package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
- package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/esm/v2/personalization/index.js +35 -0
- package/dist/esm/v2/personalization/index.js.map +1 -1
- package/dist/esm/v2/personalization/personalizationContext.js +9 -9
- package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
- package/dist/esm/v2/personalization/schema.js +8 -9
- package/dist/esm/v2/personalization/schema.js.map +1 -1
- package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
- package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/esm/v2/referentiel/types.js +2 -0
- package/dist/esm/v2/referentiel/types.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
- package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
- package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
- package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
- package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/esm/v2/theme/_brand.js +8 -24
- package/dist/esm/v2/theme/_brand.js.map +1 -1
- package/dist/esm/v2/theme/_brandSecondary.js +8 -24
- package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
- package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
- package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/esm/v2/theme/cssVariables.js +62 -69
- package/dist/esm/v2/theme/cssVariables.js.map +1 -1
- package/dist/esm/v2/theme/index.js +5 -5
- package/dist/esm/v2/theme/index.js.map +1 -1
- package/dist/esm/v2/tokens/breakpoints.js +14 -14
- package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
- package/dist/esm/v2/tokens/chart.js +261 -0
- package/dist/esm/v2/tokens/chart.js.map +1 -0
- package/dist/esm/v2/tokens/colors.js +22 -22
- package/dist/esm/v2/tokens/colors.js.map +1 -1
- package/dist/esm/v2/tokens/density.js +62 -7
- package/dist/esm/v2/tokens/density.js.map +1 -1
- package/dist/esm/v2/tokens/index.js +49 -34
- package/dist/esm/v2/tokens/index.js.map +1 -1
- package/dist/esm/v2/tokens/motion.js +12 -20
- package/dist/esm/v2/tokens/motion.js.map +1 -1
- package/dist/esm/v2/tokens/radius.js +1 -1
- package/dist/esm/v2/tokens/radius.js.map +1 -1
- package/dist/esm/v2/tokens/shadows.js +6 -6
- package/dist/esm/v2/tokens/shadows.js.map +1 -1
- package/dist/esm/v2/tokens/spacing.js +2 -2
- package/dist/esm/v2/tokens/spacing.js.map +1 -1
- package/dist/esm/v2/tokens/state.js +1 -1
- package/dist/esm/v2/tokens/state.js.map +1 -1
- package/dist/esm/v2/tokens/statusPalette.js +17 -21
- package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
- package/dist/esm/v2/tokens/tokens.json +6 -1
- package/dist/esm/v2/tokens/typography.js +13 -13
- package/dist/esm/v2/tokens/typography.js.map +1 -1
- package/dist/esm/v2/tokens/zIndex.js +1 -1
- package/dist/esm/v2/tokens/zIndex.js.map +1 -1
- package/dist/esm/v2/types/datagrid.js.map +1 -1
- package/dist/esm/v2/utils/apiError.js +16 -37
- package/dist/esm/v2/utils/apiError.js.map +1 -1
- package/dist/esm/v2/utils/contrast.js +31 -32
- package/dist/esm/v2/utils/contrast.js.map +1 -1
- package/dist/esm/v2/utils/cx.js +5 -25
- package/dist/esm/v2/utils/cx.js.map +1 -1
- package/dist/esm/v2/utils/fileDownload.js +23 -26
- package/dist/esm/v2/utils/fileDownload.js.map +1 -1
- package/dist/esm/v2/utils/fileValidation.js +209 -0
- package/dist/esm/v2/utils/fileValidation.js.map +1 -0
- package/dist/esm/v2/utils/fmtDate.js +111 -0
- package/dist/esm/v2/utils/fmtDate.js.map +1 -0
- package/dist/esm/v2/utils/fmtMoney.js +8 -10
- package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
- package/dist/esm/v2/utils/formikErrors.js +78 -0
- package/dist/esm/v2/utils/formikErrors.js.map +1 -0
- package/dist/esm/v2/utils/index.js +35 -2
- package/dist/esm/v2/utils/index.js.map +1 -1
- package/dist/esm/v2/utils/mergeLabels.js +7 -12
- package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
- package/dist/esm/v2/utils/networkStatus.js +12 -12
- package/dist/esm/v2/utils/networkStatus.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +122 -47
- package/dist/index.js.map +1 -1
- package/dist/v2/__tests__/AppMain.test.js +133 -0
- package/dist/v2/__tests__/AppMain.test.js.map +1 -0
- package/dist/v2/__tests__/ChartFigure.test.js +183 -0
- package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
- package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
- package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
- package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
- package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
- package/dist/v2/__tests__/FieldError.test.js +98 -69
- package/dist/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/v2/__tests__/FieldNaming.test.js +161 -0
- package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
- package/dist/v2/__tests__/FieldWidth.test.js +148 -0
- package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
- package/dist/v2/__tests__/FileCard.test.js +45 -48
- package/dist/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/v2/__tests__/FormikCheckbox.test.js +175 -0
- package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
- package/dist/v2/__tests__/FormikDateTimePicker.test.js +237 -0
- package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
- package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
- package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js +300 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
- package/dist/v2/__tests__/MobileRowCard.test.js +100 -102
- package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
- package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
- package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
- package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
- package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
- package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/v2/__tests__/apiError.test.js +50 -69
- package/dist/v2/__tests__/apiError.test.js.map +1 -1
- package/dist/v2/__tests__/banned-patterns.test.js +42 -123
- package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
- package/dist/v2/__tests__/chart-palette.test.js +205 -0
- package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
- package/dist/v2/__tests__/contrast-palette.test.js +42 -74
- package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
- package/dist/v2/__tests__/cssVariables.test.js +44 -51
- package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
- package/dist/v2/__tests__/fileValidation.test.js +136 -0
- package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
- package/dist/v2/__tests__/filterCriteria.test.js +324 -0
- package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
- package/dist/v2/__tests__/fmtDate.test.js +69 -0
- package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
- package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
- package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
- package/dist/v2/__tests__/labels-merge.test.js +38 -46
- package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/v2/__tests__/locale-fallback.test.js +47 -52
- package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
- package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
- package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
- package/dist/v2/__tests__/rowActions.test.js +186 -0
- package/dist/v2/__tests__/rowActions.test.js.map +1 -0
- package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
- package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
- package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
- package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
- package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
- package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
- package/dist/v2/components/Accordion.js +60 -82
- package/dist/v2/components/Accordion.js.map +1 -1
- package/dist/v2/components/ActionStrip.js +40 -52
- package/dist/v2/components/ActionStrip.js.map +1 -1
- package/dist/v2/components/Banner.js +42 -41
- package/dist/v2/components/Banner.js.map +1 -1
- package/dist/v2/components/Busy.js +22 -27
- package/dist/v2/components/Busy.js.map +1 -1
- package/dist/v2/components/Button.js +39 -50
- package/dist/v2/components/Button.js.map +1 -1
- package/dist/v2/components/CategoryTag.d.ts.map +1 -1
- package/dist/v2/components/CategoryTag.js +49 -32
- package/dist/v2/components/CategoryTag.js.map +1 -1
- package/dist/v2/components/Checkbox.js +39 -45
- package/dist/v2/components/Checkbox.js.map +1 -1
- package/dist/v2/components/Chip.js +29 -42
- package/dist/v2/components/Chip.js.map +1 -1
- package/dist/v2/components/Combobox.js +122 -144
- package/dist/v2/components/Combobox.js.map +1 -1
- package/dist/v2/components/CommandPalette.js +138 -225
- package/dist/v2/components/CommandPalette.js.map +1 -1
- package/dist/v2/components/ConfirmDialog.js +46 -56
- package/dist/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/v2/components/DatePicker.js +81 -86
- package/dist/v2/components/DatePicker.js.map +1 -1
- package/dist/v2/components/DateRangePicker.js +77 -87
- package/dist/v2/components/DateRangePicker.js.map +1 -1
- package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
- package/dist/v2/components/DateTimePicker.js +121 -95
- package/dist/v2/components/DateTimePicker.js.map +1 -1
- package/dist/v2/components/Drawer.d.ts.map +1 -1
- package/dist/v2/components/Drawer.js +93 -88
- package/dist/v2/components/Drawer.js.map +1 -1
- package/dist/v2/components/Dropzone.js +150 -196
- package/dist/v2/components/Dropzone.js.map +1 -1
- package/dist/v2/components/EmptyState.js +18 -20
- package/dist/v2/components/EmptyState.js.map +1 -1
- package/dist/v2/components/FavoriteToggle.js +28 -39
- package/dist/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/v2/components/Field.d.ts +121 -5
- package/dist/v2/components/Field.d.ts.map +1 -1
- package/dist/v2/components/Field.js +221 -62
- package/dist/v2/components/Field.js.map +1 -1
- package/dist/v2/components/FieldError.js +18 -21
- package/dist/v2/components/FieldError.js.map +1 -1
- package/dist/v2/components/FieldHelp.js +40 -60
- package/dist/v2/components/FieldHelp.js.map +1 -1
- package/dist/v2/components/FileCard.js +27 -31
- package/dist/v2/components/FileCard.js.map +1 -1
- package/dist/v2/components/FilterTab.js +30 -38
- package/dist/v2/components/FilterTab.js.map +1 -1
- package/dist/v2/components/ForbiddenPage.d.ts +25 -1
- package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
- package/dist/v2/components/ForbiddenPage.js +37 -17
- package/dist/v2/components/ForbiddenPage.js.map +1 -1
- package/dist/v2/components/FormGrid.js +53 -59
- package/dist/v2/components/FormGrid.js.map +1 -1
- package/dist/v2/components/FormikDisplay.d.ts +50 -1
- package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
- package/dist/v2/components/FormikDisplay.js +108 -33
- package/dist/v2/components/FormikDisplay.js.map +1 -1
- package/dist/v2/components/Input.d.ts +40 -0
- package/dist/v2/components/Input.d.ts.map +1 -1
- package/dist/v2/components/Input.js +81 -41
- package/dist/v2/components/Input.js.map +1 -1
- package/dist/v2/components/KPICard.js +57 -67
- package/dist/v2/components/KPICard.js.map +1 -1
- package/dist/v2/components/KPIStrip.js +16 -22
- package/dist/v2/components/KPIStrip.js.map +1 -1
- package/dist/v2/components/KV.js +25 -31
- package/dist/v2/components/KV.js.map +1 -1
- package/dist/v2/components/KVGrid.js +19 -26
- package/dist/v2/components/KVGrid.js.map +1 -1
- package/dist/v2/components/Layout.js +91 -120
- package/dist/v2/components/Layout.js.map +1 -1
- package/dist/v2/components/MobileRowCard.js +79 -91
- package/dist/v2/components/MobileRowCard.js.map +1 -1
- package/dist/v2/components/Modal.js +61 -69
- package/dist/v2/components/Modal.js.map +1 -1
- package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
- package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
- package/dist/v2/components/NetworkErrorPage.js +38 -21
- package/dist/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/v2/components/NotFoundPage.d.ts +17 -1
- package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
- package/dist/v2/components/NotFoundPage.js +37 -18
- package/dist/v2/components/NotFoundPage.js.map +1 -1
- package/dist/v2/components/NumberInput.js +88 -118
- package/dist/v2/components/NumberInput.js.map +1 -1
- package/dist/v2/components/OverflowMenu.js +38 -56
- package/dist/v2/components/OverflowMenu.js.map +1 -1
- package/dist/v2/components/PdfViewer.js +34 -45
- package/dist/v2/components/PdfViewer.js.map +1 -1
- package/dist/v2/components/ProgressBar.js +42 -49
- package/dist/v2/components/ProgressBar.js.map +1 -1
- package/dist/v2/components/Radio.js +59 -67
- package/dist/v2/components/Radio.js.map +1 -1
- package/dist/v2/components/SectionErrorBoundary.js +90 -135
- package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
- package/dist/v2/components/SectionHeader.js +34 -41
- package/dist/v2/components/SectionHeader.js.map +1 -1
- package/dist/v2/components/Segmented.js +69 -93
- package/dist/v2/components/Segmented.js.map +1 -1
- package/dist/v2/components/Select.d.ts +26 -2
- package/dist/v2/components/Select.d.ts.map +1 -1
- package/dist/v2/components/Select.js +120 -155
- package/dist/v2/components/Select.js.map +1 -1
- package/dist/v2/components/ServerErrorPage.d.ts +27 -1
- package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
- package/dist/v2/components/ServerErrorPage.js +37 -20
- package/dist/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/v2/components/Skeleton.js +86 -100
- package/dist/v2/components/Skeleton.js.map +1 -1
- package/dist/v2/components/SkipLink.js +9 -12
- package/dist/v2/components/SkipLink.js.map +1 -1
- package/dist/v2/components/Spinner.js +16 -25
- package/dist/v2/components/Spinner.js.map +1 -1
- package/dist/v2/components/Status.js +18 -29
- package/dist/v2/components/Status.js.map +1 -1
- package/dist/v2/components/Stepper.js +80 -82
- package/dist/v2/components/Stepper.js.map +1 -1
- package/dist/v2/components/Surface.js +34 -49
- package/dist/v2/components/Surface.js.map +1 -1
- package/dist/v2/components/Switch.js +29 -37
- package/dist/v2/components/Switch.js.map +1 -1
- package/dist/v2/components/TabPanel.d.ts +17 -0
- package/dist/v2/components/TabPanel.d.ts.map +1 -0
- package/dist/v2/components/TabPanel.js +90 -0
- package/dist/v2/components/TabPanel.js.map +1 -0
- package/dist/v2/components/Tabs.d.ts +25 -0
- package/dist/v2/components/Tabs.d.ts.map +1 -1
- package/dist/v2/components/Tabs.js +53 -29
- package/dist/v2/components/Tabs.js.map +1 -1
- package/dist/v2/components/TelInput.js +80 -115
- package/dist/v2/components/TelInput.js.map +1 -1
- package/dist/v2/components/Textarea.js +26 -35
- package/dist/v2/components/Textarea.js.map +1 -1
- package/dist/v2/components/TimePicker.js +62 -74
- package/dist/v2/components/TimePicker.js.map +1 -1
- package/dist/v2/components/Toast.js +119 -174
- package/dist/v2/components/Toast.js.map +1 -1
- package/dist/v2/components/Tooltip.js +23 -38
- package/dist/v2/components/Tooltip.js.map +1 -1
- package/dist/v2/components/_ErrorPageBody.js +15 -16
- package/dist/v2/components/_ErrorPageBody.js.map +1 -1
- package/dist/v2/components/_pickerShared.js +5 -5
- package/dist/v2/components/_pickerShared.js.map +1 -1
- package/dist/v2/components/index.d.ts +67 -1
- package/dist/v2/components/index.d.ts.map +1 -1
- package/dist/v2/components/index.js +153 -136
- package/dist/v2/components/index.js.map +1 -1
- package/dist/v2/hooks/index.d.ts +65 -0
- package/dist/v2/hooks/index.d.ts.map +1 -1
- package/dist/v2/hooks/index.js +63 -24
- package/dist/v2/hooks/index.js.map +1 -1
- package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
- package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
- package/dist/v2/hooks/useAppliedFilters.js +117 -0
- package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
- package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
- package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
- package/dist/v2/hooks/useDebouncedCallback.js +87 -0
- package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/v2/hooks/useDelayedFlag.js +6 -20
- package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
- package/dist/v2/hooks/useDensity.d.ts.map +1 -1
- package/dist/v2/hooks/useDensity.js +14 -18
- package/dist/v2/hooks/useDensity.js.map +1 -1
- package/dist/v2/hooks/useFocusFirstError.js +26 -34
- package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
- package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
- package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
- package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
- package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
- package/dist/v2/hooks/useFocusTrap.js +20 -24
- package/dist/v2/hooks/useFocusTrap.js.map +1 -1
- package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
- package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
- package/dist/v2/hooks/useFormAutoSave.js +39 -54
- package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
- package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
- package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
- package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
- package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
- package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
- package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
- package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
- package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
- package/dist/v2/hooks/useResolvedDensity.js +5 -13
- package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
- package/dist/v2/hooks/useSortedRows.js +4 -6
- package/dist/v2/hooks/useSortedRows.js.map +1 -1
- package/dist/v2/hooks/useTabLoading.js +7 -22
- package/dist/v2/hooks/useTabLoading.js.map +1 -1
- package/dist/v2/index.d.ts.map +1 -1
- package/dist/v2/index.js +143 -145
- package/dist/v2/index.js.map +1 -1
- package/dist/v2/modalContext.js +2 -2
- package/dist/v2/modalContext.js.map +1 -1
- package/dist/v2/models/favorite.d.ts +8 -9
- package/dist/v2/models/favorite.d.ts.map +1 -1
- package/dist/v2/models/favorite.js.map +1 -1
- package/dist/v2/models/index.js +4 -4
- package/dist/v2/models/index.js.map +1 -1
- package/dist/v2/models/personalization.d.ts +44 -48
- package/dist/v2/models/personalization.d.ts.map +1 -1
- package/dist/v2/models/personalization.js.map +1 -1
- package/dist/v2/models/referentiel.d.ts +32 -50
- package/dist/v2/models/referentiel.d.ts.map +1 -1
- package/dist/v2/models/referentiel.js.map +1 -1
- package/dist/v2/models/savedFilter.d.ts +8 -17
- package/dist/v2/models/savedFilter.d.ts.map +1 -1
- package/dist/v2/models/savedFilter.js.map +1 -1
- package/dist/v2/patterns/ActionBar.js +152 -187
- package/dist/v2/patterns/ActionBar.js.map +1 -1
- package/dist/v2/patterns/AppMain.d.ts +109 -0
- package/dist/v2/patterns/AppMain.d.ts.map +1 -0
- package/dist/v2/patterns/AppMain.js +115 -0
- package/dist/v2/patterns/AppMain.js.map +1 -0
- package/dist/v2/patterns/BulkActionBar.js +40 -42
- package/dist/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/v2/patterns/ChartFigure.d.ts +124 -0
- package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
- package/dist/v2/patterns/ChartFigure.js +159 -0
- package/dist/v2/patterns/ChartFigure.js.map +1 -0
- package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
- package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/v2/patterns/ColumnsToggle.js +60 -94
- package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
- package/dist/v2/patterns/DataGrid.js +262 -297
- package/dist/v2/patterns/DataGrid.js.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
- package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/v2/patterns/DataGridToolbar.js +103 -106
- package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/v2/patterns/DataGridVirtualized.js +179 -217
- package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/v2/patterns/DetailSplit.d.ts +87 -0
- package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
- package/dist/v2/patterns/DetailSplit.js +116 -0
- package/dist/v2/patterns/DetailSplit.js.map +1 -0
- package/dist/v2/patterns/FavoriteColumn.d.ts +9 -9
- package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
- package/dist/v2/patterns/FavoriteColumn.js +32 -80
- package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/v2/patterns/FavoritesFilter.js +36 -44
- package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
- package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
- package/dist/v2/patterns/FilterTabBar.js +120 -0
- package/dist/v2/patterns/FilterTabBar.js.map +1 -0
- package/dist/v2/patterns/FormErrorSummary.js +20 -23
- package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/v2/patterns/FormPageShell.js +53 -50
- package/dist/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/v2/patterns/FormSection.d.ts +8 -3
- package/dist/v2/patterns/FormSection.d.ts.map +1 -1
- package/dist/v2/patterns/FormSection.js +44 -51
- package/dist/v2/patterns/FormSection.js.map +1 -1
- package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
- package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
- package/dist/v2/patterns/FormikCheckbox.js +138 -0
- package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
- package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/v2/patterns/FormikCombobox.d.ts +7 -1
- package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCombobox.js +55 -69
- package/dist/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.d.ts +13 -1
- package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.js +59 -106
- package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
- package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
- package/dist/v2/patterns/FormikDateTimePicker.js +144 -0
- package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
- package/dist/v2/patterns/FormikErrorFocus.js +25 -26
- package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
- package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
- package/dist/v2/patterns/FormikErrorSummary.js +97 -0
- package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
- package/dist/v2/patterns/FormikFile.d.ts +14 -1
- package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
- package/dist/v2/patterns/FormikFile.js +99 -83
- package/dist/v2/patterns/FormikFile.js.map +1 -1
- package/dist/v2/patterns/FormikInput.d.ts +11 -1
- package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
- package/dist/v2/patterns/FormikInput.js +45 -55
- package/dist/v2/patterns/FormikInput.js.map +1 -1
- package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
- package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
- package/dist/v2/patterns/FormikRadioGroup.js +137 -0
- package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
- package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
- package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.js +54 -64
- package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/v2/patterns/FormikSelect.d.ts +9 -1
- package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
- package/dist/v2/patterns/FormikSelect.js +70 -89
- package/dist/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/v2/patterns/FormikTextarea.d.ts +9 -1
- package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
- package/dist/v2/patterns/FormikTextarea.js +35 -48
- package/dist/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +14 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.js +71 -74
- package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
- package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/v2/patterns/PageContent.js +17 -20
- package/dist/v2/patterns/PageContent.js.map +1 -1
- package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
- package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
- package/dist/v2/patterns/PreviewDrawer.js +159 -0
- package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
- package/dist/v2/patterns/ReferentielField.d.ts +86 -2
- package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/ReferentielField.js +347 -327
- package/dist/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/v2/patterns/RowFavoriteToggle.d.ts +98 -0
- package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
- package/dist/v2/patterns/RowFavoriteToggle.js +135 -0
- package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
- package/dist/v2/patterns/SaveFilterDialog.js +50 -77
- package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
- package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/v2/patterns/SkeletonPageShell.js +122 -143
- package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/v2/patterns/SortableHeader.js +35 -57
- package/dist/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/v2/patterns/Tour.js +121 -142
- package/dist/v2/patterns/Tour.js.map +1 -1
- package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
- package/dist/v2/patterns/_dataGridShared.js +131 -147
- package/dist/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
- package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
- package/dist/v2/patterns/_pickerSerialisation.js +80 -0
- package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
- package/dist/v2/patterns/_sort.js +17 -33
- package/dist/v2/patterns/_sort.js.map +1 -1
- package/dist/v2/patterns/_useColumnReorder.js +124 -163
- package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/v2/patterns/_useColumnResize.js +80 -99
- package/dist/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/v2/patterns/filterCriteria.d.ts +78 -0
- package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
- package/dist/v2/patterns/filterCriteria.js +110 -0
- package/dist/v2/patterns/filterCriteria.js.map +1 -0
- package/dist/v2/patterns/index.d.ts +247 -0
- package/dist/v2/patterns/index.d.ts.map +1 -1
- package/dist/v2/patterns/index.js +182 -70
- package/dist/v2/patterns/index.js.map +1 -1
- package/dist/v2/patterns/rowActions.d.ts +150 -0
- package/dist/v2/patterns/rowActions.d.ts.map +1 -0
- package/dist/v2/patterns/rowActions.js +232 -0
- package/dist/v2/patterns/rowActions.js.map +1 -0
- package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
- package/dist/v2/personalization/PersonalizationProvider.js +57 -53
- package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/v2/personalization/adapters/_storageKey.js +5 -5
- package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
- package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/index.js +5 -5
- package/dist/v2/personalization/adapters/index.js.map +1 -1
- package/dist/v2/personalization/capabilities/favorites.js +39 -62
- package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
- package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
- package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
- package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/gridPreferences.js +210 -0
- package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
- package/dist/v2/personalization/capabilities/index.d.ts +6 -0
- package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
- package/dist/v2/personalization/capabilities/index.js +23 -10
- package/dist/v2/personalization/capabilities/index.js.map +1 -1
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
- package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
- package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.js +81 -182
- package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/v2/personalization/index.d.ts +34 -0
- package/dist/v2/personalization/index.d.ts.map +1 -1
- package/dist/v2/personalization/index.js +41 -21
- package/dist/v2/personalization/index.js.map +1 -1
- package/dist/v2/personalization/personalizationContext.js +10 -12
- package/dist/v2/personalization/personalizationContext.js.map +1 -1
- package/dist/v2/personalization/schema.js +8 -9
- package/dist/v2/personalization/schema.js.map +1 -1
- package/dist/v2/referentiel/ReferentielProvider.js +31 -45
- package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/v2/referentiel/index.js +11 -13
- package/dist/v2/referentiel/index.js.map +1 -1
- package/dist/v2/referentiel/types.d.ts +105 -0
- package/dist/v2/referentiel/types.d.ts.map +1 -0
- package/dist/v2/referentiel/types.js +6 -0
- package/dist/v2/referentiel/types.js.map +1 -0
- package/dist/v2/referentiel/useReferentielClient.js +13 -16
- package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
- package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.js +63 -120
- package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
- package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.js +40 -95
- package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/v2/theme/_brand.js +12 -26
- package/dist/v2/theme/_brand.js.map +1 -1
- package/dist/v2/theme/_brandSecondary.js +12 -26
- package/dist/v2/theme/_brandSecondary.js.map +1 -1
- package/dist/v2/theme/createPortnetTheme.js +41 -49
- package/dist/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/v2/theme/cssVariables.d.ts +3 -3
- package/dist/v2/theme/cssVariables.d.ts.map +1 -1
- package/dist/v2/theme/cssVariables.js +65 -70
- package/dist/v2/theme/cssVariables.js.map +1 -1
- package/dist/v2/theme/index.js +10 -10
- package/dist/v2/theme/index.js.map +1 -1
- package/dist/v2/tokens/breakpoints.js +16 -16
- package/dist/v2/tokens/breakpoints.js.map +1 -1
- package/dist/v2/tokens/chart.d.ts +103 -0
- package/dist/v2/tokens/chart.d.ts.map +1 -0
- package/dist/v2/tokens/chart.js +270 -0
- package/dist/v2/tokens/chart.js.map +1 -0
- package/dist/v2/tokens/colors.js +24 -24
- package/dist/v2/tokens/colors.js.map +1 -1
- package/dist/v2/tokens/density.d.ts +104 -0
- package/dist/v2/tokens/density.d.ts.map +1 -1
- package/dist/v2/tokens/density.js +67 -12
- package/dist/v2/tokens/density.js.map +1 -1
- package/dist/v2/tokens/index.d.ts +50 -1
- package/dist/v2/tokens/index.d.ts.map +1 -1
- package/dist/v2/tokens/index.js +116 -68
- package/dist/v2/tokens/index.js.map +1 -1
- package/dist/v2/tokens/motion.js +16 -22
- package/dist/v2/tokens/motion.js.map +1 -1
- package/dist/v2/tokens/radius.js +3 -3
- package/dist/v2/tokens/radius.js.map +1 -1
- package/dist/v2/tokens/shadows.js +8 -8
- package/dist/v2/tokens/shadows.js.map +1 -1
- package/dist/v2/tokens/spacing.js +4 -4
- package/dist/v2/tokens/spacing.js.map +1 -1
- package/dist/v2/tokens/state.js +3 -3
- package/dist/v2/tokens/state.js.map +1 -1
- package/dist/v2/tokens/statusPalette.js +21 -23
- package/dist/v2/tokens/statusPalette.js.map +1 -1
- package/dist/v2/tokens/tokens.json +6 -1
- package/dist/v2/tokens/typography.js +15 -15
- package/dist/v2/tokens/typography.js.map +1 -1
- package/dist/v2/tokens/zIndex.js +3 -3
- package/dist/v2/tokens/zIndex.js.map +1 -1
- package/dist/v2/types/datagrid.d.ts +9 -1
- package/dist/v2/types/datagrid.d.ts.map +1 -1
- package/dist/v2/types/datagrid.js.map +1 -1
- package/dist/v2/types/index.js +2 -2
- package/dist/v2/types/index.js.map +1 -1
- package/dist/v2/utils/apiError.js +16 -37
- package/dist/v2/utils/apiError.js.map +1 -1
- package/dist/v2/utils/contrast.js +31 -32
- package/dist/v2/utils/contrast.js.map +1 -1
- package/dist/v2/utils/cx.js +7 -27
- package/dist/v2/utils/cx.js.map +1 -1
- package/dist/v2/utils/fileDownload.js +25 -28
- package/dist/v2/utils/fileDownload.js.map +1 -1
- package/dist/v2/utils/fileValidation.d.ts +116 -0
- package/dist/v2/utils/fileValidation.d.ts.map +1 -0
- package/dist/v2/utils/fileValidation.js +220 -0
- package/dist/v2/utils/fileValidation.js.map +1 -0
- package/dist/v2/utils/fmtDate.d.ts +103 -0
- package/dist/v2/utils/fmtDate.d.ts.map +1 -0
- package/dist/v2/utils/fmtDate.js +119 -0
- package/dist/v2/utils/fmtDate.js.map +1 -0
- package/dist/v2/utils/fmtMoney.d.ts +3 -3
- package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
- package/dist/v2/utils/fmtMoney.js +9 -11
- package/dist/v2/utils/fmtMoney.js.map +1 -1
- package/dist/v2/utils/formikErrors.d.ts +67 -0
- package/dist/v2/utils/formikErrors.d.ts.map +1 -0
- package/dist/v2/utils/formikErrors.js +85 -0
- package/dist/v2/utils/formikErrors.js.map +1 -0
- package/dist/v2/utils/index.d.ts +5 -0
- package/dist/v2/utils/index.d.ts.map +1 -1
- package/dist/v2/utils/index.js +67 -18
- package/dist/v2/utils/index.js.map +1 -1
- package/dist/v2/utils/mergeLabels.js +9 -14
- package/dist/v2/utils/mergeLabels.js.map +1 -1
- package/dist/v2/utils/networkStatus.js +14 -14
- package/dist/v2/utils/networkStatus.js.map +1 -1
- package/package.json +26 -9
|
@@ -1,14 +1,14 @@
|
|
|
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 _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
-
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
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); }
|
|
12
12
|
/**
|
|
13
13
|
* Surface — Portnet UI v2
|
|
14
14
|
*
|
|
@@ -54,16 +54,20 @@ var _excluded = ["component", "tone", "elevation", "radius", "padding", "clip",
|
|
|
54
54
|
* `KPICard`; an attached file is `FileCard`. Those compose this. If you find
|
|
55
55
|
* yourself wanting a `title` prop here, you want one of them instead.
|
|
56
56
|
*/
|
|
57
|
+
|
|
57
58
|
/** Background token. `subtle` is for a block INSET INTO an existing surface. */
|
|
59
|
+
|
|
58
60
|
/**
|
|
59
61
|
* Elevation, restricted to the two card levels of Charter §02.5.
|
|
60
62
|
* `md` / `lg` are reserved for popovers and modals and are not offered here —
|
|
61
63
|
* a card that needs them is a `Modal` or a `Drawer`.
|
|
62
64
|
*/
|
|
65
|
+
|
|
63
66
|
/**
|
|
64
67
|
* Corner radius. `lg` = a card (charter §02.4 « Cards, datagrid »); `md` = a
|
|
65
68
|
* block nested inside another surface, which reads wrong at the card radius.
|
|
66
69
|
*/
|
|
70
|
+
|
|
67
71
|
/**
|
|
68
72
|
* Inner padding.
|
|
69
73
|
* none — the child owns it (DataGrid, a nested grid, a table).
|
|
@@ -73,62 +77,42 @@ var _excluded = ["component", "tone", "elevation", "radius", "padding", "clip",
|
|
|
73
77
|
* responsive — the page-level ladder, aligned with `PageContent`'s, for a
|
|
74
78
|
* full-width hero whose padding must shrink on a phone.
|
|
75
79
|
*/
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
79
|
-
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; }
|
|
80
|
-
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; }
|
|
81
|
-
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; }
|
|
82
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
83
|
-
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); }
|
|
84
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
85
|
-
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."); }
|
|
86
|
-
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); }
|
|
87
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
88
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
89
|
-
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; }
|
|
90
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
91
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
92
|
-
var TONE = {
|
|
80
|
+
|
|
81
|
+
const TONE = {
|
|
93
82
|
surface: "var(--surface)",
|
|
94
83
|
subtle: "var(--bg-subtle)"
|
|
95
84
|
};
|
|
96
|
-
|
|
85
|
+
const ELEVATION = {
|
|
97
86
|
none: "none",
|
|
98
87
|
xs: "var(--shadow-xs)",
|
|
99
88
|
sm: "var(--shadow-sm)"
|
|
100
89
|
};
|
|
101
|
-
|
|
90
|
+
const RADIUS = {
|
|
102
91
|
md: "var(--r-md)",
|
|
103
92
|
lg: "var(--r-lg)"
|
|
104
93
|
};
|
|
105
|
-
|
|
94
|
+
const PADDING = {
|
|
106
95
|
none: "0",
|
|
107
96
|
compact: "var(--s-3) var(--s-4)",
|
|
108
|
-
|
|
97
|
+
default: "var(--s-5)",
|
|
109
98
|
responsive: {
|
|
110
99
|
xs: "var(--s-4)",
|
|
111
100
|
sm: "var(--s-5)",
|
|
112
101
|
lg: "var(--s-6)"
|
|
113
102
|
}
|
|
114
103
|
};
|
|
115
|
-
function Surface(
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
clip = _ref$clip === void 0 ? false : _ref$clip,
|
|
128
|
-
sx = _ref.sx,
|
|
129
|
-
children = _ref.children,
|
|
130
|
-
rest = _objectWithoutProperties(_ref, _excluded);
|
|
131
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], _objectSpread(_objectSpread({
|
|
104
|
+
function Surface({
|
|
105
|
+
component = "div",
|
|
106
|
+
tone = "surface",
|
|
107
|
+
elevation = "none",
|
|
108
|
+
radius = "lg",
|
|
109
|
+
padding = "default",
|
|
110
|
+
clip = false,
|
|
111
|
+
sx,
|
|
112
|
+
children,
|
|
113
|
+
...rest
|
|
114
|
+
}) {
|
|
115
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
132
116
|
component: component
|
|
133
117
|
/*
|
|
134
118
|
* ARRAY form, not an object spread (gap G-23). `SxProps<Theme>` admits an
|
|
@@ -142,7 +126,7 @@ function Surface(_ref) {
|
|
|
142
126
|
* `KPICard` already did this correctly; 33 other components in this library
|
|
143
127
|
* still spread. I wrote three of those before noticing, including this file.
|
|
144
128
|
*/,
|
|
145
|
-
sx: [
|
|
129
|
+
sx: [{
|
|
146
130
|
background: TONE[tone],
|
|
147
131
|
border: "1px solid var(--border)",
|
|
148
132
|
borderRadius: RADIUS[radius],
|
|
@@ -151,13 +135,14 @@ function Surface(_ref) {
|
|
|
151
135
|
// Guards a card whose child is a wide table or a long unbroken string:
|
|
152
136
|
// without it the flex/grid parent refuses to shrink and the page gains a
|
|
153
137
|
// horizontal scrollbar (WCAG 1.4.10 Reflow).
|
|
154
|
-
minWidth: 0
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
138
|
+
minWidth: 0,
|
|
139
|
+
...(clip ? {
|
|
140
|
+
overflow: "hidden"
|
|
141
|
+
} : null)
|
|
142
|
+
}, ...(Array.isArray(sx) ? sx : sx ? [sx] : [])],
|
|
143
|
+
...rest,
|
|
159
144
|
children: children
|
|
160
|
-
})
|
|
145
|
+
});
|
|
161
146
|
}
|
|
162
|
-
var _default = exports
|
|
147
|
+
var _default = exports.default = Surface;
|
|
163
148
|
//# sourceMappingURL=Surface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Surface.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_jsxRuntime","_excluded","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","iter","iterator","isArray","len","arr2","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","TONE","surface","subtle","ELEVATION","none","xs","sm","RADIUS","md","lg","PADDING","compact","responsive","Surface","_ref","_ref$component","component","_ref$tone","tone","_ref$elevation","elevation","_ref$radius","radius","_ref$padding","padding","_ref$clip","clip","sx","children","rest","jsx","background","border","borderRadius","boxShadow","minWidth","overflow","concat","_default","exports"],"sources":["../../../src/lib/v2/components/Surface.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\n\r\n/**\r\n * Surface — Portnet UI v2\r\n *\r\n * The bare card container. Charter §02.4 assigns `-r-lg` to « Cards, datagrid »\r\n * and §02.5 assigns `--shadow-xs` to « Inputs, KPI cards » / `--shadow-sm` to\r\n * « Default cards » — so the charter defines a card, in tokens, precisely.\r\n *\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n * WHY THIS BELONGS IN THE LIBRARY (capability gap G-10)\r\n *\r\n * The card recipe existed in the library, but only WELDED INSIDE `FormSection`,\r\n * which also imposes a numbered heading, a description slot and an inner\r\n * `FormGrid`. A consumer needing just the container — a DataGrid shell, a hero\r\n * card, a sticky side rail, a nested file row — could not reach it and wrote the\r\n * four-line recipe again. In addpe-fe alone: `DATAGRID_CARD_SX`, `HERO_CARD_SX`,\r\n * `LIFECYCLE_CARD_SX`, and a document-card block repeated in three files.\r\n *\r\n * That is the failure mode a design system exists to prevent, and it is worse\r\n * than plain duplication: each copy picked its own elevation and its own radius\r\n * from memory, so cards that should be visually identical drifted apart within a\r\n * single page — and a charter change to `--shadow-sm` or `-r-lg` would have to\r\n * be chased across every module by hand.\r\n *\r\n * The variant axes below are DERIVED from those observed copies, not invented:\r\n * each one is a difference that really existed between two of them.\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n *\r\n * // DataGrid shell — the grid owns its own padding, and `clip` makes the\r\n * // rounded corner cut the table's first/last row borders.\r\n * <Surface padding=\"none\" elevation=\"xs\" clip>\r\n * <DataGrid … />\r\n * </Surface>\r\n *\r\n * // Detail hero — responsive padding ladder, default card elevation.\r\n * <Surface padding=\"responsive\" elevation=\"sm\">…</Surface>\r\n *\r\n * // Nested inset block (attached file, document row) — subtle tone, the\r\n * // smaller radius the charter assigns to inner blocks.\r\n * <Surface tone=\"subtle\" radius=\"md\" padding=\"compact\">…</Surface>\r\n *\r\n * Composition, not configuration: `Surface` deliberately has NO title, NO\r\n * actions and NO header. A titled section is `FormSection`; a metric tile is\r\n * `KPICard`; an attached file is `FileCard`. Those compose this. If you find\r\n * yourself wanting a `title` prop here, you want one of them instead.\r\n */\r\n\r\n/** Background token. `subtle` is for a block INSET INTO an existing surface. */\r\nexport type SurfaceTone = \"surface\" | \"subtle\";\r\n\r\n/**\r\n * Elevation, restricted to the two card levels of Charter §02.5.\r\n * `md` / `lg` are reserved for popovers and modals and are not offered here —\r\n * a card that needs them is a `Modal` or a `Drawer`.\r\n */\r\nexport type SurfaceElevation = \"none\" | \"xs\" | \"sm\";\r\n\r\n/**\r\n * Corner radius. `lg` = a card (charter §02.4 « Cards, datagrid »); `md` = a\r\n * block nested inside another surface, which reads wrong at the card radius.\r\n */\r\nexport type SurfaceRadius = \"md\" | \"lg\";\r\n\r\n/**\r\n * Inner padding.\r\n * none — the child owns it (DataGrid, a nested grid, a table).\r\n * compact — a single-row block. Asymmetric on purpose: a one-line row\r\n * needs more horizontal than vertical breathing space.\r\n * default — charter §2.3 « Padding card body » (--s-5).\r\n * responsive — the page-level ladder, aligned with `PageContent`'s, for a\r\n * full-width hero whose padding must shrink on a phone.\r\n */\r\nexport type SurfacePadding = \"none\" | \"compact\" | \"default\" | \"responsive\";\r\n\r\nconst TONE: Record<SurfaceTone, string> = {\r\n surface: \"var(--surface)\",\r\n subtle: \"var(--bg-subtle)\",\r\n};\r\n\r\nconst ELEVATION: Record<SurfaceElevation, string> = {\r\n none: \"none\",\r\n xs: \"var(--shadow-xs)\",\r\n sm: \"var(--shadow-sm)\",\r\n};\r\n\r\nconst RADIUS: Record<SurfaceRadius, string> = {\r\n md: \"var(--r-md)\",\r\n lg: \"var(--r-lg)\",\r\n};\r\n\r\ntype PaddingValue = string | Record<string, string>;\r\n\r\nconst PADDING: Record<SurfacePadding, PaddingValue> = {\r\n none: \"0\",\r\n compact: \"var(--s-3) var(--s-4)\",\r\n default: \"var(--s-5)\",\r\n responsive: { xs: \"var(--s-4)\", sm: \"var(--s-5)\", lg: \"var(--s-6)\" },\r\n};\r\n\r\nexport interface SurfaceProps\r\n extends Omit<React.HTMLAttributes<HTMLElement>, \"color\"> {\r\n /** Rendered element. @default \"div\" */\r\n component?: React.ElementType | undefined;\r\n /** @default \"surface\" */\r\n tone?: SurfaceTone | undefined;\r\n /** @default \"none\" */\r\n elevation?: SurfaceElevation | undefined;\r\n /** @default \"lg\" */\r\n radius?: SurfaceRadius | undefined;\r\n /** @default \"default\" */\r\n padding?: SurfacePadding | undefined;\r\n /**\r\n * `overflow: hidden`, so the rounded corner CLIPS a child that draws its own\r\n * edges — a DataGrid's sticky header and row borders, most commonly. Without\r\n * it the table's square corners poke through the card's radius.\r\n * @default false\r\n */\r\n clip?: boolean | undefined;\r\n sx?: SxProps<Theme> | undefined;\r\n children?: React.ReactNode | undefined;\r\n}\r\n\r\nfunction Surface({\r\n component = \"div\",\r\n tone = \"surface\",\r\n elevation = \"none\",\r\n radius = \"lg\",\r\n padding = \"default\",\r\n clip = false,\r\n sx,\r\n children,\r\n ...rest\r\n}: SurfaceProps) {\r\n return (\r\n <Box\r\n component={component}\r\n /*\r\n * ARRAY form, not an object spread (gap G-23). `SxProps<Theme>` admits an\r\n * object, an ARRAY or a FUNCTION, and spreading the last two destroys them\r\n * silently: `{...[a, b]}` yields `{0: a, 1: b}` and `{...fn}` yields `{}`.\r\n * So a host using MUI's own standard idiom —\r\n * `sx={[base, condition && override]}` — would lose every style, with no\r\n * error. The array form is what MUI documents for composition, and it\r\n * handles all three shapes plus null/undefined (falsy entries are ignored).\r\n *\r\n * `KPICard` already did this correctly; 33 other components in this library\r\n * still spread. I wrote three of those before noticing, including this file.\r\n */\r\n sx={[\r\n {\r\n background: TONE[tone],\r\n border: \"1px solid var(--border)\",\r\n borderRadius: RADIUS[radius],\r\n boxShadow: ELEVATION[elevation],\r\n padding: PADDING[padding],\r\n // Guards a card whose child is a wide table or a long unbroken string:\r\n // without it the flex/grid parent refuses to shrink and the page gains a\r\n // horizontal scrollbar (WCAG 1.4.10 Reflow).\r\n minWidth: 0,\r\n ...(clip ? { overflow: \"hidden\" } : null),\r\n },\r\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\r\n ]}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default Surface;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Surface.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TONE","surface","subtle","ELEVATION","none","xs","sm","RADIUS","md","lg","PADDING","compact","responsive","Surface","component","tone","elevation","radius","padding","clip","sx","children","rest","jsx","background","border","borderRadius","boxShadow","minWidth","overflow","Array","isArray","_default","exports"],"sources":["../../../src/lib/v2/components/Surface.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\n\r\n/**\r\n * Surface — Portnet UI v2\r\n *\r\n * The bare card container. Charter §02.4 assigns `-r-lg` to « Cards, datagrid »\r\n * and §02.5 assigns `--shadow-xs` to « Inputs, KPI cards » / `--shadow-sm` to\r\n * « Default cards » — so the charter defines a card, in tokens, precisely.\r\n *\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n * WHY THIS BELONGS IN THE LIBRARY (capability gap G-10)\r\n *\r\n * The card recipe existed in the library, but only WELDED INSIDE `FormSection`,\r\n * which also imposes a numbered heading, a description slot and an inner\r\n * `FormGrid`. A consumer needing just the container — a DataGrid shell, a hero\r\n * card, a sticky side rail, a nested file row — could not reach it and wrote the\r\n * four-line recipe again. In addpe-fe alone: `DATAGRID_CARD_SX`, `HERO_CARD_SX`,\r\n * `LIFECYCLE_CARD_SX`, and a document-card block repeated in three files.\r\n *\r\n * That is the failure mode a design system exists to prevent, and it is worse\r\n * than plain duplication: each copy picked its own elevation and its own radius\r\n * from memory, so cards that should be visually identical drifted apart within a\r\n * single page — and a charter change to `--shadow-sm` or `-r-lg` would have to\r\n * be chased across every module by hand.\r\n *\r\n * The variant axes below are DERIVED from those observed copies, not invented:\r\n * each one is a difference that really existed between two of them.\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n *\r\n * // DataGrid shell — the grid owns its own padding, and `clip` makes the\r\n * // rounded corner cut the table's first/last row borders.\r\n * <Surface padding=\"none\" elevation=\"xs\" clip>\r\n * <DataGrid … />\r\n * </Surface>\r\n *\r\n * // Detail hero — responsive padding ladder, default card elevation.\r\n * <Surface padding=\"responsive\" elevation=\"sm\">…</Surface>\r\n *\r\n * // Nested inset block (attached file, document row) — subtle tone, the\r\n * // smaller radius the charter assigns to inner blocks.\r\n * <Surface tone=\"subtle\" radius=\"md\" padding=\"compact\">…</Surface>\r\n *\r\n * Composition, not configuration: `Surface` deliberately has NO title, NO\r\n * actions and NO header. A titled section is `FormSection`; a metric tile is\r\n * `KPICard`; an attached file is `FileCard`. Those compose this. If you find\r\n * yourself wanting a `title` prop here, you want one of them instead.\r\n */\r\n\r\n/** Background token. `subtle` is for a block INSET INTO an existing surface. */\r\nexport type SurfaceTone = \"surface\" | \"subtle\";\r\n\r\n/**\r\n * Elevation, restricted to the two card levels of Charter §02.5.\r\n * `md` / `lg` are reserved for popovers and modals and are not offered here —\r\n * a card that needs them is a `Modal` or a `Drawer`.\r\n */\r\nexport type SurfaceElevation = \"none\" | \"xs\" | \"sm\";\r\n\r\n/**\r\n * Corner radius. `lg` = a card (charter §02.4 « Cards, datagrid »); `md` = a\r\n * block nested inside another surface, which reads wrong at the card radius.\r\n */\r\nexport type SurfaceRadius = \"md\" | \"lg\";\r\n\r\n/**\r\n * Inner padding.\r\n * none — the child owns it (DataGrid, a nested grid, a table).\r\n * compact — a single-row block. Asymmetric on purpose: a one-line row\r\n * needs more horizontal than vertical breathing space.\r\n * default — charter §2.3 « Padding card body » (--s-5).\r\n * responsive — the page-level ladder, aligned with `PageContent`'s, for a\r\n * full-width hero whose padding must shrink on a phone.\r\n */\r\nexport type SurfacePadding = \"none\" | \"compact\" | \"default\" | \"responsive\";\r\n\r\nconst TONE: Record<SurfaceTone, string> = {\r\n surface: \"var(--surface)\",\r\n subtle: \"var(--bg-subtle)\",\r\n};\r\n\r\nconst ELEVATION: Record<SurfaceElevation, string> = {\r\n none: \"none\",\r\n xs: \"var(--shadow-xs)\",\r\n sm: \"var(--shadow-sm)\",\r\n};\r\n\r\nconst RADIUS: Record<SurfaceRadius, string> = {\r\n md: \"var(--r-md)\",\r\n lg: \"var(--r-lg)\",\r\n};\r\n\r\ntype PaddingValue = string | Record<string, string>;\r\n\r\nconst PADDING: Record<SurfacePadding, PaddingValue> = {\r\n none: \"0\",\r\n compact: \"var(--s-3) var(--s-4)\",\r\n default: \"var(--s-5)\",\r\n responsive: { xs: \"var(--s-4)\", sm: \"var(--s-5)\", lg: \"var(--s-6)\" },\r\n};\r\n\r\nexport interface SurfaceProps\r\n extends Omit<React.HTMLAttributes<HTMLElement>, \"color\"> {\r\n /** Rendered element. @default \"div\" */\r\n component?: React.ElementType | undefined;\r\n /** @default \"surface\" */\r\n tone?: SurfaceTone | undefined;\r\n /** @default \"none\" */\r\n elevation?: SurfaceElevation | undefined;\r\n /** @default \"lg\" */\r\n radius?: SurfaceRadius | undefined;\r\n /** @default \"default\" */\r\n padding?: SurfacePadding | undefined;\r\n /**\r\n * `overflow: hidden`, so the rounded corner CLIPS a child that draws its own\r\n * edges — a DataGrid's sticky header and row borders, most commonly. Without\r\n * it the table's square corners poke through the card's radius.\r\n * @default false\r\n */\r\n clip?: boolean | undefined;\r\n sx?: SxProps<Theme> | undefined;\r\n children?: React.ReactNode | undefined;\r\n}\r\n\r\nfunction Surface({\r\n component = \"div\",\r\n tone = \"surface\",\r\n elevation = \"none\",\r\n radius = \"lg\",\r\n padding = \"default\",\r\n clip = false,\r\n sx,\r\n children,\r\n ...rest\r\n}: SurfaceProps) {\r\n return (\r\n <Box\r\n component={component}\r\n /*\r\n * ARRAY form, not an object spread (gap G-23). `SxProps<Theme>` admits an\r\n * object, an ARRAY or a FUNCTION, and spreading the last two destroys them\r\n * silently: `{...[a, b]}` yields `{0: a, 1: b}` and `{...fn}` yields `{}`.\r\n * So a host using MUI's own standard idiom —\r\n * `sx={[base, condition && override]}` — would lose every style, with no\r\n * error. The array form is what MUI documents for composition, and it\r\n * handles all three shapes plus null/undefined (falsy entries are ignored).\r\n *\r\n * `KPICard` already did this correctly; 33 other components in this library\r\n * still spread. I wrote three of those before noticing, including this file.\r\n */\r\n sx={[\r\n {\r\n background: TONE[tone],\r\n border: \"1px solid var(--border)\",\r\n borderRadius: RADIUS[radius],\r\n boxShadow: ELEVATION[elevation],\r\n padding: PADDING[padding],\r\n // Guards a card whose child is a wide table or a long unbroken string:\r\n // without it the flex/grid parent refuses to shrink and the page gains a\r\n // horizontal scrollbar (WCAG 1.4.10 Reflow).\r\n minWidth: 0,\r\n ...(clip ? { overflow: \"hidden\" } : null),\r\n },\r\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\r\n ]}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default Surface;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
|
-
exports
|
|
6
|
+
exports.default = void 0;
|
|
8
7
|
var React = _interopRequireWildcard(require("react"));
|
|
9
8
|
var _Switch = _interopRequireDefault(require("@mui/material/Switch"));
|
|
10
9
|
var _FormControlLabel = _interopRequireDefault(require("@mui/material/FormControlLabel"));
|
|
11
10
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
12
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
-
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
14
|
/**
|
|
15
15
|
* Switch - Portnet UI v2
|
|
16
16
|
*
|
|
@@ -30,35 +30,25 @@ var _excluded = ["checked", "onChange", "label", "description", "disabled", "siz
|
|
|
30
30
|
*
|
|
31
31
|
* <Switch checked={v} onChange={...} aria-label="Activer le mode sombre" />
|
|
32
32
|
*/
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
description = _ref.description,
|
|
48
|
-
disabled = _ref.disabled,
|
|
49
|
-
_ref$size = _ref.size,
|
|
50
|
-
size = _ref$size === void 0 ? "md" : _ref$size,
|
|
51
|
-
_ref$labelPlacement = _ref.labelPlacement,
|
|
52
|
-
labelPlacement = _ref$labelPlacement === void 0 ? "end" : _ref$labelPlacement,
|
|
53
|
-
sx = _ref.sx,
|
|
54
|
-
ariaLabel = _ref["aria-label"],
|
|
55
|
-
rest = _objectWithoutProperties(_ref, _excluded);
|
|
56
|
-
var descId = React.useId();
|
|
33
|
+
|
|
34
|
+
const Switch = /*#__PURE__*/React.forwardRef(function Switch({
|
|
35
|
+
checked,
|
|
36
|
+
onChange,
|
|
37
|
+
label,
|
|
38
|
+
description,
|
|
39
|
+
disabled,
|
|
40
|
+
size = "md",
|
|
41
|
+
labelPlacement = "end",
|
|
42
|
+
sx,
|
|
43
|
+
"aria-label": ariaLabel,
|
|
44
|
+
...rest
|
|
45
|
+
}, ref) {
|
|
46
|
+
const descId = React.useId();
|
|
57
47
|
if (process.env["NODE_ENV"] !== "production" && !label && !ariaLabel) {
|
|
58
48
|
// eslint-disable-next-line no-console
|
|
59
49
|
console.warn("[@portnet/ui v2] <Switch> without `label` requires `aria-label` for screen readers.");
|
|
60
50
|
}
|
|
61
|
-
|
|
51
|
+
const sw = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Switch.default, {
|
|
62
52
|
ref: ref,
|
|
63
53
|
checked: !!checked,
|
|
64
54
|
onChange: onChange,
|
|
@@ -74,7 +64,7 @@ var Switch = /*#__PURE__*/React.forwardRef(function Switch(_ref, ref) {
|
|
|
74
64
|
"aria-describedby": description ? descId : undefined
|
|
75
65
|
}
|
|
76
66
|
},
|
|
77
|
-
sx:
|
|
67
|
+
sx: {
|
|
78
68
|
"& .MuiSwitch-thumb": {
|
|
79
69
|
boxShadow: "var(--shadow-xs)"
|
|
80
70
|
},
|
|
@@ -91,17 +81,19 @@ var Switch = /*#__PURE__*/React.forwardRef(function Switch(_ref, ref) {
|
|
|
91
81
|
// accent automatically retune the Switch focus state too.
|
|
92
82
|
"& .MuiSwitch-switchBase.Mui-focusVisible .MuiSwitch-thumb": {
|
|
93
83
|
boxShadow: "var(--shadow-focus)"
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
|
|
84
|
+
},
|
|
85
|
+
...sx
|
|
86
|
+
},
|
|
87
|
+
...rest
|
|
88
|
+
});
|
|
97
89
|
if (!label && !description) return sw;
|
|
98
|
-
|
|
90
|
+
const labelNode = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
99
91
|
sx: {
|
|
100
92
|
display: "flex",
|
|
101
93
|
flexDirection: "column",
|
|
102
94
|
paddingY: 0.25
|
|
103
95
|
},
|
|
104
|
-
children: [label && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box
|
|
96
|
+
children: [label && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
105
97
|
component: "span",
|
|
106
98
|
sx: {
|
|
107
99
|
fontSize: "var(--text-sm)",
|
|
@@ -109,7 +101,7 @@ var Switch = /*#__PURE__*/React.forwardRef(function Switch(_ref, ref) {
|
|
|
109
101
|
color: "var(--fg)"
|
|
110
102
|
},
|
|
111
103
|
children: label
|
|
112
|
-
}), description && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box
|
|
104
|
+
}), description && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
113
105
|
id: descId,
|
|
114
106
|
component: "span",
|
|
115
107
|
sx: {
|
|
@@ -120,7 +112,7 @@ var Switch = /*#__PURE__*/React.forwardRef(function Switch(_ref, ref) {
|
|
|
120
112
|
children: description
|
|
121
113
|
})]
|
|
122
114
|
});
|
|
123
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormControlLabel
|
|
115
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormControlLabel.default, {
|
|
124
116
|
control: sw,
|
|
125
117
|
label: labelNode,
|
|
126
118
|
labelPlacement: labelPlacement,
|
|
@@ -132,5 +124,5 @@ var Switch = /*#__PURE__*/React.forwardRef(function Switch(_ref, ref) {
|
|
|
132
124
|
}
|
|
133
125
|
});
|
|
134
126
|
});
|
|
135
|
-
var _default = exports
|
|
127
|
+
var _default = exports.default = Switch;
|
|
136
128
|
//# sourceMappingURL=Switch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Switch.js","names":["React","_interopRequireWildcard","require","_Switch","_interopRequireDefault","_FormControlLabel","_Box","_jsxRuntime","_excluded","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","Switch","forwardRef","_ref","ref","checked","onChange","label","description","disabled","_ref$size","size","_ref$labelPlacement","labelPlacement","sx","ariaLabel","rest","descId","useId","process","env","console","warn","sw","jsx","slotProps","boxShadow","backgroundColor","opacity","labelNode","jsxs","display","flexDirection","paddingY","children","component","fontSize","fontWeight","color","id","lineHeight","control","margin","gap","alignItems","_default","exports"],"sources":["../../../src/lib/v2/components/Switch.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport MuiSwitch from \"@mui/material/Switch\";\r\nimport type { SwitchProps as MuiSwitchProps } from \"@mui/material/Switch\";\r\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\r\nimport Box from \"@mui/material/Box\";\r\n\r\n/**\r\n * Switch - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Switch / Toggle\". Binary on/off control with\r\n * IMMEDIATE effect. Use Checkbox instead for deferred choices that\r\n * take effect on form submission.\r\n *\r\n * <Switch\r\n * checked={notifications}\r\n * onChange={e => setNotifications(e.target.checked)}\r\n * label=\"Notifications par e-mail\"\r\n * description=\"Recevoir un e-mail à chaque nouvelle décision.\"\r\n * />\r\n *\r\n * Without a label (use only inside table cells / inline toggles where\r\n * the surrounding context provides the label):\r\n *\r\n * <Switch checked={v} onChange={...} aria-label=\"Activer le mode sombre\" />\r\n */\r\nexport interface SwitchProps extends Omit<MuiSwitchProps, \"size\"> {\r\n label?: React.ReactNode | undefined;\r\n description?: React.ReactNode | undefined;\r\n size?: \"sm\" | \"md\" | undefined;\r\n labelPlacement?: \"end\" | \"start\" | undefined;\r\n}\r\n\r\nconst Switch = React.forwardRef<React.ComponentRef<typeof MuiSwitch>, SwitchProps>(function Switch(\r\n {\r\n checked,\r\n onChange,\r\n label,\r\n description,\r\n disabled,\r\n size = \"md\",\r\n labelPlacement = \"end\",\r\n sx,\r\n \"aria-label\": ariaLabel,\r\n ...rest\r\n },\r\n ref,\r\n) {\r\n const descId = React.useId();\r\n\r\n if (process.env[\"NODE_ENV\"] !== \"production\" && !label && !ariaLabel) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n \"[@portnet/ui v2] <Switch> without `label` requires `aria-label` for screen readers.\",\r\n );\r\n }\r\n\r\n const sw = (\r\n <MuiSwitch\r\n ref={ref}\r\n checked={!!checked}\r\n onChange={onChange}\r\n disabled={disabled}\r\n size={size === \"sm\" ? \"small\" : \"medium\"}\r\n slotProps={{\r\n // MUI v9: the input slot bag forwards directly to the\r\n // internal <input type=\"checkbox\" role=\"switch\"/> element.\r\n // Was `inputProps={...}` at the Switch top level — deprecated\r\n // in v6, removed in v9.\r\n input: {\r\n \"aria-label\": ariaLabel,\r\n \"aria-describedby\": description ? descId : undefined,\r\n },\r\n }}\r\n sx={{\r\n \"& .MuiSwitch-thumb\": { boxShadow: \"var(--shadow-xs)\" },\r\n \"& .MuiSwitch-track\": {\r\n backgroundColor: \"var(--border-strong)\",\r\n opacity: 1,\r\n },\r\n \"& .Mui-checked + .MuiSwitch-track\": {\r\n backgroundColor: \"var(--accent) !important\",\r\n opacity: \"1 !important\",\r\n },\r\n // R-AI.1 - reuse the canonical focus halo token (Batch 1\r\n // shadows.focus → --shadow-focus). Hosts retuning the brand\r\n // accent automatically retune the Switch focus state too.\r\n \"& .MuiSwitch-switchBase.Mui-focusVisible .MuiSwitch-thumb\": {\r\n boxShadow: \"var(--shadow-focus)\",\r\n },\r\n ...sx,\r\n }}\r\n {...rest}\r\n />\r\n );\r\n\r\n if (!label && !description) return sw;\r\n\r\n const labelNode = (\r\n <Box sx={{ display: \"flex\", flexDirection: \"column\", paddingY: 0.25 }}>\r\n {label && (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n fontSize: \"var(--text-sm)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n color: \"var(--fg)\",\r\n }}\r\n >\r\n {label}\r\n </Box>\r\n )}\r\n {description && (\r\n <Box\r\n id={descId}\r\n component=\"span\"\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n lineHeight: \"var(--lh-normal)\",\r\n }}\r\n >\r\n {description}\r\n </Box>\r\n )}\r\n </Box>\r\n );\r\n\r\n return (\r\n <FormControlLabel\r\n control={sw}\r\n label={labelNode}\r\n labelPlacement={labelPlacement}\r\n disabled={disabled}\r\n sx={{\r\n margin: 0,\r\n gap: 1,\r\n alignItems: description ? \"flex-start\" : \"center\",\r\n }}\r\n />\r\n );\r\n});\r\n\r\nexport default Switch;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Switch.js","names":["React","_interopRequireWildcard","require","_Switch","_interopRequireDefault","_FormControlLabel","_Box","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Switch","forwardRef","checked","onChange","label","description","disabled","size","labelPlacement","sx","ariaLabel","rest","ref","descId","useId","process","env","console","warn","sw","jsx","slotProps","input","undefined","boxShadow","backgroundColor","opacity","labelNode","jsxs","display","flexDirection","paddingY","children","component","fontSize","fontWeight","color","id","lineHeight","control","margin","gap","alignItems","_default","exports"],"sources":["../../../src/lib/v2/components/Switch.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport MuiSwitch from \"@mui/material/Switch\";\r\nimport type { SwitchProps as MuiSwitchProps } from \"@mui/material/Switch\";\r\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\r\nimport Box from \"@mui/material/Box\";\r\n\r\n/**\r\n * Switch - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Switch / Toggle\". Binary on/off control with\r\n * IMMEDIATE effect. Use Checkbox instead for deferred choices that\r\n * take effect on form submission.\r\n *\r\n * <Switch\r\n * checked={notifications}\r\n * onChange={e => setNotifications(e.target.checked)}\r\n * label=\"Notifications par e-mail\"\r\n * description=\"Recevoir un e-mail à chaque nouvelle décision.\"\r\n * />\r\n *\r\n * Without a label (use only inside table cells / inline toggles where\r\n * the surrounding context provides the label):\r\n *\r\n * <Switch checked={v} onChange={...} aria-label=\"Activer le mode sombre\" />\r\n */\r\nexport interface SwitchProps extends Omit<MuiSwitchProps, \"size\"> {\r\n label?: React.ReactNode | undefined;\r\n description?: React.ReactNode | undefined;\r\n size?: \"sm\" | \"md\" | undefined;\r\n labelPlacement?: \"end\" | \"start\" | undefined;\r\n}\r\n\r\nconst Switch = React.forwardRef<React.ComponentRef<typeof MuiSwitch>, SwitchProps>(function Switch(\r\n {\r\n checked,\r\n onChange,\r\n label,\r\n description,\r\n disabled,\r\n size = \"md\",\r\n labelPlacement = \"end\",\r\n sx,\r\n \"aria-label\": ariaLabel,\r\n ...rest\r\n },\r\n ref,\r\n) {\r\n const descId = React.useId();\r\n\r\n if (process.env[\"NODE_ENV\"] !== \"production\" && !label && !ariaLabel) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n \"[@portnet/ui v2] <Switch> without `label` requires `aria-label` for screen readers.\",\r\n );\r\n }\r\n\r\n const sw = (\r\n <MuiSwitch\r\n ref={ref}\r\n checked={!!checked}\r\n onChange={onChange}\r\n disabled={disabled}\r\n size={size === \"sm\" ? \"small\" : \"medium\"}\r\n slotProps={{\r\n // MUI v9: the input slot bag forwards directly to the\r\n // internal <input type=\"checkbox\" role=\"switch\"/> element.\r\n // Was `inputProps={...}` at the Switch top level — deprecated\r\n // in v6, removed in v9.\r\n input: {\r\n \"aria-label\": ariaLabel,\r\n \"aria-describedby\": description ? descId : undefined,\r\n },\r\n }}\r\n sx={{\r\n \"& .MuiSwitch-thumb\": { boxShadow: \"var(--shadow-xs)\" },\r\n \"& .MuiSwitch-track\": {\r\n backgroundColor: \"var(--border-strong)\",\r\n opacity: 1,\r\n },\r\n \"& .Mui-checked + .MuiSwitch-track\": {\r\n backgroundColor: \"var(--accent) !important\",\r\n opacity: \"1 !important\",\r\n },\r\n // R-AI.1 - reuse the canonical focus halo token (Batch 1\r\n // shadows.focus → --shadow-focus). Hosts retuning the brand\r\n // accent automatically retune the Switch focus state too.\r\n \"& .MuiSwitch-switchBase.Mui-focusVisible .MuiSwitch-thumb\": {\r\n boxShadow: \"var(--shadow-focus)\",\r\n },\r\n ...sx,\r\n }}\r\n {...rest}\r\n />\r\n );\r\n\r\n if (!label && !description) return sw;\r\n\r\n const labelNode = (\r\n <Box sx={{ display: \"flex\", flexDirection: \"column\", paddingY: 0.25 }}>\r\n {label && (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n fontSize: \"var(--text-sm)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n color: \"var(--fg)\",\r\n }}\r\n >\r\n {label}\r\n </Box>\r\n )}\r\n {description && (\r\n <Box\r\n id={descId}\r\n component=\"span\"\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n lineHeight: \"var(--lh-normal)\",\r\n }}\r\n >\r\n {description}\r\n </Box>\r\n )}\r\n </Box>\r\n );\r\n\r\n return (\r\n <FormControlLabel\r\n control={sw}\r\n label={labelNode}\r\n labelPlacement={labelPlacement}\r\n disabled={disabled}\r\n sx={{\r\n margin: 0,\r\n gap: 1,\r\n alignItems: description ? \"flex-start\" : \"center\",\r\n }}\r\n />\r\n );\r\n});\r\n\r\nexport default Switch;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { SxProps, Theme } from "@mui/material/styles";
|
|
3
|
+
export interface TabPanelProps {
|
|
4
|
+
/**
|
|
5
|
+
* The `id` of the `TabItem` this panel belongs to — the same string passed to
|
|
6
|
+
* `Tabs.items`, NOT a DOM id. The DOM ids are derived here so the two halves
|
|
7
|
+
* of the contract cannot disagree.
|
|
8
|
+
*/
|
|
9
|
+
tabId: string;
|
|
10
|
+
children?: React.ReactNode | undefined;
|
|
11
|
+
/** @default true — see the APG note in the file header. */
|
|
12
|
+
focusable?: boolean | undefined;
|
|
13
|
+
sx?: SxProps<Theme> | undefined;
|
|
14
|
+
}
|
|
15
|
+
declare function TabPanel({ tabId, children, focusable, sx }: TabPanelProps): React.JSX.Element;
|
|
16
|
+
export default TabPanel;
|
|
17
|
+
//# sourceMappingURL=TabPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabPanel.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/TabPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAgE3D,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACvC,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;CACjC;AAED,iBAAS,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAgB,EAAE,EAAE,EAAE,EAAE,aAAa,qBAezE;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
9
|
+
var _Tabs = require("./Tabs");
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
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); }
|
|
13
|
+
/**
|
|
14
|
+
* TabPanel — Portnet UI v2
|
|
15
|
+
*
|
|
16
|
+
* The other half of `Tabs` (capability gap G-46).
|
|
17
|
+
*
|
|
18
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
19
|
+
* WHY THIS BELONGS IN THE LIBRARY
|
|
20
|
+
*
|
|
21
|
+
* `Tabs` emits HALF of the R-Ar.6 contract: every tab carries its own `id` and
|
|
22
|
+
* an `aria-controls` pointing at `pui-panel-<id>`. The element that must carry
|
|
23
|
+
* that id — with `role="tabpanel"` and an `aria-labelledby` back to the tab —
|
|
24
|
+
* was left entirely to the host, and the library shipped nothing for it.
|
|
25
|
+
*
|
|
26
|
+
* So the id format was PRIVATE knowledge every host had to re-spell as a
|
|
27
|
+
* literal. A typo there is invisible: the markup stays valid and the tab simply
|
|
28
|
+
* advertises a controlled element that does not exist. A BROKEN `aria-controls`
|
|
29
|
+
* is worse than none — assistive technology offers the user a relationship it
|
|
30
|
+
* then cannot follow.
|
|
31
|
+
*
|
|
32
|
+
* Raised from `addm-fe` (Area 5), whose consultation page rendered its panels
|
|
33
|
+
* as bare `{tab === "x" && <…/>}` conditionals: both tabs pointed at nothing,
|
|
34
|
+
* and the content had no role and no accessible name. That module wrote its own
|
|
35
|
+
* `TabPanel` by reading the id convention out of `Tabs.tsx` — which is the
|
|
36
|
+
* proof that the knowledge was required and unpublished.
|
|
37
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
38
|
+
*
|
|
39
|
+
* MOUNTING IS THE HOST'S DECISION, deliberately. This component does not take
|
|
40
|
+
* the active tab value and does not hide itself: a host that mounts panels
|
|
41
|
+
* conditionally (`{tab === "x" && <TabPanel …/>}`) keeps a light DOM, while one
|
|
42
|
+
* that needs to preserve panel state across switches renders them all and hides
|
|
43
|
+
* the inactive ones itself. Owning that choice here would force the second
|
|
44
|
+
* behaviour on everyone, and a `hidden` panel still in the DOM changes what a
|
|
45
|
+
* screen reader enumerates.
|
|
46
|
+
*
|
|
47
|
+
* `focusable` — APG requires a tabpanel to be focusable when it contains NO
|
|
48
|
+
* focusable element, so a keyboard user can reach the content after arrowing
|
|
49
|
+
* along the tablist. A panel of read-only `KV` text is exactly that case, and
|
|
50
|
+
* it is the common one on a consultation page, hence the default. The APG also
|
|
51
|
+
* permits applying it uniformly, which is why this is a boolean rather than
|
|
52
|
+
* something the host must reason about per panel.
|
|
53
|
+
*
|
|
54
|
+
* Usage:
|
|
55
|
+
*
|
|
56
|
+
* <Tabs value={tab} onChange={setTab} items={TABS} aria-label="Sections" />
|
|
57
|
+
*
|
|
58
|
+
* {tab === "infos" && (
|
|
59
|
+
* <TabPanel tabId="infos">
|
|
60
|
+
* <KVGrid>…</KVGrid>
|
|
61
|
+
* </TabPanel>
|
|
62
|
+
* )}
|
|
63
|
+
*/const FOCUS_SX = Object.freeze({
|
|
64
|
+
"&:focus-visible": {
|
|
65
|
+
outline: "2px solid var(--accent)",
|
|
66
|
+
outlineOffset: "var(--pui-outline-offset)"
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
function TabPanel({
|
|
70
|
+
tabId,
|
|
71
|
+
children,
|
|
72
|
+
focusable = true,
|
|
73
|
+
sx
|
|
74
|
+
}) {
|
|
75
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
76
|
+
role: "tabpanel",
|
|
77
|
+
id: (0, _Tabs.tabPanelDomId)(tabId),
|
|
78
|
+
"aria-labelledby": (0, _Tabs.tabDomId)(tabId),
|
|
79
|
+
...(focusable ? {
|
|
80
|
+
tabIndex: 0
|
|
81
|
+
} : {}),
|
|
82
|
+
sx: {
|
|
83
|
+
...(focusable ? FOCUS_SX : {}),
|
|
84
|
+
...sx
|
|
85
|
+
},
|
|
86
|
+
children: children
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
var _default = exports.default = TabPanel;
|
|
90
|
+
//# sourceMappingURL=TabPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabPanel.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_Tabs","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FOCUS_SX","freeze","outline","outlineOffset","TabPanel","tabId","children","focusable","sx","jsx","role","id","tabPanelDomId","tabDomId","tabIndex","_default","exports"],"sources":["../../../src/lib/v2/components/TabPanel.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 type { SystemStyleObject } from \"@mui/system\";\r\n\r\nimport { tabDomId, tabPanelDomId } from \"./Tabs\";\r\n\r\n/**\r\n * TabPanel — Portnet UI v2\r\n *\r\n * The other half of `Tabs` (capability gap G-46).\r\n *\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n * WHY THIS BELONGS IN THE LIBRARY\r\n *\r\n * `Tabs` emits HALF of the R-Ar.6 contract: every tab carries its own `id` and\r\n * an `aria-controls` pointing at `pui-panel-<id>`. The element that must carry\r\n * that id — with `role=\"tabpanel\"` and an `aria-labelledby` back to the tab —\r\n * was left entirely to the host, and the library shipped nothing for it.\r\n *\r\n * So the id format was PRIVATE knowledge every host had to re-spell as a\r\n * literal. A typo there is invisible: the markup stays valid and the tab simply\r\n * advertises a controlled element that does not exist. A BROKEN `aria-controls`\r\n * is worse than none — assistive technology offers the user a relationship it\r\n * then cannot follow.\r\n *\r\n * Raised from `addm-fe` (Area 5), whose consultation page rendered its panels\r\n * as bare `{tab === \"x\" && <…/>}` conditionals: both tabs pointed at nothing,\r\n * and the content had no role and no accessible name. That module wrote its own\r\n * `TabPanel` by reading the id convention out of `Tabs.tsx` — which is the\r\n * proof that the knowledge was required and unpublished.\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n *\r\n * MOUNTING IS THE HOST'S DECISION, deliberately. This component does not take\r\n * the active tab value and does not hide itself: a host that mounts panels\r\n * conditionally (`{tab === \"x\" && <TabPanel …/>}`) keeps a light DOM, while one\r\n * that needs to preserve panel state across switches renders them all and hides\r\n * the inactive ones itself. Owning that choice here would force the second\r\n * behaviour on everyone, and a `hidden` panel still in the DOM changes what a\r\n * screen reader enumerates.\r\n *\r\n * `focusable` — APG requires a tabpanel to be focusable when it contains NO\r\n * focusable element, so a keyboard user can reach the content after arrowing\r\n * along the tablist. A panel of read-only `KV` text is exactly that case, and\r\n * it is the common one on a consultation page, hence the default. The APG also\r\n * permits applying it uniformly, which is why this is a boolean rather than\r\n * something the host must reason about per panel.\r\n *\r\n * Usage:\r\n *\r\n * <Tabs value={tab} onChange={setTab} items={TABS} aria-label=\"Sections\" />\r\n *\r\n * {tab === \"infos\" && (\r\n * <TabPanel tabId=\"infos\">\r\n * <KVGrid>…</KVGrid>\r\n * </TabPanel>\r\n * )}\r\n */\r\n\r\nconst FOCUS_SX = Object.freeze({\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\nexport interface TabPanelProps {\r\n /**\r\n * The `id` of the `TabItem` this panel belongs to — the same string passed to\r\n * `Tabs.items`, NOT a DOM id. The DOM ids are derived here so the two halves\r\n * of the contract cannot disagree.\r\n */\r\n tabId: string;\r\n children?: React.ReactNode | undefined;\r\n /** @default true — see the APG note in the file header. */\r\n focusable?: boolean | undefined;\r\n sx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nfunction TabPanel({ tabId, children, focusable = true, sx }: TabPanelProps) {\r\n return (\r\n <Box\r\n role=\"tabpanel\"\r\n id={tabPanelDomId(tabId)}\r\n aria-labelledby={tabDomId(tabId)}\r\n {...(focusable ? { tabIndex: 0 } : {})}\r\n sx={{\r\n ...(focusable ? FOCUS_SX : {}),\r\n ...(sx as SystemStyleObject<Theme>),\r\n }}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default TabPanel;\r\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAC,sBAAA,CAAAF,OAAA;AAIA,IAAAG,KAAA,GAAAH,OAAA;AAAiD,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAV,uBAAA,YAAAA,CAAAM,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;AAEjD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAEA,MAAMgB,QAAQ,GAAGH,MAAM,CAACI,MAAM,CAAC;EAC7B,iBAAiB,EAAE;IACjBC,OAAO,EAAE,yBAAyB;IAClCC,aAAa,EAAE;EACjB;AACF,CAA0B,CAAC;AAe3B,SAASC,QAAQA,CAAC;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,SAAS,GAAG,IAAI;EAAEC;AAAkB,CAAC,EAAE;EAC1E,oBACE,IAAA5B,WAAA,CAAA6B,GAAA,EAAChC,IAAA,CAAAM,OAAG;IACF2B,IAAI,EAAC,UAAU;IACfC,EAAE,EAAE,IAAAC,mBAAa,EAACP,KAAK,CAAE;IACzB,mBAAiB,IAAAQ,cAAQ,EAACR,KAAK,CAAE;IAAA,IAC5BE,SAAS,GAAG;MAAEO,QAAQ,EAAE;IAAE,CAAC,GAAG,CAAC,CAAC;IACrCN,EAAE,EAAE;MACF,IAAID,SAAS,GAAGP,QAAQ,GAAG,CAAC,CAAC,CAAC;MAC9B,GAAIQ;IACN,CAAE;IAAAF,QAAA,EAEDA;EAAQ,CACN,CAAC;AAEV;AAAC,IAAAS,QAAA,GAAAC,OAAA,CAAAjC,OAAA,GAEcqB,QAAQ","ignoreList":[]}
|
|
@@ -44,6 +44,31 @@ export interface TabsProps {
|
|
|
44
44
|
items: TabItem[];
|
|
45
45
|
"aria-label"?: string | undefined;
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* DOM id of a tab, and of the panel it controls.
|
|
49
|
+
*
|
|
50
|
+
* ─── POURQUOI CES DEUX FONCTIONS SONT EXPORTÉES (gap G-46) ─────────────
|
|
51
|
+
*
|
|
52
|
+
* `Tabs` émet la MOITIÉ du contrat R-Ar.6 : chaque onglet porte son `id` et un
|
|
53
|
+
* `aria-controls` vers `pui-panel-<id>`. L'autre moitié — le panneau qui porte
|
|
54
|
+
* ce même id, `role="tabpanel"` et `aria-labelledby` — appartient à l'hôte, et
|
|
55
|
+
* la library ne la fournissait pas.
|
|
56
|
+
*
|
|
57
|
+
* Le format des ids était donc une connaissance PRIVÉE que chaque hôte devait
|
|
58
|
+
* redupliquer en chaîne littérale. Une faute de frappe y est invisible : le
|
|
59
|
+
* balisage reste valide, l'onglet annonce simplement un élément contrôlé qui
|
|
60
|
+
* n'existe pas — et un `aria-controls` cassé est PIRE que son absence, puisque
|
|
61
|
+
* la technologie d'assistance propose à l'utilisateur une relation qu'elle ne
|
|
62
|
+
* peut ensuite pas suivre.
|
|
63
|
+
*
|
|
64
|
+
* Relevé depuis `addm-fe` (Area 5), où `ConsultDemande` rendait ses panneaux en
|
|
65
|
+
* `{tab === "x" && <…/>}` nus : les deux onglets pointaient dans le vide, sans
|
|
66
|
+
* `role` ni nom accessible sur le contenu. Le module avait écrit son propre
|
|
67
|
+
* `TabPanel` en relisant la convention dans CE fichier — preuve que la
|
|
68
|
+
* connaissance était requise et non publiée.
|
|
69
|
+
*/
|
|
70
|
+
export declare const tabDomId: (id: string) => string;
|
|
71
|
+
export declare const tabPanelDomId: (id: string) => string;
|
|
47
72
|
declare function Tabs({ value, onChange, items, "aria-label": ariaLabel }: TabsProps): React.JSX.Element;
|
|
48
73
|
export default Tabs;
|
|
49
74
|
//# sourceMappingURL=Tabs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;CAC/D;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACjD,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;CAC/D;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACjD,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,QAAQ,GAAI,IAAI,MAAM,KAAG,MAAyB,CAAC;AAChE,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,KAAG,MAA2B,CAAC;AAuEvE,iBAAS,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,SAAsB,EAAE,EAAE,SAAS,qBAgDxF;AAED,eAAe,IAAI,CAAC"}
|