@portnet/ui 6.0.2 → 6.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +652 -0
- package/dist/esm/index.js +72 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/v2/__tests__/AppMain.test.js +130 -0
- package/dist/esm/v2/__tests__/AppMain.test.js.map +1 -0
- package/dist/esm/v2/__tests__/ChartFigure.test.js +180 -0
- package/dist/esm/v2/__tests__/ChartFigure.test.js.map +1 -0
- package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js +150 -0
- package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
- package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js +93 -0
- package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldError.test.js +71 -38
- package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FieldNaming.test.js +160 -0
- package/dist/esm/v2/__tests__/FieldNaming.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldWidth.test.js +11 -11
- package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FileCard.test.js +18 -17
- package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js +87 -179
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +32 -44
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js +101 -0
- package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +118 -199
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
- package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -42
- package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/PreviewDrawer.test.js +165 -0
- package/dist/esm/v2/__tests__/PreviewDrawer.test.js.map +1 -0
- package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js +156 -0
- package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +37 -52
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/esm/v2/__tests__/apiError.test.js +50 -69
- package/dist/esm/v2/__tests__/apiError.test.js.map +1 -1
- package/dist/esm/v2/__tests__/banned-patterns.test.js +41 -122
- package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -1
- package/dist/esm/v2/__tests__/chart-palette.test.js +204 -0
- package/dist/esm/v2/__tests__/chart-palette.test.js.map +1 -0
- package/dist/esm/v2/__tests__/contrast-palette.test.js +42 -74
- package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -1
- package/dist/esm/v2/__tests__/cssVariables.test.js +44 -51
- package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -1
- package/dist/esm/v2/__tests__/fileValidation.test.js +134 -0
- package/dist/esm/v2/__tests__/fileValidation.test.js.map +1 -0
- package/dist/esm/v2/__tests__/filterCriteria.test.js +321 -0
- package/dist/esm/v2/__tests__/filterCriteria.test.js.map +1 -0
- package/dist/esm/v2/__tests__/fmtDate.test.js +68 -0
- package/dist/esm/v2/__tests__/fmtDate.test.js.map +1 -0
- package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js +218 -0
- package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
- package/dist/esm/v2/__tests__/labels-merge.test.js +17 -21
- package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/esm/v2/__tests__/locale-fallback.test.js +35 -40
- package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -1
- package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js +143 -0
- package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
- package/dist/esm/v2/__tests__/rowActions.test.js +182 -0
- package/dist/esm/v2/__tests__/rowActions.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js +155 -0
- package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusTrap.test.js +266 -402
- package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -1
- package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js +120 -0
- package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
- package/dist/esm/v2/components/Accordion.js +48 -70
- package/dist/esm/v2/components/Accordion.js.map +1 -1
- package/dist/esm/v2/components/ActionStrip.js +31 -43
- package/dist/esm/v2/components/ActionStrip.js.map +1 -1
- package/dist/esm/v2/components/Banner.js +25 -22
- package/dist/esm/v2/components/Banner.js.map +1 -1
- package/dist/esm/v2/components/Busy.js +14 -19
- package/dist/esm/v2/components/Busy.js.map +1 -1
- package/dist/esm/v2/components/Button.js +34 -45
- package/dist/esm/v2/components/Button.js.map +1 -1
- package/dist/esm/v2/components/CategoryTag.js +44 -27
- package/dist/esm/v2/components/CategoryTag.js.map +1 -1
- package/dist/esm/v2/components/Checkbox.js +32 -38
- package/dist/esm/v2/components/Checkbox.js.map +1 -1
- package/dist/esm/v2/components/Chip.js +23 -36
- package/dist/esm/v2/components/Chip.js.map +1 -1
- package/dist/esm/v2/components/Combobox.js +112 -136
- package/dist/esm/v2/components/Combobox.js.map +1 -1
- package/dist/esm/v2/components/CommandPalette.js +113 -198
- package/dist/esm/v2/components/CommandPalette.js.map +1 -1
- package/dist/esm/v2/components/ConfirmDialog.js +36 -45
- package/dist/esm/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/esm/v2/components/DatePicker.js +78 -81
- package/dist/esm/v2/components/DatePicker.js.map +1 -1
- package/dist/esm/v2/components/DateRangePicker.js +63 -74
- package/dist/esm/v2/components/DateRangePicker.js.map +1 -1
- package/dist/esm/v2/components/DateTimePicker.js +81 -86
- package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
- package/dist/esm/v2/components/Drawer.js +71 -65
- package/dist/esm/v2/components/Drawer.js.map +1 -1
- package/dist/esm/v2/components/Dropzone.js +130 -177
- package/dist/esm/v2/components/Dropzone.js.map +1 -1
- package/dist/esm/v2/components/EmptyState.js +9 -9
- package/dist/esm/v2/components/EmptyState.js.map +1 -1
- package/dist/esm/v2/components/FavoriteToggle.js +24 -33
- package/dist/esm/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/esm/v2/components/Field.js +155 -59
- package/dist/esm/v2/components/Field.js.map +1 -1
- package/dist/esm/v2/components/FieldError.js +9 -13
- package/dist/esm/v2/components/FieldError.js.map +1 -1
- package/dist/esm/v2/components/FieldHelp.js +28 -49
- package/dist/esm/v2/components/FieldHelp.js.map +1 -1
- package/dist/esm/v2/components/FileCard.js +14 -19
- package/dist/esm/v2/components/FileCard.js.map +1 -1
- package/dist/esm/v2/components/FilterTab.js +22 -31
- package/dist/esm/v2/components/FilterTab.js.map +1 -1
- package/dist/esm/v2/components/ForbiddenPage.js +28 -8
- package/dist/esm/v2/components/ForbiddenPage.js.map +1 -1
- package/dist/esm/v2/components/FormGrid.js +48 -54
- package/dist/esm/v2/components/FormGrid.js.map +1 -1
- package/dist/esm/v2/components/FormikDisplay.js +98 -24
- package/dist/esm/v2/components/FormikDisplay.js.map +1 -1
- package/dist/esm/v2/components/Input.js +75 -34
- package/dist/esm/v2/components/Input.js.map +1 -1
- package/dist/esm/v2/components/KPICard.js +42 -51
- package/dist/esm/v2/components/KPICard.js.map +1 -1
- package/dist/esm/v2/components/KPIStrip.js +9 -15
- package/dist/esm/v2/components/KPIStrip.js.map +1 -1
- package/dist/esm/v2/components/KV.js +16 -23
- package/dist/esm/v2/components/KV.js.map +1 -1
- package/dist/esm/v2/components/KVGrid.js +15 -23
- package/dist/esm/v2/components/KVGrid.js.map +1 -1
- package/dist/esm/v2/components/Layout.js +81 -117
- package/dist/esm/v2/components/Layout.js.map +1 -1
- package/dist/esm/v2/components/MobileRowCard.js +64 -75
- package/dist/esm/v2/components/MobileRowCard.js.map +1 -1
- package/dist/esm/v2/components/Modal.js +44 -53
- package/dist/esm/v2/components/Modal.js.map +1 -1
- package/dist/esm/v2/components/NetworkErrorPage.js +28 -11
- package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/esm/v2/components/NotFoundPage.js +28 -9
- package/dist/esm/v2/components/NotFoundPage.js.map +1 -1
- package/dist/esm/v2/components/NumberInput.js +77 -107
- package/dist/esm/v2/components/NumberInput.js.map +1 -1
- package/dist/esm/v2/components/OverflowMenu.js +24 -42
- package/dist/esm/v2/components/OverflowMenu.js.map +1 -1
- package/dist/esm/v2/components/PdfViewer.js +24 -33
- package/dist/esm/v2/components/PdfViewer.js.map +1 -1
- package/dist/esm/v2/components/ProgressBar.js +28 -36
- package/dist/esm/v2/components/ProgressBar.js.map +1 -1
- package/dist/esm/v2/components/Radio.js +49 -57
- package/dist/esm/v2/components/Radio.js.map +1 -1
- package/dist/esm/v2/components/SectionErrorBoundary.js +84 -130
- package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -1
- package/dist/esm/v2/components/SectionHeader.js +24 -31
- package/dist/esm/v2/components/SectionHeader.js.map +1 -1
- package/dist/esm/v2/components/Segmented.js +59 -84
- package/dist/esm/v2/components/Segmented.js.map +1 -1
- package/dist/esm/v2/components/Select.js +100 -138
- package/dist/esm/v2/components/Select.js.map +1 -1
- package/dist/esm/v2/components/ServerErrorPage.js +27 -10
- package/dist/esm/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/esm/v2/components/Skeleton.js +81 -96
- package/dist/esm/v2/components/Skeleton.js.map +1 -1
- package/dist/esm/v2/components/SkipLink.js +6 -7
- package/dist/esm/v2/components/SkipLink.js.map +1 -1
- package/dist/esm/v2/components/Spinner.js +13 -22
- package/dist/esm/v2/components/Spinner.js.map +1 -1
- package/dist/esm/v2/components/Status.js +14 -25
- package/dist/esm/v2/components/Status.js.map +1 -1
- package/dist/esm/v2/components/Stepper.js +68 -71
- package/dist/esm/v2/components/Stepper.js.map +1 -1
- package/dist/esm/v2/components/Surface.js +25 -44
- package/dist/esm/v2/components/Surface.js.map +1 -1
- package/dist/esm/v2/components/Switch.js +21 -29
- package/dist/esm/v2/components/Switch.js.map +1 -1
- package/dist/esm/v2/components/TabPanel.js +84 -0
- package/dist/esm/v2/components/TabPanel.js.map +1 -0
- package/dist/esm/v2/components/Tabs.js +43 -19
- package/dist/esm/v2/components/Tabs.js.map +1 -1
- package/dist/esm/v2/components/TelInput.js +75 -108
- package/dist/esm/v2/components/TelInput.js.map +1 -1
- package/dist/esm/v2/components/Textarea.js +21 -30
- package/dist/esm/v2/components/Textarea.js.map +1 -1
- package/dist/esm/v2/components/TimePicker.js +59 -69
- package/dist/esm/v2/components/TimePicker.js.map +1 -1
- package/dist/esm/v2/components/Toast.js +109 -163
- package/dist/esm/v2/components/Toast.js.map +1 -1
- package/dist/esm/v2/components/Tooltip.js +18 -31
- package/dist/esm/v2/components/Tooltip.js.map +1 -1
- package/dist/esm/v2/components/_ErrorPageBody.js +6 -5
- package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -1
- package/dist/esm/v2/components/_pickerShared.js +2 -2
- package/dist/esm/v2/components/_pickerShared.js.map +1 -1
- package/dist/esm/v2/components/index.js +37 -0
- package/dist/esm/v2/components/index.js.map +1 -1
- package/dist/esm/v2/hooks/index.js +62 -0
- package/dist/esm/v2/hooks/index.js.map +1 -1
- package/dist/esm/v2/hooks/useAppliedFilters.js +112 -0
- package/dist/esm/v2/hooks/useAppliedFilters.js.map +1 -0
- package/dist/esm/v2/hooks/useDebouncedCallback.js +82 -0
- package/dist/esm/v2/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/esm/v2/hooks/useDelayedFlag.js +5 -19
- package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -1
- package/dist/esm/v2/hooks/useDensity.js +13 -17
- package/dist/esm/v2/hooks/useDensity.js.map +1 -1
- package/dist/esm/v2/hooks/useFocusFirstError.js +25 -33
- package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -1
- package/dist/esm/v2/hooks/useFocusOnRouteChange.js +81 -0
- package/dist/esm/v2/hooks/useFocusOnRouteChange.js.map +1 -0
- package/dist/esm/v2/hooks/useFocusTrap.js +19 -23
- package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -1
- package/dist/esm/v2/hooks/useFormAutoSave.js +38 -53
- package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -1
- package/dist/esm/v2/hooks/useFormCompletionProgress.js +32 -51
- package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -1
- package/dist/esm/v2/hooks/useKeyboardShortcuts.js +125 -0
- package/dist/esm/v2/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/esm/v2/hooks/usePrefersReducedMotion.js +99 -0
- package/dist/esm/v2/hooks/usePrefersReducedMotion.js.map +1 -0
- package/dist/esm/v2/hooks/useResolvedDensity.js +2 -10
- package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -1
- package/dist/esm/v2/hooks/useSortedRows.js +3 -5
- package/dist/esm/v2/hooks/useSortedRows.js.map +1 -1
- package/dist/esm/v2/hooks/useTabLoading.js +6 -21
- package/dist/esm/v2/hooks/useTabLoading.js.map +1 -1
- package/dist/esm/v2/index.js +2 -3
- package/dist/esm/v2/index.js.map +1 -1
- package/dist/esm/v2/modalContext.js +2 -2
- package/dist/esm/v2/modalContext.js.map +1 -1
- package/dist/esm/v2/models/favorite.js.map +1 -1
- package/dist/esm/v2/models/personalization.js.map +1 -1
- package/dist/esm/v2/models/referentiel.js.map +1 -1
- package/dist/esm/v2/models/savedFilter.js.map +1 -1
- package/dist/esm/v2/patterns/ActionBar.js +115 -159
- package/dist/esm/v2/patterns/ActionBar.js.map +1 -1
- package/dist/esm/v2/patterns/AppMain.js +108 -0
- package/dist/esm/v2/patterns/AppMain.js.map +1 -0
- package/dist/esm/v2/patterns/BulkActionBar.js +31 -34
- package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/esm/v2/patterns/ChartFigure.js +151 -0
- package/dist/esm/v2/patterns/ChartFigure.js.map +1 -0
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js +111 -152
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/esm/v2/patterns/ColumnsToggle.js +43 -77
- package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/esm/v2/patterns/DataGrid.js +221 -255
- package/dist/esm/v2/patterns/DataGrid.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js +76 -94
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridToolbar.js +85 -89
- package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridVirtualized.js +141 -182
- package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +26 -30
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/esm/v2/patterns/DetailSplit.js +108 -0
- package/dist/esm/v2/patterns/DetailSplit.js.map +1 -0
- package/dist/esm/v2/patterns/FavoriteColumn.js +15 -17
- package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/esm/v2/patterns/FavoritesFilter.js +30 -39
- package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/esm/v2/patterns/FilterTabBar.js +112 -0
- package/dist/esm/v2/patterns/FilterTabBar.js.map +1 -0
- package/dist/esm/v2/patterns/FormErrorSummary.js +12 -13
- package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/esm/v2/patterns/FormPageShell.js +43 -41
- package/dist/esm/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/esm/v2/patterns/FormSection.js +30 -38
- package/dist/esm/v2/patterns/FormSection.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCheckbox.js +29 -39
- package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js +56 -60
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCombobox.js +51 -69
- package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDatePicker.js +44 -58
- package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDateTimePicker.js +44 -58
- package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -1
- package/dist/esm/v2/patterns/FormikErrorFocus.js +22 -23
- package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/esm/v2/patterns/FormikErrorSummary.js +89 -0
- package/dist/esm/v2/patterns/FormikErrorSummary.js.map +1 -0
- package/dist/esm/v2/patterns/FormikFile.js +94 -78
- package/dist/esm/v2/patterns/FormikFile.js.map +1 -1
- package/dist/esm/v2/patterns/FormikInput.js +40 -53
- package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
- package/dist/esm/v2/patterns/FormikRadioGroup.js +39 -51
- package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -1
- package/dist/esm/v2/patterns/FormikReferentielField.js +49 -59
- package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/esm/v2/patterns/FormikSelect.js +64 -87
- package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/esm/v2/patterns/FormikTextarea.js +30 -46
- package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +53 -71
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/esm/v2/patterns/NetworkErrorBanner.js +6 -7
- package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/esm/v2/patterns/PageContent.js +10 -14
- package/dist/esm/v2/patterns/PageContent.js.map +1 -1
- package/dist/esm/v2/patterns/PreviewDrawer.js +153 -0
- package/dist/esm/v2/patterns/PreviewDrawer.js.map +1 -0
- package/dist/esm/v2/patterns/ReferentielField.js +327 -312
- package/dist/esm/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/esm/v2/patterns/RowFavoriteToggle.js +27 -22
- package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -1
- package/dist/esm/v2/patterns/SaveFilterDialog.js +38 -66
- package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/esm/v2/patterns/SavedFiltersMenu.js +62 -81
- package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/esm/v2/patterns/SkeletonPageShell.js +106 -129
- package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/esm/v2/patterns/SortableHeader.js +22 -45
- package/dist/esm/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/esm/v2/patterns/Tour.js +94 -120
- package/dist/esm/v2/patterns/Tour.js.map +1 -1
- package/dist/esm/v2/patterns/_dataGridShared.js +107 -128
- package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/esm/v2/patterns/_pickerSerialisation.js +6 -8
- package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -1
- package/dist/esm/v2/patterns/_sort.js +17 -33
- package/dist/esm/v2/patterns/_sort.js.map +1 -1
- package/dist/esm/v2/patterns/_useColumnReorder.js +122 -160
- package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/esm/v2/patterns/_useColumnResize.js +78 -96
- package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/esm/v2/patterns/filterCriteria.js +102 -0
- package/dist/esm/v2/patterns/filterCriteria.js.map +1 -0
- package/dist/esm/v2/patterns/index.js +152 -0
- package/dist/esm/v2/patterns/index.js.map +1 -1
- package/dist/esm/v2/patterns/rowActions.js +223 -0
- package/dist/esm/v2/patterns/rowActions.js.map +1 -0
- package/dist/esm/v2/personalization/PersonalizationProvider.js +50 -47
- package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/_storageKey.js +5 -5
- package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +22 -23
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +13 -13
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/favorites.js +36 -60
- package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/favoritesView.js +22 -34
- package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js +28 -34
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
- package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
- package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
- package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/esm/v2/personalization/index.js +17 -0
- package/dist/esm/v2/personalization/index.js.map +1 -1
- package/dist/esm/v2/personalization/personalizationContext.js +9 -9
- package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
- package/dist/esm/v2/personalization/schema.js +8 -9
- package/dist/esm/v2/personalization/schema.js.map +1 -1
- package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
- package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/esm/v2/referentiel/types.js +2 -0
- package/dist/esm/v2/referentiel/types.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
- package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
- package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
- package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
- package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/esm/v2/theme/_brand.js +8 -24
- package/dist/esm/v2/theme/_brand.js.map +1 -1
- package/dist/esm/v2/theme/_brandSecondary.js +8 -24
- package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
- package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
- package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/esm/v2/theme/cssVariables.js +62 -69
- package/dist/esm/v2/theme/cssVariables.js.map +1 -1
- package/dist/esm/v2/theme/index.js +5 -5
- package/dist/esm/v2/theme/index.js.map +1 -1
- package/dist/esm/v2/tokens/breakpoints.js +14 -14
- package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
- package/dist/esm/v2/tokens/chart.js +261 -0
- package/dist/esm/v2/tokens/chart.js.map +1 -0
- package/dist/esm/v2/tokens/colors.js +22 -22
- package/dist/esm/v2/tokens/colors.js.map +1 -1
- package/dist/esm/v2/tokens/density.js +62 -7
- package/dist/esm/v2/tokens/density.js.map +1 -1
- package/dist/esm/v2/tokens/index.js +49 -34
- package/dist/esm/v2/tokens/index.js.map +1 -1
- package/dist/esm/v2/tokens/motion.js +12 -20
- package/dist/esm/v2/tokens/motion.js.map +1 -1
- package/dist/esm/v2/tokens/radius.js +1 -1
- package/dist/esm/v2/tokens/radius.js.map +1 -1
- package/dist/esm/v2/tokens/shadows.js +6 -6
- package/dist/esm/v2/tokens/shadows.js.map +1 -1
- package/dist/esm/v2/tokens/spacing.js +2 -2
- package/dist/esm/v2/tokens/spacing.js.map +1 -1
- package/dist/esm/v2/tokens/state.js +1 -1
- package/dist/esm/v2/tokens/state.js.map +1 -1
- package/dist/esm/v2/tokens/statusPalette.js +17 -21
- package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
- package/dist/esm/v2/tokens/tokens.json +6 -1
- package/dist/esm/v2/tokens/typography.js +13 -13
- package/dist/esm/v2/tokens/typography.js.map +1 -1
- package/dist/esm/v2/tokens/zIndex.js +1 -1
- package/dist/esm/v2/tokens/zIndex.js.map +1 -1
- package/dist/esm/v2/types/datagrid.js.map +1 -1
- package/dist/esm/v2/utils/apiError.js +16 -37
- package/dist/esm/v2/utils/apiError.js.map +1 -1
- package/dist/esm/v2/utils/contrast.js +31 -32
- package/dist/esm/v2/utils/contrast.js.map +1 -1
- package/dist/esm/v2/utils/cx.js +5 -25
- package/dist/esm/v2/utils/cx.js.map +1 -1
- package/dist/esm/v2/utils/fileDownload.js +23 -26
- package/dist/esm/v2/utils/fileDownload.js.map +1 -1
- package/dist/esm/v2/utils/fileValidation.js +209 -0
- package/dist/esm/v2/utils/fileValidation.js.map +1 -0
- package/dist/esm/v2/utils/fmtDate.js +111 -0
- package/dist/esm/v2/utils/fmtDate.js.map +1 -0
- package/dist/esm/v2/utils/fmtMoney.js +8 -10
- package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
- package/dist/esm/v2/utils/formikErrors.js +78 -0
- package/dist/esm/v2/utils/formikErrors.js.map +1 -0
- package/dist/esm/v2/utils/index.js +35 -2
- package/dist/esm/v2/utils/index.js.map +1 -1
- package/dist/esm/v2/utils/mergeLabels.js +7 -12
- package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
- package/dist/esm/v2/utils/networkStatus.js +12 -12
- package/dist/esm/v2/utils/networkStatus.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +110 -49
- package/dist/index.js.map +1 -1
- package/dist/v2/__tests__/AppMain.test.js +133 -0
- package/dist/v2/__tests__/AppMain.test.js.map +1 -0
- package/dist/v2/__tests__/ChartFigure.test.js +183 -0
- package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
- package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
- package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
- package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
- package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
- package/dist/v2/__tests__/FieldError.test.js +82 -49
- package/dist/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/v2/__tests__/FieldNaming.test.js +161 -0
- package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
- package/dist/v2/__tests__/FieldWidth.test.js +23 -25
- package/dist/v2/__tests__/FieldWidth.test.js.map +1 -1
- package/dist/v2/__tests__/FileCard.test.js +29 -28
- package/dist/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/v2/__tests__/FormikCheckbox.test.js +90 -183
- package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -1
- package/dist/v2/__tests__/FormikDateTimePicker.test.js +38 -48
- package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
- package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
- package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js +123 -204
- package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
- package/dist/v2/__tests__/MobileRowCard.test.js +63 -61
- package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
- package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
- package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
- package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
- package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
- package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/v2/__tests__/apiError.test.js +50 -69
- package/dist/v2/__tests__/apiError.test.js.map +1 -1
- package/dist/v2/__tests__/banned-patterns.test.js +42 -123
- package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
- package/dist/v2/__tests__/chart-palette.test.js +205 -0
- package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
- package/dist/v2/__tests__/contrast-palette.test.js +42 -74
- package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
- package/dist/v2/__tests__/cssVariables.test.js +44 -51
- package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
- package/dist/v2/__tests__/fileValidation.test.js +136 -0
- package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
- package/dist/v2/__tests__/filterCriteria.test.js +324 -0
- package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
- package/dist/v2/__tests__/fmtDate.test.js +69 -0
- package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
- package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
- package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
- package/dist/v2/__tests__/labels-merge.test.js +23 -27
- package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/v2/__tests__/locale-fallback.test.js +47 -52
- package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
- package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
- package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
- package/dist/v2/__tests__/rowActions.test.js +186 -0
- package/dist/v2/__tests__/rowActions.test.js.map +1 -0
- package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
- package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
- package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
- package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
- package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
- package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
- package/dist/v2/components/Accordion.js +60 -82
- package/dist/v2/components/Accordion.js.map +1 -1
- package/dist/v2/components/ActionStrip.js +40 -52
- package/dist/v2/components/ActionStrip.js.map +1 -1
- package/dist/v2/components/Banner.js +42 -41
- package/dist/v2/components/Banner.js.map +1 -1
- package/dist/v2/components/Busy.js +22 -27
- package/dist/v2/components/Busy.js.map +1 -1
- package/dist/v2/components/Button.js +39 -50
- package/dist/v2/components/Button.js.map +1 -1
- package/dist/v2/components/CategoryTag.d.ts.map +1 -1
- package/dist/v2/components/CategoryTag.js +49 -32
- package/dist/v2/components/CategoryTag.js.map +1 -1
- package/dist/v2/components/Checkbox.js +39 -45
- package/dist/v2/components/Checkbox.js.map +1 -1
- package/dist/v2/components/Chip.js +29 -42
- package/dist/v2/components/Chip.js.map +1 -1
- package/dist/v2/components/Combobox.js +122 -144
- package/dist/v2/components/Combobox.js.map +1 -1
- package/dist/v2/components/CommandPalette.js +138 -225
- package/dist/v2/components/CommandPalette.js.map +1 -1
- package/dist/v2/components/ConfirmDialog.js +46 -56
- package/dist/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/v2/components/DatePicker.js +81 -86
- package/dist/v2/components/DatePicker.js.map +1 -1
- package/dist/v2/components/DateRangePicker.js +77 -87
- package/dist/v2/components/DateRangePicker.js.map +1 -1
- package/dist/v2/components/DateTimePicker.js +84 -91
- package/dist/v2/components/DateTimePicker.js.map +1 -1
- package/dist/v2/components/Drawer.d.ts.map +1 -1
- package/dist/v2/components/Drawer.js +93 -88
- package/dist/v2/components/Drawer.js.map +1 -1
- package/dist/v2/components/Dropzone.js +150 -196
- package/dist/v2/components/Dropzone.js.map +1 -1
- package/dist/v2/components/EmptyState.js +18 -20
- package/dist/v2/components/EmptyState.js.map +1 -1
- package/dist/v2/components/FavoriteToggle.js +28 -39
- package/dist/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/v2/components/Field.d.ts +62 -4
- package/dist/v2/components/Field.d.ts.map +1 -1
- package/dist/v2/components/Field.js +169 -70
- package/dist/v2/components/Field.js.map +1 -1
- package/dist/v2/components/FieldError.js +18 -21
- package/dist/v2/components/FieldError.js.map +1 -1
- package/dist/v2/components/FieldHelp.js +40 -60
- package/dist/v2/components/FieldHelp.js.map +1 -1
- package/dist/v2/components/FileCard.js +27 -31
- package/dist/v2/components/FileCard.js.map +1 -1
- package/dist/v2/components/FilterTab.js +30 -38
- package/dist/v2/components/FilterTab.js.map +1 -1
- package/dist/v2/components/ForbiddenPage.d.ts +25 -1
- package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
- package/dist/v2/components/ForbiddenPage.js +37 -17
- package/dist/v2/components/ForbiddenPage.js.map +1 -1
- package/dist/v2/components/FormGrid.js +53 -59
- package/dist/v2/components/FormGrid.js.map +1 -1
- package/dist/v2/components/FormikDisplay.d.ts +50 -1
- package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
- package/dist/v2/components/FormikDisplay.js +108 -33
- package/dist/v2/components/FormikDisplay.js.map +1 -1
- package/dist/v2/components/Input.d.ts +40 -0
- package/dist/v2/components/Input.d.ts.map +1 -1
- package/dist/v2/components/Input.js +81 -41
- package/dist/v2/components/Input.js.map +1 -1
- package/dist/v2/components/KPICard.js +57 -67
- package/dist/v2/components/KPICard.js.map +1 -1
- package/dist/v2/components/KPIStrip.js +16 -22
- package/dist/v2/components/KPIStrip.js.map +1 -1
- package/dist/v2/components/KV.js +25 -31
- package/dist/v2/components/KV.js.map +1 -1
- package/dist/v2/components/KVGrid.js +19 -26
- package/dist/v2/components/KVGrid.js.map +1 -1
- package/dist/v2/components/Layout.js +91 -120
- package/dist/v2/components/Layout.js.map +1 -1
- package/dist/v2/components/MobileRowCard.js +79 -91
- package/dist/v2/components/MobileRowCard.js.map +1 -1
- package/dist/v2/components/Modal.js +61 -69
- package/dist/v2/components/Modal.js.map +1 -1
- package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
- package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
- package/dist/v2/components/NetworkErrorPage.js +38 -21
- package/dist/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/v2/components/NotFoundPage.d.ts +17 -1
- package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
- package/dist/v2/components/NotFoundPage.js +37 -18
- package/dist/v2/components/NotFoundPage.js.map +1 -1
- package/dist/v2/components/NumberInput.js +88 -118
- package/dist/v2/components/NumberInput.js.map +1 -1
- package/dist/v2/components/OverflowMenu.js +38 -56
- package/dist/v2/components/OverflowMenu.js.map +1 -1
- package/dist/v2/components/PdfViewer.js +34 -45
- package/dist/v2/components/PdfViewer.js.map +1 -1
- package/dist/v2/components/ProgressBar.js +42 -49
- package/dist/v2/components/ProgressBar.js.map +1 -1
- package/dist/v2/components/Radio.js +59 -67
- package/dist/v2/components/Radio.js.map +1 -1
- package/dist/v2/components/SectionErrorBoundary.js +90 -135
- package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
- package/dist/v2/components/SectionHeader.js +34 -41
- package/dist/v2/components/SectionHeader.js.map +1 -1
- package/dist/v2/components/Segmented.js +69 -93
- package/dist/v2/components/Segmented.js.map +1 -1
- package/dist/v2/components/Select.d.ts +26 -2
- package/dist/v2/components/Select.d.ts.map +1 -1
- package/dist/v2/components/Select.js +120 -155
- package/dist/v2/components/Select.js.map +1 -1
- package/dist/v2/components/ServerErrorPage.d.ts +27 -1
- package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
- package/dist/v2/components/ServerErrorPage.js +37 -20
- package/dist/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/v2/components/Skeleton.js +86 -100
- package/dist/v2/components/Skeleton.js.map +1 -1
- package/dist/v2/components/SkipLink.js +9 -12
- package/dist/v2/components/SkipLink.js.map +1 -1
- package/dist/v2/components/Spinner.js +16 -25
- package/dist/v2/components/Spinner.js.map +1 -1
- package/dist/v2/components/Status.js +18 -29
- package/dist/v2/components/Status.js.map +1 -1
- package/dist/v2/components/Stepper.js +80 -82
- package/dist/v2/components/Stepper.js.map +1 -1
- package/dist/v2/components/Surface.js +34 -49
- package/dist/v2/components/Surface.js.map +1 -1
- package/dist/v2/components/Switch.js +29 -37
- package/dist/v2/components/Switch.js.map +1 -1
- package/dist/v2/components/TabPanel.d.ts +17 -0
- package/dist/v2/components/TabPanel.d.ts.map +1 -0
- package/dist/v2/components/TabPanel.js +90 -0
- package/dist/v2/components/TabPanel.js.map +1 -0
- package/dist/v2/components/Tabs.d.ts +25 -0
- package/dist/v2/components/Tabs.d.ts.map +1 -1
- package/dist/v2/components/Tabs.js +53 -29
- package/dist/v2/components/Tabs.js.map +1 -1
- package/dist/v2/components/TelInput.js +80 -115
- package/dist/v2/components/TelInput.js.map +1 -1
- package/dist/v2/components/Textarea.js +26 -35
- package/dist/v2/components/Textarea.js.map +1 -1
- package/dist/v2/components/TimePicker.js +62 -74
- package/dist/v2/components/TimePicker.js.map +1 -1
- package/dist/v2/components/Toast.js +119 -174
- package/dist/v2/components/Toast.js.map +1 -1
- package/dist/v2/components/Tooltip.js +23 -38
- package/dist/v2/components/Tooltip.js.map +1 -1
- package/dist/v2/components/_ErrorPageBody.js +15 -16
- package/dist/v2/components/_ErrorPageBody.js.map +1 -1
- package/dist/v2/components/_pickerShared.js +5 -5
- package/dist/v2/components/_pickerShared.js.map +1 -1
- package/dist/v2/components/index.d.ts +40 -1
- package/dist/v2/components/index.d.ts.map +1 -1
- package/dist/v2/components/index.js +153 -136
- package/dist/v2/components/index.js.map +1 -1
- package/dist/v2/hooks/index.d.ts +65 -0
- package/dist/v2/hooks/index.d.ts.map +1 -1
- package/dist/v2/hooks/index.js +63 -24
- package/dist/v2/hooks/index.js.map +1 -1
- package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
- package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
- package/dist/v2/hooks/useAppliedFilters.js +117 -0
- package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
- package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
- package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
- package/dist/v2/hooks/useDebouncedCallback.js +87 -0
- package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/v2/hooks/useDelayedFlag.js +6 -20
- package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
- package/dist/v2/hooks/useDensity.d.ts.map +1 -1
- package/dist/v2/hooks/useDensity.js +14 -18
- package/dist/v2/hooks/useDensity.js.map +1 -1
- package/dist/v2/hooks/useFocusFirstError.js +26 -34
- package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
- package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
- package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
- package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
- package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
- package/dist/v2/hooks/useFocusTrap.js +20 -24
- package/dist/v2/hooks/useFocusTrap.js.map +1 -1
- package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
- package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
- package/dist/v2/hooks/useFormAutoSave.js +39 -54
- package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
- package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
- package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
- package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
- package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
- package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
- package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
- package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
- package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
- package/dist/v2/hooks/useResolvedDensity.js +5 -13
- package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
- package/dist/v2/hooks/useSortedRows.js +4 -6
- package/dist/v2/hooks/useSortedRows.js.map +1 -1
- package/dist/v2/hooks/useTabLoading.js +7 -22
- package/dist/v2/hooks/useTabLoading.js.map +1 -1
- package/dist/v2/index.js +143 -145
- package/dist/v2/index.js.map +1 -1
- package/dist/v2/modalContext.js +2 -2
- package/dist/v2/modalContext.js.map +1 -1
- package/dist/v2/models/favorite.d.ts +8 -9
- package/dist/v2/models/favorite.d.ts.map +1 -1
- package/dist/v2/models/favorite.js.map +1 -1
- package/dist/v2/models/index.js +4 -4
- package/dist/v2/models/index.js.map +1 -1
- package/dist/v2/models/personalization.d.ts +44 -48
- package/dist/v2/models/personalization.d.ts.map +1 -1
- package/dist/v2/models/personalization.js.map +1 -1
- package/dist/v2/models/referentiel.d.ts +32 -50
- package/dist/v2/models/referentiel.d.ts.map +1 -1
- package/dist/v2/models/referentiel.js.map +1 -1
- package/dist/v2/models/savedFilter.d.ts +8 -17
- package/dist/v2/models/savedFilter.d.ts.map +1 -1
- package/dist/v2/models/savedFilter.js.map +1 -1
- package/dist/v2/patterns/ActionBar.js +152 -187
- package/dist/v2/patterns/ActionBar.js.map +1 -1
- package/dist/v2/patterns/AppMain.d.ts +109 -0
- package/dist/v2/patterns/AppMain.d.ts.map +1 -0
- package/dist/v2/patterns/AppMain.js +115 -0
- package/dist/v2/patterns/AppMain.js.map +1 -0
- package/dist/v2/patterns/BulkActionBar.js +40 -42
- package/dist/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/v2/patterns/ChartFigure.d.ts +124 -0
- package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
- package/dist/v2/patterns/ChartFigure.js +159 -0
- package/dist/v2/patterns/ChartFigure.js.map +1 -0
- package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
- package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/v2/patterns/ColumnsToggle.js +60 -94
- package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
- package/dist/v2/patterns/DataGrid.js +262 -297
- package/dist/v2/patterns/DataGrid.js.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
- package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/v2/patterns/DataGridToolbar.js +103 -106
- package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/v2/patterns/DataGridVirtualized.js +179 -217
- package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/v2/patterns/DetailSplit.d.ts +87 -0
- package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
- package/dist/v2/patterns/DetailSplit.js +116 -0
- package/dist/v2/patterns/DetailSplit.js.map +1 -0
- package/dist/v2/patterns/FavoriteColumn.js +22 -23
- package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/v2/patterns/FavoritesFilter.js +36 -44
- package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
- package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
- package/dist/v2/patterns/FilterTabBar.js +120 -0
- package/dist/v2/patterns/FilterTabBar.js.map +1 -0
- package/dist/v2/patterns/FormErrorSummary.js +20 -23
- package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/v2/patterns/FormPageShell.js +53 -50
- package/dist/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/v2/patterns/FormSection.d.ts +8 -3
- package/dist/v2/patterns/FormSection.d.ts.map +1 -1
- package/dist/v2/patterns/FormSection.js +44 -51
- package/dist/v2/patterns/FormSection.js.map +1 -1
- package/dist/v2/patterns/FormikCheckbox.js +36 -45
- package/dist/v2/patterns/FormikCheckbox.js.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
- package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/v2/patterns/FormikCombobox.js +55 -72
- package/dist/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.js +50 -64
- package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/v2/patterns/FormikDateTimePicker.js +50 -64
- package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -1
- package/dist/v2/patterns/FormikErrorFocus.js +25 -26
- package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
- package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
- package/dist/v2/patterns/FormikErrorSummary.js +97 -0
- package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
- package/dist/v2/patterns/FormikFile.d.ts +14 -1
- package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
- package/dist/v2/patterns/FormikFile.js +99 -83
- package/dist/v2/patterns/FormikFile.js.map +1 -1
- package/dist/v2/patterns/FormikInput.js +45 -58
- package/dist/v2/patterns/FormikInput.js.map +1 -1
- package/dist/v2/patterns/FormikRadioGroup.js +45 -56
- package/dist/v2/patterns/FormikRadioGroup.js.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
- package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.js +54 -64
- package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/v2/patterns/FormikSelect.js +70 -92
- package/dist/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/v2/patterns/FormikTextarea.js +35 -51
- package/dist/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.js +60 -80
- package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
- package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/v2/patterns/PageContent.js +17 -20
- package/dist/v2/patterns/PageContent.js.map +1 -1
- package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
- package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
- package/dist/v2/patterns/PreviewDrawer.js +159 -0
- package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
- package/dist/v2/patterns/ReferentielField.d.ts +86 -2
- package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/ReferentielField.js +347 -327
- package/dist/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/v2/patterns/RowFavoriteToggle.d.ts +6 -0
- package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -1
- package/dist/v2/patterns/RowFavoriteToggle.js +38 -30
- package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -1
- package/dist/v2/patterns/SaveFilterDialog.js +50 -77
- package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
- package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/v2/patterns/SkeletonPageShell.js +122 -143
- package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/v2/patterns/SortableHeader.js +35 -57
- package/dist/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/v2/patterns/Tour.js +121 -142
- package/dist/v2/patterns/Tour.js.map +1 -1
- package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
- package/dist/v2/patterns/_dataGridShared.js +131 -147
- package/dist/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/v2/patterns/_pickerSerialisation.js +9 -10
- package/dist/v2/patterns/_pickerSerialisation.js.map +1 -1
- package/dist/v2/patterns/_sort.js +17 -33
- package/dist/v2/patterns/_sort.js.map +1 -1
- package/dist/v2/patterns/_useColumnReorder.js +124 -163
- package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/v2/patterns/_useColumnResize.js +80 -99
- package/dist/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/v2/patterns/filterCriteria.d.ts +78 -0
- package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
- package/dist/v2/patterns/filterCriteria.js +110 -0
- package/dist/v2/patterns/filterCriteria.js.map +1 -0
- package/dist/v2/patterns/index.d.ts +160 -0
- package/dist/v2/patterns/index.d.ts.map +1 -1
- package/dist/v2/patterns/index.js +157 -79
- package/dist/v2/patterns/index.js.map +1 -1
- package/dist/v2/patterns/rowActions.d.ts +150 -0
- package/dist/v2/patterns/rowActions.d.ts.map +1 -0
- package/dist/v2/patterns/rowActions.js +232 -0
- package/dist/v2/patterns/rowActions.js.map +1 -0
- package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
- package/dist/v2/personalization/PersonalizationProvider.js +57 -53
- package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/v2/personalization/adapters/_storageKey.js +5 -5
- package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
- package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/index.js +5 -5
- package/dist/v2/personalization/adapters/index.js.map +1 -1
- package/dist/v2/personalization/capabilities/favorites.js +39 -62
- package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
- package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
- package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/v2/personalization/capabilities/gridPreferences.js +31 -36
- package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -1
- package/dist/v2/personalization/capabilities/index.js +12 -12
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
- package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
- package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.js +81 -182
- package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/v2/personalization/index.d.ts +16 -0
- package/dist/v2/personalization/index.d.ts.map +1 -1
- package/dist/v2/personalization/index.js +30 -23
- package/dist/v2/personalization/index.js.map +1 -1
- package/dist/v2/personalization/personalizationContext.js +10 -12
- package/dist/v2/personalization/personalizationContext.js.map +1 -1
- package/dist/v2/personalization/schema.js +8 -9
- package/dist/v2/personalization/schema.js.map +1 -1
- package/dist/v2/referentiel/ReferentielProvider.js +31 -45
- package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/v2/referentiel/index.js +11 -13
- package/dist/v2/referentiel/index.js.map +1 -1
- package/dist/v2/referentiel/types.d.ts +105 -0
- package/dist/v2/referentiel/types.d.ts.map +1 -0
- package/dist/v2/referentiel/types.js +6 -0
- package/dist/v2/referentiel/types.js.map +1 -0
- package/dist/v2/referentiel/useReferentielClient.js +13 -16
- package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
- package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.js +63 -120
- package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
- package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.js +40 -95
- package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/v2/theme/_brand.js +12 -26
- package/dist/v2/theme/_brand.js.map +1 -1
- package/dist/v2/theme/_brandSecondary.js +12 -26
- package/dist/v2/theme/_brandSecondary.js.map +1 -1
- package/dist/v2/theme/createPortnetTheme.js +41 -49
- package/dist/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/v2/theme/cssVariables.d.ts +3 -3
- package/dist/v2/theme/cssVariables.d.ts.map +1 -1
- package/dist/v2/theme/cssVariables.js +65 -70
- package/dist/v2/theme/cssVariables.js.map +1 -1
- package/dist/v2/theme/index.js +10 -10
- package/dist/v2/theme/index.js.map +1 -1
- package/dist/v2/tokens/breakpoints.js +16 -16
- package/dist/v2/tokens/breakpoints.js.map +1 -1
- package/dist/v2/tokens/chart.d.ts +103 -0
- package/dist/v2/tokens/chart.d.ts.map +1 -0
- package/dist/v2/tokens/chart.js +270 -0
- package/dist/v2/tokens/chart.js.map +1 -0
- package/dist/v2/tokens/colors.js +24 -24
- package/dist/v2/tokens/colors.js.map +1 -1
- package/dist/v2/tokens/density.d.ts +104 -0
- package/dist/v2/tokens/density.d.ts.map +1 -1
- package/dist/v2/tokens/density.js +67 -12
- package/dist/v2/tokens/density.js.map +1 -1
- package/dist/v2/tokens/index.d.ts +50 -1
- package/dist/v2/tokens/index.d.ts.map +1 -1
- package/dist/v2/tokens/index.js +116 -68
- package/dist/v2/tokens/index.js.map +1 -1
- package/dist/v2/tokens/motion.js +16 -22
- package/dist/v2/tokens/motion.js.map +1 -1
- package/dist/v2/tokens/radius.js +3 -3
- package/dist/v2/tokens/radius.js.map +1 -1
- package/dist/v2/tokens/shadows.js +8 -8
- package/dist/v2/tokens/shadows.js.map +1 -1
- package/dist/v2/tokens/spacing.js +4 -4
- package/dist/v2/tokens/spacing.js.map +1 -1
- package/dist/v2/tokens/state.js +3 -3
- package/dist/v2/tokens/state.js.map +1 -1
- package/dist/v2/tokens/statusPalette.js +21 -23
- package/dist/v2/tokens/statusPalette.js.map +1 -1
- package/dist/v2/tokens/tokens.json +6 -1
- package/dist/v2/tokens/typography.js +15 -15
- package/dist/v2/tokens/typography.js.map +1 -1
- package/dist/v2/tokens/zIndex.js +3 -3
- package/dist/v2/tokens/zIndex.js.map +1 -1
- package/dist/v2/types/datagrid.d.ts +9 -1
- package/dist/v2/types/datagrid.d.ts.map +1 -1
- package/dist/v2/types/datagrid.js.map +1 -1
- package/dist/v2/types/index.js +2 -2
- package/dist/v2/types/index.js.map +1 -1
- package/dist/v2/utils/apiError.js +16 -37
- package/dist/v2/utils/apiError.js.map +1 -1
- package/dist/v2/utils/contrast.js +31 -32
- package/dist/v2/utils/contrast.js.map +1 -1
- package/dist/v2/utils/cx.js +7 -27
- package/dist/v2/utils/cx.js.map +1 -1
- package/dist/v2/utils/fileDownload.js +25 -28
- package/dist/v2/utils/fileDownload.js.map +1 -1
- package/dist/v2/utils/fileValidation.d.ts +116 -0
- package/dist/v2/utils/fileValidation.d.ts.map +1 -0
- package/dist/v2/utils/fileValidation.js +220 -0
- package/dist/v2/utils/fileValidation.js.map +1 -0
- package/dist/v2/utils/fmtDate.d.ts +103 -0
- package/dist/v2/utils/fmtDate.d.ts.map +1 -0
- package/dist/v2/utils/fmtDate.js +119 -0
- package/dist/v2/utils/fmtDate.js.map +1 -0
- package/dist/v2/utils/fmtMoney.d.ts +3 -3
- package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
- package/dist/v2/utils/fmtMoney.js +9 -11
- package/dist/v2/utils/fmtMoney.js.map +1 -1
- package/dist/v2/utils/formikErrors.d.ts +67 -0
- package/dist/v2/utils/formikErrors.d.ts.map +1 -0
- package/dist/v2/utils/formikErrors.js +85 -0
- package/dist/v2/utils/formikErrors.js.map +1 -0
- package/dist/v2/utils/index.d.ts +5 -0
- package/dist/v2/utils/index.d.ts.map +1 -1
- package/dist/v2/utils/index.js +67 -18
- package/dist/v2/utils/index.js.map +1 -1
- package/dist/v2/utils/mergeLabels.js +9 -14
- package/dist/v2/utils/mergeLabels.js.map +1 -1
- package/dist/v2/utils/networkStatus.js +14 -14
- package/dist/v2/utils/networkStatus.js.map +1 -1
- package/package.json +26 -9
|
@@ -7,13 +7,8 @@ var _FormikDateTimePicker = _interopRequireDefault(require("../patterns/FormikDa
|
|
|
7
7
|
var _FormikDatePicker = _interopRequireDefault(require("../patterns/FormikDatePicker"));
|
|
8
8
|
var _DateTimePicker = require("../components/DateTimePicker");
|
|
9
9
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
-
function _interopRequireDefault(
|
|
11
|
-
|
|
12
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
13
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
14
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
16
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /**
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
/**
|
|
17
12
|
* FormikDateTimePicker — contract tests (gap G-E).
|
|
18
13
|
*
|
|
19
14
|
* WHY THIS FILE EXISTS
|
|
@@ -57,8 +52,9 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
57
52
|
* MUI X renders its calendar in a portal with its own interaction model; the
|
|
58
53
|
* value plumbing is what belongs to this bridge. The visual side belongs to
|
|
59
54
|
* the story.
|
|
60
|
-
*/
|
|
61
|
-
|
|
55
|
+
*/
|
|
56
|
+
|
|
57
|
+
/** Valeur analysee d'une section du champ (Year, Month, Day, Hours, Minutes). */function sectionValeur(nom) {
|
|
62
58
|
return _react.screen.getByRole("spinbutton", {
|
|
63
59
|
name: nom
|
|
64
60
|
}).getAttribute("aria-valuenow");
|
|
@@ -70,31 +66,32 @@ function sectionVide(nom) {
|
|
|
70
66
|
name: nom
|
|
71
67
|
}).getAttribute("aria-valuetext") === "Empty";
|
|
72
68
|
}
|
|
73
|
-
function HoteLecture(
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
69
|
+
function HoteLecture({
|
|
70
|
+
valeurInitiale,
|
|
71
|
+
outputFormat,
|
|
72
|
+
readOnly
|
|
73
|
+
}) {
|
|
77
74
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Formik, {
|
|
78
75
|
initialValues: {
|
|
79
76
|
dateVisite: valeurInitiale
|
|
80
77
|
},
|
|
81
|
-
onSubmit:
|
|
82
|
-
return undefined;
|
|
83
|
-
},
|
|
78
|
+
onSubmit: () => undefined,
|
|
84
79
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Form, {
|
|
85
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikDateTimePicker
|
|
80
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikDateTimePicker.default, {
|
|
86
81
|
name: "dateVisite",
|
|
87
|
-
label: "Date de la visite"
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
readOnly
|
|
92
|
-
|
|
82
|
+
label: "Date de la visite",
|
|
83
|
+
...(outputFormat !== undefined ? {
|
|
84
|
+
outputFormat
|
|
85
|
+
} : {}),
|
|
86
|
+
...(readOnly !== undefined ? {
|
|
87
|
+
readOnly
|
|
88
|
+
} : {})
|
|
89
|
+
})
|
|
93
90
|
})
|
|
94
91
|
});
|
|
95
92
|
}
|
|
96
|
-
describe("FormikDateTimePicker — the time survives",
|
|
97
|
-
test("an hour stored in Formik reaches the field's time sections",
|
|
93
|
+
describe("FormikDateTimePicker — the time survives", () => {
|
|
94
|
+
test("an hour stored in Formik reaches the field's time sections", () => {
|
|
98
95
|
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(HoteLecture, {
|
|
99
96
|
valeurInitiale: new Date(2026, 4, 31, 14, 30)
|
|
100
97
|
}));
|
|
@@ -104,16 +101,14 @@ describe("FormikDateTimePicker — the time survives", function () {
|
|
|
104
101
|
expect(sectionValeur("Day")).toBe("31");
|
|
105
102
|
expect(sectionValeur("Month")).toBe("5");
|
|
106
103
|
});
|
|
107
|
-
test("the date-only sibling has NO time section — which is why G-E exists",
|
|
104
|
+
test("the date-only sibling has NO time section — which is why G-E exists", () => {
|
|
108
105
|
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Formik, {
|
|
109
106
|
initialValues: {
|
|
110
107
|
dateVisite: new Date(2026, 4, 31, 14, 30)
|
|
111
108
|
},
|
|
112
|
-
onSubmit:
|
|
113
|
-
return undefined;
|
|
114
|
-
},
|
|
109
|
+
onSubmit: () => undefined,
|
|
115
110
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Form, {
|
|
116
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikDatePicker
|
|
111
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikDatePicker.default, {
|
|
117
112
|
name: "dateVisite",
|
|
118
113
|
label: "Date de la visite"
|
|
119
114
|
})
|
|
@@ -130,8 +125,8 @@ describe("FormikDateTimePicker — the time survives", function () {
|
|
|
130
125
|
})).toBeInTheDocument();
|
|
131
126
|
});
|
|
132
127
|
});
|
|
133
|
-
describe("FormikDateTimePicker — the round-trip is symmetric (S-03)",
|
|
134
|
-
test("a value written in the charter format is read back with it",
|
|
128
|
+
describe("FormikDateTimePicker — the round-trip is symmetric (S-03)", () => {
|
|
129
|
+
test("a value written in the charter format is read back with it", () => {
|
|
135
130
|
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(HoteLecture, {
|
|
136
131
|
valeurInitiale: "2026-12-31 14:30",
|
|
137
132
|
outputFormat: _DateTimePicker.DATETIME_FORMAT_CHARTER
|
|
@@ -141,7 +136,7 @@ describe("FormikDateTimePicker — the round-trip is symmetric (S-03)", function
|
|
|
141
136
|
expect(sectionValeur("Hours")).toBe("14");
|
|
142
137
|
expect(sectionValeur("Minutes")).toBe("30");
|
|
143
138
|
});
|
|
144
|
-
test("a day-first stored value is NOT misread as month-first",
|
|
139
|
+
test("a day-first stored value is NOT misread as month-first", () => {
|
|
145
140
|
/* `new Date("05-03-2026 09:15")` lit MM-DD en V8 : le 3 mai au lieu du
|
|
146
141
|
* 5 mars. Avec le format declare, moment lit bien le 5 mars. C'est
|
|
147
142
|
* exactement le cas que S-03 decrit. */
|
|
@@ -154,7 +149,7 @@ describe("FormikDateTimePicker — the round-trip is symmetric (S-03)", function
|
|
|
154
149
|
expect(sectionValeur("Hours")).toBe("9");
|
|
155
150
|
expect(sectionValeur("Minutes")).toBe("15");
|
|
156
151
|
});
|
|
157
|
-
test("a malformed stored value renders EMPTY, not a guess",
|
|
152
|
+
test("a malformed stored value renders EMPTY, not a guess", () => {
|
|
158
153
|
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(HoteLecture, {
|
|
159
154
|
valeurInitiale: "pas-une-date",
|
|
160
155
|
outputFormat: _DateTimePicker.DATETIME_FORMAT_CHARTER
|
|
@@ -163,26 +158,21 @@ describe("FormikDateTimePicker — the round-trip is symmetric (S-03)", function
|
|
|
163
158
|
expect(sectionVide("Day")).toBe(true);
|
|
164
159
|
expect(sectionVide("Hours")).toBe(true);
|
|
165
160
|
});
|
|
166
|
-
test("`null` renders empty and does not warn about an uncontrolled input",
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
170
|
-
args[_key] = arguments[_key];
|
|
171
|
-
}
|
|
161
|
+
test("`null` renders empty and does not warn about an uncontrolled input", () => {
|
|
162
|
+
const avertissements = [];
|
|
163
|
+
const spy = jest.spyOn(console, "error").mockImplementation((...args) => {
|
|
172
164
|
avertissements.push(args);
|
|
173
165
|
});
|
|
174
166
|
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(HoteLecture, {
|
|
175
167
|
valeurInitiale: null
|
|
176
168
|
}));
|
|
177
169
|
expect(sectionVide("Year")).toBe(true);
|
|
178
|
-
expect(avertissements.some(
|
|
179
|
-
return String(a[0]).includes("uncontrolled");
|
|
180
|
-
})).toBe(false);
|
|
170
|
+
expect(avertissements.some(a => String(a[0]).includes("uncontrolled"))).toBe(false);
|
|
181
171
|
spy.mockRestore();
|
|
182
172
|
});
|
|
183
173
|
});
|
|
184
|
-
describe("FormikDateTimePicker — read-only mode",
|
|
185
|
-
test("`readOnly` renders display TEXT, not a picker",
|
|
174
|
+
describe("FormikDateTimePicker — read-only mode", () => {
|
|
175
|
+
test("`readOnly` renders display TEXT, not a picker", () => {
|
|
186
176
|
/* Section Read Only Mode : « Inputs are forbidden in read-only mode. » */
|
|
187
177
|
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(HoteLecture, {
|
|
188
178
|
valeurInitiale: new Date(2026, 11, 31, 14, 30),
|
|
@@ -193,7 +183,7 @@ describe("FormikDateTimePicker — read-only mode", function () {
|
|
|
193
183
|
})).not.toBeInTheDocument();
|
|
194
184
|
expect(_react.screen.getByText(/31\/12\/2026 14:30/)).toBeInTheDocument();
|
|
195
185
|
});
|
|
196
|
-
test("an empty value in read-only mode shows the dash, not a blank panel",
|
|
186
|
+
test("an empty value in read-only mode shows the dash, not a blank panel", () => {
|
|
197
187
|
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(HoteLecture, {
|
|
198
188
|
valeurInitiale: null,
|
|
199
189
|
readOnly: true
|
|
@@ -201,8 +191,8 @@ describe("FormikDateTimePicker — read-only mode", function () {
|
|
|
201
191
|
expect(_react.screen.getByText("—")).toBeInTheDocument();
|
|
202
192
|
});
|
|
203
193
|
});
|
|
204
|
-
describe("FormikDateTimePicker — labelling",
|
|
205
|
-
test("the visible label is wired to the field id produced by Field",
|
|
194
|
+
describe("FormikDateTimePicker — labelling", () => {
|
|
195
|
+
test("the visible label is wired to the field id produced by Field", () => {
|
|
206
196
|
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(HoteLecture, {
|
|
207
197
|
valeurInitiale: null
|
|
208
198
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormikDateTimePicker.test.js","names":["require","_react","_formik","_FormikDateTimePicker","_interopRequireDefault","_FormikDatePicker","_DateTimePicker","_jsxRuntime","obj","__esModule","_typeof","Symbol","iterator","constructor","prototype","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","call","TypeError","Number","sectionValeur","nom","screen","getByRole","name","getAttribute","sectionVide","HoteLecture","_ref","valeurInitiale","outputFormat","readOnly","jsx","Formik","initialValues","dateVisite","onSubmit","children","Form","label","describe","test","render","Date","expect","toBe","queryByRole","not","toBeInTheDocument","DATETIME_FORMAT_CHARTER","avertissements","spy","jest","spyOn","console","mockImplementation","_len","args","Array","_key","some","a","includes","mockRestore","getByText","toHaveAttribute"],"sources":["../../../src/lib/v2/__tests__/FormikDateTimePicker.test.tsx"],"sourcesContent":["import \"@testing-library/jest-dom\";\r\nimport { render, screen } from \"@testing-library/react\";\r\nimport { Formik, Form } from \"formik\";\r\nimport FormikDateTimePicker from \"../patterns/FormikDateTimePicker\";\r\nimport FormikDatePicker from \"../patterns/FormikDatePicker\";\r\nimport { DATETIME_FORMAT_CHARTER } from \"../components/DateTimePicker\";\r\n\r\n/**\r\n * FormikDateTimePicker — contract tests (gap G-E).\r\n *\r\n * WHY THIS FILE EXISTS\r\n * --------------------\r\n * §10.3 R-G.6 MUST. Every case below pins a contract that a screenshot cannot\r\n * see, and each corresponds to a defect this bridge exists to stop:\r\n *\r\n * 1. THE TIME SURVIVES. The whole reason the gap was opened: routed through\r\n * the date-only bridge, a visit scheduled at 14:30 would have been stored\r\n * at 00:00 — silently, with no error, and only the agent showing up at the\r\n * wrong hour would notice. The date-only sibling is asserted side by side,\r\n * so the reason TWO bridges exist stays legible.\r\n *\r\n * 2. THE ROUND-TRIP IS SYMMETRIC (S-03). A value written with a non-ISO\r\n * format must be READ BACK with that same format. The sibling once wrote\r\n * through moment and read through `new Date()`, which turned \"31-12-2026\"\r\n * into Invalid Date and \"05-03-2026\" into 3 May. The write path worked, so\r\n * the damage only appeared on RE-POPULATE — an edit flow, the path a smoke\r\n * test never exercises. One module shipped it for seven batches under a\r\n * clean strict typecheck.\r\n *\r\n * 3. A MALFORMED STORED VALUE YIELDS EMPTY, NOT A PLAUSIBLE WRONG DATE.\r\n * Strict parsing. A missing date is recoverable; a date quietly off by two\r\n * months is not.\r\n *\r\n * ── HOW THESE ASSERTIONS READ THE FIELD (and why not by role \"textbox\") ──\r\n *\r\n * MUI X v9 renders no textbox. The field is a `role=\"group\"` containing one\r\n * `role=\"spinbutton\"` PER SECTION (Year, Month, Day, Hours, Minutes), each\r\n * carrying `aria-valuenow`; the input that holds the formatted string is\r\n * `aria-hidden`. So the assertions read the sections.\r\n *\r\n * That is not a workaround, it is the better probe: `aria-valuenow` is the\r\n * PARSED value, independent of any display format. A test reading the\r\n * formatted text would pass or fail on locale and format changes that have\r\n * nothing to do with the contract under test. Reading the sections also makes\r\n * the date-only comparison exact — the sibling renders no Hours section at\r\n * all, rather than rendering one that happens to read 00.\r\n *\r\n * NOT COVERED — deliberately: opening the picker popup and clicking a day.\r\n * MUI X renders its calendar in a portal with its own interaction model; the\r\n * value plumbing is what belongs to this bridge. The visual side belongs to\r\n * the story.\r\n */\r\n\r\n/** Valeur analysee d'une section du champ (Year, Month, Day, Hours, Minutes). */\r\nfunction sectionValeur(nom: string): string | null {\r\n return screen\r\n .getByRole(\"spinbutton\", { name: nom })\r\n .getAttribute(\"aria-valuenow\");\r\n}\r\n\r\n/** Vrai quand la section est vide (aucune date rendue). */\r\nfunction sectionVide(nom: string): boolean {\r\n return (\r\n screen.getByRole(\"spinbutton\", { name: nom }).getAttribute(\"aria-valuetext\") ===\r\n \"Empty\"\r\n );\r\n}\r\n\r\nfunction HoteLecture({\r\n valeurInitiale,\r\n outputFormat,\r\n readOnly,\r\n}: {\r\n valeurInitiale: unknown;\r\n outputFormat?: string;\r\n readOnly?: boolean;\r\n}) {\r\n return (\r\n <Formik\r\n initialValues={{ dateVisite: valeurInitiale }}\r\n onSubmit={() => undefined}\r\n >\r\n <Form>\r\n <FormikDateTimePicker\r\n name=\"dateVisite\"\r\n label=\"Date de la visite\"\r\n {...(outputFormat !== undefined ? { outputFormat } : {})}\r\n {...(readOnly !== undefined ? { readOnly } : {})}\r\n />\r\n </Form>\r\n </Formik>\r\n );\r\n}\r\n\r\ndescribe(\"FormikDateTimePicker — the time survives\", () => {\r\n test(\"an hour stored in Formik reaches the field's time sections\", () => {\r\n render(<HoteLecture valeurInitiale={new Date(2026, 4, 31, 14, 30)} />);\r\n\r\n expect(sectionValeur(\"Hours\")).toBe(\"14\");\r\n expect(sectionValeur(\"Minutes\")).toBe(\"30\");\r\n /* La date, elle, est intacte : 31 mai 2026. */\r\n expect(sectionValeur(\"Day\")).toBe(\"31\");\r\n expect(sectionValeur(\"Month\")).toBe(\"5\");\r\n });\r\n\r\n test(\"the date-only sibling has NO time section — which is why G-E exists\", () => {\r\n render(\r\n <Formik\r\n initialValues={{ dateVisite: new Date(2026, 4, 31, 14, 30) }}\r\n onSubmit={() => undefined}\r\n >\r\n <Form>\r\n <FormikDatePicker name=\"dateVisite\" label=\"Date de la visite\" />\r\n </Form>\r\n </Formik>\r\n );\r\n\r\n /* Pas de section « Hours » du tout : l'heure n'est pas affichee a 00, elle\r\n * est absente du champ — donc perdue des que la valeur est reserialisee. */\r\n expect(\r\n screen.queryByRole(\"spinbutton\", { name: \"Hours\" })\r\n ).not.toBeInTheDocument();\r\n expect(screen.getByRole(\"spinbutton\", { name: \"Day\" })).toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"FormikDateTimePicker — the round-trip is symmetric (S-03)\", () => {\r\n test(\"a value written in the charter format is read back with it\", () => {\r\n render(\r\n <HoteLecture\r\n valeurInitiale=\"2026-12-31 14:30\"\r\n outputFormat={DATETIME_FORMAT_CHARTER}\r\n />\r\n );\r\n\r\n expect(sectionValeur(\"Day\")).toBe(\"31\");\r\n expect(sectionValeur(\"Month\")).toBe(\"12\");\r\n expect(sectionValeur(\"Hours\")).toBe(\"14\");\r\n expect(sectionValeur(\"Minutes\")).toBe(\"30\");\r\n });\r\n\r\n test(\"a day-first stored value is NOT misread as month-first\", () => {\r\n /* `new Date(\"05-03-2026 09:15\")` lit MM-DD en V8 : le 3 mai au lieu du\r\n * 5 mars. Avec le format declare, moment lit bien le 5 mars. C'est\r\n * exactement le cas que S-03 decrit. */\r\n render(\r\n <HoteLecture\r\n valeurInitiale=\"05-03-2026 09:15\"\r\n outputFormat=\"DD-MM-YYYY HH:mm\"\r\n />\r\n );\r\n\r\n expect(sectionValeur(\"Month\")).toBe(\"3\");\r\n expect(sectionValeur(\"Day\")).toBe(\"5\");\r\n expect(sectionValeur(\"Hours\")).toBe(\"9\");\r\n expect(sectionValeur(\"Minutes\")).toBe(\"15\");\r\n });\r\n\r\n test(\"a malformed stored value renders EMPTY, not a guess\", () => {\r\n render(\r\n <HoteLecture\r\n valeurInitiale=\"pas-une-date\"\r\n outputFormat={DATETIME_FORMAT_CHARTER}\r\n />\r\n );\r\n\r\n expect(sectionVide(\"Year\")).toBe(true);\r\n expect(sectionVide(\"Day\")).toBe(true);\r\n expect(sectionVide(\"Hours\")).toBe(true);\r\n });\r\n\r\n test(\"`null` renders empty and does not warn about an uncontrolled input\", () => {\r\n const avertissements: unknown[][] = [];\r\n const spy = jest\r\n .spyOn(console, \"error\")\r\n .mockImplementation((...args: unknown[]) => {\r\n avertissements.push(args);\r\n });\r\n\r\n render(<HoteLecture valeurInitiale={null} />);\r\n\r\n expect(sectionVide(\"Year\")).toBe(true);\r\n expect(\r\n avertissements.some((a) => String(a[0]).includes(\"uncontrolled\"))\r\n ).toBe(false);\r\n\r\n spy.mockRestore();\r\n });\r\n});\r\n\r\ndescribe(\"FormikDateTimePicker — read-only mode\", () => {\r\n test(\"`readOnly` renders display TEXT, not a picker\", () => {\r\n /* Section Read Only Mode : « Inputs are forbidden in read-only mode. » */\r\n render(\r\n <HoteLecture valeurInitiale={new Date(2026, 11, 31, 14, 30)} readOnly />\r\n );\r\n\r\n expect(\r\n screen.queryByRole(\"spinbutton\", { name: \"Year\" })\r\n ).not.toBeInTheDocument();\r\n expect(screen.getByText(/31\\/12\\/2026 14:30/)).toBeInTheDocument();\r\n });\r\n\r\n test(\"an empty value in read-only mode shows the dash, not a blank panel\", () => {\r\n render(<HoteLecture valeurInitiale={null} readOnly />);\r\n expect(screen.getByText(\"—\")).toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"FormikDateTimePicker — labelling\", () => {\r\n test(\"the visible label is wired to the field id produced by Field\", () => {\r\n render(<HoteLecture valeurInitiale={null} />);\r\n\r\n /* Une premiere version verifiait aussi, par `document.getElementById`, que\r\n * l'element porteur de cet id existe. Deux raisons de l'avoir retiree :\r\n * `testing-library/no-node-access` l'interdit a juste titre, et surtout\r\n * l'assertion visait a cote. L'element existe bel et bien — c'est l'input\r\n * porteur de valeur — mais MUI X v9 le marque `aria-hidden`, donc son\r\n * existence ne prouve RIEN sur ce qui compte. Voir la note ci-dessous. */\r\n expect(screen.getByText(\"Date de la visite\")).toHaveAttribute(\r\n \"for\",\r\n \"dateVisite\"\r\n );\r\n });\r\n\r\n /**\r\n * CE QUI N'EST PAS ASSERTE ICI, ET POURQUOI — defaut ouvert (G-F, reporte)\r\n *\r\n * Le champ n'a PAS de nom accessible, et ce n'est pas le seul degat : les\r\n * QUATRE attributs d'association poses par `Field` sont inertes.\r\n *\r\n * `DateTimePicker` intercepte bien `id`, `aria-describedby`, `aria-invalid`\r\n * et `aria-required` et les route sur l'`<input>` porteur de valeur (c'est le\r\n * correctif DP-1, ecrit exprès) — mais MUI X v9 marque cet input\r\n * `aria-hidden=\"true\"`. Le champ visible est un `role=\"group\"` de\r\n * `role=\"spinbutton\"` par section. Donc : l'etiquette ne nomme rien\r\n * (R-I.1), l'indication et le message d'erreur ne sont jamais annonces\r\n * (R-I.3, R-4.1), et un champ requis ne se declare pas requis (R-I.2).\r\n *\r\n * DEUX TENTATIVES ONT ECHOUE, notees pour ne pas etre refaites :\r\n * 1. router les attributs par `slotProps.textField.InputProps` — accepte\r\n * par les types, n'atterrit nulle part ;\r\n * 2. passer le pont en mode `group` de `Field` — `Field` emet bien\r\n * `aria-labelledby`, mais rien ne le porte jusqu'au groupe, ET le mode\r\n * `group` supprime le `<label for>` : on perd le clic-sur-libellé sans\r\n * rien gagner.\r\n *\r\n * Figer l'etat actuel par une assertion « le nom est vide » en ferait un\r\n * comportement attendu, ce qu'il n'est pas. Le correctif demande le vrai\r\n * point d'ancrage v9 de `PickersInputBase`, et il touche `DatePicker` ET\r\n * `DateTimePicker` — donc tous les champs de date du portefeuille. Batch 10.\r\n */\r\n});\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FormikDateTimePicker.test.js","names":["require","_react","_formik","_FormikDateTimePicker","_interopRequireDefault","_FormikDatePicker","_DateTimePicker","_jsxRuntime","e","__esModule","default","sectionValeur","nom","screen","getByRole","name","getAttribute","sectionVide","HoteLecture","valeurInitiale","outputFormat","readOnly","jsx","Formik","initialValues","dateVisite","onSubmit","undefined","children","Form","label","describe","test","render","Date","expect","toBe","queryByRole","not","toBeInTheDocument","DATETIME_FORMAT_CHARTER","avertissements","spy","jest","spyOn","console","mockImplementation","args","push","some","a","String","includes","mockRestore","getByText","toHaveAttribute"],"sources":["../../../src/lib/v2/__tests__/FormikDateTimePicker.test.tsx"],"sourcesContent":["import \"@testing-library/jest-dom\";\r\nimport { render, screen } from \"@testing-library/react\";\r\nimport { Formik, Form } from \"formik\";\r\nimport FormikDateTimePicker from \"../patterns/FormikDateTimePicker\";\r\nimport FormikDatePicker from \"../patterns/FormikDatePicker\";\r\nimport { DATETIME_FORMAT_CHARTER } from \"../components/DateTimePicker\";\r\n\r\n/**\r\n * FormikDateTimePicker — contract tests (gap G-E).\r\n *\r\n * WHY THIS FILE EXISTS\r\n * --------------------\r\n * §10.3 R-G.6 MUST. Every case below pins a contract that a screenshot cannot\r\n * see, and each corresponds to a defect this bridge exists to stop:\r\n *\r\n * 1. THE TIME SURVIVES. The whole reason the gap was opened: routed through\r\n * the date-only bridge, a visit scheduled at 14:30 would have been stored\r\n * at 00:00 — silently, with no error, and only the agent showing up at the\r\n * wrong hour would notice. The date-only sibling is asserted side by side,\r\n * so the reason TWO bridges exist stays legible.\r\n *\r\n * 2. THE ROUND-TRIP IS SYMMETRIC (S-03). A value written with a non-ISO\r\n * format must be READ BACK with that same format. The sibling once wrote\r\n * through moment and read through `new Date()`, which turned \"31-12-2026\"\r\n * into Invalid Date and \"05-03-2026\" into 3 May. The write path worked, so\r\n * the damage only appeared on RE-POPULATE — an edit flow, the path a smoke\r\n * test never exercises. One module shipped it for seven batches under a\r\n * clean strict typecheck.\r\n *\r\n * 3. A MALFORMED STORED VALUE YIELDS EMPTY, NOT A PLAUSIBLE WRONG DATE.\r\n * Strict parsing. A missing date is recoverable; a date quietly off by two\r\n * months is not.\r\n *\r\n * ── HOW THESE ASSERTIONS READ THE FIELD (and why not by role \"textbox\") ──\r\n *\r\n * MUI X v9 renders no textbox. The field is a `role=\"group\"` containing one\r\n * `role=\"spinbutton\"` PER SECTION (Year, Month, Day, Hours, Minutes), each\r\n * carrying `aria-valuenow`; the input that holds the formatted string is\r\n * `aria-hidden`. So the assertions read the sections.\r\n *\r\n * That is not a workaround, it is the better probe: `aria-valuenow` is the\r\n * PARSED value, independent of any display format. A test reading the\r\n * formatted text would pass or fail on locale and format changes that have\r\n * nothing to do with the contract under test. Reading the sections also makes\r\n * the date-only comparison exact — the sibling renders no Hours section at\r\n * all, rather than rendering one that happens to read 00.\r\n *\r\n * NOT COVERED — deliberately: opening the picker popup and clicking a day.\r\n * MUI X renders its calendar in a portal with its own interaction model; the\r\n * value plumbing is what belongs to this bridge. The visual side belongs to\r\n * the story.\r\n */\r\n\r\n/** Valeur analysee d'une section du champ (Year, Month, Day, Hours, Minutes). */\r\nfunction sectionValeur(nom: string): string | null {\r\n return screen\r\n .getByRole(\"spinbutton\", { name: nom })\r\n .getAttribute(\"aria-valuenow\");\r\n}\r\n\r\n/** Vrai quand la section est vide (aucune date rendue). */\r\nfunction sectionVide(nom: string): boolean {\r\n return (\r\n screen.getByRole(\"spinbutton\", { name: nom }).getAttribute(\"aria-valuetext\") ===\r\n \"Empty\"\r\n );\r\n}\r\n\r\nfunction HoteLecture({\r\n valeurInitiale,\r\n outputFormat,\r\n readOnly,\r\n}: {\r\n valeurInitiale: unknown;\r\n outputFormat?: string;\r\n readOnly?: boolean;\r\n}) {\r\n return (\r\n <Formik\r\n initialValues={{ dateVisite: valeurInitiale }}\r\n onSubmit={() => undefined}\r\n >\r\n <Form>\r\n <FormikDateTimePicker\r\n name=\"dateVisite\"\r\n label=\"Date de la visite\"\r\n {...(outputFormat !== undefined ? { outputFormat } : {})}\r\n {...(readOnly !== undefined ? { readOnly } : {})}\r\n />\r\n </Form>\r\n </Formik>\r\n );\r\n}\r\n\r\ndescribe(\"FormikDateTimePicker — the time survives\", () => {\r\n test(\"an hour stored in Formik reaches the field's time sections\", () => {\r\n render(<HoteLecture valeurInitiale={new Date(2026, 4, 31, 14, 30)} />);\r\n\r\n expect(sectionValeur(\"Hours\")).toBe(\"14\");\r\n expect(sectionValeur(\"Minutes\")).toBe(\"30\");\r\n /* La date, elle, est intacte : 31 mai 2026. */\r\n expect(sectionValeur(\"Day\")).toBe(\"31\");\r\n expect(sectionValeur(\"Month\")).toBe(\"5\");\r\n });\r\n\r\n test(\"the date-only sibling has NO time section — which is why G-E exists\", () => {\r\n render(\r\n <Formik\r\n initialValues={{ dateVisite: new Date(2026, 4, 31, 14, 30) }}\r\n onSubmit={() => undefined}\r\n >\r\n <Form>\r\n <FormikDatePicker name=\"dateVisite\" label=\"Date de la visite\" />\r\n </Form>\r\n </Formik>\r\n );\r\n\r\n /* Pas de section « Hours » du tout : l'heure n'est pas affichee a 00, elle\r\n * est absente du champ — donc perdue des que la valeur est reserialisee. */\r\n expect(\r\n screen.queryByRole(\"spinbutton\", { name: \"Hours\" })\r\n ).not.toBeInTheDocument();\r\n expect(screen.getByRole(\"spinbutton\", { name: \"Day\" })).toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"FormikDateTimePicker — the round-trip is symmetric (S-03)\", () => {\r\n test(\"a value written in the charter format is read back with it\", () => {\r\n render(\r\n <HoteLecture\r\n valeurInitiale=\"2026-12-31 14:30\"\r\n outputFormat={DATETIME_FORMAT_CHARTER}\r\n />\r\n );\r\n\r\n expect(sectionValeur(\"Day\")).toBe(\"31\");\r\n expect(sectionValeur(\"Month\")).toBe(\"12\");\r\n expect(sectionValeur(\"Hours\")).toBe(\"14\");\r\n expect(sectionValeur(\"Minutes\")).toBe(\"30\");\r\n });\r\n\r\n test(\"a day-first stored value is NOT misread as month-first\", () => {\r\n /* `new Date(\"05-03-2026 09:15\")` lit MM-DD en V8 : le 3 mai au lieu du\r\n * 5 mars. Avec le format declare, moment lit bien le 5 mars. C'est\r\n * exactement le cas que S-03 decrit. */\r\n render(\r\n <HoteLecture\r\n valeurInitiale=\"05-03-2026 09:15\"\r\n outputFormat=\"DD-MM-YYYY HH:mm\"\r\n />\r\n );\r\n\r\n expect(sectionValeur(\"Month\")).toBe(\"3\");\r\n expect(sectionValeur(\"Day\")).toBe(\"5\");\r\n expect(sectionValeur(\"Hours\")).toBe(\"9\");\r\n expect(sectionValeur(\"Minutes\")).toBe(\"15\");\r\n });\r\n\r\n test(\"a malformed stored value renders EMPTY, not a guess\", () => {\r\n render(\r\n <HoteLecture\r\n valeurInitiale=\"pas-une-date\"\r\n outputFormat={DATETIME_FORMAT_CHARTER}\r\n />\r\n );\r\n\r\n expect(sectionVide(\"Year\")).toBe(true);\r\n expect(sectionVide(\"Day\")).toBe(true);\r\n expect(sectionVide(\"Hours\")).toBe(true);\r\n });\r\n\r\n test(\"`null` renders empty and does not warn about an uncontrolled input\", () => {\r\n const avertissements: unknown[][] = [];\r\n const spy = jest\r\n .spyOn(console, \"error\")\r\n .mockImplementation((...args: unknown[]) => {\r\n avertissements.push(args);\r\n });\r\n\r\n render(<HoteLecture valeurInitiale={null} />);\r\n\r\n expect(sectionVide(\"Year\")).toBe(true);\r\n expect(\r\n avertissements.some((a) => String(a[0]).includes(\"uncontrolled\"))\r\n ).toBe(false);\r\n\r\n spy.mockRestore();\r\n });\r\n});\r\n\r\ndescribe(\"FormikDateTimePicker — read-only mode\", () => {\r\n test(\"`readOnly` renders display TEXT, not a picker\", () => {\r\n /* Section Read Only Mode : « Inputs are forbidden in read-only mode. » */\r\n render(\r\n <HoteLecture valeurInitiale={new Date(2026, 11, 31, 14, 30)} readOnly />\r\n );\r\n\r\n expect(\r\n screen.queryByRole(\"spinbutton\", { name: \"Year\" })\r\n ).not.toBeInTheDocument();\r\n expect(screen.getByText(/31\\/12\\/2026 14:30/)).toBeInTheDocument();\r\n });\r\n\r\n test(\"an empty value in read-only mode shows the dash, not a blank panel\", () => {\r\n render(<HoteLecture valeurInitiale={null} readOnly />);\r\n expect(screen.getByText(\"—\")).toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"FormikDateTimePicker — labelling\", () => {\r\n test(\"the visible label is wired to the field id produced by Field\", () => {\r\n render(<HoteLecture valeurInitiale={null} />);\r\n\r\n /* Une premiere version verifiait aussi, par `document.getElementById`, que\r\n * l'element porteur de cet id existe. Deux raisons de l'avoir retiree :\r\n * `testing-library/no-node-access` l'interdit a juste titre, et surtout\r\n * l'assertion visait a cote. L'element existe bel et bien — c'est l'input\r\n * porteur de valeur — mais MUI X v9 le marque `aria-hidden`, donc son\r\n * existence ne prouve RIEN sur ce qui compte. Voir la note ci-dessous. */\r\n expect(screen.getByText(\"Date de la visite\")).toHaveAttribute(\r\n \"for\",\r\n \"dateVisite\"\r\n );\r\n });\r\n\r\n /**\r\n * CE QUI N'EST PAS ASSERTE ICI, ET POURQUOI — defaut ouvert (G-F, reporte)\r\n *\r\n * Le champ n'a PAS de nom accessible, et ce n'est pas le seul degat : les\r\n * QUATRE attributs d'association poses par `Field` sont inertes.\r\n *\r\n * `DateTimePicker` intercepte bien `id`, `aria-describedby`, `aria-invalid`\r\n * et `aria-required` et les route sur l'`<input>` porteur de valeur (c'est le\r\n * correctif DP-1, ecrit exprès) — mais MUI X v9 marque cet input\r\n * `aria-hidden=\"true\"`. Le champ visible est un `role=\"group\"` de\r\n * `role=\"spinbutton\"` par section. Donc : l'etiquette ne nomme rien\r\n * (R-I.1), l'indication et le message d'erreur ne sont jamais annonces\r\n * (R-I.3, R-4.1), et un champ requis ne se declare pas requis (R-I.2).\r\n *\r\n * DEUX TENTATIVES ONT ECHOUE, notees pour ne pas etre refaites :\r\n * 1. router les attributs par `slotProps.textField.InputProps` — accepte\r\n * par les types, n'atterrit nulle part ;\r\n * 2. passer le pont en mode `group` de `Field` — `Field` emet bien\r\n * `aria-labelledby`, mais rien ne le porte jusqu'au groupe, ET le mode\r\n * `group` supprime le `<label for>` : on perd le clic-sur-libellé sans\r\n * rien gagner.\r\n *\r\n * Figer l'etat actuel par une assertion « le nom est vide » en ferait un\r\n * comportement attendu, ce qu'il n'est pas. Le correctif demande le vrai\r\n * point d'ancrage v9 de `PickersInputBase`, et il touche `DatePicker` ET\r\n * `DateTimePicker` — donc tous les champs de date du portefeuille. Batch 10.\r\n */\r\n});\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("@testing-library/jest-dom");
|
|
4
|
+
var _react = require("@testing-library/react");
|
|
5
|
+
var _formik = require("formik");
|
|
6
|
+
var _Field = require("../components/Field");
|
|
7
|
+
var _FormikDisplay = _interopRequireDefault(require("../components/FormikDisplay"));
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
/**
|
|
11
|
+
* FormikDisplay — largeur semantique (gap G-H, suite) : tests de contrat.
|
|
12
|
+
*
|
|
13
|
+
* MEME LIMITE QUE `FieldWidth.test.tsx`, ET POUR LA MEME RAISON. Le plafond
|
|
14
|
+
* n'est pose qu'a partir du palier `sm`, donc derriere une requete media
|
|
15
|
+
* qu'`emotion` injecte dans la feuille de style et que jsdom ne resout pas :
|
|
16
|
+
* `getComputedStyle` ne rendra jamais la largeur effective. Asserter la
|
|
17
|
+
* largeur ici donnerait un test qui passe sans rien verifier. Le comportement
|
|
18
|
+
* responsive s'observe dans la story, en redimensionnant la fenetre.
|
|
19
|
+
*
|
|
20
|
+
* Ce fichier epingle donc ce qui compte et qui est verifiable :
|
|
21
|
+
*
|
|
22
|
+
* 1. QUE LA TABLE DE LARGEURS EST CELLE DE `Field`, ET NON UNE COPIE. C'est
|
|
23
|
+
* le risque propre a cet ajout : `FormikDisplay` ne passe pas par `Field`,
|
|
24
|
+
* il aurait donc pu redeclarer ses cinq valeurs. Deux tables finiraient
|
|
25
|
+
* par diverger, et un formulaire melant saisie et affichage retomberait
|
|
26
|
+
* dans le « jagged alignment » que le standard interdit — exactement le
|
|
27
|
+
* defaut que cet ajout corrige.
|
|
28
|
+
*
|
|
29
|
+
* 2. QUE `width` NE TOUCHE PAS AU RENDU NI AU NOM ACCESSIBLE. Une contrainte
|
|
30
|
+
* de mise en page passee par `sx` ne doit rien changer a la valeur
|
|
31
|
+
* affichee ni a ce qu'annonce une technologie d'assistance : c'est la
|
|
32
|
+
* regression la plus probable du changement.
|
|
33
|
+
*
|
|
34
|
+
* 3. QUE L'OMISSION RESTE NEUTRE. Sans `width`, les appelants d'avant ne
|
|
35
|
+
* doivent pas bouger.
|
|
36
|
+
*/const withFormik = (children, values) => (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Formik, {
|
|
37
|
+
initialValues: values,
|
|
38
|
+
onSubmit: () => undefined,
|
|
39
|
+
children: () => children
|
|
40
|
+
}));
|
|
41
|
+
describe("FormikDisplay — la table de largeurs est partagee avec Field", () => {
|
|
42
|
+
test("les cinq gabarits sont ceux de `Field`, importes et non recopies", () => {
|
|
43
|
+
/* Ce test echouerait si quelqu'un redeclarait une table locale dans
|
|
44
|
+
* `FormikDisplay` : les valeurs sont epinglees UNE fois, dans
|
|
45
|
+
* `FieldWidth.test.tsx`, et ce fichier verifie que c'est bien la meme
|
|
46
|
+
* source qui est exposee aux deux composants. */
|
|
47
|
+
expect(Object.keys(_Field.FIELD_MAX_WIDTH).sort()).toEqual(["l", "m", "s", "xl", "xs"]);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe("FormikDisplay — `width` ne touche ni au rendu ni au nom accessible", () => {
|
|
51
|
+
test("la valeur Formik reste affichee", () => {
|
|
52
|
+
withFormik(/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikDisplay.default, {
|
|
53
|
+
name: "ice",
|
|
54
|
+
label: "ICE",
|
|
55
|
+
width: "s"
|
|
56
|
+
}), {
|
|
57
|
+
ice: "001234567000089"
|
|
58
|
+
});
|
|
59
|
+
expect(_react.screen.getByText("001234567000089")).toBeInTheDocument();
|
|
60
|
+
});
|
|
61
|
+
test("le libelle et la valeur restent annonces ensemble", () => {
|
|
62
|
+
/* `FormikDisplay` expose sa boite en `role="status"` avec un
|
|
63
|
+
* `aria-label` « libelle : valeur » — c'est ce couple qu'une technologie
|
|
64
|
+
* d'assistance lit, et il ne doit pas dependre du gabarit. */
|
|
65
|
+
withFormik(/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikDisplay.default, {
|
|
66
|
+
name: "raisonSociale",
|
|
67
|
+
label: "Raison sociale",
|
|
68
|
+
width: "l"
|
|
69
|
+
}), {
|
|
70
|
+
raisonSociale: "SOFRANE SA"
|
|
71
|
+
});
|
|
72
|
+
expect(_react.screen.getByRole("status", {
|
|
73
|
+
name: "Raison sociale : SOFRANE SA"
|
|
74
|
+
})).toBeInTheDocument();
|
|
75
|
+
});
|
|
76
|
+
test("le placeholder de valeur vide est inchange", () => {
|
|
77
|
+
withFormik(/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikDisplay.default, {
|
|
78
|
+
name: "ice",
|
|
79
|
+
label: "ICE",
|
|
80
|
+
width: "s"
|
|
81
|
+
}), {
|
|
82
|
+
ice: ""
|
|
83
|
+
});
|
|
84
|
+
expect(_react.screen.getByRole("status", {
|
|
85
|
+
name: "ICE : \u2014"
|
|
86
|
+
})).toBeInTheDocument();
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe("FormikDisplay — l'omission reste neutre", () => {
|
|
90
|
+
test("sans `width`, la valeur et son nom accessible sont identiques", () => {
|
|
91
|
+
withFormik(/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikDisplay.default, {
|
|
92
|
+
name: "email",
|
|
93
|
+
label: "Email"
|
|
94
|
+
}), {
|
|
95
|
+
email: "operateur@example.ma"
|
|
96
|
+
});
|
|
97
|
+
expect(_react.screen.getByRole("status", {
|
|
98
|
+
name: "Email : operateur@example.ma"
|
|
99
|
+
})).toBeInTheDocument();
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
//# sourceMappingURL=FormikDisplayWidth.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormikDisplayWidth.test.js","names":["require","_react","_formik","_Field","_FormikDisplay","_interopRequireDefault","_jsxRuntime","e","__esModule","default","withFormik","children","values","render","jsx","Formik","initialValues","onSubmit","undefined","describe","test","expect","Object","keys","FIELD_MAX_WIDTH","sort","toEqual","name","label","width","ice","screen","getByText","toBeInTheDocument","raisonSociale","getByRole","email"],"sources":["../../../src/lib/v2/__tests__/FormikDisplayWidth.test.tsx"],"sourcesContent":["import \"@testing-library/jest-dom\";\r\nimport { render, screen } from \"@testing-library/react\";\r\nimport { Formik } from \"formik\";\r\nimport type { ReactNode } from \"react\";\r\nimport { FIELD_MAX_WIDTH } from \"../components/Field\";\r\nimport FormikDisplay from \"../components/FormikDisplay\";\r\n\r\n/**\r\n * FormikDisplay — largeur semantique (gap G-H, suite) : tests de contrat.\r\n *\r\n * MEME LIMITE QUE `FieldWidth.test.tsx`, ET POUR LA MEME RAISON. Le plafond\r\n * n'est pose qu'a partir du palier `sm`, donc derriere une requete media\r\n * qu'`emotion` injecte dans la feuille de style et que jsdom ne resout pas :\r\n * `getComputedStyle` ne rendra jamais la largeur effective. Asserter la\r\n * largeur ici donnerait un test qui passe sans rien verifier. Le comportement\r\n * responsive s'observe dans la story, en redimensionnant la fenetre.\r\n *\r\n * Ce fichier epingle donc ce qui compte et qui est verifiable :\r\n *\r\n * 1. QUE LA TABLE DE LARGEURS EST CELLE DE `Field`, ET NON UNE COPIE. C'est\r\n * le risque propre a cet ajout : `FormikDisplay` ne passe pas par `Field`,\r\n * il aurait donc pu redeclarer ses cinq valeurs. Deux tables finiraient\r\n * par diverger, et un formulaire melant saisie et affichage retomberait\r\n * dans le « jagged alignment » que le standard interdit — exactement le\r\n * defaut que cet ajout corrige.\r\n *\r\n * 2. QUE `width` NE TOUCHE PAS AU RENDU NI AU NOM ACCESSIBLE. Une contrainte\r\n * de mise en page passee par `sx` ne doit rien changer a la valeur\r\n * affichee ni a ce qu'annonce une technologie d'assistance : c'est la\r\n * regression la plus probable du changement.\r\n *\r\n * 3. QUE L'OMISSION RESTE NEUTRE. Sans `width`, les appelants d'avant ne\r\n * doivent pas bouger.\r\n */\r\n\r\nconst withFormik = (children: ReactNode, values: Record<string, unknown>) =>\r\n render(\r\n <Formik initialValues={values} onSubmit={() => undefined}>\r\n {() => children}\r\n </Formik>\r\n );\r\n\r\ndescribe(\"FormikDisplay — la table de largeurs est partagee avec Field\", () => {\r\n test(\"les cinq gabarits sont ceux de `Field`, importes et non recopies\", () => {\r\n /* Ce test echouerait si quelqu'un redeclarait une table locale dans\r\n * `FormikDisplay` : les valeurs sont epinglees UNE fois, dans\r\n * `FieldWidth.test.tsx`, et ce fichier verifie que c'est bien la meme\r\n * source qui est exposee aux deux composants. */\r\n expect(Object.keys(FIELD_MAX_WIDTH).sort()).toEqual([\r\n \"l\",\r\n \"m\",\r\n \"s\",\r\n \"xl\",\r\n \"xs\",\r\n ]);\r\n });\r\n});\r\n\r\ndescribe(\"FormikDisplay — `width` ne touche ni au rendu ni au nom accessible\", () => {\r\n test(\"la valeur Formik reste affichee\", () => {\r\n withFormik(\r\n <FormikDisplay name=\"ice\" label=\"ICE\" width=\"s\" />,\r\n { ice: \"001234567000089\" }\r\n );\r\n\r\n expect(screen.getByText(\"001234567000089\")).toBeInTheDocument();\r\n });\r\n\r\n test(\"le libelle et la valeur restent annonces ensemble\", () => {\r\n /* `FormikDisplay` expose sa boite en `role=\"status\"` avec un\r\n * `aria-label` « libelle : valeur » — c'est ce couple qu'une technologie\r\n * d'assistance lit, et il ne doit pas dependre du gabarit. */\r\n withFormik(\r\n <FormikDisplay name=\"raisonSociale\" label=\"Raison sociale\" width=\"l\" />,\r\n { raisonSociale: \"SOFRANE SA\" }\r\n );\r\n\r\n expect(\r\n screen.getByRole(\"status\", { name: \"Raison sociale : SOFRANE SA\" })\r\n ).toBeInTheDocument();\r\n });\r\n\r\n test(\"le placeholder de valeur vide est inchange\", () => {\r\n withFormik(<FormikDisplay name=\"ice\" label=\"ICE\" width=\"s\" />, { ice: \"\" });\r\n\r\n expect(\r\n screen.getByRole(\"status\", { name: \"ICE : \\u2014\" })\r\n ).toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"FormikDisplay — l'omission reste neutre\", () => {\r\n test(\"sans `width`, la valeur et son nom accessible sont identiques\", () => {\r\n withFormik(<FormikDisplay name=\"email\" label=\"Email\" />, {\r\n email: \"operateur@example.ma\",\r\n });\r\n\r\n expect(\r\n screen.getByRole(\"status\", { name: \"Email : operateur@example.ma\" })\r\n ).toBeInTheDocument();\r\n });\r\n});\r\n"],"mappings":"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","ignoreList":[]}
|