@portnet/ui 6.0.0 → 6.0.2
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 +85 -0
- package/dist/esm/index.js +214 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldError.test.js +159 -0
- package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldWidth.test.js +146 -0
- package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FileCard.test.js +143 -0
- package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js +265 -0
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +248 -0
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +380 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
- package/dist/esm/v2/__tests__/MobileRowCard.test.js +332 -0
- package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -0
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +235 -0
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
- package/dist/esm/v2/__tests__/apiError.test.js +181 -0
- package/dist/esm/v2/__tests__/apiError.test.js.map +1 -0
- package/dist/esm/v2/__tests__/banned-patterns.test.js +270 -0
- package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -0
- package/dist/esm/v2/__tests__/contrast-palette.test.js +224 -0
- package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -0
- package/dist/esm/v2/__tests__/cssVariables.test.js +157 -0
- package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -0
- package/dist/esm/v2/__tests__/labels-merge.test.js +146 -0
- package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -0
- package/dist/esm/v2/__tests__/locale-fallback.test.js +109 -0
- package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusTrap.test.js +514 -0
- package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -0
- package/dist/esm/v2/components/Accordion.js +230 -0
- package/dist/esm/v2/components/Accordion.js.map +1 -0
- package/dist/esm/v2/components/ActionStrip.js +146 -0
- package/dist/esm/v2/components/ActionStrip.js.map +1 -0
- package/dist/esm/v2/components/Banner.js +254 -0
- package/dist/esm/v2/components/Banner.js.map +1 -0
- package/dist/esm/v2/components/Busy.js +97 -0
- package/dist/esm/v2/components/Busy.js.map +1 -0
- package/dist/esm/v2/components/Button.js +114 -0
- package/dist/esm/v2/components/Button.js.map +1 -0
- package/dist/esm/v2/components/CategoryTag.js +81 -0
- package/dist/esm/v2/components/CategoryTag.js.map +1 -0
- package/dist/esm/v2/components/Checkbox.js +124 -0
- package/dist/esm/v2/components/Checkbox.js.map +1 -0
- package/dist/esm/v2/components/Chip.js +124 -0
- package/dist/esm/v2/components/Chip.js.map +1 -0
- package/dist/esm/v2/components/Combobox.js +394 -0
- package/dist/esm/v2/components/Combobox.js.map +1 -0
- package/dist/esm/v2/components/CommandPalette.js +660 -0
- package/dist/esm/v2/components/CommandPalette.js.map +1 -0
- package/dist/esm/v2/components/ConfirmDialog.js +144 -0
- package/dist/esm/v2/components/ConfirmDialog.js.map +1 -0
- package/dist/esm/v2/components/DatePicker.js +200 -0
- package/dist/esm/v2/components/DatePicker.js.map +1 -0
- package/dist/esm/v2/components/DateRangePicker.js +289 -0
- package/dist/esm/v2/components/DateRangePicker.js.map +1 -0
- package/dist/esm/v2/components/DateTimePicker.js +215 -0
- package/dist/esm/v2/components/DateTimePicker.js.map +1 -0
- package/dist/esm/v2/components/Drawer.js +333 -0
- package/dist/esm/v2/components/Drawer.js.map +1 -0
- package/dist/esm/v2/components/Dropzone.js +540 -0
- package/dist/esm/v2/components/Dropzone.js.map +1 -0
- package/dist/esm/v2/components/EmptyState.js +102 -0
- package/dist/esm/v2/components/EmptyState.js.map +1 -0
- package/dist/esm/v2/components/FavoriteToggle.js +127 -0
- package/dist/esm/v2/components/FavoriteToggle.js.map +1 -0
- package/dist/esm/v2/components/Field.js +259 -0
- package/dist/esm/v2/components/Field.js.map +1 -0
- package/dist/esm/v2/components/FieldError.js +124 -0
- package/dist/esm/v2/components/FieldError.js.map +1 -0
- package/dist/esm/v2/components/FieldHelp.js +202 -0
- package/dist/esm/v2/components/FieldHelp.js.map +1 -0
- package/dist/esm/v2/components/FileCard.js +162 -0
- package/dist/esm/v2/components/FileCard.js.map +1 -0
- package/dist/esm/v2/components/FilterTab.js +138 -0
- package/dist/esm/v2/components/FilterTab.js.map +1 -0
- package/dist/esm/v2/components/ForbiddenPage.js +74 -0
- package/dist/esm/v2/components/ForbiddenPage.js.map +1 -0
- package/dist/esm/v2/components/FormGrid.js +179 -0
- package/dist/esm/v2/components/FormGrid.js.map +1 -0
- package/dist/esm/v2/components/FormikDisplay.js +118 -0
- package/dist/esm/v2/components/FormikDisplay.js.map +1 -0
- package/dist/esm/v2/components/Input.js +107 -0
- package/dist/esm/v2/components/Input.js.map +1 -0
- package/dist/esm/v2/components/KPICard.js +237 -0
- package/dist/esm/v2/components/KPICard.js.map +1 -0
- package/dist/esm/v2/components/KPIStrip.js +84 -0
- package/dist/esm/v2/components/KPIStrip.js.map +1 -0
- package/dist/esm/v2/components/KV.js +75 -0
- package/dist/esm/v2/components/KV.js.map +1 -0
- package/dist/esm/v2/components/KVGrid.js +74 -0
- package/dist/esm/v2/components/KVGrid.js.map +1 -0
- package/dist/esm/v2/components/Layout.js +284 -0
- package/dist/esm/v2/components/Layout.js.map +1 -0
- package/dist/esm/v2/components/MobileRowCard.js +314 -0
- package/dist/esm/v2/components/MobileRowCard.js.map +1 -0
- package/dist/esm/v2/components/Modal.js +276 -0
- package/dist/esm/v2/components/Modal.js.map +1 -0
- package/dist/esm/v2/components/NetworkErrorPage.js +78 -0
- package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -0
- package/dist/esm/v2/components/NotFoundPage.js +58 -0
- package/dist/esm/v2/components/NotFoundPage.js.map +1 -0
- package/dist/esm/v2/components/NumberInput.js +309 -0
- package/dist/esm/v2/components/NumberInput.js.map +1 -0
- package/dist/esm/v2/components/OverflowMenu.js +184 -0
- package/dist/esm/v2/components/OverflowMenu.js.map +1 -0
- package/dist/esm/v2/components/PdfViewer.js +122 -0
- package/dist/esm/v2/components/PdfViewer.js.map +1 -0
- package/dist/esm/v2/components/ProgressBar.js +202 -0
- package/dist/esm/v2/components/ProgressBar.js.map +1 -0
- package/dist/esm/v2/components/Radio.js +228 -0
- package/dist/esm/v2/components/Radio.js.map +1 -0
- package/dist/esm/v2/components/SectionErrorBoundary.js +214 -0
- package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -0
- package/dist/esm/v2/components/SectionHeader.js +132 -0
- package/dist/esm/v2/components/SectionHeader.js.map +1 -0
- package/dist/esm/v2/components/Segmented.js +254 -0
- package/dist/esm/v2/components/Segmented.js.map +1 -0
- package/dist/esm/v2/components/Select.js +490 -0
- package/dist/esm/v2/components/Select.js.map +1 -0
- package/dist/esm/v2/components/ServerErrorPage.js +74 -0
- package/dist/esm/v2/components/ServerErrorPage.js.map +1 -0
- package/dist/esm/v2/components/Skeleton.js +269 -0
- package/dist/esm/v2/components/Skeleton.js.map +1 -0
- package/dist/esm/v2/components/SkipLink.js +49 -0
- package/dist/esm/v2/components/SkipLink.js.map +1 -0
- package/dist/esm/v2/components/Spinner.js +69 -0
- package/dist/esm/v2/components/Spinner.js.map +1 -0
- package/dist/esm/v2/components/Status.js +64 -0
- package/dist/esm/v2/components/Status.js.map +1 -0
- package/dist/esm/v2/components/Stepper.js +432 -0
- package/dist/esm/v2/components/Stepper.js.map +1 -0
- package/dist/esm/v2/components/Surface.js +159 -0
- package/dist/esm/v2/components/Surface.js.map +1 -0
- package/dist/esm/v2/components/Switch.js +128 -0
- package/dist/esm/v2/components/Switch.js.map +1 -0
- package/dist/esm/v2/components/Tabs.js +150 -0
- package/dist/esm/v2/components/Tabs.js.map +1 -0
- package/dist/esm/v2/components/TelInput.js +274 -0
- package/dist/esm/v2/components/TelInput.js.map +1 -0
- package/dist/esm/v2/components/Textarea.js +72 -0
- package/dist/esm/v2/components/Textarea.js.map +1 -0
- package/dist/esm/v2/components/TimePicker.js +134 -0
- package/dist/esm/v2/components/TimePicker.js.map +1 -0
- package/dist/esm/v2/components/Toast.js +376 -0
- package/dist/esm/v2/components/Toast.js.map +1 -0
- package/dist/esm/v2/components/Tooltip.js +161 -0
- package/dist/esm/v2/components/Tooltip.js.map +1 -0
- package/dist/esm/v2/components/_ErrorPageBody.js +85 -0
- package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -0
- package/dist/esm/v2/components/_pickerShared.js +60 -0
- package/dist/esm/v2/components/_pickerShared.js.map +1 -0
- package/dist/esm/v2/components/index.js +271 -0
- package/dist/esm/v2/components/index.js.map +1 -0
- package/dist/esm/v2/hooks/index.js +10 -0
- package/dist/esm/v2/hooks/index.js.map +1 -0
- package/dist/esm/v2/hooks/useDelayedFlag.js +55 -0
- package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -0
- package/dist/esm/v2/hooks/useDensity.js +119 -0
- package/dist/esm/v2/hooks/useDensity.js.map +1 -0
- package/dist/esm/v2/hooks/useFocusFirstError.js +197 -0
- package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -0
- package/dist/esm/v2/hooks/useFocusTrap.js +202 -0
- package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -0
- package/dist/esm/v2/hooks/useFormAutoSave.js +181 -0
- package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -0
- package/dist/esm/v2/hooks/useFormCompletionProgress.js +131 -0
- package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -0
- package/dist/esm/v2/hooks/useResolvedDensity.js +44 -0
- package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -0
- package/dist/esm/v2/hooks/useSortedRows.js +32 -0
- package/dist/esm/v2/hooks/useSortedRows.js.map +1 -0
- package/dist/esm/v2/hooks/useTabLoading.js +79 -0
- package/dist/esm/v2/hooks/useTabLoading.js.map +1 -0
- package/dist/esm/v2/index.js +132 -0
- package/dist/esm/v2/index.js.map +1 -0
- package/dist/esm/v2/modalContext.js +108 -0
- package/dist/esm/v2/modalContext.js.map +1 -0
- package/dist/esm/v2/models/favorite.js +2 -0
- package/dist/esm/v2/models/favorite.js.map +1 -0
- package/dist/esm/v2/models/index.js +12 -0
- package/dist/esm/v2/models/index.js.map +1 -0
- package/dist/esm/v2/models/personalization.js +2 -0
- package/dist/esm/v2/models/personalization.js.map +1 -0
- package/dist/esm/v2/models/referentiel.js +2 -0
- package/dist/esm/v2/models/referentiel.js.map +1 -0
- package/dist/esm/v2/models/savedFilter.js +2 -0
- package/dist/esm/v2/models/savedFilter.js.map +1 -0
- package/dist/esm/v2/patterns/ActionBar.js +603 -0
- package/dist/esm/v2/patterns/ActionBar.js.map +1 -0
- package/dist/esm/v2/patterns/BulkActionBar.js +147 -0
- package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -0
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js +303 -0
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -0
- package/dist/esm/v2/patterns/ColumnsToggle.js +301 -0
- package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -0
- package/dist/esm/v2/patterns/DataGrid.js +820 -0
- package/dist/esm/v2/patterns/DataGrid.js.map +1 -0
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js +375 -0
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -0
- package/dist/esm/v2/patterns/DataGridToolbar.js +249 -0
- package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -0
- package/dist/esm/v2/patterns/DataGridVirtualized.js +523 -0
- package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -0
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +70 -0
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -0
- package/dist/esm/v2/patterns/FavoriteColumn.js +117 -0
- package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -0
- package/dist/esm/v2/patterns/FavoritesFilter.js +91 -0
- package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -0
- package/dist/esm/v2/patterns/FormErrorSummary.js +101 -0
- package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -0
- package/dist/esm/v2/patterns/FormPageShell.js +126 -0
- package/dist/esm/v2/patterns/FormPageShell.js.map +1 -0
- package/dist/esm/v2/patterns/FormSection.js +190 -0
- package/dist/esm/v2/patterns/FormSection.js.map +1 -0
- package/dist/esm/v2/patterns/FormikCheckbox.js +140 -0
- package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js +110 -0
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -0
- package/dist/esm/v2/patterns/FormikCombobox.js +118 -0
- package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -0
- package/dist/esm/v2/patterns/FormikDatePicker.js +162 -0
- package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -0
- package/dist/esm/v2/patterns/FormikDateTimePicker.js +150 -0
- package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
- package/dist/esm/v2/patterns/FormikErrorFocus.js +77 -0
- package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -0
- package/dist/esm/v2/patterns/FormikFile.js +148 -0
- package/dist/esm/v2/patterns/FormikFile.js.map +1 -0
- package/dist/esm/v2/patterns/FormikInput.js +130 -0
- package/dist/esm/v2/patterns/FormikInput.js.map +1 -0
- package/dist/esm/v2/patterns/FormikRadioGroup.js +141 -0
- package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
- package/dist/esm/v2/patterns/FormikReferentielField.js +116 -0
- package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -0
- package/dist/esm/v2/patterns/FormikSelect.js +162 -0
- package/dist/esm/v2/patterns/FormikSelect.js.map +1 -0
- package/dist/esm/v2/patterns/FormikTextarea.js +79 -0
- package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -0
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +212 -0
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -0
- package/dist/esm/v2/patterns/NetworkErrorBanner.js +72 -0
- package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -0
- package/dist/esm/v2/patterns/PageContent.js +62 -0
- package/dist/esm/v2/patterns/PageContent.js.map +1 -0
- package/dist/esm/v2/patterns/ReferentielField.js +615 -0
- package/dist/esm/v2/patterns/ReferentielField.js.map +1 -0
- package/dist/esm/v2/patterns/RowFavoriteToggle.js +122 -0
- package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
- package/dist/esm/v2/patterns/SaveFilterDialog.js +197 -0
- package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -0
- package/dist/esm/v2/patterns/SavedFiltersMenu.js +406 -0
- package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -0
- package/dist/esm/v2/patterns/SkeletonPageShell.js +342 -0
- package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -0
- package/dist/esm/v2/patterns/SortableHeader.js +179 -0
- package/dist/esm/v2/patterns/SortableHeader.js.map +1 -0
- package/dist/esm/v2/patterns/Tour.js +471 -0
- package/dist/esm/v2/patterns/Tour.js.map +1 -0
- package/dist/esm/v2/patterns/_dataGridShared.js +431 -0
- package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -0
- package/dist/esm/v2/patterns/_pickerSerialisation.js +74 -0
- package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
- package/dist/esm/v2/patterns/_sort.js +112 -0
- package/dist/esm/v2/patterns/_sort.js.map +1 -0
- package/dist/esm/v2/patterns/_useColumnReorder.js +257 -0
- package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -0
- package/dist/esm/v2/patterns/_useColumnResize.js +191 -0
- package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -0
- package/dist/esm/v2/patterns/index.js +178 -0
- package/dist/esm/v2/patterns/index.js.map +1 -0
- package/dist/esm/v2/personalization/PersonalizationProvider.js +168 -0
- package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -0
- package/dist/esm/v2/personalization/adapters/_storageKey.js +60 -0
- package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -0
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +124 -0
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -0
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +70 -0
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -0
- package/dist/esm/v2/personalization/adapters/index.js +11 -0
- package/dist/esm/v2/personalization/adapters/index.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/favorites.js +216 -0
- package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/favoritesView.js +111 -0
- package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js +209 -0
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/index.js +22 -0
- package/dist/esm/v2/personalization/capabilities/index.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/savedFilters.js +291 -0
- package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -0
- package/dist/esm/v2/personalization/createPersonalizationStore.js +472 -0
- package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -0
- package/dist/esm/v2/personalization/index.js +64 -0
- package/dist/esm/v2/personalization/index.js.map +1 -0
- package/dist/esm/v2/personalization/personalizationContext.js +108 -0
- package/dist/esm/v2/personalization/personalizationContext.js.map +1 -0
- package/dist/esm/v2/personalization/schema.js +92 -0
- package/dist/esm/v2/personalization/schema.js.map +1 -0
- package/dist/esm/v2/personalization/types.js +2 -0
- package/dist/esm/v2/personalization/types.js.map +1 -0
- package/dist/esm/v2/referentiel/ReferentielProvider.js +87 -0
- package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -0
- package/dist/esm/v2/referentiel/index.js +15 -0
- package/dist/esm/v2/referentiel/index.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielClient.js +37 -0
- package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielOptions.js +169 -0
- package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielSearch.js +132 -0
- package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -0
- package/dist/esm/v2/styles/base.css +425 -0
- package/dist/esm/v2/styles/css.d.ts +10 -0
- package/dist/esm/v2/styles/index.js +12 -0
- package/dist/esm/v2/styles/index.js.map +1 -0
- package/dist/esm/v2/theme/_brand.js +64 -0
- package/dist/esm/v2/theme/_brand.js.map +1 -0
- package/dist/esm/v2/theme/_brandSecondary.js +60 -0
- package/dist/esm/v2/theme/_brandSecondary.js.map +1 -0
- package/dist/esm/v2/theme/createPortnetTheme.js +548 -0
- package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -0
- package/dist/esm/v2/theme/cssVariables.js +198 -0
- package/dist/esm/v2/theme/cssVariables.js.map +1 -0
- package/dist/esm/v2/theme/index.js +32 -0
- package/dist/esm/v2/theme/index.js.map +1 -0
- package/dist/esm/v2/tokens/breakpoints.js +106 -0
- package/dist/esm/v2/tokens/breakpoints.js.map +1 -0
- package/dist/esm/v2/tokens/colors.js +219 -0
- package/dist/esm/v2/tokens/colors.js.map +1 -0
- package/dist/esm/v2/tokens/density.js +98 -0
- package/dist/esm/v2/tokens/density.js.map +1 -0
- package/dist/esm/v2/tokens/index.js +80 -0
- package/dist/esm/v2/tokens/index.js.map +1 -0
- package/dist/esm/v2/tokens/motion.js +88 -0
- package/dist/esm/v2/tokens/motion.js.map +1 -0
- package/dist/esm/v2/tokens/radius.js +22 -0
- package/dist/esm/v2/tokens/radius.js.map +1 -0
- package/dist/esm/v2/tokens/shadows.js +40 -0
- package/dist/esm/v2/tokens/shadows.js.map +1 -0
- package/dist/esm/v2/tokens/spacing.js +51 -0
- package/dist/esm/v2/tokens/spacing.js.map +1 -0
- package/dist/esm/v2/tokens/state.js +41 -0
- package/dist/esm/v2/tokens/state.js.map +1 -0
- package/dist/esm/v2/tokens/statusPalette.js +66 -0
- package/dist/esm/v2/tokens/statusPalette.js.map +1 -0
- package/dist/esm/v2/tokens/tokens.json +153 -0
- package/dist/esm/v2/tokens/typography.js +149 -0
- package/dist/esm/v2/tokens/typography.js.map +1 -0
- package/dist/esm/v2/tokens/zIndex.js +44 -0
- package/dist/esm/v2/tokens/zIndex.js.map +1 -0
- package/dist/esm/v2/types/common.js +2 -0
- package/dist/esm/v2/types/common.js.map +1 -0
- package/dist/esm/v2/types/datagrid.js +2 -0
- package/dist/esm/v2/types/datagrid.js.map +1 -0
- package/dist/esm/v2/types/index.js +12 -0
- package/dist/esm/v2/types/index.js.map +1 -0
- package/dist/esm/v2/utils/apiError.js +281 -0
- package/dist/esm/v2/utils/apiError.js.map +1 -0
- package/dist/esm/v2/utils/contrast.js +157 -0
- package/dist/esm/v2/utils/contrast.js.map +1 -0
- package/dist/esm/v2/utils/cx.js +38 -0
- package/dist/esm/v2/utils/cx.js.map +1 -0
- package/dist/esm/v2/utils/fileDownload.js +226 -0
- package/dist/esm/v2/utils/fileDownload.js.map +1 -0
- package/dist/esm/v2/utils/fmtMoney.js +78 -0
- package/dist/esm/v2/utils/fmtMoney.js.map +1 -0
- package/dist/esm/v2/utils/index.js +43 -0
- package/dist/esm/v2/utils/index.js.map +1 -0
- package/dist/esm/v2/utils/mergeLabels.js +86 -0
- package/dist/esm/v2/utils/mergeLabels.js.map +1 -0
- package/dist/esm/v2/utils/networkStatus.js +114 -0
- package/dist/esm/v2/utils/networkStatus.js.map +1 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -1
- package/dist/v2/__tests__/FieldError.test.js +160 -0
- package/dist/v2/__tests__/FieldError.test.js.map +1 -0
- package/dist/v2/__tests__/FieldWidth.test.js +150 -0
- package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
- package/dist/v2/__tests__/FileCard.test.js +144 -0
- package/dist/v2/__tests__/FileCard.test.js.map +1 -0
- package/dist/v2/__tests__/FormikCheckbox.test.js +268 -0
- package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
- package/dist/v2/__tests__/FormikDateTimePicker.test.js +247 -0
- package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js +381 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
- package/dist/v2/__tests__/MobileRowCard.test.js +52 -56
- package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/v2/__tests__/SectionErrorBoundary.test.js +237 -0
- package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
- package/dist/v2/__tests__/labels-merge.test.js +20 -24
- package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/v2/components/Accordion.d.ts +6 -6
- package/dist/v2/components/Accordion.d.ts.map +1 -1
- package/dist/v2/components/Accordion.js.map +1 -1
- package/dist/v2/components/ActionStrip.d.ts +12 -12
- package/dist/v2/components/ActionStrip.d.ts.map +1 -1
- package/dist/v2/components/ActionStrip.js.map +1 -1
- package/dist/v2/components/Banner.d.ts +48 -9
- package/dist/v2/components/Banner.d.ts.map +1 -1
- package/dist/v2/components/Banner.js +116 -35
- package/dist/v2/components/Banner.js.map +1 -1
- package/dist/v2/components/Busy.d.ts +3 -3
- package/dist/v2/components/Busy.d.ts.map +1 -1
- package/dist/v2/components/Busy.js.map +1 -1
- package/dist/v2/components/Button.d.ts +6 -6
- package/dist/v2/components/Button.d.ts.map +1 -1
- package/dist/v2/components/Button.js.map +1 -1
- package/dist/v2/components/CategoryTag.d.ts +3 -3
- package/dist/v2/components/CategoryTag.d.ts.map +1 -1
- package/dist/v2/components/CategoryTag.js.map +1 -1
- package/dist/v2/components/Checkbox.d.ts +11 -11
- package/dist/v2/components/Checkbox.d.ts.map +1 -1
- package/dist/v2/components/Checkbox.js.map +1 -1
- package/dist/v2/components/Chip.d.ts +8 -8
- package/dist/v2/components/Chip.d.ts.map +1 -1
- package/dist/v2/components/Chip.js +2 -1
- package/dist/v2/components/Chip.js.map +1 -1
- package/dist/v2/components/Combobox.d.ts +27 -27
- package/dist/v2/components/Combobox.d.ts.map +1 -1
- package/dist/v2/components/Combobox.js +3 -2
- package/dist/v2/components/Combobox.js.map +1 -1
- package/dist/v2/components/CommandPalette.d.ts +20 -20
- package/dist/v2/components/CommandPalette.d.ts.map +1 -1
- package/dist/v2/components/CommandPalette.js +2 -6
- package/dist/v2/components/CommandPalette.js.map +1 -1
- package/dist/v2/components/ConfirmDialog.d.ts +13 -13
- package/dist/v2/components/ConfirmDialog.d.ts.map +1 -1
- package/dist/v2/components/ConfirmDialog.js +2 -1
- package/dist/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/v2/components/DatePicker.d.ts +11 -11
- package/dist/v2/components/DatePicker.d.ts.map +1 -1
- package/dist/v2/components/DatePicker.js.map +1 -1
- package/dist/v2/components/DateRangePicker.d.ts +16 -16
- package/dist/v2/components/DateRangePicker.d.ts.map +1 -1
- package/dist/v2/components/DateRangePicker.js +2 -1
- package/dist/v2/components/DateRangePicker.js.map +1 -1
- package/dist/v2/components/DateTimePicker.d.ts +11 -11
- package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
- package/dist/v2/components/DateTimePicker.js +37 -4
- package/dist/v2/components/DateTimePicker.js.map +1 -1
- package/dist/v2/components/Drawer.d.ts +18 -18
- package/dist/v2/components/Drawer.d.ts.map +1 -1
- package/dist/v2/components/Drawer.js +2 -1
- package/dist/v2/components/Drawer.js.map +1 -1
- package/dist/v2/components/Dropzone.d.ts +34 -34
- package/dist/v2/components/Dropzone.d.ts.map +1 -1
- package/dist/v2/components/Dropzone.js +11 -3
- package/dist/v2/components/Dropzone.js.map +1 -1
- package/dist/v2/components/EmptyState.d.ts +7 -7
- package/dist/v2/components/EmptyState.d.ts.map +1 -1
- package/dist/v2/components/EmptyState.js.map +1 -1
- package/dist/v2/components/FavoriteToggle.d.ts +7 -7
- package/dist/v2/components/FavoriteToggle.d.ts.map +1 -1
- package/dist/v2/components/FavoriteToggle.js +2 -1
- package/dist/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/v2/components/Field.d.ts +76 -13
- package/dist/v2/components/Field.d.ts.map +1 -1
- package/dist/v2/components/Field.js +87 -9
- package/dist/v2/components/Field.js.map +1 -1
- package/dist/v2/components/FieldError.d.ts +78 -0
- package/dist/v2/components/FieldError.d.ts.map +1 -0
- package/dist/v2/components/FieldError.js +131 -0
- package/dist/v2/components/FieldError.js.map +1 -0
- package/dist/v2/components/FieldHelp.d.ts +7 -7
- package/dist/v2/components/FieldHelp.d.ts.map +1 -1
- package/dist/v2/components/FieldHelp.js.map +1 -1
- package/dist/v2/components/FileCard.d.ts +75 -0
- package/dist/v2/components/FileCard.d.ts.map +1 -0
- package/dist/v2/components/FileCard.js +169 -0
- package/dist/v2/components/FileCard.js.map +1 -0
- package/dist/v2/components/FilterTab.d.ts +9 -9
- package/dist/v2/components/FilterTab.d.ts.map +1 -1
- package/dist/v2/components/FilterTab.js +2 -1
- package/dist/v2/components/FilterTab.js.map +1 -1
- package/dist/v2/components/FormGrid.d.ts +9 -4
- package/dist/v2/components/FormGrid.d.ts.map +1 -1
- package/dist/v2/components/FormGrid.js +11 -1
- package/dist/v2/components/FormGrid.js.map +1 -1
- package/dist/v2/components/FormikDisplay.d.ts +6 -6
- package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
- package/dist/v2/components/FormikDisplay.js.map +1 -1
- package/dist/v2/components/Input.d.ts +6 -6
- package/dist/v2/components/Input.d.ts.map +1 -1
- package/dist/v2/components/Input.js.map +1 -1
- package/dist/v2/components/KPICard.d.ts +43 -13
- package/dist/v2/components/KPICard.d.ts.map +1 -1
- package/dist/v2/components/KPICard.js +53 -14
- package/dist/v2/components/KPICard.js.map +1 -1
- package/dist/v2/components/KPIStrip.d.ts +68 -0
- package/dist/v2/components/KPIStrip.d.ts.map +1 -0
- package/dist/v2/components/KPIStrip.js +92 -0
- package/dist/v2/components/KPIStrip.js.map +1 -0
- package/dist/v2/components/KV.d.ts +3 -3
- package/dist/v2/components/KV.d.ts.map +1 -1
- package/dist/v2/components/KV.js.map +1 -1
- package/dist/v2/components/KVGrid.d.ts +2 -2
- package/dist/v2/components/KVGrid.d.ts.map +1 -1
- package/dist/v2/components/KVGrid.js +8 -1
- package/dist/v2/components/KVGrid.js.map +1 -1
- package/dist/v2/components/Layout.d.ts +7 -7
- package/dist/v2/components/Layout.d.ts.map +1 -1
- package/dist/v2/components/Layout.js.map +1 -1
- package/dist/v2/components/MobileRowCard.d.ts +13 -13
- package/dist/v2/components/MobileRowCard.d.ts.map +1 -1
- package/dist/v2/components/MobileRowCard.js.map +1 -1
- package/dist/v2/components/Modal.d.ts +12 -12
- package/dist/v2/components/Modal.d.ts.map +1 -1
- package/dist/v2/components/Modal.js.map +1 -1
- package/dist/v2/components/NetworkErrorPage.d.ts +1 -1
- package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
- package/dist/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/v2/components/NumberInput.d.ts +14 -14
- package/dist/v2/components/NumberInput.d.ts.map +1 -1
- package/dist/v2/components/NumberInput.js +7 -6
- package/dist/v2/components/NumberInput.js.map +1 -1
- package/dist/v2/components/OverflowMenu.d.ts +14 -14
- package/dist/v2/components/OverflowMenu.d.ts.map +1 -1
- package/dist/v2/components/OverflowMenu.js +4 -8
- package/dist/v2/components/OverflowMenu.js.map +1 -1
- package/dist/v2/components/PdfViewer.d.ts +9 -9
- package/dist/v2/components/PdfViewer.d.ts.map +1 -1
- package/dist/v2/components/PdfViewer.js.map +1 -1
- package/dist/v2/components/ProgressBar.d.ts +10 -10
- package/dist/v2/components/ProgressBar.d.ts.map +1 -1
- package/dist/v2/components/ProgressBar.js.map +1 -1
- package/dist/v2/components/Radio.d.ts +7 -7
- package/dist/v2/components/Radio.d.ts.map +1 -1
- package/dist/v2/components/Radio.js.map +1 -1
- package/dist/v2/components/SectionErrorBoundary.d.ts +89 -0
- package/dist/v2/components/SectionErrorBoundary.d.ts.map +1 -0
- package/dist/v2/components/SectionErrorBoundary.js +221 -0
- package/dist/v2/components/SectionErrorBoundary.js.map +1 -0
- package/dist/v2/components/SectionHeader.d.ts +5 -5
- package/dist/v2/components/SectionHeader.d.ts.map +1 -1
- package/dist/v2/components/SectionHeader.js.map +1 -1
- package/dist/v2/components/Segmented.d.ts +11 -11
- package/dist/v2/components/Segmented.d.ts.map +1 -1
- package/dist/v2/components/Segmented.js.map +1 -1
- package/dist/v2/components/Select.d.ts +33 -15
- package/dist/v2/components/Select.d.ts.map +1 -1
- package/dist/v2/components/Select.js +147 -30
- package/dist/v2/components/Select.js.map +1 -1
- package/dist/v2/components/ServerErrorPage.d.ts +1 -1
- package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
- package/dist/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/v2/components/Skeleton.d.ts +15 -15
- package/dist/v2/components/Skeleton.d.ts.map +1 -1
- package/dist/v2/components/Skeleton.js.map +1 -1
- package/dist/v2/components/SkipLink.d.ts +2 -2
- package/dist/v2/components/SkipLink.d.ts.map +1 -1
- package/dist/v2/components/SkipLink.js.map +1 -1
- package/dist/v2/components/Status.d.ts +3 -3
- package/dist/v2/components/Status.d.ts.map +1 -1
- package/dist/v2/components/Status.js.map +1 -1
- package/dist/v2/components/Stepper.d.ts +28 -22
- package/dist/v2/components/Stepper.d.ts.map +1 -1
- package/dist/v2/components/Stepper.js +31 -5
- package/dist/v2/components/Stepper.js.map +1 -1
- package/dist/v2/components/Surface.d.ts +94 -0
- package/dist/v2/components/Surface.d.ts.map +1 -0
- package/dist/v2/components/Surface.js +163 -0
- package/dist/v2/components/Surface.js.map +1 -0
- package/dist/v2/components/Switch.d.ts +4 -4
- package/dist/v2/components/Switch.d.ts.map +1 -1
- package/dist/v2/components/Switch.js.map +1 -1
- package/dist/v2/components/Tabs.d.ts +6 -6
- package/dist/v2/components/Tabs.d.ts.map +1 -1
- package/dist/v2/components/Tabs.js.map +1 -1
- package/dist/v2/components/TelInput.d.ts +8 -8
- package/dist/v2/components/TelInput.d.ts.map +1 -1
- package/dist/v2/components/TelInput.js +18 -18
- package/dist/v2/components/TelInput.js.map +1 -1
- package/dist/v2/components/Textarea.d.ts +1 -1
- package/dist/v2/components/Textarea.d.ts.map +1 -1
- package/dist/v2/components/Textarea.js.map +1 -1
- package/dist/v2/components/TimePicker.d.ts +11 -11
- package/dist/v2/components/TimePicker.d.ts.map +1 -1
- package/dist/v2/components/TimePicker.js.map +1 -1
- package/dist/v2/components/Toast.d.ts +6 -6
- package/dist/v2/components/Toast.d.ts.map +1 -1
- package/dist/v2/components/Toast.js +9 -8
- package/dist/v2/components/Toast.js.map +1 -1
- package/dist/v2/components/Tooltip.d.ts +1 -1
- package/dist/v2/components/Tooltip.d.ts.map +1 -1
- package/dist/v2/components/Tooltip.js.map +1 -1
- package/dist/v2/components/index.d.ts +170 -0
- package/dist/v2/components/index.d.ts.map +1 -1
- package/dist/v2/components/index.js +35 -0
- package/dist/v2/components/index.js.map +1 -1
- package/dist/v2/index.d.ts.map +1 -1
- package/dist/v2/index.js.map +1 -1
- package/dist/v2/models/favorite.d.ts +1 -1
- package/dist/v2/models/favorite.d.ts.map +1 -1
- package/dist/v2/models/favorite.js.map +1 -1
- package/dist/v2/models/personalization.d.ts +13 -13
- package/dist/v2/models/personalization.d.ts.map +1 -1
- package/dist/v2/models/personalization.js.map +1 -1
- package/dist/v2/models/referentiel.d.ts +11 -11
- package/dist/v2/models/referentiel.d.ts.map +1 -1
- package/dist/v2/models/referentiel.js.map +1 -1
- package/dist/v2/models/savedFilter.d.ts +8 -8
- package/dist/v2/models/savedFilter.d.ts.map +1 -1
- package/dist/v2/models/savedFilter.js.map +1 -1
- package/dist/v2/patterns/ActionBar.d.ts +33 -33
- package/dist/v2/patterns/ActionBar.d.ts.map +1 -1
- package/dist/v2/patterns/ActionBar.js +2 -1
- package/dist/v2/patterns/ActionBar.js.map +1 -1
- package/dist/v2/patterns/BulkActionBar.d.ts +12 -12
- package/dist/v2/patterns/BulkActionBar.d.ts.map +1 -1
- package/dist/v2/patterns/BulkActionBar.js +2 -1
- package/dist/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/v2/patterns/CollapsibleDataGrid.d.ts +15 -15
- package/dist/v2/patterns/CollapsibleDataGrid.d.ts.map +1 -1
- package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/v2/patterns/ColumnsToggle.d.ts +7 -7
- package/dist/v2/patterns/ColumnsToggle.d.ts.map +1 -1
- package/dist/v2/patterns/ColumnsToggle.js +4 -8
- package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -12
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.js +9 -8
- package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/v2/patterns/DataGridToolbar.d.ts +40 -40
- package/dist/v2/patterns/DataGridToolbar.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridToolbar.js +2 -1
- package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/v2/patterns/DataGridVirtualized.d.ts +27 -27
- package/dist/v2/patterns/DataGridVirtualized.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts +5 -5
- package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts.map +1 -1
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/v2/patterns/FavoriteColumn.d.ts +15 -15
- package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
- package/dist/v2/patterns/FavoriteColumn.js +14 -61
- package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/v2/patterns/FavoritesFilter.d.ts +10 -10
- package/dist/v2/patterns/FavoritesFilter.d.ts.map +1 -1
- package/dist/v2/patterns/FavoritesFilter.js +2 -1
- package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/v2/patterns/FormErrorSummary.d.ts +4 -4
- package/dist/v2/patterns/FormErrorSummary.d.ts.map +1 -1
- package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/v2/patterns/FormPageShell.d.ts +4 -4
- package/dist/v2/patterns/FormPageShell.d.ts.map +1 -1
- package/dist/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/v2/patterns/FormSection.d.ts +19 -8
- package/dist/v2/patterns/FormSection.d.ts.map +1 -1
- package/dist/v2/patterns/FormSection.js +106 -71
- package/dist/v2/patterns/FormSection.js.map +1 -1
- package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
- package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
- package/dist/v2/patterns/FormikCheckbox.js +147 -0
- package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts +6 -6
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/v2/patterns/FormikCombobox.d.ts +18 -12
- package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCombobox.js +5 -2
- package/dist/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.d.ts +48 -8
- package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.js +58 -65
- package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
- package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
- package/dist/v2/patterns/FormikDateTimePicker.js +158 -0
- package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
- package/dist/v2/patterns/FormikErrorFocus.d.ts +3 -3
- package/dist/v2/patterns/FormikErrorFocus.d.ts.map +1 -1
- package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/v2/patterns/FormikFile.d.ts +8 -8
- package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
- package/dist/v2/patterns/FormikFile.js.map +1 -1
- package/dist/v2/patterns/FormikInput.d.ts +51 -6
- package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
- package/dist/v2/patterns/FormikInput.js +53 -2
- package/dist/v2/patterns/FormikInput.js.map +1 -1
- package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
- package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
- package/dist/v2/patterns/FormikRadioGroup.js +148 -0
- package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
- package/dist/v2/patterns/FormikReferentielField.d.ts +8 -8
- package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/v2/patterns/FormikSelect.d.ts +41 -12
- package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
- package/dist/v2/patterns/FormikSelect.js +32 -3
- package/dist/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/v2/patterns/FormikTextarea.d.ts +14 -6
- package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
- package/dist/v2/patterns/FormikTextarea.js +5 -2
- package/dist/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +21 -8
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.js +27 -14
- package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/v2/patterns/NetworkErrorBanner.d.ts +4 -4
- package/dist/v2/patterns/NetworkErrorBanner.d.ts.map +1 -1
- package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/v2/patterns/PageContent.d.ts +3 -3
- package/dist/v2/patterns/PageContent.d.ts.map +1 -1
- package/dist/v2/patterns/PageContent.js.map +1 -1
- package/dist/v2/patterns/ReferentielField.d.ts +49 -49
- package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/ReferentielField.js +2 -1
- package/dist/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/v2/patterns/RowFavoriteToggle.d.ts +92 -0
- package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
- package/dist/v2/patterns/RowFavoriteToggle.js +127 -0
- package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
- package/dist/v2/patterns/SaveFilterDialog.d.ts +10 -10
- package/dist/v2/patterns/SaveFilterDialog.d.ts.map +1 -1
- package/dist/v2/patterns/SaveFilterDialog.js +9 -8
- package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/v2/patterns/SavedFiltersMenu.d.ts +7 -7
- package/dist/v2/patterns/SavedFiltersMenu.d.ts.map +1 -1
- package/dist/v2/patterns/SavedFiltersMenu.js +9 -8
- package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/v2/patterns/SkeletonPageShell.d.ts +7 -7
- package/dist/v2/patterns/SkeletonPageShell.d.ts.map +1 -1
- package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/v2/patterns/SortableHeader.d.ts +1 -1
- package/dist/v2/patterns/SortableHeader.d.ts.map +1 -1
- package/dist/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/v2/patterns/Tour.d.ts +12 -12
- package/dist/v2/patterns/Tour.d.ts.map +1 -1
- package/dist/v2/patterns/Tour.js +9 -8
- package/dist/v2/patterns/Tour.js.map +1 -1
- package/dist/v2/patterns/_dataGridShared.d.ts +25 -6
- package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
- package/dist/v2/patterns/_dataGridShared.js +37 -3
- package/dist/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
- package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
- package/dist/v2/patterns/_pickerSerialisation.js +81 -0
- package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
- package/dist/v2/patterns/_useColumnReorder.d.ts +1 -1
- package/dist/v2/patterns/_useColumnReorder.d.ts.map +1 -1
- package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/v2/patterns/_useColumnResize.d.ts +1 -1
- package/dist/v2/patterns/_useColumnResize.d.ts.map +1 -1
- package/dist/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/v2/patterns/index.d.ts +114 -0
- package/dist/v2/patterns/index.d.ts.map +1 -1
- package/dist/v2/patterns/index.js +34 -0
- package/dist/v2/patterns/index.js.map +1 -1
- package/dist/v2/personalization/PersonalizationProvider.d.ts +9 -9
- package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
- package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts.map +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts.map +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/v2/personalization/capabilities/favoritesView.d.ts +3 -3
- package/dist/v2/personalization/capabilities/favoritesView.d.ts.map +1 -1
- package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
- package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/gridPreferences.js +215 -0
- package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
- package/dist/v2/personalization/capabilities/index.d.ts +6 -0
- package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
- package/dist/v2/personalization/capabilities/index.js +13 -0
- package/dist/v2/personalization/capabilities/index.js.map +1 -1
- package/dist/v2/personalization/capabilities/savedFilters.d.ts +3 -3
- package/dist/v2/personalization/capabilities/savedFilters.d.ts.map +1 -1
- package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.d.ts +8 -8
- package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/v2/personalization/index.d.ts +18 -0
- package/dist/v2/personalization/index.d.ts.map +1 -1
- package/dist/v2/personalization/index.js +13 -0
- package/dist/v2/personalization/index.js.map +1 -1
- package/dist/v2/personalization/schema.d.ts +2 -2
- package/dist/v2/personalization/schema.d.ts.map +1 -1
- package/dist/v2/personalization/schema.js.map +1 -1
- package/dist/v2/personalization/types.d.ts +19 -19
- package/dist/v2/personalization/types.d.ts.map +1 -1
- package/dist/v2/personalization/types.js.map +1 -1
- package/dist/v2/referentiel/ReferentielProvider.d.ts +4 -4
- package/dist/v2/referentiel/ReferentielProvider.d.ts.map +1 -1
- package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.d.ts +4 -4
- package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.d.ts +3 -3
- package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/v2/theme/createPortnetTheme.d.ts +32 -7
- package/dist/v2/theme/createPortnetTheme.d.ts.map +1 -1
- package/dist/v2/theme/createPortnetTheme.js +25 -1
- package/dist/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/v2/types/datagrid.d.ts +59 -59
- package/dist/v2/types/datagrid.d.ts.map +1 -1
- package/dist/v2/types/datagrid.js.map +1 -1
- package/dist/v2/utils/apiError.d.ts +65 -4
- package/dist/v2/utils/apiError.d.ts.map +1 -1
- package/dist/v2/utils/apiError.js +69 -6
- package/dist/v2/utils/apiError.js.map +1 -1
- package/dist/v2/utils/index.d.ts +1 -0
- package/dist/v2/utils/index.d.ts.map +1 -1
- package/dist/v2/utils/index.js +7 -0
- package/dist/v2/utils/index.js.map +1 -1
- package/dist/v2/utils/mergeLabels.d.ts +59 -0
- package/dist/v2/utils/mergeLabels.d.ts.map +1 -0
- package/dist/v2/utils/mergeLabels.js +93 -0
- package/dist/v2/utils/mergeLabels.js.map +1 -0
- package/package.json +23 -15
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
3
|
require("@testing-library/jest-dom");
|
|
5
|
-
var
|
|
6
|
-
var _react2 = require("@testing-library/react");
|
|
4
|
+
var _react = require("@testing-library/react");
|
|
7
5
|
var _MobileRowCard = _interopRequireDefault(require("../components/MobileRowCard"));
|
|
8
6
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
10
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
8
|
/**
|
|
13
9
|
* MobileRowCard — slot contract tests.
|
|
14
10
|
*
|
|
@@ -35,36 +31,36 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
35
31
|
* open for all three props.
|
|
36
32
|
*/describe("MobileRowCard — slot rendering", function () {
|
|
37
33
|
test("renders title, subtitle and meta, omitting lines with no content", function () {
|
|
38
|
-
(0,
|
|
34
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
39
35
|
title: "2025-IM-0042",
|
|
40
36
|
subtitle: "SOFRANE SA",
|
|
41
37
|
meta: ["12/05/2026", "3 pièces"]
|
|
42
38
|
}));
|
|
43
|
-
expect(
|
|
44
|
-
expect(
|
|
39
|
+
expect(_react.screen.getByText("2025-IM-0042")).toBeInTheDocument();
|
|
40
|
+
expect(_react.screen.getByText("SOFRANE SA")).toBeInTheDocument();
|
|
45
41
|
// meta joins with " · " into a single node
|
|
46
|
-
expect(
|
|
42
|
+
expect(_react.screen.getByText("12/05/2026 · 3 pièces")).toBeInTheDocument();
|
|
47
43
|
});
|
|
48
44
|
test("meta drops null / empty entries rather than rendering stray separators", function () {
|
|
49
|
-
(0,
|
|
45
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
50
46
|
title: "X",
|
|
51
47
|
meta: ["Émise 01/01/2026", null, "", undefined]
|
|
52
48
|
}));
|
|
53
|
-
expect(
|
|
54
|
-
expect(
|
|
49
|
+
expect(_react.screen.getByText("Émise 01/01/2026")).toBeInTheDocument();
|
|
50
|
+
expect(_react.screen.queryByText(/·/)).not.toBeInTheDocument();
|
|
55
51
|
});
|
|
56
52
|
test("a string title gets a native tooltip; a node title does not stringify", function () {
|
|
57
|
-
var _render = (0,
|
|
53
|
+
var _render = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
58
54
|
title: "Long reference"
|
|
59
55
|
})),
|
|
60
56
|
rerender = _render.rerender;
|
|
61
|
-
expect(
|
|
57
|
+
expect(_react.screen.getByText("Long reference")).toHaveAttribute("title", "Long reference");
|
|
62
58
|
rerender(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
63
59
|
title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
64
60
|
children: "Node title"
|
|
65
61
|
})
|
|
66
62
|
}));
|
|
67
|
-
expect(
|
|
63
|
+
expect(_react.screen.getByText("Node title")).toBeInTheDocument();
|
|
68
64
|
/* The regression guarded here: wrapping a node yielded title="[object
|
|
69
65
|
* Object]". Asserted with queryByTitle rather than `.closest("[title]")`
|
|
70
66
|
* so it stays a Testing-Library query (testing-library/no-node-access).
|
|
@@ -73,12 +69,12 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
73
69
|
* attribute in exactly two places (the title Box and the subtitle Box) and
|
|
74
70
|
* only when the value is a string, so with a node title and no subtitle the
|
|
75
71
|
* whole tree must be title-less. */
|
|
76
|
-
expect(
|
|
72
|
+
expect(_react.screen.queryByTitle(/./)).not.toBeInTheDocument();
|
|
77
73
|
});
|
|
78
74
|
});
|
|
79
75
|
describe("MobileRowCard — kv slot", function () {
|
|
80
76
|
test("renders each pair as a KV label/value unit", function () {
|
|
81
|
-
(0,
|
|
77
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
82
78
|
title: "ref",
|
|
83
79
|
kv: [{
|
|
84
80
|
label: "Catégorie",
|
|
@@ -88,16 +84,16 @@ describe("MobileRowCard — kv slot", function () {
|
|
|
88
84
|
value: "SOFRANE SA"
|
|
89
85
|
}]
|
|
90
86
|
}));
|
|
91
|
-
expect(
|
|
92
|
-
expect(
|
|
93
|
-
expect(
|
|
94
|
-
expect(
|
|
87
|
+
expect(_react.screen.getByText("Catégorie")).toBeInTheDocument();
|
|
88
|
+
expect(_react.screen.getByText("CONTINGENT")).toBeInTheDocument();
|
|
89
|
+
expect(_react.screen.getByText("Importateur")).toBeInTheDocument();
|
|
90
|
+
expect(_react.screen.getByText("SOFRANE SA")).toBeInTheDocument();
|
|
95
91
|
});
|
|
96
92
|
test("an empty value KEEPS the pair and shows KV's own em-dash placeholder", function () {
|
|
97
93
|
// This is why every consuming site could drop its `?? \"-\"`: KV owns the
|
|
98
94
|
// placeholder. Losing this behaviour would silently reintroduce ten local
|
|
99
95
|
// fallbacks across the fleet.
|
|
100
|
-
(0,
|
|
96
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
101
97
|
title: "ref",
|
|
102
98
|
kv: [{
|
|
103
99
|
label: "Bureau douanier",
|
|
@@ -110,23 +106,23 @@ describe("MobileRowCard — kv slot", function () {
|
|
|
110
106
|
value: null
|
|
111
107
|
}]
|
|
112
108
|
}));
|
|
113
|
-
expect(
|
|
114
|
-
expect(
|
|
115
|
-
expect(
|
|
116
|
-
expect(
|
|
109
|
+
expect(_react.screen.getByText("Bureau douanier")).toBeInTheDocument();
|
|
110
|
+
expect(_react.screen.getByText("Marchandise")).toBeInTheDocument();
|
|
111
|
+
expect(_react.screen.getByText("Devise")).toBeInTheDocument();
|
|
112
|
+
expect(_react.screen.getAllByText("—")).toHaveLength(3);
|
|
117
113
|
});
|
|
118
114
|
test("a custom fallback overrides the em dash", function () {
|
|
119
|
-
(0,
|
|
115
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
120
116
|
title: "ref",
|
|
121
117
|
kv: [{
|
|
122
118
|
label: "Banque",
|
|
123
119
|
fallback: "Non assignée"
|
|
124
120
|
}]
|
|
125
121
|
}));
|
|
126
|
-
expect(
|
|
122
|
+
expect(_react.screen.getByText("Non assignée")).toBeInTheDocument();
|
|
127
123
|
});
|
|
128
124
|
test("pairs with no label are DROPPED (KV would emit a dangling aria-labelledby)", function () {
|
|
129
|
-
(0,
|
|
125
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
130
126
|
title: "ref",
|
|
131
127
|
kv: [{
|
|
132
128
|
label: "",
|
|
@@ -142,14 +138,14 @@ describe("MobileRowCard — kv slot", function () {
|
|
|
142
138
|
value: "kept-value"
|
|
143
139
|
}]
|
|
144
140
|
}));
|
|
145
|
-
expect(
|
|
146
|
-
expect(
|
|
147
|
-
expect(
|
|
141
|
+
expect(_react.screen.queryByText("orphan-empty")).not.toBeInTheDocument();
|
|
142
|
+
expect(_react.screen.queryByText("orphan-missing")).not.toBeInTheDocument();
|
|
143
|
+
expect(_react.screen.getByText("kept-value")).toBeInTheDocument();
|
|
148
144
|
});
|
|
149
145
|
});
|
|
150
146
|
describe("MobileRowCard — chips slot", function () {
|
|
151
147
|
test("renders chip nodes and filters falsy entries", function () {
|
|
152
|
-
(0,
|
|
148
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
153
149
|
title: "ref",
|
|
154
150
|
chips: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
155
151
|
children: "Approuv\xE9"
|
|
@@ -157,25 +153,25 @@ describe("MobileRowCard — chips slot", function () {
|
|
|
157
153
|
children: "CO"
|
|
158
154
|
}, "b")]
|
|
159
155
|
}));
|
|
160
|
-
expect(
|
|
161
|
-
expect(
|
|
156
|
+
expect(_react.screen.getByText("Approuvé")).toBeInTheDocument();
|
|
157
|
+
expect(_react.screen.getByText("CO")).toBeInTheDocument();
|
|
162
158
|
});
|
|
163
159
|
});
|
|
164
160
|
describe("MobileRowCard — actions (kebab)", function () {
|
|
165
161
|
test("kebab renders only when at least one non-divider action exists", function () {
|
|
166
|
-
var _render2 = (0,
|
|
162
|
+
var _render2 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
167
163
|
title: "ref",
|
|
168
164
|
actions: []
|
|
169
165
|
})),
|
|
170
166
|
rerender = _render2.rerender;
|
|
171
|
-
expect(
|
|
167
|
+
expect(_react.screen.queryByRole("button")).not.toBeInTheDocument();
|
|
172
168
|
rerender(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
173
169
|
title: "ref",
|
|
174
170
|
actions: [{
|
|
175
171
|
divider: true
|
|
176
172
|
}]
|
|
177
173
|
}));
|
|
178
|
-
expect(
|
|
174
|
+
expect(_react.screen.queryByRole("button")).not.toBeInTheDocument();
|
|
179
175
|
rerender(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
180
176
|
title: "ref",
|
|
181
177
|
actions: [{
|
|
@@ -184,7 +180,7 @@ describe("MobileRowCard — actions (kebab)", function () {
|
|
|
184
180
|
}],
|
|
185
181
|
actionsAriaLabel: "Actions pour 2025-IM-0042"
|
|
186
182
|
}));
|
|
187
|
-
expect(
|
|
183
|
+
expect(_react.screen.getByRole("button", {
|
|
188
184
|
name: "Actions pour 2025-IM-0042"
|
|
189
185
|
})).toBeInTheDocument();
|
|
190
186
|
});
|
|
@@ -213,7 +209,7 @@ describe("MobileRowCard — actions (kebab)", function () {
|
|
|
213
209
|
describe("MobileRowCard — propagation asymmetry (deliberate)", function () {
|
|
214
210
|
test("leading does NOT stop click propagation to the card", function () {
|
|
215
211
|
var onCardClick = jest.fn();
|
|
216
|
-
(0,
|
|
212
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
217
213
|
onClick: onCardClick,
|
|
218
214
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
219
215
|
title: "ref",
|
|
@@ -222,13 +218,13 @@ describe("MobileRowCard — propagation asymmetry (deliberate)", function () {
|
|
|
222
218
|
})
|
|
223
219
|
})
|
|
224
220
|
}));
|
|
225
|
-
|
|
221
|
+
_react.fireEvent.click(_react.screen.getByText("star"));
|
|
226
222
|
expect(onCardClick).toHaveBeenCalledTimes(1);
|
|
227
223
|
});
|
|
228
224
|
test("trailing DOES stop click propagation to the card", function () {
|
|
229
225
|
var onCardClick = jest.fn();
|
|
230
226
|
var onAction = jest.fn();
|
|
231
|
-
(0,
|
|
227
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
232
228
|
onClick: onCardClick,
|
|
233
229
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
234
230
|
title: "ref",
|
|
@@ -238,7 +234,7 @@ describe("MobileRowCard — propagation asymmetry (deliberate)", function () {
|
|
|
238
234
|
})
|
|
239
235
|
})
|
|
240
236
|
}));
|
|
241
|
-
|
|
237
|
+
_react.fireEvent.click(_react.screen.getByRole("button", {
|
|
242
238
|
name: "Choisir"
|
|
243
239
|
}));
|
|
244
240
|
expect(onAction).toHaveBeenCalledTimes(1);
|
|
@@ -246,7 +242,7 @@ describe("MobileRowCard — propagation asymmetry (deliberate)", function () {
|
|
|
246
242
|
});
|
|
247
243
|
test("trailing stops keydown propagation too (keyboard parity)", function () {
|
|
248
244
|
var onCardKeyDown = jest.fn();
|
|
249
|
-
(0,
|
|
245
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
250
246
|
onKeyDown: onCardKeyDown,
|
|
251
247
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
252
248
|
title: "ref",
|
|
@@ -255,7 +251,7 @@ describe("MobileRowCard — propagation asymmetry (deliberate)", function () {
|
|
|
255
251
|
})
|
|
256
252
|
})
|
|
257
253
|
}));
|
|
258
|
-
|
|
254
|
+
_react.fireEvent.keyDown(_react.screen.getByRole("button", {
|
|
259
255
|
name: "Choisir"
|
|
260
256
|
}), {
|
|
261
257
|
key: "Enter"
|
|
@@ -264,7 +260,7 @@ describe("MobileRowCard — propagation asymmetry (deliberate)", function () {
|
|
|
264
260
|
});
|
|
265
261
|
test("opening the kebab does not fire the card click", function () {
|
|
266
262
|
var onCardClick = jest.fn();
|
|
267
|
-
(0,
|
|
263
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
268
264
|
onClick: onCardClick,
|
|
269
265
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
270
266
|
title: "ref",
|
|
@@ -274,7 +270,7 @@ describe("MobileRowCard — propagation asymmetry (deliberate)", function () {
|
|
|
274
270
|
}]
|
|
275
271
|
})
|
|
276
272
|
}));
|
|
277
|
-
|
|
273
|
+
_react.fireEvent.click(_react.screen.getByRole("button", {
|
|
278
274
|
name: "Plus d'actions"
|
|
279
275
|
}));
|
|
280
276
|
expect(onCardClick).not.toHaveBeenCalled();
|
|
@@ -282,7 +278,7 @@ describe("MobileRowCard — propagation asymmetry (deliberate)", function () {
|
|
|
282
278
|
});
|
|
283
279
|
describe("MobileRowCard — header composition", function () {
|
|
284
280
|
test("trailing and the kebab coexist, trailing first", function () {
|
|
285
|
-
(0,
|
|
281
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
286
282
|
title: "ref",
|
|
287
283
|
trailing: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
|
|
288
284
|
children: "Visualiser"
|
|
@@ -293,10 +289,10 @@ describe("MobileRowCard — header composition", function () {
|
|
|
293
289
|
}],
|
|
294
290
|
actionsAriaLabel: "Autres actions"
|
|
295
291
|
}));
|
|
296
|
-
var visualiser =
|
|
292
|
+
var visualiser = _react.screen.getByRole("button", {
|
|
297
293
|
name: "Visualiser"
|
|
298
294
|
});
|
|
299
|
-
var kebab =
|
|
295
|
+
var kebab = _react.screen.getByRole("button", {
|
|
300
296
|
name: "Autres actions"
|
|
301
297
|
});
|
|
302
298
|
expect(visualiser).toBeInTheDocument();
|
|
@@ -308,30 +304,30 @@ describe("MobileRowCard — header composition", function () {
|
|
|
308
304
|
test("a card with ONLY trailing still renders its header", function () {
|
|
309
305
|
// Regression guard: hasHeader must include hasTrailing, otherwise a
|
|
310
306
|
// title-less picker card would drop its action entirely.
|
|
311
|
-
(0,
|
|
307
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
312
308
|
trailing: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
|
|
313
309
|
children: "Choisir"
|
|
314
310
|
})
|
|
315
311
|
}));
|
|
316
|
-
expect(
|
|
312
|
+
expect(_react.screen.getByRole("button", {
|
|
317
313
|
name: "Choisir"
|
|
318
314
|
})).toBeInTheDocument();
|
|
319
315
|
});
|
|
320
316
|
test("a card with ONLY leading still renders its header", function () {
|
|
321
|
-
(0,
|
|
317
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {
|
|
322
318
|
leading: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
323
319
|
children: "star"
|
|
324
320
|
})
|
|
325
321
|
}));
|
|
326
|
-
expect(
|
|
322
|
+
expect(_react.screen.getByText("star")).toBeInTheDocument();
|
|
327
323
|
});
|
|
328
324
|
test("no props renders no header and does not throw", function () {
|
|
329
325
|
/* `render` not throwing IS the second half of this assertion. The button
|
|
330
326
|
* check uses screen.queryByRole rather than container.querySelector
|
|
331
327
|
* (testing-library/no-container + no-node-access), matching the idiom the
|
|
332
328
|
* kebab test above already uses. */
|
|
333
|
-
(0,
|
|
334
|
-
expect(
|
|
329
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileRowCard["default"], {}));
|
|
330
|
+
expect(_react.screen.queryByRole("button")).not.toBeInTheDocument();
|
|
335
331
|
});
|
|
336
332
|
});
|
|
337
333
|
//# sourceMappingURL=MobileRowCard.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileRowCard.test.js","names":["require","React","_interopRequireWildcard","_react2","_MobileRowCard","_interopRequireDefault","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","describe","test","render","jsx","title","subtitle","meta","expect","screen","getByText","toBeInTheDocument","undefined","queryByText","not","_render","rerender","toHaveAttribute","children","queryByTitle","kv","label","value","getAllByText","toHaveLength","fallback","chips","_render2","actions","queryByRole","divider","onClick","actionsAriaLabel","getByRole","name","onCardClick","jest","fn","leading","fireEvent","click","toHaveBeenCalledTimes","onAction","trailing","toHaveBeenCalled","onCardKeyDown","onKeyDown","keyDown","visualiser","kebab","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","toBeTruthy"],"sources":["../../../src/lib/v2/__tests__/MobileRowCard.test.tsx"],"sourcesContent":["import \"@testing-library/jest-dom\";\r\nimport * as React from \"react\";\r\nimport { render, screen, fireEvent } from \"@testing-library/react\";\r\nimport MobileRowCard from \"../components/MobileRowCard\";\r\n\r\n/**\r\n * MobileRowCard — slot contract tests.\r\n *\r\n * WHY THIS FILE EXISTS\r\n * --------------------\r\n * §10.3 R-G.6 MUST — \"Snapshot Storybook + tests Jest/Testing-Library\" — was\r\n * unmet for THREE props added to this component across successive module\r\n * audits: `kv` and `leading` (ms-dfd-fe Area 5), then `trailing`\r\n * (ms-dfd-fe/ms-ti-fe A5-01). Each was shipped as \"additive, backward\r\n * compatible\", which is true and is not the same thing as verified. This\r\n * component is consumed by ten mobile-card sites across two certified modules,\r\n * so a silent change to any slot's behaviour regresses all of them at once.\r\n *\r\n * The PROPAGATION ASYMMETRY (see below) is the single most important thing\r\n * here. It is deliberate, it is counter-intuitive, and nothing but a test\r\n * stops a future reader from \"tidying\" it into consistency and breaking every\r\n * favourite-star and picker-button site in the fleet.\r\n *\r\n * NOT COVERED — and deliberately so: R-G.3 MUST (light + dark + compact +\r\n * responsive at 320/375/414) is a VISUAL contract. jsdom computes no layout,\r\n * so asserting it here would produce tests that pass while the cards are\r\n * broken on a phone — worse than no coverage, because it would look like\r\n * coverage. R-G.3 needs a browser (Storybook + visual regression) and remains\r\n * open for all three props.\r\n */\r\ndescribe(\"MobileRowCard — slot rendering\", () => {\r\n test(\"renders title, subtitle and meta, omitting lines with no content\", () => {\r\n render(\r\n <MobileRowCard\r\n title=\"2025-IM-0042\"\r\n subtitle=\"SOFRANE SA\"\r\n meta={[\"12/05/2026\", \"3 pièces\"]}\r\n />\r\n );\r\n\r\n expect(screen.getByText(\"2025-IM-0042\")).toBeInTheDocument();\r\n expect(screen.getByText(\"SOFRANE SA\")).toBeInTheDocument();\r\n // meta joins with \" · \" into a single node\r\n expect(screen.getByText(\"12/05/2026 · 3 pièces\")).toBeInTheDocument();\r\n });\r\n\r\n test(\"meta drops null / empty entries rather than rendering stray separators\", () => {\r\n render(<MobileRowCard title=\"X\" meta={[\"Émise 01/01/2026\", null, \"\", undefined]} />);\r\n expect(screen.getByText(\"Émise 01/01/2026\")).toBeInTheDocument();\r\n expect(screen.queryByText(/·/)).not.toBeInTheDocument();\r\n });\r\n\r\n test(\"a string title gets a native tooltip; a node title does not stringify\", () => {\r\n const { rerender } = render(<MobileRowCard title=\"Long reference\" />);\r\n expect(screen.getByText(\"Long reference\")).toHaveAttribute(\"title\", \"Long reference\");\r\n\r\n rerender(<MobileRowCard title={<span>Node title</span>} />);\r\n expect(screen.getByText(\"Node title\")).toBeInTheDocument();\r\n /* The regression guarded here: wrapping a node yielded title=\"[object\r\n * Object]\". Asserted with queryByTitle rather than `.closest(\"[title]\")`\r\n * so it stays a Testing-Library query (testing-library/no-node-access).\r\n * `/./` = \"no element carries ANY non-empty title\", which is a STRONGER\r\n * assertion than the ancestor walk it replaces: MobileRowCard sets a title\r\n * attribute in exactly two places (the title Box and the subtitle Box) and\r\n * only when the value is a string, so with a node title and no subtitle the\r\n * whole tree must be title-less. */\r\n expect(screen.queryByTitle(/./)).not.toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"MobileRowCard — kv slot\", () => {\r\n test(\"renders each pair as a KV label/value unit\", () => {\r\n render(\r\n <MobileRowCard\r\n title=\"ref\"\r\n kv={[\r\n { label: \"Catégorie\", value: \"CONTINGENT\" },\r\n { label: \"Importateur\", value: \"SOFRANE SA\" },\r\n ]}\r\n />\r\n );\r\n\r\n expect(screen.getByText(\"Catégorie\")).toBeInTheDocument();\r\n expect(screen.getByText(\"CONTINGENT\")).toBeInTheDocument();\r\n expect(screen.getByText(\"Importateur\")).toBeInTheDocument();\r\n expect(screen.getByText(\"SOFRANE SA\")).toBeInTheDocument();\r\n });\r\n\r\n test(\"an empty value KEEPS the pair and shows KV's own em-dash placeholder\", () => {\r\n // This is why every consuming site could drop its `?? \\\"-\\\"`: KV owns the\r\n // placeholder. Losing this behaviour would silently reintroduce ten local\r\n // fallbacks across the fleet.\r\n render(\r\n <MobileRowCard\r\n title=\"ref\"\r\n kv={[\r\n { label: \"Bureau douanier\", value: undefined },\r\n { label: \"Marchandise\", value: \"\" },\r\n { label: \"Devise\", value: null },\r\n ]}\r\n />\r\n );\r\n\r\n expect(screen.getByText(\"Bureau douanier\")).toBeInTheDocument();\r\n expect(screen.getByText(\"Marchandise\")).toBeInTheDocument();\r\n expect(screen.getByText(\"Devise\")).toBeInTheDocument();\r\n expect(screen.getAllByText(\"—\")).toHaveLength(3);\r\n });\r\n\r\n test(\"a custom fallback overrides the em dash\", () => {\r\n render(\r\n <MobileRowCard title=\"ref\" kv={[{ label: \"Banque\", fallback: \"Non assignée\" }]} />\r\n );\r\n expect(screen.getByText(\"Non assignée\")).toBeInTheDocument();\r\n });\r\n\r\n test(\"pairs with no label are DROPPED (KV would emit a dangling aria-labelledby)\", () => {\r\n render(\r\n <MobileRowCard\r\n title=\"ref\"\r\n kv={[\r\n { label: \"\", value: \"orphan-empty\" },\r\n // `label` is required but its type (ReactNode) admits undefined, so\r\n // this is type-valid and exercises the runtime `!= null` guard.\r\n { label: undefined, value: \"orphan-missing\" },\r\n { label: \"Kept\", value: \"kept-value\" },\r\n ]}\r\n />\r\n );\r\n\r\n expect(screen.queryByText(\"orphan-empty\")).not.toBeInTheDocument();\r\n expect(screen.queryByText(\"orphan-missing\")).not.toBeInTheDocument();\r\n expect(screen.getByText(\"kept-value\")).toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"MobileRowCard — chips slot\", () => {\r\n test(\"renders chip nodes and filters falsy entries\", () => {\r\n render(\r\n <MobileRowCard\r\n title=\"ref\"\r\n chips={[<span key=\"a\">Approuvé</span>, null, false, <span key=\"b\">CO</span>]}\r\n />\r\n );\r\n expect(screen.getByText(\"Approuvé\")).toBeInTheDocument();\r\n expect(screen.getByText(\"CO\")).toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"MobileRowCard — actions (kebab)\", () => {\r\n test(\"kebab renders only when at least one non-divider action exists\", () => {\r\n const { rerender } = render(<MobileRowCard title=\"ref\" actions={[]} />);\r\n expect(screen.queryByRole(\"button\")).not.toBeInTheDocument();\r\n\r\n rerender(<MobileRowCard title=\"ref\" actions={[{ divider: true }]} />);\r\n expect(screen.queryByRole(\"button\")).not.toBeInTheDocument();\r\n\r\n rerender(\r\n <MobileRowCard\r\n title=\"ref\"\r\n actions={[{ label: \"Détail\", onClick: () => {} }]}\r\n actionsAriaLabel=\"Actions pour 2025-IM-0042\"\r\n />\r\n );\r\n expect(\r\n screen.getByRole(\"button\", { name: \"Actions pour 2025-IM-0042\" })\r\n ).toBeInTheDocument();\r\n });\r\n});\r\n\r\n/**\r\n * THE PROPAGATION CONTRACT — the reason this file matters most.\r\n *\r\n * DataGrid's mobile-card wrapper makes the whole card the click target\r\n * (role=button + onRowClick). Two slots therefore behave DIFFERENTLY on\r\n * purpose:\r\n *\r\n * leading — does NOT stop propagation. A decorative node (icon, avatar)\r\n * should still open the row like the rest of the card. Interactive\r\n * leading content is responsible for stopping propagation itself,\r\n * exactly as DataGrid's own FavoriteCell does. Get this wrong and\r\n * a tap both toggles the favourite star AND opens the drawer.\r\n *\r\n * trailing — DOES stop propagation (it shares the kebab's wrapper). Its\r\n * declared purpose is interactive actions, and a tap that both\r\n * fires the action and opens the row is the more damaging default.\r\n *\r\n * Making these two consistent — in either direction — is a breaking change for\r\n * the ten sites that depend on them.\r\n */\r\ndescribe(\"MobileRowCard — propagation asymmetry (deliberate)\", () => {\r\n test(\"leading does NOT stop click propagation to the card\", () => {\r\n const onCardClick = jest.fn();\r\n render(\r\n <div onClick={onCardClick}>\r\n <MobileRowCard title=\"ref\" leading={<span>star</span>} />\r\n </div>\r\n );\r\n\r\n fireEvent.click(screen.getByText(\"star\"));\r\n expect(onCardClick).toHaveBeenCalledTimes(1);\r\n });\r\n\r\n test(\"trailing DOES stop click propagation to the card\", () => {\r\n const onCardClick = jest.fn();\r\n const onAction = jest.fn();\r\n render(\r\n <div onClick={onCardClick}>\r\n <MobileRowCard\r\n title=\"ref\"\r\n trailing={<button onClick={onAction}>Choisir</button>}\r\n />\r\n </div>\r\n );\r\n\r\n fireEvent.click(screen.getByRole(\"button\", { name: \"Choisir\" }));\r\n expect(onAction).toHaveBeenCalledTimes(1);\r\n expect(onCardClick).not.toHaveBeenCalled();\r\n });\r\n\r\n test(\"trailing stops keydown propagation too (keyboard parity)\", () => {\r\n const onCardKeyDown = jest.fn();\r\n render(\r\n <div onKeyDown={onCardKeyDown}>\r\n <MobileRowCard title=\"ref\" trailing={<button>Choisir</button>} />\r\n </div>\r\n );\r\n\r\n fireEvent.keyDown(screen.getByRole(\"button\", { name: \"Choisir\" }), { key: \"Enter\" });\r\n expect(onCardKeyDown).not.toHaveBeenCalled();\r\n });\r\n\r\n test(\"opening the kebab does not fire the card click\", () => {\r\n const onCardClick = jest.fn();\r\n render(\r\n <div onClick={onCardClick}>\r\n <MobileRowCard title=\"ref\" actions={[{ label: \"Détail\", onClick: () => {} }]} />\r\n </div>\r\n );\r\n\r\n fireEvent.click(screen.getByRole(\"button\", { name: \"Plus d'actions\" }));\r\n expect(onCardClick).not.toHaveBeenCalled();\r\n });\r\n});\r\n\r\ndescribe(\"MobileRowCard — header composition\", () => {\r\n test(\"trailing and the kebab coexist, trailing first\", () => {\r\n render(\r\n <MobileRowCard\r\n title=\"ref\"\r\n trailing={<button>Visualiser</button>}\r\n actions={[{ label: \"Supprimer\", onClick: () => {} }]}\r\n actionsAriaLabel=\"Autres actions\"\r\n />\r\n );\r\n\r\n const visualiser = screen.getByRole(\"button\", { name: \"Visualiser\" });\r\n const kebab = screen.getByRole(\"button\", { name: \"Autres actions\" });\r\n expect(visualiser).toBeInTheDocument();\r\n expect(kebab).toBeInTheDocument();\r\n\r\n // Document order: trailing precedes the kebab in the header end cluster.\r\n expect(\r\n visualiser.compareDocumentPosition(kebab) & Node.DOCUMENT_POSITION_FOLLOWING\r\n ).toBeTruthy();\r\n });\r\n\r\n test(\"a card with ONLY trailing still renders its header\", () => {\r\n // Regression guard: hasHeader must include hasTrailing, otherwise a\r\n // title-less picker card would drop its action entirely.\r\n render(<MobileRowCard trailing={<button>Choisir</button>} />);\r\n expect(screen.getByRole(\"button\", { name: \"Choisir\" })).toBeInTheDocument();\r\n });\r\n\r\n test(\"a card with ONLY leading still renders its header\", () => {\r\n render(<MobileRowCard leading={<span>star</span>} />);\r\n expect(screen.getByText(\"star\")).toBeInTheDocument();\r\n });\r\n\r\n test(\"no props renders no header and does not throw\", () => {\r\n /* `render` not throwing IS the second half of this assertion. The button\r\n * check uses screen.queryByRole rather than container.querySelector\r\n * (testing-library/no-container + no-node-access), matching the idiom the\r\n * kebab test above already uses. */\r\n render(<MobileRowCard />);\r\n expect(screen.queryByRole(\"button\")).not.toBeInTheDocument();\r\n });\r\n});\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"MobileRowCard.test.js","names":["require","_react","_MobileRowCard","_interopRequireDefault","_jsxRuntime","obj","__esModule","describe","test","render","jsx","title","subtitle","meta","expect","screen","getByText","toBeInTheDocument","undefined","queryByText","not","_render","rerender","toHaveAttribute","children","queryByTitle","kv","label","value","getAllByText","toHaveLength","fallback","chips","_render2","actions","queryByRole","divider","onClick","actionsAriaLabel","getByRole","name","onCardClick","jest","fn","leading","fireEvent","click","toHaveBeenCalledTimes","onAction","trailing","toHaveBeenCalled","onCardKeyDown","onKeyDown","keyDown","key","visualiser","kebab","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","toBeTruthy"],"sources":["../../../src/lib/v2/__tests__/MobileRowCard.test.tsx"],"sourcesContent":["import \"@testing-library/jest-dom\";\r\nimport { render, screen, fireEvent } from \"@testing-library/react\";\r\nimport MobileRowCard from \"../components/MobileRowCard\";\r\n\r\n/**\r\n * MobileRowCard — slot contract tests.\r\n *\r\n * WHY THIS FILE EXISTS\r\n * --------------------\r\n * §10.3 R-G.6 MUST — \"Snapshot Storybook + tests Jest/Testing-Library\" — was\r\n * unmet for THREE props added to this component across successive module\r\n * audits: `kv` and `leading` (ms-dfd-fe Area 5), then `trailing`\r\n * (ms-dfd-fe/ms-ti-fe A5-01). Each was shipped as \"additive, backward\r\n * compatible\", which is true and is not the same thing as verified. This\r\n * component is consumed by ten mobile-card sites across two certified modules,\r\n * so a silent change to any slot's behaviour regresses all of them at once.\r\n *\r\n * The PROPAGATION ASYMMETRY (see below) is the single most important thing\r\n * here. It is deliberate, it is counter-intuitive, and nothing but a test\r\n * stops a future reader from \"tidying\" it into consistency and breaking every\r\n * favourite-star and picker-button site in the fleet.\r\n *\r\n * NOT COVERED — and deliberately so: R-G.3 MUST (light + dark + compact +\r\n * responsive at 320/375/414) is a VISUAL contract. jsdom computes no layout,\r\n * so asserting it here would produce tests that pass while the cards are\r\n * broken on a phone — worse than no coverage, because it would look like\r\n * coverage. R-G.3 needs a browser (Storybook + visual regression) and remains\r\n * open for all three props.\r\n */\r\ndescribe(\"MobileRowCard — slot rendering\", () => {\r\n test(\"renders title, subtitle and meta, omitting lines with no content\", () => {\r\n render(\r\n <MobileRowCard\r\n title=\"2025-IM-0042\"\r\n subtitle=\"SOFRANE SA\"\r\n meta={[\"12/05/2026\", \"3 pièces\"]}\r\n />\r\n );\r\n\r\n expect(screen.getByText(\"2025-IM-0042\")).toBeInTheDocument();\r\n expect(screen.getByText(\"SOFRANE SA\")).toBeInTheDocument();\r\n // meta joins with \" · \" into a single node\r\n expect(screen.getByText(\"12/05/2026 · 3 pièces\")).toBeInTheDocument();\r\n });\r\n\r\n test(\"meta drops null / empty entries rather than rendering stray separators\", () => {\r\n render(<MobileRowCard title=\"X\" meta={[\"Émise 01/01/2026\", null, \"\", undefined]} />);\r\n expect(screen.getByText(\"Émise 01/01/2026\")).toBeInTheDocument();\r\n expect(screen.queryByText(/·/)).not.toBeInTheDocument();\r\n });\r\n\r\n test(\"a string title gets a native tooltip; a node title does not stringify\", () => {\r\n const { rerender } = render(<MobileRowCard title=\"Long reference\" />);\r\n expect(screen.getByText(\"Long reference\")).toHaveAttribute(\"title\", \"Long reference\");\r\n\r\n rerender(<MobileRowCard title={<span>Node title</span>} />);\r\n expect(screen.getByText(\"Node title\")).toBeInTheDocument();\r\n /* The regression guarded here: wrapping a node yielded title=\"[object\r\n * Object]\". Asserted with queryByTitle rather than `.closest(\"[title]\")`\r\n * so it stays a Testing-Library query (testing-library/no-node-access).\r\n * `/./` = \"no element carries ANY non-empty title\", which is a STRONGER\r\n * assertion than the ancestor walk it replaces: MobileRowCard sets a title\r\n * attribute in exactly two places (the title Box and the subtitle Box) and\r\n * only when the value is a string, so with a node title and no subtitle the\r\n * whole tree must be title-less. */\r\n expect(screen.queryByTitle(/./)).not.toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"MobileRowCard — kv slot\", () => {\r\n test(\"renders each pair as a KV label/value unit\", () => {\r\n render(\r\n <MobileRowCard\r\n title=\"ref\"\r\n kv={[\r\n { label: \"Catégorie\", value: \"CONTINGENT\" },\r\n { label: \"Importateur\", value: \"SOFRANE SA\" },\r\n ]}\r\n />\r\n );\r\n\r\n expect(screen.getByText(\"Catégorie\")).toBeInTheDocument();\r\n expect(screen.getByText(\"CONTINGENT\")).toBeInTheDocument();\r\n expect(screen.getByText(\"Importateur\")).toBeInTheDocument();\r\n expect(screen.getByText(\"SOFRANE SA\")).toBeInTheDocument();\r\n });\r\n\r\n test(\"an empty value KEEPS the pair and shows KV's own em-dash placeholder\", () => {\r\n // This is why every consuming site could drop its `?? \\\"-\\\"`: KV owns the\r\n // placeholder. Losing this behaviour would silently reintroduce ten local\r\n // fallbacks across the fleet.\r\n render(\r\n <MobileRowCard\r\n title=\"ref\"\r\n kv={[\r\n { label: \"Bureau douanier\", value: undefined },\r\n { label: \"Marchandise\", value: \"\" },\r\n { label: \"Devise\", value: null },\r\n ]}\r\n />\r\n );\r\n\r\n expect(screen.getByText(\"Bureau douanier\")).toBeInTheDocument();\r\n expect(screen.getByText(\"Marchandise\")).toBeInTheDocument();\r\n expect(screen.getByText(\"Devise\")).toBeInTheDocument();\r\n expect(screen.getAllByText(\"—\")).toHaveLength(3);\r\n });\r\n\r\n test(\"a custom fallback overrides the em dash\", () => {\r\n render(\r\n <MobileRowCard title=\"ref\" kv={[{ label: \"Banque\", fallback: \"Non assignée\" }]} />\r\n );\r\n expect(screen.getByText(\"Non assignée\")).toBeInTheDocument();\r\n });\r\n\r\n test(\"pairs with no label are DROPPED (KV would emit a dangling aria-labelledby)\", () => {\r\n render(\r\n <MobileRowCard\r\n title=\"ref\"\r\n kv={[\r\n { label: \"\", value: \"orphan-empty\" },\r\n // `label` is required but its type (ReactNode) admits undefined, so\r\n // this is type-valid and exercises the runtime `!= null` guard.\r\n { label: undefined, value: \"orphan-missing\" },\r\n { label: \"Kept\", value: \"kept-value\" },\r\n ]}\r\n />\r\n );\r\n\r\n expect(screen.queryByText(\"orphan-empty\")).not.toBeInTheDocument();\r\n expect(screen.queryByText(\"orphan-missing\")).not.toBeInTheDocument();\r\n expect(screen.getByText(\"kept-value\")).toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"MobileRowCard — chips slot\", () => {\r\n test(\"renders chip nodes and filters falsy entries\", () => {\r\n render(\r\n <MobileRowCard\r\n title=\"ref\"\r\n chips={[<span key=\"a\">Approuvé</span>, null, false, <span key=\"b\">CO</span>]}\r\n />\r\n );\r\n expect(screen.getByText(\"Approuvé\")).toBeInTheDocument();\r\n expect(screen.getByText(\"CO\")).toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"MobileRowCard — actions (kebab)\", () => {\r\n test(\"kebab renders only when at least one non-divider action exists\", () => {\r\n const { rerender } = render(<MobileRowCard title=\"ref\" actions={[]} />);\r\n expect(screen.queryByRole(\"button\")).not.toBeInTheDocument();\r\n\r\n rerender(<MobileRowCard title=\"ref\" actions={[{ divider: true }]} />);\r\n expect(screen.queryByRole(\"button\")).not.toBeInTheDocument();\r\n\r\n rerender(\r\n <MobileRowCard\r\n title=\"ref\"\r\n actions={[{ label: \"Détail\", onClick: () => {} }]}\r\n actionsAriaLabel=\"Actions pour 2025-IM-0042\"\r\n />\r\n );\r\n expect(\r\n screen.getByRole(\"button\", { name: \"Actions pour 2025-IM-0042\" })\r\n ).toBeInTheDocument();\r\n });\r\n});\r\n\r\n/**\r\n * THE PROPAGATION CONTRACT — the reason this file matters most.\r\n *\r\n * DataGrid's mobile-card wrapper makes the whole card the click target\r\n * (role=button + onRowClick). Two slots therefore behave DIFFERENTLY on\r\n * purpose:\r\n *\r\n * leading — does NOT stop propagation. A decorative node (icon, avatar)\r\n * should still open the row like the rest of the card. Interactive\r\n * leading content is responsible for stopping propagation itself,\r\n * exactly as DataGrid's own FavoriteCell does. Get this wrong and\r\n * a tap both toggles the favourite star AND opens the drawer.\r\n *\r\n * trailing — DOES stop propagation (it shares the kebab's wrapper). Its\r\n * declared purpose is interactive actions, and a tap that both\r\n * fires the action and opens the row is the more damaging default.\r\n *\r\n * Making these two consistent — in either direction — is a breaking change for\r\n * the ten sites that depend on them.\r\n */\r\ndescribe(\"MobileRowCard — propagation asymmetry (deliberate)\", () => {\r\n test(\"leading does NOT stop click propagation to the card\", () => {\r\n const onCardClick = jest.fn();\r\n render(\r\n <div onClick={onCardClick}>\r\n <MobileRowCard title=\"ref\" leading={<span>star</span>} />\r\n </div>\r\n );\r\n\r\n fireEvent.click(screen.getByText(\"star\"));\r\n expect(onCardClick).toHaveBeenCalledTimes(1);\r\n });\r\n\r\n test(\"trailing DOES stop click propagation to the card\", () => {\r\n const onCardClick = jest.fn();\r\n const onAction = jest.fn();\r\n render(\r\n <div onClick={onCardClick}>\r\n <MobileRowCard\r\n title=\"ref\"\r\n trailing={<button onClick={onAction}>Choisir</button>}\r\n />\r\n </div>\r\n );\r\n\r\n fireEvent.click(screen.getByRole(\"button\", { name: \"Choisir\" }));\r\n expect(onAction).toHaveBeenCalledTimes(1);\r\n expect(onCardClick).not.toHaveBeenCalled();\r\n });\r\n\r\n test(\"trailing stops keydown propagation too (keyboard parity)\", () => {\r\n const onCardKeyDown = jest.fn();\r\n render(\r\n <div onKeyDown={onCardKeyDown}>\r\n <MobileRowCard title=\"ref\" trailing={<button>Choisir</button>} />\r\n </div>\r\n );\r\n\r\n fireEvent.keyDown(screen.getByRole(\"button\", { name: \"Choisir\" }), { key: \"Enter\" });\r\n expect(onCardKeyDown).not.toHaveBeenCalled();\r\n });\r\n\r\n test(\"opening the kebab does not fire the card click\", () => {\r\n const onCardClick = jest.fn();\r\n render(\r\n <div onClick={onCardClick}>\r\n <MobileRowCard title=\"ref\" actions={[{ label: \"Détail\", onClick: () => {} }]} />\r\n </div>\r\n );\r\n\r\n fireEvent.click(screen.getByRole(\"button\", { name: \"Plus d'actions\" }));\r\n expect(onCardClick).not.toHaveBeenCalled();\r\n });\r\n});\r\n\r\ndescribe(\"MobileRowCard — header composition\", () => {\r\n test(\"trailing and the kebab coexist, trailing first\", () => {\r\n render(\r\n <MobileRowCard\r\n title=\"ref\"\r\n trailing={<button>Visualiser</button>}\r\n actions={[{ label: \"Supprimer\", onClick: () => {} }]}\r\n actionsAriaLabel=\"Autres actions\"\r\n />\r\n );\r\n\r\n const visualiser = screen.getByRole(\"button\", { name: \"Visualiser\" });\r\n const kebab = screen.getByRole(\"button\", { name: \"Autres actions\" });\r\n expect(visualiser).toBeInTheDocument();\r\n expect(kebab).toBeInTheDocument();\r\n\r\n // Document order: trailing precedes the kebab in the header end cluster.\r\n expect(\r\n visualiser.compareDocumentPosition(kebab) & Node.DOCUMENT_POSITION_FOLLOWING\r\n ).toBeTruthy();\r\n });\r\n\r\n test(\"a card with ONLY trailing still renders its header\", () => {\r\n // Regression guard: hasHeader must include hasTrailing, otherwise a\r\n // title-less picker card would drop its action entirely.\r\n render(<MobileRowCard trailing={<button>Choisir</button>} />);\r\n expect(screen.getByRole(\"button\", { name: \"Choisir\" })).toBeInTheDocument();\r\n });\r\n\r\n test(\"a card with ONLY leading still renders its header\", () => {\r\n render(<MobileRowCard leading={<span>star</span>} />);\r\n expect(screen.getByText(\"star\")).toBeInTheDocument();\r\n });\r\n\r\n test(\"no props renders no header and does not throw\", () => {\r\n /* `render` not throwing IS the second half of this assertion. The button\r\n * check uses screen.queryByRole rather than container.querySelector\r\n * (testing-library/no-container + no-node-access), matching the idiom the\r\n * kebab test above already uses. */\r\n render(<MobileRowCard />);\r\n expect(screen.queryByRole(\"button\")).not.toBeInTheDocument();\r\n });\r\n});\r\n"],"mappings":"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","ignoreList":[]}
|