@astral/ui 4.82.0 → 4.83.0
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/components/ConfirmDialog/ConfirmDialog.js +3 -1
- package/components/ConfirmDialog/constants.d.ts +4 -0
- package/components/ConfirmDialog/constants.js +5 -0
- package/components/ConfirmDialog/index.d.ts +1 -0
- package/components/ConfirmDialog/index.js +1 -0
- package/components/ConfirmDialog/public.d.ts +1 -0
- package/components/ConfirmDialog/public.js +1 -0
- package/components/ConfirmDialog/types.d.ts +1 -1
- package/components/NewPopover/NewPopover.d.ts +1 -1
- package/components/NewPopover/NewPopover.js +14 -5
- package/components/NewPopover/constants.d.ts +7 -0
- package/components/NewPopover/constants.js +11 -0
- package/components/NewPopover/styles.d.ts +4 -0
- package/components/NewPopover/styles.js +100 -4
- package/components/NewPopover/types.d.ts +13 -0
- package/components/NewPopover/useLogic/useLogic.d.ts +7 -3
- package/components/NewPopover/useLogic/useLogic.js +15 -1
- package/components/Onboarding/Onboarding.d.ts +35 -0
- package/components/Onboarding/Onboarding.js +46 -0
- package/components/Onboarding/constants.d.ts +34 -0
- package/components/Onboarding/constants.js +34 -0
- package/components/Onboarding/core/ActiveStepStore/ActiveStepStore.d.ts +50 -0
- package/components/Onboarding/core/ActiveStepStore/ActiveStepStore.js +63 -0
- package/components/Onboarding/core/ActiveStepStore/index.d.ts +1 -0
- package/components/Onboarding/core/ActiveStepStore/index.js +1 -0
- package/components/Onboarding/core/ExitController/ExitController.d.ts +46 -0
- package/components/Onboarding/core/ExitController/ExitController.js +56 -0
- package/components/Onboarding/core/ExitController/index.d.ts +1 -0
- package/components/Onboarding/core/ExitController/index.js +1 -0
- package/components/Onboarding/core/OnboardingTour/OnboardingTour.d.ts +101 -0
- package/components/Onboarding/core/OnboardingTour/OnboardingTour.js +262 -0
- package/components/Onboarding/core/OnboardingTour/index.d.ts +1 -0
- package/components/Onboarding/core/OnboardingTour/index.js +1 -0
- package/components/Onboarding/core/ProgressStorage/ProgressStorage.d.ts +22 -0
- package/components/Onboarding/core/ProgressStorage/ProgressStorage.js +58 -0
- package/components/Onboarding/core/ProgressStorage/index.d.ts +1 -0
- package/components/Onboarding/core/ProgressStorage/index.js +1 -0
- package/components/Onboarding/core/StepNavigator/StepNavigator.d.ts +28 -0
- package/components/Onboarding/core/StepNavigator/StepNavigator.js +73 -0
- package/components/Onboarding/core/StepNavigator/index.d.ts +1 -0
- package/components/Onboarding/core/StepNavigator/index.js +1 -0
- package/components/Onboarding/core/StepResolver/StepResolver.d.ts +19 -0
- package/components/Onboarding/core/StepResolver/StepResolver.js +49 -0
- package/components/Onboarding/core/StepResolver/index.d.ts +1 -0
- package/components/Onboarding/core/StepResolver/index.js +1 -0
- package/components/Onboarding/core/StepsController/StepsController.d.ts +16 -0
- package/components/Onboarding/core/StepsController/StepsController.js +35 -0
- package/components/Onboarding/core/StepsController/index.d.ts +1 -0
- package/components/Onboarding/core/StepsController/index.js +1 -0
- package/components/Onboarding/faker.d.ts +27 -0
- package/components/Onboarding/faker.js +79 -0
- package/components/Onboarding/index.d.ts +5 -0
- package/components/Onboarding/index.js +3 -0
- package/components/Onboarding/public.d.ts +5 -0
- package/components/Onboarding/public.js +3 -0
- package/components/Onboarding/services/LocalStorageSaveStrategy/LocalStorageSaveStrategy.d.ts +20 -0
- package/components/Onboarding/services/LocalStorageSaveStrategy/LocalStorageSaveStrategy.js +24 -0
- package/components/Onboarding/services/LocalStorageSaveStrategy/index.d.ts +1 -0
- package/components/Onboarding/services/LocalStorageSaveStrategy/index.js +1 -0
- package/components/Onboarding/types/config.d.ts +18 -0
- package/components/Onboarding/types/config.js +1 -0
- package/components/Onboarding/types/index.d.ts +4 -0
- package/components/Onboarding/types/index.js +4 -0
- package/components/Onboarding/types/progress.d.ts +28 -0
- package/components/Onboarding/types/progress.js +1 -0
- package/components/Onboarding/types/step.d.ts +144 -0
- package/components/Onboarding/types/step.js +1 -0
- package/components/Onboarding/types/tour.d.ts +168 -0
- package/components/Onboarding/types/tour.js +1 -0
- package/components/Onboarding/ui/ConfirmExit/ConfirmExit.d.ts +10 -0
- package/components/Onboarding/ui/ConfirmExit/ConfirmExit.js +6 -0
- package/components/Onboarding/ui/ConfirmExit/index.d.ts +2 -0
- package/components/Onboarding/ui/ConfirmExit/index.js +1 -0
- package/components/Onboarding/ui/ConfirmExit/styles.d.ts +30 -0
- package/components/Onboarding/ui/ConfirmExit/styles.js +11 -0
- package/components/Onboarding/ui/OnboardingContainer/OnboardingContainer.d.ts +12 -0
- package/components/Onboarding/ui/OnboardingContainer/OnboardingContainer.js +15 -0
- package/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/OnboardingErrorBoundary.d.ts +22 -0
- package/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/OnboardingErrorBoundary.js +20 -0
- package/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/index.d.ts +2 -0
- package/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/index.js +1 -0
- package/components/Onboarding/ui/OnboardingContainer/index.d.ts +1 -0
- package/components/Onboarding/ui/OnboardingContainer/index.js +1 -0
- package/components/Onboarding/ui/OnboardingContainer/useLogic/index.d.ts +1 -0
- package/components/Onboarding/ui/OnboardingContainer/useLogic/index.js +1 -0
- package/components/Onboarding/ui/OnboardingContainer/useLogic/useLogic.d.ts +10 -0
- package/components/Onboarding/ui/OnboardingContainer/useLogic/useLogic.js +14 -0
- package/components/Onboarding/ui/Overlay/Overlay.d.ts +29 -0
- package/components/Onboarding/ui/Overlay/Overlay.js +24 -0
- package/components/Onboarding/ui/Overlay/constants.d.ts +7 -0
- package/components/Onboarding/ui/Overlay/constants.js +8 -0
- package/components/Onboarding/ui/Overlay/index.d.ts +2 -0
- package/components/Onboarding/ui/Overlay/index.js +1 -0
- package/components/Onboarding/ui/Overlay/styles.d.ts +22 -0
- package/components/Onboarding/ui/Overlay/styles.js +57 -0
- package/components/Onboarding/ui/Overlay/useLogic/index.d.ts +1 -0
- package/components/Onboarding/ui/Overlay/useLogic/index.js +1 -0
- package/components/Onboarding/ui/Overlay/useLogic/useLogic.d.ts +13 -0
- package/components/Onboarding/ui/Overlay/useLogic/useLogic.js +10 -0
- package/components/Onboarding/ui/StepStrategy/StepStrategy.d.ts +6 -0
- package/components/Onboarding/ui/StepStrategy/StepStrategy.js +17 -0
- package/components/Onboarding/ui/StepStrategy/index.d.ts +1 -0
- package/components/Onboarding/ui/StepStrategy/index.js +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/HighlightStep.d.ts +6 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/HighlightStep.js +19 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/index.d.ts +2 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/index.js +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/styles.d.ts +25 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/styles.js +56 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/index.d.ts +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/index.js +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/useLogic.d.ts +12 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/useLogic.js +37 -0
- package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/StandaloneStep.d.ts +6 -0
- package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/StandaloneStep.js +11 -0
- package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/index.d.ts +2 -0
- package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/index.js +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/styles.d.ts +13 -0
- package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/styles.js +9 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/ProgressDots.d.ts +6 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/ProgressDots.js +15 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/constants.d.ts +4 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/constants.js +5 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/index.d.ts +2 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/index.js +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/styles.d.ts +9 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/styles.js +34 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/StepFooter.d.ts +9 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/StepFooter.js +18 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/constants.d.ts +4 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/constants.js +4 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/index.d.ts +2 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/index.js +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/styles.d.ts +21 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/styles.js +28 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/index.d.ts +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/index.js +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/useLogic.d.ts +16 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/useLogic.js +22 -0
- package/components/Onboarding/ui/StepStrategy/steps/types.d.ts +16 -0
- package/components/Onboarding/ui/StepStrategy/steps/types.js +1 -0
- package/components/Onboarding/ui/StepStrategy/useLogic/index.d.ts +1 -0
- package/components/Onboarding/ui/StepStrategy/useLogic/index.js +1 -0
- package/components/Onboarding/ui/StepStrategy/useLogic/useLogic.d.ts +47 -0
- package/components/Onboarding/ui/StepStrategy/useLogic/useLogic.js +51 -0
- package/components/Onboarding/ui/hooks/useActiveStep/index.d.ts +1 -0
- package/components/Onboarding/ui/hooks/useActiveStep/index.js +1 -0
- package/components/Onboarding/ui/hooks/useActiveStep/useActiveStep.d.ts +6 -0
- package/components/Onboarding/ui/hooks/useActiveStep/useActiveStep.js +7 -0
- package/components/Onboarding/ui/hooks/useDelayedActiveStep/index.d.ts +1 -0
- package/components/Onboarding/ui/hooks/useDelayedActiveStep/index.js +1 -0
- package/components/Onboarding/ui/hooks/useDelayedActiveStep/useDelayedActiveStep.d.ts +15 -0
- package/components/Onboarding/ui/hooks/useDelayedActiveStep/useDelayedActiveStep.js +19 -0
- package/components/Onboarding/ui/hooks/useFocusTrap/index.d.ts +1 -0
- package/components/Onboarding/ui/hooks/useFocusTrap/index.js +1 -0
- package/components/Onboarding/ui/hooks/useFocusTrap/useFocusTrap.d.ts +6 -0
- package/components/Onboarding/ui/hooks/useFocusTrap/useFocusTrap.js +33 -0
- package/components/Onboarding/ui/hooks/useKeyboardNav/index.d.ts +1 -0
- package/components/Onboarding/ui/hooks/useKeyboardNav/index.js +1 -0
- package/components/Onboarding/ui/hooks/useKeyboardNav/useKeyboardNav.d.ts +11 -0
- package/components/Onboarding/ui/hooks/useKeyboardNav/useKeyboardNav.js +62 -0
- package/components/Onboarding/ui/hooks/useStepTransition/index.d.ts +1 -0
- package/components/Onboarding/ui/hooks/useStepTransition/index.js +1 -0
- package/components/Onboarding/ui/hooks/useStepTransition/useStepTransition.d.ts +30 -0
- package/components/Onboarding/ui/hooks/useStepTransition/useStepTransition.js +46 -0
- package/components/Onboarding/ui/hooks/useTargetAnchor/index.d.ts +1 -0
- package/components/Onboarding/ui/hooks/useTargetAnchor/index.js +1 -0
- package/components/Onboarding/ui/hooks/useTargetAnchor/useTargetAnchor.d.ts +37 -0
- package/components/Onboarding/ui/hooks/useTargetAnchor/useTargetAnchor.js +56 -0
- package/components/Onboarding/ui/hooks/useTrackedRect/index.d.ts +1 -0
- package/components/Onboarding/ui/hooks/useTrackedRect/index.js +1 -0
- package/components/Onboarding/ui/hooks/useTrackedRect/useTrackedRect.d.ts +5 -0
- package/components/Onboarding/ui/hooks/useTrackedRect/useTrackedRect.js +43 -0
- package/components/Onboarding/ui/hooks/useViewportSize/index.d.ts +1 -0
- package/components/Onboarding/ui/hooks/useViewportSize/index.js +1 -0
- package/components/Onboarding/ui/hooks/useViewportSize/useViewportSize.d.ts +5 -0
- package/components/Onboarding/ui/hooks/useViewportSize/useViewportSize.js +14 -0
- package/components/Onboarding/ui/styles.d.ts +5 -0
- package/components/Onboarding/ui/styles.js +15 -0
- package/components/Onboarding/utils/createVirtualAnchor/createVirtualAnchor.d.ts +12 -0
- package/components/Onboarding/utils/createVirtualAnchor/createVirtualAnchor.js +6 -0
- package/components/Onboarding/utils/createVirtualAnchor/index.d.ts +1 -0
- package/components/Onboarding/utils/createVirtualAnchor/index.js +1 -0
- package/components/Onboarding/utils/geometry/index.d.ts +4 -0
- package/components/Onboarding/utils/geometry/index.js +4 -0
- package/components/Onboarding/utils/geometry/overlayPath/index.d.ts +1 -0
- package/components/Onboarding/utils/geometry/overlayPath/index.js +1 -0
- package/components/Onboarding/utils/geometry/overlayPath/overlayPath.d.ts +6 -0
- package/components/Onboarding/utils/geometry/overlayPath/overlayPath.js +29 -0
- package/components/Onboarding/utils/geometry/parseOffset/index.d.ts +1 -0
- package/components/Onboarding/utils/geometry/parseOffset/index.js +1 -0
- package/components/Onboarding/utils/geometry/parseOffset/parseOffset.d.ts +4 -0
- package/components/Onboarding/utils/geometry/parseOffset/parseOffset.js +5 -0
- package/components/Onboarding/utils/geometry/rect/index.d.ts +2 -0
- package/components/Onboarding/utils/geometry/rect/index.js +1 -0
- package/components/Onboarding/utils/geometry/rect/rect.d.ts +34 -0
- package/components/Onboarding/utils/geometry/rect/rect.js +60 -0
- package/components/Onboarding/utils/geometry/viewport/index.d.ts +2 -0
- package/components/Onboarding/utils/geometry/viewport/index.js +1 -0
- package/components/Onboarding/utils/geometry/viewport/viewport.d.ts +14 -0
- package/components/Onboarding/utils/geometry/viewport/viewport.js +10 -0
- package/components/Onboarding/utils/getScrollParents/getScrollParents.d.ts +7 -0
- package/components/Onboarding/utils/getScrollParents/getScrollParents.js +24 -0
- package/components/Onboarding/utils/getScrollParents/index.d.ts +1 -0
- package/components/Onboarding/utils/getScrollParents/index.js +1 -0
- package/components/Onboarding/utils/getTargetElement/getTargetElement.d.ts +4 -0
- package/components/Onboarding/utils/getTargetElement/getTargetElement.js +9 -0
- package/components/Onboarding/utils/getTargetElement/index.d.ts +1 -0
- package/components/Onboarding/utils/getTargetElement/index.js +1 -0
- package/components/Onboarding/utils/observeRemoval/index.d.ts +1 -0
- package/components/Onboarding/utils/observeRemoval/index.js +1 -0
- package/components/Onboarding/utils/observeRemoval/observeRemoval.d.ts +4 -0
- package/components/Onboarding/utils/observeRemoval/observeRemoval.js +13 -0
- package/components/Onboarding/utils/scrollIntoView/index.d.ts +1 -0
- package/components/Onboarding/utils/scrollIntoView/index.js +1 -0
- package/components/Onboarding/utils/scrollIntoView/scrollIntoView.d.ts +13 -0
- package/components/Onboarding/utils/scrollIntoView/scrollIntoView.js +85 -0
- package/components/Onboarding/utils/waitForElement/index.d.ts +2 -0
- package/components/Onboarding/utils/waitForElement/index.js +1 -0
- package/components/Onboarding/utils/waitForElement/waitForElement.d.ts +21 -0
- package/components/Onboarding/utils/waitForElement/waitForElement.js +45 -0
- package/components/Onboarding/validation/index.d.ts +1 -0
- package/components/Onboarding/validation/index.js +1 -0
- package/components/Onboarding/validation/validateTourConfig/index.d.ts +1 -0
- package/components/Onboarding/validation/validateTourConfig/index.js +1 -0
- package/components/Onboarding/validation/validateTourConfig/validateTourConfig.d.ts +12 -0
- package/components/Onboarding/validation/validateTourConfig/validateTourConfig.js +52 -0
- package/node/components/ConfirmDialog/ConfirmDialog.js +3 -1
- package/node/components/ConfirmDialog/constants.d.ts +4 -0
- package/node/components/ConfirmDialog/constants.js +8 -0
- package/node/components/ConfirmDialog/index.d.ts +1 -0
- package/node/components/ConfirmDialog/index.js +3 -0
- package/node/components/ConfirmDialog/public.d.ts +1 -0
- package/node/components/ConfirmDialog/public.js +3 -0
- package/node/components/ConfirmDialog/types.d.ts +1 -1
- package/node/components/NewPopover/NewPopover.d.ts +1 -1
- package/node/components/NewPopover/NewPopover.js +12 -3
- package/node/components/NewPopover/constants.d.ts +7 -0
- package/node/components/NewPopover/constants.js +12 -1
- package/node/components/NewPopover/styles.d.ts +4 -0
- package/node/components/NewPopover/styles.js +101 -5
- package/node/components/NewPopover/types.d.ts +13 -0
- package/node/components/NewPopover/useLogic/useLogic.d.ts +7 -3
- package/node/components/NewPopover/useLogic/useLogic.js +15 -1
- package/node/components/Onboarding/Onboarding.d.ts +35 -0
- package/node/components/Onboarding/Onboarding.js +51 -0
- package/node/components/Onboarding/constants.d.ts +34 -0
- package/node/components/Onboarding/constants.js +37 -0
- package/node/components/Onboarding/core/ActiveStepStore/ActiveStepStore.d.ts +50 -0
- package/node/components/Onboarding/core/ActiveStepStore/ActiveStepStore.js +67 -0
- package/node/components/Onboarding/core/ActiveStepStore/index.d.ts +1 -0
- package/node/components/Onboarding/core/ActiveStepStore/index.js +17 -0
- package/node/components/Onboarding/core/ExitController/ExitController.d.ts +46 -0
- package/node/components/Onboarding/core/ExitController/ExitController.js +60 -0
- package/node/components/Onboarding/core/ExitController/index.d.ts +1 -0
- package/node/components/Onboarding/core/ExitController/index.js +17 -0
- package/node/components/Onboarding/core/OnboardingTour/OnboardingTour.d.ts +101 -0
- package/node/components/Onboarding/core/OnboardingTour/OnboardingTour.js +266 -0
- package/node/components/Onboarding/core/OnboardingTour/index.d.ts +1 -0
- package/node/components/Onboarding/core/OnboardingTour/index.js +5 -0
- package/node/components/Onboarding/core/ProgressStorage/ProgressStorage.d.ts +22 -0
- package/node/components/Onboarding/core/ProgressStorage/ProgressStorage.js +62 -0
- package/node/components/Onboarding/core/ProgressStorage/index.d.ts +1 -0
- package/node/components/Onboarding/core/ProgressStorage/index.js +17 -0
- package/node/components/Onboarding/core/StepNavigator/StepNavigator.d.ts +28 -0
- package/node/components/Onboarding/core/StepNavigator/StepNavigator.js +77 -0
- package/node/components/Onboarding/core/StepNavigator/index.d.ts +1 -0
- package/node/components/Onboarding/core/StepNavigator/index.js +17 -0
- package/node/components/Onboarding/core/StepResolver/StepResolver.d.ts +19 -0
- package/node/components/Onboarding/core/StepResolver/StepResolver.js +53 -0
- package/node/components/Onboarding/core/StepResolver/index.d.ts +1 -0
- package/node/components/Onboarding/core/StepResolver/index.js +17 -0
- package/node/components/Onboarding/core/StepsController/StepsController.d.ts +16 -0
- package/node/components/Onboarding/core/StepsController/StepsController.js +39 -0
- package/node/components/Onboarding/core/StepsController/index.d.ts +1 -0
- package/node/components/Onboarding/core/StepsController/index.js +17 -0
- package/node/components/Onboarding/faker.d.ts +27 -0
- package/node/components/Onboarding/faker.js +88 -0
- package/node/components/Onboarding/index.d.ts +5 -0
- package/node/components/Onboarding/index.js +9 -0
- package/node/components/Onboarding/public.d.ts +5 -0
- package/node/components/Onboarding/public.js +9 -0
- package/node/components/Onboarding/services/LocalStorageSaveStrategy/LocalStorageSaveStrategy.d.ts +20 -0
- package/node/components/Onboarding/services/LocalStorageSaveStrategy/LocalStorageSaveStrategy.js +29 -0
- package/node/components/Onboarding/services/LocalStorageSaveStrategy/index.d.ts +1 -0
- package/node/components/Onboarding/services/LocalStorageSaveStrategy/index.js +17 -0
- package/node/components/Onboarding/types/config.d.ts +18 -0
- package/node/components/Onboarding/types/config.js +2 -0
- package/node/components/Onboarding/types/index.d.ts +4 -0
- package/node/components/Onboarding/types/index.js +20 -0
- package/node/components/Onboarding/types/progress.d.ts +28 -0
- package/node/components/Onboarding/types/progress.js +2 -0
- package/node/components/Onboarding/types/step.d.ts +144 -0
- package/node/components/Onboarding/types/step.js +2 -0
- package/node/components/Onboarding/types/tour.d.ts +168 -0
- package/node/components/Onboarding/types/tour.js +2 -0
- package/node/components/Onboarding/ui/ConfirmExit/ConfirmExit.d.ts +10 -0
- package/node/components/Onboarding/ui/ConfirmExit/ConfirmExit.js +10 -0
- package/node/components/Onboarding/ui/ConfirmExit/index.d.ts +2 -0
- package/node/components/Onboarding/ui/ConfirmExit/index.js +5 -0
- package/node/components/Onboarding/ui/ConfirmExit/styles.d.ts +30 -0
- package/node/components/Onboarding/ui/ConfirmExit/styles.js +14 -0
- package/node/components/Onboarding/ui/OnboardingContainer/OnboardingContainer.d.ts +12 -0
- package/node/components/Onboarding/ui/OnboardingContainer/OnboardingContainer.js +19 -0
- package/node/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/OnboardingErrorBoundary.d.ts +22 -0
- package/node/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/OnboardingErrorBoundary.js +24 -0
- package/node/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/index.d.ts +2 -0
- package/node/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/index.js +5 -0
- package/node/components/Onboarding/ui/OnboardingContainer/index.d.ts +1 -0
- package/node/components/Onboarding/ui/OnboardingContainer/index.js +5 -0
- package/node/components/Onboarding/ui/OnboardingContainer/useLogic/index.d.ts +1 -0
- package/node/components/Onboarding/ui/OnboardingContainer/useLogic/index.js +5 -0
- package/node/components/Onboarding/ui/OnboardingContainer/useLogic/useLogic.d.ts +10 -0
- package/node/components/Onboarding/ui/OnboardingContainer/useLogic/useLogic.js +18 -0
- package/node/components/Onboarding/ui/Overlay/Overlay.d.ts +29 -0
- package/node/components/Onboarding/ui/Overlay/Overlay.js +28 -0
- package/node/components/Onboarding/ui/Overlay/constants.d.ts +7 -0
- package/node/components/Onboarding/ui/Overlay/constants.js +11 -0
- package/node/components/Onboarding/ui/Overlay/index.d.ts +2 -0
- package/node/components/Onboarding/ui/Overlay/index.js +5 -0
- package/node/components/Onboarding/ui/Overlay/styles.d.ts +22 -0
- package/node/components/Onboarding/ui/Overlay/styles.js +60 -0
- package/node/components/Onboarding/ui/Overlay/useLogic/index.d.ts +1 -0
- package/node/components/Onboarding/ui/Overlay/useLogic/index.js +5 -0
- package/node/components/Onboarding/ui/Overlay/useLogic/useLogic.d.ts +13 -0
- package/node/components/Onboarding/ui/Overlay/useLogic/useLogic.js +14 -0
- package/node/components/Onboarding/ui/StepStrategy/StepStrategy.d.ts +6 -0
- package/node/components/Onboarding/ui/StepStrategy/StepStrategy.js +21 -0
- package/node/components/Onboarding/ui/StepStrategy/index.d.ts +1 -0
- package/node/components/Onboarding/ui/StepStrategy/index.js +17 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/HighlightStep.d.ts +6 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/HighlightStep.js +23 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/index.d.ts +2 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/index.js +5 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/styles.d.ts +25 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/styles.js +59 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/index.d.ts +1 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/index.js +5 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/useLogic.d.ts +12 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/useLogic.js +41 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/StandaloneStep.d.ts +6 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/StandaloneStep.js +15 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/index.d.ts +2 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/index.js +5 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/styles.d.ts +13 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/styles.js +12 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/ProgressDots.d.ts +6 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/ProgressDots.js +19 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/constants.d.ts +4 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/constants.js +8 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/index.d.ts +2 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/index.js +5 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/styles.d.ts +9 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/styles.js +37 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/StepFooter.d.ts +9 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/StepFooter.js +22 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/constants.d.ts +4 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/constants.js +7 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/index.d.ts +2 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/index.js +5 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/styles.d.ts +21 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/styles.js +31 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/index.d.ts +1 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/index.js +5 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/useLogic.d.ts +16 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/useLogic.js +26 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/types.d.ts +16 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/types.js +2 -0
- package/node/components/Onboarding/ui/StepStrategy/useLogic/index.d.ts +1 -0
- package/node/components/Onboarding/ui/StepStrategy/useLogic/index.js +5 -0
- package/node/components/Onboarding/ui/StepStrategy/useLogic/useLogic.d.ts +47 -0
- package/node/components/Onboarding/ui/StepStrategy/useLogic/useLogic.js +55 -0
- package/node/components/Onboarding/ui/hooks/useActiveStep/index.d.ts +1 -0
- package/node/components/Onboarding/ui/hooks/useActiveStep/index.js +5 -0
- package/node/components/Onboarding/ui/hooks/useActiveStep/useActiveStep.d.ts +6 -0
- package/node/components/Onboarding/ui/hooks/useActiveStep/useActiveStep.js +11 -0
- package/node/components/Onboarding/ui/hooks/useDelayedActiveStep/index.d.ts +1 -0
- package/node/components/Onboarding/ui/hooks/useDelayedActiveStep/index.js +17 -0
- package/node/components/Onboarding/ui/hooks/useDelayedActiveStep/useDelayedActiveStep.d.ts +15 -0
- package/node/components/Onboarding/ui/hooks/useDelayedActiveStep/useDelayedActiveStep.js +23 -0
- package/node/components/Onboarding/ui/hooks/useFocusTrap/index.d.ts +1 -0
- package/node/components/Onboarding/ui/hooks/useFocusTrap/index.js +5 -0
- package/node/components/Onboarding/ui/hooks/useFocusTrap/useFocusTrap.d.ts +6 -0
- package/node/components/Onboarding/ui/hooks/useFocusTrap/useFocusTrap.js +37 -0
- package/node/components/Onboarding/ui/hooks/useKeyboardNav/index.d.ts +1 -0
- package/node/components/Onboarding/ui/hooks/useKeyboardNav/index.js +5 -0
- package/node/components/Onboarding/ui/hooks/useKeyboardNav/useKeyboardNav.d.ts +11 -0
- package/node/components/Onboarding/ui/hooks/useKeyboardNav/useKeyboardNav.js +66 -0
- package/node/components/Onboarding/ui/hooks/useStepTransition/index.d.ts +1 -0
- package/node/components/Onboarding/ui/hooks/useStepTransition/index.js +5 -0
- package/node/components/Onboarding/ui/hooks/useStepTransition/useStepTransition.d.ts +30 -0
- package/node/components/Onboarding/ui/hooks/useStepTransition/useStepTransition.js +50 -0
- package/node/components/Onboarding/ui/hooks/useTargetAnchor/index.d.ts +1 -0
- package/node/components/Onboarding/ui/hooks/useTargetAnchor/index.js +17 -0
- package/node/components/Onboarding/ui/hooks/useTargetAnchor/useTargetAnchor.d.ts +37 -0
- package/node/components/Onboarding/ui/hooks/useTargetAnchor/useTargetAnchor.js +60 -0
- package/node/components/Onboarding/ui/hooks/useTrackedRect/index.d.ts +1 -0
- package/node/components/Onboarding/ui/hooks/useTrackedRect/index.js +5 -0
- package/node/components/Onboarding/ui/hooks/useTrackedRect/useTrackedRect.d.ts +5 -0
- package/node/components/Onboarding/ui/hooks/useTrackedRect/useTrackedRect.js +47 -0
- package/node/components/Onboarding/ui/hooks/useViewportSize/index.d.ts +1 -0
- package/node/components/Onboarding/ui/hooks/useViewportSize/index.js +5 -0
- package/node/components/Onboarding/ui/hooks/useViewportSize/useViewportSize.d.ts +5 -0
- package/node/components/Onboarding/ui/hooks/useViewportSize/useViewportSize.js +18 -0
- package/node/components/Onboarding/ui/styles.d.ts +5 -0
- package/node/components/Onboarding/ui/styles.js +19 -0
- package/node/components/Onboarding/utils/createVirtualAnchor/createVirtualAnchor.d.ts +12 -0
- package/node/components/Onboarding/utils/createVirtualAnchor/createVirtualAnchor.js +10 -0
- package/node/components/Onboarding/utils/createVirtualAnchor/index.d.ts +1 -0
- package/node/components/Onboarding/utils/createVirtualAnchor/index.js +17 -0
- package/node/components/Onboarding/utils/geometry/index.d.ts +4 -0
- package/node/components/Onboarding/utils/geometry/index.js +20 -0
- package/node/components/Onboarding/utils/geometry/overlayPath/index.d.ts +1 -0
- package/node/components/Onboarding/utils/geometry/overlayPath/index.js +5 -0
- package/node/components/Onboarding/utils/geometry/overlayPath/overlayPath.d.ts +6 -0
- package/node/components/Onboarding/utils/geometry/overlayPath/overlayPath.js +33 -0
- package/node/components/Onboarding/utils/geometry/parseOffset/index.d.ts +1 -0
- package/node/components/Onboarding/utils/geometry/parseOffset/index.js +5 -0
- package/node/components/Onboarding/utils/geometry/parseOffset/parseOffset.d.ts +4 -0
- package/node/components/Onboarding/utils/geometry/parseOffset/parseOffset.js +9 -0
- package/node/components/Onboarding/utils/geometry/rect/index.d.ts +2 -0
- package/node/components/Onboarding/utils/geometry/rect/index.js +9 -0
- package/node/components/Onboarding/utils/geometry/rect/rect.d.ts +34 -0
- package/node/components/Onboarding/utils/geometry/rect/rect.js +69 -0
- package/node/components/Onboarding/utils/geometry/viewport/index.d.ts +2 -0
- package/node/components/Onboarding/utils/geometry/viewport/index.js +5 -0
- package/node/components/Onboarding/utils/geometry/viewport/viewport.d.ts +14 -0
- package/node/components/Onboarding/utils/geometry/viewport/viewport.js +14 -0
- package/node/components/Onboarding/utils/getScrollParents/getScrollParents.d.ts +7 -0
- package/node/components/Onboarding/utils/getScrollParents/getScrollParents.js +28 -0
- package/node/components/Onboarding/utils/getScrollParents/index.d.ts +1 -0
- package/node/components/Onboarding/utils/getScrollParents/index.js +5 -0
- package/node/components/Onboarding/utils/getTargetElement/getTargetElement.d.ts +4 -0
- package/node/components/Onboarding/utils/getTargetElement/getTargetElement.js +13 -0
- package/node/components/Onboarding/utils/getTargetElement/index.d.ts +1 -0
- package/node/components/Onboarding/utils/getTargetElement/index.js +5 -0
- package/node/components/Onboarding/utils/observeRemoval/index.d.ts +1 -0
- package/node/components/Onboarding/utils/observeRemoval/index.js +17 -0
- package/node/components/Onboarding/utils/observeRemoval/observeRemoval.d.ts +4 -0
- package/node/components/Onboarding/utils/observeRemoval/observeRemoval.js +17 -0
- package/node/components/Onboarding/utils/scrollIntoView/index.d.ts +1 -0
- package/node/components/Onboarding/utils/scrollIntoView/index.js +5 -0
- package/node/components/Onboarding/utils/scrollIntoView/scrollIntoView.d.ts +13 -0
- package/node/components/Onboarding/utils/scrollIntoView/scrollIntoView.js +89 -0
- package/node/components/Onboarding/utils/waitForElement/index.d.ts +2 -0
- package/node/components/Onboarding/utils/waitForElement/index.js +5 -0
- package/node/components/Onboarding/utils/waitForElement/waitForElement.d.ts +21 -0
- package/node/components/Onboarding/utils/waitForElement/waitForElement.js +49 -0
- package/node/components/Onboarding/validation/index.d.ts +1 -0
- package/node/components/Onboarding/validation/index.js +6 -0
- package/node/components/Onboarding/validation/validateTourConfig/index.d.ts +1 -0
- package/node/components/Onboarding/validation/validateTourConfig/index.js +6 -0
- package/node/components/Onboarding/validation/validateTourConfig/validateTourConfig.d.ts +12 -0
- package/node/components/Onboarding/validation/validateTourConfig/validateTourConfig.js +80 -0
- package/package.json +3 -2
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type OnboardingTourConfig, type ResolvedStep, type Step, type StepOverride, type TourPresentation } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Вычисляет итоговые значения по приоритету источников:
|
|
4
|
+
* - `title`/`content`: рантайм-override → значение шага;
|
|
5
|
+
* - `position`/`dialogSize`/видимость кнопок: шаг → значение по умолчанию;
|
|
6
|
+
* - `isInteractive`/`waitForTimeout`: шаг → конфигурация тура → значение по умолчанию;
|
|
7
|
+
* - презентация тура (`resolvePresentation`): конфигурация тура → значение по умолчанию.
|
|
8
|
+
*/
|
|
9
|
+
export declare class StepResolver {
|
|
10
|
+
private readonly config;
|
|
11
|
+
constructor(config: OnboardingTourConfig<readonly Step[]>);
|
|
12
|
+
resolve(step: Step, override?: StepOverride): ResolvedStep;
|
|
13
|
+
private resolveWaitForTimeout;
|
|
14
|
+
resolveIsInteractive(step: Step): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Конфигурация тура с применёнными значениями по умолчанию.
|
|
17
|
+
*/
|
|
18
|
+
resolvePresentation(): TourPresentation;
|
|
19
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { DEFAULT_WAIT_ELEMENT_TIMEOUT_MS } from '../../constants';
|
|
2
|
+
/**
|
|
3
|
+
* Вычисляет итоговые значения по приоритету источников:
|
|
4
|
+
* - `title`/`content`: рантайм-override → значение шага;
|
|
5
|
+
* - `position`/`dialogSize`/видимость кнопок: шаг → значение по умолчанию;
|
|
6
|
+
* - `isInteractive`/`waitForTimeout`: шаг → конфигурация тура → значение по умолчанию;
|
|
7
|
+
* - презентация тура (`resolvePresentation`): конфигурация тура → значение по умолчанию.
|
|
8
|
+
*/
|
|
9
|
+
export class StepResolver {
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.config = config;
|
|
12
|
+
}
|
|
13
|
+
resolve(step, override) {
|
|
14
|
+
return {
|
|
15
|
+
...step,
|
|
16
|
+
title: override?.title ?? step.title,
|
|
17
|
+
content: override?.content ?? step.content,
|
|
18
|
+
position: step.position ?? 'bottom',
|
|
19
|
+
dialogSize: step.dialogSize ?? 'xs',
|
|
20
|
+
isNextButtonVisible: step.isNextButtonVisible ?? true,
|
|
21
|
+
isPrevButtonVisible: step.isPrevButtonVisible ?? true,
|
|
22
|
+
waitForTimeout: this.resolveWaitForTimeout(step),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
resolveWaitForTimeout(step) {
|
|
26
|
+
return (step.waitForTimeout ??
|
|
27
|
+
this.config.waitForTimeout ??
|
|
28
|
+
DEFAULT_WAIT_ELEMENT_TIMEOUT_MS);
|
|
29
|
+
}
|
|
30
|
+
resolveIsInteractive(step) {
|
|
31
|
+
return step.isInteractive ?? this.config.isInteractive ?? false;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Конфигурация тура с применёнными значениями по умолчанию.
|
|
35
|
+
*/
|
|
36
|
+
resolvePresentation() {
|
|
37
|
+
return {
|
|
38
|
+
isDotsVisible: this.config.isDotsVisible ?? true,
|
|
39
|
+
isCounterVisible: this.config.isCounterVisible ?? true,
|
|
40
|
+
confirmExit: this.config.confirmExit ?? {},
|
|
41
|
+
buttons: {
|
|
42
|
+
prevLabel: this.config.buttons?.prevLabel ?? 'Назад',
|
|
43
|
+
nextLabel: this.config.buttons?.nextLabel ?? 'Далее',
|
|
44
|
+
finishLabel: this.config.buttons?.finishLabel ?? 'Закрыть',
|
|
45
|
+
finishVariant: this.config.buttons?.finishVariant ?? 'contained',
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './StepResolver';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './StepResolver';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Step, type StepHandles, type StepOverride } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Владеет рантайм-переопределениями содержимого шагов (через `tour.steps[name].setX`)
|
|
4
|
+
* и строит типобезопасную карту объектов управления `tour.steps`. О каждом изменении сообщает
|
|
5
|
+
* наружу через `onChange`, чтобы оркестратор перерисовал активный шаг, если он
|
|
6
|
+
* сейчас показан.
|
|
7
|
+
*/
|
|
8
|
+
export declare class StepsController<TSteps extends readonly Step[]> {
|
|
9
|
+
private readonly onChange;
|
|
10
|
+
private readonly overrides;
|
|
11
|
+
readonly handles: StepHandles<TSteps>;
|
|
12
|
+
constructor(steps: TSteps, onChange: (stepName: string) => void);
|
|
13
|
+
getOverride(stepName: string): StepOverride | undefined;
|
|
14
|
+
private patch;
|
|
15
|
+
private createHandles;
|
|
16
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { TOUR_ID_ATTR } from '../../constants';
|
|
2
|
+
/**
|
|
3
|
+
* Владеет рантайм-переопределениями содержимого шагов (через `tour.steps[name].setX`)
|
|
4
|
+
* и строит типобезопасную карту объектов управления `tour.steps`. О каждом изменении сообщает
|
|
5
|
+
* наружу через `onChange`, чтобы оркестратор перерисовал активный шаг, если он
|
|
6
|
+
* сейчас показан.
|
|
7
|
+
*/
|
|
8
|
+
export class StepsController {
|
|
9
|
+
constructor(steps, onChange) {
|
|
10
|
+
this.onChange = onChange;
|
|
11
|
+
this.overrides = new Map();
|
|
12
|
+
this.handles = this.createHandles(steps);
|
|
13
|
+
}
|
|
14
|
+
getOverride(stepName) {
|
|
15
|
+
return this.overrides.get(stepName);
|
|
16
|
+
}
|
|
17
|
+
patch(stepName, override) {
|
|
18
|
+
this.overrides.set(stepName, {
|
|
19
|
+
...this.overrides.get(stepName),
|
|
20
|
+
...override,
|
|
21
|
+
});
|
|
22
|
+
this.onChange(stepName);
|
|
23
|
+
}
|
|
24
|
+
createHandles(steps) {
|
|
25
|
+
const handles = {};
|
|
26
|
+
steps.forEach((step) => {
|
|
27
|
+
handles[step.name] = {
|
|
28
|
+
getHighlightProps: () => ({ [TOUR_ID_ATTR]: step.name }),
|
|
29
|
+
setTitle: (title) => this.patch(step.name, { title }),
|
|
30
|
+
setContent: (content) => this.patch(step.name, { content }),
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
return handles;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './StepsController';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './StepsController';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ActiveStepState, type ResolvedStep, type SaveStrategy, type Step, type TourProgress } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Фабрика шага со значениями по умолчанию standalone-типа.
|
|
4
|
+
*/
|
|
5
|
+
export declare const makeStep: (data?: Partial<Step>) => Step;
|
|
6
|
+
/**
|
|
7
|
+
* Фабрика шага с уже применёнными значениями по умолчанию.
|
|
8
|
+
*/
|
|
9
|
+
export declare const makeResolvedStep: (data?: Partial<ResolvedStep>) => ResolvedStep;
|
|
10
|
+
/**
|
|
11
|
+
* Фабрика состояния активного шага, которое тур публикует в store.
|
|
12
|
+
*/
|
|
13
|
+
export declare const makeActiveStepState: (data?: Partial<ActiveStepState>) => ActiveStepState;
|
|
14
|
+
/**
|
|
15
|
+
* Список standalone-шагов по именам — частый кейс, когда важны только имена и
|
|
16
|
+
* порядок. `data` применяется к каждому шагу.
|
|
17
|
+
*/
|
|
18
|
+
export declare const makeSteps: (names: string[], data?: Partial<Step>) => Step[];
|
|
19
|
+
/**
|
|
20
|
+
* Фабрика прогресса тура со значениями по умолчанию «в процессе».
|
|
21
|
+
*/
|
|
22
|
+
export declare const makeTourProgress: (data?: Partial<TourProgress>) => TourProgress;
|
|
23
|
+
/**
|
|
24
|
+
* Стратегия хранения в памяти со шпионами: `save` пишет в замыкание, `load`
|
|
25
|
+
* читает оттуда же. Заменяет реальный localStorage/бэкенд в тестах.
|
|
26
|
+
*/
|
|
27
|
+
export declare const createMemoryStrategy: (initial?: TourProgress | null) => SaveStrategy;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { vi } from 'vitest';
|
|
2
|
+
/**
|
|
3
|
+
* Фабрика шага со значениями по умолчанию standalone-типа.
|
|
4
|
+
*/
|
|
5
|
+
export const makeStep = (data = {}) => ({
|
|
6
|
+
name: 'step',
|
|
7
|
+
type: 'standalone',
|
|
8
|
+
...data,
|
|
9
|
+
});
|
|
10
|
+
/**
|
|
11
|
+
* Фабрика шага с уже применёнными значениями по умолчанию.
|
|
12
|
+
*/
|
|
13
|
+
export const makeResolvedStep = (data = {}) => ({
|
|
14
|
+
name: 'step',
|
|
15
|
+
type: 'standalone',
|
|
16
|
+
position: 'bottom',
|
|
17
|
+
dialogSize: 'xs',
|
|
18
|
+
isNextButtonVisible: true,
|
|
19
|
+
isPrevButtonVisible: true,
|
|
20
|
+
waitForTimeout: 0,
|
|
21
|
+
...data,
|
|
22
|
+
});
|
|
23
|
+
/**
|
|
24
|
+
* Фабрика состояния активного шага, которое тур публикует в store.
|
|
25
|
+
*/
|
|
26
|
+
export const makeActiveStepState = (data = {}) => ({
|
|
27
|
+
tourName: 'tour',
|
|
28
|
+
step: makeResolvedStep(),
|
|
29
|
+
position: 0,
|
|
30
|
+
total: 1,
|
|
31
|
+
hasNext: false,
|
|
32
|
+
hasPrev: false,
|
|
33
|
+
isInteractive: false,
|
|
34
|
+
isConfirming: false,
|
|
35
|
+
isDotsVisible: true,
|
|
36
|
+
isCounterVisible: true,
|
|
37
|
+
confirmExit: {},
|
|
38
|
+
buttons: {
|
|
39
|
+
prevLabel: 'Назад',
|
|
40
|
+
nextLabel: 'Далее',
|
|
41
|
+
finishLabel: 'Закрыть',
|
|
42
|
+
finishVariant: 'contained',
|
|
43
|
+
},
|
|
44
|
+
onNext: vi.fn(),
|
|
45
|
+
onPrev: vi.fn(),
|
|
46
|
+
onSelectStep: vi.fn(),
|
|
47
|
+
requestClose: vi.fn(),
|
|
48
|
+
onConfirmExit: vi.fn(),
|
|
49
|
+
onCancelExit: vi.fn(),
|
|
50
|
+
onError: vi.fn(),
|
|
51
|
+
...data,
|
|
52
|
+
});
|
|
53
|
+
/**
|
|
54
|
+
* Список standalone-шагов по именам — частый кейс, когда важны только имена и
|
|
55
|
+
* порядок. `data` применяется к каждому шагу.
|
|
56
|
+
*/
|
|
57
|
+
export const makeSteps = (names, data = {}) => names.map((name) => makeStep({ name, ...data }));
|
|
58
|
+
/**
|
|
59
|
+
* Фабрика прогресса тура со значениями по умолчанию «в процессе».
|
|
60
|
+
*/
|
|
61
|
+
export const makeTourProgress = (data = {}) => ({
|
|
62
|
+
lastStepName: 'step',
|
|
63
|
+
isCompleted: false,
|
|
64
|
+
isDismissed: false,
|
|
65
|
+
...data,
|
|
66
|
+
});
|
|
67
|
+
/**
|
|
68
|
+
* Стратегия хранения в памяти со шпионами: `save` пишет в замыкание, `load`
|
|
69
|
+
* читает оттуда же. Заменяет реальный localStorage/бэкенд в тестах.
|
|
70
|
+
*/
|
|
71
|
+
export const createMemoryStrategy = (initial = null) => {
|
|
72
|
+
let saved = initial;
|
|
73
|
+
return {
|
|
74
|
+
save: vi.fn((data) => {
|
|
75
|
+
saved = data;
|
|
76
|
+
}),
|
|
77
|
+
load: vi.fn(() => saved),
|
|
78
|
+
};
|
|
79
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { createOnboarding, type Onboarding } from './Onboarding';
|
|
2
|
+
export { OnboardingContainer, type OnboardingContainerProps, } from './ui/OnboardingContainer';
|
|
3
|
+
export { LocalStorageSaveStrategy } from './services/LocalStorageSaveStrategy';
|
|
4
|
+
export type { OnboardingTour } from './core/OnboardingTour';
|
|
5
|
+
export type { OnboardingConfig, OnboardingTourConfig, SaveStrategy as OnboardingSaveStrategy, TourProgress as OnboardingTourProgress, } from './types';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { OnboardingTour } from './core/OnboardingTour';
|
|
2
|
+
export { createOnboarding, type Onboarding } from './Onboarding';
|
|
3
|
+
export { LocalStorageSaveStrategy } from './services/LocalStorageSaveStrategy';
|
|
4
|
+
export type { OnboardingConfig, OnboardingTourConfig, SaveStrategy as OnboardingSaveStrategy, TourProgress as OnboardingTourProgress, } from './types';
|
|
5
|
+
export { OnboardingContainer, type OnboardingContainerProps, } from './ui/OnboardingContainer';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type SaveStrategy, type SaveStrategyFactory, type TourProgress } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Префикс ключа `localStorage` для стратегии хранения прогресса по умолчанию.
|
|
4
|
+
* К нему добавляется имя тура.
|
|
5
|
+
*/
|
|
6
|
+
export declare const LOCAL_STORAGE_KEY_PREFIX = "astral-ui-onboarding:";
|
|
7
|
+
/**
|
|
8
|
+
* Реализация по умолчанию SaveStrategy: хранит прогресс тура в `localStorage`
|
|
9
|
+
*/
|
|
10
|
+
export declare class LocalStorageSaveStrategy implements SaveStrategy {
|
|
11
|
+
/**
|
|
12
|
+
* Ключ уникален на тур (префикс + имя), чтобы туры не перетирали друг друга.
|
|
13
|
+
*/
|
|
14
|
+
private readonly key;
|
|
15
|
+
constructor(tourName: string);
|
|
16
|
+
save: (data: TourProgress) => void;
|
|
17
|
+
load: () => TourProgress | null;
|
|
18
|
+
remove: () => void;
|
|
19
|
+
}
|
|
20
|
+
export declare const createLocalStorageSaveStrategy: SaveStrategyFactory;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Префикс ключа `localStorage` для стратегии хранения прогресса по умолчанию.
|
|
3
|
+
* К нему добавляется имя тура.
|
|
4
|
+
*/
|
|
5
|
+
export const LOCAL_STORAGE_KEY_PREFIX = 'astral-ui-onboarding:';
|
|
6
|
+
/**
|
|
7
|
+
* Реализация по умолчанию SaveStrategy: хранит прогресс тура в `localStorage`
|
|
8
|
+
*/
|
|
9
|
+
export class LocalStorageSaveStrategy {
|
|
10
|
+
constructor(tourName) {
|
|
11
|
+
this.save = (data) => {
|
|
12
|
+
localStorage.setItem(this.key, JSON.stringify(data));
|
|
13
|
+
};
|
|
14
|
+
this.load = () => {
|
|
15
|
+
const raw = localStorage.getItem(this.key);
|
|
16
|
+
return raw ? JSON.parse(raw) : null;
|
|
17
|
+
};
|
|
18
|
+
this.remove = () => {
|
|
19
|
+
localStorage.removeItem(this.key);
|
|
20
|
+
};
|
|
21
|
+
this.key = `${LOCAL_STORAGE_KEY_PREFIX}${tourName}`;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export const createLocalStorageSaveStrategy = (tourName) => new LocalStorageSaveStrategy(tourName);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './LocalStorageSaveStrategy';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './LocalStorageSaveStrategy';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type SaveStrategyFactory } from './progress';
|
|
2
|
+
/**
|
|
3
|
+
* Конфигурация экземпляра онбординга
|
|
4
|
+
*/
|
|
5
|
+
export type OnboardingConfig = {
|
|
6
|
+
/**
|
|
7
|
+
* Фабрика стратегии хранения прогресса: вызывается при создании каждого
|
|
8
|
+
* тура, получает его имя. По умолчанию — `localStorage`.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* // Бэкенд реализация
|
|
12
|
+
* saveStrategy: (tourName) => ({
|
|
13
|
+
* save: (data) => api.saveProgress(tourName, data),
|
|
14
|
+
* load: () => api.loadProgress(tourName),
|
|
15
|
+
* })
|
|
16
|
+
*/
|
|
17
|
+
saveStrategy?: SaveStrategyFactory;
|
|
18
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Прогресс прохождения тура, сохраняемый между сессиями
|
|
3
|
+
*/
|
|
4
|
+
export type TourProgress = {
|
|
5
|
+
lastStepName: string;
|
|
6
|
+
/**
|
|
7
|
+
* Тур пройден до конца.
|
|
8
|
+
*/
|
|
9
|
+
isCompleted: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* «Больше не показывать»: ставится при прохождении до конца ИЛИ подтверждённом
|
|
12
|
+
* выходе.
|
|
13
|
+
*/
|
|
14
|
+
isDismissed: boolean;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Стратегия хранения прогресса тура.
|
|
18
|
+
*/
|
|
19
|
+
export type SaveStrategy = {
|
|
20
|
+
save: (data: TourProgress) => void | Promise<void>;
|
|
21
|
+
load: () => TourProgress | null | Promise<TourProgress | null>;
|
|
22
|
+
/**
|
|
23
|
+
* Полное удаление сохранённого прогресса.
|
|
24
|
+
* Если не реализовано, прогресс сбрасывается перезаписью пустым состоянием.
|
|
25
|
+
*/
|
|
26
|
+
remove?: () => void | Promise<void>;
|
|
27
|
+
};
|
|
28
|
+
export type SaveStrategyFactory = (tourName: string) => SaveStrategy;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type DialogSize } from '../../Dialog';
|
|
3
|
+
import { type TOUR_ID_ATTR } from '../constants';
|
|
4
|
+
/**
|
|
5
|
+
* Содержимое шага.
|
|
6
|
+
*/
|
|
7
|
+
export type StepContent = ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Рантайм-переопределение содержимого шага.
|
|
10
|
+
*/
|
|
11
|
+
export type StepOverride = {
|
|
12
|
+
title?: StepContent;
|
|
13
|
+
content?: StepContent;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Тип шага:
|
|
17
|
+
* - `standalone` — самостоятельная модалка по центру экрана;
|
|
18
|
+
* - `highlight` — подсветка элемента UI рядом с popover.
|
|
19
|
+
*/
|
|
20
|
+
export type StepType = 'highlight' | 'standalone';
|
|
21
|
+
/**
|
|
22
|
+
* Желаемая позиция popover относительно подсвечиваемого элемента.
|
|
23
|
+
*/
|
|
24
|
+
export type StepPosition = 'top' | 'bottom' | 'left' | 'right';
|
|
25
|
+
/**
|
|
26
|
+
* Описание одного шага тура.
|
|
27
|
+
*/
|
|
28
|
+
export type Step = {
|
|
29
|
+
/**
|
|
30
|
+
* Уникальное в рамках тура имя шага.
|
|
31
|
+
*/
|
|
32
|
+
name: string;
|
|
33
|
+
/**
|
|
34
|
+
* Заголовок шага.
|
|
35
|
+
*/
|
|
36
|
+
title?: StepContent;
|
|
37
|
+
/**
|
|
38
|
+
* Содержимое шага.
|
|
39
|
+
*/
|
|
40
|
+
content?: StepContent;
|
|
41
|
+
/**
|
|
42
|
+
* Тип шага:
|
|
43
|
+
* - `standalone` — самостоятельная модалка по центру экрана;
|
|
44
|
+
* - `highlight` — подсветка элемента UI рядом с popover.
|
|
45
|
+
*/
|
|
46
|
+
type: StepType;
|
|
47
|
+
/**
|
|
48
|
+
* Желаемая позиция popover (только для highlight).
|
|
49
|
+
* @default 'bottom'
|
|
50
|
+
*/
|
|
51
|
+
position?: StepPosition;
|
|
52
|
+
/**
|
|
53
|
+
* Отступ подсветки вокруг выделяемого элемента.
|
|
54
|
+
* @default '8px'
|
|
55
|
+
* @example '4px'
|
|
56
|
+
*/
|
|
57
|
+
highlightOffset?: `${number}px`;
|
|
58
|
+
/**
|
|
59
|
+
* Можно ли кликать по подсвечиваемому элементу во время тура.
|
|
60
|
+
* @default false
|
|
61
|
+
*/
|
|
62
|
+
isInteractive?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Показывать ли кнопку перехода вперёд.
|
|
65
|
+
* @default true
|
|
66
|
+
*/
|
|
67
|
+
isNextButtonVisible?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Показывать ли кнопку перехода назад.
|
|
70
|
+
* @default true
|
|
71
|
+
*/
|
|
72
|
+
isPrevButtonVisible?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Обратный вызов перед переходом к следующему шагу.
|
|
75
|
+
*/
|
|
76
|
+
onNextClick?: () => void;
|
|
77
|
+
/**
|
|
78
|
+
* Обратный вызов перед переходом к предыдущему шагу.
|
|
79
|
+
*/
|
|
80
|
+
onPrevClick?: () => void;
|
|
81
|
+
/**
|
|
82
|
+
* Пропускать шаг при навигации.
|
|
83
|
+
*/
|
|
84
|
+
shouldSkip?: boolean | (() => boolean);
|
|
85
|
+
/**
|
|
86
|
+
* При переходе на этот шаг тур встаёт в ожидание и НЕ отрисовывает шаг, пока не
|
|
87
|
+
* будет вызван `tour.resume()`.
|
|
88
|
+
*/
|
|
89
|
+
waitForResume?: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Размер диалога для standalone-шага. Для highlight-шага игнорируется.
|
|
92
|
+
* @default 'xs'
|
|
93
|
+
*/
|
|
94
|
+
dialogSize?: DialogSize;
|
|
95
|
+
/**
|
|
96
|
+
* Сколько миллисекунд тур ждёт появления элемента highlight-шага в DOM.
|
|
97
|
+
*
|
|
98
|
+
* По умолчанию (`0`) элемент ищется сразу; если его нет — срабатывает `onError`.
|
|
99
|
+
* Задавайте, только когда элемент появляется сам (анимация, поздняя отрисовка).
|
|
100
|
+
* Если появление зависит от действия пользователя или загрузки данных —
|
|
101
|
+
* используйте `waitForResume`, а не тайм-аут: подобранное вручную значение
|
|
102
|
+
* сработает у вас, но на более медленном устройстве или соединении пользователя
|
|
103
|
+
* тур может не дождаться элемента.
|
|
104
|
+
* @default 0
|
|
105
|
+
*/
|
|
106
|
+
waitForTimeout?: number;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Шаг с уже применёнными значениями по умолчанию.
|
|
110
|
+
*/
|
|
111
|
+
export type ResolvedStep = Step & {
|
|
112
|
+
isNextButtonVisible: boolean;
|
|
113
|
+
isPrevButtonVisible: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Итоговая позиция popover: значение по умолчанию -`'bottom'`.
|
|
116
|
+
*/
|
|
117
|
+
position: StepPosition;
|
|
118
|
+
/**
|
|
119
|
+
* Итоговый размер диалога standalone-шага: значение по умолчанию `'xs'`.
|
|
120
|
+
*/
|
|
121
|
+
dialogSize: DialogSize;
|
|
122
|
+
/**
|
|
123
|
+
* Итоговый тайм-аут ожидания элемента (мс)`
|
|
124
|
+
*/
|
|
125
|
+
waitForTimeout: number;
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* Объект управления шагом, возвращаемый через `tour.steps[stepName]/tour.steps.stepName`.
|
|
129
|
+
*/
|
|
130
|
+
export type StepHandle = {
|
|
131
|
+
/**
|
|
132
|
+
* Параметры (атрибут `data-tour-id`) для передачи в подсвечиваемый элемент.
|
|
133
|
+
* @example <button {...tour.steps.save.getHighlightProps()} />
|
|
134
|
+
*/
|
|
135
|
+
getHighlightProps: () => Record<typeof TOUR_ID_ATTR, string>;
|
|
136
|
+
setTitle: (title: StepContent) => void;
|
|
137
|
+
setContent: (content: StepContent) => void;
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Карта объектов управления шагами по их литеральным именам — типобезопасный `tour.steps`.
|
|
141
|
+
*/
|
|
142
|
+
export type StepHandles<TSteps extends readonly Step[]> = {
|
|
143
|
+
[TName in TSteps[number]['name']]: StepHandle;
|
|
144
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|