@portnet/ui 6.0.0 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +85 -0
- package/dist/esm/index.js +214 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldError.test.js +159 -0
- package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldWidth.test.js +146 -0
- package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FileCard.test.js +143 -0
- package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js +265 -0
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +248 -0
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +380 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
- package/dist/esm/v2/__tests__/MobileRowCard.test.js +332 -0
- package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -0
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +235 -0
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
- package/dist/esm/v2/__tests__/apiError.test.js +181 -0
- package/dist/esm/v2/__tests__/apiError.test.js.map +1 -0
- package/dist/esm/v2/__tests__/banned-patterns.test.js +270 -0
- package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -0
- package/dist/esm/v2/__tests__/contrast-palette.test.js +224 -0
- package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -0
- package/dist/esm/v2/__tests__/cssVariables.test.js +157 -0
- package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -0
- package/dist/esm/v2/__tests__/labels-merge.test.js +146 -0
- package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -0
- package/dist/esm/v2/__tests__/locale-fallback.test.js +109 -0
- package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusTrap.test.js +514 -0
- package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -0
- package/dist/esm/v2/components/Accordion.js +230 -0
- package/dist/esm/v2/components/Accordion.js.map +1 -0
- package/dist/esm/v2/components/ActionStrip.js +146 -0
- package/dist/esm/v2/components/ActionStrip.js.map +1 -0
- package/dist/esm/v2/components/Banner.js +254 -0
- package/dist/esm/v2/components/Banner.js.map +1 -0
- package/dist/esm/v2/components/Busy.js +97 -0
- package/dist/esm/v2/components/Busy.js.map +1 -0
- package/dist/esm/v2/components/Button.js +114 -0
- package/dist/esm/v2/components/Button.js.map +1 -0
- package/dist/esm/v2/components/CategoryTag.js +81 -0
- package/dist/esm/v2/components/CategoryTag.js.map +1 -0
- package/dist/esm/v2/components/Checkbox.js +124 -0
- package/dist/esm/v2/components/Checkbox.js.map +1 -0
- package/dist/esm/v2/components/Chip.js +124 -0
- package/dist/esm/v2/components/Chip.js.map +1 -0
- package/dist/esm/v2/components/Combobox.js +394 -0
- package/dist/esm/v2/components/Combobox.js.map +1 -0
- package/dist/esm/v2/components/CommandPalette.js +660 -0
- package/dist/esm/v2/components/CommandPalette.js.map +1 -0
- package/dist/esm/v2/components/ConfirmDialog.js +144 -0
- package/dist/esm/v2/components/ConfirmDialog.js.map +1 -0
- package/dist/esm/v2/components/DatePicker.js +200 -0
- package/dist/esm/v2/components/DatePicker.js.map +1 -0
- package/dist/esm/v2/components/DateRangePicker.js +289 -0
- package/dist/esm/v2/components/DateRangePicker.js.map +1 -0
- package/dist/esm/v2/components/DateTimePicker.js +215 -0
- package/dist/esm/v2/components/DateTimePicker.js.map +1 -0
- package/dist/esm/v2/components/Drawer.js +333 -0
- package/dist/esm/v2/components/Drawer.js.map +1 -0
- package/dist/esm/v2/components/Dropzone.js +540 -0
- package/dist/esm/v2/components/Dropzone.js.map +1 -0
- package/dist/esm/v2/components/EmptyState.js +102 -0
- package/dist/esm/v2/components/EmptyState.js.map +1 -0
- package/dist/esm/v2/components/FavoriteToggle.js +127 -0
- package/dist/esm/v2/components/FavoriteToggle.js.map +1 -0
- package/dist/esm/v2/components/Field.js +259 -0
- package/dist/esm/v2/components/Field.js.map +1 -0
- package/dist/esm/v2/components/FieldError.js +124 -0
- package/dist/esm/v2/components/FieldError.js.map +1 -0
- package/dist/esm/v2/components/FieldHelp.js +202 -0
- package/dist/esm/v2/components/FieldHelp.js.map +1 -0
- package/dist/esm/v2/components/FileCard.js +162 -0
- package/dist/esm/v2/components/FileCard.js.map +1 -0
- package/dist/esm/v2/components/FilterTab.js +138 -0
- package/dist/esm/v2/components/FilterTab.js.map +1 -0
- package/dist/esm/v2/components/ForbiddenPage.js +74 -0
- package/dist/esm/v2/components/ForbiddenPage.js.map +1 -0
- package/dist/esm/v2/components/FormGrid.js +179 -0
- package/dist/esm/v2/components/FormGrid.js.map +1 -0
- package/dist/esm/v2/components/FormikDisplay.js +118 -0
- package/dist/esm/v2/components/FormikDisplay.js.map +1 -0
- package/dist/esm/v2/components/Input.js +107 -0
- package/dist/esm/v2/components/Input.js.map +1 -0
- package/dist/esm/v2/components/KPICard.js +237 -0
- package/dist/esm/v2/components/KPICard.js.map +1 -0
- package/dist/esm/v2/components/KPIStrip.js +84 -0
- package/dist/esm/v2/components/KPIStrip.js.map +1 -0
- package/dist/esm/v2/components/KV.js +75 -0
- package/dist/esm/v2/components/KV.js.map +1 -0
- package/dist/esm/v2/components/KVGrid.js +74 -0
- package/dist/esm/v2/components/KVGrid.js.map +1 -0
- package/dist/esm/v2/components/Layout.js +284 -0
- package/dist/esm/v2/components/Layout.js.map +1 -0
- package/dist/esm/v2/components/MobileRowCard.js +314 -0
- package/dist/esm/v2/components/MobileRowCard.js.map +1 -0
- package/dist/esm/v2/components/Modal.js +276 -0
- package/dist/esm/v2/components/Modal.js.map +1 -0
- package/dist/esm/v2/components/NetworkErrorPage.js +78 -0
- package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -0
- package/dist/esm/v2/components/NotFoundPage.js +58 -0
- package/dist/esm/v2/components/NotFoundPage.js.map +1 -0
- package/dist/esm/v2/components/NumberInput.js +309 -0
- package/dist/esm/v2/components/NumberInput.js.map +1 -0
- package/dist/esm/v2/components/OverflowMenu.js +184 -0
- package/dist/esm/v2/components/OverflowMenu.js.map +1 -0
- package/dist/esm/v2/components/PdfViewer.js +122 -0
- package/dist/esm/v2/components/PdfViewer.js.map +1 -0
- package/dist/esm/v2/components/ProgressBar.js +202 -0
- package/dist/esm/v2/components/ProgressBar.js.map +1 -0
- package/dist/esm/v2/components/Radio.js +228 -0
- package/dist/esm/v2/components/Radio.js.map +1 -0
- package/dist/esm/v2/components/SectionErrorBoundary.js +214 -0
- package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -0
- package/dist/esm/v2/components/SectionHeader.js +132 -0
- package/dist/esm/v2/components/SectionHeader.js.map +1 -0
- package/dist/esm/v2/components/Segmented.js +254 -0
- package/dist/esm/v2/components/Segmented.js.map +1 -0
- package/dist/esm/v2/components/Select.js +490 -0
- package/dist/esm/v2/components/Select.js.map +1 -0
- package/dist/esm/v2/components/ServerErrorPage.js +74 -0
- package/dist/esm/v2/components/ServerErrorPage.js.map +1 -0
- package/dist/esm/v2/components/Skeleton.js +269 -0
- package/dist/esm/v2/components/Skeleton.js.map +1 -0
- package/dist/esm/v2/components/SkipLink.js +49 -0
- package/dist/esm/v2/components/SkipLink.js.map +1 -0
- package/dist/esm/v2/components/Spinner.js +69 -0
- package/dist/esm/v2/components/Spinner.js.map +1 -0
- package/dist/esm/v2/components/Status.js +64 -0
- package/dist/esm/v2/components/Status.js.map +1 -0
- package/dist/esm/v2/components/Stepper.js +432 -0
- package/dist/esm/v2/components/Stepper.js.map +1 -0
- package/dist/esm/v2/components/Surface.js +159 -0
- package/dist/esm/v2/components/Surface.js.map +1 -0
- package/dist/esm/v2/components/Switch.js +128 -0
- package/dist/esm/v2/components/Switch.js.map +1 -0
- package/dist/esm/v2/components/Tabs.js +150 -0
- package/dist/esm/v2/components/Tabs.js.map +1 -0
- package/dist/esm/v2/components/TelInput.js +274 -0
- package/dist/esm/v2/components/TelInput.js.map +1 -0
- package/dist/esm/v2/components/Textarea.js +72 -0
- package/dist/esm/v2/components/Textarea.js.map +1 -0
- package/dist/esm/v2/components/TimePicker.js +134 -0
- package/dist/esm/v2/components/TimePicker.js.map +1 -0
- package/dist/esm/v2/components/Toast.js +376 -0
- package/dist/esm/v2/components/Toast.js.map +1 -0
- package/dist/esm/v2/components/Tooltip.js +161 -0
- package/dist/esm/v2/components/Tooltip.js.map +1 -0
- package/dist/esm/v2/components/_ErrorPageBody.js +85 -0
- package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -0
- package/dist/esm/v2/components/_pickerShared.js +60 -0
- package/dist/esm/v2/components/_pickerShared.js.map +1 -0
- package/dist/esm/v2/components/index.js +271 -0
- package/dist/esm/v2/components/index.js.map +1 -0
- package/dist/esm/v2/hooks/index.js +10 -0
- package/dist/esm/v2/hooks/index.js.map +1 -0
- package/dist/esm/v2/hooks/useDelayedFlag.js +55 -0
- package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -0
- package/dist/esm/v2/hooks/useDensity.js +119 -0
- package/dist/esm/v2/hooks/useDensity.js.map +1 -0
- package/dist/esm/v2/hooks/useFocusFirstError.js +197 -0
- package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -0
- package/dist/esm/v2/hooks/useFocusTrap.js +202 -0
- package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -0
- package/dist/esm/v2/hooks/useFormAutoSave.js +181 -0
- package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -0
- package/dist/esm/v2/hooks/useFormCompletionProgress.js +131 -0
- package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -0
- package/dist/esm/v2/hooks/useResolvedDensity.js +44 -0
- package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -0
- package/dist/esm/v2/hooks/useSortedRows.js +32 -0
- package/dist/esm/v2/hooks/useSortedRows.js.map +1 -0
- package/dist/esm/v2/hooks/useTabLoading.js +79 -0
- package/dist/esm/v2/hooks/useTabLoading.js.map +1 -0
- package/dist/esm/v2/index.js +132 -0
- package/dist/esm/v2/index.js.map +1 -0
- package/dist/esm/v2/modalContext.js +108 -0
- package/dist/esm/v2/modalContext.js.map +1 -0
- package/dist/esm/v2/models/favorite.js +2 -0
- package/dist/esm/v2/models/favorite.js.map +1 -0
- package/dist/esm/v2/models/index.js +12 -0
- package/dist/esm/v2/models/index.js.map +1 -0
- package/dist/esm/v2/models/personalization.js +2 -0
- package/dist/esm/v2/models/personalization.js.map +1 -0
- package/dist/esm/v2/models/referentiel.js +2 -0
- package/dist/esm/v2/models/referentiel.js.map +1 -0
- package/dist/esm/v2/models/savedFilter.js +2 -0
- package/dist/esm/v2/models/savedFilter.js.map +1 -0
- package/dist/esm/v2/patterns/ActionBar.js +603 -0
- package/dist/esm/v2/patterns/ActionBar.js.map +1 -0
- package/dist/esm/v2/patterns/BulkActionBar.js +147 -0
- package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -0
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js +303 -0
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -0
- package/dist/esm/v2/patterns/ColumnsToggle.js +301 -0
- package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -0
- package/dist/esm/v2/patterns/DataGrid.js +820 -0
- package/dist/esm/v2/patterns/DataGrid.js.map +1 -0
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js +375 -0
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -0
- package/dist/esm/v2/patterns/DataGridToolbar.js +249 -0
- package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -0
- package/dist/esm/v2/patterns/DataGridVirtualized.js +523 -0
- package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -0
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +70 -0
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -0
- package/dist/esm/v2/patterns/FavoriteColumn.js +117 -0
- package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -0
- package/dist/esm/v2/patterns/FavoritesFilter.js +91 -0
- package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -0
- package/dist/esm/v2/patterns/FormErrorSummary.js +101 -0
- package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -0
- package/dist/esm/v2/patterns/FormPageShell.js +126 -0
- package/dist/esm/v2/patterns/FormPageShell.js.map +1 -0
- package/dist/esm/v2/patterns/FormSection.js +190 -0
- package/dist/esm/v2/patterns/FormSection.js.map +1 -0
- package/dist/esm/v2/patterns/FormikCheckbox.js +140 -0
- package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js +110 -0
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -0
- package/dist/esm/v2/patterns/FormikCombobox.js +118 -0
- package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -0
- package/dist/esm/v2/patterns/FormikDatePicker.js +162 -0
- package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -0
- package/dist/esm/v2/patterns/FormikDateTimePicker.js +150 -0
- package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
- package/dist/esm/v2/patterns/FormikErrorFocus.js +77 -0
- package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -0
- package/dist/esm/v2/patterns/FormikFile.js +148 -0
- package/dist/esm/v2/patterns/FormikFile.js.map +1 -0
- package/dist/esm/v2/patterns/FormikInput.js +130 -0
- package/dist/esm/v2/patterns/FormikInput.js.map +1 -0
- package/dist/esm/v2/patterns/FormikRadioGroup.js +141 -0
- package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
- package/dist/esm/v2/patterns/FormikReferentielField.js +116 -0
- package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -0
- package/dist/esm/v2/patterns/FormikSelect.js +162 -0
- package/dist/esm/v2/patterns/FormikSelect.js.map +1 -0
- package/dist/esm/v2/patterns/FormikTextarea.js +79 -0
- package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -0
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +212 -0
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -0
- package/dist/esm/v2/patterns/NetworkErrorBanner.js +72 -0
- package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -0
- package/dist/esm/v2/patterns/PageContent.js +62 -0
- package/dist/esm/v2/patterns/PageContent.js.map +1 -0
- package/dist/esm/v2/patterns/ReferentielField.js +615 -0
- package/dist/esm/v2/patterns/ReferentielField.js.map +1 -0
- package/dist/esm/v2/patterns/RowFavoriteToggle.js +122 -0
- package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
- package/dist/esm/v2/patterns/SaveFilterDialog.js +197 -0
- package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -0
- package/dist/esm/v2/patterns/SavedFiltersMenu.js +406 -0
- package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -0
- package/dist/esm/v2/patterns/SkeletonPageShell.js +342 -0
- package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -0
- package/dist/esm/v2/patterns/SortableHeader.js +179 -0
- package/dist/esm/v2/patterns/SortableHeader.js.map +1 -0
- package/dist/esm/v2/patterns/Tour.js +471 -0
- package/dist/esm/v2/patterns/Tour.js.map +1 -0
- package/dist/esm/v2/patterns/_dataGridShared.js +431 -0
- package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -0
- package/dist/esm/v2/patterns/_pickerSerialisation.js +74 -0
- package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
- package/dist/esm/v2/patterns/_sort.js +112 -0
- package/dist/esm/v2/patterns/_sort.js.map +1 -0
- package/dist/esm/v2/patterns/_useColumnReorder.js +257 -0
- package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -0
- package/dist/esm/v2/patterns/_useColumnResize.js +191 -0
- package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -0
- package/dist/esm/v2/patterns/index.js +178 -0
- package/dist/esm/v2/patterns/index.js.map +1 -0
- package/dist/esm/v2/personalization/PersonalizationProvider.js +168 -0
- package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -0
- package/dist/esm/v2/personalization/adapters/_storageKey.js +60 -0
- package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -0
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +124 -0
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -0
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +70 -0
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -0
- package/dist/esm/v2/personalization/adapters/index.js +11 -0
- package/dist/esm/v2/personalization/adapters/index.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/favorites.js +216 -0
- package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/favoritesView.js +111 -0
- package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js +209 -0
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/index.js +22 -0
- package/dist/esm/v2/personalization/capabilities/index.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/savedFilters.js +291 -0
- package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -0
- package/dist/esm/v2/personalization/createPersonalizationStore.js +472 -0
- package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -0
- package/dist/esm/v2/personalization/index.js +64 -0
- package/dist/esm/v2/personalization/index.js.map +1 -0
- package/dist/esm/v2/personalization/personalizationContext.js +108 -0
- package/dist/esm/v2/personalization/personalizationContext.js.map +1 -0
- package/dist/esm/v2/personalization/schema.js +92 -0
- package/dist/esm/v2/personalization/schema.js.map +1 -0
- package/dist/esm/v2/personalization/types.js +2 -0
- package/dist/esm/v2/personalization/types.js.map +1 -0
- package/dist/esm/v2/referentiel/ReferentielProvider.js +87 -0
- package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -0
- package/dist/esm/v2/referentiel/index.js +15 -0
- package/dist/esm/v2/referentiel/index.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielClient.js +37 -0
- package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielOptions.js +169 -0
- package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielSearch.js +132 -0
- package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -0
- package/dist/esm/v2/styles/base.css +425 -0
- package/dist/esm/v2/styles/css.d.ts +10 -0
- package/dist/esm/v2/styles/index.js +12 -0
- package/dist/esm/v2/styles/index.js.map +1 -0
- package/dist/esm/v2/theme/_brand.js +64 -0
- package/dist/esm/v2/theme/_brand.js.map +1 -0
- package/dist/esm/v2/theme/_brandSecondary.js +60 -0
- package/dist/esm/v2/theme/_brandSecondary.js.map +1 -0
- package/dist/esm/v2/theme/createPortnetTheme.js +548 -0
- package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -0
- package/dist/esm/v2/theme/cssVariables.js +198 -0
- package/dist/esm/v2/theme/cssVariables.js.map +1 -0
- package/dist/esm/v2/theme/index.js +32 -0
- package/dist/esm/v2/theme/index.js.map +1 -0
- package/dist/esm/v2/tokens/breakpoints.js +106 -0
- package/dist/esm/v2/tokens/breakpoints.js.map +1 -0
- package/dist/esm/v2/tokens/colors.js +219 -0
- package/dist/esm/v2/tokens/colors.js.map +1 -0
- package/dist/esm/v2/tokens/density.js +98 -0
- package/dist/esm/v2/tokens/density.js.map +1 -0
- package/dist/esm/v2/tokens/index.js +80 -0
- package/dist/esm/v2/tokens/index.js.map +1 -0
- package/dist/esm/v2/tokens/motion.js +88 -0
- package/dist/esm/v2/tokens/motion.js.map +1 -0
- package/dist/esm/v2/tokens/radius.js +22 -0
- package/dist/esm/v2/tokens/radius.js.map +1 -0
- package/dist/esm/v2/tokens/shadows.js +40 -0
- package/dist/esm/v2/tokens/shadows.js.map +1 -0
- package/dist/esm/v2/tokens/spacing.js +51 -0
- package/dist/esm/v2/tokens/spacing.js.map +1 -0
- package/dist/esm/v2/tokens/state.js +41 -0
- package/dist/esm/v2/tokens/state.js.map +1 -0
- package/dist/esm/v2/tokens/statusPalette.js +66 -0
- package/dist/esm/v2/tokens/statusPalette.js.map +1 -0
- package/dist/esm/v2/tokens/tokens.json +153 -0
- package/dist/esm/v2/tokens/typography.js +149 -0
- package/dist/esm/v2/tokens/typography.js.map +1 -0
- package/dist/esm/v2/tokens/zIndex.js +44 -0
- package/dist/esm/v2/tokens/zIndex.js.map +1 -0
- package/dist/esm/v2/types/common.js +2 -0
- package/dist/esm/v2/types/common.js.map +1 -0
- package/dist/esm/v2/types/datagrid.js +2 -0
- package/dist/esm/v2/types/datagrid.js.map +1 -0
- package/dist/esm/v2/types/index.js +12 -0
- package/dist/esm/v2/types/index.js.map +1 -0
- package/dist/esm/v2/utils/apiError.js +281 -0
- package/dist/esm/v2/utils/apiError.js.map +1 -0
- package/dist/esm/v2/utils/contrast.js +157 -0
- package/dist/esm/v2/utils/contrast.js.map +1 -0
- package/dist/esm/v2/utils/cx.js +38 -0
- package/dist/esm/v2/utils/cx.js.map +1 -0
- package/dist/esm/v2/utils/fileDownload.js +226 -0
- package/dist/esm/v2/utils/fileDownload.js.map +1 -0
- package/dist/esm/v2/utils/fmtMoney.js +78 -0
- package/dist/esm/v2/utils/fmtMoney.js.map +1 -0
- package/dist/esm/v2/utils/index.js +43 -0
- package/dist/esm/v2/utils/index.js.map +1 -0
- package/dist/esm/v2/utils/mergeLabels.js +86 -0
- package/dist/esm/v2/utils/mergeLabels.js.map +1 -0
- package/dist/esm/v2/utils/networkStatus.js +114 -0
- package/dist/esm/v2/utils/networkStatus.js.map +1 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -1
- package/dist/v2/__tests__/FieldError.test.js +160 -0
- package/dist/v2/__tests__/FieldError.test.js.map +1 -0
- package/dist/v2/__tests__/FieldWidth.test.js +150 -0
- package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
- package/dist/v2/__tests__/FileCard.test.js +144 -0
- package/dist/v2/__tests__/FileCard.test.js.map +1 -0
- package/dist/v2/__tests__/FormikCheckbox.test.js +268 -0
- package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
- package/dist/v2/__tests__/FormikDateTimePicker.test.js +247 -0
- package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js +381 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
- package/dist/v2/__tests__/MobileRowCard.test.js +52 -56
- package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/v2/__tests__/SectionErrorBoundary.test.js +237 -0
- package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
- package/dist/v2/__tests__/labels-merge.test.js +20 -24
- package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/v2/components/Accordion.d.ts +6 -6
- package/dist/v2/components/Accordion.d.ts.map +1 -1
- package/dist/v2/components/Accordion.js.map +1 -1
- package/dist/v2/components/ActionStrip.d.ts +12 -12
- package/dist/v2/components/ActionStrip.d.ts.map +1 -1
- package/dist/v2/components/ActionStrip.js.map +1 -1
- package/dist/v2/components/Banner.d.ts +48 -9
- package/dist/v2/components/Banner.d.ts.map +1 -1
- package/dist/v2/components/Banner.js +116 -35
- package/dist/v2/components/Banner.js.map +1 -1
- package/dist/v2/components/Busy.d.ts +3 -3
- package/dist/v2/components/Busy.d.ts.map +1 -1
- package/dist/v2/components/Busy.js.map +1 -1
- package/dist/v2/components/Button.d.ts +6 -6
- package/dist/v2/components/Button.d.ts.map +1 -1
- package/dist/v2/components/Button.js.map +1 -1
- package/dist/v2/components/CategoryTag.d.ts +3 -3
- package/dist/v2/components/CategoryTag.d.ts.map +1 -1
- package/dist/v2/components/CategoryTag.js.map +1 -1
- package/dist/v2/components/Checkbox.d.ts +11 -11
- package/dist/v2/components/Checkbox.d.ts.map +1 -1
- package/dist/v2/components/Checkbox.js.map +1 -1
- package/dist/v2/components/Chip.d.ts +8 -8
- package/dist/v2/components/Chip.d.ts.map +1 -1
- package/dist/v2/components/Chip.js +2 -1
- package/dist/v2/components/Chip.js.map +1 -1
- package/dist/v2/components/Combobox.d.ts +27 -27
- package/dist/v2/components/Combobox.d.ts.map +1 -1
- package/dist/v2/components/Combobox.js +3 -2
- package/dist/v2/components/Combobox.js.map +1 -1
- package/dist/v2/components/CommandPalette.d.ts +20 -20
- package/dist/v2/components/CommandPalette.d.ts.map +1 -1
- package/dist/v2/components/CommandPalette.js +2 -6
- package/dist/v2/components/CommandPalette.js.map +1 -1
- package/dist/v2/components/ConfirmDialog.d.ts +13 -13
- package/dist/v2/components/ConfirmDialog.d.ts.map +1 -1
- package/dist/v2/components/ConfirmDialog.js +2 -1
- package/dist/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/v2/components/DatePicker.d.ts +11 -11
- package/dist/v2/components/DatePicker.d.ts.map +1 -1
- package/dist/v2/components/DatePicker.js.map +1 -1
- package/dist/v2/components/DateRangePicker.d.ts +16 -16
- package/dist/v2/components/DateRangePicker.d.ts.map +1 -1
- package/dist/v2/components/DateRangePicker.js +2 -1
- package/dist/v2/components/DateRangePicker.js.map +1 -1
- package/dist/v2/components/DateTimePicker.d.ts +11 -11
- package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
- package/dist/v2/components/DateTimePicker.js +37 -4
- package/dist/v2/components/DateTimePicker.js.map +1 -1
- package/dist/v2/components/Drawer.d.ts +18 -18
- package/dist/v2/components/Drawer.d.ts.map +1 -1
- package/dist/v2/components/Drawer.js +2 -1
- package/dist/v2/components/Drawer.js.map +1 -1
- package/dist/v2/components/Dropzone.d.ts +34 -34
- package/dist/v2/components/Dropzone.d.ts.map +1 -1
- package/dist/v2/components/Dropzone.js +11 -3
- package/dist/v2/components/Dropzone.js.map +1 -1
- package/dist/v2/components/EmptyState.d.ts +7 -7
- package/dist/v2/components/EmptyState.d.ts.map +1 -1
- package/dist/v2/components/EmptyState.js.map +1 -1
- package/dist/v2/components/FavoriteToggle.d.ts +7 -7
- package/dist/v2/components/FavoriteToggle.d.ts.map +1 -1
- package/dist/v2/components/FavoriteToggle.js +2 -1
- package/dist/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/v2/components/Field.d.ts +76 -13
- package/dist/v2/components/Field.d.ts.map +1 -1
- package/dist/v2/components/Field.js +87 -9
- package/dist/v2/components/Field.js.map +1 -1
- package/dist/v2/components/FieldError.d.ts +78 -0
- package/dist/v2/components/FieldError.d.ts.map +1 -0
- package/dist/v2/components/FieldError.js +131 -0
- package/dist/v2/components/FieldError.js.map +1 -0
- package/dist/v2/components/FieldHelp.d.ts +7 -7
- package/dist/v2/components/FieldHelp.d.ts.map +1 -1
- package/dist/v2/components/FieldHelp.js.map +1 -1
- package/dist/v2/components/FileCard.d.ts +75 -0
- package/dist/v2/components/FileCard.d.ts.map +1 -0
- package/dist/v2/components/FileCard.js +169 -0
- package/dist/v2/components/FileCard.js.map +1 -0
- package/dist/v2/components/FilterTab.d.ts +9 -9
- package/dist/v2/components/FilterTab.d.ts.map +1 -1
- package/dist/v2/components/FilterTab.js +2 -1
- package/dist/v2/components/FilterTab.js.map +1 -1
- package/dist/v2/components/FormGrid.d.ts +9 -4
- package/dist/v2/components/FormGrid.d.ts.map +1 -1
- package/dist/v2/components/FormGrid.js +11 -1
- package/dist/v2/components/FormGrid.js.map +1 -1
- package/dist/v2/components/FormikDisplay.d.ts +6 -6
- package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
- package/dist/v2/components/FormikDisplay.js.map +1 -1
- package/dist/v2/components/Input.d.ts +6 -6
- package/dist/v2/components/Input.d.ts.map +1 -1
- package/dist/v2/components/Input.js.map +1 -1
- package/dist/v2/components/KPICard.d.ts +43 -13
- package/dist/v2/components/KPICard.d.ts.map +1 -1
- package/dist/v2/components/KPICard.js +53 -14
- package/dist/v2/components/KPICard.js.map +1 -1
- package/dist/v2/components/KPIStrip.d.ts +68 -0
- package/dist/v2/components/KPIStrip.d.ts.map +1 -0
- package/dist/v2/components/KPIStrip.js +92 -0
- package/dist/v2/components/KPIStrip.js.map +1 -0
- package/dist/v2/components/KV.d.ts +3 -3
- package/dist/v2/components/KV.d.ts.map +1 -1
- package/dist/v2/components/KV.js.map +1 -1
- package/dist/v2/components/KVGrid.d.ts +2 -2
- package/dist/v2/components/KVGrid.d.ts.map +1 -1
- package/dist/v2/components/KVGrid.js +8 -1
- package/dist/v2/components/KVGrid.js.map +1 -1
- package/dist/v2/components/Layout.d.ts +7 -7
- package/dist/v2/components/Layout.d.ts.map +1 -1
- package/dist/v2/components/Layout.js.map +1 -1
- package/dist/v2/components/MobileRowCard.d.ts +13 -13
- package/dist/v2/components/MobileRowCard.d.ts.map +1 -1
- package/dist/v2/components/MobileRowCard.js.map +1 -1
- package/dist/v2/components/Modal.d.ts +12 -12
- package/dist/v2/components/Modal.d.ts.map +1 -1
- package/dist/v2/components/Modal.js.map +1 -1
- package/dist/v2/components/NetworkErrorPage.d.ts +1 -1
- package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
- package/dist/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/v2/components/NumberInput.d.ts +14 -14
- package/dist/v2/components/NumberInput.d.ts.map +1 -1
- package/dist/v2/components/NumberInput.js +7 -6
- package/dist/v2/components/NumberInput.js.map +1 -1
- package/dist/v2/components/OverflowMenu.d.ts +14 -14
- package/dist/v2/components/OverflowMenu.d.ts.map +1 -1
- package/dist/v2/components/OverflowMenu.js +4 -8
- package/dist/v2/components/OverflowMenu.js.map +1 -1
- package/dist/v2/components/PdfViewer.d.ts +9 -9
- package/dist/v2/components/PdfViewer.d.ts.map +1 -1
- package/dist/v2/components/PdfViewer.js.map +1 -1
- package/dist/v2/components/ProgressBar.d.ts +10 -10
- package/dist/v2/components/ProgressBar.d.ts.map +1 -1
- package/dist/v2/components/ProgressBar.js.map +1 -1
- package/dist/v2/components/Radio.d.ts +7 -7
- package/dist/v2/components/Radio.d.ts.map +1 -1
- package/dist/v2/components/Radio.js.map +1 -1
- package/dist/v2/components/SectionErrorBoundary.d.ts +89 -0
- package/dist/v2/components/SectionErrorBoundary.d.ts.map +1 -0
- package/dist/v2/components/SectionErrorBoundary.js +221 -0
- package/dist/v2/components/SectionErrorBoundary.js.map +1 -0
- package/dist/v2/components/SectionHeader.d.ts +5 -5
- package/dist/v2/components/SectionHeader.d.ts.map +1 -1
- package/dist/v2/components/SectionHeader.js.map +1 -1
- package/dist/v2/components/Segmented.d.ts +11 -11
- package/dist/v2/components/Segmented.d.ts.map +1 -1
- package/dist/v2/components/Segmented.js.map +1 -1
- package/dist/v2/components/Select.d.ts +33 -15
- package/dist/v2/components/Select.d.ts.map +1 -1
- package/dist/v2/components/Select.js +147 -30
- package/dist/v2/components/Select.js.map +1 -1
- package/dist/v2/components/ServerErrorPage.d.ts +1 -1
- package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
- package/dist/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/v2/components/Skeleton.d.ts +15 -15
- package/dist/v2/components/Skeleton.d.ts.map +1 -1
- package/dist/v2/components/Skeleton.js.map +1 -1
- package/dist/v2/components/SkipLink.d.ts +2 -2
- package/dist/v2/components/SkipLink.d.ts.map +1 -1
- package/dist/v2/components/SkipLink.js.map +1 -1
- package/dist/v2/components/Status.d.ts +3 -3
- package/dist/v2/components/Status.d.ts.map +1 -1
- package/dist/v2/components/Status.js.map +1 -1
- package/dist/v2/components/Stepper.d.ts +28 -22
- package/dist/v2/components/Stepper.d.ts.map +1 -1
- package/dist/v2/components/Stepper.js +31 -5
- package/dist/v2/components/Stepper.js.map +1 -1
- package/dist/v2/components/Surface.d.ts +94 -0
- package/dist/v2/components/Surface.d.ts.map +1 -0
- package/dist/v2/components/Surface.js +163 -0
- package/dist/v2/components/Surface.js.map +1 -0
- package/dist/v2/components/Switch.d.ts +4 -4
- package/dist/v2/components/Switch.d.ts.map +1 -1
- package/dist/v2/components/Switch.js.map +1 -1
- package/dist/v2/components/Tabs.d.ts +6 -6
- package/dist/v2/components/Tabs.d.ts.map +1 -1
- package/dist/v2/components/Tabs.js.map +1 -1
- package/dist/v2/components/TelInput.d.ts +8 -8
- package/dist/v2/components/TelInput.d.ts.map +1 -1
- package/dist/v2/components/TelInput.js +18 -18
- package/dist/v2/components/TelInput.js.map +1 -1
- package/dist/v2/components/Textarea.d.ts +1 -1
- package/dist/v2/components/Textarea.d.ts.map +1 -1
- package/dist/v2/components/Textarea.js.map +1 -1
- package/dist/v2/components/TimePicker.d.ts +11 -11
- package/dist/v2/components/TimePicker.d.ts.map +1 -1
- package/dist/v2/components/TimePicker.js.map +1 -1
- package/dist/v2/components/Toast.d.ts +6 -6
- package/dist/v2/components/Toast.d.ts.map +1 -1
- package/dist/v2/components/Toast.js +9 -8
- package/dist/v2/components/Toast.js.map +1 -1
- package/dist/v2/components/Tooltip.d.ts +1 -1
- package/dist/v2/components/Tooltip.d.ts.map +1 -1
- package/dist/v2/components/Tooltip.js.map +1 -1
- package/dist/v2/components/index.d.ts +170 -0
- package/dist/v2/components/index.d.ts.map +1 -1
- package/dist/v2/components/index.js +35 -0
- package/dist/v2/components/index.js.map +1 -1
- package/dist/v2/index.d.ts.map +1 -1
- package/dist/v2/index.js.map +1 -1
- package/dist/v2/models/favorite.d.ts +1 -1
- package/dist/v2/models/favorite.d.ts.map +1 -1
- package/dist/v2/models/favorite.js.map +1 -1
- package/dist/v2/models/personalization.d.ts +13 -13
- package/dist/v2/models/personalization.d.ts.map +1 -1
- package/dist/v2/models/personalization.js.map +1 -1
- package/dist/v2/models/referentiel.d.ts +11 -11
- package/dist/v2/models/referentiel.d.ts.map +1 -1
- package/dist/v2/models/referentiel.js.map +1 -1
- package/dist/v2/models/savedFilter.d.ts +8 -8
- package/dist/v2/models/savedFilter.d.ts.map +1 -1
- package/dist/v2/models/savedFilter.js.map +1 -1
- package/dist/v2/patterns/ActionBar.d.ts +33 -33
- package/dist/v2/patterns/ActionBar.d.ts.map +1 -1
- package/dist/v2/patterns/ActionBar.js +2 -1
- package/dist/v2/patterns/ActionBar.js.map +1 -1
- package/dist/v2/patterns/BulkActionBar.d.ts +12 -12
- package/dist/v2/patterns/BulkActionBar.d.ts.map +1 -1
- package/dist/v2/patterns/BulkActionBar.js +2 -1
- package/dist/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/v2/patterns/CollapsibleDataGrid.d.ts +15 -15
- package/dist/v2/patterns/CollapsibleDataGrid.d.ts.map +1 -1
- package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/v2/patterns/ColumnsToggle.d.ts +7 -7
- package/dist/v2/patterns/ColumnsToggle.d.ts.map +1 -1
- package/dist/v2/patterns/ColumnsToggle.js +4 -8
- package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -12
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.js +9 -8
- package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/v2/patterns/DataGridToolbar.d.ts +40 -40
- package/dist/v2/patterns/DataGridToolbar.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridToolbar.js +2 -1
- package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/v2/patterns/DataGridVirtualized.d.ts +27 -27
- package/dist/v2/patterns/DataGridVirtualized.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts +5 -5
- package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts.map +1 -1
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/v2/patterns/FavoriteColumn.d.ts +15 -15
- package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
- package/dist/v2/patterns/FavoriteColumn.js +14 -61
- package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/v2/patterns/FavoritesFilter.d.ts +10 -10
- package/dist/v2/patterns/FavoritesFilter.d.ts.map +1 -1
- package/dist/v2/patterns/FavoritesFilter.js +2 -1
- package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/v2/patterns/FormErrorSummary.d.ts +4 -4
- package/dist/v2/patterns/FormErrorSummary.d.ts.map +1 -1
- package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/v2/patterns/FormPageShell.d.ts +4 -4
- package/dist/v2/patterns/FormPageShell.d.ts.map +1 -1
- package/dist/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/v2/patterns/FormSection.d.ts +19 -8
- package/dist/v2/patterns/FormSection.d.ts.map +1 -1
- package/dist/v2/patterns/FormSection.js +106 -71
- package/dist/v2/patterns/FormSection.js.map +1 -1
- package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
- package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
- package/dist/v2/patterns/FormikCheckbox.js +147 -0
- package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts +6 -6
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/v2/patterns/FormikCombobox.d.ts +18 -12
- package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCombobox.js +5 -2
- package/dist/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.d.ts +48 -8
- package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.js +58 -65
- package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
- package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
- package/dist/v2/patterns/FormikDateTimePicker.js +158 -0
- package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
- package/dist/v2/patterns/FormikErrorFocus.d.ts +3 -3
- package/dist/v2/patterns/FormikErrorFocus.d.ts.map +1 -1
- package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/v2/patterns/FormikFile.d.ts +8 -8
- package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
- package/dist/v2/patterns/FormikFile.js.map +1 -1
- package/dist/v2/patterns/FormikInput.d.ts +51 -6
- package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
- package/dist/v2/patterns/FormikInput.js +53 -2
- package/dist/v2/patterns/FormikInput.js.map +1 -1
- package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
- package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
- package/dist/v2/patterns/FormikRadioGroup.js +148 -0
- package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
- package/dist/v2/patterns/FormikReferentielField.d.ts +8 -8
- package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/v2/patterns/FormikSelect.d.ts +41 -12
- package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
- package/dist/v2/patterns/FormikSelect.js +32 -3
- package/dist/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/v2/patterns/FormikTextarea.d.ts +14 -6
- package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
- package/dist/v2/patterns/FormikTextarea.js +5 -2
- package/dist/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +21 -8
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.js +27 -14
- package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/v2/patterns/NetworkErrorBanner.d.ts +4 -4
- package/dist/v2/patterns/NetworkErrorBanner.d.ts.map +1 -1
- package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/v2/patterns/PageContent.d.ts +3 -3
- package/dist/v2/patterns/PageContent.d.ts.map +1 -1
- package/dist/v2/patterns/PageContent.js.map +1 -1
- package/dist/v2/patterns/ReferentielField.d.ts +49 -49
- package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/ReferentielField.js +2 -1
- package/dist/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/v2/patterns/RowFavoriteToggle.d.ts +92 -0
- package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
- package/dist/v2/patterns/RowFavoriteToggle.js +127 -0
- package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
- package/dist/v2/patterns/SaveFilterDialog.d.ts +10 -10
- package/dist/v2/patterns/SaveFilterDialog.d.ts.map +1 -1
- package/dist/v2/patterns/SaveFilterDialog.js +9 -8
- package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/v2/patterns/SavedFiltersMenu.d.ts +7 -7
- package/dist/v2/patterns/SavedFiltersMenu.d.ts.map +1 -1
- package/dist/v2/patterns/SavedFiltersMenu.js +9 -8
- package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/v2/patterns/SkeletonPageShell.d.ts +7 -7
- package/dist/v2/patterns/SkeletonPageShell.d.ts.map +1 -1
- package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/v2/patterns/SortableHeader.d.ts +1 -1
- package/dist/v2/patterns/SortableHeader.d.ts.map +1 -1
- package/dist/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/v2/patterns/Tour.d.ts +12 -12
- package/dist/v2/patterns/Tour.d.ts.map +1 -1
- package/dist/v2/patterns/Tour.js +9 -8
- package/dist/v2/patterns/Tour.js.map +1 -1
- package/dist/v2/patterns/_dataGridShared.d.ts +25 -6
- package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
- package/dist/v2/patterns/_dataGridShared.js +37 -3
- package/dist/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
- package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
- package/dist/v2/patterns/_pickerSerialisation.js +81 -0
- package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
- package/dist/v2/patterns/_useColumnReorder.d.ts +1 -1
- package/dist/v2/patterns/_useColumnReorder.d.ts.map +1 -1
- package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/v2/patterns/_useColumnResize.d.ts +1 -1
- package/dist/v2/patterns/_useColumnResize.d.ts.map +1 -1
- package/dist/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/v2/patterns/index.d.ts +114 -0
- package/dist/v2/patterns/index.d.ts.map +1 -1
- package/dist/v2/patterns/index.js +34 -0
- package/dist/v2/patterns/index.js.map +1 -1
- package/dist/v2/personalization/PersonalizationProvider.d.ts +9 -9
- package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
- package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts.map +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts.map +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/v2/personalization/capabilities/favoritesView.d.ts +3 -3
- package/dist/v2/personalization/capabilities/favoritesView.d.ts.map +1 -1
- package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
- package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/gridPreferences.js +215 -0
- package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
- package/dist/v2/personalization/capabilities/index.d.ts +6 -0
- package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
- package/dist/v2/personalization/capabilities/index.js +13 -0
- package/dist/v2/personalization/capabilities/index.js.map +1 -1
- package/dist/v2/personalization/capabilities/savedFilters.d.ts +3 -3
- package/dist/v2/personalization/capabilities/savedFilters.d.ts.map +1 -1
- package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.d.ts +8 -8
- package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/v2/personalization/index.d.ts +18 -0
- package/dist/v2/personalization/index.d.ts.map +1 -1
- package/dist/v2/personalization/index.js +13 -0
- package/dist/v2/personalization/index.js.map +1 -1
- package/dist/v2/personalization/schema.d.ts +2 -2
- package/dist/v2/personalization/schema.d.ts.map +1 -1
- package/dist/v2/personalization/schema.js.map +1 -1
- package/dist/v2/personalization/types.d.ts +19 -19
- package/dist/v2/personalization/types.d.ts.map +1 -1
- package/dist/v2/personalization/types.js.map +1 -1
- package/dist/v2/referentiel/ReferentielProvider.d.ts +4 -4
- package/dist/v2/referentiel/ReferentielProvider.d.ts.map +1 -1
- package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.d.ts +4 -4
- package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.d.ts +3 -3
- package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/v2/theme/createPortnetTheme.d.ts +32 -7
- package/dist/v2/theme/createPortnetTheme.d.ts.map +1 -1
- package/dist/v2/theme/createPortnetTheme.js +25 -1
- package/dist/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/v2/types/datagrid.d.ts +59 -59
- package/dist/v2/types/datagrid.d.ts.map +1 -1
- package/dist/v2/types/datagrid.js.map +1 -1
- package/dist/v2/utils/apiError.d.ts +65 -4
- package/dist/v2/utils/apiError.d.ts.map +1 -1
- package/dist/v2/utils/apiError.js +69 -6
- package/dist/v2/utils/apiError.js.map +1 -1
- package/dist/v2/utils/index.d.ts +1 -0
- package/dist/v2/utils/index.d.ts.map +1 -1
- package/dist/v2/utils/index.js +7 -0
- package/dist/v2/utils/index.js.map +1 -1
- package/dist/v2/utils/mergeLabels.d.ts +59 -0
- package/dist/v2/utils/mergeLabels.d.ts.map +1 -0
- package/dist/v2/utils/mergeLabels.js +93 -0
- package/dist/v2/utils/mergeLabels.js.map +1 -0
- package/package.json +23 -15
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @portnet/ui · v2 · User Personalization Foundation
|
|
3
|
+
* Public surface.
|
|
4
|
+
*
|
|
5
|
+
* Import via the dedicated subpath:
|
|
6
|
+
* import {
|
|
7
|
+
* UserPersonalizationProvider,
|
|
8
|
+
* useFavorites,
|
|
9
|
+
* useFavoritesView,
|
|
10
|
+
* useSavedFilters,
|
|
11
|
+
* FavoriteToggle,
|
|
12
|
+
* } from "@portnet/ui/v2/personalization";
|
|
13
|
+
*
|
|
14
|
+
* Surface is intentionally minimal (architecture doc §2.8 — minimum API
|
|
15
|
+
* surface). The store handle and the internal selector primitive are NOT
|
|
16
|
+
* exported; hosts interact through the provider, the capability hooks,
|
|
17
|
+
* and the capability components.
|
|
18
|
+
*
|
|
19
|
+
* The grid-bound composites — SaveFilterDialog / SavedFiltersMenu (saved
|
|
20
|
+
* filters) and makeFavoriteColumn / FavoritesFilter (favorites) — are
|
|
21
|
+
* exposed via @portnet/ui/v2 (patterns/), not re-exported here, so the
|
|
22
|
+
* personalization barrel never imports from patterns/.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/* Provider — the single configuration point. */
|
|
26
|
+
export { default as UserPersonalizationProvider } from "./PersonalizationProvider";
|
|
27
|
+
|
|
28
|
+
/* Built-in storage adapters (a remote adapter will join them, swap-in). */
|
|
29
|
+
export { default as createLocalStorageAdapter } from "./adapters/createLocalStorageAdapter";
|
|
30
|
+
export { default as createMemoryAdapter } from "./adapters/createMemoryAdapter";
|
|
31
|
+
|
|
32
|
+
/* Capability registration seam — for custom/host-defined capabilities. */
|
|
33
|
+
export { registerCapability, makeEnvelope } from "./schema";
|
|
34
|
+
|
|
35
|
+
/* Canonical domain types — the TS contract that replaced the runtime
|
|
36
|
+
* PropTypes shapes (Scope / Adapter / FavoriteRef / SavedFilter). Type-only:
|
|
37
|
+
* erased from the runtime bundle. */
|
|
38
|
+
|
|
39
|
+
/* Favorites capability (Batch 3) + view logic (Batch 5). */
|
|
40
|
+
export { useFavorites, useIsFavorite, FAVORITES_CAPABILITY_ID } from "./capabilities/favorites";
|
|
41
|
+
export { useFavoritesView, filterRowsByFavorites, sortRowsByFavorites, FAVORITES_FILTER, FAVORITES_SORT } from "./capabilities/favoritesView";
|
|
42
|
+
export { default as FavoriteToggle } from "../components/FavoriteToggle";
|
|
43
|
+
|
|
44
|
+
/* Saved filters capability (Batch 4). Composites in v2 patterns/. */
|
|
45
|
+
export { useSavedFilters, SAVED_FILTERS_CAPABILITY_ID } from "./capabilities/savedFilters";
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Grid preferences capability (gap G-35) — per-user, per-resource hidden
|
|
49
|
+
* columns.
|
|
50
|
+
*
|
|
51
|
+
* `DataGridToolbar` owns the column-visibility UI but holds no state, so every
|
|
52
|
+
* host persisted the choice itself in a bare `localStorage` key, which is NOT
|
|
53
|
+
* user-scoped — unlike this foundation's `…:{userId}:{capabilityId}` scheme.
|
|
54
|
+
* On a shared workstation one user inherited another's hidden columns.
|
|
55
|
+
*
|
|
56
|
+
* A host could not fix it: `registerCapability` is exported below as a seam
|
|
57
|
+
* "for custom/host-defined capabilities", but `usePersonalizationStore` and
|
|
58
|
+
* `useStoreSelector` are deliberately private (§2.8, minimum API surface), so
|
|
59
|
+
* a registered capability had no way to be read or written. The seam is
|
|
60
|
+
* advertised without being complete; until that is resolved, a new capability
|
|
61
|
+
* has to ship here.
|
|
62
|
+
*/
|
|
63
|
+
export { useGridPreferences, GRID_PREFERENCES_CAPABILITY_ID } from "./capabilities/gridPreferences";
|
|
64
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","UserPersonalizationProvider","createLocalStorageAdapter","createMemoryAdapter","registerCapability","makeEnvelope","useFavorites","useIsFavorite","FAVORITES_CAPABILITY_ID","useFavoritesView","filterRowsByFavorites","sortRowsByFavorites","FAVORITES_FILTER","FAVORITES_SORT","FavoriteToggle","useSavedFilters","SAVED_FILTERS_CAPABILITY_ID","useGridPreferences","GRID_PREFERENCES_CAPABILITY_ID"],"sources":["../../../../src/lib/v2/personalization/index.ts"],"sourcesContent":["/**\r\n * @portnet/ui · v2 · User Personalization Foundation\r\n * Public surface.\r\n *\r\n * Import via the dedicated subpath:\r\n * import {\r\n * UserPersonalizationProvider,\r\n * useFavorites,\r\n * useFavoritesView,\r\n * useSavedFilters,\r\n * FavoriteToggle,\r\n * } from \"@portnet/ui/v2/personalization\";\r\n *\r\n * Surface is intentionally minimal (architecture doc §2.8 — minimum API\r\n * surface). The store handle and the internal selector primitive are NOT\r\n * exported; hosts interact through the provider, the capability hooks,\r\n * and the capability components.\r\n *\r\n * The grid-bound composites — SaveFilterDialog / SavedFiltersMenu (saved\r\n * filters) and makeFavoriteColumn / FavoritesFilter (favorites) — are\r\n * exposed via @portnet/ui/v2 (patterns/), not re-exported here, so the\r\n * personalization barrel never imports from patterns/.\r\n */\r\n\r\n/* Provider — the single configuration point. */\r\nexport { default as UserPersonalizationProvider } from \"./PersonalizationProvider\";\r\n\r\n/* Built-in storage adapters (a remote adapter will join them, swap-in). */\r\nexport { default as createLocalStorageAdapter } from \"./adapters/createLocalStorageAdapter\";\r\nexport { default as createMemoryAdapter } from \"./adapters/createMemoryAdapter\";\r\n\r\n/* Capability registration seam — for custom/host-defined capabilities. */\r\nexport { registerCapability, makeEnvelope } from \"./schema\";\r\n\r\n/* Canonical domain types — the TS contract that replaced the runtime\r\n * PropTypes shapes (Scope / Adapter / FavoriteRef / SavedFilter). Type-only:\r\n * erased from the runtime bundle. */\r\nexport type { Scope, Adapter, FavoriteRef, SavedFilter } from \"./types\";\r\n\r\n/* Favorites capability (Batch 3) + view logic (Batch 5). */\r\nexport { useFavorites, useIsFavorite, FAVORITES_CAPABILITY_ID } from \"./capabilities/favorites\";\r\nexport {\r\n useFavoritesView,\r\n filterRowsByFavorites,\r\n sortRowsByFavorites,\r\n FAVORITES_FILTER,\r\n FAVORITES_SORT,\r\n} from \"./capabilities/favoritesView\";\r\nexport { default as FavoriteToggle } from \"../components/FavoriteToggle\";\r\n\r\n/* Saved filters capability (Batch 4). Composites in v2 patterns/. */\r\nexport { useSavedFilters, SAVED_FILTERS_CAPABILITY_ID } from \"./capabilities/savedFilters\";\r\n\r\n/**\r\n * Grid preferences capability (gap G-35) — per-user, per-resource hidden\r\n * columns.\r\n *\r\n * `DataGridToolbar` owns the column-visibility UI but holds no state, so every\r\n * host persisted the choice itself in a bare `localStorage` key, which is NOT\r\n * user-scoped — unlike this foundation's `…:{userId}:{capabilityId}` scheme.\r\n * On a shared workstation one user inherited another's hidden columns.\r\n *\r\n * A host could not fix it: `registerCapability` is exported below as a seam\r\n * \"for custom/host-defined capabilities\", but `usePersonalizationStore` and\r\n * `useStoreSelector` are deliberately private (§2.8, minimum API surface), so\r\n * a registered capability had no way to be read or written. The seam is\r\n * advertised without being complete; until that is resolved, a new capability\r\n * has to ship here.\r\n */\r\nexport {\r\n useGridPreferences,\r\n GRID_PREFERENCES_CAPABILITY_ID,\r\n} from \"./capabilities/gridPreferences\";\r\nexport type {\r\n UseGridPreferencesResult,\r\n GridPreferencesEntry,\r\n} from \"./capabilities/gridPreferences\";\r\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,OAAO,IAAIC,2BAA2B,QAAQ,2BAA2B;;AAElF;AACA,SAASD,OAAO,IAAIE,yBAAyB,QAAQ,sCAAsC;AAC3F,SAASF,OAAO,IAAIG,mBAAmB,QAAQ,gCAAgC;;AAE/E;AACA,SAASC,kBAAkB,EAAEC,YAAY,QAAQ,UAAU;;AAE3D;AACA;AACA;;AAGA;AACA,SAASC,YAAY,EAAEC,aAAa,EAAEC,uBAAuB,QAAQ,0BAA0B;AAC/F,SACEC,gBAAgB,EAChBC,qBAAqB,EACrBC,mBAAmB,EACnBC,gBAAgB,EAChBC,cAAc,QACT,8BAA8B;AACrC,SAASb,OAAO,IAAIc,cAAc,QAAQ,8BAA8B;;AAExE;AACA,SAASC,eAAe,EAAEC,2BAA2B,QAAQ,6BAA6B;;AAE1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SACEC,kBAAkB,EAClBC,8BAA8B,QACzB,gCAAgC","ignoreList":[]}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* personalizationContext — Portnet UI v2 · personalization
|
|
3
|
+
*
|
|
4
|
+
* Two contexts, by design (architecture doc §2.5):
|
|
5
|
+
* - PersonalizationConfigContext : STABLE config { scope, labels }, set
|
|
6
|
+
* once by the provider. Low churn.
|
|
7
|
+
* - PersonalizationStoreContext : the store handle. Mutable preference
|
|
8
|
+
* state NEVER travels through context — it is read via
|
|
9
|
+
* useSyncExternalStore selectors. A component toggling a favorite
|
|
10
|
+
* cannot re-render a component reading saved filters.
|
|
11
|
+
*
|
|
12
|
+
* `useStoreSelector` is the internal subscription primitive: a
|
|
13
|
+
* useSyncExternalStore wrapper that caches by (snapshot, selector) and
|
|
14
|
+
* supports an optional equality function so derived/object selections stay
|
|
15
|
+
* referentially stable. It is NOT exported from the public surface — the
|
|
16
|
+
* capability slices (Batch 3/4) consume it; hosts use the capability hooks.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import * as React from "react";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Merged label bag (provider defaults + host overrides). The concrete
|
|
23
|
+
* default values live in DEFAULT_PERSONALIZATION_LABELS in the provider;
|
|
24
|
+
* this is the canonical type both the provider and the capability slices
|
|
25
|
+
* import.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/** Stable configuration carried by PersonalizationConfigContext. */
|
|
29
|
+
|
|
30
|
+
export var PersonalizationConfigContext = /*#__PURE__*/React.createContext(null);
|
|
31
|
+
export var PersonalizationStoreContext = /*#__PURE__*/React.createContext(null);
|
|
32
|
+
export function usePersonalizationConfig() {
|
|
33
|
+
var ctx = React.useContext(PersonalizationConfigContext);
|
|
34
|
+
if (!ctx) {
|
|
35
|
+
throw new Error("[@portnet/ui v2] usePersonalizationConfig() must be used inside <UserPersonalizationProvider>.");
|
|
36
|
+
}
|
|
37
|
+
return ctx;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** The store handle. */
|
|
41
|
+
export function usePersonalizationStore() {
|
|
42
|
+
var store = React.useContext(PersonalizationStoreContext);
|
|
43
|
+
if (!store) {
|
|
44
|
+
throw new Error("[@portnet/ui v2] personalization hooks must be used inside <UserPersonalizationProvider>.");
|
|
45
|
+
}
|
|
46
|
+
return store;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Convenience: the current scope. */
|
|
50
|
+
export function useScope() {
|
|
51
|
+
return usePersonalizationConfig().scope;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** Convenience: merged labels (provider defaults + host overrides). */
|
|
55
|
+
export function usePersonalizationLabels() {
|
|
56
|
+
return usePersonalizationConfig().labels;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Subscribe to the store with a selector. Returns a referentially stable
|
|
60
|
+
* value when the selected slice is unchanged — required by
|
|
61
|
+
* useSyncExternalStore and the basis of the no-cross-capability-re-render
|
|
62
|
+
* guarantee.
|
|
63
|
+
*
|
|
64
|
+
* The cache is keyed on (snapshot identity, selector identity, isEqual
|
|
65
|
+
* identity). When the snapshot is unchanged for the same selector, the
|
|
66
|
+
* memoised selection is returned without re-running the selector. When the
|
|
67
|
+
* snapshot changes, the selector re-runs; if `isEqual` is supplied and the
|
|
68
|
+
* new value is equal to the previous one, the previous reference is kept.
|
|
69
|
+
*
|
|
70
|
+
* Selectors should be stable (e.g. useCallback) OR rely on the store's
|
|
71
|
+
* structural sharing returning stable slice references — both keep this
|
|
72
|
+
* loop-free.
|
|
73
|
+
*/
|
|
74
|
+
export function useStoreSelector(selector, isEqual) {
|
|
75
|
+
var store = usePersonalizationStore();
|
|
76
|
+
var cacheRef = React.useRef(null);
|
|
77
|
+
function getSelection() {
|
|
78
|
+
var snapshot = store.getSnapshot();
|
|
79
|
+
var cache = cacheRef.current;
|
|
80
|
+
if (cache && Object.is(cache.snapshot, snapshot) && cache.selector === selector && cache.isEqual === isEqual) {
|
|
81
|
+
return cache.selection;
|
|
82
|
+
}
|
|
83
|
+
var nextSelection = selector(snapshot);
|
|
84
|
+
if (cache && cache.hasValue && typeof isEqual === "function" && isEqual(cache.selection, nextSelection)) {
|
|
85
|
+
cacheRef.current = {
|
|
86
|
+
snapshot: snapshot,
|
|
87
|
+
selector: selector,
|
|
88
|
+
isEqual: isEqual,
|
|
89
|
+
selection: cache.selection,
|
|
90
|
+
hasValue: true
|
|
91
|
+
};
|
|
92
|
+
return cache.selection;
|
|
93
|
+
}
|
|
94
|
+
cacheRef.current = {
|
|
95
|
+
snapshot: snapshot,
|
|
96
|
+
selector: selector,
|
|
97
|
+
isEqual: isEqual,
|
|
98
|
+
selection: nextSelection,
|
|
99
|
+
hasValue: true
|
|
100
|
+
};
|
|
101
|
+
return nextSelection;
|
|
102
|
+
}
|
|
103
|
+
function getServerSelection() {
|
|
104
|
+
return selector(store.getServerSnapshot());
|
|
105
|
+
}
|
|
106
|
+
return React.useSyncExternalStore(store.subscribe, getSelection, getServerSelection);
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=personalizationContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"personalizationContext.js","names":["React","PersonalizationConfigContext","createContext","PersonalizationStoreContext","usePersonalizationConfig","ctx","useContext","Error","usePersonalizationStore","store","useScope","scope","usePersonalizationLabels","labels","useStoreSelector","selector","isEqual","cacheRef","useRef","getSelection","snapshot","getSnapshot","cache","current","Object","is","selection","nextSelection","hasValue","getServerSelection","getServerSnapshot","useSyncExternalStore","subscribe"],"sources":["../../../../src/lib/v2/personalization/personalizationContext.ts"],"sourcesContent":["/**\r\n * personalizationContext — Portnet UI v2 · personalization\r\n *\r\n * Two contexts, by design (architecture doc §2.5):\r\n * - PersonalizationConfigContext : STABLE config { scope, labels }, set\r\n * once by the provider. Low churn.\r\n * - PersonalizationStoreContext : the store handle. Mutable preference\r\n * state NEVER travels through context — it is read via\r\n * useSyncExternalStore selectors. A component toggling a favorite\r\n * cannot re-render a component reading saved filters.\r\n *\r\n * `useStoreSelector` is the internal subscription primitive: a\r\n * useSyncExternalStore wrapper that caches by (snapshot, selector) and\r\n * supports an optional equality function so derived/object selections stay\r\n * referentially stable. It is NOT exported from the public surface — the\r\n * capability slices (Batch 3/4) consume it; hosts use the capability hooks.\r\n */\r\n\r\nimport * as React from \"react\";\r\n\r\nimport type {\r\n PersonalizationSnapshot,\r\n PersonalizationStore,\r\n} from \"./createPersonalizationStore\";\r\nimport type { Scope } from \"./types\";\r\n\r\n/**\r\n * Merged label bag (provider defaults + host overrides). The concrete\r\n * default values live in DEFAULT_PERSONALIZATION_LABELS in the provider;\r\n * this is the canonical type both the provider and the capability slices\r\n * import.\r\n */\r\nexport interface PersonalizationLabels {\r\n // Follow / \"suivis\" (Batch 3)\r\n addFavorite: string;\r\n removeFavorite: string;\r\n favoritesOnly: string;\r\n showAll: string;\r\n favoriteColumnHeader: string;\r\n // Saved filters (Batch 4)\r\n savedFilters: string;\r\n saveCurrentFilter: string;\r\n filterNameLabel: string;\r\n filterNamePlaceholder: string;\r\n saveFilter: string;\r\n updateFilter: string;\r\n deleteFilter: string;\r\n deleteFilterConfirm: string;\r\n setAsDefault: string;\r\n defaultBadge: string;\r\n manageFilters: string;\r\n noSavedFilters: string;\r\n cancel: string;\r\n}\r\n\r\n/** Stable configuration carried by PersonalizationConfigContext. */\r\nexport interface PersonalizationConfig {\r\n scope: Scope;\r\n labels: PersonalizationLabels;\r\n}\r\n\r\nexport const PersonalizationConfigContext =\r\n React.createContext<PersonalizationConfig | null>(null);\r\nexport const PersonalizationStoreContext =\r\n React.createContext<PersonalizationStore | null>(null);\r\n\r\nexport function usePersonalizationConfig(): PersonalizationConfig {\r\n const ctx = React.useContext(PersonalizationConfigContext);\r\n if (!ctx) {\r\n throw new Error(\r\n \"[@portnet/ui v2] usePersonalizationConfig() must be used inside <UserPersonalizationProvider>.\"\r\n );\r\n }\r\n return ctx;\r\n}\r\n\r\n/** The store handle. */\r\nexport function usePersonalizationStore(): PersonalizationStore {\r\n const store = React.useContext(PersonalizationStoreContext);\r\n if (!store) {\r\n throw new Error(\r\n \"[@portnet/ui v2] personalization hooks must be used inside <UserPersonalizationProvider>.\"\r\n );\r\n }\r\n return store;\r\n}\r\n\r\n/** Convenience: the current scope. */\r\nexport function useScope(): Scope {\r\n return usePersonalizationConfig().scope;\r\n}\r\n\r\n/** Convenience: merged labels (provider defaults + host overrides). */\r\nexport function usePersonalizationLabels(): PersonalizationLabels {\r\n return usePersonalizationConfig().labels;\r\n}\r\n\r\ninterface SelectorCache<T> {\r\n snapshot: PersonalizationSnapshot;\r\n selector: (snapshot: PersonalizationSnapshot) => T;\r\n isEqual: ((a: T, b: T) => boolean) | undefined;\r\n selection: T;\r\n hasValue: boolean;\r\n}\r\n\r\n/**\r\n * Subscribe to the store with a selector. Returns a referentially stable\r\n * value when the selected slice is unchanged — required by\r\n * useSyncExternalStore and the basis of the no-cross-capability-re-render\r\n * guarantee.\r\n *\r\n * The cache is keyed on (snapshot identity, selector identity, isEqual\r\n * identity). When the snapshot is unchanged for the same selector, the\r\n * memoised selection is returned without re-running the selector. When the\r\n * snapshot changes, the selector re-runs; if `isEqual` is supplied and the\r\n * new value is equal to the previous one, the previous reference is kept.\r\n *\r\n * Selectors should be stable (e.g. useCallback) OR rely on the store's\r\n * structural sharing returning stable slice references — both keep this\r\n * loop-free.\r\n */\r\nexport function useStoreSelector<T>(\r\n selector: (snapshot: PersonalizationSnapshot) => T,\r\n isEqual?: (a: T, b: T) => boolean\r\n): T {\r\n const store = usePersonalizationStore();\r\n const cacheRef = React.useRef<SelectorCache<T> | null>(null);\r\n\r\n function getSelection(): T {\r\n const snapshot = store.getSnapshot();\r\n const cache = cacheRef.current;\r\n if (\r\n cache &&\r\n Object.is(cache.snapshot, snapshot) &&\r\n cache.selector === selector &&\r\n cache.isEqual === isEqual\r\n ) {\r\n return cache.selection;\r\n }\r\n const nextSelection = selector(snapshot);\r\n if (\r\n cache &&\r\n cache.hasValue &&\r\n typeof isEqual === \"function\" &&\r\n isEqual(cache.selection, nextSelection)\r\n ) {\r\n cacheRef.current = {\r\n snapshot: snapshot,\r\n selector: selector,\r\n isEqual: isEqual,\r\n selection: cache.selection,\r\n hasValue: true,\r\n };\r\n return cache.selection;\r\n }\r\n cacheRef.current = {\r\n snapshot: snapshot,\r\n selector: selector,\r\n isEqual: isEqual,\r\n selection: nextSelection,\r\n hasValue: true,\r\n };\r\n return nextSelection;\r\n }\r\n\r\n function getServerSelection(): T {\r\n return selector(store.getServerSnapshot());\r\n }\r\n\r\n return React.useSyncExternalStore(\r\n store.subscribe,\r\n getSelection,\r\n getServerSelection\r\n );\r\n}\r\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAQ9B;AACA;AACA;AACA;AACA;AACA;;AAwBA;;AAMA,OAAO,IAAMC,4BAA4B,gBACvCD,KAAK,CAACE,aAAa,CAA+B,IAAI,CAAC;AACzD,OAAO,IAAMC,2BAA2B,gBACtCH,KAAK,CAACE,aAAa,CAA8B,IAAI,CAAC;AAExD,OAAO,SAASE,wBAAwBA,CAAA,EAA0B;EAChE,IAAMC,GAAG,GAAGL,KAAK,CAACM,UAAU,CAACL,4BAA4B,CAAC;EAC1D,IAAI,CAACI,GAAG,EAAE;IACR,MAAM,IAAIE,KAAK,CACb,gGACF,CAAC;EACH;EACA,OAAOF,GAAG;AACZ;;AAEA;AACA,OAAO,SAASG,uBAAuBA,CAAA,EAAyB;EAC9D,IAAMC,KAAK,GAAGT,KAAK,CAACM,UAAU,CAACH,2BAA2B,CAAC;EAC3D,IAAI,CAACM,KAAK,EAAE;IACV,MAAM,IAAIF,KAAK,CACb,2FACF,CAAC;EACH;EACA,OAAOE,KAAK;AACd;;AAEA;AACA,OAAO,SAASC,QAAQA,CAAA,EAAU;EAChC,OAAON,wBAAwB,CAAC,CAAC,CAACO,KAAK;AACzC;;AAEA;AACA,OAAO,SAASC,wBAAwBA,CAAA,EAA0B;EAChE,OAAOR,wBAAwB,CAAC,CAAC,CAACS,MAAM;AAC1C;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC9BC,QAAkD,EAClDC,OAAiC,EAC9B;EACH,IAAMP,KAAK,GAAGD,uBAAuB,CAAC,CAAC;EACvC,IAAMS,QAAQ,GAAGjB,KAAK,CAACkB,MAAM,CAA0B,IAAI,CAAC;EAE5D,SAASC,YAAYA,CAAA,EAAM;IACzB,IAAMC,QAAQ,GAAGX,KAAK,CAACY,WAAW,CAAC,CAAC;IACpC,IAAMC,KAAK,GAAGL,QAAQ,CAACM,OAAO;IAC9B,IACED,KAAK,IACLE,MAAM,CAACC,EAAE,CAACH,KAAK,CAACF,QAAQ,EAAEA,QAAQ,CAAC,IACnCE,KAAK,CAACP,QAAQ,KAAKA,QAAQ,IAC3BO,KAAK,CAACN,OAAO,KAAKA,OAAO,EACzB;MACA,OAAOM,KAAK,CAACI,SAAS;IACxB;IACA,IAAMC,aAAa,GAAGZ,QAAQ,CAACK,QAAQ,CAAC;IACxC,IACEE,KAAK,IACLA,KAAK,CAACM,QAAQ,IACd,OAAOZ,OAAO,KAAK,UAAU,IAC7BA,OAAO,CAACM,KAAK,CAACI,SAAS,EAAEC,aAAa,CAAC,EACvC;MACAV,QAAQ,CAACM,OAAO,GAAG;QACjBH,QAAQ,EAAEA,QAAQ;QAClBL,QAAQ,EAAEA,QAAQ;QAClBC,OAAO,EAAEA,OAAO;QAChBU,SAAS,EAAEJ,KAAK,CAACI,SAAS;QAC1BE,QAAQ,EAAE;MACZ,CAAC;MACD,OAAON,KAAK,CAACI,SAAS;IACxB;IACAT,QAAQ,CAACM,OAAO,GAAG;MACjBH,QAAQ,EAAEA,QAAQ;MAClBL,QAAQ,EAAEA,QAAQ;MAClBC,OAAO,EAAEA,OAAO;MAChBU,SAAS,EAAEC,aAAa;MACxBC,QAAQ,EAAE;IACZ,CAAC;IACD,OAAOD,aAAa;EACtB;EAEA,SAASE,kBAAkBA,CAAA,EAAM;IAC/B,OAAOd,QAAQ,CAACN,KAAK,CAACqB,iBAAiB,CAAC,CAAC,CAAC;EAC5C;EAEA,OAAO9B,KAAK,CAAC+B,oBAAoB,CAC/BtB,KAAK,CAACuB,SAAS,EACfb,YAAY,EACZU,kBACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* schema — Portnet UI v2 · User Personalization Foundation
|
|
3
|
+
*
|
|
4
|
+
* Capability registry + persistence envelope. The foundation is deliberately
|
|
5
|
+
* capability-AGNOSTIC: the store and provider know nothing about "favorites"
|
|
6
|
+
* or "savedFilters". Each capability *slice* registers itself here at import
|
|
7
|
+
* time:
|
|
8
|
+
*
|
|
9
|
+
* import { registerCapability } from "../schema";
|
|
10
|
+
* registerCapability({
|
|
11
|
+
* id: "favorites",
|
|
12
|
+
* schemaVersion: 1,
|
|
13
|
+
* defaultState: Object.freeze({}),
|
|
14
|
+
* migrate: (fromVersion, payload) => payload,
|
|
15
|
+
* });
|
|
16
|
+
*
|
|
17
|
+
* Adding a new capability is therefore purely additive. The adapter persists
|
|
18
|
+
* the OPAQUE envelope; the `payload` shape is owned by the slice.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
var isDev = typeof process !== "undefined" && !!process.env && process.env["NODE_ENV"] !== "production";
|
|
22
|
+
|
|
23
|
+
/** A capability's migrate function: upgrade an old payload to the current version. */
|
|
24
|
+
|
|
25
|
+
/** Registration input for a capability slice. */
|
|
26
|
+
|
|
27
|
+
/** Frozen, normalised capability descriptor stored in the registry. */
|
|
28
|
+
|
|
29
|
+
/** id -> frozen descriptor. Module-level (same lifecycle model as useDensity's store). */
|
|
30
|
+
var registry = new Map();
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Register a capability descriptor. Idempotent: the first registration for an
|
|
34
|
+
* id wins; a second registration with a *different* schemaVersion is reported
|
|
35
|
+
* in development (usually two library copies or a mismatched host version).
|
|
36
|
+
*/
|
|
37
|
+
export function registerCapability(descriptor) {
|
|
38
|
+
if (!descriptor || typeof descriptor.id !== "string" || !descriptor.id) {
|
|
39
|
+
if (isDev) {
|
|
40
|
+
// eslint-disable-next-line no-console
|
|
41
|
+
console.warn("[@portnet/ui v2] registerCapability: a non-empty string `id` is required.");
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
var existing = registry.get(descriptor.id);
|
|
46
|
+
if (existing) {
|
|
47
|
+
var _descriptor$schemaVer;
|
|
48
|
+
if (isDev && existing.schemaVersion !== ((_descriptor$schemaVer = descriptor.schemaVersion) !== null && _descriptor$schemaVer !== void 0 ? _descriptor$schemaVer : 1)) {
|
|
49
|
+
// eslint-disable-next-line no-console
|
|
50
|
+
console.warn("[@portnet/ui v2] registerCapability: \"".concat(descriptor.id, "\" re-registered with a different ") + "schemaVersion (".concat(existing.schemaVersion, " \u2192 ").concat(descriptor.schemaVersion, "). Keeping the first ") + "registration. This usually means two @portnet/ui copies are loaded.");
|
|
51
|
+
}
|
|
52
|
+
return existing;
|
|
53
|
+
}
|
|
54
|
+
var frozen = Object.freeze({
|
|
55
|
+
id: descriptor.id,
|
|
56
|
+
schemaVersion: typeof descriptor.schemaVersion === "number" ? descriptor.schemaVersion : 1,
|
|
57
|
+
defaultState: descriptor.defaultState !== undefined ? descriptor.defaultState : Object.freeze({}),
|
|
58
|
+
migrate: typeof descriptor.migrate === "function" ? descriptor.migrate : null
|
|
59
|
+
});
|
|
60
|
+
registry.set(frozen.id, frozen);
|
|
61
|
+
return frozen;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** @returns the descriptor registered for `id`, or null. */
|
|
65
|
+
export function getCapability(id) {
|
|
66
|
+
return registry.get(id) || null;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** @returns every registered descriptor (snapshot array). */
|
|
70
|
+
export function getRegisteredCapabilities() {
|
|
71
|
+
return Array.from(registry.values());
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Build the versioned persistence envelope. The adapter treats `payload` as
|
|
76
|
+
* opaque; `schemaVersion` lets a slice's migrate() upgrade old payloads on load.
|
|
77
|
+
*/
|
|
78
|
+
export function makeEnvelope(schemaVersion, payload) {
|
|
79
|
+
return {
|
|
80
|
+
schemaVersion: typeof schemaVersion === "number" ? schemaVersion : 1,
|
|
81
|
+
updatedAt: new Date().toISOString(),
|
|
82
|
+
payload: payload
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Key-scheme version (the layout of the *storage key*, distinct from a
|
|
88
|
+
* capability's payload `schemaVersion`). Bumped only on a global re-partition.
|
|
89
|
+
* Mirrored by adapters/_storageKey.ts.
|
|
90
|
+
*/
|
|
91
|
+
export var KEY_SCHEME_VERSION = "v1";
|
|
92
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","names":["isDev","process","env","registry","Map","registerCapability","descriptor","id","console","warn","existing","get","_descriptor$schemaVer","schemaVersion","concat","frozen","Object","freeze","defaultState","undefined","migrate","set","getCapability","getRegisteredCapabilities","Array","from","values","makeEnvelope","payload","updatedAt","Date","toISOString","KEY_SCHEME_VERSION"],"sources":["../../../../src/lib/v2/personalization/schema.ts"],"sourcesContent":["/**\r\n * schema — Portnet UI v2 · User Personalization Foundation\r\n *\r\n * Capability registry + persistence envelope. The foundation is deliberately\r\n * capability-AGNOSTIC: the store and provider know nothing about \"favorites\"\r\n * or \"savedFilters\". Each capability *slice* registers itself here at import\r\n * time:\r\n *\r\n * import { registerCapability } from \"../schema\";\r\n * registerCapability({\r\n * id: \"favorites\",\r\n * schemaVersion: 1,\r\n * defaultState: Object.freeze({}),\r\n * migrate: (fromVersion, payload) => payload,\r\n * });\r\n *\r\n * Adding a new capability is therefore purely additive. The adapter persists\r\n * the OPAQUE envelope; the `payload` shape is owned by the slice.\r\n */\r\n\r\nimport type { Envelope } from \"./types\";\r\n\r\nconst isDev =\r\n typeof process !== \"undefined\" &&\r\n !!process.env &&\r\n process.env[\"NODE_ENV\"] !== \"production\";\r\n\r\n/** A capability's migrate function: upgrade an old payload to the current version. */\r\nexport type CapabilityMigrate = (\r\n fromVersion: number,\r\n payload: unknown\r\n) => unknown;\r\n\r\n/** Registration input for a capability slice. */\r\nexport interface CapabilityDescriptorInput {\r\n /** Unique capability id (e.g. \"favorites\"). */\r\n id: string;\r\n schemaVersion?: number | undefined;\r\n /** Seed when nothing is persisted (should be a STABLE/frozen ref). */\r\n defaultState?: unknown;\r\n migrate?: CapabilityMigrate | undefined;\r\n}\r\n\r\n/** Frozen, normalised capability descriptor stored in the registry. */\r\nexport interface CapabilityDescriptor {\r\n id: string;\r\n schemaVersion: number;\r\n defaultState: unknown;\r\n migrate: CapabilityMigrate | null;\r\n}\r\n\r\n/** id -> frozen descriptor. Module-level (same lifecycle model as useDensity's store). */\r\nconst registry = new Map<string, CapabilityDescriptor>();\r\n\r\n/**\r\n * Register a capability descriptor. Idempotent: the first registration for an\r\n * id wins; a second registration with a *different* schemaVersion is reported\r\n * in development (usually two library copies or a mismatched host version).\r\n */\r\nexport function registerCapability(\r\n descriptor: CapabilityDescriptorInput\r\n): CapabilityDescriptor | null {\r\n if (!descriptor || typeof descriptor.id !== \"string\" || !descriptor.id) {\r\n if (isDev) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n \"[@portnet/ui v2] registerCapability: a non-empty string `id` is required.\"\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n const existing = registry.get(descriptor.id);\r\n if (existing) {\r\n if (isDev && existing.schemaVersion !== (descriptor.schemaVersion ?? 1)) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n `[@portnet/ui v2] registerCapability: \"${descriptor.id}\" re-registered with a different ` +\r\n `schemaVersion (${existing.schemaVersion} → ${descriptor.schemaVersion}). Keeping the first ` +\r\n `registration. This usually means two @portnet/ui copies are loaded.`\r\n );\r\n }\r\n return existing;\r\n }\r\n\r\n const frozen: CapabilityDescriptor = Object.freeze({\r\n id: descriptor.id,\r\n schemaVersion:\r\n typeof descriptor.schemaVersion === \"number\"\r\n ? descriptor.schemaVersion\r\n : 1,\r\n defaultState:\r\n descriptor.defaultState !== undefined\r\n ? descriptor.defaultState\r\n : Object.freeze({}),\r\n migrate:\r\n typeof descriptor.migrate === \"function\" ? descriptor.migrate : null,\r\n });\r\n registry.set(frozen.id, frozen);\r\n return frozen;\r\n}\r\n\r\n/** @returns the descriptor registered for `id`, or null. */\r\nexport function getCapability(id: string): CapabilityDescriptor | null {\r\n return registry.get(id) || null;\r\n}\r\n\r\n/** @returns every registered descriptor (snapshot array). */\r\nexport function getRegisteredCapabilities(): CapabilityDescriptor[] {\r\n return Array.from(registry.values());\r\n}\r\n\r\n/**\r\n * Build the versioned persistence envelope. The adapter treats `payload` as\r\n * opaque; `schemaVersion` lets a slice's migrate() upgrade old payloads on load.\r\n */\r\nexport function makeEnvelope(schemaVersion: number, payload: unknown): Envelope {\r\n return {\r\n schemaVersion: typeof schemaVersion === \"number\" ? schemaVersion : 1,\r\n updatedAt: new Date().toISOString(),\r\n payload,\r\n };\r\n}\r\n\r\n/**\r\n * Key-scheme version (the layout of the *storage key*, distinct from a\r\n * capability's payload `schemaVersion`). Bumped only on a global re-partition.\r\n * Mirrored by adapters/_storageKey.ts.\r\n */\r\nexport const KEY_SCHEME_VERSION = \"v1\";\r\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,IAAMA,KAAK,GACT,OAAOC,OAAO,KAAK,WAAW,IAC9B,CAAC,CAACA,OAAO,CAACC,GAAG,IACbD,OAAO,CAACC,GAAG,CAAC,UAAU,CAAC,KAAK,YAAY;;AAE1C;;AAMA;;AAUA;;AAQA;AACA,IAAMC,QAAQ,GAAG,IAAIC,GAAG,CAA+B,CAAC;;AAExD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAChCC,UAAqC,EACR;EAC7B,IAAI,CAACA,UAAU,IAAI,OAAOA,UAAU,CAACC,EAAE,KAAK,QAAQ,IAAI,CAACD,UAAU,CAACC,EAAE,EAAE;IACtE,IAAIP,KAAK,EAAE;MACT;MACAQ,OAAO,CAACC,IAAI,CACV,2EACF,CAAC;IACH;IACA,OAAO,IAAI;EACb;EAEA,IAAMC,QAAQ,GAAGP,QAAQ,CAACQ,GAAG,CAACL,UAAU,CAACC,EAAE,CAAC;EAC5C,IAAIG,QAAQ,EAAE;IAAA,IAAAE,qBAAA;IACZ,IAAIZ,KAAK,IAAIU,QAAQ,CAACG,aAAa,OAAAD,qBAAA,GAAMN,UAAU,CAACO,aAAa,cAAAD,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC,EAAE;MACvE;MACAJ,OAAO,CAACC,IAAI,CACV,0CAAAK,MAAA,CAAyCR,UAAU,CAACC,EAAE,4DAAAO,MAAA,CAClCJ,QAAQ,CAACG,aAAa,cAAAC,MAAA,CAAMR,UAAU,CAACO,aAAa,0BAAuB,wEAEjG,CAAC;IACH;IACA,OAAOH,QAAQ;EACjB;EAEA,IAAMK,MAA4B,GAAGC,MAAM,CAACC,MAAM,CAAC;IACjDV,EAAE,EAAED,UAAU,CAACC,EAAE;IACjBM,aAAa,EACX,OAAOP,UAAU,CAACO,aAAa,KAAK,QAAQ,GACxCP,UAAU,CAACO,aAAa,GACxB,CAAC;IACPK,YAAY,EACVZ,UAAU,CAACY,YAAY,KAAKC,SAAS,GACjCb,UAAU,CAACY,YAAY,GACvBF,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvBG,OAAO,EACL,OAAOd,UAAU,CAACc,OAAO,KAAK,UAAU,GAAGd,UAAU,CAACc,OAAO,GAAG;EACpE,CAAC,CAAC;EACFjB,QAAQ,CAACkB,GAAG,CAACN,MAAM,CAACR,EAAE,EAAEQ,MAAM,CAAC;EAC/B,OAAOA,MAAM;AACf;;AAEA;AACA,OAAO,SAASO,aAAaA,CAACf,EAAU,EAA+B;EACrE,OAAOJ,QAAQ,CAACQ,GAAG,CAACJ,EAAE,CAAC,IAAI,IAAI;AACjC;;AAEA;AACA,OAAO,SAASgB,yBAAyBA,CAAA,EAA2B;EAClE,OAAOC,KAAK,CAACC,IAAI,CAACtB,QAAQ,CAACuB,MAAM,CAAC,CAAC,CAAC;AACtC;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAACd,aAAqB,EAAEe,OAAgB,EAAY;EAC9E,OAAO;IACLf,aAAa,EAAE,OAAOA,aAAa,KAAK,QAAQ,GAAGA,aAAa,GAAG,CAAC;IACpEgB,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;IACnCH,OAAO,EAAPA;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMI,kBAAkB,GAAG,IAAI","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/lib/v2/personalization/types.ts"],"sourcesContent":["/**\r\n * types — Portnet UI v2 · User Personalization Foundation\r\n *\r\n * Canonical TypeScript contracts for the personalization foundation. Replaces\r\n * the former runtime propTypes.js \"type surface\": the provider, the\r\n * store-backed hooks, and the capability components all type against these\r\n * shared interfaces.\r\n */\r\n\r\nimport type { RowId } from \"../types/common\";\r\n\r\n/**\r\n * Scope — partitions persisted preferences. `userId` is required; the rest\r\n * are optional partitions (multi-tenant / per-app).\r\n */\r\nexport interface Scope {\r\n userId: string;\r\n tenantId?: string | undefined;\r\n appId?: string | undefined;\r\n}\r\n\r\n/**\r\n * Versioned persistence envelope. The adapter treats `payload` as opaque;\r\n * `schemaVersion` lets a capability slice migrate old payloads on load.\r\n */\r\nexport interface Envelope<T = unknown> {\r\n schemaVersion: number;\r\n updatedAt: string;\r\n payload: T;\r\n}\r\n\r\n/** Behaviour flags an adapter advertises to the store. */\r\nexport interface AdapterCapabilities {\r\n crossTab?: boolean | undefined;\r\n remote?: boolean | undefined;\r\n shared?: boolean | undefined;\r\n}\r\n\r\n/**\r\n * Storage adapter contract. `load` + `save` are mandatory; the rest are\r\n * optional capabilities the store feature-detects:\r\n * - loadSync : synchronous hydrate (removes the initial empty flash for\r\n * local adapters; absent on remote adapters)\r\n * - remove : drop one capability blob\r\n * - subscribe : external-change notifications (cross-tab / server push);\r\n * returns an unsubscribe function\r\n * - capabilities : { crossTab, remote, shared } behaviour flags\r\n *\r\n * `load` / `loadSync` return a map of capabilityId -> envelope for the scope.\r\n */\r\nexport interface Adapter {\r\n name?: string | undefined;\r\n load: (scope: Scope) => Promise<Record<string, Envelope>>;\r\n loadSync?: ((scope: Scope) => Record<string, Envelope>) | undefined;\r\n save: (\r\n scope: Scope,\r\n capabilityId: string,\r\n envelope: Envelope\r\n ) => Promise<void>;\r\n remove?: ((scope: Scope, capabilityId: string) => Promise<void>) | undefined;\r\n subscribe?: ((\r\n scope: Scope,\r\n onChange: (capabilityId: string) => void\r\n ) => () => void) | undefined;\r\n capabilities?: AdapterCapabilities | undefined;\r\n}\r\n\r\n/** Reconciliation strategy between optimistic local state and adapter truth. */\r\nexport type HydrateStrategy = \"local-wins\" | \"remote-wins\" | \"merge\";\r\n\r\n/**\r\n * Favorites — a single favorited entity reference. `id` is the business row\r\n * id; `addedAt` enables future \"recently favorited\" ordering.\r\n */\r\nexport interface FavoriteRef {\r\n id: RowId;\r\n addedAt?: string | undefined;\r\n}\r\n\r\n/**\r\n * Saved filter. `criteria` is opaque — the host's own filter payload,\r\n * persisted and re-emitted verbatim so the framework stays reusable across\r\n * every list regardless of its filter schema.\r\n */\r\nexport interface SavedFilter {\r\n id: string;\r\n name?: string | undefined;\r\n resourceKey?: string | undefined;\r\n criteria?: Record<string, unknown> | undefined;\r\n ownerId?: string | undefined;\r\n isDefault?: boolean | undefined;\r\n shared?: boolean | undefined;\r\n createdAt?: string | undefined;\r\n updatedAt?: string | undefined;\r\n}\r\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,87 @@
|
|
|
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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
3
|
+
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."); }
|
|
4
|
+
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); }
|
|
5
|
+
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; }
|
|
6
|
+
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; } }
|
|
7
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
8
|
+
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; }
|
|
9
|
+
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; }
|
|
10
|
+
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; }
|
|
11
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
12
|
+
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); }
|
|
13
|
+
import * as React from "react";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* ReferentielContext — Portnet UI v2
|
|
17
|
+
*
|
|
18
|
+
* Carries the referential API configuration + a per-searchKey option cache.
|
|
19
|
+
* Consumed by useReferentielClient / useReferentielOptions and (later) the
|
|
20
|
+
* paginated search builder for ReferentielField.
|
|
21
|
+
*/
|
|
22
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
23
|
+
export var ReferentielContext = /*#__PURE__*/React.createContext({
|
|
24
|
+
baseURL: "",
|
|
25
|
+
token: "",
|
|
26
|
+
secret: false,
|
|
27
|
+
langue: "fr",
|
|
28
|
+
cache: {},
|
|
29
|
+
cacheDispatch: function cacheDispatch() {}
|
|
30
|
+
});
|
|
31
|
+
var INITIAL_CACHE = {};
|
|
32
|
+
function cacheReducer(state, _ref) {
|
|
33
|
+
var type = _ref.type,
|
|
34
|
+
payload = _ref.payload;
|
|
35
|
+
switch (type) {
|
|
36
|
+
case "SET":
|
|
37
|
+
return _objectSpread(_objectSpread({}, state), {}, _defineProperty({}, payload.key, payload.data));
|
|
38
|
+
default:
|
|
39
|
+
return state;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* ReferentielProvider
|
|
44
|
+
*
|
|
45
|
+
* Set once at the app root with the referential API configuration:
|
|
46
|
+
*
|
|
47
|
+
* <ReferentielProvider
|
|
48
|
+
* baseURL={config.referentielBaseURL}
|
|
49
|
+
* token={config.referentielToken}
|
|
50
|
+
* secret={config.referentielTypeAuth === "SECRET"}
|
|
51
|
+
* langue="fr"
|
|
52
|
+
* >
|
|
53
|
+
* {app}
|
|
54
|
+
* </ReferentielProvider>
|
|
55
|
+
*
|
|
56
|
+
* Auth contract (see useReferentielClient): secret => the raw token is sent
|
|
57
|
+
* in the Authorization header; otherwise a Bearer prefix is used.
|
|
58
|
+
*/
|
|
59
|
+
export default function ReferentielProvider(_ref2) {
|
|
60
|
+
var baseURL = _ref2.baseURL,
|
|
61
|
+
_ref2$token = _ref2.token,
|
|
62
|
+
token = _ref2$token === void 0 ? "" : _ref2$token,
|
|
63
|
+
_ref2$secret = _ref2.secret,
|
|
64
|
+
secret = _ref2$secret === void 0 ? false : _ref2$secret,
|
|
65
|
+
_ref2$langue = _ref2.langue,
|
|
66
|
+
langue = _ref2$langue === void 0 ? "fr" : _ref2$langue,
|
|
67
|
+
children = _ref2.children;
|
|
68
|
+
var _React$useReducer = React.useReducer(cacheReducer, INITIAL_CACHE),
|
|
69
|
+
_React$useReducer2 = _slicedToArray(_React$useReducer, 2),
|
|
70
|
+
cache = _React$useReducer2[0],
|
|
71
|
+
cacheDispatch = _React$useReducer2[1];
|
|
72
|
+
var value = React.useMemo(function () {
|
|
73
|
+
return {
|
|
74
|
+
baseURL: baseURL,
|
|
75
|
+
token: token,
|
|
76
|
+
secret: secret,
|
|
77
|
+
langue: langue,
|
|
78
|
+
cache: cache,
|
|
79
|
+
cacheDispatch: cacheDispatch
|
|
80
|
+
};
|
|
81
|
+
}, [baseURL, token, secret, langue, cache]);
|
|
82
|
+
return /*#__PURE__*/_jsx(ReferentielContext.Provider, {
|
|
83
|
+
value: value,
|
|
84
|
+
children: children
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=ReferentielProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReferentielProvider.js","names":["React","jsx","_jsx","ReferentielContext","createContext","baseURL","token","secret","langue","cache","cacheDispatch","INITIAL_CACHE","cacheReducer","state","_ref","type","payload","_objectSpread","_defineProperty","key","data","ReferentielProvider","_ref2","_ref2$token","_ref2$secret","_ref2$langue","children","_React$useReducer","useReducer","_React$useReducer2","_slicedToArray","value","useMemo","Provider"],"sources":["../../../../src/lib/v2/referentiel/ReferentielProvider.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\n/**\r\n * ReferentielContext — Portnet UI v2\r\n *\r\n * Carries the referential API configuration + a per-searchKey option cache.\r\n * Consumed by useReferentielClient / useReferentielOptions and (later) the\r\n * paginated search builder for ReferentielField.\r\n */\r\n\r\nexport type ReferentielCache = Record<string, unknown>;\r\n\r\ninterface ReferentielCacheSetPayload {\r\n key: string;\r\n data: unknown;\r\n}\r\n\r\nexport type ReferentielCacheAction = {\r\n type: \"SET\";\r\n payload: ReferentielCacheSetPayload;\r\n};\r\n\r\nexport interface ReferentielContextValue {\r\n baseURL: string;\r\n token: string;\r\n secret: boolean;\r\n langue: string;\r\n cache: ReferentielCache;\r\n cacheDispatch: React.Dispatch<ReferentielCacheAction>;\r\n}\r\n\r\nexport const ReferentielContext = React.createContext<ReferentielContextValue>({\r\n baseURL: \"\",\r\n token: \"\",\r\n secret: false,\r\n langue: \"fr\",\r\n cache: {},\r\n cacheDispatch: () => {},\r\n});\r\n\r\nconst INITIAL_CACHE: ReferentielCache = {};\r\n\r\nfunction cacheReducer(\r\n state: ReferentielCache,\r\n { type, payload }: ReferentielCacheAction\r\n): ReferentielCache {\r\n switch (type) {\r\n case \"SET\":\r\n return { ...state, [payload.key]: payload.data };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport interface ReferentielProviderProps {\r\n baseURL: string;\r\n token?: string | undefined;\r\n secret?: boolean | undefined;\r\n langue?: string | undefined;\r\n children?: React.ReactNode | undefined;\r\n}\r\n\r\n/**\r\n * ReferentielProvider\r\n *\r\n * Set once at the app root with the referential API configuration:\r\n *\r\n * <ReferentielProvider\r\n * baseURL={config.referentielBaseURL}\r\n * token={config.referentielToken}\r\n * secret={config.referentielTypeAuth === \"SECRET\"}\r\n * langue=\"fr\"\r\n * >\r\n * {app}\r\n * </ReferentielProvider>\r\n *\r\n * Auth contract (see useReferentielClient): secret => the raw token is sent\r\n * in the Authorization header; otherwise a Bearer prefix is used.\r\n */\r\nexport default function ReferentielProvider({\r\n baseURL,\r\n token = \"\",\r\n secret = false,\r\n langue = \"fr\",\r\n children,\r\n}: ReferentielProviderProps): React.JSX.Element {\r\n const [cache, cacheDispatch] = React.useReducer(cacheReducer, INITIAL_CACHE);\r\n\r\n const value = React.useMemo<ReferentielContextValue>(\r\n () => ({ baseURL, token, secret, langue, cache, cacheDispatch }),\r\n [baseURL, token, secret, langue, cache]\r\n );\r\n\r\n return (\r\n <ReferentielContext.Provider value={value}>\r\n {children}\r\n </ReferentielContext.Provider>\r\n );\r\n}\r\n"],"mappings":";;;;;;;;;;;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAC,GAAA,IAAAC,IAAA;AA6BA,OAAO,IAAMC,kBAAkB,gBAAGH,KAAK,CAACI,aAAa,CAA0B;EAC7EC,OAAO,EAAE,EAAE;EACXC,KAAK,EAAE,EAAE;EACTC,MAAM,EAAE,KAAK;EACbC,MAAM,EAAE,IAAI;EACZC,KAAK,EAAE,CAAC,CAAC;EACTC,aAAa,EAAE,SAAAA,cAAA,EAAM,CAAC;AACxB,CAAC,CAAC;AAEF,IAAMC,aAA+B,GAAG,CAAC,CAAC;AAE1C,SAASC,YAAYA,CACnBC,KAAuB,EAAAC,IAAA,EAEL;EAAA,IADhBC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO;EAEf,QAAQD,IAAI;IACV,KAAK,KAAK;MACR,OAAAE,aAAA,CAAAA,aAAA,KAAYJ,KAAK,OAAAK,eAAA,KAAGF,OAAO,CAACG,GAAG,EAAGH,OAAO,CAACI,IAAI;IAChD;MACE,OAAOP,KAAK;EAChB;AACF;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASQ,mBAAmBA,CAAAC,KAAA,EAMK;EAAA,IAL9CjB,OAAO,GAAAiB,KAAA,CAAPjB,OAAO;IAAAkB,WAAA,GAAAD,KAAA,CACPhB,KAAK;IAALA,KAAK,GAAAiB,WAAA,cAAG,EAAE,GAAAA,WAAA;IAAAC,YAAA,GAAAF,KAAA,CACVf,MAAM;IAANA,MAAM,GAAAiB,YAAA,cAAG,KAAK,GAAAA,YAAA;IAAAC,YAAA,GAAAH,KAAA,CACdd,MAAM;IAANA,MAAM,GAAAiB,YAAA,cAAG,IAAI,GAAAA,YAAA;IACbC,QAAQ,GAAAJ,KAAA,CAARI,QAAQ;EAER,IAAAC,iBAAA,GAA+B3B,KAAK,CAAC4B,UAAU,CAAChB,YAAY,EAAED,aAAa,CAAC;IAAAkB,kBAAA,GAAAC,cAAA,CAAAH,iBAAA;IAArElB,KAAK,GAAAoB,kBAAA;IAAEnB,aAAa,GAAAmB,kBAAA;EAE3B,IAAME,KAAK,GAAG/B,KAAK,CAACgC,OAAO,CACzB;IAAA,OAAO;MAAE3B,OAAO,EAAPA,OAAO;MAAEC,KAAK,EAALA,KAAK;MAAEC,MAAM,EAANA,MAAM;MAAEC,MAAM,EAANA,MAAM;MAAEC,KAAK,EAALA,KAAK;MAAEC,aAAa,EAAbA;IAAc,CAAC;EAAA,CAAC,EAChE,CAACL,OAAO,EAAEC,KAAK,EAAEC,MAAM,EAAEC,MAAM,EAAEC,KAAK,CACxC,CAAC;EAED,oBACEP,IAAA,CAACC,kBAAkB,CAAC8B,QAAQ;IAACF,KAAK,EAAEA,KAAM;IAAAL,QAAA,EACvCA;EAAQ,CACkB,CAAC;AAElC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portnet UI v2 — referential data-access module.
|
|
3
|
+
*
|
|
4
|
+
* Configuration provider + hooks that back the referential fields:
|
|
5
|
+
* - useReferentielOptions: simple searchKey -> option list (getAll, cached).
|
|
6
|
+
* - useReferentielSearch: paginated search builder (getPage) for
|
|
7
|
+
* ReferentielField / FormikReferentielField.
|
|
8
|
+
* The field UI lives in ../patterns/ReferentielField and
|
|
9
|
+
* ../patterns/FormikReferentielField.
|
|
10
|
+
*/
|
|
11
|
+
export { default as ReferentielProvider, ReferentielContext } from "./ReferentielProvider";
|
|
12
|
+
export { default as useReferentielClient } from "./useReferentielClient";
|
|
13
|
+
export { default as useReferentielOptions } from "./useReferentielOptions";
|
|
14
|
+
export { default as useReferentielSearch } from "./useReferentielSearch";
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","ReferentielProvider","ReferentielContext","useReferentielClient","useReferentielOptions","useReferentielSearch"],"sources":["../../../../src/lib/v2/referentiel/index.ts"],"sourcesContent":["/**\r\n * Portnet UI v2 — referential data-access module.\r\n *\r\n * Configuration provider + hooks that back the referential fields:\r\n * - useReferentielOptions: simple searchKey -> option list (getAll, cached).\r\n * - useReferentielSearch: paginated search builder (getPage) for\r\n * ReferentielField / FormikReferentielField.\r\n * The field UI lives in ../patterns/ReferentielField and\r\n * ../patterns/FormikReferentielField.\r\n */\r\nexport {\r\n default as ReferentielProvider,\r\n ReferentielContext,\r\n} from \"./ReferentielProvider\";\r\nexport type {\r\n ReferentielContextValue,\r\n ReferentielProviderProps,\r\n ReferentielCache,\r\n ReferentielCacheAction,\r\n} from \"./ReferentielProvider\";\r\n\r\nexport { default as useReferentielClient } from \"./useReferentielClient\";\r\n\r\nexport { default as useReferentielOptions } from \"./useReferentielOptions\";\r\nexport type {\r\n UseReferentielOptionsParams,\r\n UseReferentielOptionsResult,\r\n} from \"./useReferentielOptions\";\r\n\r\nexport { default as useReferentielSearch } from \"./useReferentielSearch\";\r\nexport type {\r\n UseReferentielSearchParams,\r\n ReferentielSearchArgs,\r\n ReferentielSearchResult,\r\n ReferentielSearchFn,\r\n} from \"./useReferentielSearch\";\r\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SACEA,OAAO,IAAIC,mBAAmB,EAC9BC,kBAAkB,QACb,uBAAuB;AAQ9B,SAASF,OAAO,IAAIG,oBAAoB,QAAQ,wBAAwB;AAExE,SAASH,OAAO,IAAII,qBAAqB,QAAQ,yBAAyB;AAM1E,SAASJ,OAAO,IAAIK,oBAAoB,QAAQ,wBAAwB","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import axios from "axios";
|
|
3
|
+
import { ReferentielContext } from "./ReferentielProvider";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* useReferentielClient — Portnet UI v2
|
|
7
|
+
*
|
|
8
|
+
* Returns a memoised axios instance targeting the referential API, configured
|
|
9
|
+
* from ReferentielProvider. Auth mirrors the legacy contract:
|
|
10
|
+
* - secret === true -> Authorization: <token> (raw, e.g. SECRET keys)
|
|
11
|
+
* - secret === false -> Authorization: Bearer <token>
|
|
12
|
+
*
|
|
13
|
+
* Re-created only when baseURL / token / secret change.
|
|
14
|
+
*
|
|
15
|
+
* @returns A memoised {@link AxiosInstance} for the referential API.
|
|
16
|
+
*/
|
|
17
|
+
export default function useReferentielClient() {
|
|
18
|
+
var _React$useContext = React.useContext(ReferentielContext),
|
|
19
|
+
baseURL = _React$useContext.baseURL,
|
|
20
|
+
token = _React$useContext.token,
|
|
21
|
+
secret = _React$useContext.secret;
|
|
22
|
+
return React.useMemo(function () {
|
|
23
|
+
var instance = axios.create({
|
|
24
|
+
baseURL: baseURL,
|
|
25
|
+
headers: {
|
|
26
|
+
Authorization: secret ? token : "Bearer ".concat(token)
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
instance.interceptors.response.use(function (response) {
|
|
30
|
+
return response;
|
|
31
|
+
}, function (error) {
|
|
32
|
+
throw error;
|
|
33
|
+
});
|
|
34
|
+
return instance;
|
|
35
|
+
}, [baseURL, token, secret]);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=useReferentielClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useReferentielClient.js","names":["React","axios","ReferentielContext","useReferentielClient","_React$useContext","useContext","baseURL","token","secret","useMemo","instance","create","headers","Authorization","concat","interceptors","response","use","error"],"sources":["../../../../src/lib/v2/referentiel/useReferentielClient.ts"],"sourcesContent":["import * as React from \"react\";\r\nimport axios from \"axios\";\r\nimport type { AxiosInstance, AxiosResponse } from \"axios\";\r\nimport { ReferentielContext } from \"./ReferentielProvider\";\r\n\r\n/**\r\n * useReferentielClient — Portnet UI v2\r\n *\r\n * Returns a memoised axios instance targeting the referential API, configured\r\n * from ReferentielProvider. Auth mirrors the legacy contract:\r\n * - secret === true -> Authorization: <token> (raw, e.g. SECRET keys)\r\n * - secret === false -> Authorization: Bearer <token>\r\n *\r\n * Re-created only when baseURL / token / secret change.\r\n *\r\n * @returns A memoised {@link AxiosInstance} for the referential API.\r\n */\r\nexport default function useReferentielClient(): AxiosInstance {\r\n const { baseURL, token, secret } = React.useContext(ReferentielContext);\r\n\r\n return React.useMemo<AxiosInstance>(() => {\r\n const instance = axios.create({\r\n baseURL,\r\n headers: { Authorization: secret ? token : `Bearer ${token}` },\r\n });\r\n instance.interceptors.response.use(\r\n (response: AxiosResponse) => response,\r\n (error: unknown) => {\r\n throw error;\r\n },\r\n );\r\n return instance;\r\n }, [baseURL, token, secret]);\r\n}\r\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,kBAAkB,QAAQ,uBAAuB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,oBAAoBA,CAAA,EAAkB;EAC5D,IAAAC,iBAAA,GAAmCJ,KAAK,CAACK,UAAU,CAACH,kBAAkB,CAAC;IAA/DI,OAAO,GAAAF,iBAAA,CAAPE,OAAO;IAAEC,KAAK,GAAAH,iBAAA,CAALG,KAAK;IAAEC,MAAM,GAAAJ,iBAAA,CAANI,MAAM;EAE9B,OAAOR,KAAK,CAACS,OAAO,CAAgB,YAAM;IACxC,IAAMC,QAAQ,GAAGT,KAAK,CAACU,MAAM,CAAC;MAC5BL,OAAO,EAAPA,OAAO;MACPM,OAAO,EAAE;QAAEC,aAAa,EAAEL,MAAM,GAAGD,KAAK,aAAAO,MAAA,CAAaP,KAAK;MAAG;IAC/D,CAAC,CAAC;IACFG,QAAQ,CAACK,YAAY,CAACC,QAAQ,CAACC,GAAG,CAChC,UAACD,QAAuB;MAAA,OAAKA,QAAQ;IAAA,GACrC,UAACE,KAAc,EAAK;MAClB,MAAMA,KAAK;IACb,CACF,CAAC;IACD,OAAOR,QAAQ;EACjB,CAAC,EAAE,CAACJ,OAAO,EAAEC,KAAK,EAAEC,MAAM,CAAC,CAAC;AAC9B","ignoreList":[]}
|