@portnet/ui 6.0.0 → 6.0.1
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/dist/esm/index.js +196 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldError.test.js +160 -0
- package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FileCard.test.js +144 -0
- package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -0
- package/dist/esm/v2/__tests__/MobileRowCard.test.js +333 -0
- package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -0
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +235 -0
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
- package/dist/esm/v2/__tests__/apiError.test.js +181 -0
- package/dist/esm/v2/__tests__/apiError.test.js.map +1 -0
- package/dist/esm/v2/__tests__/banned-patterns.test.js +270 -0
- package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -0
- package/dist/esm/v2/__tests__/contrast-palette.test.js +224 -0
- package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -0
- package/dist/esm/v2/__tests__/cssVariables.test.js +157 -0
- package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -0
- package/dist/esm/v2/__tests__/labels-merge.test.js +147 -0
- package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -0
- package/dist/esm/v2/__tests__/locale-fallback.test.js +109 -0
- package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusTrap.test.js +514 -0
- package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -0
- package/dist/esm/v2/components/Accordion.js +230 -0
- package/dist/esm/v2/components/Accordion.js.map +1 -0
- package/dist/esm/v2/components/ActionStrip.js +146 -0
- package/dist/esm/v2/components/ActionStrip.js.map +1 -0
- package/dist/esm/v2/components/Banner.js +254 -0
- package/dist/esm/v2/components/Banner.js.map +1 -0
- package/dist/esm/v2/components/Busy.js +97 -0
- package/dist/esm/v2/components/Busy.js.map +1 -0
- package/dist/esm/v2/components/Button.js +114 -0
- package/dist/esm/v2/components/Button.js.map +1 -0
- package/dist/esm/v2/components/CategoryTag.js +81 -0
- package/dist/esm/v2/components/CategoryTag.js.map +1 -0
- package/dist/esm/v2/components/Checkbox.js +124 -0
- package/dist/esm/v2/components/Checkbox.js.map +1 -0
- package/dist/esm/v2/components/Chip.js +124 -0
- package/dist/esm/v2/components/Chip.js.map +1 -0
- package/dist/esm/v2/components/Combobox.js +394 -0
- package/dist/esm/v2/components/Combobox.js.map +1 -0
- package/dist/esm/v2/components/CommandPalette.js +660 -0
- package/dist/esm/v2/components/CommandPalette.js.map +1 -0
- package/dist/esm/v2/components/ConfirmDialog.js +144 -0
- package/dist/esm/v2/components/ConfirmDialog.js.map +1 -0
- package/dist/esm/v2/components/DatePicker.js +200 -0
- package/dist/esm/v2/components/DatePicker.js.map +1 -0
- package/dist/esm/v2/components/DateRangePicker.js +289 -0
- package/dist/esm/v2/components/DateRangePicker.js.map +1 -0
- package/dist/esm/v2/components/DateTimePicker.js +182 -0
- package/dist/esm/v2/components/DateTimePicker.js.map +1 -0
- package/dist/esm/v2/components/Drawer.js +333 -0
- package/dist/esm/v2/components/Drawer.js.map +1 -0
- package/dist/esm/v2/components/Dropzone.js +540 -0
- package/dist/esm/v2/components/Dropzone.js.map +1 -0
- package/dist/esm/v2/components/EmptyState.js +102 -0
- package/dist/esm/v2/components/EmptyState.js.map +1 -0
- package/dist/esm/v2/components/FavoriteToggle.js +127 -0
- package/dist/esm/v2/components/FavoriteToggle.js.map +1 -0
- package/dist/esm/v2/components/Field.js +197 -0
- package/dist/esm/v2/components/Field.js.map +1 -0
- package/dist/esm/v2/components/FieldError.js +124 -0
- package/dist/esm/v2/components/FieldError.js.map +1 -0
- package/dist/esm/v2/components/FieldHelp.js +202 -0
- package/dist/esm/v2/components/FieldHelp.js.map +1 -0
- package/dist/esm/v2/components/FileCard.js +162 -0
- package/dist/esm/v2/components/FileCard.js.map +1 -0
- package/dist/esm/v2/components/FilterTab.js +138 -0
- package/dist/esm/v2/components/FilterTab.js.map +1 -0
- package/dist/esm/v2/components/ForbiddenPage.js +74 -0
- package/dist/esm/v2/components/ForbiddenPage.js.map +1 -0
- package/dist/esm/v2/components/FormGrid.js +179 -0
- package/dist/esm/v2/components/FormGrid.js.map +1 -0
- package/dist/esm/v2/components/FormikDisplay.js +118 -0
- package/dist/esm/v2/components/FormikDisplay.js.map +1 -0
- package/dist/esm/v2/components/Input.js +107 -0
- package/dist/esm/v2/components/Input.js.map +1 -0
- package/dist/esm/v2/components/KPICard.js +237 -0
- package/dist/esm/v2/components/KPICard.js.map +1 -0
- package/dist/esm/v2/components/KPIStrip.js +84 -0
- package/dist/esm/v2/components/KPIStrip.js.map +1 -0
- package/dist/esm/v2/components/KV.js +75 -0
- package/dist/esm/v2/components/KV.js.map +1 -0
- package/dist/esm/v2/components/KVGrid.js +74 -0
- package/dist/esm/v2/components/KVGrid.js.map +1 -0
- package/dist/esm/v2/components/Layout.js +284 -0
- package/dist/esm/v2/components/Layout.js.map +1 -0
- package/dist/esm/v2/components/MobileRowCard.js +314 -0
- package/dist/esm/v2/components/MobileRowCard.js.map +1 -0
- package/dist/esm/v2/components/Modal.js +276 -0
- package/dist/esm/v2/components/Modal.js.map +1 -0
- package/dist/esm/v2/components/NetworkErrorPage.js +78 -0
- package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -0
- package/dist/esm/v2/components/NotFoundPage.js +58 -0
- package/dist/esm/v2/components/NotFoundPage.js.map +1 -0
- package/dist/esm/v2/components/NumberInput.js +309 -0
- package/dist/esm/v2/components/NumberInput.js.map +1 -0
- package/dist/esm/v2/components/OverflowMenu.js +184 -0
- package/dist/esm/v2/components/OverflowMenu.js.map +1 -0
- package/dist/esm/v2/components/PdfViewer.js +122 -0
- package/dist/esm/v2/components/PdfViewer.js.map +1 -0
- package/dist/esm/v2/components/ProgressBar.js +202 -0
- package/dist/esm/v2/components/ProgressBar.js.map +1 -0
- package/dist/esm/v2/components/Radio.js +228 -0
- package/dist/esm/v2/components/Radio.js.map +1 -0
- package/dist/esm/v2/components/SectionErrorBoundary.js +214 -0
- package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -0
- package/dist/esm/v2/components/SectionHeader.js +132 -0
- package/dist/esm/v2/components/SectionHeader.js.map +1 -0
- package/dist/esm/v2/components/Segmented.js +254 -0
- package/dist/esm/v2/components/Segmented.js.map +1 -0
- package/dist/esm/v2/components/Select.js +490 -0
- package/dist/esm/v2/components/Select.js.map +1 -0
- package/dist/esm/v2/components/ServerErrorPage.js +74 -0
- package/dist/esm/v2/components/ServerErrorPage.js.map +1 -0
- package/dist/esm/v2/components/Skeleton.js +269 -0
- package/dist/esm/v2/components/Skeleton.js.map +1 -0
- package/dist/esm/v2/components/SkipLink.js +49 -0
- package/dist/esm/v2/components/SkipLink.js.map +1 -0
- package/dist/esm/v2/components/Spinner.js +69 -0
- package/dist/esm/v2/components/Spinner.js.map +1 -0
- package/dist/esm/v2/components/Status.js +64 -0
- package/dist/esm/v2/components/Status.js.map +1 -0
- package/dist/esm/v2/components/Stepper.js +432 -0
- package/dist/esm/v2/components/Stepper.js.map +1 -0
- package/dist/esm/v2/components/Surface.js +159 -0
- package/dist/esm/v2/components/Surface.js.map +1 -0
- package/dist/esm/v2/components/Switch.js +128 -0
- package/dist/esm/v2/components/Switch.js.map +1 -0
- package/dist/esm/v2/components/Tabs.js +150 -0
- package/dist/esm/v2/components/Tabs.js.map +1 -0
- package/dist/esm/v2/components/TelInput.js +274 -0
- package/dist/esm/v2/components/TelInput.js.map +1 -0
- package/dist/esm/v2/components/Textarea.js +72 -0
- package/dist/esm/v2/components/Textarea.js.map +1 -0
- package/dist/esm/v2/components/TimePicker.js +134 -0
- package/dist/esm/v2/components/TimePicker.js.map +1 -0
- package/dist/esm/v2/components/Toast.js +376 -0
- package/dist/esm/v2/components/Toast.js.map +1 -0
- package/dist/esm/v2/components/Tooltip.js +161 -0
- package/dist/esm/v2/components/Tooltip.js.map +1 -0
- package/dist/esm/v2/components/_ErrorPageBody.js +85 -0
- package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -0
- package/dist/esm/v2/components/_pickerShared.js +60 -0
- package/dist/esm/v2/components/_pickerShared.js.map +1 -0
- package/dist/esm/v2/components/index.js +244 -0
- package/dist/esm/v2/components/index.js.map +1 -0
- package/dist/esm/v2/hooks/index.js +10 -0
- package/dist/esm/v2/hooks/index.js.map +1 -0
- package/dist/esm/v2/hooks/useDelayedFlag.js +55 -0
- package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -0
- package/dist/esm/v2/hooks/useDensity.js +119 -0
- package/dist/esm/v2/hooks/useDensity.js.map +1 -0
- package/dist/esm/v2/hooks/useFocusFirstError.js +197 -0
- package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -0
- package/dist/esm/v2/hooks/useFocusTrap.js +202 -0
- package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -0
- package/dist/esm/v2/hooks/useFormAutoSave.js +181 -0
- package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -0
- package/dist/esm/v2/hooks/useFormCompletionProgress.js +131 -0
- package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -0
- package/dist/esm/v2/hooks/useResolvedDensity.js +44 -0
- package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -0
- package/dist/esm/v2/hooks/useSortedRows.js +32 -0
- package/dist/esm/v2/hooks/useSortedRows.js.map +1 -0
- package/dist/esm/v2/hooks/useTabLoading.js +79 -0
- package/dist/esm/v2/hooks/useTabLoading.js.map +1 -0
- package/dist/esm/v2/index.js +121 -0
- package/dist/esm/v2/index.js.map +1 -0
- package/dist/esm/v2/modalContext.js +108 -0
- package/dist/esm/v2/modalContext.js.map +1 -0
- package/dist/esm/v2/models/favorite.js +2 -0
- package/dist/esm/v2/models/favorite.js.map +1 -0
- package/dist/esm/v2/models/index.js +12 -0
- package/dist/esm/v2/models/index.js.map +1 -0
- package/dist/esm/v2/models/personalization.js +2 -0
- package/dist/esm/v2/models/personalization.js.map +1 -0
- package/dist/esm/v2/models/referentiel.js +2 -0
- package/dist/esm/v2/models/referentiel.js.map +1 -0
- package/dist/esm/v2/models/savedFilter.js +2 -0
- package/dist/esm/v2/models/savedFilter.js.map +1 -0
- package/dist/esm/v2/patterns/ActionBar.js +603 -0
- package/dist/esm/v2/patterns/ActionBar.js.map +1 -0
- package/dist/esm/v2/patterns/BulkActionBar.js +147 -0
- package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -0
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js +303 -0
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -0
- package/dist/esm/v2/patterns/ColumnsToggle.js +301 -0
- package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -0
- package/dist/esm/v2/patterns/DataGrid.js +820 -0
- package/dist/esm/v2/patterns/DataGrid.js.map +1 -0
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js +375 -0
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -0
- package/dist/esm/v2/patterns/DataGridToolbar.js +249 -0
- package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -0
- package/dist/esm/v2/patterns/DataGridVirtualized.js +523 -0
- package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -0
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +70 -0
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -0
- package/dist/esm/v2/patterns/FavoriteColumn.js +164 -0
- package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -0
- package/dist/esm/v2/patterns/FavoritesFilter.js +91 -0
- package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -0
- package/dist/esm/v2/patterns/FormErrorSummary.js +101 -0
- package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -0
- package/dist/esm/v2/patterns/FormPageShell.js +126 -0
- package/dist/esm/v2/patterns/FormPageShell.js.map +1 -0
- package/dist/esm/v2/patterns/FormSection.js +190 -0
- package/dist/esm/v2/patterns/FormSection.js.map +1 -0
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js +110 -0
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -0
- package/dist/esm/v2/patterns/FormikCombobox.js +115 -0
- package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -0
- package/dist/esm/v2/patterns/FormikDatePicker.js +196 -0
- package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -0
- package/dist/esm/v2/patterns/FormikErrorFocus.js +77 -0
- package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -0
- package/dist/esm/v2/patterns/FormikFile.js +148 -0
- package/dist/esm/v2/patterns/FormikFile.js.map +1 -0
- package/dist/esm/v2/patterns/FormikInput.js +127 -0
- package/dist/esm/v2/patterns/FormikInput.js.map +1 -0
- package/dist/esm/v2/patterns/FormikReferentielField.js +116 -0
- package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -0
- package/dist/esm/v2/patterns/FormikSelect.js +159 -0
- package/dist/esm/v2/patterns/FormikSelect.js.map +1 -0
- package/dist/esm/v2/patterns/FormikTextarea.js +76 -0
- package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -0
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +195 -0
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -0
- package/dist/esm/v2/patterns/NetworkErrorBanner.js +72 -0
- package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -0
- package/dist/esm/v2/patterns/PageContent.js +62 -0
- package/dist/esm/v2/patterns/PageContent.js.map +1 -0
- package/dist/esm/v2/patterns/ReferentielField.js +615 -0
- package/dist/esm/v2/patterns/ReferentielField.js.map +1 -0
- package/dist/esm/v2/patterns/SaveFilterDialog.js +197 -0
- package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -0
- package/dist/esm/v2/patterns/SavedFiltersMenu.js +406 -0
- package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -0
- package/dist/esm/v2/patterns/SkeletonPageShell.js +342 -0
- package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -0
- package/dist/esm/v2/patterns/SortableHeader.js +179 -0
- package/dist/esm/v2/patterns/SortableHeader.js.map +1 -0
- package/dist/esm/v2/patterns/Tour.js +471 -0
- package/dist/esm/v2/patterns/Tour.js.map +1 -0
- package/dist/esm/v2/patterns/_dataGridShared.js +431 -0
- package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -0
- package/dist/esm/v2/patterns/_sort.js +112 -0
- package/dist/esm/v2/patterns/_sort.js.map +1 -0
- package/dist/esm/v2/patterns/_useColumnReorder.js +257 -0
- package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -0
- package/dist/esm/v2/patterns/_useColumnResize.js +191 -0
- package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -0
- package/dist/esm/v2/patterns/index.js +95 -0
- package/dist/esm/v2/patterns/index.js.map +1 -0
- package/dist/esm/v2/personalization/PersonalizationProvider.js +168 -0
- package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -0
- package/dist/esm/v2/personalization/adapters/_storageKey.js +60 -0
- package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -0
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +124 -0
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -0
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +70 -0
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -0
- package/dist/esm/v2/personalization/adapters/index.js +11 -0
- package/dist/esm/v2/personalization/adapters/index.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/favorites.js +216 -0
- package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/favoritesView.js +111 -0
- package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/index.js +17 -0
- package/dist/esm/v2/personalization/capabilities/index.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/savedFilters.js +291 -0
- package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -0
- package/dist/esm/v2/personalization/createPersonalizationStore.js +472 -0
- package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -0
- package/dist/esm/v2/personalization/index.js +46 -0
- package/dist/esm/v2/personalization/index.js.map +1 -0
- package/dist/esm/v2/personalization/personalizationContext.js +108 -0
- package/dist/esm/v2/personalization/personalizationContext.js.map +1 -0
- package/dist/esm/v2/personalization/schema.js +92 -0
- package/dist/esm/v2/personalization/schema.js.map +1 -0
- package/dist/esm/v2/personalization/types.js +2 -0
- package/dist/esm/v2/personalization/types.js.map +1 -0
- package/dist/esm/v2/referentiel/ReferentielProvider.js +87 -0
- package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -0
- package/dist/esm/v2/referentiel/index.js +15 -0
- package/dist/esm/v2/referentiel/index.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielClient.js +37 -0
- package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielOptions.js +169 -0
- package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielSearch.js +132 -0
- package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -0
- package/dist/esm/v2/styles/base.css +425 -0
- package/dist/esm/v2/styles/css.d.ts +10 -0
- package/dist/esm/v2/styles/index.js +12 -0
- package/dist/esm/v2/styles/index.js.map +1 -0
- package/dist/esm/v2/theme/_brand.js +64 -0
- package/dist/esm/v2/theme/_brand.js.map +1 -0
- package/dist/esm/v2/theme/_brandSecondary.js +60 -0
- package/dist/esm/v2/theme/_brandSecondary.js.map +1 -0
- package/dist/esm/v2/theme/createPortnetTheme.js +548 -0
- package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -0
- package/dist/esm/v2/theme/cssVariables.js +198 -0
- package/dist/esm/v2/theme/cssVariables.js.map +1 -0
- package/dist/esm/v2/theme/index.js +32 -0
- package/dist/esm/v2/theme/index.js.map +1 -0
- package/dist/esm/v2/tokens/breakpoints.js +106 -0
- package/dist/esm/v2/tokens/breakpoints.js.map +1 -0
- package/dist/esm/v2/tokens/colors.js +219 -0
- package/dist/esm/v2/tokens/colors.js.map +1 -0
- package/dist/esm/v2/tokens/density.js +98 -0
- package/dist/esm/v2/tokens/density.js.map +1 -0
- package/dist/esm/v2/tokens/index.js +80 -0
- package/dist/esm/v2/tokens/index.js.map +1 -0
- package/dist/esm/v2/tokens/motion.js +88 -0
- package/dist/esm/v2/tokens/motion.js.map +1 -0
- package/dist/esm/v2/tokens/radius.js +22 -0
- package/dist/esm/v2/tokens/radius.js.map +1 -0
- package/dist/esm/v2/tokens/shadows.js +40 -0
- package/dist/esm/v2/tokens/shadows.js.map +1 -0
- package/dist/esm/v2/tokens/spacing.js +51 -0
- package/dist/esm/v2/tokens/spacing.js.map +1 -0
- package/dist/esm/v2/tokens/state.js +41 -0
- package/dist/esm/v2/tokens/state.js.map +1 -0
- package/dist/esm/v2/tokens/statusPalette.js +66 -0
- package/dist/esm/v2/tokens/statusPalette.js.map +1 -0
- package/dist/esm/v2/tokens/tokens.json +153 -0
- package/dist/esm/v2/tokens/typography.js +149 -0
- package/dist/esm/v2/tokens/typography.js.map +1 -0
- package/dist/esm/v2/tokens/zIndex.js +44 -0
- package/dist/esm/v2/tokens/zIndex.js.map +1 -0
- package/dist/esm/v2/types/common.js +2 -0
- package/dist/esm/v2/types/common.js.map +1 -0
- package/dist/esm/v2/types/datagrid.js +2 -0
- package/dist/esm/v2/types/datagrid.js.map +1 -0
- package/dist/esm/v2/types/index.js +12 -0
- package/dist/esm/v2/types/index.js.map +1 -0
- package/dist/esm/v2/utils/apiError.js +281 -0
- package/dist/esm/v2/utils/apiError.js.map +1 -0
- package/dist/esm/v2/utils/contrast.js +157 -0
- package/dist/esm/v2/utils/contrast.js.map +1 -0
- package/dist/esm/v2/utils/cx.js +38 -0
- package/dist/esm/v2/utils/cx.js.map +1 -0
- package/dist/esm/v2/utils/fileDownload.js +226 -0
- package/dist/esm/v2/utils/fileDownload.js.map +1 -0
- package/dist/esm/v2/utils/fmtMoney.js +78 -0
- package/dist/esm/v2/utils/fmtMoney.js.map +1 -0
- package/dist/esm/v2/utils/index.js +43 -0
- package/dist/esm/v2/utils/index.js.map +1 -0
- package/dist/esm/v2/utils/mergeLabels.js +86 -0
- package/dist/esm/v2/utils/mergeLabels.js.map +1 -0
- package/dist/esm/v2/utils/networkStatus.js +114 -0
- package/dist/esm/v2/utils/networkStatus.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -1
- package/dist/v2/__tests__/FieldError.test.js +164 -0
- package/dist/v2/__tests__/FieldError.test.js.map +1 -0
- package/dist/v2/__tests__/FileCard.test.js +148 -0
- package/dist/v2/__tests__/FileCard.test.js.map +1 -0
- package/dist/v2/__tests__/SectionErrorBoundary.test.js +237 -0
- package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
- package/dist/v2/components/Accordion.d.ts +6 -6
- package/dist/v2/components/Accordion.d.ts.map +1 -1
- package/dist/v2/components/Accordion.js.map +1 -1
- package/dist/v2/components/ActionStrip.d.ts +12 -12
- package/dist/v2/components/ActionStrip.d.ts.map +1 -1
- package/dist/v2/components/ActionStrip.js.map +1 -1
- package/dist/v2/components/Banner.d.ts +48 -9
- package/dist/v2/components/Banner.d.ts.map +1 -1
- package/dist/v2/components/Banner.js +116 -35
- package/dist/v2/components/Banner.js.map +1 -1
- package/dist/v2/components/Busy.d.ts +3 -3
- package/dist/v2/components/Busy.d.ts.map +1 -1
- package/dist/v2/components/Busy.js.map +1 -1
- package/dist/v2/components/Button.d.ts +6 -6
- package/dist/v2/components/Button.d.ts.map +1 -1
- package/dist/v2/components/Button.js.map +1 -1
- package/dist/v2/components/CategoryTag.d.ts +3 -3
- package/dist/v2/components/CategoryTag.d.ts.map +1 -1
- package/dist/v2/components/CategoryTag.js.map +1 -1
- package/dist/v2/components/Checkbox.d.ts +11 -11
- package/dist/v2/components/Checkbox.d.ts.map +1 -1
- package/dist/v2/components/Checkbox.js.map +1 -1
- package/dist/v2/components/Chip.d.ts +8 -8
- package/dist/v2/components/Chip.d.ts.map +1 -1
- package/dist/v2/components/Chip.js +2 -1
- package/dist/v2/components/Chip.js.map +1 -1
- package/dist/v2/components/Combobox.d.ts +27 -27
- package/dist/v2/components/Combobox.d.ts.map +1 -1
- package/dist/v2/components/Combobox.js +3 -2
- package/dist/v2/components/Combobox.js.map +1 -1
- package/dist/v2/components/CommandPalette.d.ts +20 -20
- package/dist/v2/components/CommandPalette.d.ts.map +1 -1
- package/dist/v2/components/CommandPalette.js +2 -6
- package/dist/v2/components/CommandPalette.js.map +1 -1
- package/dist/v2/components/ConfirmDialog.d.ts +13 -13
- package/dist/v2/components/ConfirmDialog.d.ts.map +1 -1
- package/dist/v2/components/ConfirmDialog.js +2 -1
- package/dist/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/v2/components/DatePicker.d.ts +11 -11
- package/dist/v2/components/DatePicker.d.ts.map +1 -1
- package/dist/v2/components/DatePicker.js.map +1 -1
- package/dist/v2/components/DateRangePicker.d.ts +16 -16
- package/dist/v2/components/DateRangePicker.d.ts.map +1 -1
- package/dist/v2/components/DateRangePicker.js +2 -1
- package/dist/v2/components/DateRangePicker.js.map +1 -1
- package/dist/v2/components/DateTimePicker.d.ts +11 -11
- package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
- package/dist/v2/components/DateTimePicker.js.map +1 -1
- package/dist/v2/components/Drawer.d.ts +18 -18
- package/dist/v2/components/Drawer.d.ts.map +1 -1
- package/dist/v2/components/Drawer.js +2 -1
- package/dist/v2/components/Drawer.js.map +1 -1
- package/dist/v2/components/Dropzone.d.ts +34 -34
- package/dist/v2/components/Dropzone.d.ts.map +1 -1
- package/dist/v2/components/Dropzone.js +11 -3
- package/dist/v2/components/Dropzone.js.map +1 -1
- package/dist/v2/components/EmptyState.d.ts +7 -7
- package/dist/v2/components/EmptyState.d.ts.map +1 -1
- package/dist/v2/components/EmptyState.js.map +1 -1
- package/dist/v2/components/FavoriteToggle.d.ts +7 -7
- package/dist/v2/components/FavoriteToggle.d.ts.map +1 -1
- package/dist/v2/components/FavoriteToggle.js +2 -1
- package/dist/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/v2/components/Field.d.ts +17 -12
- package/dist/v2/components/Field.d.ts.map +1 -1
- package/dist/v2/components/Field.js +25 -7
- package/dist/v2/components/Field.js.map +1 -1
- package/dist/v2/components/FieldError.d.ts +78 -0
- package/dist/v2/components/FieldError.d.ts.map +1 -0
- package/dist/v2/components/FieldError.js +131 -0
- package/dist/v2/components/FieldError.js.map +1 -0
- package/dist/v2/components/FieldHelp.d.ts +7 -7
- package/dist/v2/components/FieldHelp.d.ts.map +1 -1
- package/dist/v2/components/FieldHelp.js.map +1 -1
- package/dist/v2/components/FileCard.d.ts +75 -0
- package/dist/v2/components/FileCard.d.ts.map +1 -0
- package/dist/v2/components/FileCard.js +169 -0
- package/dist/v2/components/FileCard.js.map +1 -0
- package/dist/v2/components/FilterTab.d.ts +9 -9
- package/dist/v2/components/FilterTab.d.ts.map +1 -1
- package/dist/v2/components/FilterTab.js +2 -1
- package/dist/v2/components/FilterTab.js.map +1 -1
- package/dist/v2/components/FormGrid.d.ts +9 -4
- package/dist/v2/components/FormGrid.d.ts.map +1 -1
- package/dist/v2/components/FormGrid.js +11 -1
- package/dist/v2/components/FormGrid.js.map +1 -1
- package/dist/v2/components/FormikDisplay.d.ts +6 -6
- package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
- package/dist/v2/components/FormikDisplay.js.map +1 -1
- package/dist/v2/components/Input.d.ts +6 -6
- package/dist/v2/components/Input.d.ts.map +1 -1
- package/dist/v2/components/Input.js.map +1 -1
- package/dist/v2/components/KPICard.d.ts +43 -13
- package/dist/v2/components/KPICard.d.ts.map +1 -1
- package/dist/v2/components/KPICard.js +53 -14
- package/dist/v2/components/KPICard.js.map +1 -1
- package/dist/v2/components/KPIStrip.d.ts +68 -0
- package/dist/v2/components/KPIStrip.d.ts.map +1 -0
- package/dist/v2/components/KPIStrip.js +92 -0
- package/dist/v2/components/KPIStrip.js.map +1 -0
- package/dist/v2/components/KV.d.ts +3 -3
- package/dist/v2/components/KV.d.ts.map +1 -1
- package/dist/v2/components/KV.js.map +1 -1
- package/dist/v2/components/KVGrid.d.ts +2 -2
- package/dist/v2/components/KVGrid.d.ts.map +1 -1
- package/dist/v2/components/KVGrid.js +8 -1
- package/dist/v2/components/KVGrid.js.map +1 -1
- package/dist/v2/components/Layout.d.ts +7 -7
- package/dist/v2/components/Layout.d.ts.map +1 -1
- package/dist/v2/components/Layout.js.map +1 -1
- package/dist/v2/components/MobileRowCard.d.ts +13 -13
- package/dist/v2/components/MobileRowCard.d.ts.map +1 -1
- package/dist/v2/components/MobileRowCard.js.map +1 -1
- package/dist/v2/components/Modal.d.ts +12 -12
- package/dist/v2/components/Modal.d.ts.map +1 -1
- package/dist/v2/components/Modal.js.map +1 -1
- package/dist/v2/components/NetworkErrorPage.d.ts +1 -1
- package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
- package/dist/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/v2/components/NumberInput.d.ts +14 -14
- package/dist/v2/components/NumberInput.d.ts.map +1 -1
- package/dist/v2/components/NumberInput.js +7 -6
- package/dist/v2/components/NumberInput.js.map +1 -1
- package/dist/v2/components/OverflowMenu.d.ts +14 -14
- package/dist/v2/components/OverflowMenu.d.ts.map +1 -1
- package/dist/v2/components/OverflowMenu.js +4 -8
- package/dist/v2/components/OverflowMenu.js.map +1 -1
- package/dist/v2/components/PdfViewer.d.ts +9 -9
- package/dist/v2/components/PdfViewer.d.ts.map +1 -1
- package/dist/v2/components/PdfViewer.js.map +1 -1
- package/dist/v2/components/ProgressBar.d.ts +10 -10
- package/dist/v2/components/ProgressBar.d.ts.map +1 -1
- package/dist/v2/components/ProgressBar.js.map +1 -1
- package/dist/v2/components/Radio.d.ts +7 -7
- package/dist/v2/components/Radio.d.ts.map +1 -1
- package/dist/v2/components/Radio.js.map +1 -1
- package/dist/v2/components/SectionErrorBoundary.d.ts +89 -0
- package/dist/v2/components/SectionErrorBoundary.d.ts.map +1 -0
- package/dist/v2/components/SectionErrorBoundary.js +221 -0
- package/dist/v2/components/SectionErrorBoundary.js.map +1 -0
- package/dist/v2/components/SectionHeader.d.ts +5 -5
- package/dist/v2/components/SectionHeader.d.ts.map +1 -1
- package/dist/v2/components/SectionHeader.js.map +1 -1
- package/dist/v2/components/Segmented.d.ts +11 -11
- package/dist/v2/components/Segmented.d.ts.map +1 -1
- package/dist/v2/components/Segmented.js.map +1 -1
- package/dist/v2/components/Select.d.ts +33 -15
- package/dist/v2/components/Select.d.ts.map +1 -1
- package/dist/v2/components/Select.js +147 -30
- package/dist/v2/components/Select.js.map +1 -1
- package/dist/v2/components/ServerErrorPage.d.ts +1 -1
- package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
- package/dist/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/v2/components/Skeleton.d.ts +15 -15
- package/dist/v2/components/Skeleton.d.ts.map +1 -1
- package/dist/v2/components/Skeleton.js.map +1 -1
- package/dist/v2/components/SkipLink.d.ts +2 -2
- package/dist/v2/components/SkipLink.d.ts.map +1 -1
- package/dist/v2/components/SkipLink.js.map +1 -1
- package/dist/v2/components/Status.d.ts +3 -3
- package/dist/v2/components/Status.d.ts.map +1 -1
- package/dist/v2/components/Status.js.map +1 -1
- package/dist/v2/components/Stepper.d.ts +28 -22
- package/dist/v2/components/Stepper.d.ts.map +1 -1
- package/dist/v2/components/Stepper.js +31 -5
- package/dist/v2/components/Stepper.js.map +1 -1
- package/dist/v2/components/Surface.d.ts +94 -0
- package/dist/v2/components/Surface.d.ts.map +1 -0
- package/dist/v2/components/Surface.js +163 -0
- package/dist/v2/components/Surface.js.map +1 -0
- package/dist/v2/components/Switch.d.ts +4 -4
- package/dist/v2/components/Switch.d.ts.map +1 -1
- package/dist/v2/components/Switch.js.map +1 -1
- package/dist/v2/components/Tabs.d.ts +6 -6
- package/dist/v2/components/Tabs.d.ts.map +1 -1
- package/dist/v2/components/Tabs.js.map +1 -1
- package/dist/v2/components/TelInput.d.ts +8 -8
- package/dist/v2/components/TelInput.d.ts.map +1 -1
- package/dist/v2/components/TelInput.js +18 -18
- package/dist/v2/components/TelInput.js.map +1 -1
- package/dist/v2/components/Textarea.d.ts +1 -1
- package/dist/v2/components/Textarea.d.ts.map +1 -1
- package/dist/v2/components/Textarea.js.map +1 -1
- package/dist/v2/components/TimePicker.d.ts +11 -11
- package/dist/v2/components/TimePicker.d.ts.map +1 -1
- package/dist/v2/components/TimePicker.js.map +1 -1
- package/dist/v2/components/Toast.d.ts +6 -6
- package/dist/v2/components/Toast.d.ts.map +1 -1
- package/dist/v2/components/Toast.js +9 -8
- package/dist/v2/components/Toast.js.map +1 -1
- package/dist/v2/components/Tooltip.d.ts +1 -1
- package/dist/v2/components/Tooltip.d.ts.map +1 -1
- package/dist/v2/components/Tooltip.js.map +1 -1
- package/dist/v2/components/index.d.ts +143 -0
- package/dist/v2/components/index.d.ts.map +1 -1
- package/dist/v2/components/index.js +35 -0
- package/dist/v2/components/index.js.map +1 -1
- package/dist/v2/models/favorite.d.ts +1 -1
- package/dist/v2/models/favorite.d.ts.map +1 -1
- package/dist/v2/models/favorite.js.map +1 -1
- package/dist/v2/models/personalization.d.ts +13 -13
- 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 +11 -11
- 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 -8
- package/dist/v2/models/savedFilter.d.ts.map +1 -1
- package/dist/v2/models/savedFilter.js.map +1 -1
- package/dist/v2/patterns/ActionBar.d.ts +33 -33
- package/dist/v2/patterns/ActionBar.d.ts.map +1 -1
- package/dist/v2/patterns/ActionBar.js +2 -1
- package/dist/v2/patterns/ActionBar.js.map +1 -1
- package/dist/v2/patterns/BulkActionBar.d.ts +12 -12
- package/dist/v2/patterns/BulkActionBar.d.ts.map +1 -1
- package/dist/v2/patterns/BulkActionBar.js +2 -1
- package/dist/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/v2/patterns/CollapsibleDataGrid.d.ts +15 -15
- package/dist/v2/patterns/CollapsibleDataGrid.d.ts.map +1 -1
- package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/v2/patterns/ColumnsToggle.d.ts +7 -7
- package/dist/v2/patterns/ColumnsToggle.d.ts.map +1 -1
- package/dist/v2/patterns/ColumnsToggle.js +4 -8
- package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -12
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.js +9 -8
- package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/v2/patterns/DataGridToolbar.d.ts +40 -40
- package/dist/v2/patterns/DataGridToolbar.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridToolbar.js +2 -1
- package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/v2/patterns/DataGridVirtualized.d.ts +27 -27
- package/dist/v2/patterns/DataGridVirtualized.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts +5 -5
- package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts.map +1 -1
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/v2/patterns/FavoriteColumn.d.ts +6 -6
- package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
- package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/v2/patterns/FavoritesFilter.d.ts +10 -10
- package/dist/v2/patterns/FavoritesFilter.d.ts.map +1 -1
- package/dist/v2/patterns/FavoritesFilter.js +2 -1
- package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/v2/patterns/FormErrorSummary.d.ts +4 -4
- package/dist/v2/patterns/FormErrorSummary.d.ts.map +1 -1
- package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/v2/patterns/FormPageShell.d.ts +4 -4
- package/dist/v2/patterns/FormPageShell.d.ts.map +1 -1
- package/dist/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/v2/patterns/FormSection.d.ts +19 -8
- package/dist/v2/patterns/FormSection.d.ts.map +1 -1
- package/dist/v2/patterns/FormSection.js +106 -71
- package/dist/v2/patterns/FormSection.js.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts +6 -6
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/v2/patterns/FormikCombobox.d.ts +11 -11
- package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.d.ts +36 -8
- package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.js +27 -1
- package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/v2/patterns/FormikErrorFocus.d.ts +3 -3
- package/dist/v2/patterns/FormikErrorFocus.d.ts.map +1 -1
- package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/v2/patterns/FormikFile.d.ts +8 -8
- package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
- package/dist/v2/patterns/FormikFile.js.map +1 -1
- package/dist/v2/patterns/FormikInput.d.ts +41 -6
- package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
- package/dist/v2/patterns/FormikInput.js +49 -1
- package/dist/v2/patterns/FormikInput.js.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.d.ts +8 -8
- package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/v2/patterns/FormikSelect.d.ts +33 -12
- package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
- package/dist/v2/patterns/FormikSelect.js +28 -2
- package/dist/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/v2/patterns/FormikTextarea.d.ts +5 -5
- package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
- package/dist/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +7 -7
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.js +2 -6
- package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/v2/patterns/NetworkErrorBanner.d.ts +4 -4
- package/dist/v2/patterns/NetworkErrorBanner.d.ts.map +1 -1
- package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/v2/patterns/PageContent.d.ts +3 -3
- package/dist/v2/patterns/PageContent.d.ts.map +1 -1
- package/dist/v2/patterns/PageContent.js.map +1 -1
- package/dist/v2/patterns/ReferentielField.d.ts +49 -49
- package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/ReferentielField.js +2 -1
- package/dist/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/v2/patterns/SaveFilterDialog.d.ts +10 -10
- package/dist/v2/patterns/SaveFilterDialog.d.ts.map +1 -1
- package/dist/v2/patterns/SaveFilterDialog.js +9 -8
- package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/v2/patterns/SavedFiltersMenu.d.ts +7 -7
- package/dist/v2/patterns/SavedFiltersMenu.d.ts.map +1 -1
- package/dist/v2/patterns/SavedFiltersMenu.js +9 -8
- package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/v2/patterns/SkeletonPageShell.d.ts +7 -7
- package/dist/v2/patterns/SkeletonPageShell.d.ts.map +1 -1
- package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/v2/patterns/SortableHeader.d.ts +1 -1
- package/dist/v2/patterns/SortableHeader.d.ts.map +1 -1
- package/dist/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/v2/patterns/Tour.d.ts +12 -12
- package/dist/v2/patterns/Tour.d.ts.map +1 -1
- package/dist/v2/patterns/Tour.js +9 -8
- package/dist/v2/patterns/Tour.js.map +1 -1
- package/dist/v2/patterns/_dataGridShared.d.ts +25 -6
- package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
- package/dist/v2/patterns/_dataGridShared.js +37 -3
- package/dist/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/v2/patterns/_useColumnReorder.d.ts +1 -1
- package/dist/v2/patterns/_useColumnReorder.d.ts.map +1 -1
- package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/v2/patterns/_useColumnResize.d.ts +1 -1
- package/dist/v2/patterns/_useColumnResize.d.ts.map +1 -1
- package/dist/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/v2/patterns/index.d.ts +27 -0
- package/dist/v2/patterns/index.d.ts.map +1 -1
- package/dist/v2/patterns/index.js.map +1 -1
- package/dist/v2/personalization/PersonalizationProvider.d.ts +9 -9
- package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
- package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts.map +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts.map +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/v2/personalization/capabilities/favoritesView.d.ts +3 -3
- package/dist/v2/personalization/capabilities/favoritesView.d.ts.map +1 -1
- package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/v2/personalization/capabilities/savedFilters.d.ts +3 -3
- package/dist/v2/personalization/capabilities/savedFilters.d.ts.map +1 -1
- package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.d.ts +8 -8
- package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/v2/personalization/schema.d.ts +2 -2
- package/dist/v2/personalization/schema.d.ts.map +1 -1
- package/dist/v2/personalization/schema.js.map +1 -1
- package/dist/v2/personalization/types.d.ts +19 -19
- package/dist/v2/personalization/types.d.ts.map +1 -1
- package/dist/v2/personalization/types.js.map +1 -1
- package/dist/v2/referentiel/ReferentielProvider.d.ts +4 -4
- package/dist/v2/referentiel/ReferentielProvider.d.ts.map +1 -1
- package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.d.ts +4 -4
- package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.d.ts +3 -3
- package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/v2/theme/createPortnetTheme.d.ts +32 -7
- package/dist/v2/theme/createPortnetTheme.d.ts.map +1 -1
- package/dist/v2/theme/createPortnetTheme.js +25 -1
- package/dist/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/v2/types/datagrid.d.ts +59 -59
- package/dist/v2/types/datagrid.d.ts.map +1 -1
- package/dist/v2/types/datagrid.js.map +1 -1
- package/dist/v2/utils/apiError.d.ts +65 -4
- package/dist/v2/utils/apiError.d.ts.map +1 -1
- package/dist/v2/utils/apiError.js +69 -6
- package/dist/v2/utils/apiError.js.map +1 -1
- package/dist/v2/utils/index.d.ts +1 -0
- package/dist/v2/utils/index.d.ts.map +1 -1
- package/dist/v2/utils/index.js +7 -0
- package/dist/v2/utils/index.js.map +1 -1
- package/dist/v2/utils/mergeLabels.d.ts +59 -0
- package/dist/v2/utils/mergeLabels.d.ts.map +1 -0
- package/dist/v2/utils/mergeLabels.js +93 -0
- package/dist/v2/utils/mergeLabels.js.map +1 -0
- package/package.json +23 -15
|
@@ -52,29 +52,29 @@ export interface DateRangeValue {
|
|
|
52
52
|
endDate: Date | null;
|
|
53
53
|
}
|
|
54
54
|
export interface DateRangePreset {
|
|
55
|
-
id?: string | number;
|
|
55
|
+
id?: string | number | undefined;
|
|
56
56
|
label: React.ReactNode;
|
|
57
57
|
from: Date;
|
|
58
58
|
to: Date;
|
|
59
59
|
}
|
|
60
60
|
export interface DateRangeLabels {
|
|
61
|
-
startLabel?: React.ReactNode;
|
|
62
|
-
endLabel?: React.ReactNode;
|
|
63
|
-
presetsAria?: string;
|
|
61
|
+
startLabel?: React.ReactNode | undefined;
|
|
62
|
+
endLabel?: React.ReactNode | undefined;
|
|
63
|
+
presetsAria?: string | undefined;
|
|
64
64
|
}
|
|
65
65
|
export interface DateRangePickerProps {
|
|
66
|
-
value?: DateRangeValue | null;
|
|
67
|
-
onChange?: (value: DateRangeValue) => void;
|
|
68
|
-
minDate?: Date | null;
|
|
69
|
-
maxDate?: Date | null;
|
|
70
|
-
disablePast?: boolean;
|
|
71
|
-
disableFuture?: boolean;
|
|
72
|
-
disabled?: boolean;
|
|
73
|
-
readOnly?: boolean;
|
|
74
|
-
presets?: DateRangePreset[];
|
|
75
|
-
adapterLocale?: string;
|
|
76
|
-
labels?: DateRangeLabels;
|
|
77
|
-
sx?: SxProps<Theme
|
|
66
|
+
value?: DateRangeValue | null | undefined;
|
|
67
|
+
onChange?: ((value: DateRangeValue) => void) | undefined;
|
|
68
|
+
minDate?: Date | null | undefined;
|
|
69
|
+
maxDate?: Date | null | undefined;
|
|
70
|
+
disablePast?: boolean | undefined;
|
|
71
|
+
disableFuture?: boolean | undefined;
|
|
72
|
+
disabled?: boolean | undefined;
|
|
73
|
+
readOnly?: boolean | undefined;
|
|
74
|
+
presets?: DateRangePreset[] | undefined;
|
|
75
|
+
adapterLocale?: string | undefined;
|
|
76
|
+
labels?: DateRangeLabels | undefined;
|
|
77
|
+
sx?: SxProps<Theme> | undefined;
|
|
78
78
|
}
|
|
79
79
|
declare function DateRangePicker({ value, onChange, minDate, maxDate, disablePast, disableFuture, disabled, readOnly, presets, adapterLocale, labels, sx, }: DateRangePickerProps): React.JSX.Element;
|
|
80
80
|
export default DateRangePicker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/DateRangePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/DateRangePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAI3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACjC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,IAAI,CAAC;CACV;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACzD,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACrC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;CACjC;AAwFD,iBAAS,eAAe,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,OAAO,EACP,WAAmB,EACnB,aAAqB,EACrB,QAAgB,EAChB,QAAgB,EAChB,OAAO,EACP,aAAoB,EACpB,MAAM,EACN,EAAE,GACH,EAAE,oBAAoB,qBAkGtB;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -7,6 +7,7 @@ exports["default"] = void 0;
|
|
|
7
7
|
var React = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
9
9
|
var _DatePicker = _interopRequireDefault(require("./DatePicker"));
|
|
10
|
+
var _mergeLabels = require("../utils/mergeLabels");
|
|
10
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
12
13
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -176,7 +177,7 @@ function DateRangePicker(_ref) {
|
|
|
176
177
|
adapterLocale = _ref$adapterLocale === void 0 ? "fr" : _ref$adapterLocale,
|
|
177
178
|
labels = _ref.labels,
|
|
178
179
|
sx = _ref.sx;
|
|
179
|
-
var L =
|
|
180
|
+
var L = (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, labels);
|
|
180
181
|
var startDate = (_value$startDate = value === null || value === void 0 ? void 0 : value.startDate) !== null && _value$startDate !== void 0 ? _value$startDate : null;
|
|
181
182
|
var endDate = (_value$endDate = value === null || value === void 0 ? void 0 : value.endDate) !== null && _value$endDate !== void 0 ? _value$endDate : null;
|
|
182
183
|
var startInputId = React.useId();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangePicker.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_DatePicker","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","DEFAULT_LABELS","freeze","startLabel","endLabel","presetsAria","ROOT_SX","display","flexDirection","xs","sm","gap","PRESETS_GROUP_SX","flexWrap","minWidth","PICKERS_ROW_SX","flex","alignItems","FIELD_BLOCK_SX","FIELD_LABEL_SX","fontSize","fontWeight","color","marginBottom","SEPARATOR_SX","paddingBottom","transform","PRESET_BUTTON_SX","font","background","border","padding","borderRadius","cursor","textAlign","whiteSpace","minHeight","borderColor","outline","outlineOffset","opacity","DateRangePicker","_ref","_value$startDate","_value$endDate","onChange","minDate","maxDate","_ref$disablePast","disablePast","_ref$disableFuture","disableFuture","_ref$disabled","disabled","_ref$readOnly","readOnly","presets","_ref$adapterLocale","adapterLocale","labels","sx","L","startDate","endDate","startInputId","useId","endInputId","setStart","next","newEnd","setEnd","newStart","applyPreset","preset","from","to","endEffectiveMinDate","jsxs","children","jsx","role","map","p","_p$id","component","type","onClick","label","id","htmlFor","inputProps","_default","exports"],"sources":["../../../src/lib/v2/components/DateRangePicker.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport DatePicker from \"./DatePicker\";\r\n\r\n/**\r\n * DateRangePicker — Portnet UI v2\r\n *\r\n * Two DatePicker instances side-by-side with cross-validation and\r\n * optional preset shortcuts. Built without @mui/x-date-pickers-pro —\r\n * see commit message for rationale.\r\n *\r\n * <Field label=\"Période\">\r\n * <DateRangePicker\r\n * value={{ startDate: from, endDate: to }}\r\n * onChange={({ startDate, endDate }) => setRange({ from: startDate, to: endDate })}\r\n * presets={[\r\n * { label: \"Aujourd'hui\", from: today, to: today },\r\n * { label: \"7 derniers jours\", from: weekAgo, to: today },\r\n * { label: \"Ce mois\", from: monthStart, to: monthEnd },\r\n * ]}\r\n * />\r\n * </Field>\r\n *\r\n * Value contract:\r\n * - value: { startDate: Date|null, endDate: Date|null } | null\r\n * - onChange({ startDate, endDate }) — both fields always included.\r\n * - Invalid dates from inner pickers come through as null; the\r\n * range stays consistent.\r\n *\r\n * Cross-validation:\r\n * - Picking startDate > endDate clamps endDate to startDate.\r\n * - Picking endDate < startDate clamps startDate to endDate.\r\n * - The end picker's effective minDate is max(startDate, minDate\r\n * prop) so the calendar dialog itself prevents invalid selection.\r\n *\r\n * Presets:\r\n * - Host-supplied. Shape: { id?, label, from, to }.\r\n * - Clicking a preset fires onChange with the preset's range.\r\n * - Lib ships NO default presets (locale + business meaning vary).\r\n *\r\n * A11y:\r\n * - Each inner DatePicker carries its own label via React.useId\r\n * plumbed through inputProps.id + <label htmlFor>.\r\n * - The presets group is wrapped in role=\"group\" with an\r\n * aria-label so SR users hear \"Raccourcis\" before the buttons.\r\n *\r\n * Locale + i18n:\r\n * - adapterLocale forwards to BOTH inner pickers.\r\n * - labels.{startLabel, endLabel} override the FR defaults.\r\n * - presets.label is host-controlled, host owns translation.\r\n */\r\n\r\nexport interface DateRangeValue {\r\n startDate: Date | null;\r\n endDate: Date | null;\r\n}\r\n\r\nexport interface DateRangePreset {\r\n id?: string | number;\r\n label: React.ReactNode;\r\n from: Date;\r\n to: Date;\r\n}\r\n\r\nexport interface DateRangeLabels {\r\n startLabel?: React.ReactNode;\r\n endLabel?: React.ReactNode;\r\n presetsAria?: string;\r\n}\r\n\r\nexport interface DateRangePickerProps {\r\n value?: DateRangeValue | null;\r\n onChange?: (value: DateRangeValue) => void;\r\n minDate?: Date | null;\r\n maxDate?: Date | null;\r\n disablePast?: boolean;\r\n disableFuture?: boolean;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n presets?: DateRangePreset[];\r\n adapterLocale?: string;\r\n labels?: DateRangeLabels;\r\n sx?: SxProps<Theme>;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n startLabel: \"Du\",\r\n endLabel: \"Au\",\r\n presetsAria: \"Raccourcis\",\r\n});\r\n\r\n// Hoisted sx for visible elements that don't depend on props. The\r\n// preset button sx is hoisted too — same emotion-cache rationale as\r\n// Batch 14 D5.\r\nconst ROOT_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: { xs: \"column\", sm: \"row\" },\r\n gap: \"var(--s-3)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PRESETS_GROUP_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: { xs: \"row\", sm: \"column\" },\r\n gap: \"var(--s-1)\",\r\n flexWrap: \"wrap\",\r\n minWidth: { sm: 140 },\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PICKERS_ROW_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: { xs: \"column\", sm: \"row\" },\r\n gap: \"var(--s-2)\",\r\n flex: 1,\r\n alignItems: { sm: \"flex-end\" },\r\n} satisfies SxProps<Theme>);\r\n\r\nconst FIELD_BLOCK_SX = Object.freeze({\r\n flex: 1,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst FIELD_LABEL_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n color: \"var(--fg-muted)\",\r\n display: \"block\",\r\n marginBottom: \"var(--s-1)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n// Visual range separator. transform: scaleX(...) flips on [dir=\"rtl\"]\r\n// via --pui-rtl-flip (declared in base.css). Hidden from SR — the\r\n// labels Du / Au already convey the relationship.\r\nconst SEPARATOR_SX = Object.freeze({\r\n flex: \"0 0 auto\",\r\n color: \"var(--fg-muted)\",\r\n fontSize: \"var(--text-sm)\",\r\n // align with the inputs (which sit at the bottom of FIELD_BLOCK_SX\r\n // because the label is above them in the same column).\r\n paddingBottom: \"var(--s-2)\",\r\n transform: \"scaleX(var(--pui-rtl-flip, 1))\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PRESET_BUTTON_SX = Object.freeze({\r\n font: \"inherit\",\r\n background: \"transparent\",\r\n border: \"1px solid var(--border)\",\r\n color: \"var(--fg)\",\r\n padding: \"var(--s-1) var(--s-3)\",\r\n borderRadius: \"var(--r-sm)\",\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n cursor: \"pointer\",\r\n textAlign: \"start\", // RTL-safe equivalent of \"left\"\r\n whiteSpace: \"nowrap\",\r\n minHeight: \"var(--tactile-min)\",\r\n \"&:hover:not(:disabled)\": {\r\n background: \"var(--bg-hover)\",\r\n borderColor: \"var(--accent)\",\r\n color: \"var(--accent)\",\r\n },\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n \"&:disabled\": {\r\n opacity: 0.5,\r\n cursor: \"not-allowed\",\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\nfunction DateRangePicker({\r\n value,\r\n onChange,\r\n minDate,\r\n maxDate,\r\n disablePast = false,\r\n disableFuture = false,\r\n disabled = false,\r\n readOnly = false,\r\n presets,\r\n adapterLocale = \"fr\",\r\n labels,\r\n sx,\r\n}: DateRangePickerProps) {\r\n const L = labels ? { ...DEFAULT_LABELS, ...labels } : DEFAULT_LABELS;\r\n const startDate = value?.startDate ?? null;\r\n const endDate = value?.endDate ?? null;\r\n\r\n const startInputId = React.useId();\r\n const endInputId = React.useId();\r\n\r\n const setStart = (next: Date | null) => {\r\n if (!onChange) return;\r\n let newEnd = endDate;\r\n // Cross-validation: clamp end UP if the new start exceeds it.\r\n if (next && endDate && next > endDate) newEnd = next;\r\n onChange({ startDate: next, endDate: newEnd });\r\n };\r\n\r\n const setEnd = (next: Date | null) => {\r\n if (!onChange) return;\r\n let newStart = startDate;\r\n // Cross-validation: clamp start DOWN if the new end precedes it.\r\n if (next && startDate && next < startDate) newStart = next;\r\n onChange({ startDate: newStart, endDate: next });\r\n };\r\n\r\n const applyPreset = (preset: DateRangePreset) => {\r\n if (!onChange) return;\r\n onChange({ startDate: preset.from, endDate: preset.to });\r\n };\r\n\r\n // The end picker's effective minDate is max(startDate, props.minDate).\r\n // Computing it here means the calendar dialog itself disables dates\r\n // before the start — the cross-validation in setEnd is the fallback\r\n // for direct text-typing.\r\n const endEffectiveMinDate =\r\n startDate && minDate\r\n ? (startDate > minDate ? startDate : minDate)\r\n : (startDate || minDate);\r\n\r\n return (\r\n <Box sx={sx ? { ...ROOT_SX, ...sx } : ROOT_SX}>\r\n {presets && presets.length > 0 && (\r\n <Box role=\"group\" aria-label={L.presetsAria} sx={PRESETS_GROUP_SX}>\r\n {presets.map((p, i) => (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n key={p.id ?? i}\r\n onClick={() => applyPreset(p)}\r\n disabled={disabled || readOnly}\r\n sx={PRESET_BUTTON_SX}\r\n >\r\n {p.label}\r\n </Box>\r\n ))}\r\n </Box>\r\n )}\r\n\r\n <Box sx={PICKERS_ROW_SX}>\r\n <Box sx={FIELD_BLOCK_SX}>\r\n <Box component=\"label\" htmlFor={startInputId} sx={FIELD_LABEL_SX}>\r\n {L.startLabel}\r\n </Box>\r\n <DatePicker\r\n value={startDate}\r\n onChange={setStart}\r\n {...(minDate != null ? { minDate } : {})}\r\n {...(maxDate != null ? { maxDate } : {})}\r\n disablePast={disablePast}\r\n disableFuture={disableFuture}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n adapterLocale={adapterLocale}\r\n inputProps={{ id: startInputId }}\r\n />\r\n </Box>\r\n\r\n <Box aria-hidden=\"true\" sx={SEPARATOR_SX}>→</Box>\r\n\r\n <Box sx={FIELD_BLOCK_SX}>\r\n <Box component=\"label\" htmlFor={endInputId} sx={FIELD_LABEL_SX}>\r\n {L.endLabel}\r\n </Box>\r\n <DatePicker\r\n value={endDate}\r\n onChange={setEnd}\r\n {...(endEffectiveMinDate != null ? { minDate: endEffectiveMinDate } : {})}\r\n {...(maxDate != null ? { maxDate } : {})}\r\n disablePast={disablePast}\r\n disableFuture={disableFuture}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n adapterLocale={adapterLocale}\r\n inputProps={{ id: endInputId }}\r\n />\r\n </Box>\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n\r\nexport default DateRangePicker;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DateRangePicker.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_DatePicker","_mergeLabels","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","DEFAULT_LABELS","freeze","startLabel","endLabel","presetsAria","ROOT_SX","display","flexDirection","xs","sm","gap","PRESETS_GROUP_SX","flexWrap","minWidth","PICKERS_ROW_SX","flex","alignItems","FIELD_BLOCK_SX","FIELD_LABEL_SX","fontSize","fontWeight","color","marginBottom","SEPARATOR_SX","paddingBottom","transform","PRESET_BUTTON_SX","font","background","border","padding","borderRadius","cursor","textAlign","whiteSpace","minHeight","borderColor","outline","outlineOffset","opacity","DateRangePicker","_ref","_value$startDate","_value$endDate","onChange","minDate","maxDate","_ref$disablePast","disablePast","_ref$disableFuture","disableFuture","_ref$disabled","disabled","_ref$readOnly","readOnly","presets","_ref$adapterLocale","adapterLocale","labels","sx","L","mergeLabels","startDate","endDate","startInputId","useId","endInputId","setStart","next","newEnd","setEnd","newStart","applyPreset","preset","from","to","endEffectiveMinDate","jsxs","children","jsx","role","map","p","_p$id","component","type","onClick","label","id","htmlFor","inputProps","_default","exports"],"sources":["../../../src/lib/v2/components/DateRangePicker.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport DatePicker from \"./DatePicker\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * DateRangePicker — Portnet UI v2\r\n *\r\n * Two DatePicker instances side-by-side with cross-validation and\r\n * optional preset shortcuts. Built without @mui/x-date-pickers-pro —\r\n * see commit message for rationale.\r\n *\r\n * <Field label=\"Période\">\r\n * <DateRangePicker\r\n * value={{ startDate: from, endDate: to }}\r\n * onChange={({ startDate, endDate }) => setRange({ from: startDate, to: endDate })}\r\n * presets={[\r\n * { label: \"Aujourd'hui\", from: today, to: today },\r\n * { label: \"7 derniers jours\", from: weekAgo, to: today },\r\n * { label: \"Ce mois\", from: monthStart, to: monthEnd },\r\n * ]}\r\n * />\r\n * </Field>\r\n *\r\n * Value contract:\r\n * - value: { startDate: Date|null, endDate: Date|null } | null\r\n * - onChange({ startDate, endDate }) — both fields always included.\r\n * - Invalid dates from inner pickers come through as null; the\r\n * range stays consistent.\r\n *\r\n * Cross-validation:\r\n * - Picking startDate > endDate clamps endDate to startDate.\r\n * - Picking endDate < startDate clamps startDate to endDate.\r\n * - The end picker's effective minDate is max(startDate, minDate\r\n * prop) so the calendar dialog itself prevents invalid selection.\r\n *\r\n * Presets:\r\n * - Host-supplied. Shape: { id?, label, from, to }.\r\n * - Clicking a preset fires onChange with the preset's range.\r\n * - Lib ships NO default presets (locale + business meaning vary).\r\n *\r\n * A11y:\r\n * - Each inner DatePicker carries its own label via React.useId\r\n * plumbed through inputProps.id + <label htmlFor>.\r\n * - The presets group is wrapped in role=\"group\" with an\r\n * aria-label so SR users hear \"Raccourcis\" before the buttons.\r\n *\r\n * Locale + i18n:\r\n * - adapterLocale forwards to BOTH inner pickers.\r\n * - labels.{startLabel, endLabel} override the FR defaults.\r\n * - presets.label is host-controlled, host owns translation.\r\n */\r\n\r\nexport interface DateRangeValue {\r\n startDate: Date | null;\r\n endDate: Date | null;\r\n}\r\n\r\nexport interface DateRangePreset {\r\n id?: string | number | undefined;\r\n label: React.ReactNode;\r\n from: Date;\r\n to: Date;\r\n}\r\n\r\nexport interface DateRangeLabels {\r\n startLabel?: React.ReactNode | undefined;\r\n endLabel?: React.ReactNode | undefined;\r\n presetsAria?: string | undefined;\r\n}\r\n\r\nexport interface DateRangePickerProps {\r\n value?: DateRangeValue | null | undefined;\r\n onChange?: ((value: DateRangeValue) => void) | undefined;\r\n minDate?: Date | null | undefined;\r\n maxDate?: Date | null | undefined;\r\n disablePast?: boolean | undefined;\r\n disableFuture?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n readOnly?: boolean | undefined;\r\n presets?: DateRangePreset[] | undefined;\r\n adapterLocale?: string | undefined;\r\n labels?: DateRangeLabels | undefined;\r\n sx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n startLabel: \"Du\",\r\n endLabel: \"Au\",\r\n presetsAria: \"Raccourcis\",\r\n});\r\n\r\n// Hoisted sx for visible elements that don't depend on props. The\r\n// preset button sx is hoisted too — same emotion-cache rationale as\r\n// Batch 14 D5.\r\nconst ROOT_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: { xs: \"column\", sm: \"row\" },\r\n gap: \"var(--s-3)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PRESETS_GROUP_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: { xs: \"row\", sm: \"column\" },\r\n gap: \"var(--s-1)\",\r\n flexWrap: \"wrap\",\r\n minWidth: { sm: 140 },\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PICKERS_ROW_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: { xs: \"column\", sm: \"row\" },\r\n gap: \"var(--s-2)\",\r\n flex: 1,\r\n alignItems: { sm: \"flex-end\" },\r\n} satisfies SxProps<Theme>);\r\n\r\nconst FIELD_BLOCK_SX = Object.freeze({\r\n flex: 1,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst FIELD_LABEL_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n color: \"var(--fg-muted)\",\r\n display: \"block\",\r\n marginBottom: \"var(--s-1)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n// Visual range separator. transform: scaleX(...) flips on [dir=\"rtl\"]\r\n// via --pui-rtl-flip (declared in base.css). Hidden from SR — the\r\n// labels Du / Au already convey the relationship.\r\nconst SEPARATOR_SX = Object.freeze({\r\n flex: \"0 0 auto\",\r\n color: \"var(--fg-muted)\",\r\n fontSize: \"var(--text-sm)\",\r\n // align with the inputs (which sit at the bottom of FIELD_BLOCK_SX\r\n // because the label is above them in the same column).\r\n paddingBottom: \"var(--s-2)\",\r\n transform: \"scaleX(var(--pui-rtl-flip, 1))\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PRESET_BUTTON_SX = Object.freeze({\r\n font: \"inherit\",\r\n background: \"transparent\",\r\n border: \"1px solid var(--border)\",\r\n color: \"var(--fg)\",\r\n padding: \"var(--s-1) var(--s-3)\",\r\n borderRadius: \"var(--r-sm)\",\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n cursor: \"pointer\",\r\n textAlign: \"start\", // RTL-safe equivalent of \"left\"\r\n whiteSpace: \"nowrap\",\r\n minHeight: \"var(--tactile-min)\",\r\n \"&:hover:not(:disabled)\": {\r\n background: \"var(--bg-hover)\",\r\n borderColor: \"var(--accent)\",\r\n color: \"var(--accent)\",\r\n },\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n \"&:disabled\": {\r\n opacity: 0.5,\r\n cursor: \"not-allowed\",\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\nfunction DateRangePicker({\r\n value,\r\n onChange,\r\n minDate,\r\n maxDate,\r\n disablePast = false,\r\n disableFuture = false,\r\n disabled = false,\r\n readOnly = false,\r\n presets,\r\n adapterLocale = \"fr\",\r\n labels,\r\n sx,\r\n}: DateRangePickerProps) {\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n const startDate = value?.startDate ?? null;\r\n const endDate = value?.endDate ?? null;\r\n\r\n const startInputId = React.useId();\r\n const endInputId = React.useId();\r\n\r\n const setStart = (next: Date | null) => {\r\n if (!onChange) return;\r\n let newEnd = endDate;\r\n // Cross-validation: clamp end UP if the new start exceeds it.\r\n if (next && endDate && next > endDate) newEnd = next;\r\n onChange({ startDate: next, endDate: newEnd });\r\n };\r\n\r\n const setEnd = (next: Date | null) => {\r\n if (!onChange) return;\r\n let newStart = startDate;\r\n // Cross-validation: clamp start DOWN if the new end precedes it.\r\n if (next && startDate && next < startDate) newStart = next;\r\n onChange({ startDate: newStart, endDate: next });\r\n };\r\n\r\n const applyPreset = (preset: DateRangePreset) => {\r\n if (!onChange) return;\r\n onChange({ startDate: preset.from, endDate: preset.to });\r\n };\r\n\r\n // The end picker's effective minDate is max(startDate, props.minDate).\r\n // Computing it here means the calendar dialog itself disables dates\r\n // before the start — the cross-validation in setEnd is the fallback\r\n // for direct text-typing.\r\n const endEffectiveMinDate =\r\n startDate && minDate\r\n ? (startDate > minDate ? startDate : minDate)\r\n : (startDate || minDate);\r\n\r\n return (\r\n <Box sx={sx ? { ...ROOT_SX, ...sx } : ROOT_SX}>\r\n {presets && presets.length > 0 && (\r\n <Box role=\"group\" aria-label={L.presetsAria} sx={PRESETS_GROUP_SX}>\r\n {presets.map((p, i) => (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n key={p.id ?? i}\r\n onClick={() => applyPreset(p)}\r\n disabled={disabled || readOnly}\r\n sx={PRESET_BUTTON_SX}\r\n >\r\n {p.label}\r\n </Box>\r\n ))}\r\n </Box>\r\n )}\r\n\r\n <Box sx={PICKERS_ROW_SX}>\r\n <Box sx={FIELD_BLOCK_SX}>\r\n <Box component=\"label\" htmlFor={startInputId} sx={FIELD_LABEL_SX}>\r\n {L.startLabel}\r\n </Box>\r\n <DatePicker\r\n value={startDate}\r\n onChange={setStart}\r\n {...(minDate != null ? { minDate } : {})}\r\n {...(maxDate != null ? { maxDate } : {})}\r\n disablePast={disablePast}\r\n disableFuture={disableFuture}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n adapterLocale={adapterLocale}\r\n inputProps={{ id: startInputId }}\r\n />\r\n </Box>\r\n\r\n <Box aria-hidden=\"true\" sx={SEPARATOR_SX}>→</Box>\r\n\r\n <Box sx={FIELD_BLOCK_SX}>\r\n <Box component=\"label\" htmlFor={endInputId} sx={FIELD_LABEL_SX}>\r\n {L.endLabel}\r\n </Box>\r\n <DatePicker\r\n value={endDate}\r\n onChange={setEnd}\r\n {...(endEffectiveMinDate != null ? { minDate: endEffectiveMinDate } : {})}\r\n {...(maxDate != null ? { maxDate } : {})}\r\n disablePast={disablePast}\r\n disableFuture={disableFuture}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n adapterLocale={adapterLocale}\r\n inputProps={{ id: endInputId }}\r\n />\r\n </Box>\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n\r\nexport default DateRangePicker;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,17 +3,17 @@ import type { DateTimePickerProps as MuiDateTimePickerProps } from "@mui/x-date-
|
|
|
3
3
|
import "moment/locale/fr";
|
|
4
4
|
import type { SxProps, Theme } from "@mui/material/styles";
|
|
5
5
|
export interface DateTimePickerProps extends Omit<MuiDateTimePickerProps, "value" | "onChange" | "minDate" | "maxDate" | "slots" | "slotProps" | "sx" | "ref"> {
|
|
6
|
-
value?: Date | null;
|
|
7
|
-
onChange?: (value: Date | null) => void;
|
|
8
|
-
onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement
|
|
9
|
-
minDate?: Date | null;
|
|
10
|
-
maxDate?: Date | null;
|
|
11
|
-
error?: boolean;
|
|
12
|
-
placeholder?: string;
|
|
13
|
-
fullWidth?: boolean;
|
|
14
|
-
inputProps?: React.InputHTMLAttributes<HTMLInputElement
|
|
15
|
-
adapterLocale?: string;
|
|
16
|
-
sx?: SxProps<Theme
|
|
6
|
+
value?: Date | null | undefined;
|
|
7
|
+
onChange?: ((value: Date | null) => void) | undefined;
|
|
8
|
+
onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined;
|
|
9
|
+
minDate?: Date | null | undefined;
|
|
10
|
+
maxDate?: Date | null | undefined;
|
|
11
|
+
error?: boolean | undefined;
|
|
12
|
+
placeholder?: string | undefined;
|
|
13
|
+
fullWidth?: boolean | undefined;
|
|
14
|
+
inputProps?: React.InputHTMLAttributes<HTMLInputElement> | undefined;
|
|
15
|
+
adapterLocale?: string | undefined;
|
|
16
|
+
sx?: SxProps<Theme> | undefined;
|
|
17
17
|
}
|
|
18
18
|
declare const DateTimePicker: React.ForwardRefExoticComponent<DateTimePickerProps & React.RefAttributes<HTMLDivElement>>;
|
|
19
19
|
export declare const DATETIME_FORMAT_CHARTER = "YYYY-MM-DD HH:mm";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimePicker.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/DateTimePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,mBAAmB,IAAI,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAGxG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAuD3D,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,sBAAsB,EACtB,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,KAAK,CACpF;IACD,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"DateTimePicker.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/DateTimePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,mBAAmB,IAAI,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAGxG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAuD3D,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,sBAAsB,EACtB,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,KAAK,CACpF;IACD,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACtD,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,SAAS,CAAC;IACrF,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;IACrE,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;CACjC;AAED,QAAA,MAAM,cAAc,4FAgIlB,CAAC;AAEH,eAAO,MAAM,uBAAuB,qBAAiB,CAAC;AAEtD,eAAe,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimePicker.js","names":["React","_interopRequireWildcard","require","_LocalizationProvider","_DateTimePicker","_AdapterMoment","_pickerShared","_jsxRuntime","_excluded","_excluded2","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","CHARTER_FORMAT","DateTimePicker","forwardRef","_ref","ref","onChange","onBlur","minDate","maxDate","_ref$disablePast","disablePast","_ref$disableFuture","disableFuture","_ref$disabled","disabled","_ref$readOnly","readOnly","error","_ref$placeholder","placeholder","_ref$fullWidth","fullWidth","_ref$ampm","ampm","_ref$minutesStep","minutesStep","inputProps","_ref$adapterLocale","adapterLocale","sx","rest","_ref2","fieldId","id","ariaDescribedby","ariaInvalid","ariaRequired","ariaLabelledby","domRest","handleChange","next","momentToDate","slotProps","useMemo","textField","size","fontVariantNumeric","htmlInput","minDateM","dateToMoment","maxDateM","jsx","LocalizationProvider","dateAdapter","AdapterMoment","children","format","DATETIME_FORMAT_CHARTER","exports","_default"],"sources":["../../../src/lib/v2/components/DateTimePicker.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { LocalizationProvider } from \"@mui/x-date-pickers/LocalizationProvider\";\r\nimport { DateTimePicker as MuiDateTimePicker } from \"@mui/x-date-pickers/DateTimePicker\";\r\nimport type { DateTimePickerProps as MuiDateTimePickerProps } from \"@mui/x-date-pickers/DateTimePicker\";\r\nimport { AdapterMoment } from \"@mui/x-date-pickers/AdapterMoment\";\r\nimport type { Moment } from \"moment\";\r\nimport \"moment/locale/fr\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { dateToMoment, momentToDate } from \"./_pickerShared\";\r\n\r\n/**\r\n * DateTimePicker — Portnet UI v2\r\n *\r\n * Extends the DatePicker family (Charter §03) for date+time-of-day\r\n * workflows: LC validity to the minute, audit-log timestamps,\r\n * scheduled exports, deadline pickers.\r\n *\r\n * <Field label=\"Date d'échéance\">\r\n * <DateTimePicker\r\n * value={deadline}\r\n * onChange={setDeadline}\r\n * minDate={new Date()}\r\n * />\r\n * </Field>\r\n *\r\n * Value contract:\r\n * Same as DatePicker — value/onChange exchange Date | null. Invalid\r\n * dates are coerced to null. Hosts never receive Invalid Date.\r\n *\r\n * Locale:\r\n * adapterLocale defaults to \"fr\". Hosts using other locales must\r\n * import the matching moment locale data themselves:\r\n *\r\n * import \"moment/locale/ar\";\r\n * <DateTimePicker adapterLocale=\"ar\" />\r\n *\r\n * Format:\r\n * Display + parse: AAAA-MM-JJ HH:MM (24h). MUI X v6+ derives the\r\n * input mask from this format string automatically.\r\n * ampm={true} switches to 12h with AM/PM marker — opt-in for hosts\r\n * targeting English-speaking users.\r\n *\r\n * Constraints:\r\n * minDate / maxDate accept Date objects. They bound the DATE part;\r\n * the picker dialog also lets the user choose hours/minutes within\r\n * the resulting day.\r\n *\r\n * A11y (DP-1): as with DatePicker, when used inside <Field> the injected id +\r\n * aria-describedby / aria-invalid / aria-required are intercepted and routed\r\n * onto the field <input> via slotProps.htmlInput (MUI X does not forward\r\n * top-level aria/id to the input). Explicit `inputProps` still win.\r\n *\r\n * MUI X v9 surface notes (migrated from v5 in Batch 4):\r\n * See DatePicker.tsx for the same rationale — renderInput +\r\n * inputFormat + mask removed in favor of the unified slots /\r\n * slotProps + format API. The textField slot is the canonical\r\n * input customisation entry point; slotProps.htmlInput is the v9\r\n * landing zone for what used to be TextField's inputProps.\r\n */\r\n\r\nconst CHARTER_FORMAT = \"YYYY-MM-DD HH:mm\";\r\n\r\nexport interface DateTimePickerProps\r\n extends Omit<\r\n MuiDateTimePickerProps,\r\n \"value\" | \"onChange\" | \"minDate\" | \"maxDate\" | \"slots\" | \"slotProps\" | \"sx\" | \"ref\"\r\n > {\r\n value?: Date | null;\r\n onChange?: (value: Date | null) => void;\r\n onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;\r\n minDate?: Date | null;\r\n maxDate?: Date | null;\r\n error?: boolean;\r\n placeholder?: string;\r\n fullWidth?: boolean;\r\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\r\n adapterLocale?: string;\r\n sx?: SxProps<Theme>;\r\n}\r\n\r\nconst DateTimePicker = React.forwardRef<HTMLDivElement, DateTimePickerProps>(function DateTimePicker(\r\n {\r\n value,\r\n onChange,\r\n onBlur,\r\n minDate,\r\n maxDate,\r\n disablePast = false,\r\n disableFuture = false,\r\n disabled = false,\r\n readOnly = false,\r\n error,\r\n placeholder = \"AAAA-MM-JJ HH:MM\",\r\n fullWidth = true,\r\n ampm = false,\r\n minutesStep = 1,\r\n inputProps,\r\n adapterLocale = \"fr\",\r\n sx,\r\n ...rest\r\n },\r\n ref,\r\n) {\r\n // DP-1 — see DatePicker.tsx. Field cloneElement-injects the label + hint/error\r\n // association props onto this child; MUI X won't forward top-level aria/id to\r\n // the field input, so intercept them (cast — not part of the picker props) and\r\n // route them onto the <input> via slotProps.htmlInput below. Everything else\r\n // stays in domRest for MuiDateTimePicker.\r\n const {\r\n id: fieldId,\r\n \"aria-describedby\": ariaDescribedby,\r\n \"aria-invalid\": ariaInvalid,\r\n \"aria-required\": ariaRequired,\r\n \"aria-labelledby\": ariaLabelledby,\r\n ...domRest\r\n } = rest as typeof rest & {\r\n id?: string;\r\n \"aria-describedby\"?: string;\r\n \"aria-invalid\"?: boolean | \"true\" | \"false\" | \"grammar\" | \"spelling\";\r\n \"aria-required\"?: boolean | \"true\" | \"false\";\r\n \"aria-labelledby\"?: string;\r\n };\r\n\r\n const handleChange = (next: Moment | null) => {\r\n if (!onChange) return;\r\n onChange(momentToDate(next));\r\n };\r\n\r\n // MUI X v9 — see DatePicker.tsx for the slotProps.textField +\r\n // nested slotProps.htmlInput rationale. htmlInput is also the DP-1\r\n // landing zone for the Field-injected id + aria-* so the label /\r\n // hint / error associate with the date-time input.\r\n const slotProps = React.useMemo<NonNullable<MuiDateTimePickerProps[\"slotProps\"]>>(\r\n () => ({\r\n textField: {\r\n ref,\r\n error: !!error,\r\n fullWidth,\r\n size: \"small\",\r\n // onBlur: the textField slot types this as FocusEventHandler<HTMLDivElement>;\r\n // our public onBlur is input-based. Cast (type-only) and include only\r\n // when defined so no explicit undefined reaches the slot.\r\n ...(onBlur ? { onBlur: onBlur as unknown as React.FocusEventHandler<HTMLDivElement> } : {}),\r\n sx: {\r\n // R-T.3 — tabular-nums for vertical alignment in tables/forms.\r\n \"& .MuiOutlinedInput-input\": { fontVariantNumeric: \"tabular-nums\" },\r\n ...sx,\r\n },\r\n slotProps: {\r\n htmlInput: {\r\n placeholder,\r\n // DP-1 — Field-injected association attrs land on the <input>.\r\n ...(fieldId != null ? { id: fieldId } : {}),\r\n ...(ariaDescribedby != null\r\n ? { \"aria-describedby\": ariaDescribedby }\r\n : {}),\r\n ...(ariaInvalid != null ? { \"aria-invalid\": ariaInvalid } : {}),\r\n ...(ariaRequired != null ? { \"aria-required\": ariaRequired } : {}),\r\n ...(ariaLabelledby != null\r\n ? { \"aria-labelledby\": ariaLabelledby }\r\n : {}),\r\n // Explicit host inputProps win over the injected defaults.\r\n ...inputProps,\r\n },\r\n },\r\n },\r\n }),\r\n [\r\n ref,\r\n error,\r\n fullWidth,\r\n onBlur,\r\n sx,\r\n placeholder,\r\n inputProps,\r\n fieldId,\r\n ariaDescribedby,\r\n ariaInvalid,\r\n ariaRequired,\r\n ariaLabelledby,\r\n ],\r\n );\r\n\r\n // exactOptionalPropertyTypes: MUI's minDate/maxDate are `Moment` (not\r\n // `Moment | undefined`), so spread the key only when a bound is set\r\n // rather than passing an explicit `undefined`.\r\n const minDateM = minDate ? dateToMoment(minDate) : null;\r\n const maxDateM = maxDate ? dateToMoment(maxDate) : null;\r\n\r\n return (\r\n <LocalizationProvider dateAdapter={AdapterMoment} adapterLocale={adapterLocale}>\r\n <MuiDateTimePicker\r\n value={dateToMoment(value)}\r\n onChange={handleChange}\r\n {...(minDateM ? { minDate: minDateM } : {})}\r\n {...(maxDateM ? { maxDate: maxDateM } : {})}\r\n disablePast={disablePast}\r\n disableFuture={disableFuture}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n ampm={ampm}\r\n minutesStep={minutesStep}\r\n format={CHARTER_FORMAT}\r\n slotProps={slotProps}\r\n {...domRest}\r\n />\r\n </LocalizationProvider>\r\n );\r\n});\r\n\r\nexport const DATETIME_FORMAT_CHARTER = CHARTER_FORMAT;\r\n\r\nexport default DateTimePicker;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DateTimePicker.js","names":["React","_interopRequireWildcard","require","_LocalizationProvider","_DateTimePicker","_AdapterMoment","_pickerShared","_jsxRuntime","_excluded","_excluded2","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","CHARTER_FORMAT","DateTimePicker","forwardRef","_ref","ref","onChange","onBlur","minDate","maxDate","_ref$disablePast","disablePast","_ref$disableFuture","disableFuture","_ref$disabled","disabled","_ref$readOnly","readOnly","error","_ref$placeholder","placeholder","_ref$fullWidth","fullWidth","_ref$ampm","ampm","_ref$minutesStep","minutesStep","inputProps","_ref$adapterLocale","adapterLocale","sx","rest","_ref2","fieldId","id","ariaDescribedby","ariaInvalid","ariaRequired","ariaLabelledby","domRest","handleChange","next","momentToDate","slotProps","useMemo","textField","size","fontVariantNumeric","htmlInput","minDateM","dateToMoment","maxDateM","jsx","LocalizationProvider","dateAdapter","AdapterMoment","children","format","DATETIME_FORMAT_CHARTER","exports","_default"],"sources":["../../../src/lib/v2/components/DateTimePicker.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { LocalizationProvider } from \"@mui/x-date-pickers/LocalizationProvider\";\r\nimport { DateTimePicker as MuiDateTimePicker } from \"@mui/x-date-pickers/DateTimePicker\";\r\nimport type { DateTimePickerProps as MuiDateTimePickerProps } from \"@mui/x-date-pickers/DateTimePicker\";\r\nimport { AdapterMoment } from \"@mui/x-date-pickers/AdapterMoment\";\r\nimport type { Moment } from \"moment\";\r\nimport \"moment/locale/fr\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { dateToMoment, momentToDate } from \"./_pickerShared\";\r\n\r\n/**\r\n * DateTimePicker — Portnet UI v2\r\n *\r\n * Extends the DatePicker family (Charter §03) for date+time-of-day\r\n * workflows: LC validity to the minute, audit-log timestamps,\r\n * scheduled exports, deadline pickers.\r\n *\r\n * <Field label=\"Date d'échéance\">\r\n * <DateTimePicker\r\n * value={deadline}\r\n * onChange={setDeadline}\r\n * minDate={new Date()}\r\n * />\r\n * </Field>\r\n *\r\n * Value contract:\r\n * Same as DatePicker — value/onChange exchange Date | null. Invalid\r\n * dates are coerced to null. Hosts never receive Invalid Date.\r\n *\r\n * Locale:\r\n * adapterLocale defaults to \"fr\". Hosts using other locales must\r\n * import the matching moment locale data themselves:\r\n *\r\n * import \"moment/locale/ar\";\r\n * <DateTimePicker adapterLocale=\"ar\" />\r\n *\r\n * Format:\r\n * Display + parse: AAAA-MM-JJ HH:MM (24h). MUI X v6+ derives the\r\n * input mask from this format string automatically.\r\n * ampm={true} switches to 12h with AM/PM marker — opt-in for hosts\r\n * targeting English-speaking users.\r\n *\r\n * Constraints:\r\n * minDate / maxDate accept Date objects. They bound the DATE part;\r\n * the picker dialog also lets the user choose hours/minutes within\r\n * the resulting day.\r\n *\r\n * A11y (DP-1): as with DatePicker, when used inside <Field> the injected id +\r\n * aria-describedby / aria-invalid / aria-required are intercepted and routed\r\n * onto the field <input> via slotProps.htmlInput (MUI X does not forward\r\n * top-level aria/id to the input). Explicit `inputProps` still win.\r\n *\r\n * MUI X v9 surface notes (migrated from v5 in Batch 4):\r\n * See DatePicker.tsx for the same rationale — renderInput +\r\n * inputFormat + mask removed in favor of the unified slots /\r\n * slotProps + format API. The textField slot is the canonical\r\n * input customisation entry point; slotProps.htmlInput is the v9\r\n * landing zone for what used to be TextField's inputProps.\r\n */\r\n\r\nconst CHARTER_FORMAT = \"YYYY-MM-DD HH:mm\";\r\n\r\nexport interface DateTimePickerProps\r\n extends Omit<\r\n MuiDateTimePickerProps,\r\n \"value\" | \"onChange\" | \"minDate\" | \"maxDate\" | \"slots\" | \"slotProps\" | \"sx\" | \"ref\"\r\n > {\r\n value?: Date | null | undefined;\r\n onChange?: ((value: Date | null) => void) | undefined;\r\n onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined;\r\n minDate?: Date | null | undefined;\r\n maxDate?: Date | null | undefined;\r\n error?: boolean | undefined;\r\n placeholder?: string | undefined;\r\n fullWidth?: boolean | undefined;\r\n inputProps?: React.InputHTMLAttributes<HTMLInputElement> | undefined;\r\n adapterLocale?: string | undefined;\r\n sx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nconst DateTimePicker = React.forwardRef<HTMLDivElement, DateTimePickerProps>(function DateTimePicker(\r\n {\r\n value,\r\n onChange,\r\n onBlur,\r\n minDate,\r\n maxDate,\r\n disablePast = false,\r\n disableFuture = false,\r\n disabled = false,\r\n readOnly = false,\r\n error,\r\n placeholder = \"AAAA-MM-JJ HH:MM\",\r\n fullWidth = true,\r\n ampm = false,\r\n minutesStep = 1,\r\n inputProps,\r\n adapterLocale = \"fr\",\r\n sx,\r\n ...rest\r\n },\r\n ref,\r\n) {\r\n // DP-1 — see DatePicker.tsx. Field cloneElement-injects the label + hint/error\r\n // association props onto this child; MUI X won't forward top-level aria/id to\r\n // the field input, so intercept them (cast — not part of the picker props) and\r\n // route them onto the <input> via slotProps.htmlInput below. Everything else\r\n // stays in domRest for MuiDateTimePicker.\r\n const {\r\n id: fieldId,\r\n \"aria-describedby\": ariaDescribedby,\r\n \"aria-invalid\": ariaInvalid,\r\n \"aria-required\": ariaRequired,\r\n \"aria-labelledby\": ariaLabelledby,\r\n ...domRest\r\n } = rest as typeof rest & {\r\n id?: string;\r\n \"aria-describedby\"?: string;\r\n \"aria-invalid\"?: boolean | \"true\" | \"false\" | \"grammar\" | \"spelling\";\r\n \"aria-required\"?: boolean | \"true\" | \"false\";\r\n \"aria-labelledby\"?: string;\r\n };\r\n\r\n const handleChange = (next: Moment | null) => {\r\n if (!onChange) return;\r\n onChange(momentToDate(next));\r\n };\r\n\r\n // MUI X v9 — see DatePicker.tsx for the slotProps.textField +\r\n // nested slotProps.htmlInput rationale. htmlInput is also the DP-1\r\n // landing zone for the Field-injected id + aria-* so the label /\r\n // hint / error associate with the date-time input.\r\n const slotProps = React.useMemo<NonNullable<MuiDateTimePickerProps[\"slotProps\"]>>(\r\n () => ({\r\n textField: {\r\n ref,\r\n error: !!error,\r\n fullWidth,\r\n size: \"small\",\r\n // onBlur: the textField slot types this as FocusEventHandler<HTMLDivElement>;\r\n // our public onBlur is input-based. Cast (type-only) and include only\r\n // when defined so no explicit undefined reaches the slot.\r\n ...(onBlur ? { onBlur: onBlur as unknown as React.FocusEventHandler<HTMLDivElement> } : {}),\r\n sx: {\r\n // R-T.3 — tabular-nums for vertical alignment in tables/forms.\r\n \"& .MuiOutlinedInput-input\": { fontVariantNumeric: \"tabular-nums\" },\r\n ...sx,\r\n },\r\n slotProps: {\r\n htmlInput: {\r\n placeholder,\r\n // DP-1 — Field-injected association attrs land on the <input>.\r\n ...(fieldId != null ? { id: fieldId } : {}),\r\n ...(ariaDescribedby != null\r\n ? { \"aria-describedby\": ariaDescribedby }\r\n : {}),\r\n ...(ariaInvalid != null ? { \"aria-invalid\": ariaInvalid } : {}),\r\n ...(ariaRequired != null ? { \"aria-required\": ariaRequired } : {}),\r\n ...(ariaLabelledby != null\r\n ? { \"aria-labelledby\": ariaLabelledby }\r\n : {}),\r\n // Explicit host inputProps win over the injected defaults.\r\n ...inputProps,\r\n },\r\n },\r\n },\r\n }),\r\n [\r\n ref,\r\n error,\r\n fullWidth,\r\n onBlur,\r\n sx,\r\n placeholder,\r\n inputProps,\r\n fieldId,\r\n ariaDescribedby,\r\n ariaInvalid,\r\n ariaRequired,\r\n ariaLabelledby,\r\n ],\r\n );\r\n\r\n // exactOptionalPropertyTypes: MUI's minDate/maxDate are `Moment` (not\r\n // `Moment | undefined`), so spread the key only when a bound is set\r\n // rather than passing an explicit `undefined`.\r\n const minDateM = minDate ? dateToMoment(minDate) : null;\r\n const maxDateM = maxDate ? dateToMoment(maxDate) : null;\r\n\r\n return (\r\n <LocalizationProvider dateAdapter={AdapterMoment} adapterLocale={adapterLocale}>\r\n <MuiDateTimePicker\r\n value={dateToMoment(value)}\r\n onChange={handleChange}\r\n {...(minDateM ? { minDate: minDateM } : {})}\r\n {...(maxDateM ? { maxDate: maxDateM } : {})}\r\n disablePast={disablePast}\r\n disableFuture={disableFuture}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n ampm={ampm}\r\n minutesStep={minutesStep}\r\n format={CHARTER_FORMAT}\r\n slotProps={slotProps}\r\n {...domRest}\r\n />\r\n </LocalizationProvider>\r\n );\r\n});\r\n\r\nexport const DATETIME_FORMAT_CHARTER = CHARTER_FORMAT;\r\n\r\nexport default DateTimePicker;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
export type DrawerAnchor = "left" | "right" | "top" | "bottom";
|
|
3
3
|
export interface DrawerLabels {
|
|
4
|
-
prev?: string;
|
|
5
|
-
next?: string;
|
|
6
|
-
close?: string;
|
|
4
|
+
prev?: string | undefined;
|
|
5
|
+
next?: string | undefined;
|
|
6
|
+
close?: string | undefined;
|
|
7
7
|
}
|
|
8
8
|
export interface DrawerProps {
|
|
9
|
-
open?: boolean;
|
|
10
|
-
onClose?: () => void;
|
|
11
|
-
width?: number | string;
|
|
12
|
-
title?: React.ReactNode;
|
|
13
|
-
subtitle?: React.ReactNode;
|
|
9
|
+
open?: boolean | undefined;
|
|
10
|
+
onClose?: (() => void) | undefined;
|
|
11
|
+
width?: number | string | undefined;
|
|
12
|
+
title?: React.ReactNode | undefined;
|
|
13
|
+
subtitle?: React.ReactNode | undefined;
|
|
14
14
|
/** Accessible name for the drawer when no `title` is rendered (R-Ar.5). */
|
|
15
|
-
ariaLabel?: string;
|
|
16
|
-
status?: React.ReactNode;
|
|
17
|
-
actions?: React.ReactNode;
|
|
15
|
+
ariaLabel?: string | undefined;
|
|
16
|
+
status?: React.ReactNode | undefined;
|
|
17
|
+
actions?: React.ReactNode | undefined;
|
|
18
18
|
/**
|
|
19
19
|
* Step to the previous item. Supplying either this or `onNext` is what
|
|
20
20
|
* renders the navigation cluster at all — see the opt-in note in the
|
|
21
21
|
* module docstring. Omit both on a filter panel.
|
|
22
22
|
*/
|
|
23
|
-
onPrev?: () => void;
|
|
23
|
+
onPrev?: (() => void) | undefined;
|
|
24
24
|
/** Step to the next item. See `onPrev`. */
|
|
25
|
-
onNext?: () => void;
|
|
26
|
-
hasPrev?: boolean;
|
|
27
|
-
hasNext?: boolean;
|
|
28
|
-
children?: React.ReactNode;
|
|
29
|
-
anchor?: DrawerAnchor;
|
|
30
|
-
labels?: DrawerLabels;
|
|
25
|
+
onNext?: (() => void) | undefined;
|
|
26
|
+
hasPrev?: boolean | undefined;
|
|
27
|
+
hasNext?: boolean | undefined;
|
|
28
|
+
children?: React.ReactNode | undefined;
|
|
29
|
+
anchor?: DrawerAnchor | undefined;
|
|
30
|
+
labels?: DrawerLabels | undefined;
|
|
31
31
|
}
|
|
32
32
|
declare function Drawer({ open, onClose, width, title, subtitle, ariaLabel, status, actions, onPrev, onNext, hasPrev, hasNext, children, anchor, labels, }: DrawerProps): React.JSX.Element;
|
|
33
33
|
export default Drawer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/Drawer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/Drawer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA+H/B,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACpC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACvC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACrC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACtC;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAClC,2CAA2C;IAC3C,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACvC,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CACnC;AAED,iBAAS,MAAM,CAAC,EACd,IAAI,EACJ,OAAO,EACP,KAAqB,EACrB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,MAAM,EACN,OAAO,EACP,MAAM,EACN,MAAM,EACN,OAAe,EACf,OAAe,EACf,QAAQ,EACR,MAAgB,EAChB,MAAM,GACP,EAAE,WAAW,qBA6Jb;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -14,6 +14,7 @@ var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
|
14
14
|
var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
|
15
15
|
var _tokens = require("../tokens");
|
|
16
16
|
var _useFocusTrap = _interopRequireDefault(require("../hooks/useFocusTrap"));
|
|
17
|
+
var _mergeLabels = require("../utils/mergeLabels");
|
|
17
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
19
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
19
20
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -157,7 +158,7 @@ function Drawer(_ref) {
|
|
|
157
158
|
_ref$anchor = _ref.anchor,
|
|
158
159
|
anchor = _ref$anchor === void 0 ? "right" : _ref$anchor,
|
|
159
160
|
labels = _ref.labels;
|
|
160
|
-
var L =
|
|
161
|
+
var L = (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, labels);
|
|
161
162
|
|
|
162
163
|
/*
|
|
163
164
|
* D-A10.2 — does this drawer navigate between items at all?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawer.js","names":["React","_interopRequireWildcard","require","_Drawer","_interopRequireDefault","_IconButton","_Close","_KeyboardArrowUp","_KeyboardArrowDown","_Box","_Typography","_tokens","_useFocusTrap","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","DEFAULT_LABELS","freeze","prev","next","close","DRAWER_ROOT_SX","zIndex","drawer","HEADER_STICKY_SX","padding","borderBottom","position","top","background","HEADER_ACTIONS_SX","display","alignItems","gap","marginInlineStart","isEditableTarget","HTMLElement","tag","tagName","isContentEditable","innerCornerSx","anchor","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","Drawer","_ref","open","onClose","_ref$width","width","layout","title","subtitle","ariaLabel","status","actions","onPrev","onNext","_ref$hasPrev","hasPrev","_ref$hasNext","hasNext","children","_ref$anchor","labels","L","hasItemNavigation","titleId","useId","paperRef","useRef","useFocusTrap","useEffect","handler","e","preventDefault","window","addEventListener","removeEventListener","slotProps","useMemo","paper","ref","sx","maxWidth","backgroundColor","boxShadow","jsxs","role","disableAutoFocus","disableEnforceFocus","disableRestoreFocus","justifyContent","marginBottom","jsx","size","onClick","disabled","color","fontSize","id","component","fontWeight","lineHeight","marginTop","overflowY","flex","_default","exports"],"sources":["../../../src/lib/v2/components/Drawer.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport MuiDrawer from \"@mui/material/Drawer\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport KeyboardArrowUpIcon from \"@mui/icons-material/KeyboardArrowUp\";\r\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Typography from \"@mui/material/Typography\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { layout, zIndex } from \"../tokens\";\r\nimport useFocusTrap from \"../hooks/useFocusTrap\";\r\n\r\n/**\r\n * Drawer - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Drawer\". Detail panel without leaving the list.\r\n *\r\n * R-DG.9 - Action de ligne = drawer/popup (pas full-page sauf édition).\r\n * R-M.1 - Esc ferme.\r\n * R-F.2 - Focus trap, restoration au déclencheur. Backed by the v2\r\n * useFocusTrap hook (Batch 3) - honours [autofocus] and\r\n * [data-autofocus] markers, coordinates with nested traps\r\n * via a module-level trapStack, and filters\r\n * disabled/hidden/inert subtrees.\r\n * R-K.2 - J/K/Arrow nav must NOT fire when an editable element has focus.\r\n * R-Ar.5 - aria-labelledby points at the rendered <h2> title so the\r\n * drawer is properly named to AT regardless of whether the\r\n * title is a string or a JSX node (audit Batch 5 / B5-1). When\r\n * no title is provided, pass `ariaLabel` to name the drawer.\r\n * J / K ou ↑ / ↓ → navigation entre items voisins.\r\n *\r\n * ── ITEM NAVIGATION IS OPT-IN (D-A10.2) ──────────────────────────────\r\n *\r\n * The prev/next cluster and its \"J / K\" hint render ONLY when `onPrev` or\r\n * `onNext` is supplied. This component serves two distinct jobs: item\r\n * preview, which navigates, and the charter's collapsible filter panel,\r\n * which does not. Rendering the cluster unconditionally gave every filter\r\n * drawer two permanently disabled buttons and a keyboard hint for a\r\n * shortcut with no effect — Guidance / Nielsen #8. A control that can\r\n * never become enabled is not a disabled control, it is noise.\r\n *\r\n * Preview callers pass both handlers and see no change.\r\n *\r\n * Stacking:\r\n * The drawer's portal layer uses the v2 `zIndex.drawer` token (80),\r\n * so it sits above sticky page chrome (sticky/topbar/overflow/\r\n * popover, all <= 60) and BELOW `modal` (100), `snackbar` (150),\r\n * `toast` (200) and `tooltip` (250). Sitting below the modal layer\r\n * is deliberate and load-bearing: MUI popups opened from INSIDE the\r\n * drawer (Combobox/Autocomplete listboxes and the X date-picker\r\n * calendars, which render at theme.zIndex.modal) and any nested\r\n * ConfirmDialog/Modal must stack ABOVE the drawer, not behind it.\r\n * (A previous build hardcoded 1300 here — a leftover from MUI's\r\n * default 1100..1500 scale before the v2 remap to 0..250 — which\r\n * buried those popups at 100 behind the drawer and made them look\r\n * unresponsive.)\r\n *\r\n * Multi-drawer assumption:\r\n * The J/K listener is attached to `window`; multiple simultaneously-\r\n * open drawers would all receive the keypress and call their own\r\n * onPrev/onNext. Product convention is ONE drawer at a time.\r\n */\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n prev: \"Précédent\",\r\n next: \"Suivant\",\r\n close: \"Fermer (Échap)\",\r\n});\r\n\r\nconst DRAWER_ROOT_SX = Object.freeze({\r\n // v2 z-index token (zIndex.js). drawer:80 sits above sticky page\r\n // chrome (<=60) and BELOW modal:100, so MUI popups opened from\r\n // inside the drawer (Combobox/Autocomplete listboxes, X date-picker\r\n // calendars — all rendered at theme.zIndex.modal) stack ABOVE it.\r\n // The previous hardcoded 1300 predated the v2 remap of MUI's\r\n // 1100..1500 scale down to 0..250 and left those popups (at 100)\r\n // buried behind the drawer (at 1300) — clicking them \"did nothing\".\r\n zIndex: zIndex.drawer,\r\n});\r\n\r\nconst HEADER_STICKY_SX = Object.freeze({\r\n padding: \"var(--s-4) var(--s-5)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n position: \"sticky\",\r\n top: 0,\r\n background: \"var(--surface)\",\r\n // Drawer header sits ABOVE the drawer body content. The drawer\r\n // already establishes its own stacking context via the root\r\n // z-index, so this only competes within the drawer locally.\r\n zIndex: 1,\r\n} satisfies SxProps<Theme>);\r\n\r\n/*\r\n * Right-hand cluster (caller actions + close).\r\n *\r\n * marginInlineStart:\"auto\" pins it to the inline end REGARDLESS of whether\r\n * the navigation cluster is rendered. The row is space-between, so without\r\n * this the close button would slide to flex-start on a filter drawer, which\r\n * is where the nav cluster used to sit. Logical property so it holds in RTL\r\n * — the header already uses marginInlineStart for the J/K hint.\r\n */\r\nconst HEADER_ACTIONS_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-1)\",\r\n marginInlineStart: \"auto\",\r\n} satisfies SxProps<Theme>);\r\n\r\nfunction isEditableTarget(target: EventTarget | null): boolean {\r\n if (!(target instanceof HTMLElement)) return false;\r\n const tag = target.tagName;\r\n if (tag === \"INPUT\" || tag === \"TEXTAREA\" || tag === \"SELECT\") return true;\r\n if (target.isContentEditable) return true;\r\n return false;\r\n}\r\n\r\nfunction innerCornerSx(anchor: DrawerAnchor) {\r\n if (anchor === \"right\") {\r\n return { borderTopLeftRadius: 0, borderBottomLeftRadius: 0 };\r\n }\r\n if (anchor === \"left\") {\r\n return { borderTopRightRadius: 0, borderBottomRightRadius: 0 };\r\n }\r\n return {};\r\n}\r\n\r\nexport type DrawerAnchor = \"left\" | \"right\" | \"top\" | \"bottom\";\r\n\r\nexport interface DrawerLabels {\r\n prev?: string;\r\n next?: string;\r\n close?: string;\r\n}\r\n\r\nexport interface DrawerProps {\r\n open?: boolean;\r\n onClose?: () => void;\r\n width?: number | string;\r\n title?: React.ReactNode;\r\n subtitle?: React.ReactNode;\r\n /** Accessible name for the drawer when no `title` is rendered (R-Ar.5). */\r\n ariaLabel?: string;\r\n status?: React.ReactNode;\r\n actions?: React.ReactNode;\r\n /**\r\n * Step to the previous item. Supplying either this or `onNext` is what\r\n * renders the navigation cluster at all — see the opt-in note in the\r\n * module docstring. Omit both on a filter panel.\r\n */\r\n onPrev?: () => void;\r\n /** Step to the next item. See `onPrev`. */\r\n onNext?: () => void;\r\n hasPrev?: boolean;\r\n hasNext?: boolean;\r\n children?: React.ReactNode;\r\n anchor?: DrawerAnchor;\r\n labels?: DrawerLabels;\r\n}\r\n\r\nfunction Drawer({\r\n open,\r\n onClose,\r\n width = layout.drawer,\r\n title,\r\n subtitle,\r\n ariaLabel,\r\n status,\r\n actions,\r\n onPrev,\r\n onNext,\r\n hasPrev = false,\r\n hasNext = false,\r\n children,\r\n anchor = \"right\",\r\n labels,\r\n}: DrawerProps) {\r\n const L = labels ? { ...DEFAULT_LABELS, ...labels } : DEFAULT_LABELS;\r\n\r\n /*\r\n * D-A10.2 — does this drawer navigate between items at all?\r\n *\r\n * Presence of a HANDLER, not of hasPrev/hasNext. A preview drawer sitting\r\n * on a single-row result set has both flags false and must still show the\r\n * cluster disabled, because navigation is part of what that drawer is. A\r\n * filter panel supplies no handler and has no such affordance to disable.\r\n */\r\n const hasItemNavigation = onPrev !== undefined || onNext !== undefined;\r\n\r\n // R-Ar.5 - stable, per-instance, collision-safe id for aria-labelledby.\r\n // Points at the <h2> Typography that already renders {title}. Resolves\r\n // through the DOM regardless of whether `title` is a string or JSX —\r\n // aria-labelledby reads the rendered text content. Replaces the previous\r\n // `aria-label={typeof title === \"string\" ? title : undefined}` which\r\n // left JSX-titled drawers unlabelled (B5-1).\r\n const titleId = React.useId();\r\n\r\n const paperRef = React.useRef<HTMLDivElement>(null);\r\n useFocusTrap(paperRef, !!open);\r\n\r\n /*\r\n * Escape must close EVERY drawer, so this effect binds whether or not item\r\n * navigation is wired. The J/K branches are already gated on\r\n * hasNext/hasPrev, which a filter panel leaves false, so they are inert\r\n * there rather than needing their own guard.\r\n */\r\n React.useEffect(() => {\r\n if (!open) return undefined;\r\n const handler = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") { onClose?.(); return; }\r\n if (isEditableTarget(e.target)) return;\r\n if ((e.key === \"j\" || e.key === \"ArrowDown\") && hasNext) {\r\n e.preventDefault(); onNext?.();\r\n } else if ((e.key === \"k\" || e.key === \"ArrowUp\") && hasPrev) {\r\n e.preventDefault(); onPrev?.();\r\n }\r\n };\r\n window.addEventListener(\"keydown\", handler);\r\n return () => window.removeEventListener(\"keydown\", handler);\r\n }, [open, onClose, onNext, onPrev, hasNext, hasPrev]);\r\n\r\n // MUI v9: paper slot forwarded through slotProps.paper. Wired with a\r\n // useMemo so the ref + sx bag keeps reference stability across renders\r\n // where `width` and `anchor` don't change.\r\n const slotProps = React.useMemo(\r\n () => ({\r\n paper: {\r\n ref: paperRef,\r\n sx: {\r\n width,\r\n maxWidth: \"100vw\",\r\n ...innerCornerSx(anchor),\r\n backgroundColor: \"var(--surface)\",\r\n boxShadow: \"var(--shadow-lg)\",\r\n },\r\n },\r\n }),\r\n [width, anchor]\r\n );\r\n\r\n return (\r\n <MuiDrawer\r\n anchor={anchor}\r\n open={!!open}\r\n onClose={onClose}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n // Name = the <h2> title text (via titleId). Falls back to ariaLabel\r\n // when the drawer is rendered without a title.\r\n aria-labelledby={title != null ? titleId : undefined}\r\n aria-label={title == null ? ariaLabel : undefined}\r\n disableAutoFocus\r\n disableEnforceFocus\r\n disableRestoreFocus\r\n // Root sx anchors the whole drawer (including its portal-level\r\n // container) at the v2 zIndex.drawer token — see DRAWER_ROOT_SX.\r\n sx={DRAWER_ROOT_SX}\r\n slotProps={slotProps}\r\n >\r\n <Box sx={HEADER_STICKY_SX}>\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", marginBottom: \"var(--s-2)\" }}>\r\n {/*\r\n Navigation cluster — opt-in (D-A10.2). Rendered only when the\r\n caller wired onPrev or onNext, so a filter panel does not carry\r\n two permanently disabled buttons and a J/K hint for a shortcut\r\n that cannot fire.\r\n */}\r\n {hasItemNavigation && (\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: \"var(--s-1)\" }}>\r\n <IconButton\r\n size=\"small\"\r\n onClick={onPrev}\r\n disabled={!hasPrev}\r\n aria-label={L.prev}\r\n sx={{ color: \"var(--fg-muted)\" }}\r\n >\r\n <KeyboardArrowUpIcon fontSize=\"small\" />\r\n </IconButton>\r\n <IconButton\r\n size=\"small\"\r\n onClick={onNext}\r\n disabled={!hasNext}\r\n aria-label={L.next}\r\n sx={{ color: \"var(--fg-muted)\" }}\r\n >\r\n <KeyboardArrowDownIcon fontSize=\"small\" />\r\n </IconButton>\r\n <Typography\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n marginInlineStart: \"var(--s-1)\",\r\n }}\r\n >\r\n J / K\r\n </Typography>\r\n </Box>\r\n )}\r\n {/* marginInlineStart:auto keeps close pinned to the inline end\r\n whether or not the cluster above rendered — see\r\n HEADER_ACTIONS_SX. */}\r\n <Box sx={HEADER_ACTIONS_SX}>\r\n {actions}\r\n <IconButton\r\n size=\"small\"\r\n onClick={onClose}\r\n aria-label={L.close}\r\n sx={{ color: \"var(--fg-muted)\" }}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </Box>\r\n </Box>\r\n {status && <Box sx={{ marginBottom: \"var(--s-2)\" }}>{status}</Box>}\r\n <Typography\r\n id={titleId}\r\n component=\"h2\"\r\n sx={{ fontSize: \"var(--text-h3)\", fontWeight: \"var(--fw-bold)\", color: \"var(--fg)\", lineHeight: \"var(--lh-snug)\" }}\r\n >\r\n {title}\r\n </Typography>\r\n {subtitle && (\r\n <Typography sx={{ fontSize: \"var(--text-sm)\", color: \"var(--fg-muted)\", marginTop: \"var(--s-1)\" }}>\r\n {subtitle}\r\n </Typography>\r\n )}\r\n </Box>\r\n\r\n <Box sx={{ padding: \"var(--s-4) var(--s-5)\", overflowY: \"auto\", flex: 1 }}>\r\n {children}\r\n </Box>\r\n </MuiDrawer>\r\n );\r\n}\r\n\r\nexport default Drawer;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Drawer.js","names":["React","_interopRequireWildcard","require","_Drawer","_interopRequireDefault","_IconButton","_Close","_KeyboardArrowUp","_KeyboardArrowDown","_Box","_Typography","_tokens","_useFocusTrap","_mergeLabels","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","DEFAULT_LABELS","freeze","prev","next","close","DRAWER_ROOT_SX","zIndex","drawer","HEADER_STICKY_SX","padding","borderBottom","position","top","background","HEADER_ACTIONS_SX","display","alignItems","gap","marginInlineStart","isEditableTarget","HTMLElement","tag","tagName","isContentEditable","innerCornerSx","anchor","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","Drawer","_ref","open","onClose","_ref$width","width","layout","title","subtitle","ariaLabel","status","actions","onPrev","onNext","_ref$hasPrev","hasPrev","_ref$hasNext","hasNext","children","_ref$anchor","labels","L","mergeLabels","hasItemNavigation","titleId","useId","paperRef","useRef","useFocusTrap","useEffect","handler","e","preventDefault","window","addEventListener","removeEventListener","slotProps","useMemo","paper","ref","sx","maxWidth","backgroundColor","boxShadow","jsxs","role","disableAutoFocus","disableEnforceFocus","disableRestoreFocus","justifyContent","marginBottom","jsx","size","onClick","disabled","color","fontSize","id","component","fontWeight","lineHeight","marginTop","overflowY","flex","_default","exports"],"sources":["../../../src/lib/v2/components/Drawer.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport MuiDrawer from \"@mui/material/Drawer\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport KeyboardArrowUpIcon from \"@mui/icons-material/KeyboardArrowUp\";\r\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Typography from \"@mui/material/Typography\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { layout, zIndex } from \"../tokens\";\r\nimport useFocusTrap from \"../hooks/useFocusTrap\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * Drawer - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Drawer\". Detail panel without leaving the list.\r\n *\r\n * R-DG.9 - Action de ligne = drawer/popup (pas full-page sauf édition).\r\n * R-M.1 - Esc ferme.\r\n * R-F.2 - Focus trap, restoration au déclencheur. Backed by the v2\r\n * useFocusTrap hook (Batch 3) - honours [autofocus] and\r\n * [data-autofocus] markers, coordinates with nested traps\r\n * via a module-level trapStack, and filters\r\n * disabled/hidden/inert subtrees.\r\n * R-K.2 - J/K/Arrow nav must NOT fire when an editable element has focus.\r\n * R-Ar.5 - aria-labelledby points at the rendered <h2> title so the\r\n * drawer is properly named to AT regardless of whether the\r\n * title is a string or a JSX node (audit Batch 5 / B5-1). When\r\n * no title is provided, pass `ariaLabel` to name the drawer.\r\n * J / K ou ↑ / ↓ → navigation entre items voisins.\r\n *\r\n * ── ITEM NAVIGATION IS OPT-IN (D-A10.2) ──────────────────────────────\r\n *\r\n * The prev/next cluster and its \"J / K\" hint render ONLY when `onPrev` or\r\n * `onNext` is supplied. This component serves two distinct jobs: item\r\n * preview, which navigates, and the charter's collapsible filter panel,\r\n * which does not. Rendering the cluster unconditionally gave every filter\r\n * drawer two permanently disabled buttons and a keyboard hint for a\r\n * shortcut with no effect — Guidance / Nielsen #8. A control that can\r\n * never become enabled is not a disabled control, it is noise.\r\n *\r\n * Preview callers pass both handlers and see no change.\r\n *\r\n * Stacking:\r\n * The drawer's portal layer uses the v2 `zIndex.drawer` token (80),\r\n * so it sits above sticky page chrome (sticky/topbar/overflow/\r\n * popover, all <= 60) and BELOW `modal` (100), `snackbar` (150),\r\n * `toast` (200) and `tooltip` (250). Sitting below the modal layer\r\n * is deliberate and load-bearing: MUI popups opened from INSIDE the\r\n * drawer (Combobox/Autocomplete listboxes and the X date-picker\r\n * calendars, which render at theme.zIndex.modal) and any nested\r\n * ConfirmDialog/Modal must stack ABOVE the drawer, not behind it.\r\n * (A previous build hardcoded 1300 here — a leftover from MUI's\r\n * default 1100..1500 scale before the v2 remap to 0..250 — which\r\n * buried those popups at 100 behind the drawer and made them look\r\n * unresponsive.)\r\n *\r\n * Multi-drawer assumption:\r\n * The J/K listener is attached to `window`; multiple simultaneously-\r\n * open drawers would all receive the keypress and call their own\r\n * onPrev/onNext. Product convention is ONE drawer at a time.\r\n */\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n prev: \"Précédent\",\r\n next: \"Suivant\",\r\n close: \"Fermer (Échap)\",\r\n});\r\n\r\nconst DRAWER_ROOT_SX = Object.freeze({\r\n // v2 z-index token (zIndex.js). drawer:80 sits above sticky page\r\n // chrome (<=60) and BELOW modal:100, so MUI popups opened from\r\n // inside the drawer (Combobox/Autocomplete listboxes, X date-picker\r\n // calendars — all rendered at theme.zIndex.modal) stack ABOVE it.\r\n // The previous hardcoded 1300 predated the v2 remap of MUI's\r\n // 1100..1500 scale down to 0..250 and left those popups (at 100)\r\n // buried behind the drawer (at 1300) — clicking them \"did nothing\".\r\n zIndex: zIndex.drawer,\r\n});\r\n\r\nconst HEADER_STICKY_SX = Object.freeze({\r\n padding: \"var(--s-4) var(--s-5)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n position: \"sticky\",\r\n top: 0,\r\n background: \"var(--surface)\",\r\n // Drawer header sits ABOVE the drawer body content. The drawer\r\n // already establishes its own stacking context via the root\r\n // z-index, so this only competes within the drawer locally.\r\n zIndex: 1,\r\n} satisfies SxProps<Theme>);\r\n\r\n/*\r\n * Right-hand cluster (caller actions + close).\r\n *\r\n * marginInlineStart:\"auto\" pins it to the inline end REGARDLESS of whether\r\n * the navigation cluster is rendered. The row is space-between, so without\r\n * this the close button would slide to flex-start on a filter drawer, which\r\n * is where the nav cluster used to sit. Logical property so it holds in RTL\r\n * — the header already uses marginInlineStart for the J/K hint.\r\n */\r\nconst HEADER_ACTIONS_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-1)\",\r\n marginInlineStart: \"auto\",\r\n} satisfies SxProps<Theme>);\r\n\r\nfunction isEditableTarget(target: EventTarget | null): boolean {\r\n if (!(target instanceof HTMLElement)) return false;\r\n const tag = target.tagName;\r\n if (tag === \"INPUT\" || tag === \"TEXTAREA\" || tag === \"SELECT\") return true;\r\n if (target.isContentEditable) return true;\r\n return false;\r\n}\r\n\r\nfunction innerCornerSx(anchor: DrawerAnchor) {\r\n if (anchor === \"right\") {\r\n return { borderTopLeftRadius: 0, borderBottomLeftRadius: 0 };\r\n }\r\n if (anchor === \"left\") {\r\n return { borderTopRightRadius: 0, borderBottomRightRadius: 0 };\r\n }\r\n return {};\r\n}\r\n\r\nexport type DrawerAnchor = \"left\" | \"right\" | \"top\" | \"bottom\";\r\n\r\nexport interface DrawerLabels {\r\n prev?: string | undefined;\r\n next?: string | undefined;\r\n close?: string | undefined;\r\n}\r\n\r\nexport interface DrawerProps {\r\n open?: boolean | undefined;\r\n onClose?: (() => void) | undefined;\r\n width?: number | string | undefined;\r\n title?: React.ReactNode | undefined;\r\n subtitle?: React.ReactNode | undefined;\r\n /** Accessible name for the drawer when no `title` is rendered (R-Ar.5). */\r\n ariaLabel?: string | undefined;\r\n status?: React.ReactNode | undefined;\r\n actions?: React.ReactNode | undefined;\r\n /**\r\n * Step to the previous item. Supplying either this or `onNext` is what\r\n * renders the navigation cluster at all — see the opt-in note in the\r\n * module docstring. Omit both on a filter panel.\r\n */\r\n onPrev?: (() => void) | undefined;\r\n /** Step to the next item. See `onPrev`. */\r\n onNext?: (() => void) | undefined;\r\n hasPrev?: boolean | undefined;\r\n hasNext?: boolean | undefined;\r\n children?: React.ReactNode | undefined;\r\n anchor?: DrawerAnchor | undefined;\r\n labels?: DrawerLabels | undefined;\r\n}\r\n\r\nfunction Drawer({\r\n open,\r\n onClose,\r\n width = layout.drawer,\r\n title,\r\n subtitle,\r\n ariaLabel,\r\n status,\r\n actions,\r\n onPrev,\r\n onNext,\r\n hasPrev = false,\r\n hasNext = false,\r\n children,\r\n anchor = \"right\",\r\n labels,\r\n}: DrawerProps) {\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n\r\n /*\r\n * D-A10.2 — does this drawer navigate between items at all?\r\n *\r\n * Presence of a HANDLER, not of hasPrev/hasNext. A preview drawer sitting\r\n * on a single-row result set has both flags false and must still show the\r\n * cluster disabled, because navigation is part of what that drawer is. A\r\n * filter panel supplies no handler and has no such affordance to disable.\r\n */\r\n const hasItemNavigation = onPrev !== undefined || onNext !== undefined;\r\n\r\n // R-Ar.5 - stable, per-instance, collision-safe id for aria-labelledby.\r\n // Points at the <h2> Typography that already renders {title}. Resolves\r\n // through the DOM regardless of whether `title` is a string or JSX —\r\n // aria-labelledby reads the rendered text content. Replaces the previous\r\n // `aria-label={typeof title === \"string\" ? title : undefined}` which\r\n // left JSX-titled drawers unlabelled (B5-1).\r\n const titleId = React.useId();\r\n\r\n const paperRef = React.useRef<HTMLDivElement>(null);\r\n useFocusTrap(paperRef, !!open);\r\n\r\n /*\r\n * Escape must close EVERY drawer, so this effect binds whether or not item\r\n * navigation is wired. The J/K branches are already gated on\r\n * hasNext/hasPrev, which a filter panel leaves false, so they are inert\r\n * there rather than needing their own guard.\r\n */\r\n React.useEffect(() => {\r\n if (!open) return undefined;\r\n const handler = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") { onClose?.(); return; }\r\n if (isEditableTarget(e.target)) return;\r\n if ((e.key === \"j\" || e.key === \"ArrowDown\") && hasNext) {\r\n e.preventDefault(); onNext?.();\r\n } else if ((e.key === \"k\" || e.key === \"ArrowUp\") && hasPrev) {\r\n e.preventDefault(); onPrev?.();\r\n }\r\n };\r\n window.addEventListener(\"keydown\", handler);\r\n return () => window.removeEventListener(\"keydown\", handler);\r\n }, [open, onClose, onNext, onPrev, hasNext, hasPrev]);\r\n\r\n // MUI v9: paper slot forwarded through slotProps.paper. Wired with a\r\n // useMemo so the ref + sx bag keeps reference stability across renders\r\n // where `width` and `anchor` don't change.\r\n const slotProps = React.useMemo(\r\n () => ({\r\n paper: {\r\n ref: paperRef,\r\n sx: {\r\n width,\r\n maxWidth: \"100vw\",\r\n ...innerCornerSx(anchor),\r\n backgroundColor: \"var(--surface)\",\r\n boxShadow: \"var(--shadow-lg)\",\r\n },\r\n },\r\n }),\r\n [width, anchor]\r\n );\r\n\r\n return (\r\n <MuiDrawer\r\n anchor={anchor}\r\n open={!!open}\r\n onClose={onClose}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n // Name = the <h2> title text (via titleId). Falls back to ariaLabel\r\n // when the drawer is rendered without a title.\r\n aria-labelledby={title != null ? titleId : undefined}\r\n aria-label={title == null ? ariaLabel : undefined}\r\n disableAutoFocus\r\n disableEnforceFocus\r\n disableRestoreFocus\r\n // Root sx anchors the whole drawer (including its portal-level\r\n // container) at the v2 zIndex.drawer token — see DRAWER_ROOT_SX.\r\n sx={DRAWER_ROOT_SX}\r\n slotProps={slotProps}\r\n >\r\n <Box sx={HEADER_STICKY_SX}>\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", marginBottom: \"var(--s-2)\" }}>\r\n {/*\r\n Navigation cluster — opt-in (D-A10.2). Rendered only when the\r\n caller wired onPrev or onNext, so a filter panel does not carry\r\n two permanently disabled buttons and a J/K hint for a shortcut\r\n that cannot fire.\r\n */}\r\n {hasItemNavigation && (\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: \"var(--s-1)\" }}>\r\n <IconButton\r\n size=\"small\"\r\n onClick={onPrev}\r\n disabled={!hasPrev}\r\n aria-label={L.prev}\r\n sx={{ color: \"var(--fg-muted)\" }}\r\n >\r\n <KeyboardArrowUpIcon fontSize=\"small\" />\r\n </IconButton>\r\n <IconButton\r\n size=\"small\"\r\n onClick={onNext}\r\n disabled={!hasNext}\r\n aria-label={L.next}\r\n sx={{ color: \"var(--fg-muted)\" }}\r\n >\r\n <KeyboardArrowDownIcon fontSize=\"small\" />\r\n </IconButton>\r\n <Typography\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n marginInlineStart: \"var(--s-1)\",\r\n }}\r\n >\r\n J / K\r\n </Typography>\r\n </Box>\r\n )}\r\n {/* marginInlineStart:auto keeps close pinned to the inline end\r\n whether or not the cluster above rendered — see\r\n HEADER_ACTIONS_SX. */}\r\n <Box sx={HEADER_ACTIONS_SX}>\r\n {actions}\r\n <IconButton\r\n size=\"small\"\r\n onClick={onClose}\r\n aria-label={L.close}\r\n sx={{ color: \"var(--fg-muted)\" }}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </Box>\r\n </Box>\r\n {status && <Box sx={{ marginBottom: \"var(--s-2)\" }}>{status}</Box>}\r\n <Typography\r\n id={titleId}\r\n component=\"h2\"\r\n sx={{ fontSize: \"var(--text-h3)\", fontWeight: \"var(--fw-bold)\", color: \"var(--fg)\", lineHeight: \"var(--lh-snug)\" }}\r\n >\r\n {title}\r\n </Typography>\r\n {subtitle && (\r\n <Typography sx={{ fontSize: \"var(--text-sm)\", color: \"var(--fg-muted)\", marginTop: \"var(--s-1)\" }}>\r\n {subtitle}\r\n </Typography>\r\n )}\r\n </Box>\r\n\r\n <Box sx={{ padding: \"var(--s-4) var(--s-5)\", overflowY: \"auto\", flex: 1 }}>\r\n {children}\r\n </Box>\r\n </MuiDrawer>\r\n );\r\n}\r\n\r\nexport default Drawer;\r\n"],"mappings":"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","ignoreList":[]}
|