@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,284 @@
|
|
|
1
|
+
var _excluded = ["as", "sx", "style", "className", "children"],
|
|
2
|
+
_excluded2 = ["direction", "gap", "align", "justify", "wrap", "sx", "children"];
|
|
3
|
+
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; }
|
|
4
|
+
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; }
|
|
5
|
+
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; }
|
|
6
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
7
|
+
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); }
|
|
8
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
9
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
10
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
11
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
12
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
13
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
14
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
15
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
16
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
17
|
+
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); }
|
|
18
|
+
import * as React from "react";
|
|
19
|
+
import { mq, BREAKPOINT_KEYS } from "../tokens";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* v2.Box / v2.Stack — token-driven layout primitives.
|
|
23
|
+
*
|
|
24
|
+
* These render through the inline `style` attribute and stay theme-free
|
|
25
|
+
* (no MUI theme runtime, no emotion). Tokens flow through CSS variables
|
|
26
|
+
* on :root, exactly as before.
|
|
27
|
+
*
|
|
28
|
+
* Responsive escape hatch (R-RS.4)
|
|
29
|
+
* --------------------------------
|
|
30
|
+
* Historically `sx` accepted ONLY plain CSS-property values; a
|
|
31
|
+
* breakpoint object (`{ xs, sm, md, lg, xl }`) was silently dropped to
|
|
32
|
+
* "[object Object]" because inline styles can't carry media queries.
|
|
33
|
+
* Modules that needed responsive variation were pushed into bespoke,
|
|
34
|
+
* per-module CSS files — which fragments the breakpoint contract and
|
|
35
|
+
* violates centralisation.
|
|
36
|
+
*
|
|
37
|
+
* `sx` now ALSO accepts breakpoint objects on any property, resolved
|
|
38
|
+
* against the DESIGN-SYSTEM breakpoint TOKENS (tokens/breakpoints.js),
|
|
39
|
+
* the same scale wired into the MUI theme. The mechanism is the standard
|
|
40
|
+
* "CSS variable swapped by media query" technique, kept entirely inside
|
|
41
|
+
* the lib so consumers never hand-write a media query:
|
|
42
|
+
*
|
|
43
|
+
* <Box sx={{ flexDirection: { xs: "column", md: "row" }, gap: "var(--s-3)" }} />
|
|
44
|
+
*
|
|
45
|
+
* → a generated scoped class sets, for that element only:
|
|
46
|
+
* --pui-rsp-<sig>-0: column; (base, mobile-first)
|
|
47
|
+
* ${mq.up("md")} { --pui-rsp-<sig>-0: row } (md token)
|
|
48
|
+
* and the inline style references flexDirection: var(--pui-rsp-<sig>-0).
|
|
49
|
+
*
|
|
50
|
+
* `xs` is treated as the base (min-width 0). sm/md/lg/xl emit
|
|
51
|
+
* min-width media queries at the token values via mq.up(), so the
|
|
52
|
+
* generated queries are byte-identical to theme.breakpoints.up().
|
|
53
|
+
*
|
|
54
|
+
* The generated class + variable names are CONTENT-ADDRESSED (derived
|
|
55
|
+
* from a hash of the sx), so an identical sx signature always produces
|
|
56
|
+
* the identical class and the identical <style> rule — injected once and
|
|
57
|
+
* shared by every instance and every re-render. (A volatile counter here
|
|
58
|
+
* would mint a fresh class + <style> on each render of an inline-sx Box,
|
|
59
|
+
* leaking <style> tags into <head> without bound.)
|
|
60
|
+
*
|
|
61
|
+
* Precedence: `style` (explicit escape hatch) still overrides `sx`.
|
|
62
|
+
*
|
|
63
|
+
* <Box as="section" sx={{ display: "flex" }} style={{ background: "var(--surface)" }} className="x" />
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
/** A single CSS value, or a per-breakpoint map of CSS values (responsive). */
|
|
67
|
+
|
|
68
|
+
/** Token-driven inline style; each property is a value or a responsive map. */
|
|
69
|
+
|
|
70
|
+
/** Result of splitting an sx into inline style + generated responsive CSS. */
|
|
71
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
72
|
+
/* Token breakpoint keys, ascending. xs is the mobile-first base and
|
|
73
|
+
* never emits a media query. Sourced from the canonical breakpoints
|
|
74
|
+
* token (tokens/breakpoints.js) so the order can't drift from the scale
|
|
75
|
+
* wired into the MUI theme. */
|
|
76
|
+
var BP_ORDER = BREAKPOINT_KEYS;
|
|
77
|
+
function isPlainObject(v) {
|
|
78
|
+
return v != null && _typeof(v) === "object" && !Array.isArray(v);
|
|
79
|
+
}
|
|
80
|
+
function isBreakpointObject(v) {
|
|
81
|
+
if (!isPlainObject(v)) return false;
|
|
82
|
+
// Treat as responsive only if EVERY key is a known breakpoint name.
|
|
83
|
+
// Avoids misreading a nested style object as a breakpoint map.
|
|
84
|
+
var keys = Object.keys(v);
|
|
85
|
+
return keys.length > 0 && keys.every(function (k) {
|
|
86
|
+
return BP_ORDER.includes(k);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Split an sx object into:
|
|
92
|
+
* - inlineStyle : plain props written directly (responsive props point
|
|
93
|
+
* at a generated CSS variable)
|
|
94
|
+
* - css : a scoped stylesheet string (or "" when nothing is
|
|
95
|
+
* responsive)
|
|
96
|
+
* - className : the generated scope class (or undefined)
|
|
97
|
+
*
|
|
98
|
+
* The className and the generated variable names are both derived from a
|
|
99
|
+
* single content hash of the sx, so the result is STABLE across renders
|
|
100
|
+
* and identical across instances that share the same sx — which is what
|
|
101
|
+
* makes the <style> injection idempotent (see useResponsiveStyleInjection).
|
|
102
|
+
*
|
|
103
|
+
* Returns a stable result for a given sx via useMemo at the call site.
|
|
104
|
+
*/
|
|
105
|
+
function resolveSx(sx) {
|
|
106
|
+
if (sx == null || !isPlainObject(sx)) {
|
|
107
|
+
return {
|
|
108
|
+
inlineStyle: undefined,
|
|
109
|
+
css: "",
|
|
110
|
+
className: undefined
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// Content-addressed signature. Derived ONCE from the sx so the class
|
|
115
|
+
// and every generated var name are stable across renders/instances.
|
|
116
|
+
var sig = Math.abs(hashString(JSON.stringify(sx))).toString(36);
|
|
117
|
+
|
|
118
|
+
// inlineStyle is the returned CSSProperties; styleWrite is the same
|
|
119
|
+
// object viewed as a keyed record so dynamic string keys can be written
|
|
120
|
+
// (CSSProperties has no string index signature, so the view needs a
|
|
121
|
+
// cast — the two are the SAME object at runtime).
|
|
122
|
+
var inlineStyle = {};
|
|
123
|
+
var styleWrite = inlineStyle;
|
|
124
|
+
/* Per-breakpoint declaration buckets, e.g. byBp.md === "--pui-rsp-<sig>-0:row;" */
|
|
125
|
+
var byBp = {
|
|
126
|
+
xs: "",
|
|
127
|
+
sm: "",
|
|
128
|
+
md: "",
|
|
129
|
+
lg: "",
|
|
130
|
+
xl: ""
|
|
131
|
+
};
|
|
132
|
+
var hasResponsive = false;
|
|
133
|
+
var varSeq = 0;
|
|
134
|
+
for (var _i = 0, _Object$entries = Object.entries(sx); _i < _Object$entries.length; _i++) {
|
|
135
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
136
|
+
prop = _Object$entries$_i[0],
|
|
137
|
+
value = _Object$entries$_i[1];
|
|
138
|
+
if (isBreakpointObject(value)) {
|
|
139
|
+
hasResponsive = true;
|
|
140
|
+
// Stable, signature-scoped var name (local index, not a global
|
|
141
|
+
// counter). Only ever declared inside `.${className}`, so the name
|
|
142
|
+
// is effectively scoped to elements carrying that class.
|
|
143
|
+
var varName = "--pui-rsp-".concat(sig, "-").concat(varSeq++);
|
|
144
|
+
styleWrite[prop] = "var(".concat(varName, ")");
|
|
145
|
+
var _iterator = _createForOfIteratorHelper(BP_ORDER),
|
|
146
|
+
_step;
|
|
147
|
+
try {
|
|
148
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
149
|
+
var bp = _step.value;
|
|
150
|
+
var bpVal = value[bp];
|
|
151
|
+
if (bpVal != null) {
|
|
152
|
+
byBp[bp] += "".concat(varName, ":").concat(bpVal, ";");
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
} catch (err) {
|
|
156
|
+
_iterator.e(err);
|
|
157
|
+
} finally {
|
|
158
|
+
_iterator.f();
|
|
159
|
+
}
|
|
160
|
+
} else {
|
|
161
|
+
styleWrite[prop] = value;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
if (!hasResponsive) {
|
|
165
|
+
return {
|
|
166
|
+
inlineStyle: inlineStyle,
|
|
167
|
+
css: "",
|
|
168
|
+
className: undefined
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
var className = "pui-rsp-".concat(sig);
|
|
172
|
+
var css = "";
|
|
173
|
+
// xs = base (no media query), then ascending min-width queries built
|
|
174
|
+
// by the shared mq.up() helper (single breakpoint→media-query engine).
|
|
175
|
+
if (byBp.xs) css += ".".concat(className, "{").concat(byBp.xs, "}");
|
|
176
|
+
var _iterator2 = _createForOfIteratorHelper(["sm", "md", "lg", "xl"]),
|
|
177
|
+
_step2;
|
|
178
|
+
try {
|
|
179
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
180
|
+
var _bp = _step2.value;
|
|
181
|
+
if (byBp[_bp]) {
|
|
182
|
+
css += "".concat(mq.up(_bp), "{.").concat(className, "{").concat(byBp[_bp], "}}");
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
} catch (err) {
|
|
186
|
+
_iterator2.e(err);
|
|
187
|
+
} finally {
|
|
188
|
+
_iterator2.f();
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
inlineStyle: inlineStyle,
|
|
192
|
+
css: css,
|
|
193
|
+
className: className
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/* Small, stable, dependency-free string hash (djb2) for class naming.
|
|
198
|
+
* Used to content-address identical sx signatures so their generated
|
|
199
|
+
* class + <style> rule de-duplicate in the DOM. */
|
|
200
|
+
function hashString(str) {
|
|
201
|
+
var h = 5381;
|
|
202
|
+
for (var i = 0; i < str.length; i++) {
|
|
203
|
+
h = h * 33 ^ str.charCodeAt(i);
|
|
204
|
+
}
|
|
205
|
+
return h | 0;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/* Injects the generated stylesheet for a responsive sx exactly once per
|
|
209
|
+
* unique className. Idempotent: a second Box with the same sx signature
|
|
210
|
+
* reuses the existing <style>. */
|
|
211
|
+
function useResponsiveStyleInjection(css, className) {
|
|
212
|
+
React.useInsertionEffect(function () {
|
|
213
|
+
if (!css || !className || typeof document === "undefined") return undefined;
|
|
214
|
+
var id = "pui-rsp-style-".concat(className);
|
|
215
|
+
if (document.getElementById(id)) return undefined;
|
|
216
|
+
var el = document.createElement("style");
|
|
217
|
+
el.id = id;
|
|
218
|
+
el.textContent = css;
|
|
219
|
+
document.head.appendChild(el);
|
|
220
|
+
// Not removed on unmount: the rule is keyed by content hash and may
|
|
221
|
+
// be shared by sibling instances; leaving it is cheap and avoids a
|
|
222
|
+
// flash if the same sx remounts. The set is bounded by the number of
|
|
223
|
+
// DISTINCT responsive sx signatures in the app, not instances.
|
|
224
|
+
return undefined;
|
|
225
|
+
}, [css, className]);
|
|
226
|
+
}
|
|
227
|
+
export var Box = /*#__PURE__*/React.forwardRef(function Box(_ref, ref) {
|
|
228
|
+
var _ref$as = _ref.as,
|
|
229
|
+
Component = _ref$as === void 0 ? "div" : _ref$as,
|
|
230
|
+
sx = _ref.sx,
|
|
231
|
+
style = _ref.style,
|
|
232
|
+
className = _ref.className,
|
|
233
|
+
children = _ref.children,
|
|
234
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
235
|
+
var _React$useMemo = React.useMemo(function () {
|
|
236
|
+
return resolveSx(sx);
|
|
237
|
+
}, [sx]),
|
|
238
|
+
inlineStyle = _React$useMemo.inlineStyle,
|
|
239
|
+
css = _React$useMemo.css,
|
|
240
|
+
rspClass = _React$useMemo.className;
|
|
241
|
+
useResponsiveStyleInjection(css, rspClass);
|
|
242
|
+
|
|
243
|
+
/* Merge sx-derived inline style + explicit style — style wins. */
|
|
244
|
+
var merged = inlineStyle && style ? _objectSpread(_objectSpread({}, inlineStyle), style) : inlineStyle ? inlineStyle : style ? style : undefined;
|
|
245
|
+
var mergedClass = [className, rspClass].filter(Boolean).join(" ") || undefined;
|
|
246
|
+
return /*#__PURE__*/_jsx(Component, _objectSpread(_objectSpread({
|
|
247
|
+
ref: ref,
|
|
248
|
+
style: merged,
|
|
249
|
+
className: mergedClass
|
|
250
|
+
}, rest), {}, {
|
|
251
|
+
children: children
|
|
252
|
+
}));
|
|
253
|
+
});
|
|
254
|
+
export var Stack = /*#__PURE__*/React.forwardRef(function Stack(_ref2, ref) {
|
|
255
|
+
var _ref2$direction = _ref2.direction,
|
|
256
|
+
direction = _ref2$direction === void 0 ? "column" : _ref2$direction,
|
|
257
|
+
_ref2$gap = _ref2.gap,
|
|
258
|
+
gap = _ref2$gap === void 0 ? "var(--s-3)" : _ref2$gap,
|
|
259
|
+
align = _ref2.align,
|
|
260
|
+
justify = _ref2.justify,
|
|
261
|
+
_ref2$wrap = _ref2.wrap,
|
|
262
|
+
wrap = _ref2$wrap === void 0 ? false : _ref2$wrap,
|
|
263
|
+
sx = _ref2.sx,
|
|
264
|
+
children = _ref2.children,
|
|
265
|
+
rest = _objectWithoutProperties(_ref2, _excluded2);
|
|
266
|
+
var layoutSx = _objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
267
|
+
display: "flex",
|
|
268
|
+
flexDirection: direction,
|
|
269
|
+
gap: gap
|
|
270
|
+
}, align ? {
|
|
271
|
+
alignItems: align
|
|
272
|
+
} : null), justify ? {
|
|
273
|
+
justifyContent: justify
|
|
274
|
+
} : null), wrap ? {
|
|
275
|
+
flexWrap: "wrap"
|
|
276
|
+
} : null), sx);
|
|
277
|
+
return /*#__PURE__*/_jsx(Box, _objectSpread(_objectSpread({
|
|
278
|
+
ref: ref,
|
|
279
|
+
sx: layoutSx
|
|
280
|
+
}, rest), {}, {
|
|
281
|
+
children: children
|
|
282
|
+
}));
|
|
283
|
+
});
|
|
284
|
+
//# sourceMappingURL=Layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Layout.js","names":["React","mq","BREAKPOINT_KEYS","jsx","_jsx","BP_ORDER","isPlainObject","v","_typeof","Array","isArray","isBreakpointObject","keys","Object","length","every","k","includes","resolveSx","sx","inlineStyle","undefined","css","className","sig","Math","abs","hashString","JSON","stringify","toString","styleWrite","byBp","xs","sm","md","lg","xl","hasResponsive","varSeq","_i","_Object$entries","entries","_Object$entries$_i","_slicedToArray","prop","value","varName","concat","_iterator","_createForOfIteratorHelper","_step","s","n","done","bp","bpVal","err","e","f","_iterator2","_step2","up","str","h","i","charCodeAt","useResponsiveStyleInjection","useInsertionEffect","document","id","getElementById","el","createElement","textContent","head","appendChild","Box","forwardRef","_ref","ref","_ref$as","as","Component","style","children","rest","_objectWithoutProperties","_excluded","_React$useMemo","useMemo","rspClass","merged","_objectSpread","mergedClass","filter","Boolean","join","Stack","_ref2","_ref2$direction","direction","_ref2$gap","gap","align","justify","_ref2$wrap","wrap","_excluded2","layoutSx","display","flexDirection","alignItems","justifyContent","flexWrap"],"sources":["../../../../src/lib/v2/components/Layout.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { mq, BREAKPOINT_KEYS } from \"../tokens\";\r\nimport type { Breakpoint } from \"../types/common\";\r\n\r\n/**\r\n * v2.Box / v2.Stack — token-driven layout primitives.\r\n *\r\n * These render through the inline `style` attribute and stay theme-free\r\n * (no MUI theme runtime, no emotion). Tokens flow through CSS variables\r\n * on :root, exactly as before.\r\n *\r\n * Responsive escape hatch (R-RS.4)\r\n * --------------------------------\r\n * Historically `sx` accepted ONLY plain CSS-property values; a\r\n * breakpoint object (`{ xs, sm, md, lg, xl }`) was silently dropped to\r\n * \"[object Object]\" because inline styles can't carry media queries.\r\n * Modules that needed responsive variation were pushed into bespoke,\r\n * per-module CSS files — which fragments the breakpoint contract and\r\n * violates centralisation.\r\n *\r\n * `sx` now ALSO accepts breakpoint objects on any property, resolved\r\n * against the DESIGN-SYSTEM breakpoint TOKENS (tokens/breakpoints.js),\r\n * the same scale wired into the MUI theme. The mechanism is the standard\r\n * \"CSS variable swapped by media query\" technique, kept entirely inside\r\n * the lib so consumers never hand-write a media query:\r\n *\r\n * <Box sx={{ flexDirection: { xs: \"column\", md: \"row\" }, gap: \"var(--s-3)\" }} />\r\n *\r\n * → a generated scoped class sets, for that element only:\r\n * --pui-rsp-<sig>-0: column; (base, mobile-first)\r\n * ${mq.up(\"md\")} { --pui-rsp-<sig>-0: row } (md token)\r\n * and the inline style references flexDirection: var(--pui-rsp-<sig>-0).\r\n *\r\n * `xs` is treated as the base (min-width 0). sm/md/lg/xl emit\r\n * min-width media queries at the token values via mq.up(), so the\r\n * generated queries are byte-identical to theme.breakpoints.up().\r\n *\r\n * The generated class + variable names are CONTENT-ADDRESSED (derived\r\n * from a hash of the sx), so an identical sx signature always produces\r\n * the identical class and the identical <style> rule — injected once and\r\n * shared by every instance and every re-render. (A volatile counter here\r\n * would mint a fresh class + <style> on each render of an inline-sx Box,\r\n * leaking <style> tags into <head> without bound.)\r\n *\r\n * Precedence: `style` (explicit escape hatch) still overrides `sx`.\r\n *\r\n * <Box as=\"section\" sx={{ display: \"flex\" }} style={{ background: \"var(--surface)\" }} className=\"x\" />\r\n */\r\n\r\n/** A single CSS value, or a per-breakpoint map of CSS values (responsive). */\r\ntype SxValue =\r\n | string\r\n | number\r\n | Partial<Record<Breakpoint, string | number | undefined>>;\r\n\r\n/** Token-driven inline style; each property is a value or a responsive map. */\r\ntype Sx = { [property: string]: SxValue };\r\n\r\n/** Result of splitting an sx into inline style + generated responsive CSS. */\r\ntype ResolvedSx = {\r\n inlineStyle: React.CSSProperties | undefined;\r\n css: string;\r\n className: string | undefined;\r\n};\r\n\r\n/* Token breakpoint keys, ascending. xs is the mobile-first base and\r\n * never emits a media query. Sourced from the canonical breakpoints\r\n * token (tokens/breakpoints.js) so the order can't drift from the scale\r\n * wired into the MUI theme. */\r\nconst BP_ORDER = BREAKPOINT_KEYS;\r\n\r\nfunction isPlainObject(v: unknown): boolean {\r\n return v != null && typeof v === \"object\" && !Array.isArray(v);\r\n}\r\n\r\nfunction isBreakpointObject(\r\n v: unknown,\r\n): v is Partial<Record<Breakpoint, string | number | undefined>> {\r\n if (!isPlainObject(v)) return false;\r\n // Treat as responsive only if EVERY key is a known breakpoint name.\r\n // Avoids misreading a nested style object as a breakpoint map.\r\n const keys = Object.keys(v as Record<string, unknown>);\r\n return keys.length > 0 && keys.every((k) => (BP_ORDER as readonly string[]).includes(k));\r\n}\r\n\r\n/**\r\n * Split an sx object into:\r\n * - inlineStyle : plain props written directly (responsive props point\r\n * at a generated CSS variable)\r\n * - css : a scoped stylesheet string (or \"\" when nothing is\r\n * responsive)\r\n * - className : the generated scope class (or undefined)\r\n *\r\n * The className and the generated variable names are both derived from a\r\n * single content hash of the sx, so the result is STABLE across renders\r\n * and identical across instances that share the same sx — which is what\r\n * makes the <style> injection idempotent (see useResponsiveStyleInjection).\r\n *\r\n * Returns a stable result for a given sx via useMemo at the call site.\r\n */\r\nfunction resolveSx(sx: Sx | undefined): ResolvedSx {\r\n if (sx == null || !isPlainObject(sx)) {\r\n return { inlineStyle: undefined, css: \"\", className: undefined };\r\n }\r\n\r\n // Content-addressed signature. Derived ONCE from the sx so the class\r\n // and every generated var name are stable across renders/instances.\r\n const sig = Math.abs(hashString(JSON.stringify(sx))).toString(36);\r\n\r\n // inlineStyle is the returned CSSProperties; styleWrite is the same\r\n // object viewed as a keyed record so dynamic string keys can be written\r\n // (CSSProperties has no string index signature, so the view needs a\r\n // cast — the two are the SAME object at runtime).\r\n const inlineStyle: React.CSSProperties = {};\r\n const styleWrite = inlineStyle as unknown as Record<string, string | number | undefined>;\r\n /* Per-breakpoint declaration buckets, e.g. byBp.md === \"--pui-rsp-<sig>-0:row;\" */\r\n const byBp: Record<Breakpoint, string> = { xs: \"\", sm: \"\", md: \"\", lg: \"\", xl: \"\" };\r\n let hasResponsive = false;\r\n let varSeq = 0;\r\n\r\n for (const [prop, value] of Object.entries(sx)) {\r\n if (isBreakpointObject(value)) {\r\n hasResponsive = true;\r\n // Stable, signature-scoped var name (local index, not a global\r\n // counter). Only ever declared inside `.${className}`, so the name\r\n // is effectively scoped to elements carrying that class.\r\n const varName = `--pui-rsp-${sig}-${varSeq++}`;\r\n styleWrite[prop] = `var(${varName})`;\r\n for (const bp of BP_ORDER) {\r\n const bpVal = value[bp];\r\n if (bpVal != null) {\r\n byBp[bp] += `${varName}:${bpVal};`;\r\n }\r\n }\r\n } else {\r\n styleWrite[prop] = value;\r\n }\r\n }\r\n\r\n if (!hasResponsive) {\r\n return { inlineStyle, css: \"\", className: undefined };\r\n }\r\n\r\n const className = `pui-rsp-${sig}`;\r\n\r\n let css = \"\";\r\n // xs = base (no media query), then ascending min-width queries built\r\n // by the shared mq.up() helper (single breakpoint→media-query engine).\r\n if (byBp.xs) css += `.${className}{${byBp.xs}}`;\r\n for (const bp of [\"sm\", \"md\", \"lg\", \"xl\"] as const) {\r\n if (byBp[bp]) {\r\n css += `${mq.up(bp)}{.${className}{${byBp[bp]}}}`;\r\n }\r\n }\r\n\r\n return { inlineStyle, css, className };\r\n}\r\n\r\n/* Small, stable, dependency-free string hash (djb2) for class naming.\r\n * Used to content-address identical sx signatures so their generated\r\n * class + <style> rule de-duplicate in the DOM. */\r\nfunction hashString(str: string): number {\r\n let h = 5381;\r\n for (let i = 0; i < str.length; i++) {\r\n h = (h * 33) ^ str.charCodeAt(i);\r\n }\r\n return h | 0;\r\n}\r\n\r\n/* Injects the generated stylesheet for a responsive sx exactly once per\r\n * unique className. Idempotent: a second Box with the same sx signature\r\n * reuses the existing <style>. */\r\nfunction useResponsiveStyleInjection(css: string, className: string | undefined): void {\r\n React.useInsertionEffect(() => {\r\n if (!css || !className || typeof document === \"undefined\") return undefined;\r\n const id = `pui-rsp-style-${className}`;\r\n if (document.getElementById(id)) return undefined;\r\n const el = document.createElement(\"style\");\r\n el.id = id;\r\n el.textContent = css;\r\n document.head.appendChild(el);\r\n // Not removed on unmount: the rule is keyed by content hash and may\r\n // be shared by sibling instances; leaving it is cheap and avoids a\r\n // flash if the same sx remounts. The set is bounded by the number of\r\n // DISTINCT responsive sx signatures in the app, not instances.\r\n return undefined;\r\n }, [css, className]);\r\n}\r\n\r\nexport interface BoxProps extends React.HTMLAttributes<HTMLElement> {\r\n /** Element or component to render. @default \"div\" */\r\n as?: React.ElementType | undefined;\r\n /**\r\n * Token-driven inline style. Each property may be a plain CSS value or a\r\n * responsive breakpoint map (`{ xs, sm, md, lg, xl }`) resolved against the\r\n * design-system breakpoint tokens. `style` still overrides `sx`.\r\n */\r\n sx?: Sx | undefined;\r\n}\r\n\r\nexport const Box = React.forwardRef<HTMLElement, BoxProps>(function Box(\r\n { as: Component = \"div\", sx, style, className, children, ...rest },\r\n ref,\r\n) {\r\n const { inlineStyle, css, className: rspClass } = React.useMemo(\r\n () => resolveSx(sx),\r\n [sx],\r\n );\r\n useResponsiveStyleInjection(css, rspClass);\r\n\r\n /* Merge sx-derived inline style + explicit style — style wins. */\r\n const merged =\r\n inlineStyle && style ? { ...inlineStyle, ...style } :\r\n inlineStyle ? inlineStyle :\r\n style ? style :\r\n undefined;\r\n\r\n const mergedClass = [className, rspClass].filter(Boolean).join(\" \") || undefined;\r\n\r\n return (\r\n <Component ref={ref} style={merged} className={mergedClass} {...rest}>\r\n {children}\r\n </Component>\r\n );\r\n});\r\n\r\nexport interface StackProps extends BoxProps {\r\n /** Flex direction. @default \"column\" */\r\n direction?: React.CSSProperties[\"flexDirection\"] | undefined;\r\n /** Gap between children (any CSS length or spacing var). @default \"var(--s-3)\" */\r\n gap?: string | number | undefined;\r\n /** align-items. */\r\n align?: React.CSSProperties[\"alignItems\"] | undefined;\r\n /** justify-content. */\r\n justify?: React.CSSProperties[\"justifyContent\"] | undefined;\r\n /** Set flex-wrap: wrap. @default false */\r\n wrap?: boolean | undefined;\r\n}\r\n\r\nexport const Stack = React.forwardRef<HTMLElement, StackProps>(function Stack(\r\n {\r\n direction = \"column\",\r\n gap = \"var(--s-3)\",\r\n align,\r\n justify,\r\n wrap = false,\r\n sx,\r\n children,\r\n ...rest\r\n },\r\n ref,\r\n) {\r\n const layoutSx: Sx = {\r\n display: \"flex\",\r\n flexDirection: direction,\r\n gap,\r\n ...(align ? { alignItems: align } : null),\r\n ...(justify ? { justifyContent: justify } : null),\r\n ...(wrap ? { flexWrap: \"wrap\" } : null),\r\n ...sx,\r\n };\r\n\r\n return (\r\n <Box ref={ref} sx={layoutSx} {...rest}>\r\n {children}\r\n </Box>\r\n );\r\n});\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
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); }
|
|
2
|
+
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; }
|
|
3
|
+
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; }
|
|
4
|
+
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; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
+
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); }
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
import Box from "@mui/material/Box";
|
|
9
|
+
import OverflowMenu from "./OverflowMenu";
|
|
10
|
+
import KV from "./KV";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* MobileRowCard - Portnet UI v2
|
|
14
|
+
*
|
|
15
|
+
* Canonical card layout for the DataGrid mobile card view (R1 mobile,
|
|
16
|
+
* lib commit "feat(DataGrid): R1 mobile - opt-in card view"). Used
|
|
17
|
+
* inside DataGrid's renderMobileCard prop to centralise the visual
|
|
18
|
+
* rhythm across modules.
|
|
19
|
+
*
|
|
20
|
+
* <DataGrid
|
|
21
|
+
* renderMobileCard={(row) => (
|
|
22
|
+
* <MobileRowCard
|
|
23
|
+
* title={row.reference}
|
|
24
|
+
* titleMono
|
|
25
|
+
* subtitle={row.importer?.description}
|
|
26
|
+
* chips={[
|
|
27
|
+
* <StatutAutorisationChip code={row.statutAutorisation} />,
|
|
28
|
+
* <StatutUtilisationChip code={row.statutUtilisation} />,
|
|
29
|
+
* ]}
|
|
30
|
+
* meta={[
|
|
31
|
+
* `Émise ${formatDate(row.dateIssue)}`,
|
|
32
|
+
* `Fin ${formatDate(row.dateFinValidite)}`,
|
|
33
|
+
* ]}
|
|
34
|
+
* actions={buildRowActions(row)}
|
|
35
|
+
* actionsAriaLabel={`Actions pour ${row.reference}`}
|
|
36
|
+
* />
|
|
37
|
+
* )}
|
|
38
|
+
* ...
|
|
39
|
+
* />
|
|
40
|
+
*
|
|
41
|
+
* Layout (top to bottom, each line conditional on its prop):
|
|
42
|
+
* 1. Header row: [leading] + title (truncate, optional mono) + [trailing] + OverflowMenu kebab
|
|
43
|
+
* 2. Subtitle line: muted, single-line truncate
|
|
44
|
+
* 3. Chips row: wrapping flexbox for status chips
|
|
45
|
+
* 4. KV grid: two-column label/value pairs (see `kv`)
|
|
46
|
+
* 5. Meta line: secondary scalars joined with " · "
|
|
47
|
+
*
|
|
48
|
+
* All props are optional; the component renders only the lines
|
|
49
|
+
* that have content, with no empty placeholder boxes.
|
|
50
|
+
*
|
|
51
|
+
* `kv` vs `meta` — pick by whether the reader needs the label.
|
|
52
|
+
* meta → self-evident scalars, joined label-less: "12/05/2026 · 3 pièces"
|
|
53
|
+
* kv → values that are meaningless unaccompanied ("SOFRANE SA",
|
|
54
|
+
* "Casablanca", "Tissus") — rendered as a 2-column grid of v2.KV
|
|
55
|
+
*
|
|
56
|
+
* `kv` exists because every listing in ms-dfd-fe and ms-ti-fe independently
|
|
57
|
+
* built header + labelled-KV-grid cards with a local MOBILE_CARD_KV_SX,
|
|
58
|
+
* bypassing this component entirely — nine sites across two modules. `meta`
|
|
59
|
+
* could not absorb them: joining five labelled pairs into one " · " string
|
|
60
|
+
* loses the labels, and on a phone those labels are what make the values
|
|
61
|
+
* interpretable (Nielsen #6, recognition over recall). Each pair renders
|
|
62
|
+
* through v2.KV, so label/value stay paired for screen readers via
|
|
63
|
+
* aria-labelledby, and empty values fall back to KV's own "—" rather than each
|
|
64
|
+
* host writing `?? "-"`.
|
|
65
|
+
*
|
|
66
|
+
* <MobileRowCard
|
|
67
|
+
* leading={<FavoriteToggle ... />}
|
|
68
|
+
* title={row.num} titleMono
|
|
69
|
+
* chips={[<Status kind={...} label={row.etat} />]}
|
|
70
|
+
* kv={[
|
|
71
|
+
* { label: "Catégorie", value: row.categorie },
|
|
72
|
+
* { label: "Importateur", value: row.importateur },
|
|
73
|
+
* { label: "Référence", value: row.ref, mono: true },
|
|
74
|
+
* ]}
|
|
75
|
+
* />
|
|
76
|
+
*
|
|
77
|
+
* `leading` — a slot BEFORE the title, inside the header row, vertically
|
|
78
|
+
* centred against it and never shrinking. Added for the listing favourite
|
|
79
|
+
* star, which hosts previously could not place inside the card and therefore
|
|
80
|
+
* hand-rolled the whole card layout instead:
|
|
81
|
+
*
|
|
82
|
+
* <MobileRowCard
|
|
83
|
+
* leading={<FavoriteToggle pressed={isFavorite} size="sm" onChange={...} />}
|
|
84
|
+
* title={row.reference}
|
|
85
|
+
* titleMono
|
|
86
|
+
* />
|
|
87
|
+
*
|
|
88
|
+
* PROPAGATION — deliberate asymmetry with the kebab. The kebab wrapper stops
|
|
89
|
+
* click/keydown itself, because opening a menu must never also fire the card's
|
|
90
|
+
* onRowClick. `leading` does NOT: a decorative leading node (icon, avatar)
|
|
91
|
+
* should still open the row like the rest of the card, and silently swallowing
|
|
92
|
+
* that would be the more surprising default. Interactive leading content is
|
|
93
|
+
* therefore responsible for stopping propagation in its own handlers — exactly
|
|
94
|
+
* as DataGrid's own FavoriteCell does. Get this wrong and a tap both toggles
|
|
95
|
+
* the star and opens the drawer.
|
|
96
|
+
*
|
|
97
|
+
* Charter §02.3 — spacing: --s-2 gap between lines, --s-3 padding.
|
|
98
|
+
* Charter §02.2 — typography:
|
|
99
|
+
* - title: text-sm semibold (text-mono variant if titleMono)
|
|
100
|
+
* - subtitle: text-sm fg-muted
|
|
101
|
+
* - meta: text-xs fg-subtle
|
|
102
|
+
* Charter §05 — a11y: kebab has its own aria-label; the card-level
|
|
103
|
+
* click wiring (role=button, tabIndex, Enter/Space) is owned by
|
|
104
|
+
* DataGrid's mobile card wrapper. This component just renders the
|
|
105
|
+
* contents.
|
|
106
|
+
*
|
|
107
|
+
* Why chips are NODES (not objects):
|
|
108
|
+
* Hosts have specialised chip components (StatutAutorisationChip
|
|
109
|
+
* etc.) and passing nodes lets them keep their existing chip type
|
|
110
|
+
* without translating to a generic schema. We just lay them out
|
|
111
|
+
* in a wrapping row.
|
|
112
|
+
*/
|
|
113
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
114
|
+
var CARD_INNER_SX = Object.freeze({
|
|
115
|
+
display: "flex",
|
|
116
|
+
flexDirection: "column",
|
|
117
|
+
gap: "var(--s-2)",
|
|
118
|
+
padding: "var(--s-3)"
|
|
119
|
+
});
|
|
120
|
+
var HEADER_SX = Object.freeze({
|
|
121
|
+
display: "flex",
|
|
122
|
+
alignItems: "flex-start",
|
|
123
|
+
justifyContent: "space-between",
|
|
124
|
+
gap: "var(--s-2)"
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
/* Groups `leading` + title on the left of the header so the kebab keeps its
|
|
128
|
+
* space-between position. `minWidth: 0` is what lets the title's ellipsis
|
|
129
|
+
* actually engage inside a flex child. */
|
|
130
|
+
var HEADER_MAIN_SX = Object.freeze({
|
|
131
|
+
display: "flex",
|
|
132
|
+
alignItems: "center",
|
|
133
|
+
gap: "var(--s-2)",
|
|
134
|
+
minWidth: 0,
|
|
135
|
+
flex: 1
|
|
136
|
+
});
|
|
137
|
+
var LEADING_SX = Object.freeze({
|
|
138
|
+
display: "inline-flex",
|
|
139
|
+
alignItems: "center",
|
|
140
|
+
flexShrink: 0
|
|
141
|
+
});
|
|
142
|
+
var TITLE_BASE_SX = Object.freeze({
|
|
143
|
+
fontWeight: "var(--fw-semibold)",
|
|
144
|
+
fontSize: "var(--text-sm)",
|
|
145
|
+
color: "var(--fg)",
|
|
146
|
+
minWidth: 0,
|
|
147
|
+
flex: 1,
|
|
148
|
+
overflow: "hidden",
|
|
149
|
+
textOverflow: "ellipsis",
|
|
150
|
+
whiteSpace: "nowrap"
|
|
151
|
+
});
|
|
152
|
+
var TITLE_MONO_SX = Object.freeze(_objectSpread(_objectSpread({}, TITLE_BASE_SX), {}, {
|
|
153
|
+
fontFamily: "var(--font-mono)"
|
|
154
|
+
}));
|
|
155
|
+
var SUBTITLE_SX = Object.freeze({
|
|
156
|
+
fontSize: "var(--text-sm)",
|
|
157
|
+
color: "var(--fg-muted)",
|
|
158
|
+
overflow: "hidden",
|
|
159
|
+
textOverflow: "ellipsis",
|
|
160
|
+
whiteSpace: "nowrap"
|
|
161
|
+
});
|
|
162
|
+
var CHIPS_SX = Object.freeze({
|
|
163
|
+
display: "flex",
|
|
164
|
+
alignItems: "center",
|
|
165
|
+
gap: "var(--s-1)",
|
|
166
|
+
flexWrap: "wrap"
|
|
167
|
+
});
|
|
168
|
+
var META_SX = Object.freeze({
|
|
169
|
+
fontSize: "var(--text-xs)",
|
|
170
|
+
color: "var(--fg-subtle)"
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
/* Two columns at every phone width. Deliberately not responsive: below ~320px
|
|
174
|
+
* a single column would be more readable, but 320px is the Charter's narrowest
|
|
175
|
+
* supported breakpoint (§07.2 xs) and two columns still fit there. Matches the
|
|
176
|
+
* MOBILE_CARD_KV_SX both modules converged on independently. */
|
|
177
|
+
var KV_GRID_SX = Object.freeze({
|
|
178
|
+
display: "grid",
|
|
179
|
+
gridTemplateColumns: "1fr 1fr",
|
|
180
|
+
gap: "var(--s-2)"
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
/* Right cluster of the header row: [trailing] then the kebab. One shared
|
|
184
|
+
* wrapper so a card can carry both a visible action and an overflow menu, and
|
|
185
|
+
* so propagation is stopped once for the whole interactive cluster. */
|
|
186
|
+
var HEADER_END_SX = Object.freeze({
|
|
187
|
+
display: "inline-flex",
|
|
188
|
+
alignItems: "center",
|
|
189
|
+
gap: "var(--s-1)",
|
|
190
|
+
flexShrink: 0
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
/** One label/value pair in the card's `kv` grid. Mirrors v2.KV's own props. */
|
|
194
|
+
|
|
195
|
+
function MobileRowCard(_ref) {
|
|
196
|
+
var leading = _ref.leading,
|
|
197
|
+
trailing = _ref.trailing,
|
|
198
|
+
title = _ref.title,
|
|
199
|
+
_ref$titleMono = _ref.titleMono,
|
|
200
|
+
titleMono = _ref$titleMono === void 0 ? false : _ref$titleMono,
|
|
201
|
+
subtitle = _ref.subtitle,
|
|
202
|
+
chips = _ref.chips,
|
|
203
|
+
kv = _ref.kv,
|
|
204
|
+
meta = _ref.meta,
|
|
205
|
+
actions = _ref.actions,
|
|
206
|
+
actionsAriaLabel = _ref.actionsAriaLabel;
|
|
207
|
+
// Filter out divider entries (OverflowMenu separator marks) and
|
|
208
|
+
// null/undefined actions so the kebab only renders when there is
|
|
209
|
+
// at least one real action available.
|
|
210
|
+
var visibleActions = React.useMemo(function () {
|
|
211
|
+
if (!Array.isArray(actions)) return [];
|
|
212
|
+
return actions.filter(function (a) {
|
|
213
|
+
return a && !a.divider;
|
|
214
|
+
});
|
|
215
|
+
}, [actions]);
|
|
216
|
+
var visibleChips = React.useMemo(function () {
|
|
217
|
+
if (!Array.isArray(chips)) return [];
|
|
218
|
+
return chips.filter(Boolean);
|
|
219
|
+
}, [chips]);
|
|
220
|
+
var metaParts = React.useMemo(function () {
|
|
221
|
+
if (!Array.isArray(meta)) return [];
|
|
222
|
+
return meta.filter(function (p) {
|
|
223
|
+
return p != null && p !== "";
|
|
224
|
+
});
|
|
225
|
+
}, [meta]);
|
|
226
|
+
|
|
227
|
+
/* Only `label` is required — a pair with an empty value is kept on purpose so
|
|
228
|
+
* KV renders its "—" placeholder and the grid keeps its shape across rows.
|
|
229
|
+
* Entries missing a label are dropped: KV would emit an empty eyebrow and an
|
|
230
|
+
* aria-labelledby pointing at nothing. */
|
|
231
|
+
var kvPairs = React.useMemo(function () {
|
|
232
|
+
if (!Array.isArray(kv)) return [];
|
|
233
|
+
return kv.filter(function (p) {
|
|
234
|
+
return p != null && p.label != null && p.label !== "";
|
|
235
|
+
});
|
|
236
|
+
}, [kv]);
|
|
237
|
+
var hasActions = visibleActions.length > 0;
|
|
238
|
+
var hasTitle = title != null && title !== "";
|
|
239
|
+
var hasLeading = leading != null && leading !== "";
|
|
240
|
+
var hasTrailing = trailing != null && trailing !== "";
|
|
241
|
+
var hasHeader = hasTitle || hasActions || hasLeading || hasTrailing;
|
|
242
|
+
var hasSubtitle = subtitle != null && subtitle !== "";
|
|
243
|
+
|
|
244
|
+
// Title attribute (native hover tooltip) is set only when the value
|
|
245
|
+
// is a string — wrapping a React node yields a "[object Object]"
|
|
246
|
+
// tooltip which is worse than no tooltip.
|
|
247
|
+
var titleAttr = typeof title === "string" ? title : undefined;
|
|
248
|
+
var subtitleAttr = typeof subtitle === "string" ? subtitle : undefined;
|
|
249
|
+
return /*#__PURE__*/_jsxs(Box, {
|
|
250
|
+
sx: CARD_INNER_SX,
|
|
251
|
+
children: [hasHeader && /*#__PURE__*/_jsxs(Box, {
|
|
252
|
+
sx: HEADER_SX,
|
|
253
|
+
children: [(hasLeading || hasTitle) && /*#__PURE__*/_jsxs(Box, {
|
|
254
|
+
sx: HEADER_MAIN_SX,
|
|
255
|
+
children: [hasLeading && /*#__PURE__*/_jsx(Box, {
|
|
256
|
+
sx: LEADING_SX,
|
|
257
|
+
children: leading
|
|
258
|
+
}), hasTitle && /*#__PURE__*/_jsx(Box, {
|
|
259
|
+
sx: titleMono ? TITLE_MONO_SX : TITLE_BASE_SX,
|
|
260
|
+
title: titleAttr,
|
|
261
|
+
children: title
|
|
262
|
+
})]
|
|
263
|
+
}), (hasTrailing || hasActions) &&
|
|
264
|
+
/*#__PURE__*/
|
|
265
|
+
// The card itself is the click target (wired by DataGrid's
|
|
266
|
+
// mobile card wrapper). Stop propagation on the whole
|
|
267
|
+
// interactive cluster so firing a visible action, or opening
|
|
268
|
+
// the kebab, doesn't also fire onRowClick.
|
|
269
|
+
_jsxs(Box, {
|
|
270
|
+
sx: HEADER_END_SX,
|
|
271
|
+
onClick: function onClick(e) {
|
|
272
|
+
return e.stopPropagation();
|
|
273
|
+
},
|
|
274
|
+
onKeyDown: function onKeyDown(e) {
|
|
275
|
+
return e.stopPropagation();
|
|
276
|
+
},
|
|
277
|
+
children: [hasTrailing && trailing, hasActions && /*#__PURE__*/_jsx(OverflowMenu, _objectSpread(_objectSpread({}, actionsAriaLabel !== undefined ? {
|
|
278
|
+
ariaLabel: actionsAriaLabel
|
|
279
|
+
} : {}), actions !== undefined ? {
|
|
280
|
+
actions: actions
|
|
281
|
+
} : {}))]
|
|
282
|
+
})]
|
|
283
|
+
}), hasSubtitle && /*#__PURE__*/_jsx(Box, {
|
|
284
|
+
sx: SUBTITLE_SX,
|
|
285
|
+
title: subtitleAttr,
|
|
286
|
+
children: subtitle
|
|
287
|
+
}), visibleChips.length > 0 && /*#__PURE__*/_jsx(Box, {
|
|
288
|
+
sx: CHIPS_SX,
|
|
289
|
+
children: visibleChips.map(function (c, i) {
|
|
290
|
+
return /*#__PURE__*/_jsx(React.Fragment, {
|
|
291
|
+
children: c
|
|
292
|
+
}, i);
|
|
293
|
+
})
|
|
294
|
+
}), kvPairs.length > 0 && /*#__PURE__*/_jsx(Box, {
|
|
295
|
+
sx: KV_GRID_SX,
|
|
296
|
+
children: kvPairs.map(function (pair, i) {
|
|
297
|
+
return /*#__PURE__*/_jsx(KV, _objectSpread(_objectSpread(_objectSpread({
|
|
298
|
+
label: pair.label
|
|
299
|
+
}, pair.value !== undefined ? {
|
|
300
|
+
value: pair.value
|
|
301
|
+
} : {}), pair.mono !== undefined ? {
|
|
302
|
+
mono: pair.mono
|
|
303
|
+
} : {}), pair.fallback !== undefined ? {
|
|
304
|
+
fallback: pair.fallback
|
|
305
|
+
} : {}), i);
|
|
306
|
+
})
|
|
307
|
+
}), metaParts.length > 0 && /*#__PURE__*/_jsx(Box, {
|
|
308
|
+
sx: META_SX,
|
|
309
|
+
children: metaParts.join(" · ")
|
|
310
|
+
})]
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
export default MobileRowCard;
|
|
314
|
+
//# sourceMappingURL=MobileRowCard.js.map
|