@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,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
|
-
exports
|
|
6
|
+
exports.default = void 0;
|
|
8
7
|
var React = _interopRequireWildcard(require("react"));
|
|
9
8
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
10
9
|
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
@@ -17,20 +16,9 @@ var _Segmented = _interopRequireDefault(require("../components/Segmented"));
|
|
|
17
16
|
var _ColumnsToggle = require("./ColumnsToggle");
|
|
18
17
|
var _mergeLabels = require("../utils/mergeLabels");
|
|
19
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
|
-
function _interopRequireDefault(
|
|
21
|
-
function
|
|
22
|
-
|
|
23
|
-
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; }
|
|
24
|
-
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; }
|
|
25
|
-
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; }
|
|
26
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
27
|
-
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); }
|
|
28
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
29
|
-
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."); }
|
|
30
|
-
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); }
|
|
31
|
-
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; }
|
|
32
|
-
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; } }
|
|
33
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /**
|
|
19
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
21
|
+
/**
|
|
34
22
|
* DataGridSettingsMenu - Portnet UI v2 (pattern)
|
|
35
23
|
*
|
|
36
24
|
* Combined "table options" popover wrapping two DataGrid-adjacent
|
|
@@ -71,8 +59,17 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /**
|
|
|
71
59
|
* recommended when the toolbar has enough horizontal space and the
|
|
72
60
|
* affordance benefits from a named action (e.g. "Configurer").
|
|
73
61
|
* When omitted, the trigger falls back to the compact IconButton.
|
|
62
|
+
*
|
|
63
|
+
* D-8: in that named form the button is NOT given an aria-label.
|
|
64
|
+
* It used to carry `labels.button` as well, and aria-label wins over
|
|
65
|
+
* visible text — so the trigger displayed "Configurer" and announced
|
|
66
|
+
* "Options du tableau", failing WCAG 2.5.3 Label in Name and breaking
|
|
67
|
+
* voice control ("click Configurer" matched nothing). The button's own
|
|
68
|
+
* text now names it, so the two agree by construction. `labels.button`
|
|
69
|
+
* still names the icon-only trigger, where it is the only naming route.
|
|
74
70
|
*/
|
|
75
|
-
|
|
71
|
+
|
|
72
|
+
const DEFAULT_LABELS = Object.freeze({
|
|
76
73
|
button: "Options du tableau",
|
|
77
74
|
title: "Options du tableau",
|
|
78
75
|
columnsHeading: "Affichage des colonnes",
|
|
@@ -88,7 +85,7 @@ var DEFAULT_LABELS = Object.freeze({
|
|
|
88
85
|
* label-only fallback exists to keep this component crash-free.
|
|
89
86
|
* (Frozen for defensiveness; typed mutable via one readonly→mutable
|
|
90
87
|
* assertion since Segmented reads options and never mutates.) */
|
|
91
|
-
|
|
88
|
+
const FALLBACK_DENSITY_OPTIONS = Object.freeze([{
|
|
92
89
|
value: "comfortable",
|
|
93
90
|
label: "Confortable"
|
|
94
91
|
}, {
|
|
@@ -98,12 +95,12 @@ var FALLBACK_DENSITY_OPTIONS = Object.freeze([{
|
|
|
98
95
|
|
|
99
96
|
/* ── Hoisted sx (D5) ──────────────────────────────────────────────── */
|
|
100
97
|
|
|
101
|
-
|
|
98
|
+
const POPOVER_PAPER_SX = Object.freeze({
|
|
102
99
|
borderRadius: "var(--r-lg)",
|
|
103
100
|
boxShadow: "var(--shadow-md)",
|
|
104
101
|
border: "1px solid var(--border)"
|
|
105
102
|
});
|
|
106
|
-
|
|
103
|
+
const POPOVER_BODY_SX = Object.freeze({
|
|
107
104
|
padding: "var(--s-3) var(--s-4)",
|
|
108
105
|
minWidth: 280,
|
|
109
106
|
maxHeight: 480,
|
|
@@ -112,7 +109,7 @@ var POPOVER_BODY_SX = Object.freeze({
|
|
|
112
109
|
flexDirection: "column",
|
|
113
110
|
gap: "var(--s-2)"
|
|
114
111
|
});
|
|
115
|
-
|
|
112
|
+
const SECTION_HEADING_SX = Object.freeze({
|
|
116
113
|
fontSize: "var(--text-xs)",
|
|
117
114
|
fontWeight: "var(--fw-semibold)",
|
|
118
115
|
color: "var(--fg-muted)",
|
|
@@ -121,17 +118,17 @@ var SECTION_HEADING_SX = Object.freeze({
|
|
|
121
118
|
paddingBottom: "var(--s-2)",
|
|
122
119
|
borderBottom: "1px solid var(--border)"
|
|
123
120
|
});
|
|
124
|
-
|
|
121
|
+
const SECTION_BODY_SX = Object.freeze({
|
|
125
122
|
display: "flex",
|
|
126
123
|
flexDirection: "column",
|
|
127
124
|
gap: "var(--s-1)",
|
|
128
125
|
paddingTop: "var(--s-2)",
|
|
129
126
|
paddingBottom: "var(--s-2)"
|
|
130
127
|
});
|
|
131
|
-
|
|
128
|
+
const SECTION_SEPARATOR_SX = Object.freeze({
|
|
132
129
|
borderTop: "1px solid var(--border)"
|
|
133
130
|
});
|
|
134
|
-
|
|
131
|
+
const CHECKBOX_LABEL_SX = Object.freeze({
|
|
135
132
|
marginLeft: 0,
|
|
136
133
|
marginRight: 0,
|
|
137
134
|
"& .MuiFormControlLabel-label": {
|
|
@@ -139,13 +136,13 @@ var CHECKBOX_LABEL_SX = Object.freeze({
|
|
|
139
136
|
color: "var(--fg)"
|
|
140
137
|
}
|
|
141
138
|
});
|
|
142
|
-
|
|
139
|
+
const COLUMNS_FOOTER_SX = Object.freeze({
|
|
143
140
|
display: "flex",
|
|
144
141
|
justifyContent: "space-between",
|
|
145
142
|
gap: "var(--s-2)",
|
|
146
143
|
paddingTop: "var(--s-1)"
|
|
147
144
|
});
|
|
148
|
-
|
|
145
|
+
const BADGE_SX = Object.freeze({
|
|
149
146
|
position: "absolute",
|
|
150
147
|
top: 2,
|
|
151
148
|
insetInlineEnd: 2,
|
|
@@ -154,121 +151,111 @@ var BADGE_SX = Object.freeze({
|
|
|
154
151
|
borderRadius: "var(--r-full)",
|
|
155
152
|
background: "var(--accent)"
|
|
156
153
|
});
|
|
157
|
-
function DataGridSettingsMenu(
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
anchor = _React$useState2[0],
|
|
170
|
-
setAnchor = _React$useState2[1];
|
|
154
|
+
function DataGridSettingsMenu({
|
|
155
|
+
columns,
|
|
156
|
+
hiddenColumns,
|
|
157
|
+
onHiddenColumnsChange,
|
|
158
|
+
density,
|
|
159
|
+
onDensityChange,
|
|
160
|
+
densityOptions,
|
|
161
|
+
labels,
|
|
162
|
+
label
|
|
163
|
+
}) {
|
|
164
|
+
const L = (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, labels);
|
|
165
|
+
const [anchor, setAnchor] = React.useState(null);
|
|
171
166
|
|
|
172
167
|
// Normalise hiddenColumns to a Set once. Same contract as DataGrid
|
|
173
168
|
// / ColumnsToggle — accepts Set or Array (or undefined).
|
|
174
|
-
|
|
175
|
-
return hiddenColumns instanceof Set ? hiddenColumns : new Set(hiddenColumns || []);
|
|
176
|
-
}, [hiddenColumns]);
|
|
169
|
+
const hiddenSet = React.useMemo(() => hiddenColumns instanceof Set ? hiddenColumns : new Set(hiddenColumns || []), [hiddenColumns]);
|
|
177
170
|
|
|
178
171
|
// Toggleable subset — the only columns this UI exposes. System-
|
|
179
172
|
// pinned columns (col.toggleable === false) are excluded entirely.
|
|
180
|
-
|
|
181
|
-
return columns.filter(function (c) {
|
|
182
|
-
return c.toggleable !== false;
|
|
183
|
-
});
|
|
184
|
-
}, [columns]);
|
|
173
|
+
const toggleableColumns = React.useMemo(() => columns.filter(c => c.toggleable !== false), [columns]);
|
|
185
174
|
|
|
186
175
|
// Count among toggleable for the trigger badge dot.
|
|
187
|
-
|
|
188
|
-
return toggleableColumns.filter(function (c) {
|
|
189
|
-
return hiddenSet.has(c.key);
|
|
190
|
-
}).length;
|
|
191
|
-
}, [toggleableColumns, hiddenSet]);
|
|
176
|
+
const hiddenCount = React.useMemo(() => toggleableColumns.filter(c => hiddenSet.has(c.key)).length, [toggleableColumns, hiddenSet]);
|
|
192
177
|
|
|
193
178
|
// Indicates the user has changed something from defaults — used
|
|
194
179
|
// to surface a discreet badge dot on the trigger. We use a single
|
|
195
180
|
// visual dot rather than a numeric badge because there are TWO
|
|
196
181
|
// pref axes (columns + density) that contribute; a counter would
|
|
197
182
|
// be misleading.
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
};
|
|
206
|
-
var toggleColumn = function toggleColumn(key) {
|
|
207
|
-
var next = new Set(hiddenSet);
|
|
208
|
-
if (next.has(key)) next["delete"](key);else next.add(key);
|
|
183
|
+
const hasCustomisation = hiddenCount > 0 || density != null && density !== "comfortable";
|
|
184
|
+
const open = Boolean(anchor);
|
|
185
|
+
const handleOpen = e => setAnchor(e.currentTarget);
|
|
186
|
+
const handleClose = () => setAnchor(null);
|
|
187
|
+
const toggleColumn = key => {
|
|
188
|
+
const next = new Set(hiddenSet);
|
|
189
|
+
if (next.has(key)) next.delete(key);else next.add(key);
|
|
209
190
|
onHiddenColumnsChange(next);
|
|
210
191
|
};
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
var hideAll = function hideAll() {
|
|
215
|
-
return onHiddenColumnsChange(new Set(toggleableColumns.map(function (c) {
|
|
216
|
-
return c.key;
|
|
217
|
-
})));
|
|
218
|
-
};
|
|
219
|
-
var effectiveDensityOptions = densityOptions || FALLBACK_DENSITY_OPTIONS;
|
|
192
|
+
const showAll = () => onHiddenColumnsChange(new Set());
|
|
193
|
+
const hideAll = () => onHiddenColumnsChange(new Set(toggleableColumns.map(c => c.key)));
|
|
194
|
+
const effectiveDensityOptions = densityOptions || FALLBACK_DENSITY_OPTIONS;
|
|
220
195
|
|
|
221
196
|
// MUI v9: slot bag for the Popover paper. Carries the dialog
|
|
222
197
|
// ARIA contract (role + aria-label) — host-customisable via the
|
|
223
198
|
// `labels.title` override. Memoised so the slotProps reference
|
|
224
199
|
// stays stable when L.title is unchanged.
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
};
|
|
233
|
-
}, [L.title]);
|
|
200
|
+
const popoverSlotProps = React.useMemo(() => ({
|
|
201
|
+
paper: {
|
|
202
|
+
sx: POPOVER_PAPER_SX,
|
|
203
|
+
role: "dialog",
|
|
204
|
+
"aria-label": L.title
|
|
205
|
+
}
|
|
206
|
+
}), [L.title]);
|
|
234
207
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
235
208
|
children: [label ?
|
|
236
209
|
/*#__PURE__*/
|
|
237
210
|
/* Named trigger — renders a v2.Button with icon + text label.
|
|
238
211
|
* Used when the toolbar benefits from an explicit action name
|
|
239
212
|
* (e.g. "Configurer"). Badge dot uses absolute positioning
|
|
240
|
-
* inside the button's bounding box via sx={{ position: "relative" }}.
|
|
241
|
-
|
|
213
|
+
* inside the button's bounding box via sx={{ position: "relative" }}.
|
|
214
|
+
*
|
|
215
|
+
* D-8 — NO aria-label here. It previously carried L.button, which
|
|
216
|
+
* overrides visible text as the accessible name, so the trigger
|
|
217
|
+
* showed "Configurer" and announced "Options du tableau": a WCAG
|
|
218
|
+
* 2.5.3 Label in Name failure that breaks voice control. The
|
|
219
|
+
* button's own text is the name now, so the two cannot diverge.
|
|
220
|
+
*
|
|
221
|
+
* ColumnsToggle solves the same problem by building
|
|
222
|
+
* `${button}, ${countSuffix(n)}` — an accessible name that CONTAINS
|
|
223
|
+
* the visible text. That works there because one countable axis
|
|
224
|
+
* feeds its badge. Here the badge is deliberately a dot rather than
|
|
225
|
+
* a count (two axes contribute), so there is no honest state string
|
|
226
|
+
* to append and omitting the override is the right form of the rule. */
|
|
227
|
+
(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
242
228
|
sx: {
|
|
243
229
|
position: "relative",
|
|
244
230
|
display: "inline-flex"
|
|
245
231
|
},
|
|
246
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button
|
|
232
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
247
233
|
size: "sm",
|
|
248
234
|
variant: "secondary",
|
|
249
235
|
type: "button",
|
|
250
|
-
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tune
|
|
236
|
+
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tune.default, {
|
|
251
237
|
fontSize: "small"
|
|
252
238
|
}),
|
|
253
239
|
onClick: handleOpen,
|
|
254
|
-
"aria-label": L.button,
|
|
255
240
|
"aria-haspopup": "dialog",
|
|
256
241
|
"aria-expanded": open,
|
|
257
242
|
children: label
|
|
258
|
-
}), hasCustomisation && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box
|
|
243
|
+
}), hasCustomisation && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
259
244
|
component: "span",
|
|
260
|
-
sx:
|
|
245
|
+
sx: {
|
|
246
|
+
...BADGE_SX,
|
|
261
247
|
top: 4,
|
|
262
248
|
insetInlineEnd: 4,
|
|
263
249
|
pointerEvents: "none"
|
|
264
|
-
}
|
|
250
|
+
},
|
|
265
251
|
"aria-hidden": "true"
|
|
266
252
|
})]
|
|
267
253
|
}) :
|
|
268
254
|
/*#__PURE__*/
|
|
269
255
|
/* Icon-only trigger — compact fallback for callers that don't
|
|
270
|
-
* pass a label (backward-compatible default).
|
|
271
|
-
|
|
256
|
+
* pass a label (backward-compatible default). Here `L.button` IS
|
|
257
|
+
* the only naming route, which is what aria-label is for. */
|
|
258
|
+
(0, _jsxRuntime.jsxs)(_IconButton.default, {
|
|
272
259
|
size: "small",
|
|
273
260
|
type: "button",
|
|
274
261
|
onClick: handleOpen,
|
|
@@ -283,14 +270,14 @@ function DataGridSettingsMenu(_ref) {
|
|
|
283
270
|
color: "var(--fg)"
|
|
284
271
|
}
|
|
285
272
|
},
|
|
286
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Tune
|
|
273
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Tune.default, {
|
|
287
274
|
fontSize: "small"
|
|
288
|
-
}), hasCustomisation && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box
|
|
275
|
+
}), hasCustomisation && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
289
276
|
component: "span",
|
|
290
277
|
sx: BADGE_SX,
|
|
291
278
|
"aria-hidden": "true"
|
|
292
279
|
})]
|
|
293
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover
|
|
280
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.default, {
|
|
294
281
|
open: open,
|
|
295
282
|
anchorEl: anchor,
|
|
296
283
|
onClose: handleClose,
|
|
@@ -303,29 +290,27 @@ function DataGridSettingsMenu(_ref) {
|
|
|
303
290
|
horizontal: "right"
|
|
304
291
|
},
|
|
305
292
|
slotProps: popoverSlotProps,
|
|
306
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box
|
|
293
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
307
294
|
sx: POPOVER_BODY_SX,
|
|
308
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box
|
|
309
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box
|
|
295
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
296
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
310
297
|
component: "div",
|
|
311
298
|
sx: SECTION_HEADING_SX,
|
|
312
299
|
children: L.columnsHeading
|
|
313
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box
|
|
300
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
314
301
|
sx: SECTION_BODY_SX,
|
|
315
|
-
children: toggleableColumns.map(
|
|
316
|
-
|
|
302
|
+
children: toggleableColumns.map(col => {
|
|
303
|
+
const isVisible = !hiddenSet.has(col.key);
|
|
317
304
|
// DGS-1 — accessible name = the header's visible text (reuses
|
|
318
305
|
// ColumnsToggle's SET-1 extractor) so it matches the rendered
|
|
319
306
|
// label (WCAG 2.5.3); only icon-only headers fall back to key.
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormControlLabel
|
|
323
|
-
control: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox
|
|
307
|
+
const headerText = (0, _ColumnsToggle.extractHeaderText)(col.header).trim();
|
|
308
|
+
const labelText = headerText || col.key;
|
|
309
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormControlLabel.default, {
|
|
310
|
+
control: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.default, {
|
|
324
311
|
size: "small",
|
|
325
312
|
checked: isVisible,
|
|
326
|
-
onChange:
|
|
327
|
-
return toggleColumn(col.key);
|
|
328
|
-
},
|
|
313
|
+
onChange: () => toggleColumn(col.key),
|
|
329
314
|
slotProps: {
|
|
330
315
|
input: {
|
|
331
316
|
"aria-label": labelText
|
|
@@ -336,16 +321,16 @@ function DataGridSettingsMenu(_ref) {
|
|
|
336
321
|
sx: CHECKBOX_LABEL_SX
|
|
337
322
|
}, col.key);
|
|
338
323
|
})
|
|
339
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box
|
|
324
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
340
325
|
sx: COLUMNS_FOOTER_SX,
|
|
341
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button
|
|
326
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
342
327
|
size: "sm",
|
|
343
328
|
variant: "ghost",
|
|
344
329
|
type: "button",
|
|
345
330
|
onClick: showAll,
|
|
346
331
|
disabled: hiddenCount === 0,
|
|
347
332
|
children: L.showAll
|
|
348
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button
|
|
333
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
349
334
|
size: "sm",
|
|
350
335
|
variant: "ghost",
|
|
351
336
|
type: "button",
|
|
@@ -354,20 +339,18 @@ function DataGridSettingsMenu(_ref) {
|
|
|
354
339
|
children: L.hideAll
|
|
355
340
|
})]
|
|
356
341
|
})]
|
|
357
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box
|
|
342
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
358
343
|
sx: SECTION_SEPARATOR_SX
|
|
359
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box
|
|
360
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box
|
|
344
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
345
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
361
346
|
component: "div",
|
|
362
347
|
sx: SECTION_HEADING_SX,
|
|
363
348
|
children: L.densityHeading
|
|
364
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box
|
|
349
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
365
350
|
sx: SECTION_BODY_SX,
|
|
366
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Segmented
|
|
367
|
-
value: density
|
|
368
|
-
onChange:
|
|
369
|
-
return onDensityChange(value);
|
|
370
|
-
},
|
|
351
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Segmented.default, {
|
|
352
|
+
value: density ?? "comfortable",
|
|
353
|
+
onChange: value => onDensityChange(value),
|
|
371
354
|
options: effectiveDensityOptions,
|
|
372
355
|
size: "sm",
|
|
373
356
|
"aria-label": L.densityAriaLabel
|
|
@@ -378,5 +361,5 @@ function DataGridSettingsMenu(_ref) {
|
|
|
378
361
|
})]
|
|
379
362
|
});
|
|
380
363
|
}
|
|
381
|
-
var _default = exports
|
|
364
|
+
var _default = exports.default = DataGridSettingsMenu;
|
|
382
365
|
//# sourceMappingURL=DataGridSettingsMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridSettingsMenu.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_IconButton","_Popover","_Checkbox","_FormControlLabel","_Tune","_Button","_Segmented","_ColumnsToggle","_mergeLabels","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","isArray","DEFAULT_LABELS","freeze","button","title","columnsHeading","densityHeading","showAll","hideAll","densityAriaLabel","FALLBACK_DENSITY_OPTIONS","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","mergeLabels","_React$useState","useState","_React$useState2","anchor","setAnchor","hiddenSet","useMemo","Set","toggleableColumns","c","toggleable","hiddenCount","hasCustomisation","open","Boolean","handleOpen","e","currentTarget","handleClose","toggleColumn","add","map","effectiveDensityOptions","popoverSlotProps","paper","sx","role","jsxs","Fragment","children","jsx","size","variant","type","icon","onClick","component","pointerEvents","anchorEl","onClose","anchorOrigin","vertical","horizontal","transformOrigin","slotProps","col","isVisible","headerText","extractHeaderText","header","trim","labelText","control","checked","onChange","disabled","options","_default","exports"],"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","_interopRequireWildcard","require","_Box","_interopRequireDefault","_IconButton","_Popover","_Checkbox","_FormControlLabel","_Tune","_Button","_Segmented","_ColumnsToggle","_mergeLabels","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_LABELS","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","mergeLabels","anchor","setAnchor","useState","hiddenSet","useMemo","Set","toggleableColumns","filter","c","toggleable","hiddenCount","key","length","hasCustomisation","open","Boolean","handleOpen","currentTarget","handleClose","toggleColumn","next","delete","add","map","effectiveDensityOptions","popoverSlotProps","paper","sx","role","jsxs","Fragment","children","jsx","size","variant","type","icon","onClick","component","pointerEvents","anchorEl","onClose","anchorOrigin","vertical","horizontal","transformOrigin","slotProps","col","isVisible","headerText","extractHeaderText","header","trim","labelText","control","checked","onChange","input","disabled","options","_default","exports"],"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":[]}
|