@portnet/ui 6.0.0 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/index.js +196 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldError.test.js +160 -0
- package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FileCard.test.js +144 -0
- package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -0
- package/dist/esm/v2/__tests__/MobileRowCard.test.js +333 -0
- package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -0
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +235 -0
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
- package/dist/esm/v2/__tests__/apiError.test.js +181 -0
- package/dist/esm/v2/__tests__/apiError.test.js.map +1 -0
- package/dist/esm/v2/__tests__/banned-patterns.test.js +270 -0
- package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -0
- package/dist/esm/v2/__tests__/contrast-palette.test.js +224 -0
- package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -0
- package/dist/esm/v2/__tests__/cssVariables.test.js +157 -0
- package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -0
- package/dist/esm/v2/__tests__/labels-merge.test.js +147 -0
- package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -0
- package/dist/esm/v2/__tests__/locale-fallback.test.js +109 -0
- package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusTrap.test.js +514 -0
- package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -0
- package/dist/esm/v2/components/Accordion.js +230 -0
- package/dist/esm/v2/components/Accordion.js.map +1 -0
- package/dist/esm/v2/components/ActionStrip.js +146 -0
- package/dist/esm/v2/components/ActionStrip.js.map +1 -0
- package/dist/esm/v2/components/Banner.js +254 -0
- package/dist/esm/v2/components/Banner.js.map +1 -0
- package/dist/esm/v2/components/Busy.js +97 -0
- package/dist/esm/v2/components/Busy.js.map +1 -0
- package/dist/esm/v2/components/Button.js +114 -0
- package/dist/esm/v2/components/Button.js.map +1 -0
- package/dist/esm/v2/components/CategoryTag.js +81 -0
- package/dist/esm/v2/components/CategoryTag.js.map +1 -0
- package/dist/esm/v2/components/Checkbox.js +124 -0
- package/dist/esm/v2/components/Checkbox.js.map +1 -0
- package/dist/esm/v2/components/Chip.js +124 -0
- package/dist/esm/v2/components/Chip.js.map +1 -0
- package/dist/esm/v2/components/Combobox.js +394 -0
- package/dist/esm/v2/components/Combobox.js.map +1 -0
- package/dist/esm/v2/components/CommandPalette.js +660 -0
- package/dist/esm/v2/components/CommandPalette.js.map +1 -0
- package/dist/esm/v2/components/ConfirmDialog.js +144 -0
- package/dist/esm/v2/components/ConfirmDialog.js.map +1 -0
- package/dist/esm/v2/components/DatePicker.js +200 -0
- package/dist/esm/v2/components/DatePicker.js.map +1 -0
- package/dist/esm/v2/components/DateRangePicker.js +289 -0
- package/dist/esm/v2/components/DateRangePicker.js.map +1 -0
- package/dist/esm/v2/components/DateTimePicker.js +182 -0
- package/dist/esm/v2/components/DateTimePicker.js.map +1 -0
- package/dist/esm/v2/components/Drawer.js +333 -0
- package/dist/esm/v2/components/Drawer.js.map +1 -0
- package/dist/esm/v2/components/Dropzone.js +540 -0
- package/dist/esm/v2/components/Dropzone.js.map +1 -0
- package/dist/esm/v2/components/EmptyState.js +102 -0
- package/dist/esm/v2/components/EmptyState.js.map +1 -0
- package/dist/esm/v2/components/FavoriteToggle.js +127 -0
- package/dist/esm/v2/components/FavoriteToggle.js.map +1 -0
- package/dist/esm/v2/components/Field.js +197 -0
- package/dist/esm/v2/components/Field.js.map +1 -0
- package/dist/esm/v2/components/FieldError.js +124 -0
- package/dist/esm/v2/components/FieldError.js.map +1 -0
- package/dist/esm/v2/components/FieldHelp.js +202 -0
- package/dist/esm/v2/components/FieldHelp.js.map +1 -0
- package/dist/esm/v2/components/FileCard.js +162 -0
- package/dist/esm/v2/components/FileCard.js.map +1 -0
- package/dist/esm/v2/components/FilterTab.js +138 -0
- package/dist/esm/v2/components/FilterTab.js.map +1 -0
- package/dist/esm/v2/components/ForbiddenPage.js +74 -0
- package/dist/esm/v2/components/ForbiddenPage.js.map +1 -0
- package/dist/esm/v2/components/FormGrid.js +179 -0
- package/dist/esm/v2/components/FormGrid.js.map +1 -0
- package/dist/esm/v2/components/FormikDisplay.js +118 -0
- package/dist/esm/v2/components/FormikDisplay.js.map +1 -0
- package/dist/esm/v2/components/Input.js +107 -0
- package/dist/esm/v2/components/Input.js.map +1 -0
- package/dist/esm/v2/components/KPICard.js +237 -0
- package/dist/esm/v2/components/KPICard.js.map +1 -0
- package/dist/esm/v2/components/KPIStrip.js +84 -0
- package/dist/esm/v2/components/KPIStrip.js.map +1 -0
- package/dist/esm/v2/components/KV.js +75 -0
- package/dist/esm/v2/components/KV.js.map +1 -0
- package/dist/esm/v2/components/KVGrid.js +74 -0
- package/dist/esm/v2/components/KVGrid.js.map +1 -0
- package/dist/esm/v2/components/Layout.js +284 -0
- package/dist/esm/v2/components/Layout.js.map +1 -0
- package/dist/esm/v2/components/MobileRowCard.js +314 -0
- package/dist/esm/v2/components/MobileRowCard.js.map +1 -0
- package/dist/esm/v2/components/Modal.js +276 -0
- package/dist/esm/v2/components/Modal.js.map +1 -0
- package/dist/esm/v2/components/NetworkErrorPage.js +78 -0
- package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -0
- package/dist/esm/v2/components/NotFoundPage.js +58 -0
- package/dist/esm/v2/components/NotFoundPage.js.map +1 -0
- package/dist/esm/v2/components/NumberInput.js +309 -0
- package/dist/esm/v2/components/NumberInput.js.map +1 -0
- package/dist/esm/v2/components/OverflowMenu.js +184 -0
- package/dist/esm/v2/components/OverflowMenu.js.map +1 -0
- package/dist/esm/v2/components/PdfViewer.js +122 -0
- package/dist/esm/v2/components/PdfViewer.js.map +1 -0
- package/dist/esm/v2/components/ProgressBar.js +202 -0
- package/dist/esm/v2/components/ProgressBar.js.map +1 -0
- package/dist/esm/v2/components/Radio.js +228 -0
- package/dist/esm/v2/components/Radio.js.map +1 -0
- package/dist/esm/v2/components/SectionErrorBoundary.js +214 -0
- package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -0
- package/dist/esm/v2/components/SectionHeader.js +132 -0
- package/dist/esm/v2/components/SectionHeader.js.map +1 -0
- package/dist/esm/v2/components/Segmented.js +254 -0
- package/dist/esm/v2/components/Segmented.js.map +1 -0
- package/dist/esm/v2/components/Select.js +490 -0
- package/dist/esm/v2/components/Select.js.map +1 -0
- package/dist/esm/v2/components/ServerErrorPage.js +74 -0
- package/dist/esm/v2/components/ServerErrorPage.js.map +1 -0
- package/dist/esm/v2/components/Skeleton.js +269 -0
- package/dist/esm/v2/components/Skeleton.js.map +1 -0
- package/dist/esm/v2/components/SkipLink.js +49 -0
- package/dist/esm/v2/components/SkipLink.js.map +1 -0
- package/dist/esm/v2/components/Spinner.js +69 -0
- package/dist/esm/v2/components/Spinner.js.map +1 -0
- package/dist/esm/v2/components/Status.js +64 -0
- package/dist/esm/v2/components/Status.js.map +1 -0
- package/dist/esm/v2/components/Stepper.js +432 -0
- package/dist/esm/v2/components/Stepper.js.map +1 -0
- package/dist/esm/v2/components/Surface.js +159 -0
- package/dist/esm/v2/components/Surface.js.map +1 -0
- package/dist/esm/v2/components/Switch.js +128 -0
- package/dist/esm/v2/components/Switch.js.map +1 -0
- package/dist/esm/v2/components/Tabs.js +150 -0
- package/dist/esm/v2/components/Tabs.js.map +1 -0
- package/dist/esm/v2/components/TelInput.js +274 -0
- package/dist/esm/v2/components/TelInput.js.map +1 -0
- package/dist/esm/v2/components/Textarea.js +72 -0
- package/dist/esm/v2/components/Textarea.js.map +1 -0
- package/dist/esm/v2/components/TimePicker.js +134 -0
- package/dist/esm/v2/components/TimePicker.js.map +1 -0
- package/dist/esm/v2/components/Toast.js +376 -0
- package/dist/esm/v2/components/Toast.js.map +1 -0
- package/dist/esm/v2/components/Tooltip.js +161 -0
- package/dist/esm/v2/components/Tooltip.js.map +1 -0
- package/dist/esm/v2/components/_ErrorPageBody.js +85 -0
- package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -0
- package/dist/esm/v2/components/_pickerShared.js +60 -0
- package/dist/esm/v2/components/_pickerShared.js.map +1 -0
- package/dist/esm/v2/components/index.js +244 -0
- package/dist/esm/v2/components/index.js.map +1 -0
- package/dist/esm/v2/hooks/index.js +10 -0
- package/dist/esm/v2/hooks/index.js.map +1 -0
- package/dist/esm/v2/hooks/useDelayedFlag.js +55 -0
- package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -0
- package/dist/esm/v2/hooks/useDensity.js +119 -0
- package/dist/esm/v2/hooks/useDensity.js.map +1 -0
- package/dist/esm/v2/hooks/useFocusFirstError.js +197 -0
- package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -0
- package/dist/esm/v2/hooks/useFocusTrap.js +202 -0
- package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -0
- package/dist/esm/v2/hooks/useFormAutoSave.js +181 -0
- package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -0
- package/dist/esm/v2/hooks/useFormCompletionProgress.js +131 -0
- package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -0
- package/dist/esm/v2/hooks/useResolvedDensity.js +44 -0
- package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -0
- package/dist/esm/v2/hooks/useSortedRows.js +32 -0
- package/dist/esm/v2/hooks/useSortedRows.js.map +1 -0
- package/dist/esm/v2/hooks/useTabLoading.js +79 -0
- package/dist/esm/v2/hooks/useTabLoading.js.map +1 -0
- package/dist/esm/v2/index.js +121 -0
- package/dist/esm/v2/index.js.map +1 -0
- package/dist/esm/v2/modalContext.js +108 -0
- package/dist/esm/v2/modalContext.js.map +1 -0
- package/dist/esm/v2/models/favorite.js +2 -0
- package/dist/esm/v2/models/favorite.js.map +1 -0
- package/dist/esm/v2/models/index.js +12 -0
- package/dist/esm/v2/models/index.js.map +1 -0
- package/dist/esm/v2/models/personalization.js +2 -0
- package/dist/esm/v2/models/personalization.js.map +1 -0
- package/dist/esm/v2/models/referentiel.js +2 -0
- package/dist/esm/v2/models/referentiel.js.map +1 -0
- package/dist/esm/v2/models/savedFilter.js +2 -0
- package/dist/esm/v2/models/savedFilter.js.map +1 -0
- package/dist/esm/v2/patterns/ActionBar.js +603 -0
- package/dist/esm/v2/patterns/ActionBar.js.map +1 -0
- package/dist/esm/v2/patterns/BulkActionBar.js +147 -0
- package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -0
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js +303 -0
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -0
- package/dist/esm/v2/patterns/ColumnsToggle.js +301 -0
- package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -0
- package/dist/esm/v2/patterns/DataGrid.js +820 -0
- package/dist/esm/v2/patterns/DataGrid.js.map +1 -0
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js +375 -0
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -0
- package/dist/esm/v2/patterns/DataGridToolbar.js +249 -0
- package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -0
- package/dist/esm/v2/patterns/DataGridVirtualized.js +523 -0
- package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -0
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +70 -0
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -0
- package/dist/esm/v2/patterns/FavoriteColumn.js +164 -0
- package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -0
- package/dist/esm/v2/patterns/FavoritesFilter.js +91 -0
- package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -0
- package/dist/esm/v2/patterns/FormErrorSummary.js +101 -0
- package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -0
- package/dist/esm/v2/patterns/FormPageShell.js +126 -0
- package/dist/esm/v2/patterns/FormPageShell.js.map +1 -0
- package/dist/esm/v2/patterns/FormSection.js +190 -0
- package/dist/esm/v2/patterns/FormSection.js.map +1 -0
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js +110 -0
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -0
- package/dist/esm/v2/patterns/FormikCombobox.js +115 -0
- package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -0
- package/dist/esm/v2/patterns/FormikDatePicker.js +196 -0
- package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -0
- package/dist/esm/v2/patterns/FormikErrorFocus.js +77 -0
- package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -0
- package/dist/esm/v2/patterns/FormikFile.js +148 -0
- package/dist/esm/v2/patterns/FormikFile.js.map +1 -0
- package/dist/esm/v2/patterns/FormikInput.js +127 -0
- package/dist/esm/v2/patterns/FormikInput.js.map +1 -0
- package/dist/esm/v2/patterns/FormikReferentielField.js +116 -0
- package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -0
- package/dist/esm/v2/patterns/FormikSelect.js +159 -0
- package/dist/esm/v2/patterns/FormikSelect.js.map +1 -0
- package/dist/esm/v2/patterns/FormikTextarea.js +76 -0
- package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -0
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +195 -0
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -0
- package/dist/esm/v2/patterns/NetworkErrorBanner.js +72 -0
- package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -0
- package/dist/esm/v2/patterns/PageContent.js +62 -0
- package/dist/esm/v2/patterns/PageContent.js.map +1 -0
- package/dist/esm/v2/patterns/ReferentielField.js +615 -0
- package/dist/esm/v2/patterns/ReferentielField.js.map +1 -0
- package/dist/esm/v2/patterns/SaveFilterDialog.js +197 -0
- package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -0
- package/dist/esm/v2/patterns/SavedFiltersMenu.js +406 -0
- package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -0
- package/dist/esm/v2/patterns/SkeletonPageShell.js +342 -0
- package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -0
- package/dist/esm/v2/patterns/SortableHeader.js +179 -0
- package/dist/esm/v2/patterns/SortableHeader.js.map +1 -0
- package/dist/esm/v2/patterns/Tour.js +471 -0
- package/dist/esm/v2/patterns/Tour.js.map +1 -0
- package/dist/esm/v2/patterns/_dataGridShared.js +431 -0
- package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -0
- package/dist/esm/v2/patterns/_sort.js +112 -0
- package/dist/esm/v2/patterns/_sort.js.map +1 -0
- package/dist/esm/v2/patterns/_useColumnReorder.js +257 -0
- package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -0
- package/dist/esm/v2/patterns/_useColumnResize.js +191 -0
- package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -0
- package/dist/esm/v2/patterns/index.js +95 -0
- package/dist/esm/v2/patterns/index.js.map +1 -0
- package/dist/esm/v2/personalization/PersonalizationProvider.js +168 -0
- package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -0
- package/dist/esm/v2/personalization/adapters/_storageKey.js +60 -0
- package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -0
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +124 -0
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -0
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +70 -0
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -0
- package/dist/esm/v2/personalization/adapters/index.js +11 -0
- package/dist/esm/v2/personalization/adapters/index.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/favorites.js +216 -0
- package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/favoritesView.js +111 -0
- package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/index.js +17 -0
- package/dist/esm/v2/personalization/capabilities/index.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/savedFilters.js +291 -0
- package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -0
- package/dist/esm/v2/personalization/createPersonalizationStore.js +472 -0
- package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -0
- package/dist/esm/v2/personalization/index.js +46 -0
- package/dist/esm/v2/personalization/index.js.map +1 -0
- package/dist/esm/v2/personalization/personalizationContext.js +108 -0
- package/dist/esm/v2/personalization/personalizationContext.js.map +1 -0
- package/dist/esm/v2/personalization/schema.js +92 -0
- package/dist/esm/v2/personalization/schema.js.map +1 -0
- package/dist/esm/v2/personalization/types.js +2 -0
- package/dist/esm/v2/personalization/types.js.map +1 -0
- package/dist/esm/v2/referentiel/ReferentielProvider.js +87 -0
- package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -0
- package/dist/esm/v2/referentiel/index.js +15 -0
- package/dist/esm/v2/referentiel/index.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielClient.js +37 -0
- package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielOptions.js +169 -0
- package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielSearch.js +132 -0
- package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -0
- package/dist/esm/v2/styles/base.css +425 -0
- package/dist/esm/v2/styles/css.d.ts +10 -0
- package/dist/esm/v2/styles/index.js +12 -0
- package/dist/esm/v2/styles/index.js.map +1 -0
- package/dist/esm/v2/theme/_brand.js +64 -0
- package/dist/esm/v2/theme/_brand.js.map +1 -0
- package/dist/esm/v2/theme/_brandSecondary.js +60 -0
- package/dist/esm/v2/theme/_brandSecondary.js.map +1 -0
- package/dist/esm/v2/theme/createPortnetTheme.js +548 -0
- package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -0
- package/dist/esm/v2/theme/cssVariables.js +198 -0
- package/dist/esm/v2/theme/cssVariables.js.map +1 -0
- package/dist/esm/v2/theme/index.js +32 -0
- package/dist/esm/v2/theme/index.js.map +1 -0
- package/dist/esm/v2/tokens/breakpoints.js +106 -0
- package/dist/esm/v2/tokens/breakpoints.js.map +1 -0
- package/dist/esm/v2/tokens/colors.js +219 -0
- package/dist/esm/v2/tokens/colors.js.map +1 -0
- package/dist/esm/v2/tokens/density.js +98 -0
- package/dist/esm/v2/tokens/density.js.map +1 -0
- package/dist/esm/v2/tokens/index.js +80 -0
- package/dist/esm/v2/tokens/index.js.map +1 -0
- package/dist/esm/v2/tokens/motion.js +88 -0
- package/dist/esm/v2/tokens/motion.js.map +1 -0
- package/dist/esm/v2/tokens/radius.js +22 -0
- package/dist/esm/v2/tokens/radius.js.map +1 -0
- package/dist/esm/v2/tokens/shadows.js +40 -0
- package/dist/esm/v2/tokens/shadows.js.map +1 -0
- package/dist/esm/v2/tokens/spacing.js +51 -0
- package/dist/esm/v2/tokens/spacing.js.map +1 -0
- package/dist/esm/v2/tokens/state.js +41 -0
- package/dist/esm/v2/tokens/state.js.map +1 -0
- package/dist/esm/v2/tokens/statusPalette.js +66 -0
- package/dist/esm/v2/tokens/statusPalette.js.map +1 -0
- package/dist/esm/v2/tokens/tokens.json +153 -0
- package/dist/esm/v2/tokens/typography.js +149 -0
- package/dist/esm/v2/tokens/typography.js.map +1 -0
- package/dist/esm/v2/tokens/zIndex.js +44 -0
- package/dist/esm/v2/tokens/zIndex.js.map +1 -0
- package/dist/esm/v2/types/common.js +2 -0
- package/dist/esm/v2/types/common.js.map +1 -0
- package/dist/esm/v2/types/datagrid.js +2 -0
- package/dist/esm/v2/types/datagrid.js.map +1 -0
- package/dist/esm/v2/types/index.js +12 -0
- package/dist/esm/v2/types/index.js.map +1 -0
- package/dist/esm/v2/utils/apiError.js +281 -0
- package/dist/esm/v2/utils/apiError.js.map +1 -0
- package/dist/esm/v2/utils/contrast.js +157 -0
- package/dist/esm/v2/utils/contrast.js.map +1 -0
- package/dist/esm/v2/utils/cx.js +38 -0
- package/dist/esm/v2/utils/cx.js.map +1 -0
- package/dist/esm/v2/utils/fileDownload.js +226 -0
- package/dist/esm/v2/utils/fileDownload.js.map +1 -0
- package/dist/esm/v2/utils/fmtMoney.js +78 -0
- package/dist/esm/v2/utils/fmtMoney.js.map +1 -0
- package/dist/esm/v2/utils/index.js +43 -0
- package/dist/esm/v2/utils/index.js.map +1 -0
- package/dist/esm/v2/utils/mergeLabels.js +86 -0
- package/dist/esm/v2/utils/mergeLabels.js.map +1 -0
- package/dist/esm/v2/utils/networkStatus.js +114 -0
- package/dist/esm/v2/utils/networkStatus.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -1
- package/dist/v2/__tests__/FieldError.test.js +164 -0
- package/dist/v2/__tests__/FieldError.test.js.map +1 -0
- package/dist/v2/__tests__/FileCard.test.js +148 -0
- package/dist/v2/__tests__/FileCard.test.js.map +1 -0
- package/dist/v2/__tests__/SectionErrorBoundary.test.js +237 -0
- package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
- package/dist/v2/components/Accordion.d.ts +6 -6
- package/dist/v2/components/Accordion.d.ts.map +1 -1
- package/dist/v2/components/Accordion.js.map +1 -1
- package/dist/v2/components/ActionStrip.d.ts +12 -12
- package/dist/v2/components/ActionStrip.d.ts.map +1 -1
- package/dist/v2/components/ActionStrip.js.map +1 -1
- package/dist/v2/components/Banner.d.ts +48 -9
- package/dist/v2/components/Banner.d.ts.map +1 -1
- package/dist/v2/components/Banner.js +116 -35
- package/dist/v2/components/Banner.js.map +1 -1
- package/dist/v2/components/Busy.d.ts +3 -3
- package/dist/v2/components/Busy.d.ts.map +1 -1
- package/dist/v2/components/Busy.js.map +1 -1
- package/dist/v2/components/Button.d.ts +6 -6
- package/dist/v2/components/Button.d.ts.map +1 -1
- package/dist/v2/components/Button.js.map +1 -1
- package/dist/v2/components/CategoryTag.d.ts +3 -3
- package/dist/v2/components/CategoryTag.d.ts.map +1 -1
- package/dist/v2/components/CategoryTag.js.map +1 -1
- package/dist/v2/components/Checkbox.d.ts +11 -11
- package/dist/v2/components/Checkbox.d.ts.map +1 -1
- package/dist/v2/components/Checkbox.js.map +1 -1
- package/dist/v2/components/Chip.d.ts +8 -8
- package/dist/v2/components/Chip.d.ts.map +1 -1
- package/dist/v2/components/Chip.js +2 -1
- package/dist/v2/components/Chip.js.map +1 -1
- package/dist/v2/components/Combobox.d.ts +27 -27
- package/dist/v2/components/Combobox.d.ts.map +1 -1
- package/dist/v2/components/Combobox.js +3 -2
- package/dist/v2/components/Combobox.js.map +1 -1
- package/dist/v2/components/CommandPalette.d.ts +20 -20
- package/dist/v2/components/CommandPalette.d.ts.map +1 -1
- package/dist/v2/components/CommandPalette.js +2 -6
- package/dist/v2/components/CommandPalette.js.map +1 -1
- package/dist/v2/components/ConfirmDialog.d.ts +13 -13
- package/dist/v2/components/ConfirmDialog.d.ts.map +1 -1
- package/dist/v2/components/ConfirmDialog.js +2 -1
- package/dist/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/v2/components/DatePicker.d.ts +11 -11
- package/dist/v2/components/DatePicker.d.ts.map +1 -1
- package/dist/v2/components/DatePicker.js.map +1 -1
- package/dist/v2/components/DateRangePicker.d.ts +16 -16
- package/dist/v2/components/DateRangePicker.d.ts.map +1 -1
- package/dist/v2/components/DateRangePicker.js +2 -1
- package/dist/v2/components/DateRangePicker.js.map +1 -1
- package/dist/v2/components/DateTimePicker.d.ts +11 -11
- package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
- package/dist/v2/components/DateTimePicker.js.map +1 -1
- package/dist/v2/components/Drawer.d.ts +18 -18
- package/dist/v2/components/Drawer.d.ts.map +1 -1
- package/dist/v2/components/Drawer.js +2 -1
- package/dist/v2/components/Drawer.js.map +1 -1
- package/dist/v2/components/Dropzone.d.ts +34 -34
- package/dist/v2/components/Dropzone.d.ts.map +1 -1
- package/dist/v2/components/Dropzone.js +11 -3
- package/dist/v2/components/Dropzone.js.map +1 -1
- package/dist/v2/components/EmptyState.d.ts +7 -7
- package/dist/v2/components/EmptyState.d.ts.map +1 -1
- package/dist/v2/components/EmptyState.js.map +1 -1
- package/dist/v2/components/FavoriteToggle.d.ts +7 -7
- package/dist/v2/components/FavoriteToggle.d.ts.map +1 -1
- package/dist/v2/components/FavoriteToggle.js +2 -1
- package/dist/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/v2/components/Field.d.ts +17 -12
- package/dist/v2/components/Field.d.ts.map +1 -1
- package/dist/v2/components/Field.js +25 -7
- package/dist/v2/components/Field.js.map +1 -1
- package/dist/v2/components/FieldError.d.ts +78 -0
- package/dist/v2/components/FieldError.d.ts.map +1 -0
- package/dist/v2/components/FieldError.js +131 -0
- package/dist/v2/components/FieldError.js.map +1 -0
- package/dist/v2/components/FieldHelp.d.ts +7 -7
- package/dist/v2/components/FieldHelp.d.ts.map +1 -1
- package/dist/v2/components/FieldHelp.js.map +1 -1
- package/dist/v2/components/FileCard.d.ts +75 -0
- package/dist/v2/components/FileCard.d.ts.map +1 -0
- package/dist/v2/components/FileCard.js +169 -0
- package/dist/v2/components/FileCard.js.map +1 -0
- package/dist/v2/components/FilterTab.d.ts +9 -9
- package/dist/v2/components/FilterTab.d.ts.map +1 -1
- package/dist/v2/components/FilterTab.js +2 -1
- package/dist/v2/components/FilterTab.js.map +1 -1
- package/dist/v2/components/FormGrid.d.ts +9 -4
- package/dist/v2/components/FormGrid.d.ts.map +1 -1
- package/dist/v2/components/FormGrid.js +11 -1
- package/dist/v2/components/FormGrid.js.map +1 -1
- package/dist/v2/components/FormikDisplay.d.ts +6 -6
- package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
- package/dist/v2/components/FormikDisplay.js.map +1 -1
- package/dist/v2/components/Input.d.ts +6 -6
- package/dist/v2/components/Input.d.ts.map +1 -1
- package/dist/v2/components/Input.js.map +1 -1
- package/dist/v2/components/KPICard.d.ts +43 -13
- package/dist/v2/components/KPICard.d.ts.map +1 -1
- package/dist/v2/components/KPICard.js +53 -14
- package/dist/v2/components/KPICard.js.map +1 -1
- package/dist/v2/components/KPIStrip.d.ts +68 -0
- package/dist/v2/components/KPIStrip.d.ts.map +1 -0
- package/dist/v2/components/KPIStrip.js +92 -0
- package/dist/v2/components/KPIStrip.js.map +1 -0
- package/dist/v2/components/KV.d.ts +3 -3
- package/dist/v2/components/KV.d.ts.map +1 -1
- package/dist/v2/components/KV.js.map +1 -1
- package/dist/v2/components/KVGrid.d.ts +2 -2
- package/dist/v2/components/KVGrid.d.ts.map +1 -1
- package/dist/v2/components/KVGrid.js +8 -1
- package/dist/v2/components/KVGrid.js.map +1 -1
- package/dist/v2/components/Layout.d.ts +7 -7
- package/dist/v2/components/Layout.d.ts.map +1 -1
- package/dist/v2/components/Layout.js.map +1 -1
- package/dist/v2/components/MobileRowCard.d.ts +13 -13
- package/dist/v2/components/MobileRowCard.d.ts.map +1 -1
- package/dist/v2/components/MobileRowCard.js.map +1 -1
- package/dist/v2/components/Modal.d.ts +12 -12
- package/dist/v2/components/Modal.d.ts.map +1 -1
- package/dist/v2/components/Modal.js.map +1 -1
- package/dist/v2/components/NetworkErrorPage.d.ts +1 -1
- package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
- package/dist/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/v2/components/NumberInput.d.ts +14 -14
- package/dist/v2/components/NumberInput.d.ts.map +1 -1
- package/dist/v2/components/NumberInput.js +7 -6
- package/dist/v2/components/NumberInput.js.map +1 -1
- package/dist/v2/components/OverflowMenu.d.ts +14 -14
- package/dist/v2/components/OverflowMenu.d.ts.map +1 -1
- package/dist/v2/components/OverflowMenu.js +4 -8
- package/dist/v2/components/OverflowMenu.js.map +1 -1
- package/dist/v2/components/PdfViewer.d.ts +9 -9
- package/dist/v2/components/PdfViewer.d.ts.map +1 -1
- package/dist/v2/components/PdfViewer.js.map +1 -1
- package/dist/v2/components/ProgressBar.d.ts +10 -10
- package/dist/v2/components/ProgressBar.d.ts.map +1 -1
- package/dist/v2/components/ProgressBar.js.map +1 -1
- package/dist/v2/components/Radio.d.ts +7 -7
- package/dist/v2/components/Radio.d.ts.map +1 -1
- package/dist/v2/components/Radio.js.map +1 -1
- package/dist/v2/components/SectionErrorBoundary.d.ts +89 -0
- package/dist/v2/components/SectionErrorBoundary.d.ts.map +1 -0
- package/dist/v2/components/SectionErrorBoundary.js +221 -0
- package/dist/v2/components/SectionErrorBoundary.js.map +1 -0
- package/dist/v2/components/SectionHeader.d.ts +5 -5
- package/dist/v2/components/SectionHeader.d.ts.map +1 -1
- package/dist/v2/components/SectionHeader.js.map +1 -1
- package/dist/v2/components/Segmented.d.ts +11 -11
- package/dist/v2/components/Segmented.d.ts.map +1 -1
- package/dist/v2/components/Segmented.js.map +1 -1
- package/dist/v2/components/Select.d.ts +33 -15
- package/dist/v2/components/Select.d.ts.map +1 -1
- package/dist/v2/components/Select.js +147 -30
- package/dist/v2/components/Select.js.map +1 -1
- package/dist/v2/components/ServerErrorPage.d.ts +1 -1
- package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
- package/dist/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/v2/components/Skeleton.d.ts +15 -15
- package/dist/v2/components/Skeleton.d.ts.map +1 -1
- package/dist/v2/components/Skeleton.js.map +1 -1
- package/dist/v2/components/SkipLink.d.ts +2 -2
- package/dist/v2/components/SkipLink.d.ts.map +1 -1
- package/dist/v2/components/SkipLink.js.map +1 -1
- package/dist/v2/components/Status.d.ts +3 -3
- package/dist/v2/components/Status.d.ts.map +1 -1
- package/dist/v2/components/Status.js.map +1 -1
- package/dist/v2/components/Stepper.d.ts +28 -22
- package/dist/v2/components/Stepper.d.ts.map +1 -1
- package/dist/v2/components/Stepper.js +31 -5
- package/dist/v2/components/Stepper.js.map +1 -1
- package/dist/v2/components/Surface.d.ts +94 -0
- package/dist/v2/components/Surface.d.ts.map +1 -0
- package/dist/v2/components/Surface.js +163 -0
- package/dist/v2/components/Surface.js.map +1 -0
- package/dist/v2/components/Switch.d.ts +4 -4
- package/dist/v2/components/Switch.d.ts.map +1 -1
- package/dist/v2/components/Switch.js.map +1 -1
- package/dist/v2/components/Tabs.d.ts +6 -6
- package/dist/v2/components/Tabs.d.ts.map +1 -1
- package/dist/v2/components/Tabs.js.map +1 -1
- package/dist/v2/components/TelInput.d.ts +8 -8
- package/dist/v2/components/TelInput.d.ts.map +1 -1
- package/dist/v2/components/TelInput.js +18 -18
- package/dist/v2/components/TelInput.js.map +1 -1
- package/dist/v2/components/Textarea.d.ts +1 -1
- package/dist/v2/components/Textarea.d.ts.map +1 -1
- package/dist/v2/components/Textarea.js.map +1 -1
- package/dist/v2/components/TimePicker.d.ts +11 -11
- package/dist/v2/components/TimePicker.d.ts.map +1 -1
- package/dist/v2/components/TimePicker.js.map +1 -1
- package/dist/v2/components/Toast.d.ts +6 -6
- package/dist/v2/components/Toast.d.ts.map +1 -1
- package/dist/v2/components/Toast.js +9 -8
- package/dist/v2/components/Toast.js.map +1 -1
- package/dist/v2/components/Tooltip.d.ts +1 -1
- package/dist/v2/components/Tooltip.d.ts.map +1 -1
- package/dist/v2/components/Tooltip.js.map +1 -1
- package/dist/v2/components/index.d.ts +143 -0
- package/dist/v2/components/index.d.ts.map +1 -1
- package/dist/v2/components/index.js +35 -0
- package/dist/v2/components/index.js.map +1 -1
- package/dist/v2/models/favorite.d.ts +1 -1
- package/dist/v2/models/favorite.d.ts.map +1 -1
- package/dist/v2/models/favorite.js.map +1 -1
- package/dist/v2/models/personalization.d.ts +13 -13
- package/dist/v2/models/personalization.d.ts.map +1 -1
- package/dist/v2/models/personalization.js.map +1 -1
- package/dist/v2/models/referentiel.d.ts +11 -11
- package/dist/v2/models/referentiel.d.ts.map +1 -1
- package/dist/v2/models/referentiel.js.map +1 -1
- package/dist/v2/models/savedFilter.d.ts +8 -8
- package/dist/v2/models/savedFilter.d.ts.map +1 -1
- package/dist/v2/models/savedFilter.js.map +1 -1
- package/dist/v2/patterns/ActionBar.d.ts +33 -33
- package/dist/v2/patterns/ActionBar.d.ts.map +1 -1
- package/dist/v2/patterns/ActionBar.js +2 -1
- package/dist/v2/patterns/ActionBar.js.map +1 -1
- package/dist/v2/patterns/BulkActionBar.d.ts +12 -12
- package/dist/v2/patterns/BulkActionBar.d.ts.map +1 -1
- package/dist/v2/patterns/BulkActionBar.js +2 -1
- package/dist/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/v2/patterns/CollapsibleDataGrid.d.ts +15 -15
- package/dist/v2/patterns/CollapsibleDataGrid.d.ts.map +1 -1
- package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/v2/patterns/ColumnsToggle.d.ts +7 -7
- package/dist/v2/patterns/ColumnsToggle.d.ts.map +1 -1
- package/dist/v2/patterns/ColumnsToggle.js +4 -8
- package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -12
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.js +9 -8
- package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/v2/patterns/DataGridToolbar.d.ts +40 -40
- package/dist/v2/patterns/DataGridToolbar.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridToolbar.js +2 -1
- package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/v2/patterns/DataGridVirtualized.d.ts +27 -27
- package/dist/v2/patterns/DataGridVirtualized.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts +5 -5
- package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts.map +1 -1
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/v2/patterns/FavoriteColumn.d.ts +6 -6
- package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
- package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/v2/patterns/FavoritesFilter.d.ts +10 -10
- package/dist/v2/patterns/FavoritesFilter.d.ts.map +1 -1
- package/dist/v2/patterns/FavoritesFilter.js +2 -1
- package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/v2/patterns/FormErrorSummary.d.ts +4 -4
- package/dist/v2/patterns/FormErrorSummary.d.ts.map +1 -1
- package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/v2/patterns/FormPageShell.d.ts +4 -4
- package/dist/v2/patterns/FormPageShell.d.ts.map +1 -1
- package/dist/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/v2/patterns/FormSection.d.ts +19 -8
- package/dist/v2/patterns/FormSection.d.ts.map +1 -1
- package/dist/v2/patterns/FormSection.js +106 -71
- package/dist/v2/patterns/FormSection.js.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts +6 -6
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/v2/patterns/FormikCombobox.d.ts +11 -11
- package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.d.ts +36 -8
- package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.js +27 -1
- package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/v2/patterns/FormikErrorFocus.d.ts +3 -3
- package/dist/v2/patterns/FormikErrorFocus.d.ts.map +1 -1
- package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/v2/patterns/FormikFile.d.ts +8 -8
- package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
- package/dist/v2/patterns/FormikFile.js.map +1 -1
- package/dist/v2/patterns/FormikInput.d.ts +41 -6
- package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
- package/dist/v2/patterns/FormikInput.js +49 -1
- package/dist/v2/patterns/FormikInput.js.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.d.ts +8 -8
- package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/v2/patterns/FormikSelect.d.ts +33 -12
- package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
- package/dist/v2/patterns/FormikSelect.js +28 -2
- package/dist/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/v2/patterns/FormikTextarea.d.ts +5 -5
- package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
- package/dist/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +7 -7
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.js +2 -6
- package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/v2/patterns/NetworkErrorBanner.d.ts +4 -4
- package/dist/v2/patterns/NetworkErrorBanner.d.ts.map +1 -1
- package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/v2/patterns/PageContent.d.ts +3 -3
- package/dist/v2/patterns/PageContent.d.ts.map +1 -1
- package/dist/v2/patterns/PageContent.js.map +1 -1
- package/dist/v2/patterns/ReferentielField.d.ts +49 -49
- package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/ReferentielField.js +2 -1
- package/dist/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/v2/patterns/SaveFilterDialog.d.ts +10 -10
- package/dist/v2/patterns/SaveFilterDialog.d.ts.map +1 -1
- package/dist/v2/patterns/SaveFilterDialog.js +9 -8
- package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/v2/patterns/SavedFiltersMenu.d.ts +7 -7
- package/dist/v2/patterns/SavedFiltersMenu.d.ts.map +1 -1
- package/dist/v2/patterns/SavedFiltersMenu.js +9 -8
- package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/v2/patterns/SkeletonPageShell.d.ts +7 -7
- package/dist/v2/patterns/SkeletonPageShell.d.ts.map +1 -1
- package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/v2/patterns/SortableHeader.d.ts +1 -1
- package/dist/v2/patterns/SortableHeader.d.ts.map +1 -1
- package/dist/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/v2/patterns/Tour.d.ts +12 -12
- package/dist/v2/patterns/Tour.d.ts.map +1 -1
- package/dist/v2/patterns/Tour.js +9 -8
- package/dist/v2/patterns/Tour.js.map +1 -1
- package/dist/v2/patterns/_dataGridShared.d.ts +25 -6
- package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
- package/dist/v2/patterns/_dataGridShared.js +37 -3
- package/dist/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/v2/patterns/_useColumnReorder.d.ts +1 -1
- package/dist/v2/patterns/_useColumnReorder.d.ts.map +1 -1
- package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/v2/patterns/_useColumnResize.d.ts +1 -1
- package/dist/v2/patterns/_useColumnResize.d.ts.map +1 -1
- package/dist/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/v2/patterns/index.d.ts +27 -0
- package/dist/v2/patterns/index.d.ts.map +1 -1
- package/dist/v2/patterns/index.js.map +1 -1
- package/dist/v2/personalization/PersonalizationProvider.d.ts +9 -9
- package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
- package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts.map +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts.map +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/v2/personalization/capabilities/favoritesView.d.ts +3 -3
- package/dist/v2/personalization/capabilities/favoritesView.d.ts.map +1 -1
- package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/v2/personalization/capabilities/savedFilters.d.ts +3 -3
- package/dist/v2/personalization/capabilities/savedFilters.d.ts.map +1 -1
- package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.d.ts +8 -8
- package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/v2/personalization/schema.d.ts +2 -2
- package/dist/v2/personalization/schema.d.ts.map +1 -1
- package/dist/v2/personalization/schema.js.map +1 -1
- package/dist/v2/personalization/types.d.ts +19 -19
- package/dist/v2/personalization/types.d.ts.map +1 -1
- package/dist/v2/personalization/types.js.map +1 -1
- package/dist/v2/referentiel/ReferentielProvider.d.ts +4 -4
- package/dist/v2/referentiel/ReferentielProvider.d.ts.map +1 -1
- package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.d.ts +4 -4
- package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.d.ts +3 -3
- package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/v2/theme/createPortnetTheme.d.ts +32 -7
- package/dist/v2/theme/createPortnetTheme.d.ts.map +1 -1
- package/dist/v2/theme/createPortnetTheme.js +25 -1
- package/dist/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/v2/types/datagrid.d.ts +59 -59
- package/dist/v2/types/datagrid.d.ts.map +1 -1
- package/dist/v2/types/datagrid.js.map +1 -1
- package/dist/v2/utils/apiError.d.ts +65 -4
- package/dist/v2/utils/apiError.d.ts.map +1 -1
- package/dist/v2/utils/apiError.js +69 -6
- package/dist/v2/utils/apiError.js.map +1 -1
- package/dist/v2/utils/index.d.ts +1 -0
- package/dist/v2/utils/index.d.ts.map +1 -1
- package/dist/v2/utils/index.js +7 -0
- package/dist/v2/utils/index.js.map +1 -1
- package/dist/v2/utils/mergeLabels.d.ts +59 -0
- package/dist/v2/utils/mergeLabels.d.ts.map +1 -0
- package/dist/v2/utils/mergeLabels.js +93 -0
- package/dist/v2/utils/mergeLabels.js.map +1 -0
- package/package.json +23 -15
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { SxProps, Theme } from "@mui/material/styles";
|
|
3
|
+
/**
|
|
4
|
+
* FileCard — Portnet UI v2
|
|
5
|
+
*
|
|
6
|
+
* A single attached document, as a row: leading icon, filename, optional meta
|
|
7
|
+
* line, action cluster on the trailing edge.
|
|
8
|
+
*
|
|
9
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
10
|
+
* WHY THIS BELONGS IN THE LIBRARY (capability gap G-12)
|
|
11
|
+
*
|
|
12
|
+
* The library shipped `Dropzone` — the UPLOAD affordance — and nothing for the
|
|
13
|
+
* state right after it: the file, once attached, being displayed. So every
|
|
14
|
+
* screen that shows an attachment rebuilt the same row. In addpe-fe it exists
|
|
15
|
+
* THREE times, in three files, written by hand each time:
|
|
16
|
+
*
|
|
17
|
+
* - Attachment (uploaded state) padding --s-3 --s-4
|
|
18
|
+
* - AutorisationPreviewDrawer (tab) padding --s-4
|
|
19
|
+
* - AutorisationDetail (tab) padding --s-4 --s-5
|
|
20
|
+
*
|
|
21
|
+
* Read that padding column: three values for ONE concept. Nobody decided that —
|
|
22
|
+
* it is what happens when a recipe is retyped from memory three times, and it is
|
|
23
|
+
* exactly what Charter R-2.1 forbids (« un même concept = un même composant +
|
|
24
|
+
* un même libellé partout »). This component standardises on the compact
|
|
25
|
+
* `Surface` padding; the divergence was accidental, not intentional.
|
|
26
|
+
*
|
|
27
|
+
* The ellipsis logic is the other reason to own this. A filename is
|
|
28
|
+
* user-supplied, arbitrarily long, and must truncate without pushing the action
|
|
29
|
+
* buttons off the card — which needs `minWidth: 0` on the right ancestors and
|
|
30
|
+
* `flexShrink: 0` on the wrong ones. Two of the three local copies had it; the
|
|
31
|
+
* third relied on its container being wide enough.
|
|
32
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
33
|
+
*
|
|
34
|
+
* <FileCard
|
|
35
|
+
* name={doc.documentName || "Document.pdf"}
|
|
36
|
+
* meta="248,50 Ko"
|
|
37
|
+
* actions={
|
|
38
|
+
* <Button variant="secondary" size="sm" icon={<CloudDownload />} onClick={dl}>
|
|
39
|
+
* Télécharger
|
|
40
|
+
* </Button>
|
|
41
|
+
* }
|
|
42
|
+
* />
|
|
43
|
+
*
|
|
44
|
+
* Presentational by design: no href, no fetching, no delete confirmation. Hosts
|
|
45
|
+
* own those (a blob URL, an API call, a `ConfirmDialog`) and pass the resulting
|
|
46
|
+
* buttons through `actions`.
|
|
47
|
+
*
|
|
48
|
+
* `name` is REQUIRED and typed `string`, deliberately. A filename fallback
|
|
49
|
+
* ("Document.pdf") is French copy and a business decision about what an unnamed
|
|
50
|
+
* attachment is called — that belongs to the host, not to the design system, and
|
|
51
|
+
* defaulting it here would silently hide a missing backend field. The `string`
|
|
52
|
+
* type also lets the component set `title={name}` so the full filename stays
|
|
53
|
+
* reachable on hover once it is ellipsized.
|
|
54
|
+
*/
|
|
55
|
+
export interface FileCardProps {
|
|
56
|
+
/** Filename. Ellipsized when it overflows; mirrored into `title`. */
|
|
57
|
+
name: string;
|
|
58
|
+
/**
|
|
59
|
+
* Secondary line — size, date, content type. Rendered with tabular numerals
|
|
60
|
+
* so a column of file sizes aligns (R-T.3).
|
|
61
|
+
*/
|
|
62
|
+
meta?: React.ReactNode | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Leading icon. Defaults to a generic document glyph; pass a specific one when
|
|
65
|
+
* the card's primary action is what identifies it (a download cloud, say).
|
|
66
|
+
* Rendered `aria-hidden` — the filename is the accessible name (R-Ar.2).
|
|
67
|
+
*/
|
|
68
|
+
icon?: React.ReactNode | undefined;
|
|
69
|
+
/** Trailing action cluster. Pass `Button`s; the card does not invent any. */
|
|
70
|
+
actions?: React.ReactNode | undefined;
|
|
71
|
+
sx?: SxProps<Theme> | undefined;
|
|
72
|
+
}
|
|
73
|
+
declare function FileCard({ name, meta, icon, actions, sx }: FileCardProps): React.JSX.Element;
|
|
74
|
+
export default FileCard;
|
|
75
|
+
//# sourceMappingURL=FileCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileCard.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/FileCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAI3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC;;;;OAIG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACtC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;CACjC;AAED,iBAAS,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,aAAa,qBAsGjE;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
9
|
+
var _InsertDriveFileOutlined = _interopRequireDefault(require("@mui/icons-material/InsertDriveFileOutlined"));
|
|
10
|
+
var _Surface = _interopRequireDefault(require("./Surface"));
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
+
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; }
|
|
15
|
+
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); }
|
|
16
|
+
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; }
|
|
17
|
+
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; }
|
|
18
|
+
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; }
|
|
19
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
20
|
+
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); } /**
|
|
21
|
+
* FileCard — Portnet UI v2
|
|
22
|
+
*
|
|
23
|
+
* A single attached document, as a row: leading icon, filename, optional meta
|
|
24
|
+
* line, action cluster on the trailing edge.
|
|
25
|
+
*
|
|
26
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
27
|
+
* WHY THIS BELONGS IN THE LIBRARY (capability gap G-12)
|
|
28
|
+
*
|
|
29
|
+
* The library shipped `Dropzone` — the UPLOAD affordance — and nothing for the
|
|
30
|
+
* state right after it: the file, once attached, being displayed. So every
|
|
31
|
+
* screen that shows an attachment rebuilt the same row. In addpe-fe it exists
|
|
32
|
+
* THREE times, in three files, written by hand each time:
|
|
33
|
+
*
|
|
34
|
+
* - Attachment (uploaded state) padding --s-3 --s-4
|
|
35
|
+
* - AutorisationPreviewDrawer (tab) padding --s-4
|
|
36
|
+
* - AutorisationDetail (tab) padding --s-4 --s-5
|
|
37
|
+
*
|
|
38
|
+
* Read that padding column: three values for ONE concept. Nobody decided that —
|
|
39
|
+
* it is what happens when a recipe is retyped from memory three times, and it is
|
|
40
|
+
* exactly what Charter R-2.1 forbids (« un même concept = un même composant +
|
|
41
|
+
* un même libellé partout »). This component standardises on the compact
|
|
42
|
+
* `Surface` padding; the divergence was accidental, not intentional.
|
|
43
|
+
*
|
|
44
|
+
* The ellipsis logic is the other reason to own this. A filename is
|
|
45
|
+
* user-supplied, arbitrarily long, and must truncate without pushing the action
|
|
46
|
+
* buttons off the card — which needs `minWidth: 0` on the right ancestors and
|
|
47
|
+
* `flexShrink: 0` on the wrong ones. Two of the three local copies had it; the
|
|
48
|
+
* third relied on its container being wide enough.
|
|
49
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
50
|
+
*
|
|
51
|
+
* <FileCard
|
|
52
|
+
* name={doc.documentName || "Document.pdf"}
|
|
53
|
+
* meta="248,50 Ko"
|
|
54
|
+
* actions={
|
|
55
|
+
* <Button variant="secondary" size="sm" icon={<CloudDownload />} onClick={dl}>
|
|
56
|
+
* Télécharger
|
|
57
|
+
* </Button>
|
|
58
|
+
* }
|
|
59
|
+
* />
|
|
60
|
+
*
|
|
61
|
+
* Presentational by design: no href, no fetching, no delete confirmation. Hosts
|
|
62
|
+
* own those (a blob URL, an API call, a `ConfirmDialog`) and pass the resulting
|
|
63
|
+
* buttons through `actions`.
|
|
64
|
+
*
|
|
65
|
+
* `name` is REQUIRED and typed `string`, deliberately. A filename fallback
|
|
66
|
+
* ("Document.pdf") is French copy and a business decision about what an unnamed
|
|
67
|
+
* attachment is called — that belongs to the host, not to the design system, and
|
|
68
|
+
* defaulting it here would silently hide a missing backend field. The `string`
|
|
69
|
+
* type also lets the component set `title={name}` so the full filename stays
|
|
70
|
+
* reachable on hover once it is ellipsized.
|
|
71
|
+
*/
|
|
72
|
+
function FileCard(_ref) {
|
|
73
|
+
var name = _ref.name,
|
|
74
|
+
meta = _ref.meta,
|
|
75
|
+
icon = _ref.icon,
|
|
76
|
+
actions = _ref.actions,
|
|
77
|
+
sx = _ref.sx;
|
|
78
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Surface["default"], _objectSpread(_objectSpread({
|
|
79
|
+
tone: "subtle",
|
|
80
|
+
radius: "md",
|
|
81
|
+
padding: "compact"
|
|
82
|
+
}, sx !== undefined ? {
|
|
83
|
+
sx: sx
|
|
84
|
+
} : {}), {}, {
|
|
85
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], {
|
|
86
|
+
sx: {
|
|
87
|
+
display: "flex",
|
|
88
|
+
alignItems: "center",
|
|
89
|
+
justifyContent: "space-between",
|
|
90
|
+
gap: "var(--s-3)"
|
|
91
|
+
},
|
|
92
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], {
|
|
93
|
+
sx: {
|
|
94
|
+
display: "flex",
|
|
95
|
+
alignItems: "center",
|
|
96
|
+
gap: "var(--s-3)",
|
|
97
|
+
minWidth: 0,
|
|
98
|
+
flex: 1
|
|
99
|
+
},
|
|
100
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
|
|
101
|
+
component: "span",
|
|
102
|
+
"aria-hidden": "true"
|
|
103
|
+
/* Test hook. The icon wrapper carries no role and no accessible
|
|
104
|
+
* name — by design — so there is no semantic query that can reach
|
|
105
|
+
* it, and the repo's eslint config rightly forbids container
|
|
106
|
+
* queries and direct node access in tests. A stable testid is the
|
|
107
|
+
* sanctioned escape hatch, and the contract it guards (R-Ar.2: a
|
|
108
|
+
* decorative glyph must NOT be announced) is worth a hook. */,
|
|
109
|
+
"data-testid": "filecard-icon",
|
|
110
|
+
sx: {
|
|
111
|
+
display: "inline-flex",
|
|
112
|
+
flexShrink: 0,
|
|
113
|
+
color: "var(--accent)",
|
|
114
|
+
// --text-display is the 26px token; the glyph sits at the optical
|
|
115
|
+
// scale the three local copies had converged on.
|
|
116
|
+
"& > *": {
|
|
117
|
+
fontSize: "var(--text-display)"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
children: icon !== null && icon !== void 0 ? icon : /*#__PURE__*/(0, _jsxRuntime.jsx)(_InsertDriveFileOutlined["default"], {})
|
|
121
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], {
|
|
122
|
+
sx: {
|
|
123
|
+
minWidth: 0
|
|
124
|
+
},
|
|
125
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
|
|
126
|
+
title: name,
|
|
127
|
+
sx: {
|
|
128
|
+
fontSize: "var(--text-sm)",
|
|
129
|
+
fontWeight: "var(--fw-semibold)",
|
|
130
|
+
color: "var(--fg)",
|
|
131
|
+
whiteSpace: "nowrap",
|
|
132
|
+
overflow: "hidden",
|
|
133
|
+
textOverflow: "ellipsis"
|
|
134
|
+
},
|
|
135
|
+
children: name
|
|
136
|
+
}), meta != null && meta !== "" && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"]
|
|
137
|
+
/* Test hook — same rationale as filecard-icon. The contract is
|
|
138
|
+
* that this line is ABSENT rather than empty: a blank second
|
|
139
|
+
* line reads as missing data and changes the row height, which
|
|
140
|
+
* breaks the alignment of a list of files. "Absent, not empty"
|
|
141
|
+
* cannot be expressed by a text query. */, {
|
|
142
|
+
"data-testid": "filecard-meta",
|
|
143
|
+
sx: {
|
|
144
|
+
fontSize: "var(--text-xs)",
|
|
145
|
+
color: "var(--fg-subtle)",
|
|
146
|
+
// R-T.3 — tabular numerals on any numeric run.
|
|
147
|
+
fontVariantNumeric: "tabular-nums"
|
|
148
|
+
},
|
|
149
|
+
children: meta
|
|
150
|
+
})]
|
|
151
|
+
})]
|
|
152
|
+
}), actions != null &&
|
|
153
|
+
/*#__PURE__*/
|
|
154
|
+
/* `flexShrink: 0` — the buttons keep their intrinsic width; it is the
|
|
155
|
+
filename that yields. The inverse produced squashed labels. */
|
|
156
|
+
(0, _jsxRuntime.jsx)(_Box["default"], {
|
|
157
|
+
sx: {
|
|
158
|
+
display: "flex",
|
|
159
|
+
alignItems: "center",
|
|
160
|
+
gap: "var(--s-2)",
|
|
161
|
+
flexShrink: 0
|
|
162
|
+
},
|
|
163
|
+
children: actions
|
|
164
|
+
})]
|
|
165
|
+
})
|
|
166
|
+
}));
|
|
167
|
+
}
|
|
168
|
+
var _default = exports["default"] = FileCard;
|
|
169
|
+
//# sourceMappingURL=FileCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileCard.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_InsertDriveFileOutlined","_Surface","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","FileCard","_ref","name","meta","icon","actions","sx","jsx","tone","radius","padding","children","jsxs","display","alignItems","justifyContent","gap","minWidth","flex","component","flexShrink","color","fontSize","title","fontWeight","whiteSpace","overflow","textOverflow","fontVariantNumeric","_default","exports"],"sources":["../../../src/lib/v2/components/FileCard.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport InsertDriveFileIcon from \"@mui/icons-material/InsertDriveFileOutlined\";\r\nimport Surface from \"./Surface\";\r\n\r\n/**\r\n * FileCard — Portnet UI v2\r\n *\r\n * A single attached document, as a row: leading icon, filename, optional meta\r\n * line, action cluster on the trailing edge.\r\n *\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n * WHY THIS BELONGS IN THE LIBRARY (capability gap G-12)\r\n *\r\n * The library shipped `Dropzone` — the UPLOAD affordance — and nothing for the\r\n * state right after it: the file, once attached, being displayed. So every\r\n * screen that shows an attachment rebuilt the same row. In addpe-fe it exists\r\n * THREE times, in three files, written by hand each time:\r\n *\r\n * - Attachment (uploaded state) padding --s-3 --s-4\r\n * - AutorisationPreviewDrawer (tab) padding --s-4\r\n * - AutorisationDetail (tab) padding --s-4 --s-5\r\n *\r\n * Read that padding column: three values for ONE concept. Nobody decided that —\r\n * it is what happens when a recipe is retyped from memory three times, and it is\r\n * exactly what Charter R-2.1 forbids (« un même concept = un même composant +\r\n * un même libellé partout »). This component standardises on the compact\r\n * `Surface` padding; the divergence was accidental, not intentional.\r\n *\r\n * The ellipsis logic is the other reason to own this. A filename is\r\n * user-supplied, arbitrarily long, and must truncate without pushing the action\r\n * buttons off the card — which needs `minWidth: 0` on the right ancestors and\r\n * `flexShrink: 0` on the wrong ones. Two of the three local copies had it; the\r\n * third relied on its container being wide enough.\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n *\r\n * <FileCard\r\n * name={doc.documentName || \"Document.pdf\"}\r\n * meta=\"248,50 Ko\"\r\n * actions={\r\n * <Button variant=\"secondary\" size=\"sm\" icon={<CloudDownload />} onClick={dl}>\r\n * Télécharger\r\n * </Button>\r\n * }\r\n * />\r\n *\r\n * Presentational by design: no href, no fetching, no delete confirmation. Hosts\r\n * own those (a blob URL, an API call, a `ConfirmDialog`) and pass the resulting\r\n * buttons through `actions`.\r\n *\r\n * `name` is REQUIRED and typed `string`, deliberately. A filename fallback\r\n * (\"Document.pdf\") is French copy and a business decision about what an unnamed\r\n * attachment is called — that belongs to the host, not to the design system, and\r\n * defaulting it here would silently hide a missing backend field. The `string`\r\n * type also lets the component set `title={name}` so the full filename stays\r\n * reachable on hover once it is ellipsized.\r\n */\r\n\r\nexport interface FileCardProps {\r\n /** Filename. Ellipsized when it overflows; mirrored into `title`. */\r\n name: string;\r\n /**\r\n * Secondary line — size, date, content type. Rendered with tabular numerals\r\n * so a column of file sizes aligns (R-T.3).\r\n */\r\n meta?: React.ReactNode | undefined;\r\n /**\r\n * Leading icon. Defaults to a generic document glyph; pass a specific one when\r\n * the card's primary action is what identifies it (a download cloud, say).\r\n * Rendered `aria-hidden` — the filename is the accessible name (R-Ar.2).\r\n */\r\n icon?: React.ReactNode | undefined;\r\n /** Trailing action cluster. Pass `Button`s; the card does not invent any. */\r\n actions?: React.ReactNode | undefined;\r\n sx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nfunction FileCard({ name, meta, icon, actions, sx }: FileCardProps) {\r\n return (\r\n <Surface\r\n tone=\"subtle\"\r\n radius=\"md\"\r\n padding=\"compact\"\r\n {...(sx !== undefined ? { sx } : {})}\r\n >\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-3)\",\r\n }}\r\n >\r\n {/* Identity block. `minWidth: 0` is load-bearing: without it a flex item\r\n refuses to shrink below its content width and the filename pushes the\r\n action cluster out of the card instead of truncating. */}\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-3)\",\r\n minWidth: 0,\r\n flex: 1,\r\n }}\r\n >\r\n <Box\r\n component=\"span\"\r\n aria-hidden=\"true\"\r\n /* Test hook. The icon wrapper carries no role and no accessible\r\n * name — by design — so there is no semantic query that can reach\r\n * it, and the repo's eslint config rightly forbids container\r\n * queries and direct node access in tests. A stable testid is the\r\n * sanctioned escape hatch, and the contract it guards (R-Ar.2: a\r\n * decorative glyph must NOT be announced) is worth a hook. */\r\n data-testid=\"filecard-icon\"\r\n sx={{\r\n display: \"inline-flex\",\r\n flexShrink: 0,\r\n color: \"var(--accent)\",\r\n // --text-display is the 26px token; the glyph sits at the optical\r\n // scale the three local copies had converged on.\r\n \"& > *\": { fontSize: \"var(--text-display)\" },\r\n }}\r\n >\r\n {icon ?? <InsertDriveFileIcon />}\r\n </Box>\r\n\r\n <Box sx={{ minWidth: 0 }}>\r\n <Box\r\n title={name}\r\n sx={{\r\n fontSize: \"var(--text-sm)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg)\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n }}\r\n >\r\n {name}\r\n </Box>\r\n {meta != null && meta !== \"\" && (\r\n <Box\r\n /* Test hook — same rationale as filecard-icon. The contract is\r\n * that this line is ABSENT rather than empty: a blank second\r\n * line reads as missing data and changes the row height, which\r\n * breaks the alignment of a list of files. \"Absent, not empty\"\r\n * cannot be expressed by a text query. */\r\n data-testid=\"filecard-meta\"\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n // R-T.3 — tabular numerals on any numeric run.\r\n fontVariantNumeric: \"tabular-nums\",\r\n }}\r\n >\r\n {meta}\r\n </Box>\r\n )}\r\n </Box>\r\n </Box>\r\n\r\n {actions != null && (\r\n /* `flexShrink: 0` — the buttons keep their intrinsic width; it is the\r\n filename that yields. The inverse produced squashed labels. */\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-2)\",\r\n flexShrink: 0,\r\n }}\r\n >\r\n {actions}\r\n </Box>\r\n )}\r\n </Box>\r\n </Surface>\r\n );\r\n}\r\n\r\nexport default FileCard;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,18 +17,18 @@ import * as React from "react";
|
|
|
17
17
|
*/
|
|
18
18
|
export type FilterTabVariant = "neutral" | "new" | "sent" | "pending" | "approved" | "rejected";
|
|
19
19
|
export interface FilterTabLabels {
|
|
20
|
-
countLabel?: (n: number) => string;
|
|
21
|
-
shortcutHint?: (s: string) => string;
|
|
20
|
+
countLabel?: ((n: number) => string) | undefined;
|
|
21
|
+
shortcutHint?: ((s: string) => string) | undefined;
|
|
22
22
|
}
|
|
23
23
|
export interface FilterTabProps {
|
|
24
|
-
active?: boolean;
|
|
25
|
-
count?: number;
|
|
24
|
+
active?: boolean | undefined;
|
|
25
|
+
count?: number | undefined;
|
|
26
26
|
/** neutral | new | sent | pending | approved | rejected */
|
|
27
|
-
variant?: FilterTabVariant;
|
|
28
|
-
onClick?: React.MouseEventHandler<HTMLButtonElement
|
|
29
|
-
shortcut?: string;
|
|
30
|
-
labels?: FilterTabLabels;
|
|
31
|
-
children?: React.ReactNode;
|
|
27
|
+
variant?: FilterTabVariant | undefined;
|
|
28
|
+
onClick?: React.MouseEventHandler<HTMLButtonElement> | undefined;
|
|
29
|
+
shortcut?: string | undefined;
|
|
30
|
+
labels?: FilterTabLabels | undefined;
|
|
31
|
+
children?: React.ReactNode | undefined;
|
|
32
32
|
}
|
|
33
33
|
declare function FilterTab({ active, count, variant, onClick, shortcut, labels, children, }: FilterTabProps): React.JSX.Element;
|
|
34
34
|
export default FilterTab;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterTab.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/FilterTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"FilterTab.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/FilterTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,KAAK,GACL,MAAM,GACN,SAAS,GACT,UAAU,GACV,UAAU,CAAC;AAwBf,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IACjD,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;CACpD;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,2DAA2D;IAC3D,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACvC,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;CACxC;AAED,iBAAS,SAAS,CAAC,EACjB,MAAc,EACd,KAAK,EACL,OAAmB,EACnB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAQ,GACT,EAAE,cAAc,qBAuEhB;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports["default"] = void 0;
|
|
7
7
|
var React = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
9
|
+
var _mergeLabels = require("../utils/mergeLabels");
|
|
9
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
11
12
|
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); }
|
|
@@ -79,7 +80,7 @@ function FilterTab(_ref) {
|
|
|
79
80
|
labels = _ref.labels,
|
|
80
81
|
children = _ref.children;
|
|
81
82
|
var palette = PALETTES[variant] || PALETTES.neutral;
|
|
82
|
-
var L =
|
|
83
|
+
var L = (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, labels);
|
|
83
84
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], {
|
|
84
85
|
component: "button",
|
|
85
86
|
type: "button",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterTab.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","PALETTES","neutral","activeBg","activeFg","sent","pending","approved","rejected","DEFAULT_LABELS","freeze","countLabel","n","concat","shortcutHint","s","FilterTab","_ref","_ref$active","active","count","_ref$variant","variant","onClick","shortcut","labels","children","palette","L","jsxs","component","type","title","sx","display","alignItems","gap","padding","borderRadius","border","background","color","fontSize","fontWeight","cursor","fontFamily","transition","outline","outlineOffset","jsx","minWidth","lineHeight","textAlign","_default","exports"],"sources":["../../../src/lib/v2/components/FilterTab.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\n\r\n/**\r\n * FilterTab - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"FilterTabs\". Pills used to quickly filter a list\r\n * by status, with an active-state count and pop animation on update.\r\n *\r\n * <FilterTab active={filter === \"all\"} count={42} onClick={() => setFilter(\"all\")}>\r\n * Tous\r\n * </FilterTab>\r\n *\r\n * Localisation (FR / EN / AR):\r\n * <FilterTab labels={{\r\n * countLabel: (n) => `${n} items`,\r\n * shortcutHint: (s) => `Shortcut: ${s}`,\r\n * }} ... />\r\n */\r\n\r\nexport type FilterTabVariant =\r\n | \"neutral\"\r\n | \"new\"\r\n | \"sent\"\r\n | \"pending\"\r\n | \"approved\"\r\n | \"rejected\";\r\n\r\ninterface PaletteEntry {\r\n activeBg: string;\r\n activeFg: string;\r\n}\r\n\r\n// Module-scoped to avoid Temporal Dead Zone when an invalid `variant` is\r\n// passed: a local-const initialiser referencing palette.neutral before\r\n// palette finished initialising would throw ReferenceError.\r\nconst PALETTES: Record<FilterTabVariant, PaletteEntry> = {\r\n neutral: { activeBg: \"var(--accent-soft)\", activeFg: \"var(--accent)\" },\r\n new: { activeBg: \"var(--status-new-soft)\", activeFg: \"var(--status-new-fg)\" },\r\n sent: { activeBg: \"var(--status-sent-soft)\", activeFg: \"var(--status-sent-fg)\" },\r\n pending: { activeBg: \"var(--status-pending-soft)\", activeFg: \"var(--status-pending-fg)\" },\r\n approved: { activeBg: \"var(--status-approved-soft)\", activeFg: \"var(--status-approved-fg)\" },\r\n rejected: { activeBg: \"var(--status-rejected-soft)\", activeFg: \"var(--status-rejected-fg)\" },\r\n};\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n countLabel: (n: number): string => `${n} éléments`,\r\n shortcutHint: (s: string): string => `Raccourci : ${s}`,\r\n});\r\n\r\nexport interface FilterTabLabels {\r\n countLabel?: (n: number) => string;\r\n shortcutHint?: (s: string) => string;\r\n}\r\n\r\nexport interface FilterTabProps {\r\n active?: boolean;\r\n count?: number;\r\n /** neutral | new | sent | pending | approved | rejected */\r\n variant?: FilterTabVariant;\r\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\r\n shortcut?: string;\r\n labels?: FilterTabLabels;\r\n children?: React.ReactNode;\r\n}\r\n\r\nfunction FilterTab({\r\n active = false,\r\n count,\r\n variant = \"neutral\",\r\n onClick,\r\n shortcut,\r\n labels,\r\n children,\r\n}: FilterTabProps) {\r\n const palette = PALETTES[variant] || PALETTES.neutral;\r\n const L = labels ? { ...DEFAULT_LABELS, ...labels } : DEFAULT_LABELS;\r\n\r\n return (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n aria-pressed={active}\r\n onClick={onClick}\r\n title={shortcut ? L.shortcutHint(shortcut) : undefined}\r\n sx={{\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-2)\",\r\n // Compact pill: 5/12 px in literal terms, expressed against\r\n // the spacing scale so any future rescale propagates.\r\n padding: \"calc(var(--s-1) + 1px) var(--s-3)\",\r\n borderRadius: \"var(--r-full)\",\r\n border: `1px solid ${active ? \"var(--accent)\" : \"var(--border)\"}`,\r\n background: active ? palette.activeBg : \"var(--surface)\",\r\n color: active ? palette.activeFg : \"var(--fg-muted)\",\r\n fontSize: \"var(--text-xs)\",\r\n // Was 650 (banned) / 500. var(--fw-semibold) is the canonical\r\n // emphasised weight; var(--fw-medium) the resting one.\r\n fontWeight: active ? \"var(--fw-semibold)\" : \"var(--fw-medium)\",\r\n cursor: \"pointer\",\r\n fontFamily: \"inherit\",\r\n transition:\r\n \"background var(--duration-fast, 120ms) ease, \" +\r\n \"color var(--duration-fast, 120ms) ease, \" +\r\n \"border-color var(--duration-fast, 120ms) ease\",\r\n // R-F.1 - focus-visible required, charter §05. The previous\r\n // implementation had NO focus style; keyboard users got no\r\n // feedback when tabbing through filter chips.\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n \"&:hover\": {\r\n ...(!active ? { background: \"var(--bg-hover)\" } : {}),\r\n },\r\n }}\r\n >\r\n <span>{children}</span>\r\n {count != null && (\r\n <Box\r\n component=\"span\"\r\n aria-label={L.countLabel(count)}\r\n sx={{\r\n display: \"inline-block\",\r\n minWidth: 16,\r\n padding: \"0 var(--s-1)\",\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-bold)\",\r\n // Active keeps the accent emphasis (unchanged). Inactive now\r\n // takes the variant palette (soft bg + status fg) so status\r\n // counts stay colour-coded instead of greying out; neutral\r\n // resolves to accent-soft / accent.\r\n background: active ? \"var(--accent)\" : palette.activeBg,\r\n color: active ? \"var(--accent-fg)\" : palette.activeFg,\r\n borderRadius: \"var(--r-full)\",\r\n lineHeight: \"var(--lh-snug)\",\r\n textAlign: \"center\",\r\n }}\r\n >\r\n {count}\r\n </Box>\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default FilterTab;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FilterTab.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_mergeLabels","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","PALETTES","neutral","activeBg","activeFg","sent","pending","approved","rejected","DEFAULT_LABELS","freeze","countLabel","n","concat","shortcutHint","s","FilterTab","_ref","_ref$active","active","count","_ref$variant","variant","onClick","shortcut","labels","children","palette","L","mergeLabels","jsxs","component","type","title","sx","display","alignItems","gap","padding","borderRadius","border","background","color","fontSize","fontWeight","cursor","fontFamily","transition","outline","outlineOffset","jsx","minWidth","lineHeight","textAlign","_default","exports"],"sources":["../../../src/lib/v2/components/FilterTab.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * FilterTab - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"FilterTabs\". Pills used to quickly filter a list\r\n * by status, with an active-state count and pop animation on update.\r\n *\r\n * <FilterTab active={filter === \"all\"} count={42} onClick={() => setFilter(\"all\")}>\r\n * Tous\r\n * </FilterTab>\r\n *\r\n * Localisation (FR / EN / AR):\r\n * <FilterTab labels={{\r\n * countLabel: (n) => `${n} items`,\r\n * shortcutHint: (s) => `Shortcut: ${s}`,\r\n * }} ... />\r\n */\r\n\r\nexport type FilterTabVariant =\r\n | \"neutral\"\r\n | \"new\"\r\n | \"sent\"\r\n | \"pending\"\r\n | \"approved\"\r\n | \"rejected\";\r\n\r\ninterface PaletteEntry {\r\n activeBg: string;\r\n activeFg: string;\r\n}\r\n\r\n// Module-scoped to avoid Temporal Dead Zone when an invalid `variant` is\r\n// passed: a local-const initialiser referencing palette.neutral before\r\n// palette finished initialising would throw ReferenceError.\r\nconst PALETTES: Record<FilterTabVariant, PaletteEntry> = {\r\n neutral: { activeBg: \"var(--accent-soft)\", activeFg: \"var(--accent)\" },\r\n new: { activeBg: \"var(--status-new-soft)\", activeFg: \"var(--status-new-fg)\" },\r\n sent: { activeBg: \"var(--status-sent-soft)\", activeFg: \"var(--status-sent-fg)\" },\r\n pending: { activeBg: \"var(--status-pending-soft)\", activeFg: \"var(--status-pending-fg)\" },\r\n approved: { activeBg: \"var(--status-approved-soft)\", activeFg: \"var(--status-approved-fg)\" },\r\n rejected: { activeBg: \"var(--status-rejected-soft)\", activeFg: \"var(--status-rejected-fg)\" },\r\n};\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n countLabel: (n: number): string => `${n} éléments`,\r\n shortcutHint: (s: string): string => `Raccourci : ${s}`,\r\n});\r\n\r\nexport interface FilterTabLabels {\r\n countLabel?: ((n: number) => string) | undefined;\r\n shortcutHint?: ((s: string) => string) | undefined;\r\n}\r\n\r\nexport interface FilterTabProps {\r\n active?: boolean | undefined;\r\n count?: number | undefined;\r\n /** neutral | new | sent | pending | approved | rejected */\r\n variant?: FilterTabVariant | undefined;\r\n onClick?: React.MouseEventHandler<HTMLButtonElement> | undefined;\r\n shortcut?: string | undefined;\r\n labels?: FilterTabLabels | undefined;\r\n children?: React.ReactNode | undefined;\r\n}\r\n\r\nfunction FilterTab({\r\n active = false,\r\n count,\r\n variant = \"neutral\",\r\n onClick,\r\n shortcut,\r\n labels,\r\n children,\r\n}: FilterTabProps) {\r\n const palette = PALETTES[variant] || PALETTES.neutral;\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n\r\n return (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n aria-pressed={active}\r\n onClick={onClick}\r\n title={shortcut ? L.shortcutHint(shortcut) : undefined}\r\n sx={{\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-2)\",\r\n // Compact pill: 5/12 px in literal terms, expressed against\r\n // the spacing scale so any future rescale propagates.\r\n padding: \"calc(var(--s-1) + 1px) var(--s-3)\",\r\n borderRadius: \"var(--r-full)\",\r\n border: `1px solid ${active ? \"var(--accent)\" : \"var(--border)\"}`,\r\n background: active ? palette.activeBg : \"var(--surface)\",\r\n color: active ? palette.activeFg : \"var(--fg-muted)\",\r\n fontSize: \"var(--text-xs)\",\r\n // Was 650 (banned) / 500. var(--fw-semibold) is the canonical\r\n // emphasised weight; var(--fw-medium) the resting one.\r\n fontWeight: active ? \"var(--fw-semibold)\" : \"var(--fw-medium)\",\r\n cursor: \"pointer\",\r\n fontFamily: \"inherit\",\r\n transition:\r\n \"background var(--duration-fast, 120ms) ease, \" +\r\n \"color var(--duration-fast, 120ms) ease, \" +\r\n \"border-color var(--duration-fast, 120ms) ease\",\r\n // R-F.1 - focus-visible required, charter §05. The previous\r\n // implementation had NO focus style; keyboard users got no\r\n // feedback when tabbing through filter chips.\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n \"&:hover\": {\r\n ...(!active ? { background: \"var(--bg-hover)\" } : {}),\r\n },\r\n }}\r\n >\r\n <span>{children}</span>\r\n {count != null && (\r\n <Box\r\n component=\"span\"\r\n aria-label={L.countLabel(count)}\r\n sx={{\r\n display: \"inline-block\",\r\n minWidth: 16,\r\n padding: \"0 var(--s-1)\",\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-bold)\",\r\n // Active keeps the accent emphasis (unchanged). Inactive now\r\n // takes the variant palette (soft bg + status fg) so status\r\n // counts stay colour-coded instead of greying out; neutral\r\n // resolves to accent-soft / accent.\r\n background: active ? \"var(--accent)\" : palette.activeBg,\r\n color: active ? \"var(--accent-fg)\" : palette.activeFg,\r\n borderRadius: \"var(--r-full)\",\r\n lineHeight: \"var(--lh-snug)\",\r\n textAlign: \"center\",\r\n }}\r\n >\r\n {count}\r\n </Box>\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default FilterTab;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -50,10 +50,15 @@ export interface FormGridProps extends Omit<BoxProps, "gap"> {
|
|
|
50
50
|
* 4 → 1col xs / 2col sm / 4col md (champs courts)
|
|
51
51
|
* Mutually exclusive avec minColumnWidth.
|
|
52
52
|
*/
|
|
53
|
-
columns?: number;
|
|
53
|
+
columns?: number | undefined;
|
|
54
54
|
/** Auto-fill adaptatif — tracks d'au moins N px de large. */
|
|
55
|
-
minColumnWidth?: number;
|
|
56
|
-
|
|
55
|
+
minColumnWidth?: number | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* Gap de la grille. Défaut `var(--s-4)` — la charte §2.3 assigne
|
|
58
|
+
* explicitement `-s-4` (16px) à « Gap formulaire (default) », `-s-3` (12px)
|
|
59
|
+
* étant réservé au « Padding cards compact ». Gap G-13.
|
|
60
|
+
*/
|
|
61
|
+
gap?: string | number | undefined;
|
|
57
62
|
}
|
|
58
63
|
declare function FormGrid({ children, columns, minColumnWidth, gap, sx, ...rest }: FormGridProps): React.JSX.Element;
|
|
59
64
|
export type FormGridFullProps = BoxProps;
|
|
@@ -65,7 +70,7 @@ export interface FormGridItemProps extends BoxProps {
|
|
|
65
70
|
* sm → toujours span 1 (grille 2-col tablette).
|
|
66
71
|
* Default : 1.
|
|
67
72
|
*/
|
|
68
|
-
span?: number;
|
|
73
|
+
span?: number | undefined;
|
|
69
74
|
}
|
|
70
75
|
declare function FormGridItem({ span, children, sx, ...rest }: FormGridItemProps): React.JSX.Element;
|
|
71
76
|
declare const FormGridWithStatics: typeof FormGrid & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormGrid.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/FormGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;IAC1D;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"FormGrid.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/FormGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;IAC1D;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,iBAAS,QAAQ,CAAC,EAChB,QAAQ,EACR,OAAO,EACP,cAAc,EACd,GAAG,EACH,EAAE,EACF,GAAG,IAAI,EACR,EAAE,aAAa,qBA+Df;AAMD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAEzC,iBAAS,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,iBAAiB,qBAMjE;AAUD,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,iBAAS,YAAY,CAAC,EAAE,IAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,iBAAiB,qBAiB3E;AAED,QAAA,MAAM,mBAAmB;;;CAGvB,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
|
|
@@ -112,7 +112,17 @@ function FormGrid(_ref) {
|
|
|
112
112
|
sx: _objectSpread({
|
|
113
113
|
display: "grid",
|
|
114
114
|
gridTemplateColumns: gridTemplateColumns,
|
|
115
|
-
|
|
115
|
+
/* Charter §2.3 — `-s-4` (16px) EST le « Gap formulaire (default) » ; le
|
|
116
|
+
* défaut précédent était `-s-3` (12px), que la même table réserve au
|
|
117
|
+
* « Padding cards compact ». Le composant canonique de grille de
|
|
118
|
+
* formulaire contredisait donc la valeur par défaut de la charte, et
|
|
119
|
+
* chaque module compensait en passant `gap` à la main. Changement
|
|
120
|
+
* VISUEL fleet-wide 12→16px sur toute grille sans `gap` explicite —
|
|
121
|
+
* même classe de correction que le 15→16px des titres FormSection.
|
|
122
|
+
*
|
|
123
|
+
* `??` et non `||` : `gap={0}` est une valeur légitime que `||`
|
|
124
|
+
* écrasait silencieusement par le défaut. */
|
|
125
|
+
gap: gap !== null && gap !== void 0 ? gap : "var(--s-4)",
|
|
116
126
|
alignItems: "start"
|
|
117
127
|
}, sx)
|
|
118
128
|
}, rest), {}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormGrid.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_jsxRuntime","_excluded","_excluded2","_excluded3","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","FormGrid","_ref","children","columns","minColumnWidth","gap","sx","rest","gridTemplateColumns","useMemo","xs","sm","concat","cols","md","jsx","display","alignItems","FormGridFull","_ref2","gridColumn","minWidth","FormGridItem","_ref3","_ref3$span","span","FormGridWithStatics","assign","Item","Full","_default","exports"],"sources":["../../../src/lib/v2/components/FormGrid.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { BoxProps } from \"@mui/material/Box\";\r\n\r\n/**\r\n * FormGrid — Portnet UI v2\r\n *\r\n * Charter §03 R-3.2 — canonical RESPONSIVE form grid.\r\n *\r\n * ── Breakpoint strategy (aligné addpe-fe) ───────────────────────────\r\n *\r\n * Les clés xs/sm/md ci-dessous résolvent contre l'échelle de tokens\r\n * Portnet câblée dans le thème MUI (Batch 1), PAS les défauts MUI :\r\n *\r\n * xs (<481px) : 1 colonne — mobile, chaque champ pleine largeur\r\n * sm (481-767px) : 2 colonnes — tablette / grand mobile (transition douce)\r\n * md (≥768px) : N colonnes — desktop (layout cible)\r\n *\r\n * Source: addpe-fe/AutorisationForm.js\r\n * gridTemplateColumns: { xs: \"1fr\", sm: \"1fr 1fr\", md: \"repeat(3, 1fr)\" }\r\n *\r\n * ── Presets ─────────────────────────────────────────────────────────\r\n *\r\n * columns={1} → toujours 1 col (textarea, notes, upload)\r\n * columns={2} → 1col xs / 2col sm+ (formulaires courts)\r\n * columns={3} → 1col xs / 2col sm / 3col md (DEFAULT FormSection)\r\n * columns={4} → 1col xs / 2col sm / 4col md (champs courts : codes, dates)\r\n * minColumnWidth={N} → auto-fill adaptatif, 1col xs\r\n *\r\n * ── Sous-composants ─────────────────────────────────────────────────\r\n *\r\n * <FormGrid.Full> → span toutes colonnes (textarea, tables)\r\n * <FormGrid.Item span> → span explicite (sm+), full-width xs\r\n *\r\n * ── Exemple ─────────────────────────────────────────────────────────\r\n *\r\n * <FormGrid columns={3}>\r\n * <FormikInput name=\"nom\" label=\"Nom\" />\r\n * <FormikInput name=\"prenom\" label=\"Prénom\" />\r\n * <FormikInput name=\"code\" label=\"Code\" />\r\n * <FormGrid.Full>\r\n * <FormikTextarea name=\"obs\" label=\"Observations\" />\r\n * </FormGrid.Full>\r\n * </FormGrid>\r\n */\r\nexport interface FormGridProps extends Omit<BoxProps, \"gap\"> {\r\n /**\r\n * Nombre de colonnes égales.\r\n * 1 → pleine largeur (notes, textarea)\r\n * 2 → 2 cols sm+\r\n * 3 → DEFAULT FormSection : 1col xs / 2col sm / 3col md\r\n * 4 → 1col xs / 2col sm / 4col md (champs courts)\r\n * Mutually exclusive avec minColumnWidth.\r\n */\r\n columns?: number;\r\n /** Auto-fill adaptatif — tracks d'au moins N px de large. */\r\n minColumnWidth?: number;\r\n gap?: string | number;\r\n}\r\n\r\nfunction FormGrid({\r\n children,\r\n columns,\r\n minColumnWidth,\r\n gap,\r\n sx,\r\n ...rest\r\n}: FormGridProps) {\r\n const gridTemplateColumns = React.useMemo(() => {\r\n /* Auto-fill adaptatif — minColumnWidth prime sur columns.\r\n * min(${minColumnWidth}px, 100%) borne la largeur mini de chaque\r\n * piste à celle du conteneur : au-dessus de sm, une piste ne peut\r\n * jamais dépasser le conteneur (pas de débordement / Reflow 1.4.10). */\r\n if (minColumnWidth) {\r\n return {\r\n xs: \"1fr\",\r\n sm: `repeat(auto-fill, minmax(min(${minColumnWidth}px, 100%), 1fr))`,\r\n };\r\n }\r\n\r\n const cols = typeof columns === \"number\" && columns > 0 ? columns : 3;\r\n\r\n /* Colonne unique — textarea, notes, upload : toujours pleine largeur */\r\n if (cols === 1) return \"1fr\";\r\n\r\n /* 2 colonnes — dès tablette (sm), pas d'échelon md nécessaire */\r\n if (cols === 2) {\r\n return { xs: \"1fr\", sm: \"repeat(2, minmax(0, 1fr))\" };\r\n }\r\n\r\n /*\r\n * 3+ colonnes — 3 échelons :\r\n * xs : 1 col (mobile)\r\n * sm : 2 cols (tablette — transition douce, évite les champs trop étroits)\r\n * md : N cols (desktop — layout cible)\r\n *\r\n * Identique au pattern addpe-fe :\r\n * { xs:\"1fr\", sm:\"1fr 1fr\", md:\"repeat(3, 1fr)\" }\r\n */\r\n return {\r\n xs: \"1fr\",\r\n sm: \"repeat(2, minmax(0, 1fr))\",\r\n md: `repeat(${cols}, minmax(0, 1fr))`,\r\n };\r\n }, [columns, minColumnWidth]);\r\n\r\n return (\r\n <Box\r\n sx={{\r\n display: \"grid\",\r\n gridTemplateColumns,\r\n gap: gap || \"var(--s-3)\",\r\n alignItems: \"start\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n}\r\n\r\n/* ── FormGrid.Full ────────────────────────────────────────────────────\r\n * Span toutes les colonnes à tous les breakpoints.\r\n * Usage : textareas, file uploads, sub-tables, notes.\r\n */\r\nexport type FormGridFullProps = BoxProps;\r\n\r\nfunction FormGridFull({ children, sx, ...rest }: FormGridFullProps) {\r\n return (\r\n <Box sx={{ gridColumn: \"1 / -1\", minWidth: 0, ...sx }} {...rest}>\r\n {children}\r\n </Box>\r\n );\r\n}\r\n\r\n/* ── FormGrid.Item ────────────────────────────────────────────────────\r\n * Span explicite par breakpoint.\r\n * xs → toujours pleine largeur (1 / -1)\r\n * sm → span 1 (une cellule dans la grille 2-col tablette)\r\n * md → span explicite (grille N-col desktop)\r\n *\r\n * Usage : Description (span=2 sur desktop, full-width mobile/tablette)\r\n */\r\nexport interface FormGridItemProps extends BoxProps {\r\n /**\r\n * Colonnes à couvrir sur md+ (desktop).\r\n * xs → toujours 1/-1 (pleine largeur).\r\n * sm → toujours span 1 (grille 2-col tablette).\r\n * Default : 1.\r\n */\r\n span?: number;\r\n}\r\n\r\nfunction FormGridItem({ span = 1, children, sx, ...rest }: FormGridItemProps) {\r\n return (\r\n <Box\r\n sx={{\r\n gridColumn: {\r\n xs: \"1 / -1\", /* mobile : toujours pleine largeur */\r\n sm: \"span 1\", /* tablette (2-col) : 1 cellule */\r\n md: `span ${span}`, /* desktop (N-col) : span explicite */\r\n },\r\n minWidth: 0,\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n}\r\n\r\nconst FormGridWithStatics = Object.assign(FormGrid, {\r\n Item: FormGridItem,\r\n Full: FormGridFull,\r\n});\r\n\r\nexport default FormGridWithStatics;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FormGrid.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_jsxRuntime","_excluded","_excluded2","_excluded3","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","FormGrid","_ref","children","columns","minColumnWidth","gap","sx","rest","gridTemplateColumns","useMemo","xs","sm","concat","cols","md","jsx","display","alignItems","FormGridFull","_ref2","gridColumn","minWidth","FormGridItem","_ref3","_ref3$span","span","FormGridWithStatics","assign","Item","Full","_default","exports"],"sources":["../../../src/lib/v2/components/FormGrid.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { BoxProps } from \"@mui/material/Box\";\r\n\r\n/**\r\n * FormGrid — Portnet UI v2\r\n *\r\n * Charter §03 R-3.2 — canonical RESPONSIVE form grid.\r\n *\r\n * ── Breakpoint strategy (aligné addpe-fe) ───────────────────────────\r\n *\r\n * Les clés xs/sm/md ci-dessous résolvent contre l'échelle de tokens\r\n * Portnet câblée dans le thème MUI (Batch 1), PAS les défauts MUI :\r\n *\r\n * xs (<481px) : 1 colonne — mobile, chaque champ pleine largeur\r\n * sm (481-767px) : 2 colonnes — tablette / grand mobile (transition douce)\r\n * md (≥768px) : N colonnes — desktop (layout cible)\r\n *\r\n * Source: addpe-fe/AutorisationForm.js\r\n * gridTemplateColumns: { xs: \"1fr\", sm: \"1fr 1fr\", md: \"repeat(3, 1fr)\" }\r\n *\r\n * ── Presets ─────────────────────────────────────────────────────────\r\n *\r\n * columns={1} → toujours 1 col (textarea, notes, upload)\r\n * columns={2} → 1col xs / 2col sm+ (formulaires courts)\r\n * columns={3} → 1col xs / 2col sm / 3col md (DEFAULT FormSection)\r\n * columns={4} → 1col xs / 2col sm / 4col md (champs courts : codes, dates)\r\n * minColumnWidth={N} → auto-fill adaptatif, 1col xs\r\n *\r\n * ── Sous-composants ─────────────────────────────────────────────────\r\n *\r\n * <FormGrid.Full> → span toutes colonnes (textarea, tables)\r\n * <FormGrid.Item span> → span explicite (sm+), full-width xs\r\n *\r\n * ── Exemple ─────────────────────────────────────────────────────────\r\n *\r\n * <FormGrid columns={3}>\r\n * <FormikInput name=\"nom\" label=\"Nom\" />\r\n * <FormikInput name=\"prenom\" label=\"Prénom\" />\r\n * <FormikInput name=\"code\" label=\"Code\" />\r\n * <FormGrid.Full>\r\n * <FormikTextarea name=\"obs\" label=\"Observations\" />\r\n * </FormGrid.Full>\r\n * </FormGrid>\r\n */\r\nexport interface FormGridProps extends Omit<BoxProps, \"gap\"> {\r\n /**\r\n * Nombre de colonnes égales.\r\n * 1 → pleine largeur (notes, textarea)\r\n * 2 → 2 cols sm+\r\n * 3 → DEFAULT FormSection : 1col xs / 2col sm / 3col md\r\n * 4 → 1col xs / 2col sm / 4col md (champs courts)\r\n * Mutually exclusive avec minColumnWidth.\r\n */\r\n columns?: number | undefined;\r\n /** Auto-fill adaptatif — tracks d'au moins N px de large. */\r\n minColumnWidth?: number | undefined;\r\n /**\r\n * Gap de la grille. Défaut `var(--s-4)` — la charte §2.3 assigne\r\n * explicitement `-s-4` (16px) à « Gap formulaire (default) », `-s-3` (12px)\r\n * étant réservé au « Padding cards compact ». Gap G-13.\r\n */\r\n gap?: string | number | undefined;\r\n}\r\n\r\nfunction FormGrid({\r\n children,\r\n columns,\r\n minColumnWidth,\r\n gap,\r\n sx,\r\n ...rest\r\n}: FormGridProps) {\r\n const gridTemplateColumns = React.useMemo(() => {\r\n /* Auto-fill adaptatif — minColumnWidth prime sur columns.\r\n * min(${minColumnWidth}px, 100%) borne la largeur mini de chaque\r\n * piste à celle du conteneur : au-dessus de sm, une piste ne peut\r\n * jamais dépasser le conteneur (pas de débordement / Reflow 1.4.10). */\r\n if (minColumnWidth) {\r\n return {\r\n xs: \"1fr\",\r\n sm: `repeat(auto-fill, minmax(min(${minColumnWidth}px, 100%), 1fr))`,\r\n };\r\n }\r\n\r\n const cols = typeof columns === \"number\" && columns > 0 ? columns : 3;\r\n\r\n /* Colonne unique — textarea, notes, upload : toujours pleine largeur */\r\n if (cols === 1) return \"1fr\";\r\n\r\n /* 2 colonnes — dès tablette (sm), pas d'échelon md nécessaire */\r\n if (cols === 2) {\r\n return { xs: \"1fr\", sm: \"repeat(2, minmax(0, 1fr))\" };\r\n }\r\n\r\n /*\r\n * 3+ colonnes — 3 échelons :\r\n * xs : 1 col (mobile)\r\n * sm : 2 cols (tablette — transition douce, évite les champs trop étroits)\r\n * md : N cols (desktop — layout cible)\r\n *\r\n * Identique au pattern addpe-fe :\r\n * { xs:\"1fr\", sm:\"1fr 1fr\", md:\"repeat(3, 1fr)\" }\r\n */\r\n return {\r\n xs: \"1fr\",\r\n sm: \"repeat(2, minmax(0, 1fr))\",\r\n md: `repeat(${cols}, minmax(0, 1fr))`,\r\n };\r\n }, [columns, minColumnWidth]);\r\n\r\n return (\r\n <Box\r\n sx={{\r\n display: \"grid\",\r\n gridTemplateColumns,\r\n /* Charter §2.3 — `-s-4` (16px) EST le « Gap formulaire (default) » ; le\r\n * défaut précédent était `-s-3` (12px), que la même table réserve au\r\n * « Padding cards compact ». Le composant canonique de grille de\r\n * formulaire contredisait donc la valeur par défaut de la charte, et\r\n * chaque module compensait en passant `gap` à la main. Changement\r\n * VISUEL fleet-wide 12→16px sur toute grille sans `gap` explicite —\r\n * même classe de correction que le 15→16px des titres FormSection.\r\n *\r\n * `??` et non `||` : `gap={0}` est une valeur légitime que `||`\r\n * écrasait silencieusement par le défaut. */\r\n gap: gap ?? \"var(--s-4)\",\r\n alignItems: \"start\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n}\r\n\r\n/* ── FormGrid.Full ────────────────────────────────────────────────────\r\n * Span toutes les colonnes à tous les breakpoints.\r\n * Usage : textareas, file uploads, sub-tables, notes.\r\n */\r\nexport type FormGridFullProps = BoxProps;\r\n\r\nfunction FormGridFull({ children, sx, ...rest }: FormGridFullProps) {\r\n return (\r\n <Box sx={{ gridColumn: \"1 / -1\", minWidth: 0, ...sx }} {...rest}>\r\n {children}\r\n </Box>\r\n );\r\n}\r\n\r\n/* ── FormGrid.Item ────────────────────────────────────────────────────\r\n * Span explicite par breakpoint.\r\n * xs → toujours pleine largeur (1 / -1)\r\n * sm → span 1 (une cellule dans la grille 2-col tablette)\r\n * md → span explicite (grille N-col desktop)\r\n *\r\n * Usage : Description (span=2 sur desktop, full-width mobile/tablette)\r\n */\r\nexport interface FormGridItemProps extends BoxProps {\r\n /**\r\n * Colonnes à couvrir sur md+ (desktop).\r\n * xs → toujours 1/-1 (pleine largeur).\r\n * sm → toujours span 1 (grille 2-col tablette).\r\n * Default : 1.\r\n */\r\n span?: number | undefined;\r\n}\r\n\r\nfunction FormGridItem({ span = 1, children, sx, ...rest }: FormGridItemProps) {\r\n return (\r\n <Box\r\n sx={{\r\n gridColumn: {\r\n xs: \"1 / -1\", /* mobile : toujours pleine largeur */\r\n sm: \"span 1\", /* tablette (2-col) : 1 cellule */\r\n md: `span ${span}`, /* desktop (N-col) : span explicite */\r\n },\r\n minWidth: 0,\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n}\r\n\r\nconst FormGridWithStatics = Object.assign(FormGrid, {\r\n Item: FormGridItem,\r\n Full: FormGridFull,\r\n});\r\n\r\nexport default FormGridWithStatics;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -26,12 +26,12 @@ import type { SxProps, Theme } from "@mui/material/styles";
|
|
|
26
26
|
*/
|
|
27
27
|
export interface FormikDisplayProps {
|
|
28
28
|
name: string;
|
|
29
|
-
label?: React.ReactNode;
|
|
30
|
-
hint?: React.ReactNode;
|
|
31
|
-
format?: (raw: unknown) => React.ReactNode;
|
|
32
|
-
mono?: boolean;
|
|
33
|
-
empty?: string;
|
|
34
|
-
sx?: SxProps<Theme
|
|
29
|
+
label?: React.ReactNode | undefined;
|
|
30
|
+
hint?: React.ReactNode | undefined;
|
|
31
|
+
format?: ((raw: unknown) => React.ReactNode) | undefined;
|
|
32
|
+
mono?: boolean | undefined;
|
|
33
|
+
empty?: string | undefined;
|
|
34
|
+
sx?: SxProps<Theme> | undefined;
|
|
35
35
|
}
|
|
36
36
|
declare function FormikDisplay({ name, label, hint, format, mono, empty, sx, }: FormikDisplayProps): React.JSX.Element;
|
|
37
37
|
export default FormikDisplay;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormikDisplay.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/FormikDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"FormikDisplay.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/FormikDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IACzD,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;CACjC;AAED,iBAAS,aAAa,CAAC,EACrB,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,EACN,IAAa,EACb,KAAgB,EAChB,EAAE,GACH,EAAE,kBAAkB,qBA2FpB;AAED,eAAe,aAAa,CAAC"}
|