@portnet/ui 6.0.2 โ 6.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +652 -0
- package/dist/esm/index.js +72 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/v2/__tests__/AppMain.test.js +130 -0
- package/dist/esm/v2/__tests__/AppMain.test.js.map +1 -0
- package/dist/esm/v2/__tests__/ChartFigure.test.js +180 -0
- package/dist/esm/v2/__tests__/ChartFigure.test.js.map +1 -0
- package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js +150 -0
- package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
- package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js +93 -0
- package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldError.test.js +71 -38
- package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FieldNaming.test.js +160 -0
- package/dist/esm/v2/__tests__/FieldNaming.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldWidth.test.js +11 -11
- package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FileCard.test.js +18 -17
- package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js +87 -179
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +32 -44
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js +101 -0
- package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +118 -199
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
- package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -42
- package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/PreviewDrawer.test.js +165 -0
- package/dist/esm/v2/__tests__/PreviewDrawer.test.js.map +1 -0
- package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js +156 -0
- package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +37 -52
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/esm/v2/__tests__/apiError.test.js +50 -69
- package/dist/esm/v2/__tests__/apiError.test.js.map +1 -1
- package/dist/esm/v2/__tests__/banned-patterns.test.js +41 -122
- package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -1
- package/dist/esm/v2/__tests__/chart-palette.test.js +204 -0
- package/dist/esm/v2/__tests__/chart-palette.test.js.map +1 -0
- package/dist/esm/v2/__tests__/contrast-palette.test.js +42 -74
- package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -1
- package/dist/esm/v2/__tests__/cssVariables.test.js +44 -51
- package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -1
- package/dist/esm/v2/__tests__/fileValidation.test.js +134 -0
- package/dist/esm/v2/__tests__/fileValidation.test.js.map +1 -0
- package/dist/esm/v2/__tests__/filterCriteria.test.js +321 -0
- package/dist/esm/v2/__tests__/filterCriteria.test.js.map +1 -0
- package/dist/esm/v2/__tests__/fmtDate.test.js +68 -0
- package/dist/esm/v2/__tests__/fmtDate.test.js.map +1 -0
- package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js +218 -0
- package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
- package/dist/esm/v2/__tests__/labels-merge.test.js +17 -21
- package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/esm/v2/__tests__/locale-fallback.test.js +35 -40
- package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -1
- package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js +143 -0
- package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
- package/dist/esm/v2/__tests__/rowActions.test.js +182 -0
- package/dist/esm/v2/__tests__/rowActions.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js +155 -0
- package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusTrap.test.js +266 -402
- package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -1
- package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js +120 -0
- package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
- package/dist/esm/v2/components/Accordion.js +48 -70
- package/dist/esm/v2/components/Accordion.js.map +1 -1
- package/dist/esm/v2/components/ActionStrip.js +31 -43
- package/dist/esm/v2/components/ActionStrip.js.map +1 -1
- package/dist/esm/v2/components/Banner.js +25 -22
- package/dist/esm/v2/components/Banner.js.map +1 -1
- package/dist/esm/v2/components/Busy.js +14 -19
- package/dist/esm/v2/components/Busy.js.map +1 -1
- package/dist/esm/v2/components/Button.js +34 -45
- package/dist/esm/v2/components/Button.js.map +1 -1
- package/dist/esm/v2/components/CategoryTag.js +44 -27
- package/dist/esm/v2/components/CategoryTag.js.map +1 -1
- package/dist/esm/v2/components/Checkbox.js +32 -38
- package/dist/esm/v2/components/Checkbox.js.map +1 -1
- package/dist/esm/v2/components/Chip.js +23 -36
- package/dist/esm/v2/components/Chip.js.map +1 -1
- package/dist/esm/v2/components/Combobox.js +112 -136
- package/dist/esm/v2/components/Combobox.js.map +1 -1
- package/dist/esm/v2/components/CommandPalette.js +113 -198
- package/dist/esm/v2/components/CommandPalette.js.map +1 -1
- package/dist/esm/v2/components/ConfirmDialog.js +36 -45
- package/dist/esm/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/esm/v2/components/DatePicker.js +78 -81
- package/dist/esm/v2/components/DatePicker.js.map +1 -1
- package/dist/esm/v2/components/DateRangePicker.js +63 -74
- package/dist/esm/v2/components/DateRangePicker.js.map +1 -1
- package/dist/esm/v2/components/DateTimePicker.js +81 -86
- package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
- package/dist/esm/v2/components/Drawer.js +71 -65
- package/dist/esm/v2/components/Drawer.js.map +1 -1
- package/dist/esm/v2/components/Dropzone.js +130 -177
- package/dist/esm/v2/components/Dropzone.js.map +1 -1
- package/dist/esm/v2/components/EmptyState.js +9 -9
- package/dist/esm/v2/components/EmptyState.js.map +1 -1
- package/dist/esm/v2/components/FavoriteToggle.js +24 -33
- package/dist/esm/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/esm/v2/components/Field.js +155 -59
- package/dist/esm/v2/components/Field.js.map +1 -1
- package/dist/esm/v2/components/FieldError.js +9 -13
- package/dist/esm/v2/components/FieldError.js.map +1 -1
- package/dist/esm/v2/components/FieldHelp.js +28 -49
- package/dist/esm/v2/components/FieldHelp.js.map +1 -1
- package/dist/esm/v2/components/FileCard.js +14 -19
- package/dist/esm/v2/components/FileCard.js.map +1 -1
- package/dist/esm/v2/components/FilterTab.js +22 -31
- package/dist/esm/v2/components/FilterTab.js.map +1 -1
- package/dist/esm/v2/components/ForbiddenPage.js +28 -8
- package/dist/esm/v2/components/ForbiddenPage.js.map +1 -1
- package/dist/esm/v2/components/FormGrid.js +48 -54
- package/dist/esm/v2/components/FormGrid.js.map +1 -1
- package/dist/esm/v2/components/FormikDisplay.js +98 -24
- package/dist/esm/v2/components/FormikDisplay.js.map +1 -1
- package/dist/esm/v2/components/Input.js +75 -34
- package/dist/esm/v2/components/Input.js.map +1 -1
- package/dist/esm/v2/components/KPICard.js +42 -51
- package/dist/esm/v2/components/KPICard.js.map +1 -1
- package/dist/esm/v2/components/KPIStrip.js +9 -15
- package/dist/esm/v2/components/KPIStrip.js.map +1 -1
- package/dist/esm/v2/components/KV.js +16 -23
- package/dist/esm/v2/components/KV.js.map +1 -1
- package/dist/esm/v2/components/KVGrid.js +15 -23
- package/dist/esm/v2/components/KVGrid.js.map +1 -1
- package/dist/esm/v2/components/Layout.js +81 -117
- package/dist/esm/v2/components/Layout.js.map +1 -1
- package/dist/esm/v2/components/MobileRowCard.js +64 -75
- package/dist/esm/v2/components/MobileRowCard.js.map +1 -1
- package/dist/esm/v2/components/Modal.js +44 -53
- package/dist/esm/v2/components/Modal.js.map +1 -1
- package/dist/esm/v2/components/NetworkErrorPage.js +28 -11
- package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/esm/v2/components/NotFoundPage.js +28 -9
- package/dist/esm/v2/components/NotFoundPage.js.map +1 -1
- package/dist/esm/v2/components/NumberInput.js +77 -107
- package/dist/esm/v2/components/NumberInput.js.map +1 -1
- package/dist/esm/v2/components/OverflowMenu.js +24 -42
- package/dist/esm/v2/components/OverflowMenu.js.map +1 -1
- package/dist/esm/v2/components/PdfViewer.js +24 -33
- package/dist/esm/v2/components/PdfViewer.js.map +1 -1
- package/dist/esm/v2/components/ProgressBar.js +28 -36
- package/dist/esm/v2/components/ProgressBar.js.map +1 -1
- package/dist/esm/v2/components/Radio.js +49 -57
- package/dist/esm/v2/components/Radio.js.map +1 -1
- package/dist/esm/v2/components/SectionErrorBoundary.js +84 -130
- package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -1
- package/dist/esm/v2/components/SectionHeader.js +24 -31
- package/dist/esm/v2/components/SectionHeader.js.map +1 -1
- package/dist/esm/v2/components/Segmented.js +59 -84
- package/dist/esm/v2/components/Segmented.js.map +1 -1
- package/dist/esm/v2/components/Select.js +100 -138
- package/dist/esm/v2/components/Select.js.map +1 -1
- package/dist/esm/v2/components/ServerErrorPage.js +27 -10
- package/dist/esm/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/esm/v2/components/Skeleton.js +81 -96
- package/dist/esm/v2/components/Skeleton.js.map +1 -1
- package/dist/esm/v2/components/SkipLink.js +6 -7
- package/dist/esm/v2/components/SkipLink.js.map +1 -1
- package/dist/esm/v2/components/Spinner.js +13 -22
- package/dist/esm/v2/components/Spinner.js.map +1 -1
- package/dist/esm/v2/components/Status.js +14 -25
- package/dist/esm/v2/components/Status.js.map +1 -1
- package/dist/esm/v2/components/Stepper.js +68 -71
- package/dist/esm/v2/components/Stepper.js.map +1 -1
- package/dist/esm/v2/components/Surface.js +25 -44
- package/dist/esm/v2/components/Surface.js.map +1 -1
- package/dist/esm/v2/components/Switch.js +21 -29
- package/dist/esm/v2/components/Switch.js.map +1 -1
- package/dist/esm/v2/components/TabPanel.js +84 -0
- package/dist/esm/v2/components/TabPanel.js.map +1 -0
- package/dist/esm/v2/components/Tabs.js +43 -19
- package/dist/esm/v2/components/Tabs.js.map +1 -1
- package/dist/esm/v2/components/TelInput.js +75 -108
- package/dist/esm/v2/components/TelInput.js.map +1 -1
- package/dist/esm/v2/components/Textarea.js +21 -30
- package/dist/esm/v2/components/Textarea.js.map +1 -1
- package/dist/esm/v2/components/TimePicker.js +59 -69
- package/dist/esm/v2/components/TimePicker.js.map +1 -1
- package/dist/esm/v2/components/Toast.js +109 -163
- package/dist/esm/v2/components/Toast.js.map +1 -1
- package/dist/esm/v2/components/Tooltip.js +18 -31
- package/dist/esm/v2/components/Tooltip.js.map +1 -1
- package/dist/esm/v2/components/_ErrorPageBody.js +6 -5
- package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -1
- package/dist/esm/v2/components/_pickerShared.js +2 -2
- package/dist/esm/v2/components/_pickerShared.js.map +1 -1
- package/dist/esm/v2/components/index.js +37 -0
- package/dist/esm/v2/components/index.js.map +1 -1
- package/dist/esm/v2/hooks/index.js +62 -0
- package/dist/esm/v2/hooks/index.js.map +1 -1
- package/dist/esm/v2/hooks/useAppliedFilters.js +112 -0
- package/dist/esm/v2/hooks/useAppliedFilters.js.map +1 -0
- package/dist/esm/v2/hooks/useDebouncedCallback.js +82 -0
- package/dist/esm/v2/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/esm/v2/hooks/useDelayedFlag.js +5 -19
- package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -1
- package/dist/esm/v2/hooks/useDensity.js +13 -17
- package/dist/esm/v2/hooks/useDensity.js.map +1 -1
- package/dist/esm/v2/hooks/useFocusFirstError.js +25 -33
- package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -1
- package/dist/esm/v2/hooks/useFocusOnRouteChange.js +81 -0
- package/dist/esm/v2/hooks/useFocusOnRouteChange.js.map +1 -0
- package/dist/esm/v2/hooks/useFocusTrap.js +19 -23
- package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -1
- package/dist/esm/v2/hooks/useFormAutoSave.js +38 -53
- package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -1
- package/dist/esm/v2/hooks/useFormCompletionProgress.js +32 -51
- package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -1
- package/dist/esm/v2/hooks/useKeyboardShortcuts.js +125 -0
- package/dist/esm/v2/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/esm/v2/hooks/usePrefersReducedMotion.js +99 -0
- package/dist/esm/v2/hooks/usePrefersReducedMotion.js.map +1 -0
- package/dist/esm/v2/hooks/useResolvedDensity.js +2 -10
- package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -1
- package/dist/esm/v2/hooks/useSortedRows.js +3 -5
- package/dist/esm/v2/hooks/useSortedRows.js.map +1 -1
- package/dist/esm/v2/hooks/useTabLoading.js +6 -21
- package/dist/esm/v2/hooks/useTabLoading.js.map +1 -1
- package/dist/esm/v2/index.js +2 -3
- package/dist/esm/v2/index.js.map +1 -1
- package/dist/esm/v2/modalContext.js +2 -2
- package/dist/esm/v2/modalContext.js.map +1 -1
- package/dist/esm/v2/models/favorite.js.map +1 -1
- package/dist/esm/v2/models/personalization.js.map +1 -1
- package/dist/esm/v2/models/referentiel.js.map +1 -1
- package/dist/esm/v2/models/savedFilter.js.map +1 -1
- package/dist/esm/v2/patterns/ActionBar.js +115 -159
- package/dist/esm/v2/patterns/ActionBar.js.map +1 -1
- package/dist/esm/v2/patterns/AppMain.js +108 -0
- package/dist/esm/v2/patterns/AppMain.js.map +1 -0
- package/dist/esm/v2/patterns/BulkActionBar.js +31 -34
- package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/esm/v2/patterns/ChartFigure.js +151 -0
- package/dist/esm/v2/patterns/ChartFigure.js.map +1 -0
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js +111 -152
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/esm/v2/patterns/ColumnsToggle.js +43 -77
- package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/esm/v2/patterns/DataGrid.js +221 -255
- package/dist/esm/v2/patterns/DataGrid.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js +76 -94
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridToolbar.js +85 -89
- package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridVirtualized.js +141 -182
- package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +26 -30
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/esm/v2/patterns/DetailSplit.js +108 -0
- package/dist/esm/v2/patterns/DetailSplit.js.map +1 -0
- package/dist/esm/v2/patterns/FavoriteColumn.js +15 -17
- package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/esm/v2/patterns/FavoritesFilter.js +30 -39
- package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/esm/v2/patterns/FilterTabBar.js +112 -0
- package/dist/esm/v2/patterns/FilterTabBar.js.map +1 -0
- package/dist/esm/v2/patterns/FormErrorSummary.js +12 -13
- package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/esm/v2/patterns/FormPageShell.js +43 -41
- package/dist/esm/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/esm/v2/patterns/FormSection.js +30 -38
- package/dist/esm/v2/patterns/FormSection.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCheckbox.js +29 -39
- package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js +56 -60
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCombobox.js +51 -69
- package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDatePicker.js +44 -58
- package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDateTimePicker.js +44 -58
- package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -1
- package/dist/esm/v2/patterns/FormikErrorFocus.js +22 -23
- package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/esm/v2/patterns/FormikErrorSummary.js +89 -0
- package/dist/esm/v2/patterns/FormikErrorSummary.js.map +1 -0
- package/dist/esm/v2/patterns/FormikFile.js +94 -78
- package/dist/esm/v2/patterns/FormikFile.js.map +1 -1
- package/dist/esm/v2/patterns/FormikInput.js +40 -53
- package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
- package/dist/esm/v2/patterns/FormikRadioGroup.js +39 -51
- package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -1
- package/dist/esm/v2/patterns/FormikReferentielField.js +49 -59
- package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/esm/v2/patterns/FormikSelect.js +64 -87
- package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/esm/v2/patterns/FormikTextarea.js +30 -46
- package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +53 -71
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/esm/v2/patterns/NetworkErrorBanner.js +6 -7
- package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/esm/v2/patterns/PageContent.js +10 -14
- package/dist/esm/v2/patterns/PageContent.js.map +1 -1
- package/dist/esm/v2/patterns/PreviewDrawer.js +153 -0
- package/dist/esm/v2/patterns/PreviewDrawer.js.map +1 -0
- package/dist/esm/v2/patterns/ReferentielField.js +327 -312
- package/dist/esm/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/esm/v2/patterns/RowFavoriteToggle.js +27 -22
- package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -1
- package/dist/esm/v2/patterns/SaveFilterDialog.js +38 -66
- package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/esm/v2/patterns/SavedFiltersMenu.js +62 -81
- package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/esm/v2/patterns/SkeletonPageShell.js +106 -129
- package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/esm/v2/patterns/SortableHeader.js +22 -45
- package/dist/esm/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/esm/v2/patterns/Tour.js +94 -120
- package/dist/esm/v2/patterns/Tour.js.map +1 -1
- package/dist/esm/v2/patterns/_dataGridShared.js +107 -128
- package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/esm/v2/patterns/_pickerSerialisation.js +6 -8
- package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -1
- package/dist/esm/v2/patterns/_sort.js +17 -33
- package/dist/esm/v2/patterns/_sort.js.map +1 -1
- package/dist/esm/v2/patterns/_useColumnReorder.js +122 -160
- package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/esm/v2/patterns/_useColumnResize.js +78 -96
- package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/esm/v2/patterns/filterCriteria.js +102 -0
- package/dist/esm/v2/patterns/filterCriteria.js.map +1 -0
- package/dist/esm/v2/patterns/index.js +152 -0
- package/dist/esm/v2/patterns/index.js.map +1 -1
- package/dist/esm/v2/patterns/rowActions.js +223 -0
- package/dist/esm/v2/patterns/rowActions.js.map +1 -0
- package/dist/esm/v2/personalization/PersonalizationProvider.js +50 -47
- package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/_storageKey.js +5 -5
- package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +22 -23
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +13 -13
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/favorites.js +36 -60
- package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/favoritesView.js +22 -34
- package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js +28 -34
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
- package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
- package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
- package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/esm/v2/personalization/index.js +17 -0
- package/dist/esm/v2/personalization/index.js.map +1 -1
- package/dist/esm/v2/personalization/personalizationContext.js +9 -9
- package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
- package/dist/esm/v2/personalization/schema.js +8 -9
- package/dist/esm/v2/personalization/schema.js.map +1 -1
- package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
- package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/esm/v2/referentiel/types.js +2 -0
- package/dist/esm/v2/referentiel/types.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
- package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
- package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
- package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
- package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/esm/v2/theme/_brand.js +8 -24
- package/dist/esm/v2/theme/_brand.js.map +1 -1
- package/dist/esm/v2/theme/_brandSecondary.js +8 -24
- package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
- package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
- package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/esm/v2/theme/cssVariables.js +62 -69
- package/dist/esm/v2/theme/cssVariables.js.map +1 -1
- package/dist/esm/v2/theme/index.js +5 -5
- package/dist/esm/v2/theme/index.js.map +1 -1
- package/dist/esm/v2/tokens/breakpoints.js +14 -14
- package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
- package/dist/esm/v2/tokens/chart.js +261 -0
- package/dist/esm/v2/tokens/chart.js.map +1 -0
- package/dist/esm/v2/tokens/colors.js +22 -22
- package/dist/esm/v2/tokens/colors.js.map +1 -1
- package/dist/esm/v2/tokens/density.js +62 -7
- package/dist/esm/v2/tokens/density.js.map +1 -1
- package/dist/esm/v2/tokens/index.js +49 -34
- package/dist/esm/v2/tokens/index.js.map +1 -1
- package/dist/esm/v2/tokens/motion.js +12 -20
- package/dist/esm/v2/tokens/motion.js.map +1 -1
- package/dist/esm/v2/tokens/radius.js +1 -1
- package/dist/esm/v2/tokens/radius.js.map +1 -1
- package/dist/esm/v2/tokens/shadows.js +6 -6
- package/dist/esm/v2/tokens/shadows.js.map +1 -1
- package/dist/esm/v2/tokens/spacing.js +2 -2
- package/dist/esm/v2/tokens/spacing.js.map +1 -1
- package/dist/esm/v2/tokens/state.js +1 -1
- package/dist/esm/v2/tokens/state.js.map +1 -1
- package/dist/esm/v2/tokens/statusPalette.js +17 -21
- package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
- package/dist/esm/v2/tokens/tokens.json +6 -1
- package/dist/esm/v2/tokens/typography.js +13 -13
- package/dist/esm/v2/tokens/typography.js.map +1 -1
- package/dist/esm/v2/tokens/zIndex.js +1 -1
- package/dist/esm/v2/tokens/zIndex.js.map +1 -1
- package/dist/esm/v2/types/datagrid.js.map +1 -1
- package/dist/esm/v2/utils/apiError.js +16 -37
- package/dist/esm/v2/utils/apiError.js.map +1 -1
- package/dist/esm/v2/utils/contrast.js +31 -32
- package/dist/esm/v2/utils/contrast.js.map +1 -1
- package/dist/esm/v2/utils/cx.js +5 -25
- package/dist/esm/v2/utils/cx.js.map +1 -1
- package/dist/esm/v2/utils/fileDownload.js +23 -26
- package/dist/esm/v2/utils/fileDownload.js.map +1 -1
- package/dist/esm/v2/utils/fileValidation.js +209 -0
- package/dist/esm/v2/utils/fileValidation.js.map +1 -0
- package/dist/esm/v2/utils/fmtDate.js +111 -0
- package/dist/esm/v2/utils/fmtDate.js.map +1 -0
- package/dist/esm/v2/utils/fmtMoney.js +8 -10
- package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
- package/dist/esm/v2/utils/formikErrors.js +78 -0
- package/dist/esm/v2/utils/formikErrors.js.map +1 -0
- package/dist/esm/v2/utils/index.js +35 -2
- package/dist/esm/v2/utils/index.js.map +1 -1
- package/dist/esm/v2/utils/mergeLabels.js +7 -12
- package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
- package/dist/esm/v2/utils/networkStatus.js +12 -12
- package/dist/esm/v2/utils/networkStatus.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +110 -49
- package/dist/index.js.map +1 -1
- package/dist/v2/__tests__/AppMain.test.js +133 -0
- package/dist/v2/__tests__/AppMain.test.js.map +1 -0
- package/dist/v2/__tests__/ChartFigure.test.js +183 -0
- package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
- package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
- package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
- package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
- package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
- package/dist/v2/__tests__/FieldError.test.js +82 -49
- package/dist/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/v2/__tests__/FieldNaming.test.js +161 -0
- package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
- package/dist/v2/__tests__/FieldWidth.test.js +23 -25
- package/dist/v2/__tests__/FieldWidth.test.js.map +1 -1
- package/dist/v2/__tests__/FileCard.test.js +29 -28
- package/dist/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/v2/__tests__/FormikCheckbox.test.js +90 -183
- package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -1
- package/dist/v2/__tests__/FormikDateTimePicker.test.js +38 -48
- package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
- package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
- package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js +123 -204
- package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
- package/dist/v2/__tests__/MobileRowCard.test.js +63 -61
- package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
- package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
- package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
- package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
- package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
- package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/v2/__tests__/apiError.test.js +50 -69
- package/dist/v2/__tests__/apiError.test.js.map +1 -1
- package/dist/v2/__tests__/banned-patterns.test.js +42 -123
- package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
- package/dist/v2/__tests__/chart-palette.test.js +205 -0
- package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
- package/dist/v2/__tests__/contrast-palette.test.js +42 -74
- package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
- package/dist/v2/__tests__/cssVariables.test.js +44 -51
- package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
- package/dist/v2/__tests__/fileValidation.test.js +136 -0
- package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
- package/dist/v2/__tests__/filterCriteria.test.js +324 -0
- package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
- package/dist/v2/__tests__/fmtDate.test.js +69 -0
- package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
- package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
- package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
- package/dist/v2/__tests__/labels-merge.test.js +23 -27
- package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/v2/__tests__/locale-fallback.test.js +47 -52
- package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
- package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
- package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
- package/dist/v2/__tests__/rowActions.test.js +186 -0
- package/dist/v2/__tests__/rowActions.test.js.map +1 -0
- package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
- package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
- package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
- package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
- package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
- package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
- package/dist/v2/components/Accordion.js +60 -82
- package/dist/v2/components/Accordion.js.map +1 -1
- package/dist/v2/components/ActionStrip.js +40 -52
- package/dist/v2/components/ActionStrip.js.map +1 -1
- package/dist/v2/components/Banner.js +42 -41
- package/dist/v2/components/Banner.js.map +1 -1
- package/dist/v2/components/Busy.js +22 -27
- package/dist/v2/components/Busy.js.map +1 -1
- package/dist/v2/components/Button.js +39 -50
- package/dist/v2/components/Button.js.map +1 -1
- package/dist/v2/components/CategoryTag.d.ts.map +1 -1
- package/dist/v2/components/CategoryTag.js +49 -32
- package/dist/v2/components/CategoryTag.js.map +1 -1
- package/dist/v2/components/Checkbox.js +39 -45
- package/dist/v2/components/Checkbox.js.map +1 -1
- package/dist/v2/components/Chip.js +29 -42
- package/dist/v2/components/Chip.js.map +1 -1
- package/dist/v2/components/Combobox.js +122 -144
- package/dist/v2/components/Combobox.js.map +1 -1
- package/dist/v2/components/CommandPalette.js +138 -225
- package/dist/v2/components/CommandPalette.js.map +1 -1
- package/dist/v2/components/ConfirmDialog.js +46 -56
- package/dist/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/v2/components/DatePicker.js +81 -86
- package/dist/v2/components/DatePicker.js.map +1 -1
- package/dist/v2/components/DateRangePicker.js +77 -87
- package/dist/v2/components/DateRangePicker.js.map +1 -1
- package/dist/v2/components/DateTimePicker.js +84 -91
- package/dist/v2/components/DateTimePicker.js.map +1 -1
- package/dist/v2/components/Drawer.d.ts.map +1 -1
- package/dist/v2/components/Drawer.js +93 -88
- package/dist/v2/components/Drawer.js.map +1 -1
- package/dist/v2/components/Dropzone.js +150 -196
- package/dist/v2/components/Dropzone.js.map +1 -1
- package/dist/v2/components/EmptyState.js +18 -20
- package/dist/v2/components/EmptyState.js.map +1 -1
- package/dist/v2/components/FavoriteToggle.js +28 -39
- package/dist/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/v2/components/Field.d.ts +62 -4
- package/dist/v2/components/Field.d.ts.map +1 -1
- package/dist/v2/components/Field.js +169 -70
- package/dist/v2/components/Field.js.map +1 -1
- package/dist/v2/components/FieldError.js +18 -21
- package/dist/v2/components/FieldError.js.map +1 -1
- package/dist/v2/components/FieldHelp.js +40 -60
- package/dist/v2/components/FieldHelp.js.map +1 -1
- package/dist/v2/components/FileCard.js +27 -31
- package/dist/v2/components/FileCard.js.map +1 -1
- package/dist/v2/components/FilterTab.js +30 -38
- package/dist/v2/components/FilterTab.js.map +1 -1
- package/dist/v2/components/ForbiddenPage.d.ts +25 -1
- package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
- package/dist/v2/components/ForbiddenPage.js +37 -17
- package/dist/v2/components/ForbiddenPage.js.map +1 -1
- package/dist/v2/components/FormGrid.js +53 -59
- package/dist/v2/components/FormGrid.js.map +1 -1
- package/dist/v2/components/FormikDisplay.d.ts +50 -1
- package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
- package/dist/v2/components/FormikDisplay.js +108 -33
- package/dist/v2/components/FormikDisplay.js.map +1 -1
- package/dist/v2/components/Input.d.ts +40 -0
- package/dist/v2/components/Input.d.ts.map +1 -1
- package/dist/v2/components/Input.js +81 -41
- package/dist/v2/components/Input.js.map +1 -1
- package/dist/v2/components/KPICard.js +57 -67
- package/dist/v2/components/KPICard.js.map +1 -1
- package/dist/v2/components/KPIStrip.js +16 -22
- package/dist/v2/components/KPIStrip.js.map +1 -1
- package/dist/v2/components/KV.js +25 -31
- package/dist/v2/components/KV.js.map +1 -1
- package/dist/v2/components/KVGrid.js +19 -26
- package/dist/v2/components/KVGrid.js.map +1 -1
- package/dist/v2/components/Layout.js +91 -120
- package/dist/v2/components/Layout.js.map +1 -1
- package/dist/v2/components/MobileRowCard.js +79 -91
- package/dist/v2/components/MobileRowCard.js.map +1 -1
- package/dist/v2/components/Modal.js +61 -69
- package/dist/v2/components/Modal.js.map +1 -1
- package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
- package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
- package/dist/v2/components/NetworkErrorPage.js +38 -21
- package/dist/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/v2/components/NotFoundPage.d.ts +17 -1
- package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
- package/dist/v2/components/NotFoundPage.js +37 -18
- package/dist/v2/components/NotFoundPage.js.map +1 -1
- package/dist/v2/components/NumberInput.js +88 -118
- package/dist/v2/components/NumberInput.js.map +1 -1
- package/dist/v2/components/OverflowMenu.js +38 -56
- package/dist/v2/components/OverflowMenu.js.map +1 -1
- package/dist/v2/components/PdfViewer.js +34 -45
- package/dist/v2/components/PdfViewer.js.map +1 -1
- package/dist/v2/components/ProgressBar.js +42 -49
- package/dist/v2/components/ProgressBar.js.map +1 -1
- package/dist/v2/components/Radio.js +59 -67
- package/dist/v2/components/Radio.js.map +1 -1
- package/dist/v2/components/SectionErrorBoundary.js +90 -135
- package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
- package/dist/v2/components/SectionHeader.js +34 -41
- package/dist/v2/components/SectionHeader.js.map +1 -1
- package/dist/v2/components/Segmented.js +69 -93
- package/dist/v2/components/Segmented.js.map +1 -1
- package/dist/v2/components/Select.d.ts +26 -2
- package/dist/v2/components/Select.d.ts.map +1 -1
- package/dist/v2/components/Select.js +120 -155
- package/dist/v2/components/Select.js.map +1 -1
- package/dist/v2/components/ServerErrorPage.d.ts +27 -1
- package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
- package/dist/v2/components/ServerErrorPage.js +37 -20
- package/dist/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/v2/components/Skeleton.js +86 -100
- package/dist/v2/components/Skeleton.js.map +1 -1
- package/dist/v2/components/SkipLink.js +9 -12
- package/dist/v2/components/SkipLink.js.map +1 -1
- package/dist/v2/components/Spinner.js +16 -25
- package/dist/v2/components/Spinner.js.map +1 -1
- package/dist/v2/components/Status.js +18 -29
- package/dist/v2/components/Status.js.map +1 -1
- package/dist/v2/components/Stepper.js +80 -82
- package/dist/v2/components/Stepper.js.map +1 -1
- package/dist/v2/components/Surface.js +34 -49
- package/dist/v2/components/Surface.js.map +1 -1
- package/dist/v2/components/Switch.js +29 -37
- package/dist/v2/components/Switch.js.map +1 -1
- package/dist/v2/components/TabPanel.d.ts +17 -0
- package/dist/v2/components/TabPanel.d.ts.map +1 -0
- package/dist/v2/components/TabPanel.js +90 -0
- package/dist/v2/components/TabPanel.js.map +1 -0
- package/dist/v2/components/Tabs.d.ts +25 -0
- package/dist/v2/components/Tabs.d.ts.map +1 -1
- package/dist/v2/components/Tabs.js +53 -29
- package/dist/v2/components/Tabs.js.map +1 -1
- package/dist/v2/components/TelInput.js +80 -115
- package/dist/v2/components/TelInput.js.map +1 -1
- package/dist/v2/components/Textarea.js +26 -35
- package/dist/v2/components/Textarea.js.map +1 -1
- package/dist/v2/components/TimePicker.js +62 -74
- package/dist/v2/components/TimePicker.js.map +1 -1
- package/dist/v2/components/Toast.js +119 -174
- package/dist/v2/components/Toast.js.map +1 -1
- package/dist/v2/components/Tooltip.js +23 -38
- package/dist/v2/components/Tooltip.js.map +1 -1
- package/dist/v2/components/_ErrorPageBody.js +15 -16
- package/dist/v2/components/_ErrorPageBody.js.map +1 -1
- package/dist/v2/components/_pickerShared.js +5 -5
- package/dist/v2/components/_pickerShared.js.map +1 -1
- package/dist/v2/components/index.d.ts +40 -1
- package/dist/v2/components/index.d.ts.map +1 -1
- package/dist/v2/components/index.js +153 -136
- package/dist/v2/components/index.js.map +1 -1
- package/dist/v2/hooks/index.d.ts +65 -0
- package/dist/v2/hooks/index.d.ts.map +1 -1
- package/dist/v2/hooks/index.js +63 -24
- package/dist/v2/hooks/index.js.map +1 -1
- package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
- package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
- package/dist/v2/hooks/useAppliedFilters.js +117 -0
- package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
- package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
- package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
- package/dist/v2/hooks/useDebouncedCallback.js +87 -0
- package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/v2/hooks/useDelayedFlag.js +6 -20
- package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
- package/dist/v2/hooks/useDensity.d.ts.map +1 -1
- package/dist/v2/hooks/useDensity.js +14 -18
- package/dist/v2/hooks/useDensity.js.map +1 -1
- package/dist/v2/hooks/useFocusFirstError.js +26 -34
- package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
- package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
- package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
- package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
- package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
- package/dist/v2/hooks/useFocusTrap.js +20 -24
- package/dist/v2/hooks/useFocusTrap.js.map +1 -1
- package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
- package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
- package/dist/v2/hooks/useFormAutoSave.js +39 -54
- package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
- package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
- package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
- package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
- package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
- package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
- package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
- package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
- package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
- package/dist/v2/hooks/useResolvedDensity.js +5 -13
- package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
- package/dist/v2/hooks/useSortedRows.js +4 -6
- package/dist/v2/hooks/useSortedRows.js.map +1 -1
- package/dist/v2/hooks/useTabLoading.js +7 -22
- package/dist/v2/hooks/useTabLoading.js.map +1 -1
- package/dist/v2/index.js +143 -145
- package/dist/v2/index.js.map +1 -1
- package/dist/v2/modalContext.js +2 -2
- package/dist/v2/modalContext.js.map +1 -1
- package/dist/v2/models/favorite.d.ts +8 -9
- package/dist/v2/models/favorite.d.ts.map +1 -1
- package/dist/v2/models/favorite.js.map +1 -1
- package/dist/v2/models/index.js +4 -4
- package/dist/v2/models/index.js.map +1 -1
- package/dist/v2/models/personalization.d.ts +44 -48
- package/dist/v2/models/personalization.d.ts.map +1 -1
- package/dist/v2/models/personalization.js.map +1 -1
- package/dist/v2/models/referentiel.d.ts +32 -50
- package/dist/v2/models/referentiel.d.ts.map +1 -1
- package/dist/v2/models/referentiel.js.map +1 -1
- package/dist/v2/models/savedFilter.d.ts +8 -17
- package/dist/v2/models/savedFilter.d.ts.map +1 -1
- package/dist/v2/models/savedFilter.js.map +1 -1
- package/dist/v2/patterns/ActionBar.js +152 -187
- package/dist/v2/patterns/ActionBar.js.map +1 -1
- package/dist/v2/patterns/AppMain.d.ts +109 -0
- package/dist/v2/patterns/AppMain.d.ts.map +1 -0
- package/dist/v2/patterns/AppMain.js +115 -0
- package/dist/v2/patterns/AppMain.js.map +1 -0
- package/dist/v2/patterns/BulkActionBar.js +40 -42
- package/dist/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/v2/patterns/ChartFigure.d.ts +124 -0
- package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
- package/dist/v2/patterns/ChartFigure.js +159 -0
- package/dist/v2/patterns/ChartFigure.js.map +1 -0
- package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
- package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/v2/patterns/ColumnsToggle.js +60 -94
- package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
- package/dist/v2/patterns/DataGrid.js +262 -297
- package/dist/v2/patterns/DataGrid.js.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
- package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/v2/patterns/DataGridToolbar.js +103 -106
- package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/v2/patterns/DataGridVirtualized.js +179 -217
- package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/v2/patterns/DetailSplit.d.ts +87 -0
- package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
- package/dist/v2/patterns/DetailSplit.js +116 -0
- package/dist/v2/patterns/DetailSplit.js.map +1 -0
- package/dist/v2/patterns/FavoriteColumn.js +22 -23
- package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/v2/patterns/FavoritesFilter.js +36 -44
- package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
- package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
- package/dist/v2/patterns/FilterTabBar.js +120 -0
- package/dist/v2/patterns/FilterTabBar.js.map +1 -0
- package/dist/v2/patterns/FormErrorSummary.js +20 -23
- package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/v2/patterns/FormPageShell.js +53 -50
- package/dist/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/v2/patterns/FormSection.d.ts +8 -3
- package/dist/v2/patterns/FormSection.d.ts.map +1 -1
- package/dist/v2/patterns/FormSection.js +44 -51
- package/dist/v2/patterns/FormSection.js.map +1 -1
- package/dist/v2/patterns/FormikCheckbox.js +36 -45
- package/dist/v2/patterns/FormikCheckbox.js.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
- package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/v2/patterns/FormikCombobox.js +55 -72
- package/dist/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.js +50 -64
- package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/v2/patterns/FormikDateTimePicker.js +50 -64
- package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -1
- package/dist/v2/patterns/FormikErrorFocus.js +25 -26
- package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
- package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
- package/dist/v2/patterns/FormikErrorSummary.js +97 -0
- package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
- package/dist/v2/patterns/FormikFile.d.ts +14 -1
- package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
- package/dist/v2/patterns/FormikFile.js +99 -83
- package/dist/v2/patterns/FormikFile.js.map +1 -1
- package/dist/v2/patterns/FormikInput.js +45 -58
- package/dist/v2/patterns/FormikInput.js.map +1 -1
- package/dist/v2/patterns/FormikRadioGroup.js +45 -56
- package/dist/v2/patterns/FormikRadioGroup.js.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
- package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.js +54 -64
- package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/v2/patterns/FormikSelect.js +70 -92
- package/dist/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/v2/patterns/FormikTextarea.js +35 -51
- package/dist/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.js +60 -80
- package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
- package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/v2/patterns/PageContent.js +17 -20
- package/dist/v2/patterns/PageContent.js.map +1 -1
- package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
- package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
- package/dist/v2/patterns/PreviewDrawer.js +159 -0
- package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
- package/dist/v2/patterns/ReferentielField.d.ts +86 -2
- package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/ReferentielField.js +347 -327
- package/dist/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/v2/patterns/RowFavoriteToggle.d.ts +6 -0
- package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -1
- package/dist/v2/patterns/RowFavoriteToggle.js +38 -30
- package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -1
- package/dist/v2/patterns/SaveFilterDialog.js +50 -77
- package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
- package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/v2/patterns/SkeletonPageShell.js +122 -143
- package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/v2/patterns/SortableHeader.js +35 -57
- package/dist/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/v2/patterns/Tour.js +121 -142
- package/dist/v2/patterns/Tour.js.map +1 -1
- package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
- package/dist/v2/patterns/_dataGridShared.js +131 -147
- package/dist/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/v2/patterns/_pickerSerialisation.js +9 -10
- package/dist/v2/patterns/_pickerSerialisation.js.map +1 -1
- package/dist/v2/patterns/_sort.js +17 -33
- package/dist/v2/patterns/_sort.js.map +1 -1
- package/dist/v2/patterns/_useColumnReorder.js +124 -163
- package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/v2/patterns/_useColumnResize.js +80 -99
- package/dist/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/v2/patterns/filterCriteria.d.ts +78 -0
- package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
- package/dist/v2/patterns/filterCriteria.js +110 -0
- package/dist/v2/patterns/filterCriteria.js.map +1 -0
- package/dist/v2/patterns/index.d.ts +160 -0
- package/dist/v2/patterns/index.d.ts.map +1 -1
- package/dist/v2/patterns/index.js +157 -79
- package/dist/v2/patterns/index.js.map +1 -1
- package/dist/v2/patterns/rowActions.d.ts +150 -0
- package/dist/v2/patterns/rowActions.d.ts.map +1 -0
- package/dist/v2/patterns/rowActions.js +232 -0
- package/dist/v2/patterns/rowActions.js.map +1 -0
- package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
- package/dist/v2/personalization/PersonalizationProvider.js +57 -53
- package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/v2/personalization/adapters/_storageKey.js +5 -5
- package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
- package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/index.js +5 -5
- package/dist/v2/personalization/adapters/index.js.map +1 -1
- package/dist/v2/personalization/capabilities/favorites.js +39 -62
- package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
- package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
- package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/v2/personalization/capabilities/gridPreferences.js +31 -36
- package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -1
- package/dist/v2/personalization/capabilities/index.js +12 -12
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
- package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
- package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.js +81 -182
- package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/v2/personalization/index.d.ts +16 -0
- package/dist/v2/personalization/index.d.ts.map +1 -1
- package/dist/v2/personalization/index.js +30 -23
- package/dist/v2/personalization/index.js.map +1 -1
- package/dist/v2/personalization/personalizationContext.js +10 -12
- package/dist/v2/personalization/personalizationContext.js.map +1 -1
- package/dist/v2/personalization/schema.js +8 -9
- package/dist/v2/personalization/schema.js.map +1 -1
- package/dist/v2/referentiel/ReferentielProvider.js +31 -45
- package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/v2/referentiel/index.js +11 -13
- package/dist/v2/referentiel/index.js.map +1 -1
- package/dist/v2/referentiel/types.d.ts +105 -0
- package/dist/v2/referentiel/types.d.ts.map +1 -0
- package/dist/v2/referentiel/types.js +6 -0
- package/dist/v2/referentiel/types.js.map +1 -0
- package/dist/v2/referentiel/useReferentielClient.js +13 -16
- package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
- package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.js +63 -120
- package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
- package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.js +40 -95
- package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/v2/theme/_brand.js +12 -26
- package/dist/v2/theme/_brand.js.map +1 -1
- package/dist/v2/theme/_brandSecondary.js +12 -26
- package/dist/v2/theme/_brandSecondary.js.map +1 -1
- package/dist/v2/theme/createPortnetTheme.js +41 -49
- package/dist/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/v2/theme/cssVariables.d.ts +3 -3
- package/dist/v2/theme/cssVariables.d.ts.map +1 -1
- package/dist/v2/theme/cssVariables.js +65 -70
- package/dist/v2/theme/cssVariables.js.map +1 -1
- package/dist/v2/theme/index.js +10 -10
- package/dist/v2/theme/index.js.map +1 -1
- package/dist/v2/tokens/breakpoints.js +16 -16
- package/dist/v2/tokens/breakpoints.js.map +1 -1
- package/dist/v2/tokens/chart.d.ts +103 -0
- package/dist/v2/tokens/chart.d.ts.map +1 -0
- package/dist/v2/tokens/chart.js +270 -0
- package/dist/v2/tokens/chart.js.map +1 -0
- package/dist/v2/tokens/colors.js +24 -24
- package/dist/v2/tokens/colors.js.map +1 -1
- package/dist/v2/tokens/density.d.ts +104 -0
- package/dist/v2/tokens/density.d.ts.map +1 -1
- package/dist/v2/tokens/density.js +67 -12
- package/dist/v2/tokens/density.js.map +1 -1
- package/dist/v2/tokens/index.d.ts +50 -1
- package/dist/v2/tokens/index.d.ts.map +1 -1
- package/dist/v2/tokens/index.js +116 -68
- package/dist/v2/tokens/index.js.map +1 -1
- package/dist/v2/tokens/motion.js +16 -22
- package/dist/v2/tokens/motion.js.map +1 -1
- package/dist/v2/tokens/radius.js +3 -3
- package/dist/v2/tokens/radius.js.map +1 -1
- package/dist/v2/tokens/shadows.js +8 -8
- package/dist/v2/tokens/shadows.js.map +1 -1
- package/dist/v2/tokens/spacing.js +4 -4
- package/dist/v2/tokens/spacing.js.map +1 -1
- package/dist/v2/tokens/state.js +3 -3
- package/dist/v2/tokens/state.js.map +1 -1
- package/dist/v2/tokens/statusPalette.js +21 -23
- package/dist/v2/tokens/statusPalette.js.map +1 -1
- package/dist/v2/tokens/tokens.json +6 -1
- package/dist/v2/tokens/typography.js +15 -15
- package/dist/v2/tokens/typography.js.map +1 -1
- package/dist/v2/tokens/zIndex.js +3 -3
- package/dist/v2/tokens/zIndex.js.map +1 -1
- package/dist/v2/types/datagrid.d.ts +9 -1
- package/dist/v2/types/datagrid.d.ts.map +1 -1
- package/dist/v2/types/datagrid.js.map +1 -1
- package/dist/v2/types/index.js +2 -2
- package/dist/v2/types/index.js.map +1 -1
- package/dist/v2/utils/apiError.js +16 -37
- package/dist/v2/utils/apiError.js.map +1 -1
- package/dist/v2/utils/contrast.js +31 -32
- package/dist/v2/utils/contrast.js.map +1 -1
- package/dist/v2/utils/cx.js +7 -27
- package/dist/v2/utils/cx.js.map +1 -1
- package/dist/v2/utils/fileDownload.js +25 -28
- package/dist/v2/utils/fileDownload.js.map +1 -1
- package/dist/v2/utils/fileValidation.d.ts +116 -0
- package/dist/v2/utils/fileValidation.d.ts.map +1 -0
- package/dist/v2/utils/fileValidation.js +220 -0
- package/dist/v2/utils/fileValidation.js.map +1 -0
- package/dist/v2/utils/fmtDate.d.ts +103 -0
- package/dist/v2/utils/fmtDate.d.ts.map +1 -0
- package/dist/v2/utils/fmtDate.js +119 -0
- package/dist/v2/utils/fmtDate.js.map +1 -0
- package/dist/v2/utils/fmtMoney.d.ts +3 -3
- package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
- package/dist/v2/utils/fmtMoney.js +9 -11
- package/dist/v2/utils/fmtMoney.js.map +1 -1
- package/dist/v2/utils/formikErrors.d.ts +67 -0
- package/dist/v2/utils/formikErrors.d.ts.map +1 -0
- package/dist/v2/utils/formikErrors.js +85 -0
- package/dist/v2/utils/formikErrors.js.map +1 -0
- package/dist/v2/utils/index.d.ts +5 -0
- package/dist/v2/utils/index.d.ts.map +1 -1
- package/dist/v2/utils/index.js +67 -18
- package/dist/v2/utils/index.js.map +1 -1
- package/dist/v2/utils/mergeLabels.js +9 -14
- package/dist/v2/utils/mergeLabels.js.map +1 -1
- package/dist/v2/utils/networkStatus.js +14 -14
- package/dist/v2/utils/networkStatus.js.map +1 -1
- package/package.json +26 -9
|
@@ -3,12 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
6
|
+
exports.default = createPersonalizationStore;
|
|
7
7
|
var _schema = require("./schema");
|
|
8
|
-
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
|
|
9
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
10
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
11
|
-
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); } /**
|
|
8
|
+
/**
|
|
12
9
|
* createPersonalizationStore โ Portnet UI v2 ยท personalization
|
|
13
10
|
*
|
|
14
11
|
* Scoped, multi-capability, adapter-backed store. Generalises the
|
|
@@ -34,54 +31,52 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
34
31
|
* the typed capability slices impose the concrete payload types on top via
|
|
35
32
|
* the generic read<T>/write<T> facades.
|
|
36
33
|
*/
|
|
34
|
+
|
|
37
35
|
/** The store's in-memory snapshot: { [capabilityId]: payload }. */
|
|
38
36
|
|
|
39
37
|
/** A write value, or a functional updater `(previous) => next`. */
|
|
40
38
|
|
|
41
39
|
/** The store handle returned by createPersonalizationStore. */
|
|
42
40
|
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
const EMPTY_OBJECT = Object.freeze({});
|
|
42
|
+
const isDev = typeof process !== "undefined" && process.env && process.env["NODE_ENV"] !== "production";
|
|
45
43
|
function createPersonalizationStore(config) {
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
const cfg = config || {};
|
|
45
|
+
const scope = cfg.scope || {
|
|
48
46
|
userId: "anonymous"
|
|
49
47
|
};
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
const adapter = cfg.adapter || null;
|
|
49
|
+
const defaults = cfg.defaults || null;
|
|
52
50
|
|
|
53
51
|
/** Live snapshot: { [capabilityId]: payload }. New top-level ref on every change. */
|
|
54
|
-
|
|
52
|
+
let state = {};
|
|
55
53
|
/** Raw persisted envelopes from the adapter: { [capabilityId]: envelope }. */
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
let rawEnvelopes = {};
|
|
55
|
+
let hydrated = false;
|
|
56
|
+
let disposed = false;
|
|
57
|
+
let disconnect = null;
|
|
58
|
+
let runtime = {
|
|
61
59
|
onError: typeof cfg.onError === "function" ? cfg.onError : null,
|
|
62
60
|
hydrateStrategy: cfg.hydrateStrategy || "remote-wins"
|
|
63
61
|
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
const listeners = new Set();
|
|
63
|
+
const statuses = {};
|
|
64
|
+
const errors = {};
|
|
67
65
|
/** Capabilities written before hydration finished โ protected from the initial load. */
|
|
68
|
-
|
|
66
|
+
const preHydrationWrites = new Set();
|
|
69
67
|
|
|
70
68
|
/* โโ subscription / snapshot (useSyncExternalStore contract) โโโโโโโ */
|
|
71
69
|
|
|
72
70
|
function notify() {
|
|
73
71
|
// Iterate a snapshot so a listener unmounting during notify doesn't
|
|
74
72
|
// mutate the Set under iteration (same guard as useDensity).
|
|
75
|
-
|
|
76
|
-
for (
|
|
77
|
-
var listener = _current[_i];
|
|
78
|
-
listener();
|
|
79
|
-
}
|
|
73
|
+
const current = Array.from(listeners);
|
|
74
|
+
for (const listener of current) listener();
|
|
80
75
|
}
|
|
81
76
|
function subscribe(listener) {
|
|
82
77
|
listeners.add(listener);
|
|
83
78
|
return function unsubscribe() {
|
|
84
|
-
listeners
|
|
79
|
+
listeners.delete(listener);
|
|
85
80
|
};
|
|
86
81
|
}
|
|
87
82
|
function getSnapshot() {
|
|
@@ -97,12 +92,12 @@ function createPersonalizationStore(config) {
|
|
|
97
92
|
if (defaults && Object.prototype.hasOwnProperty.call(defaults, capId)) {
|
|
98
93
|
return defaults[capId];
|
|
99
94
|
}
|
|
100
|
-
|
|
95
|
+
const desc = (0, _schema.getCapability)(capId);
|
|
101
96
|
if (desc && desc.defaultState !== undefined) return desc.defaultState;
|
|
102
97
|
return EMPTY_OBJECT;
|
|
103
98
|
}
|
|
104
99
|
function reportError(capId, e) {
|
|
105
|
-
|
|
100
|
+
const err = e instanceof Error ? e : new Error(String(e || "personalization error"));
|
|
106
101
|
errors[capId] = err;
|
|
107
102
|
statuses[capId] = "error";
|
|
108
103
|
if (runtime.onError) {
|
|
@@ -111,10 +106,11 @@ function createPersonalizationStore(config) {
|
|
|
111
106
|
scope: scope,
|
|
112
107
|
capabilityId: capId
|
|
113
108
|
});
|
|
114
|
-
} catch
|
|
109
|
+
} catch {
|
|
115
110
|
/* host onError must not break the store */
|
|
116
111
|
}
|
|
117
112
|
}
|
|
113
|
+
// eslint-disable-next-line no-console
|
|
118
114
|
if (isDev && typeof console !== "undefined" && console.error) {
|
|
119
115
|
// eslint-disable-next-line no-console
|
|
120
116
|
console.error('[@portnet/ui v2] personalization "' + capId + '":', err);
|
|
@@ -123,9 +119,9 @@ function createPersonalizationStore(config) {
|
|
|
123
119
|
|
|
124
120
|
/** Pure: derive a capability payload from raw envelope (+migrate) or seed. */
|
|
125
121
|
function computePayload(capId) {
|
|
126
|
-
|
|
127
|
-
if (raw &&
|
|
128
|
-
|
|
122
|
+
const raw = rawEnvelopes[capId];
|
|
123
|
+
if (raw && typeof raw === "object" && Object.prototype.hasOwnProperty.call(raw, "payload")) {
|
|
124
|
+
const desc = (0, _schema.getCapability)(capId);
|
|
129
125
|
if (desc && typeof desc.migrate === "function") {
|
|
130
126
|
try {
|
|
131
127
|
return desc.migrate(typeof raw.schemaVersion === "number" ? raw.schemaVersion : 0, raw.payload);
|
|
@@ -141,11 +137,8 @@ function createPersonalizationStore(config) {
|
|
|
141
137
|
|
|
142
138
|
/** Replace one slice immutably (structural sharing; new top-level ref). */
|
|
143
139
|
function setSlice(capId, payload) {
|
|
144
|
-
|
|
145
|
-
for (
|
|
146
|
-
var key = _Object$keys[_i2];
|
|
147
|
-
next[key] = state[key];
|
|
148
|
-
}
|
|
140
|
+
const next = {};
|
|
141
|
+
for (const key of Object.keys(state)) next[key] = state[key];
|
|
149
142
|
next[capId] = payload;
|
|
150
143
|
state = next;
|
|
151
144
|
}
|
|
@@ -181,10 +174,10 @@ function createPersonalizationStore(config) {
|
|
|
181
174
|
|
|
182
175
|
function write(capId, updater, options) {
|
|
183
176
|
if (disposed) return undefined;
|
|
184
|
-
|
|
177
|
+
const persist = !options || options.persist !== false;
|
|
185
178
|
materialiseIfMissing(capId);
|
|
186
|
-
|
|
187
|
-
|
|
179
|
+
const prev = state[capId];
|
|
180
|
+
const next = typeof updater === "function" ? updater(prev) : updater;
|
|
188
181
|
if (Object.is(next, prev)) return prev; // no-op short-circuit
|
|
189
182
|
|
|
190
183
|
setSlice(capId, next);
|
|
@@ -193,9 +186,9 @@ function createPersonalizationStore(config) {
|
|
|
193
186
|
if (persist && adapter && typeof adapter.save === "function") {
|
|
194
187
|
// Capture the narrowed adapter: the `if` narrowing does not reach into
|
|
195
188
|
// the async closures below, and `save` is required on Adapter.
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
189
|
+
const activeAdapter = adapter;
|
|
190
|
+
const desc = (0, _schema.getCapability)(capId);
|
|
191
|
+
const envelope = (0, _schema.makeEnvelope)(desc ? desc.schemaVersion : 1, next);
|
|
199
192
|
statuses[capId] = "saving";
|
|
200
193
|
Promise.resolve().then(function persistSlice() {
|
|
201
194
|
return activeAdapter.save(scope, capId, envelope);
|
|
@@ -203,7 +196,7 @@ function createPersonalizationStore(config) {
|
|
|
203
196
|
if (disposed) return;
|
|
204
197
|
statuses[capId] = "idle";
|
|
205
198
|
errors[capId] = null;
|
|
206
|
-
})
|
|
199
|
+
}).catch(function onSaveFailed(e) {
|
|
207
200
|
if (disposed) return;
|
|
208
201
|
// Keep the optimistic value for the session; surface the error.
|
|
209
202
|
reportError(capId, e);
|
|
@@ -218,10 +211,10 @@ function createPersonalizationStore(config) {
|
|
|
218
211
|
setSlice(capId, seedFor(capId));
|
|
219
212
|
notify();
|
|
220
213
|
if (adapter && typeof adapter.remove === "function") {
|
|
221
|
-
|
|
214
|
+
const activeAdapter = adapter;
|
|
222
215
|
Promise.resolve().then(function removeSlice() {
|
|
223
216
|
return activeAdapter.remove ? activeAdapter.remove(scope, capId) : undefined;
|
|
224
|
-
})
|
|
217
|
+
}).catch(function onRemoveFailed(e) {
|
|
225
218
|
reportError(capId, e);
|
|
226
219
|
});
|
|
227
220
|
}
|
|
@@ -230,18 +223,15 @@ function createPersonalizationStore(config) {
|
|
|
230
223
|
/* โโ hydration โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */
|
|
231
224
|
|
|
232
225
|
function rematerialiseAfterLoad() {
|
|
233
|
-
|
|
226
|
+
const ids = new Set();
|
|
234
227
|
Object.keys(rawEnvelopes).forEach(function addRawId(id) {
|
|
235
228
|
ids.add(id);
|
|
236
229
|
});
|
|
237
230
|
(0, _schema.getRegisteredCapabilities)().forEach(function addRegisteredId(d) {
|
|
238
231
|
ids.add(d.id);
|
|
239
232
|
});
|
|
240
|
-
|
|
241
|
-
for (
|
|
242
|
-
var key = _Object$keys2[_i3];
|
|
243
|
-
next[key] = state[key];
|
|
244
|
-
}
|
|
233
|
+
const next = {};
|
|
234
|
+
for (const key of Object.keys(state)) next[key] = state[key];
|
|
245
235
|
ids.forEach(function materialise(capId) {
|
|
246
236
|
// Persisted truth wins over a pre-hydration seed, but never clobbers
|
|
247
237
|
// an optimistic write the user made during the hydrating window.
|
|
@@ -256,149 +246,58 @@ function createPersonalizationStore(config) {
|
|
|
256
246
|
if (typeof window === "undefined") return;
|
|
257
247
|
if (!adapter || typeof adapter.loadSync !== "function") return;
|
|
258
248
|
try {
|
|
259
|
-
|
|
260
|
-
if (loaded &&
|
|
249
|
+
const loaded = adapter.loadSync(scope);
|
|
250
|
+
if (loaded && typeof loaded === "object") {
|
|
261
251
|
rawEnvelopes = loaded;
|
|
262
252
|
rematerialiseAfterLoad();
|
|
263
253
|
hydrated = true;
|
|
264
254
|
}
|
|
265
255
|
} catch (e) {
|
|
266
256
|
// Fall back to async hydrate().
|
|
257
|
+
// eslint-disable-next-line no-console
|
|
267
258
|
if (isDev && typeof console !== "undefined" && console.warn) {
|
|
268
259
|
// eslint-disable-next-line no-console
|
|
269
260
|
console.warn("[@portnet/ui v2] personalization loadSync failed; deferring to async hydrate.", e);
|
|
270
261
|
}
|
|
271
262
|
}
|
|
272
263
|
}
|
|
273
|
-
function hydrate() {
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
return
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
return _context.abrupt("return");
|
|
294
|
-
case 4:
|
|
295
|
-
if (!(hydrated && adapter && adapter.capabilities && adapter.capabilities.remote === false)) {
|
|
296
|
-
_context.next = 6;
|
|
297
|
-
break;
|
|
298
|
-
}
|
|
299
|
-
return _context.abrupt("return");
|
|
300
|
-
case 6:
|
|
301
|
-
_context.prev = 6;
|
|
302
|
-
if (!(adapter && typeof adapter.load === "function")) {
|
|
303
|
-
_context.next = 13;
|
|
304
|
-
break;
|
|
305
|
-
}
|
|
306
|
-
_context.next = 10;
|
|
307
|
-
return adapter.load(scope);
|
|
308
|
-
case 10:
|
|
309
|
-
_context.t0 = _context.sent;
|
|
310
|
-
_context.next = 14;
|
|
311
|
-
break;
|
|
312
|
-
case 13:
|
|
313
|
-
_context.t0 = {};
|
|
314
|
-
case 14:
|
|
315
|
-
loaded = _context.t0;
|
|
316
|
-
if (!disposed) {
|
|
317
|
-
_context.next = 17;
|
|
318
|
-
break;
|
|
319
|
-
}
|
|
320
|
-
return _context.abrupt("return");
|
|
321
|
-
case 17:
|
|
322
|
-
rawEnvelopes = loaded && _typeof(loaded) === "object" ? loaded : {};
|
|
323
|
-
_context.next = 24;
|
|
324
|
-
break;
|
|
325
|
-
case 20:
|
|
326
|
-
_context.prev = 20;
|
|
327
|
-
_context.t1 = _context["catch"](6);
|
|
328
|
-
rawEnvelopes = {};
|
|
329
|
-
reportError("*", _context.t1);
|
|
330
|
-
case 24:
|
|
331
|
-
rematerialiseAfterLoad();
|
|
332
|
-
hydrated = true;
|
|
333
|
-
preHydrationWrites.clear();
|
|
334
|
-
notify();
|
|
335
|
-
case 28:
|
|
336
|
-
case "end":
|
|
337
|
-
return _context.stop();
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
}, _callee, null, [[6, 20]]);
|
|
341
|
-
}));
|
|
342
|
-
return _hydrate.apply(this, arguments);
|
|
264
|
+
async function hydrate() {
|
|
265
|
+
if (disposed) return;
|
|
266
|
+
if (typeof window === "undefined") return; // SSR: no hydration
|
|
267
|
+
// Already seeded synchronously and the adapter has no remote source to
|
|
268
|
+
// reconcile against โ skip the redundant reload.
|
|
269
|
+
if (hydrated && adapter && adapter.capabilities && adapter.capabilities.remote === false) {
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
try {
|
|
273
|
+
const loaded = adapter && typeof adapter.load === "function" ? await adapter.load(scope) : {};
|
|
274
|
+
if (disposed) return;
|
|
275
|
+
rawEnvelopes = loaded && typeof loaded === "object" ? loaded : {};
|
|
276
|
+
} catch (e) {
|
|
277
|
+
rawEnvelopes = {};
|
|
278
|
+
reportError("*", e);
|
|
279
|
+
}
|
|
280
|
+
rematerialiseAfterLoad();
|
|
281
|
+
hydrated = true;
|
|
282
|
+
preHydrationWrites.clear();
|
|
283
|
+
notify();
|
|
343
284
|
}
|
|
344
|
-
function reloadCapability(
|
|
345
|
-
|
|
285
|
+
async function reloadCapability(capId) {
|
|
286
|
+
if (disposed) return;
|
|
287
|
+
try {
|
|
288
|
+
const loaded = adapter && typeof adapter.load === "function" ? await adapter.load(scope) : {};
|
|
289
|
+
if (disposed) return;
|
|
290
|
+
rawEnvelopes = loaded && typeof loaded === "object" ? loaded : {};
|
|
291
|
+
} catch (e) {
|
|
292
|
+
reportError(capId, e);
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
setSlice(capId, computePayload(capId));
|
|
296
|
+
notify();
|
|
346
297
|
}
|
|
298
|
+
|
|
347
299
|
/* โโ cross-tab / external changes โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */
|
|
348
|
-
|
|
349
|
-
_reloadCapability = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(capId) {
|
|
350
|
-
var loaded;
|
|
351
|
-
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
352
|
-
while (1) {
|
|
353
|
-
switch (_context2.prev = _context2.next) {
|
|
354
|
-
case 0:
|
|
355
|
-
if (!disposed) {
|
|
356
|
-
_context2.next = 2;
|
|
357
|
-
break;
|
|
358
|
-
}
|
|
359
|
-
return _context2.abrupt("return");
|
|
360
|
-
case 2:
|
|
361
|
-
_context2.prev = 2;
|
|
362
|
-
if (!(adapter && typeof adapter.load === "function")) {
|
|
363
|
-
_context2.next = 9;
|
|
364
|
-
break;
|
|
365
|
-
}
|
|
366
|
-
_context2.next = 6;
|
|
367
|
-
return adapter.load(scope);
|
|
368
|
-
case 6:
|
|
369
|
-
_context2.t0 = _context2.sent;
|
|
370
|
-
_context2.next = 10;
|
|
371
|
-
break;
|
|
372
|
-
case 9:
|
|
373
|
-
_context2.t0 = {};
|
|
374
|
-
case 10:
|
|
375
|
-
loaded = _context2.t0;
|
|
376
|
-
if (!disposed) {
|
|
377
|
-
_context2.next = 13;
|
|
378
|
-
break;
|
|
379
|
-
}
|
|
380
|
-
return _context2.abrupt("return");
|
|
381
|
-
case 13:
|
|
382
|
-
rawEnvelopes = loaded && _typeof(loaded) === "object" ? loaded : {};
|
|
383
|
-
_context2.next = 20;
|
|
384
|
-
break;
|
|
385
|
-
case 16:
|
|
386
|
-
_context2.prev = 16;
|
|
387
|
-
_context2.t1 = _context2["catch"](2);
|
|
388
|
-
reportError(capId, _context2.t1);
|
|
389
|
-
return _context2.abrupt("return");
|
|
390
|
-
case 20:
|
|
391
|
-
setSlice(capId, computePayload(capId));
|
|
392
|
-
notify();
|
|
393
|
-
case 22:
|
|
394
|
-
case "end":
|
|
395
|
-
return _context2.stop();
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
}, _callee2, null, [[2, 16]]);
|
|
399
|
-
}));
|
|
400
|
-
return _reloadCapability.apply(this, arguments);
|
|
401
|
-
}
|
|
300
|
+
|
|
402
301
|
function connect() {
|
|
403
302
|
if (disposed) return function noop() {};
|
|
404
303
|
if (!adapter || typeof adapter.subscribe !== "function") {
|
|
@@ -419,7 +318,7 @@ function createPersonalizationStore(config) {
|
|
|
419
318
|
if (typeof disconnect === "function") {
|
|
420
319
|
try {
|
|
421
320
|
disconnect();
|
|
422
|
-
} catch
|
|
321
|
+
} catch {
|
|
423
322
|
/* ignore */
|
|
424
323
|
}
|
|
425
324
|
disconnect = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPersonalizationStore.js","names":["_schema","require","_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","_catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","EMPTY_OBJECT","freeze","isDev","process","env","createPersonalizationStore","config","cfg","scope","userId","adapter","defaults","rawEnvelopes","hydrated","disposed","disconnect","runtime","onError","hydrateStrategy","listeners","Set","statuses","errors","preHydrationWrites","notify","current","Array","from","_i","_current","listener","subscribe","add","unsubscribe","getSnapshot","getServerSnapshot","seedFor","capId","getCapability","defaultState","reportError","e","String","capabilityId","_unused","console","computePayload","raw","migrate","schemaVersion","payload","setSlice","_i2","_Object$keys","materialiseIfMissing","read","ensureCapability","write","updater","options","persist","is","save","activeAdapter","envelope","makeEnvelope","persistSlice","onSaved","onSaveFailed","clearCapability","remove","removeSlice","onRemoveFailed","rematerialiseAfterLoad","ids","addRawId","id","getRegisteredCapabilities","addRegisteredId","d","_i3","_Object$keys2","materialise","has","trySyncSeed","window","loadSync","loaded","warn","hydrate","_hydrate","_callee","_callee$","_context","capabilities","remote","load","t0","t1","clear","reloadCapability","_x","_reloadCapability","_callee2","_callee2$","_context2","connect","noop","onExternalChange","dispose","_unused2","setRuntime","opts","status","isHydrated","getScope"],"sources":["../../../src/lib/v2/personalization/createPersonalizationStore.ts"],"sourcesContent":["/**\r\n * createPersonalizationStore โ Portnet UI v2 ยท personalization\r\n *\r\n * Scoped, multi-capability, adapter-backed store. Generalises the\r\n * useSyncExternalStore + cross-tab + SSR-safe pattern proven by\r\n * useDensity (architecture doc ยง2.3 / ยง2.4).\r\n *\r\n * Core idea โ sync snapshot, async adapter:\r\n * - The store holds a SYNCHRONOUS in-memory snapshot. `read()` is pure\r\n * (no mutation) so it is safe to call inside a useSyncExternalStore\r\n * selector. Components never await to render.\r\n * - Mutations are OPTIMISTIC: the snapshot updates synchronously and\r\n * subscribers are notified; the adapter persists asynchronously; on\r\n * failure the optimistic value is kept for the session and onError\r\n * fires. Swapping a remote adapter changes only *when* bytes hit the\r\n * wire, never how components read.\r\n * - STRUCTURAL SHARING: a write replaces only its capability slice; all\r\n * sibling slices keep their reference. This is what makes selectors\r\n * referentially stable and prevents cross-capability re-renders.\r\n *\r\n * The store is capability-AGNOSTIC: payloads are `unknown` and it learns\r\n * defaults, schema versions and migrations from the schema registry (slices\r\n * self-register at import time). Adding a capability requires no change here;\r\n * the typed capability slices impose the concrete payload types on top via\r\n * the generic read<T>/write<T> facades.\r\n */\r\n\r\nimport {\r\n getCapability,\r\n getRegisteredCapabilities,\r\n makeEnvelope,\r\n} from \"./schema\";\r\nimport type { Adapter, Envelope, HydrateStrategy, Scope } from \"./types\";\r\n\r\nexport type PersonalizationStatus = \"idle\" | \"hydrating\" | \"saving\" | \"error\";\r\n\r\n/** The store's in-memory snapshot: { [capabilityId]: payload }. */\r\nexport type PersonalizationSnapshot = Record<string, unknown>;\r\n\r\n/** A write value, or a functional updater `(previous) => next`. */\r\nexport type PersonalizationUpdater<T = unknown> = T | ((previous: T) => T);\r\n\r\nexport interface WriteOptions {\r\n /** Set false for an in-memory-only write (no adapter persist). */\r\n persist?: boolean | undefined;\r\n}\r\n\r\nexport interface PersonalizationErrorContext {\r\n scope: Scope;\r\n capabilityId: string;\r\n}\r\n\r\nexport type PersonalizationErrorHandler = (\r\n error: Error,\r\n context: PersonalizationErrorContext\r\n) => void;\r\n\r\nexport interface PersonalizationRuntimeOptions {\r\n onError?: PersonalizationErrorHandler | undefined;\r\n hydrateStrategy?: HydrateStrategy | undefined;\r\n}\r\n\r\nexport interface PersonalizationStoreConfig {\r\n /** Identity the store persists against. Defaults to { userId: \"anonymous\" }. */\r\n scope?: Scope | undefined;\r\n /** Storage adapter. When null the store is a pure in-memory session. */\r\n adapter?: Adapter | null | undefined;\r\n /** Per-capability seed overrides, read at creation/hydration. */\r\n defaults?: Record<string, unknown> | null | undefined;\r\n onError?: PersonalizationErrorHandler | undefined;\r\n /** @default \"remote-wins\" */\r\n hydrateStrategy?: HydrateStrategy | undefined;\r\n}\r\n\r\n/** The store handle returned by createPersonalizationStore. */\r\nexport interface PersonalizationStore {\r\n // useSyncExternalStore contract\r\n subscribe: (listener: () => void) => () => void;\r\n getSnapshot: () => PersonalizationSnapshot;\r\n getServerSnapshot: () => PersonalizationSnapshot;\r\n // reads / writes (T is caller-asserted; defaults to unknown)\r\n read: <T = unknown>(capabilityId: string) => T;\r\n write: <T = unknown>(\r\n capabilityId: string,\r\n updater: PersonalizationUpdater<T>,\r\n options?: WriteOptions\r\n ) => T | undefined;\r\n ensureCapability: (capabilityId: string) => void;\r\n clearCapability: (capabilityId: string) => void;\r\n // lifecycle\r\n hydrate: () => Promise<void>;\r\n connect: () => () => void;\r\n dispose: () => void;\r\n setRuntime: (opts?: PersonalizationRuntimeOptions) => void;\r\n // introspection\r\n status: (capabilityId: string) => PersonalizationStatus;\r\n error: (capabilityId: string) => Error | null;\r\n isHydrated: () => boolean;\r\n getScope: () => Scope;\r\n}\r\n\r\ninterface StoreRuntime {\r\n onError: PersonalizationErrorHandler | null;\r\n hydrateStrategy: HydrateStrategy;\r\n}\r\n\r\nconst EMPTY_OBJECT: PersonalizationSnapshot = Object.freeze({});\r\n\r\nconst isDev =\r\n typeof process !== \"undefined\" &&\r\n process.env &&\r\n process.env[\"NODE_ENV\"] !== \"production\";\r\n\r\nexport default function createPersonalizationStore(\r\n config?: PersonalizationStoreConfig\r\n): PersonalizationStore {\r\n const cfg: PersonalizationStoreConfig = config || {};\r\n const scope: Scope = cfg.scope || { userId: \"anonymous\" };\r\n const adapter: Adapter | null = cfg.adapter || null;\r\n const defaults: Record<string, unknown> | null = cfg.defaults || null;\r\n\r\n /** Live snapshot: { [capabilityId]: payload }. New top-level ref on every change. */\r\n let state: PersonalizationSnapshot = {};\r\n /** Raw persisted envelopes from the adapter: { [capabilityId]: envelope }. */\r\n let rawEnvelopes: Record<string, Envelope> = {};\r\n let hydrated = false;\r\n let disposed = false;\r\n let disconnect: (() => void) | null = null;\r\n let runtime: StoreRuntime = {\r\n onError: typeof cfg.onError === \"function\" ? cfg.onError : null,\r\n hydrateStrategy: cfg.hydrateStrategy || \"remote-wins\",\r\n };\r\n\r\n const listeners = new Set<() => void>();\r\n const statuses: Record<string, PersonalizationStatus> = {};\r\n const errors: Record<string, Error | null> = {};\r\n /** Capabilities written before hydration finished โ protected from the initial load. */\r\n const preHydrationWrites = new Set<string>();\r\n\r\n /* โโ subscription / snapshot (useSyncExternalStore contract) โโโโโโโ */\r\n\r\n function notify(): void {\r\n // Iterate a snapshot so a listener unmounting during notify doesn't\r\n // mutate the Set under iteration (same guard as useDensity).\r\n const current = Array.from(listeners);\r\n for (const listener of current) listener();\r\n }\r\n\r\n function subscribe(listener: () => void): () => void {\r\n listeners.add(listener);\r\n return function unsubscribe() {\r\n listeners.delete(listener);\r\n };\r\n }\r\n\r\n function getSnapshot(): PersonalizationSnapshot {\r\n return state;\r\n }\r\n\r\n function getServerSnapshot(): PersonalizationSnapshot {\r\n return EMPTY_OBJECT;\r\n }\r\n\r\n /* โโ seeds / materialisation โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */\r\n\r\n function seedFor(capId: string): unknown {\r\n if (defaults && Object.prototype.hasOwnProperty.call(defaults, capId)) {\r\n return defaults[capId];\r\n }\r\n const desc = getCapability(capId);\r\n if (desc && desc.defaultState !== undefined) return desc.defaultState;\r\n return EMPTY_OBJECT;\r\n }\r\n\r\n function reportError(capId: string, e: unknown): void {\r\n const err =\r\n e instanceof Error ? e : new Error(String(e || \"personalization error\"));\r\n errors[capId] = err;\r\n statuses[capId] = \"error\";\r\n if (runtime.onError) {\r\n try {\r\n runtime.onError(err, { scope: scope, capabilityId: capId });\r\n } catch {\r\n /* host onError must not break the store */\r\n }\r\n }\r\n if (isDev && typeof console !== \"undefined\" && console.error) {\r\n // eslint-disable-next-line no-console\r\n console.error('[@portnet/ui v2] personalization \"' + capId + '\":', err);\r\n }\r\n }\r\n\r\n /** Pure: derive a capability payload from raw envelope (+migrate) or seed. */\r\n function computePayload(capId: string): unknown {\r\n const raw = rawEnvelopes[capId];\r\n if (\r\n raw &&\r\n typeof raw === \"object\" &&\r\n Object.prototype.hasOwnProperty.call(raw, \"payload\")\r\n ) {\r\n const desc = getCapability(capId);\r\n if (desc && typeof desc.migrate === \"function\") {\r\n try {\r\n return desc.migrate(\r\n typeof raw.schemaVersion === \"number\" ? raw.schemaVersion : 0,\r\n raw.payload\r\n );\r\n } catch (e) {\r\n reportError(capId, e);\r\n return seedFor(capId);\r\n }\r\n }\r\n return raw.payload;\r\n }\r\n return seedFor(capId);\r\n }\r\n\r\n /** Replace one slice immutably (structural sharing; new top-level ref). */\r\n function setSlice(capId: string, payload: unknown): void {\r\n const next: Record<string, unknown> = {};\r\n for (const key of Object.keys(state)) next[key] = state[key];\r\n next[capId] = payload;\r\n state = next;\r\n }\r\n\r\n function materialiseIfMissing(capId: string): void {\r\n if (state[capId] === undefined) setSlice(capId, computePayload(capId));\r\n }\r\n\r\n /* โโ public reads โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */\r\n\r\n /**\r\n * Pure read for render. Never mutates state, so it is safe inside a\r\n * useSyncExternalStore selector. Returns the materialised slice if\r\n * present, else the (referentially stable) seed. `T` is caller-asserted.\r\n */\r\n function read<T = unknown>(capId: string): T {\r\n return (state[capId] !== undefined ? state[capId] : seedFor(capId)) as T;\r\n }\r\n\r\n /**\r\n * Effectful: ensure a capability slice exists in the snapshot. Capability\r\n * hooks call this from a useEffect (NEVER during render) so a capability\r\n * that registered after the store hydrated still materialises from any\r\n * persisted data.\r\n */\r\n function ensureCapability(capId: string): void {\r\n if (disposed) return;\r\n if (state[capId] !== undefined) return;\r\n setSlice(capId, computePayload(capId));\r\n notify();\r\n }\r\n\r\n /* โโ writes (optimistic + async persist) โโโโโโโโโโโโโโโโโโโโโโโโโโโ */\r\n\r\n function write<T = unknown>(\r\n capId: string,\r\n updater: PersonalizationUpdater<T>,\r\n options?: WriteOptions\r\n ): T | undefined {\r\n if (disposed) return undefined;\r\n const persist = !options || options.persist !== false;\r\n\r\n materialiseIfMissing(capId);\r\n const prev = state[capId] as T;\r\n const next: T =\r\n typeof updater === \"function\"\r\n ? (updater as (previous: T) => T)(prev)\r\n : updater;\r\n if (Object.is(next, prev)) return prev; // no-op short-circuit\r\n\r\n setSlice(capId, next);\r\n if (!hydrated) preHydrationWrites.add(capId);\r\n notify();\r\n\r\n if (persist && adapter && typeof adapter.save === \"function\") {\r\n // Capture the narrowed adapter: the `if` narrowing does not reach into\r\n // the async closures below, and `save` is required on Adapter.\r\n const activeAdapter = adapter;\r\n const desc = getCapability(capId);\r\n const envelope = makeEnvelope(desc ? desc.schemaVersion : 1, next);\r\n statuses[capId] = \"saving\";\r\n Promise.resolve()\r\n .then(function persistSlice() {\r\n return activeAdapter.save(scope, capId, envelope);\r\n })\r\n .then(function onSaved() {\r\n if (disposed) return;\r\n statuses[capId] = \"idle\";\r\n errors[capId] = null;\r\n })\r\n .catch(function onSaveFailed(e: unknown) {\r\n if (disposed) return;\r\n // Keep the optimistic value for the session; surface the error.\r\n reportError(capId, e);\r\n });\r\n }\r\n return next;\r\n }\r\n\r\n /** Reset a capability to its seed and drop it from storage. */\r\n function clearCapability(capId: string): void {\r\n if (disposed) return;\r\n setSlice(capId, seedFor(capId));\r\n notify();\r\n if (adapter && typeof adapter.remove === \"function\") {\r\n const activeAdapter = adapter;\r\n Promise.resolve()\r\n .then(function removeSlice() {\r\n return activeAdapter.remove\r\n ? activeAdapter.remove(scope, capId)\r\n : undefined;\r\n })\r\n .catch(function onRemoveFailed(e: unknown) {\r\n reportError(capId, e);\r\n });\r\n }\r\n }\r\n\r\n /* โโ hydration โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */\r\n\r\n function rematerialiseAfterLoad(): void {\r\n const ids = new Set<string>();\r\n Object.keys(rawEnvelopes).forEach(function addRawId(id) {\r\n ids.add(id);\r\n });\r\n getRegisteredCapabilities().forEach(function addRegisteredId(d) {\r\n ids.add(d.id);\r\n });\r\n\r\n const next: Record<string, unknown> = {};\r\n for (const key of Object.keys(state)) next[key] = state[key];\r\n\r\n ids.forEach(function materialise(capId) {\r\n // Persisted truth wins over a pre-hydration seed, but never clobbers\r\n // an optimistic write the user made during the hydrating window.\r\n if (preHydrationWrites.has(capId)) return;\r\n next[capId] = computePayload(capId);\r\n });\r\n state = next;\r\n }\r\n\r\n /** Synchronous seed at creation (flash-free for adapters exposing loadSync). */\r\n function trySyncSeed(): void {\r\n if (typeof window === \"undefined\") return;\r\n if (!adapter || typeof adapter.loadSync !== \"function\") return;\r\n try {\r\n const loaded = adapter.loadSync(scope);\r\n if (loaded && typeof loaded === \"object\") {\r\n rawEnvelopes = loaded;\r\n rematerialiseAfterLoad();\r\n hydrated = true;\r\n }\r\n } catch (e) {\r\n // Fall back to async hydrate().\r\n if (isDev && typeof console !== \"undefined\" && console.warn) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n \"[@portnet/ui v2] personalization loadSync failed; deferring to async hydrate.\",\r\n e\r\n );\r\n }\r\n }\r\n }\r\n\r\n async function hydrate(): Promise<void> {\r\n if (disposed) return;\r\n if (typeof window === \"undefined\") return; // SSR: no hydration\r\n // Already seeded synchronously and the adapter has no remote source to\r\n // reconcile against โ skip the redundant reload.\r\n if (\r\n hydrated &&\r\n adapter &&\r\n adapter.capabilities &&\r\n adapter.capabilities.remote === false\r\n ) {\r\n return;\r\n }\r\n try {\r\n const loaded =\r\n adapter && typeof adapter.load === \"function\"\r\n ? await adapter.load(scope)\r\n : {};\r\n if (disposed) return;\r\n rawEnvelopes = loaded && typeof loaded === \"object\" ? loaded : {};\r\n } catch (e) {\r\n rawEnvelopes = {};\r\n reportError(\"*\", e);\r\n }\r\n rematerialiseAfterLoad();\r\n hydrated = true;\r\n preHydrationWrites.clear();\r\n notify();\r\n }\r\n\r\n async function reloadCapability(capId: string): Promise<void> {\r\n if (disposed) return;\r\n try {\r\n const loaded =\r\n adapter && typeof adapter.load === \"function\"\r\n ? await adapter.load(scope)\r\n : {};\r\n if (disposed) return;\r\n rawEnvelopes = loaded && typeof loaded === \"object\" ? loaded : {};\r\n } catch (e) {\r\n reportError(capId, e);\r\n return;\r\n }\r\n setSlice(capId, computePayload(capId));\r\n notify();\r\n }\r\n\r\n /* โโ cross-tab / external changes โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */\r\n\r\n function connect(): () => void {\r\n if (disposed) return function noop() {};\r\n if (!adapter || typeof adapter.subscribe !== \"function\") {\r\n return function noop() {};\r\n }\r\n disconnect = adapter.subscribe(scope, function onExternalChange(capId) {\r\n if (disposed) return;\r\n if (runtime.hydrateStrategy === \"local-wins\") return; // ignore external changes\r\n // remote-wins / merge โ adopt the external change.\r\n // NOTE: \"merge\" currently behaves as remote-wins at the store level;\r\n // true merge is slice-specific and deferred to a slice opt-in.\r\n reloadCapability(capId);\r\n });\r\n return typeof disconnect === \"function\" ? disconnect : function noop() {};\r\n }\r\n\r\n function dispose(): void {\r\n disposed = true;\r\n if (typeof disconnect === \"function\") {\r\n try {\r\n disconnect();\r\n } catch {\r\n /* ignore */\r\n }\r\n disconnect = null;\r\n }\r\n listeners.clear();\r\n }\r\n\r\n /* โโ runtime options / introspection โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */\r\n\r\n function setRuntime(opts?: PersonalizationRuntimeOptions): void {\r\n runtime = {\r\n onError: opts && typeof opts.onError === \"function\" ? opts.onError : null,\r\n hydrateStrategy: (opts && opts.hydrateStrategy) || \"remote-wins\",\r\n };\r\n }\r\n\r\n function status(capId: string): PersonalizationStatus {\r\n return statuses[capId] || (hydrated ? \"idle\" : \"hydrating\");\r\n }\r\n\r\n function error(capId: string): Error | null {\r\n return errors[capId] || null;\r\n }\r\n\r\n function isHydrated(): boolean {\r\n return hydrated;\r\n }\r\n\r\n function getScope(): Scope {\r\n return scope;\r\n }\r\n\r\n // Seed synchronously once everything above is initialised.\r\n trySyncSeed();\r\n\r\n return {\r\n // useSyncExternalStore contract\r\n subscribe: subscribe,\r\n getSnapshot: getSnapshot,\r\n getServerSnapshot: getServerSnapshot,\r\n // reads / writes\r\n read: read,\r\n write: write,\r\n ensureCapability: ensureCapability,\r\n clearCapability: clearCapability,\r\n // lifecycle\r\n hydrate: hydrate,\r\n connect: connect,\r\n dispose: dispose,\r\n setRuntime: setRuntime,\r\n // introspection\r\n status: status,\r\n error: error,\r\n isHydrated: isHydrated,\r\n getScope: getScope,\r\n };\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"createPersonalizationStore.js","names":["_schema","require","EMPTY_OBJECT","Object","freeze","isDev","process","env","createPersonalizationStore","config","cfg","scope","userId","adapter","defaults","state","rawEnvelopes","hydrated","disposed","disconnect","runtime","onError","hydrateStrategy","listeners","Set","statuses","errors","preHydrationWrites","notify","current","Array","from","listener","subscribe","add","unsubscribe","delete","getSnapshot","getServerSnapshot","seedFor","capId","prototype","hasOwnProperty","call","desc","getCapability","defaultState","undefined","reportError","e","err","Error","String","capabilityId","console","error","computePayload","raw","migrate","schemaVersion","payload","setSlice","next","key","keys","materialiseIfMissing","read","ensureCapability","write","updater","options","persist","prev","is","save","activeAdapter","envelope","makeEnvelope","Promise","resolve","then","persistSlice","onSaved","catch","onSaveFailed","clearCapability","remove","removeSlice","onRemoveFailed","rematerialiseAfterLoad","ids","forEach","addRawId","id","getRegisteredCapabilities","addRegisteredId","d","materialise","has","trySyncSeed","window","loadSync","loaded","warn","hydrate","capabilities","remote","load","clear","reloadCapability","connect","noop","onExternalChange","dispose","setRuntime","opts","status","isHydrated","getScope"],"sources":["../../../src/lib/v2/personalization/createPersonalizationStore.ts"],"sourcesContent":["/**\r\n * createPersonalizationStore โ Portnet UI v2 ยท personalization\r\n *\r\n * Scoped, multi-capability, adapter-backed store. Generalises the\r\n * useSyncExternalStore + cross-tab + SSR-safe pattern proven by\r\n * useDensity (architecture doc ยง2.3 / ยง2.4).\r\n *\r\n * Core idea โ sync snapshot, async adapter:\r\n * - The store holds a SYNCHRONOUS in-memory snapshot. `read()` is pure\r\n * (no mutation) so it is safe to call inside a useSyncExternalStore\r\n * selector. Components never await to render.\r\n * - Mutations are OPTIMISTIC: the snapshot updates synchronously and\r\n * subscribers are notified; the adapter persists asynchronously; on\r\n * failure the optimistic value is kept for the session and onError\r\n * fires. Swapping a remote adapter changes only *when* bytes hit the\r\n * wire, never how components read.\r\n * - STRUCTURAL SHARING: a write replaces only its capability slice; all\r\n * sibling slices keep their reference. This is what makes selectors\r\n * referentially stable and prevents cross-capability re-renders.\r\n *\r\n * The store is capability-AGNOSTIC: payloads are `unknown` and it learns\r\n * defaults, schema versions and migrations from the schema registry (slices\r\n * self-register at import time). Adding a capability requires no change here;\r\n * the typed capability slices impose the concrete payload types on top via\r\n * the generic read<T>/write<T> facades.\r\n */\r\n\r\nimport {\r\n getCapability,\r\n getRegisteredCapabilities,\r\n makeEnvelope,\r\n} from \"./schema\";\r\nimport type { Adapter, Envelope, HydrateStrategy, Scope } from \"./types\";\r\n\r\nexport type PersonalizationStatus = \"idle\" | \"hydrating\" | \"saving\" | \"error\";\r\n\r\n/** The store's in-memory snapshot: { [capabilityId]: payload }. */\r\nexport type PersonalizationSnapshot = Record<string, unknown>;\r\n\r\n/** A write value, or a functional updater `(previous) => next`. */\r\nexport type PersonalizationUpdater<T = unknown> = T | ((previous: T) => T);\r\n\r\nexport interface WriteOptions {\r\n /** Set false for an in-memory-only write (no adapter persist). */\r\n persist?: boolean | undefined;\r\n}\r\n\r\nexport interface PersonalizationErrorContext {\r\n scope: Scope;\r\n capabilityId: string;\r\n}\r\n\r\nexport type PersonalizationErrorHandler = (\r\n error: Error,\r\n context: PersonalizationErrorContext\r\n) => void;\r\n\r\nexport interface PersonalizationRuntimeOptions {\r\n onError?: PersonalizationErrorHandler | undefined;\r\n hydrateStrategy?: HydrateStrategy | undefined;\r\n}\r\n\r\nexport interface PersonalizationStoreConfig {\r\n /** Identity the store persists against. Defaults to { userId: \"anonymous\" }. */\r\n scope?: Scope | undefined;\r\n /** Storage adapter. When null the store is a pure in-memory session. */\r\n adapter?: Adapter | null | undefined;\r\n /** Per-capability seed overrides, read at creation/hydration. */\r\n defaults?: Record<string, unknown> | null | undefined;\r\n onError?: PersonalizationErrorHandler | undefined;\r\n /** @default \"remote-wins\" */\r\n hydrateStrategy?: HydrateStrategy | undefined;\r\n}\r\n\r\n/** The store handle returned by createPersonalizationStore. */\r\nexport interface PersonalizationStore {\r\n // useSyncExternalStore contract\r\n subscribe: (listener: () => void) => () => void;\r\n getSnapshot: () => PersonalizationSnapshot;\r\n getServerSnapshot: () => PersonalizationSnapshot;\r\n // reads / writes (T is caller-asserted; defaults to unknown)\r\n read: <T = unknown>(capabilityId: string) => T;\r\n write: <T = unknown>(\r\n capabilityId: string,\r\n updater: PersonalizationUpdater<T>,\r\n options?: WriteOptions\r\n ) => T | undefined;\r\n ensureCapability: (capabilityId: string) => void;\r\n clearCapability: (capabilityId: string) => void;\r\n // lifecycle\r\n hydrate: () => Promise<void>;\r\n connect: () => () => void;\r\n dispose: () => void;\r\n setRuntime: (opts?: PersonalizationRuntimeOptions) => void;\r\n // introspection\r\n status: (capabilityId: string) => PersonalizationStatus;\r\n error: (capabilityId: string) => Error | null;\r\n isHydrated: () => boolean;\r\n getScope: () => Scope;\r\n}\r\n\r\ninterface StoreRuntime {\r\n onError: PersonalizationErrorHandler | null;\r\n hydrateStrategy: HydrateStrategy;\r\n}\r\n\r\nconst EMPTY_OBJECT: PersonalizationSnapshot = Object.freeze({});\r\n\r\nconst isDev =\r\n typeof process !== \"undefined\" &&\r\n process.env &&\r\n process.env[\"NODE_ENV\"] !== \"production\";\r\n\r\nexport default function createPersonalizationStore(\r\n config?: PersonalizationStoreConfig\r\n): PersonalizationStore {\r\n const cfg: PersonalizationStoreConfig = config || {};\r\n const scope: Scope = cfg.scope || { userId: \"anonymous\" };\r\n const adapter: Adapter | null = cfg.adapter || null;\r\n const defaults: Record<string, unknown> | null = cfg.defaults || null;\r\n\r\n /** Live snapshot: { [capabilityId]: payload }. New top-level ref on every change. */\r\n let state: PersonalizationSnapshot = {};\r\n /** Raw persisted envelopes from the adapter: { [capabilityId]: envelope }. */\r\n let rawEnvelopes: Record<string, Envelope> = {};\r\n let hydrated = false;\r\n let disposed = false;\r\n let disconnect: (() => void) | null = null;\r\n let runtime: StoreRuntime = {\r\n onError: typeof cfg.onError === \"function\" ? cfg.onError : null,\r\n hydrateStrategy: cfg.hydrateStrategy || \"remote-wins\",\r\n };\r\n\r\n const listeners = new Set<() => void>();\r\n const statuses: Record<string, PersonalizationStatus> = {};\r\n const errors: Record<string, Error | null> = {};\r\n /** Capabilities written before hydration finished โ protected from the initial load. */\r\n const preHydrationWrites = new Set<string>();\r\n\r\n /* โโ subscription / snapshot (useSyncExternalStore contract) โโโโโโโ */\r\n\r\n function notify(): void {\r\n // Iterate a snapshot so a listener unmounting during notify doesn't\r\n // mutate the Set under iteration (same guard as useDensity).\r\n const current = Array.from(listeners);\r\n for (const listener of current) listener();\r\n }\r\n\r\n function subscribe(listener: () => void): () => void {\r\n listeners.add(listener);\r\n return function unsubscribe() {\r\n listeners.delete(listener);\r\n };\r\n }\r\n\r\n function getSnapshot(): PersonalizationSnapshot {\r\n return state;\r\n }\r\n\r\n function getServerSnapshot(): PersonalizationSnapshot {\r\n return EMPTY_OBJECT;\r\n }\r\n\r\n /* โโ seeds / materialisation โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */\r\n\r\n function seedFor(capId: string): unknown {\r\n if (defaults && Object.prototype.hasOwnProperty.call(defaults, capId)) {\r\n return defaults[capId];\r\n }\r\n const desc = getCapability(capId);\r\n if (desc && desc.defaultState !== undefined) return desc.defaultState;\r\n return EMPTY_OBJECT;\r\n }\r\n\r\n function reportError(capId: string, e: unknown): void {\r\n const err =\r\n e instanceof Error ? e : new Error(String(e || \"personalization error\"));\r\n errors[capId] = err;\r\n statuses[capId] = \"error\";\r\n if (runtime.onError) {\r\n try {\r\n runtime.onError(err, { scope: scope, capabilityId: capId });\r\n } catch {\r\n /* host onError must not break the store */\r\n }\r\n }\r\n // eslint-disable-next-line no-console\r\n if (isDev && typeof console !== \"undefined\" && console.error) {\r\n // eslint-disable-next-line no-console\r\n console.error('[@portnet/ui v2] personalization \"' + capId + '\":', err);\r\n }\r\n }\r\n\r\n /** Pure: derive a capability payload from raw envelope (+migrate) or seed. */\r\n function computePayload(capId: string): unknown {\r\n const raw = rawEnvelopes[capId];\r\n if (\r\n raw &&\r\n typeof raw === \"object\" &&\r\n Object.prototype.hasOwnProperty.call(raw, \"payload\")\r\n ) {\r\n const desc = getCapability(capId);\r\n if (desc && typeof desc.migrate === \"function\") {\r\n try {\r\n return desc.migrate(\r\n typeof raw.schemaVersion === \"number\" ? raw.schemaVersion : 0,\r\n raw.payload\r\n );\r\n } catch (e) {\r\n reportError(capId, e);\r\n return seedFor(capId);\r\n }\r\n }\r\n return raw.payload;\r\n }\r\n return seedFor(capId);\r\n }\r\n\r\n /** Replace one slice immutably (structural sharing; new top-level ref). */\r\n function setSlice(capId: string, payload: unknown): void {\r\n const next: Record<string, unknown> = {};\r\n for (const key of Object.keys(state)) next[key] = state[key];\r\n next[capId] = payload;\r\n state = next;\r\n }\r\n\r\n function materialiseIfMissing(capId: string): void {\r\n if (state[capId] === undefined) setSlice(capId, computePayload(capId));\r\n }\r\n\r\n /* โโ public reads โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */\r\n\r\n /**\r\n * Pure read for render. Never mutates state, so it is safe inside a\r\n * useSyncExternalStore selector. Returns the materialised slice if\r\n * present, else the (referentially stable) seed. `T` is caller-asserted.\r\n */\r\n function read<T = unknown>(capId: string): T {\r\n return (state[capId] !== undefined ? state[capId] : seedFor(capId)) as T;\r\n }\r\n\r\n /**\r\n * Effectful: ensure a capability slice exists in the snapshot. Capability\r\n * hooks call this from a useEffect (NEVER during render) so a capability\r\n * that registered after the store hydrated still materialises from any\r\n * persisted data.\r\n */\r\n function ensureCapability(capId: string): void {\r\n if (disposed) return;\r\n if (state[capId] !== undefined) return;\r\n setSlice(capId, computePayload(capId));\r\n notify();\r\n }\r\n\r\n /* โโ writes (optimistic + async persist) โโโโโโโโโโโโโโโโโโโโโโโโโโโ */\r\n\r\n function write<T = unknown>(\r\n capId: string,\r\n updater: PersonalizationUpdater<T>,\r\n options?: WriteOptions\r\n ): T | undefined {\r\n if (disposed) return undefined;\r\n const persist = !options || options.persist !== false;\r\n\r\n materialiseIfMissing(capId);\r\n const prev = state[capId] as T;\r\n const next: T =\r\n typeof updater === \"function\"\r\n ? (updater as (previous: T) => T)(prev)\r\n : updater;\r\n if (Object.is(next, prev)) return prev; // no-op short-circuit\r\n\r\n setSlice(capId, next);\r\n if (!hydrated) preHydrationWrites.add(capId);\r\n notify();\r\n\r\n if (persist && adapter && typeof adapter.save === \"function\") {\r\n // Capture the narrowed adapter: the `if` narrowing does not reach into\r\n // the async closures below, and `save` is required on Adapter.\r\n const activeAdapter = adapter;\r\n const desc = getCapability(capId);\r\n const envelope = makeEnvelope(desc ? desc.schemaVersion : 1, next);\r\n statuses[capId] = \"saving\";\r\n Promise.resolve()\r\n .then(function persistSlice() {\r\n return activeAdapter.save(scope, capId, envelope);\r\n })\r\n .then(function onSaved() {\r\n if (disposed) return;\r\n statuses[capId] = \"idle\";\r\n errors[capId] = null;\r\n })\r\n .catch(function onSaveFailed(e: unknown) {\r\n if (disposed) return;\r\n // Keep the optimistic value for the session; surface the error.\r\n reportError(capId, e);\r\n });\r\n }\r\n return next;\r\n }\r\n\r\n /** Reset a capability to its seed and drop it from storage. */\r\n function clearCapability(capId: string): void {\r\n if (disposed) return;\r\n setSlice(capId, seedFor(capId));\r\n notify();\r\n if (adapter && typeof adapter.remove === \"function\") {\r\n const activeAdapter = adapter;\r\n Promise.resolve()\r\n .then(function removeSlice() {\r\n return activeAdapter.remove\r\n ? activeAdapter.remove(scope, capId)\r\n : undefined;\r\n })\r\n .catch(function onRemoveFailed(e: unknown) {\r\n reportError(capId, e);\r\n });\r\n }\r\n }\r\n\r\n /* โโ hydration โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */\r\n\r\n function rematerialiseAfterLoad(): void {\r\n const ids = new Set<string>();\r\n Object.keys(rawEnvelopes).forEach(function addRawId(id) {\r\n ids.add(id);\r\n });\r\n getRegisteredCapabilities().forEach(function addRegisteredId(d) {\r\n ids.add(d.id);\r\n });\r\n\r\n const next: Record<string, unknown> = {};\r\n for (const key of Object.keys(state)) next[key] = state[key];\r\n\r\n ids.forEach(function materialise(capId) {\r\n // Persisted truth wins over a pre-hydration seed, but never clobbers\r\n // an optimistic write the user made during the hydrating window.\r\n if (preHydrationWrites.has(capId)) return;\r\n next[capId] = computePayload(capId);\r\n });\r\n state = next;\r\n }\r\n\r\n /** Synchronous seed at creation (flash-free for adapters exposing loadSync). */\r\n function trySyncSeed(): void {\r\n if (typeof window === \"undefined\") return;\r\n if (!adapter || typeof adapter.loadSync !== \"function\") return;\r\n try {\r\n const loaded = adapter.loadSync(scope);\r\n if (loaded && typeof loaded === \"object\") {\r\n rawEnvelopes = loaded;\r\n rematerialiseAfterLoad();\r\n hydrated = true;\r\n }\r\n } catch (e) {\r\n // Fall back to async hydrate().\r\n // eslint-disable-next-line no-console\r\n if (isDev && typeof console !== \"undefined\" && console.warn) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n \"[@portnet/ui v2] personalization loadSync failed; deferring to async hydrate.\",\r\n e\r\n );\r\n }\r\n }\r\n }\r\n\r\n async function hydrate(): Promise<void> {\r\n if (disposed) return;\r\n if (typeof window === \"undefined\") return; // SSR: no hydration\r\n // Already seeded synchronously and the adapter has no remote source to\r\n // reconcile against โ skip the redundant reload.\r\n if (\r\n hydrated &&\r\n adapter &&\r\n adapter.capabilities &&\r\n adapter.capabilities.remote === false\r\n ) {\r\n return;\r\n }\r\n try {\r\n const loaded =\r\n adapter && typeof adapter.load === \"function\"\r\n ? await adapter.load(scope)\r\n : {};\r\n if (disposed) return;\r\n rawEnvelopes = loaded && typeof loaded === \"object\" ? loaded : {};\r\n } catch (e) {\r\n rawEnvelopes = {};\r\n reportError(\"*\", e);\r\n }\r\n rematerialiseAfterLoad();\r\n hydrated = true;\r\n preHydrationWrites.clear();\r\n notify();\r\n }\r\n\r\n async function reloadCapability(capId: string): Promise<void> {\r\n if (disposed) return;\r\n try {\r\n const loaded =\r\n adapter && typeof adapter.load === \"function\"\r\n ? await adapter.load(scope)\r\n : {};\r\n if (disposed) return;\r\n rawEnvelopes = loaded && typeof loaded === \"object\" ? loaded : {};\r\n } catch (e) {\r\n reportError(capId, e);\r\n return;\r\n }\r\n setSlice(capId, computePayload(capId));\r\n notify();\r\n }\r\n\r\n /* โโ cross-tab / external changes โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */\r\n\r\n function connect(): () => void {\r\n if (disposed) return function noop() {};\r\n if (!adapter || typeof adapter.subscribe !== \"function\") {\r\n return function noop() {};\r\n }\r\n disconnect = adapter.subscribe(scope, function onExternalChange(capId) {\r\n if (disposed) return;\r\n if (runtime.hydrateStrategy === \"local-wins\") return; // ignore external changes\r\n // remote-wins / merge โ adopt the external change.\r\n // NOTE: \"merge\" currently behaves as remote-wins at the store level;\r\n // true merge is slice-specific and deferred to a slice opt-in.\r\n reloadCapability(capId);\r\n });\r\n return typeof disconnect === \"function\" ? disconnect : function noop() {};\r\n }\r\n\r\n function dispose(): void {\r\n disposed = true;\r\n if (typeof disconnect === \"function\") {\r\n try {\r\n disconnect();\r\n } catch {\r\n /* ignore */\r\n }\r\n disconnect = null;\r\n }\r\n listeners.clear();\r\n }\r\n\r\n /* โโ runtime options / introspection โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */\r\n\r\n function setRuntime(opts?: PersonalizationRuntimeOptions): void {\r\n runtime = {\r\n onError: opts && typeof opts.onError === \"function\" ? opts.onError : null,\r\n hydrateStrategy: (opts && opts.hydrateStrategy) || \"remote-wins\",\r\n };\r\n }\r\n\r\n function status(capId: string): PersonalizationStatus {\r\n return statuses[capId] || (hydrated ? \"idle\" : \"hydrating\");\r\n }\r\n\r\n function error(capId: string): Error | null {\r\n return errors[capId] || null;\r\n }\r\n\r\n function isHydrated(): boolean {\r\n return hydrated;\r\n }\r\n\r\n function getScope(): Scope {\r\n return scope;\r\n }\r\n\r\n // Seed synchronously once everything above is initialised.\r\n trySyncSeed();\r\n\r\n return {\r\n // useSyncExternalStore contract\r\n subscribe: subscribe,\r\n getSnapshot: getSnapshot,\r\n getServerSnapshot: getServerSnapshot,\r\n // reads / writes\r\n read: read,\r\n write: write,\r\n ensureCapability: ensureCapability,\r\n clearCapability: clearCapability,\r\n // lifecycle\r\n hydrate: hydrate,\r\n connect: connect,\r\n dispose: dispose,\r\n setRuntime: setRuntime,\r\n // introspection\r\n status: status,\r\n error: error,\r\n isHydrated: isHydrated,\r\n getScope: getScope,\r\n };\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|