@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,15 +1,3 @@
|
|
|
1
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
7
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
8
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
-
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); }
|
|
10
|
-
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; }
|
|
11
|
-
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
12
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
13
1
|
import * as React from "react";
|
|
14
2
|
import Box from "@mui/material/Box";
|
|
15
3
|
import IconButton from "@mui/material/IconButton";
|
|
@@ -63,9 +51,17 @@ import { mergeLabels } from "../utils/mergeLabels";
|
|
|
63
51
|
* recommended when the toolbar has enough horizontal space and the
|
|
64
52
|
* affordance benefits from a named action (e.g. "Configurer").
|
|
65
53
|
* When omitted, the trigger falls back to the compact IconButton.
|
|
54
|
+
*
|
|
55
|
+
* D-8: in that named form the button is NOT given an aria-label.
|
|
56
|
+
* It used to carry `labels.button` as well, and aria-label wins over
|
|
57
|
+
* visible text — so the trigger displayed "Configurer" and announced
|
|
58
|
+
* "Options du tableau", failing WCAG 2.5.3 Label in Name and breaking
|
|
59
|
+
* voice control ("click Configurer" matched nothing). The button's own
|
|
60
|
+
* text now names it, so the two agree by construction. `labels.button`
|
|
61
|
+
* still names the icon-only trigger, where it is the only naming route.
|
|
66
62
|
*/
|
|
67
63
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
68
|
-
|
|
64
|
+
const DEFAULT_LABELS = Object.freeze({
|
|
69
65
|
button: "Options du tableau",
|
|
70
66
|
title: "Options du tableau",
|
|
71
67
|
columnsHeading: "Affichage des colonnes",
|
|
@@ -81,7 +77,7 @@ var DEFAULT_LABELS = Object.freeze({
|
|
|
81
77
|
* label-only fallback exists to keep this component crash-free.
|
|
82
78
|
* (Frozen for defensiveness; typed mutable via one readonly→mutable
|
|
83
79
|
* assertion since Segmented reads options and never mutates.) */
|
|
84
|
-
|
|
80
|
+
const FALLBACK_DENSITY_OPTIONS = Object.freeze([{
|
|
85
81
|
value: "comfortable",
|
|
86
82
|
label: "Confortable"
|
|
87
83
|
}, {
|
|
@@ -91,12 +87,12 @@ var FALLBACK_DENSITY_OPTIONS = Object.freeze([{
|
|
|
91
87
|
|
|
92
88
|
/* ── Hoisted sx (D5) ──────────────────────────────────────────────── */
|
|
93
89
|
|
|
94
|
-
|
|
90
|
+
const POPOVER_PAPER_SX = Object.freeze({
|
|
95
91
|
borderRadius: "var(--r-lg)",
|
|
96
92
|
boxShadow: "var(--shadow-md)",
|
|
97
93
|
border: "1px solid var(--border)"
|
|
98
94
|
});
|
|
99
|
-
|
|
95
|
+
const POPOVER_BODY_SX = Object.freeze({
|
|
100
96
|
padding: "var(--s-3) var(--s-4)",
|
|
101
97
|
minWidth: 280,
|
|
102
98
|
maxHeight: 480,
|
|
@@ -105,7 +101,7 @@ var POPOVER_BODY_SX = Object.freeze({
|
|
|
105
101
|
flexDirection: "column",
|
|
106
102
|
gap: "var(--s-2)"
|
|
107
103
|
});
|
|
108
|
-
|
|
104
|
+
const SECTION_HEADING_SX = Object.freeze({
|
|
109
105
|
fontSize: "var(--text-xs)",
|
|
110
106
|
fontWeight: "var(--fw-semibold)",
|
|
111
107
|
color: "var(--fg-muted)",
|
|
@@ -114,17 +110,17 @@ var SECTION_HEADING_SX = Object.freeze({
|
|
|
114
110
|
paddingBottom: "var(--s-2)",
|
|
115
111
|
borderBottom: "1px solid var(--border)"
|
|
116
112
|
});
|
|
117
|
-
|
|
113
|
+
const SECTION_BODY_SX = Object.freeze({
|
|
118
114
|
display: "flex",
|
|
119
115
|
flexDirection: "column",
|
|
120
116
|
gap: "var(--s-1)",
|
|
121
117
|
paddingTop: "var(--s-2)",
|
|
122
118
|
paddingBottom: "var(--s-2)"
|
|
123
119
|
});
|
|
124
|
-
|
|
120
|
+
const SECTION_SEPARATOR_SX = Object.freeze({
|
|
125
121
|
borderTop: "1px solid var(--border)"
|
|
126
122
|
});
|
|
127
|
-
|
|
123
|
+
const CHECKBOX_LABEL_SX = Object.freeze({
|
|
128
124
|
marginLeft: 0,
|
|
129
125
|
marginRight: 0,
|
|
130
126
|
"& .MuiFormControlLabel-label": {
|
|
@@ -132,13 +128,13 @@ var CHECKBOX_LABEL_SX = Object.freeze({
|
|
|
132
128
|
color: "var(--fg)"
|
|
133
129
|
}
|
|
134
130
|
});
|
|
135
|
-
|
|
131
|
+
const COLUMNS_FOOTER_SX = Object.freeze({
|
|
136
132
|
display: "flex",
|
|
137
133
|
justifyContent: "space-between",
|
|
138
134
|
gap: "var(--s-2)",
|
|
139
135
|
paddingTop: "var(--s-1)"
|
|
140
136
|
});
|
|
141
|
-
|
|
137
|
+
const BADGE_SX = Object.freeze({
|
|
142
138
|
position: "absolute",
|
|
143
139
|
top: 2,
|
|
144
140
|
insetInlineEnd: 2,
|
|
@@ -147,90 +143,79 @@ var BADGE_SX = Object.freeze({
|
|
|
147
143
|
borderRadius: "var(--r-full)",
|
|
148
144
|
background: "var(--accent)"
|
|
149
145
|
});
|
|
150
|
-
function DataGridSettingsMenu(
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
anchor = _React$useState2[0],
|
|
163
|
-
setAnchor = _React$useState2[1];
|
|
146
|
+
function DataGridSettingsMenu({
|
|
147
|
+
columns,
|
|
148
|
+
hiddenColumns,
|
|
149
|
+
onHiddenColumnsChange,
|
|
150
|
+
density,
|
|
151
|
+
onDensityChange,
|
|
152
|
+
densityOptions,
|
|
153
|
+
labels,
|
|
154
|
+
label
|
|
155
|
+
}) {
|
|
156
|
+
const L = mergeLabels(DEFAULT_LABELS, labels);
|
|
157
|
+
const [anchor, setAnchor] = React.useState(null);
|
|
164
158
|
|
|
165
159
|
// Normalise hiddenColumns to a Set once. Same contract as DataGrid
|
|
166
160
|
// / ColumnsToggle — accepts Set or Array (or undefined).
|
|
167
|
-
|
|
168
|
-
return hiddenColumns instanceof Set ? hiddenColumns : new Set(hiddenColumns || []);
|
|
169
|
-
}, [hiddenColumns]);
|
|
161
|
+
const hiddenSet = React.useMemo(() => hiddenColumns instanceof Set ? hiddenColumns : new Set(hiddenColumns || []), [hiddenColumns]);
|
|
170
162
|
|
|
171
163
|
// Toggleable subset — the only columns this UI exposes. System-
|
|
172
164
|
// pinned columns (col.toggleable === false) are excluded entirely.
|
|
173
|
-
|
|
174
|
-
return columns.filter(function (c) {
|
|
175
|
-
return c.toggleable !== false;
|
|
176
|
-
});
|
|
177
|
-
}, [columns]);
|
|
165
|
+
const toggleableColumns = React.useMemo(() => columns.filter(c => c.toggleable !== false), [columns]);
|
|
178
166
|
|
|
179
167
|
// Count among toggleable for the trigger badge dot.
|
|
180
|
-
|
|
181
|
-
return toggleableColumns.filter(function (c) {
|
|
182
|
-
return hiddenSet.has(c.key);
|
|
183
|
-
}).length;
|
|
184
|
-
}, [toggleableColumns, hiddenSet]);
|
|
168
|
+
const hiddenCount = React.useMemo(() => toggleableColumns.filter(c => hiddenSet.has(c.key)).length, [toggleableColumns, hiddenSet]);
|
|
185
169
|
|
|
186
170
|
// Indicates the user has changed something from defaults — used
|
|
187
171
|
// to surface a discreet badge dot on the trigger. We use a single
|
|
188
172
|
// visual dot rather than a numeric badge because there are TWO
|
|
189
173
|
// pref axes (columns + density) that contribute; a counter would
|
|
190
174
|
// be misleading.
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
};
|
|
199
|
-
var toggleColumn = function toggleColumn(key) {
|
|
200
|
-
var next = new Set(hiddenSet);
|
|
201
|
-
if (next.has(key)) next["delete"](key);else next.add(key);
|
|
175
|
+
const hasCustomisation = hiddenCount > 0 || density != null && density !== "comfortable";
|
|
176
|
+
const open = Boolean(anchor);
|
|
177
|
+
const handleOpen = e => setAnchor(e.currentTarget);
|
|
178
|
+
const handleClose = () => setAnchor(null);
|
|
179
|
+
const toggleColumn = key => {
|
|
180
|
+
const next = new Set(hiddenSet);
|
|
181
|
+
if (next.has(key)) next.delete(key);else next.add(key);
|
|
202
182
|
onHiddenColumnsChange(next);
|
|
203
183
|
};
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
var hideAll = function hideAll() {
|
|
208
|
-
return onHiddenColumnsChange(new Set(toggleableColumns.map(function (c) {
|
|
209
|
-
return c.key;
|
|
210
|
-
})));
|
|
211
|
-
};
|
|
212
|
-
var effectiveDensityOptions = densityOptions || FALLBACK_DENSITY_OPTIONS;
|
|
184
|
+
const showAll = () => onHiddenColumnsChange(new Set());
|
|
185
|
+
const hideAll = () => onHiddenColumnsChange(new Set(toggleableColumns.map(c => c.key)));
|
|
186
|
+
const effectiveDensityOptions = densityOptions || FALLBACK_DENSITY_OPTIONS;
|
|
213
187
|
|
|
214
188
|
// MUI v9: slot bag for the Popover paper. Carries the dialog
|
|
215
189
|
// ARIA contract (role + aria-label) — host-customisable via the
|
|
216
190
|
// `labels.title` override. Memoised so the slotProps reference
|
|
217
191
|
// stays stable when L.title is unchanged.
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
};
|
|
226
|
-
}, [L.title]);
|
|
192
|
+
const popoverSlotProps = React.useMemo(() => ({
|
|
193
|
+
paper: {
|
|
194
|
+
sx: POPOVER_PAPER_SX,
|
|
195
|
+
role: "dialog",
|
|
196
|
+
"aria-label": L.title
|
|
197
|
+
}
|
|
198
|
+
}), [L.title]);
|
|
227
199
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
228
200
|
children: [label ?
|
|
229
201
|
/*#__PURE__*/
|
|
230
202
|
/* Named trigger — renders a v2.Button with icon + text label.
|
|
231
203
|
* Used when the toolbar benefits from an explicit action name
|
|
232
204
|
* (e.g. "Configurer"). Badge dot uses absolute positioning
|
|
233
|
-
* inside the button's bounding box via sx={{ position: "relative" }}.
|
|
205
|
+
* inside the button's bounding box via sx={{ position: "relative" }}.
|
|
206
|
+
*
|
|
207
|
+
* D-8 — NO aria-label here. It previously carried L.button, which
|
|
208
|
+
* overrides visible text as the accessible name, so the trigger
|
|
209
|
+
* showed "Configurer" and announced "Options du tableau": a WCAG
|
|
210
|
+
* 2.5.3 Label in Name failure that breaks voice control. The
|
|
211
|
+
* button's own text is the name now, so the two cannot diverge.
|
|
212
|
+
*
|
|
213
|
+
* ColumnsToggle solves the same problem by building
|
|
214
|
+
* `${button}, ${countSuffix(n)}` — an accessible name that CONTAINS
|
|
215
|
+
* the visible text. That works there because one countable axis
|
|
216
|
+
* feeds its badge. Here the badge is deliberately a dot rather than
|
|
217
|
+
* a count (two axes contribute), so there is no honest state string
|
|
218
|
+
* to append and omitting the override is the right form of the rule. */
|
|
234
219
|
_jsxs(Box, {
|
|
235
220
|
sx: {
|
|
236
221
|
position: "relative",
|
|
@@ -244,23 +229,24 @@ function DataGridSettingsMenu(_ref) {
|
|
|
244
229
|
fontSize: "small"
|
|
245
230
|
}),
|
|
246
231
|
onClick: handleOpen,
|
|
247
|
-
"aria-label": L.button,
|
|
248
232
|
"aria-haspopup": "dialog",
|
|
249
233
|
"aria-expanded": open,
|
|
250
234
|
children: label
|
|
251
235
|
}), hasCustomisation && /*#__PURE__*/_jsx(Box, {
|
|
252
236
|
component: "span",
|
|
253
|
-
sx:
|
|
237
|
+
sx: {
|
|
238
|
+
...BADGE_SX,
|
|
254
239
|
top: 4,
|
|
255
240
|
insetInlineEnd: 4,
|
|
256
241
|
pointerEvents: "none"
|
|
257
|
-
}
|
|
242
|
+
},
|
|
258
243
|
"aria-hidden": "true"
|
|
259
244
|
})]
|
|
260
245
|
}) :
|
|
261
246
|
/*#__PURE__*/
|
|
262
247
|
/* Icon-only trigger — compact fallback for callers that don't
|
|
263
|
-
* pass a label (backward-compatible default).
|
|
248
|
+
* pass a label (backward-compatible default). Here `L.button` IS
|
|
249
|
+
* the only naming route, which is what aria-label is for. */
|
|
264
250
|
_jsxs(IconButton, {
|
|
265
251
|
size: "small",
|
|
266
252
|
type: "button",
|
|
@@ -305,20 +291,18 @@ function DataGridSettingsMenu(_ref) {
|
|
|
305
291
|
children: L.columnsHeading
|
|
306
292
|
}), /*#__PURE__*/_jsx(Box, {
|
|
307
293
|
sx: SECTION_BODY_SX,
|
|
308
|
-
children: toggleableColumns.map(
|
|
309
|
-
|
|
294
|
+
children: toggleableColumns.map(col => {
|
|
295
|
+
const isVisible = !hiddenSet.has(col.key);
|
|
310
296
|
// DGS-1 — accessible name = the header's visible text (reuses
|
|
311
297
|
// ColumnsToggle's SET-1 extractor) so it matches the rendered
|
|
312
298
|
// label (WCAG 2.5.3); only icon-only headers fall back to key.
|
|
313
|
-
|
|
314
|
-
|
|
299
|
+
const headerText = extractHeaderText(col.header).trim();
|
|
300
|
+
const labelText = headerText || col.key;
|
|
315
301
|
return /*#__PURE__*/_jsx(FormControlLabel, {
|
|
316
302
|
control: /*#__PURE__*/_jsx(Checkbox, {
|
|
317
303
|
size: "small",
|
|
318
304
|
checked: isVisible,
|
|
319
|
-
onChange:
|
|
320
|
-
return toggleColumn(col.key);
|
|
321
|
-
},
|
|
305
|
+
onChange: () => toggleColumn(col.key),
|
|
322
306
|
slotProps: {
|
|
323
307
|
input: {
|
|
324
308
|
"aria-label": labelText
|
|
@@ -357,10 +341,8 @@ function DataGridSettingsMenu(_ref) {
|
|
|
357
341
|
}), /*#__PURE__*/_jsx(Box, {
|
|
358
342
|
sx: SECTION_BODY_SX,
|
|
359
343
|
children: /*#__PURE__*/_jsx(Segmented, {
|
|
360
|
-
value: density
|
|
361
|
-
onChange:
|
|
362
|
-
return onDensityChange(value);
|
|
363
|
-
},
|
|
344
|
+
value: density ?? "comfortable",
|
|
345
|
+
onChange: value => onDensityChange(value),
|
|
364
346
|
options: effectiveDensityOptions,
|
|
365
347
|
size: "sm",
|
|
366
348
|
"aria-label": L.densityAriaLabel
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridSettingsMenu.js","names":["React","Box","IconButton","Popover","Checkbox","FormControlLabel","TuneIcon","Button","Segmented","extractHeaderText","mergeLabels","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_LABELS","Object","freeze","button","title","columnsHeading","densityHeading","showAll","hideAll","densityAriaLabel","FALLBACK_DENSITY_OPTIONS","value","label","POPOVER_PAPER_SX","borderRadius","boxShadow","border","POPOVER_BODY_SX","padding","minWidth","maxHeight","overflowY","display","flexDirection","gap","SECTION_HEADING_SX","fontSize","fontWeight","color","textTransform","letterSpacing","paddingBottom","borderBottom","SECTION_BODY_SX","paddingTop","SECTION_SEPARATOR_SX","borderTop","CHECKBOX_LABEL_SX","marginLeft","marginRight","COLUMNS_FOOTER_SX","justifyContent","BADGE_SX","position","top","insetInlineEnd","width","height","background","DataGridSettingsMenu","_ref","columns","hiddenColumns","onHiddenColumnsChange","density","onDensityChange","densityOptions","labels","L","_React$useState","useState","_React$useState2","_slicedToArray","anchor","setAnchor","hiddenSet","useMemo","Set","toggleableColumns","filter","c","toggleable","hiddenCount","has","key","length","hasCustomisation","open","Boolean","handleOpen","e","currentTarget","handleClose","toggleColumn","next","add","map","effectiveDensityOptions","popoverSlotProps","paper","sx","role","children","size","variant","type","icon","onClick","component","_objectSpread","pointerEvents","anchorEl","onClose","anchorOrigin","vertical","horizontal","transformOrigin","slotProps","col","isVisible","headerText","header","trim","labelText","control","checked","onChange","input","disabled","options"],"sources":["../../../../src/lib/v2/patterns/DataGridSettingsMenu.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport Popover from \"@mui/material/Popover\";\r\nimport Checkbox from \"@mui/material/Checkbox\";\r\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\r\nimport TuneIcon from \"@mui/icons-material/Tune\";\r\nimport Button from \"../components/Button\";\r\nimport Segmented from \"../components/Segmented\";\r\nimport type { SegmentedOption } from \"../components/Segmented\";\r\nimport { extractHeaderText } from \"./ColumnsToggle\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { Density } from \"../types/common\";\r\nimport type { DataGridColumn } from \"../types/datagrid\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * DataGridSettingsMenu - Portnet UI v2 (pattern)\r\n *\r\n * Combined \"table options\" popover wrapping two DataGrid-adjacent\r\n * preferences: column visibility and row density. Single trigger\r\n * (Tune icon button) opens a popover with both sections inline.\r\n *\r\n * <DataGridSettingsMenu\r\n * columns={cols}\r\n * hiddenColumns={hiddenSet}\r\n * onHiddenColumnsChange={setHiddenSet}\r\n * density={density}\r\n * onDensityChange={setDensity}\r\n * densityOptions={DENSITY_OPTIONS}\r\n * label=\"Configurer\" // optional — shows text label on trigger\r\n * />\r\n *\r\n * Use this when the host wants BOTH affordances behind one\r\n * compact toolbar entry. For columns-only use cases, prefer the\r\n * atomic `<ColumnsToggle>` pattern.\r\n *\r\n * The component is pure presentation — host owns the state for\r\n * both columns visibility (hiddenColumns Set) and density (the\r\n * current value, typically \"comfortable\" or \"compact\").\r\n *\r\n * Mental model: checkbox represents VISIBILITY (checked = visible,\r\n * not in hiddenSet). Same contract as ColumnsToggle to avoid\r\n * cognitive load when a host switches between the two patterns.\r\n *\r\n * `col.toggleable: false` on a column excludes it from the popover\r\n * entirely — useful for identity columns or system-pinned columns\r\n * that should not be user-hideable. DataGrid itself doesn't read\r\n * this flag; it's a contract between the host schema and any\r\n * settings-UI consumer.\r\n *\r\n * `label` prop (optional string):\r\n * When provided, the trigger becomes a v2.Button (secondary, sm)\r\n * with the icon + text label visible in the toolbar. This is\r\n * recommended when the toolbar has enough horizontal space and the\r\n * affordance benefits from a named action (e.g. \"Configurer\").\r\n * When omitted, the trigger falls back to the compact IconButton.\r\n */\r\n\r\nexport interface DataGridSettingsMenuLabels {\r\n button?: string | undefined;\r\n title?: string | undefined;\r\n columnsHeading?: string | undefined;\r\n densityHeading?: string | undefined;\r\n showAll?: string | undefined;\r\n hideAll?: string | undefined;\r\n densityAriaLabel?: string | undefined;\r\n}\r\n\r\nexport interface DataGridSettingsMenuProps {\r\n columns: ReadonlyArray<Pick<DataGridColumn<unknown>, \"key\" | \"header\" | \"toggleable\">>;\r\n hiddenColumns?: Set<string> | string[] | undefined;\r\n onHiddenColumnsChange: (hidden: Set<string>) => void;\r\n density?: Density | undefined;\r\n onDensityChange: (density: Density) => void;\r\n densityOptions?: SegmentedOption[] | undefined;\r\n labels?: DataGridSettingsMenuLabels | undefined;\r\n label?: string | undefined;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n button: \"Options du tableau\",\r\n title: \"Options du tableau\",\r\n columnsHeading: \"Affichage des colonnes\",\r\n densityHeading: \"Densité d'affichage\",\r\n showAll: \"Tout afficher\",\r\n hideAll: \"Tout masquer\",\r\n densityAriaLabel: \"Densité d'affichage\",\r\n});\r\n\r\n/* ── Default density options ─────────────────────────────────────────\r\n * Used only when the host doesn't pass its own densityOptions.\r\n * Hosts SHOULD pass an icon-laden version for visual richness; the\r\n * label-only fallback exists to keep this component crash-free.\r\n * (Frozen for defensiveness; typed mutable via one readonly→mutable\r\n * assertion since Segmented reads options and never mutates.) */\r\nconst FALLBACK_DENSITY_OPTIONS: SegmentedOption[] = Object.freeze([\r\n { value: \"comfortable\", label: \"Confortable\" },\r\n { value: \"compact\", label: \"Compact\" },\r\n]) as SegmentedOption[];\r\n\r\n/* ── Hoisted sx (D5) ──────────────────────────────────────────────── */\r\n\r\nconst POPOVER_PAPER_SX = Object.freeze({\r\n borderRadius: \"var(--r-lg)\",\r\n boxShadow: \"var(--shadow-md)\",\r\n border: \"1px solid var(--border)\",\r\n});\r\n\r\nconst POPOVER_BODY_SX = Object.freeze({\r\n padding: \"var(--s-3) var(--s-4)\",\r\n minWidth: 280,\r\n maxHeight: 480,\r\n overflowY: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst SECTION_HEADING_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg-muted)\",\r\n textTransform: \"uppercase\",\r\n letterSpacing: \"0.04em\",\r\n paddingBottom: \"var(--s-2)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst SECTION_BODY_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-1)\",\r\n paddingTop: \"var(--s-2)\",\r\n paddingBottom: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst SECTION_SEPARATOR_SX = Object.freeze({\r\n borderTop: \"1px solid var(--border)\",\r\n});\r\n\r\nconst CHECKBOX_LABEL_SX = Object.freeze({\r\n marginLeft: 0,\r\n marginRight: 0,\r\n \"& .MuiFormControlLabel-label\": {\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg)\",\r\n },\r\n});\r\n\r\nconst COLUMNS_FOOTER_SX = Object.freeze({\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n paddingTop: \"var(--s-1)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst BADGE_SX = Object.freeze({\r\n position: \"absolute\",\r\n top: 2,\r\n insetInlineEnd: 2,\r\n width: 8,\r\n height: 8,\r\n borderRadius: \"var(--r-full)\",\r\n background: \"var(--accent)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nfunction DataGridSettingsMenu({\r\n columns,\r\n hiddenColumns,\r\n onHiddenColumnsChange,\r\n density,\r\n onDensityChange,\r\n densityOptions,\r\n labels,\r\n label,\r\n}: DataGridSettingsMenuProps) {\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n const [anchor, setAnchor] = React.useState<HTMLElement | null>(null);\r\n\r\n // Normalise hiddenColumns to a Set once. Same contract as DataGrid\r\n // / ColumnsToggle — accepts Set or Array (or undefined).\r\n const hiddenSet = React.useMemo(\r\n () =>\r\n hiddenColumns instanceof Set\r\n ? hiddenColumns\r\n : new Set(hiddenColumns || []),\r\n [hiddenColumns]\r\n );\r\n\r\n // Toggleable subset — the only columns this UI exposes. System-\r\n // pinned columns (col.toggleable === false) are excluded entirely.\r\n const toggleableColumns = React.useMemo(\r\n () => columns.filter((c) => c.toggleable !== false),\r\n [columns]\r\n );\r\n\r\n // Count among toggleable for the trigger badge dot.\r\n const hiddenCount = React.useMemo(\r\n () => toggleableColumns.filter((c) => hiddenSet.has(c.key)).length,\r\n [toggleableColumns, hiddenSet]\r\n );\r\n\r\n // Indicates the user has changed something from defaults — used\r\n // to surface a discreet badge dot on the trigger. We use a single\r\n // visual dot rather than a numeric badge because there are TWO\r\n // pref axes (columns + density) that contribute; a counter would\r\n // be misleading.\r\n const hasCustomisation =\r\n hiddenCount > 0 ||\r\n (density != null && density !== \"comfortable\");\r\n\r\n const open = Boolean(anchor);\r\n\r\n const handleOpen = (e: React.MouseEvent<HTMLButtonElement>) => setAnchor(e.currentTarget);\r\n const handleClose = () => setAnchor(null);\r\n\r\n const toggleColumn = (key: string) => {\r\n const next = new Set(hiddenSet);\r\n if (next.has(key)) next.delete(key);\r\n else next.add(key);\r\n onHiddenColumnsChange(next);\r\n };\r\n\r\n const showAll = () => onHiddenColumnsChange(new Set<string>());\r\n const hideAll = () =>\r\n onHiddenColumnsChange(new Set(toggleableColumns.map((c) => c.key)));\r\n\r\n const effectiveDensityOptions = densityOptions || FALLBACK_DENSITY_OPTIONS;\r\n\r\n // MUI v9: slot bag for the Popover paper. Carries the dialog\r\n // ARIA contract (role + aria-label) — host-customisable via the\r\n // `labels.title` override. Memoised so the slotProps reference\r\n // stays stable when L.title is unchanged.\r\n const popoverSlotProps = React.useMemo(\r\n () => ({\r\n paper: {\r\n sx: POPOVER_PAPER_SX,\r\n role: \"dialog\",\r\n \"aria-label\": L.title,\r\n },\r\n }),\r\n [L.title]\r\n );\r\n\r\n return (\r\n <>\r\n {label ? (\r\n /* Named trigger — renders a v2.Button with icon + text label.\r\n * Used when the toolbar benefits from an explicit action name\r\n * (e.g. \"Configurer\"). Badge dot uses absolute positioning\r\n * inside the button's bounding box via sx={{ position: \"relative\" }}. */\r\n <Box sx={{ position: \"relative\", display: \"inline-flex\" }}>\r\n <Button\r\n size=\"sm\"\r\n variant=\"secondary\"\r\n type=\"button\"\r\n icon={<TuneIcon fontSize=\"small\" />}\r\n onClick={handleOpen}\r\n aria-label={L.button}\r\n aria-haspopup=\"dialog\"\r\n aria-expanded={open}\r\n >\r\n {label}\r\n </Button>\r\n {hasCustomisation && (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n ...BADGE_SX,\r\n top: 4,\r\n insetInlineEnd: 4,\r\n pointerEvents: \"none\",\r\n }}\r\n aria-hidden=\"true\"\r\n />\r\n )}\r\n </Box>\r\n ) : (\r\n /* Icon-only trigger — compact fallback for callers that don't\r\n * pass a label (backward-compatible default). */\r\n <IconButton\r\n size=\"small\"\r\n type=\"button\"\r\n onClick={handleOpen}\r\n aria-label={L.button}\r\n aria-haspopup=\"dialog\"\r\n aria-expanded={open}\r\n sx={{\r\n color: \"var(--fg-muted)\",\r\n position: \"relative\",\r\n \"&:hover\": {\r\n background: \"var(--bg-hover)\",\r\n color: \"var(--fg)\",\r\n },\r\n }}\r\n >\r\n <TuneIcon fontSize=\"small\" />\r\n {hasCustomisation && (\r\n <Box component=\"span\" sx={BADGE_SX} aria-hidden=\"true\" />\r\n )}\r\n </IconButton>\r\n )}\r\n\r\n <Popover\r\n open={open}\r\n anchorEl={anchor}\r\n onClose={handleClose}\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n transformOrigin={{ vertical: \"top\", horizontal: \"right\" }}\r\n slotProps={popoverSlotProps}\r\n >\r\n <Box sx={POPOVER_BODY_SX}>\r\n {/* ── Section: Columns ─────────────────────────────────── */}\r\n <Box>\r\n <Box component=\"div\" sx={SECTION_HEADING_SX}>\r\n {L.columnsHeading}\r\n </Box>\r\n <Box sx={SECTION_BODY_SX}>\r\n {toggleableColumns.map((col) => {\r\n const isVisible = !hiddenSet.has(col.key);\r\n // DGS-1 — accessible name = the header's visible text (reuses\r\n // ColumnsToggle's SET-1 extractor) so it matches the rendered\r\n // label (WCAG 2.5.3); only icon-only headers fall back to key.\r\n const headerText = extractHeaderText(col.header).trim();\r\n const labelText = headerText || col.key;\r\n return (\r\n <FormControlLabel\r\n key={col.key}\r\n control={\r\n <Checkbox\r\n size=\"small\"\r\n checked={isVisible}\r\n onChange={() => toggleColumn(col.key)}\r\n slotProps={{\r\n input: { \"aria-label\": labelText },\r\n }}\r\n />\r\n }\r\n label={col.header}\r\n sx={CHECKBOX_LABEL_SX}\r\n />\r\n );\r\n })}\r\n </Box>\r\n <Box sx={COLUMNS_FOOTER_SX}>\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n type=\"button\"\r\n onClick={showAll}\r\n disabled={hiddenCount === 0}\r\n >\r\n {L.showAll}\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n type=\"button\"\r\n onClick={hideAll}\r\n disabled={hiddenCount === toggleableColumns.length}\r\n >\r\n {L.hideAll}\r\n </Button>\r\n </Box>\r\n </Box>\r\n\r\n {/* ── Section separator ─────────────────────────────────── */}\r\n <Box sx={SECTION_SEPARATOR_SX} />\r\n\r\n {/* ── Section: Density ─────────────────────────────────── */}\r\n <Box>\r\n <Box component=\"div\" sx={SECTION_HEADING_SX}>\r\n {L.densityHeading}\r\n </Box>\r\n <Box sx={SECTION_BODY_SX}>\r\n <Segmented\r\n value={density ?? \"comfortable\"}\r\n onChange={(value) => onDensityChange(value as Density)}\r\n options={effectiveDensityOptions}\r\n size=\"sm\"\r\n aria-label={L.densityAriaLabel}\r\n />\r\n </Box>\r\n </Box>\r\n </Box>\r\n </Popover>\r\n </>\r\n );\r\n}\r\n\r\nexport default DataGridSettingsMenu;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DataGridSettingsMenu.js","names":["React","Box","IconButton","Popover","Checkbox","FormControlLabel","TuneIcon","Button","Segmented","extractHeaderText","mergeLabels","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_LABELS","Object","freeze","button","title","columnsHeading","densityHeading","showAll","hideAll","densityAriaLabel","FALLBACK_DENSITY_OPTIONS","value","label","POPOVER_PAPER_SX","borderRadius","boxShadow","border","POPOVER_BODY_SX","padding","minWidth","maxHeight","overflowY","display","flexDirection","gap","SECTION_HEADING_SX","fontSize","fontWeight","color","textTransform","letterSpacing","paddingBottom","borderBottom","SECTION_BODY_SX","paddingTop","SECTION_SEPARATOR_SX","borderTop","CHECKBOX_LABEL_SX","marginLeft","marginRight","COLUMNS_FOOTER_SX","justifyContent","BADGE_SX","position","top","insetInlineEnd","width","height","background","DataGridSettingsMenu","columns","hiddenColumns","onHiddenColumnsChange","density","onDensityChange","densityOptions","labels","L","anchor","setAnchor","useState","hiddenSet","useMemo","Set","toggleableColumns","filter","c","toggleable","hiddenCount","has","key","length","hasCustomisation","open","Boolean","handleOpen","e","currentTarget","handleClose","toggleColumn","next","delete","add","map","effectiveDensityOptions","popoverSlotProps","paper","sx","role","children","size","variant","type","icon","onClick","component","pointerEvents","anchorEl","onClose","anchorOrigin","vertical","horizontal","transformOrigin","slotProps","col","isVisible","headerText","header","trim","labelText","control","checked","onChange","input","disabled","options"],"sources":["../../../../src/lib/v2/patterns/DataGridSettingsMenu.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport Popover from \"@mui/material/Popover\";\r\nimport Checkbox from \"@mui/material/Checkbox\";\r\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\r\nimport TuneIcon from \"@mui/icons-material/Tune\";\r\nimport Button from \"../components/Button\";\r\nimport Segmented from \"../components/Segmented\";\r\nimport type { SegmentedOption } from \"../components/Segmented\";\r\nimport { extractHeaderText } from \"./ColumnsToggle\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { Density } from \"../types/common\";\r\nimport type { DataGridColumn } from \"../types/datagrid\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * DataGridSettingsMenu - Portnet UI v2 (pattern)\r\n *\r\n * Combined \"table options\" popover wrapping two DataGrid-adjacent\r\n * preferences: column visibility and row density. Single trigger\r\n * (Tune icon button) opens a popover with both sections inline.\r\n *\r\n * <DataGridSettingsMenu\r\n * columns={cols}\r\n * hiddenColumns={hiddenSet}\r\n * onHiddenColumnsChange={setHiddenSet}\r\n * density={density}\r\n * onDensityChange={setDensity}\r\n * densityOptions={DENSITY_OPTIONS}\r\n * label=\"Configurer\" // optional — shows text label on trigger\r\n * />\r\n *\r\n * Use this when the host wants BOTH affordances behind one\r\n * compact toolbar entry. For columns-only use cases, prefer the\r\n * atomic `<ColumnsToggle>` pattern.\r\n *\r\n * The component is pure presentation — host owns the state for\r\n * both columns visibility (hiddenColumns Set) and density (the\r\n * current value, typically \"comfortable\" or \"compact\").\r\n *\r\n * Mental model: checkbox represents VISIBILITY (checked = visible,\r\n * not in hiddenSet). Same contract as ColumnsToggle to avoid\r\n * cognitive load when a host switches between the two patterns.\r\n *\r\n * `col.toggleable: false` on a column excludes it from the popover\r\n * entirely — useful for identity columns or system-pinned columns\r\n * that should not be user-hideable. DataGrid itself doesn't read\r\n * this flag; it's a contract between the host schema and any\r\n * settings-UI consumer.\r\n *\r\n * `label` prop (optional string):\r\n * When provided, the trigger becomes a v2.Button (secondary, sm)\r\n * with the icon + text label visible in the toolbar. This is\r\n * recommended when the toolbar has enough horizontal space and the\r\n * affordance benefits from a named action (e.g. \"Configurer\").\r\n * When omitted, the trigger falls back to the compact IconButton.\r\n *\r\n * D-8: in that named form the button is NOT given an aria-label.\r\n * It used to carry `labels.button` as well, and aria-label wins over\r\n * visible text — so the trigger displayed \"Configurer\" and announced\r\n * \"Options du tableau\", failing WCAG 2.5.3 Label in Name and breaking\r\n * voice control (\"click Configurer\" matched nothing). The button's own\r\n * text now names it, so the two agree by construction. `labels.button`\r\n * still names the icon-only trigger, where it is the only naming route.\r\n */\r\n\r\nexport interface DataGridSettingsMenuLabels {\r\n /**\r\n * Accessible name of the ICON-ONLY trigger. Not applied when `label` is\r\n * passed — there the visible text is the name (D-8).\r\n */\r\n button?: string | undefined;\r\n title?: string | undefined;\r\n columnsHeading?: string | undefined;\r\n densityHeading?: string | undefined;\r\n showAll?: string | undefined;\r\n hideAll?: string | undefined;\r\n densityAriaLabel?: string | undefined;\r\n}\r\n\r\nexport interface DataGridSettingsMenuProps {\r\n columns: ReadonlyArray<Pick<DataGridColumn<unknown>, \"key\" | \"header\" | \"toggleable\">>;\r\n hiddenColumns?: Set<string> | string[] | undefined;\r\n onHiddenColumnsChange: (hidden: Set<string>) => void;\r\n density?: Density | undefined;\r\n onDensityChange: (density: Density) => void;\r\n densityOptions?: SegmentedOption[] | undefined;\r\n labels?: DataGridSettingsMenuLabels | undefined;\r\n label?: string | undefined;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n button: \"Options du tableau\",\r\n title: \"Options du tableau\",\r\n columnsHeading: \"Affichage des colonnes\",\r\n densityHeading: \"Densité d'affichage\",\r\n showAll: \"Tout afficher\",\r\n hideAll: \"Tout masquer\",\r\n densityAriaLabel: \"Densité d'affichage\",\r\n});\r\n\r\n/* ── Default density options ─────────────────────────────────────────\r\n * Used only when the host doesn't pass its own densityOptions.\r\n * Hosts SHOULD pass an icon-laden version for visual richness; the\r\n * label-only fallback exists to keep this component crash-free.\r\n * (Frozen for defensiveness; typed mutable via one readonly→mutable\r\n * assertion since Segmented reads options and never mutates.) */\r\nconst FALLBACK_DENSITY_OPTIONS: SegmentedOption[] = Object.freeze([\r\n { value: \"comfortable\", label: \"Confortable\" },\r\n { value: \"compact\", label: \"Compact\" },\r\n]) as SegmentedOption[];\r\n\r\n/* ── Hoisted sx (D5) ──────────────────────────────────────────────── */\r\n\r\nconst POPOVER_PAPER_SX = Object.freeze({\r\n borderRadius: \"var(--r-lg)\",\r\n boxShadow: \"var(--shadow-md)\",\r\n border: \"1px solid var(--border)\",\r\n});\r\n\r\nconst POPOVER_BODY_SX = Object.freeze({\r\n padding: \"var(--s-3) var(--s-4)\",\r\n minWidth: 280,\r\n maxHeight: 480,\r\n overflowY: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst SECTION_HEADING_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg-muted)\",\r\n textTransform: \"uppercase\",\r\n letterSpacing: \"0.04em\",\r\n paddingBottom: \"var(--s-2)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst SECTION_BODY_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-1)\",\r\n paddingTop: \"var(--s-2)\",\r\n paddingBottom: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst SECTION_SEPARATOR_SX = Object.freeze({\r\n borderTop: \"1px solid var(--border)\",\r\n});\r\n\r\nconst CHECKBOX_LABEL_SX = Object.freeze({\r\n marginLeft: 0,\r\n marginRight: 0,\r\n \"& .MuiFormControlLabel-label\": {\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg)\",\r\n },\r\n});\r\n\r\nconst COLUMNS_FOOTER_SX = Object.freeze({\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n paddingTop: \"var(--s-1)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst BADGE_SX = Object.freeze({\r\n position: \"absolute\",\r\n top: 2,\r\n insetInlineEnd: 2,\r\n width: 8,\r\n height: 8,\r\n borderRadius: \"var(--r-full)\",\r\n background: \"var(--accent)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nfunction DataGridSettingsMenu({\r\n columns,\r\n hiddenColumns,\r\n onHiddenColumnsChange,\r\n density,\r\n onDensityChange,\r\n densityOptions,\r\n labels,\r\n label,\r\n}: DataGridSettingsMenuProps) {\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n const [anchor, setAnchor] = React.useState<HTMLElement | null>(null);\r\n\r\n // Normalise hiddenColumns to a Set once. Same contract as DataGrid\r\n // / ColumnsToggle — accepts Set or Array (or undefined).\r\n const hiddenSet = React.useMemo(\r\n () =>\r\n hiddenColumns instanceof Set\r\n ? hiddenColumns\r\n : new Set(hiddenColumns || []),\r\n [hiddenColumns]\r\n );\r\n\r\n // Toggleable subset — the only columns this UI exposes. System-\r\n // pinned columns (col.toggleable === false) are excluded entirely.\r\n const toggleableColumns = React.useMemo(\r\n () => columns.filter((c) => c.toggleable !== false),\r\n [columns]\r\n );\r\n\r\n // Count among toggleable for the trigger badge dot.\r\n const hiddenCount = React.useMemo(\r\n () => toggleableColumns.filter((c) => hiddenSet.has(c.key)).length,\r\n [toggleableColumns, hiddenSet]\r\n );\r\n\r\n // Indicates the user has changed something from defaults — used\r\n // to surface a discreet badge dot on the trigger. We use a single\r\n // visual dot rather than a numeric badge because there are TWO\r\n // pref axes (columns + density) that contribute; a counter would\r\n // be misleading.\r\n const hasCustomisation =\r\n hiddenCount > 0 ||\r\n (density != null && density !== \"comfortable\");\r\n\r\n const open = Boolean(anchor);\r\n\r\n const handleOpen = (e: React.MouseEvent<HTMLButtonElement>) => setAnchor(e.currentTarget);\r\n const handleClose = () => setAnchor(null);\r\n\r\n const toggleColumn = (key: string) => {\r\n const next = new Set(hiddenSet);\r\n if (next.has(key)) next.delete(key);\r\n else next.add(key);\r\n onHiddenColumnsChange(next);\r\n };\r\n\r\n const showAll = () => onHiddenColumnsChange(new Set<string>());\r\n const hideAll = () =>\r\n onHiddenColumnsChange(new Set(toggleableColumns.map((c) => c.key)));\r\n\r\n const effectiveDensityOptions = densityOptions || FALLBACK_DENSITY_OPTIONS;\r\n\r\n // MUI v9: slot bag for the Popover paper. Carries the dialog\r\n // ARIA contract (role + aria-label) — host-customisable via the\r\n // `labels.title` override. Memoised so the slotProps reference\r\n // stays stable when L.title is unchanged.\r\n const popoverSlotProps = React.useMemo(\r\n () => ({\r\n paper: {\r\n sx: POPOVER_PAPER_SX,\r\n role: \"dialog\",\r\n \"aria-label\": L.title,\r\n },\r\n }),\r\n [L.title]\r\n );\r\n\r\n return (\r\n <>\r\n {label ? (\r\n /* Named trigger — renders a v2.Button with icon + text label.\r\n * Used when the toolbar benefits from an explicit action name\r\n * (e.g. \"Configurer\"). Badge dot uses absolute positioning\r\n * inside the button's bounding box via sx={{ position: \"relative\" }}.\r\n *\r\n * D-8 — NO aria-label here. It previously carried L.button, which\r\n * overrides visible text as the accessible name, so the trigger\r\n * showed \"Configurer\" and announced \"Options du tableau\": a WCAG\r\n * 2.5.3 Label in Name failure that breaks voice control. The\r\n * button's own text is the name now, so the two cannot diverge.\r\n *\r\n * ColumnsToggle solves the same problem by building\r\n * `${button}, ${countSuffix(n)}` — an accessible name that CONTAINS\r\n * the visible text. That works there because one countable axis\r\n * feeds its badge. Here the badge is deliberately a dot rather than\r\n * a count (two axes contribute), so there is no honest state string\r\n * to append and omitting the override is the right form of the rule. */\r\n <Box sx={{ position: \"relative\", display: \"inline-flex\" }}>\r\n <Button\r\n size=\"sm\"\r\n variant=\"secondary\"\r\n type=\"button\"\r\n icon={<TuneIcon fontSize=\"small\" />}\r\n onClick={handleOpen}\r\n aria-haspopup=\"dialog\"\r\n aria-expanded={open}\r\n >\r\n {label}\r\n </Button>\r\n {hasCustomisation && (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n ...BADGE_SX,\r\n top: 4,\r\n insetInlineEnd: 4,\r\n pointerEvents: \"none\",\r\n }}\r\n aria-hidden=\"true\"\r\n />\r\n )}\r\n </Box>\r\n ) : (\r\n /* Icon-only trigger — compact fallback for callers that don't\r\n * pass a label (backward-compatible default). Here `L.button` IS\r\n * the only naming route, which is what aria-label is for. */\r\n <IconButton\r\n size=\"small\"\r\n type=\"button\"\r\n onClick={handleOpen}\r\n aria-label={L.button}\r\n aria-haspopup=\"dialog\"\r\n aria-expanded={open}\r\n sx={{\r\n color: \"var(--fg-muted)\",\r\n position: \"relative\",\r\n \"&:hover\": {\r\n background: \"var(--bg-hover)\",\r\n color: \"var(--fg)\",\r\n },\r\n }}\r\n >\r\n <TuneIcon fontSize=\"small\" />\r\n {hasCustomisation && (\r\n <Box component=\"span\" sx={BADGE_SX} aria-hidden=\"true\" />\r\n )}\r\n </IconButton>\r\n )}\r\n\r\n <Popover\r\n open={open}\r\n anchorEl={anchor}\r\n onClose={handleClose}\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n transformOrigin={{ vertical: \"top\", horizontal: \"right\" }}\r\n slotProps={popoverSlotProps}\r\n >\r\n <Box sx={POPOVER_BODY_SX}>\r\n {/* ── Section: Columns ─────────────────────────────────── */}\r\n <Box>\r\n <Box component=\"div\" sx={SECTION_HEADING_SX}>\r\n {L.columnsHeading}\r\n </Box>\r\n <Box sx={SECTION_BODY_SX}>\r\n {toggleableColumns.map((col) => {\r\n const isVisible = !hiddenSet.has(col.key);\r\n // DGS-1 — accessible name = the header's visible text (reuses\r\n // ColumnsToggle's SET-1 extractor) so it matches the rendered\r\n // label (WCAG 2.5.3); only icon-only headers fall back to key.\r\n const headerText = extractHeaderText(col.header).trim();\r\n const labelText = headerText || col.key;\r\n return (\r\n <FormControlLabel\r\n key={col.key}\r\n control={\r\n <Checkbox\r\n size=\"small\"\r\n checked={isVisible}\r\n onChange={() => toggleColumn(col.key)}\r\n slotProps={{\r\n input: { \"aria-label\": labelText },\r\n }}\r\n />\r\n }\r\n label={col.header}\r\n sx={CHECKBOX_LABEL_SX}\r\n />\r\n );\r\n })}\r\n </Box>\r\n <Box sx={COLUMNS_FOOTER_SX}>\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n type=\"button\"\r\n onClick={showAll}\r\n disabled={hiddenCount === 0}\r\n >\r\n {L.showAll}\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n type=\"button\"\r\n onClick={hideAll}\r\n disabled={hiddenCount === toggleableColumns.length}\r\n >\r\n {L.hideAll}\r\n </Button>\r\n </Box>\r\n </Box>\r\n\r\n {/* ── Section separator ─────────────────────────────────── */}\r\n <Box sx={SECTION_SEPARATOR_SX} />\r\n\r\n {/* ── Section: Density ─────────────────────────────────── */}\r\n <Box>\r\n <Box component=\"div\" sx={SECTION_HEADING_SX}>\r\n {L.densityHeading}\r\n </Box>\r\n <Box sx={SECTION_BODY_SX}>\r\n <Segmented\r\n value={density ?? \"comfortable\"}\r\n onChange={(value) => onDensityChange(value as Density)}\r\n options={effectiveDensityOptions}\r\n size=\"sm\"\r\n aria-label={L.densityAriaLabel}\r\n />\r\n </Box>\r\n </Box>\r\n </Box>\r\n </Popover>\r\n </>\r\n );\r\n}\r\n\r\nexport default DataGridSettingsMenu;\r\n"],"mappings":"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","ignoreList":[]}
|