@astral/ui 4.82.0 → 4.84.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/_mocks/LoggerMock/LoggerMock.d.ts +16 -0
- package/_mocks/LoggerMock/LoggerMock.js +18 -0
- package/_mocks/LoggerMock/index.d.ts +1 -0
- package/_mocks/LoggerMock/index.js +1 -0
- package/components/ConfigProvider/ConfigProvider.d.ts +7 -1
- package/components/ConfigProvider/ConfigProvider.js +14 -8
- 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/DashboardLayout/Header/useLogic/useLogic.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 +56 -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 +48 -0
- package/components/Onboarding/core/ExitController/ExitController.js +59 -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 +103 -0
- package/components/Onboarding/core/OnboardingTour/OnboardingTour.js +283 -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 +24 -0
- package/components/Onboarding/core/ProgressStorage/ProgressStorage.js +62 -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/_mocks/LoggerMock/LoggerMock.d.ts +16 -0
- package/node/_mocks/LoggerMock/LoggerMock.js +23 -0
- package/node/_mocks/LoggerMock/index.d.ts +1 -0
- package/node/_mocks/LoggerMock/index.js +17 -0
- package/node/components/ConfigProvider/ConfigProvider.d.ts +7 -1
- package/node/components/ConfigProvider/ConfigProvider.js +13 -7
- 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/DashboardLayout/Header/useLogic/useLogic.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 +61 -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 +48 -0
- package/node/components/Onboarding/core/ExitController/ExitController.js +63 -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 +103 -0
- package/node/components/Onboarding/core/OnboardingTour/OnboardingTour.js +287 -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 +24 -0
- package/node/components/Onboarding/core/ProgressStorage/ProgressStorage.js +66 -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/node/services/Logger/Logger.d.ts +45 -0
- package/node/services/Logger/Logger.js +72 -0
- package/node/services/Logger/index.d.ts +10 -0
- package/node/services/Logger/index.js +17 -0
- package/package.json +3 -2
- package/services/Logger/Logger.d.ts +45 -0
- package/services/Logger/Logger.js +68 -0
- package/services/Logger/index.d.ts +10 -0
- package/services/Logger/index.js +12 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Logger } from '../../services/Logger';
|
|
2
|
+
/**
|
|
3
|
+
* Mock логгера для тестов
|
|
4
|
+
*/
|
|
5
|
+
export declare class LoggerMock {
|
|
6
|
+
configure: Logger['configure'];
|
|
7
|
+
child: Logger['child'];
|
|
8
|
+
isLevelEnabled: Logger['isLevelEnabled'];
|
|
9
|
+
success: Logger['success'];
|
|
10
|
+
info: Logger['info'];
|
|
11
|
+
warn: Logger['warn'];
|
|
12
|
+
debug: Logger['debug'];
|
|
13
|
+
error: Logger['error'];
|
|
14
|
+
constructor();
|
|
15
|
+
}
|
|
16
|
+
export declare const createLoggerMock: () => Logger;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { vi } from 'vitest';
|
|
2
|
+
/**
|
|
3
|
+
* Mock логгера для тестов
|
|
4
|
+
*/
|
|
5
|
+
export class LoggerMock {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.configure = vi.fn(() => vi.fn());
|
|
8
|
+
this.child = vi.fn();
|
|
9
|
+
this.isLevelEnabled = vi.fn(() => false);
|
|
10
|
+
this.success = vi.fn();
|
|
11
|
+
this.info = vi.fn();
|
|
12
|
+
this.warn = vi.fn();
|
|
13
|
+
this.debug = vi.fn();
|
|
14
|
+
this.error = vi.fn();
|
|
15
|
+
vi.mocked(this.child).mockReturnValue(this);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export const createLoggerMock = () => new LoggerMock();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './LoggerMock';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './LoggerMock';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ReactElement, type ReactNode } from 'react';
|
|
2
|
+
import { type LogThreshold } from '../../services/Logger';
|
|
2
3
|
import { type LanguageMap } from '../DatePicker/types';
|
|
3
4
|
import { type PlaceholderImageProps } from '../placeholders/Placeholder/Image';
|
|
4
5
|
import { type CaptureException } from '../services/ErrorService';
|
|
@@ -138,7 +139,12 @@ export type ConfigProviderProps = Partial<ConfigContextProps> & {
|
|
|
138
139
|
* Переданный в компонент флаг напрямую имеет приоритет выше
|
|
139
140
|
*/
|
|
140
141
|
nextFeatureFlags?: NextFeatureFlagsContextProps;
|
|
142
|
+
/**
|
|
143
|
+
* Порог логов ui-kit в консоли. По умолчанию: prod → `error`, dev → `warn`,
|
|
144
|
+
* test → `silent`. `silent` — выключить полностью.
|
|
145
|
+
*/
|
|
146
|
+
logLevel?: LogThreshold;
|
|
141
147
|
};
|
|
142
148
|
export declare const ConfigContext: import("react").Context<ConfigContextProps>;
|
|
143
|
-
export declare const ConfigProvider: ({ children, language, datePickerLanguageMap, captureException: captureExceptionProp, emptySymbol, imagesMap, techSup, hidePersonalData, hidePersonalDataClassname, hidePersonalInputDataClassname, components: propsComponents, nextFeatureFlags, }: Partial<ConfigProviderProps>) => import("react/jsx-runtime").JSX.Element;
|
|
149
|
+
export declare const ConfigProvider: ({ children, language, datePickerLanguageMap, captureException: captureExceptionProp, emptySymbol, imagesMap, techSup, hidePersonalData, hidePersonalDataClassname, hidePersonalInputDataClassname, components: propsComponents, nextFeatureFlags, logLevel, }: Partial<ConfigProviderProps>) => import("react/jsx-runtime").JSX.Element;
|
|
144
150
|
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { createContext, useEffect,
|
|
2
|
+
import { createContext, useEffect, } from 'react';
|
|
3
|
+
import { configureLogger } from '../../services/Logger';
|
|
3
4
|
import { russianMap } from '../DatePicker/constants';
|
|
4
5
|
import { ErrorService } from '../services/ErrorService';
|
|
5
6
|
import { NextFeatureFlagsContext, } from './NextFeatureFlagsContext';
|
|
@@ -13,6 +14,10 @@ const techSupDefault = {
|
|
|
13
14
|
phone: '',
|
|
14
15
|
email: '',
|
|
15
16
|
};
|
|
17
|
+
const defaultCaptureException = (error) => {
|
|
18
|
+
// biome-ignore lint/suspicious/noConsole: Ошибка для интеграторов
|
|
19
|
+
console.error(error);
|
|
20
|
+
};
|
|
16
21
|
const defaultHidePersonalDataClassname = 'ym-hide-content sentry-mask';
|
|
17
22
|
const defaultHidePersonalInputDataClassname = 'ym-disable-keys sentry-mask';
|
|
18
23
|
export const ConfigContext = createContext({
|
|
@@ -27,20 +32,21 @@ export const ConfigContext = createContext({
|
|
|
27
32
|
hidePersonalInputDataClassname: defaultHidePersonalInputDataClassname,
|
|
28
33
|
hidePersonalData: true,
|
|
29
34
|
});
|
|
30
|
-
export const ConfigProvider = ({ children, language = 'ru', datePickerLanguageMap = russianMap, captureException: captureExceptionProp, emptySymbol = '—', imagesMap = imagesMapDefault, techSup = techSupDefault, hidePersonalData = true, hidePersonalDataClassname = defaultHidePersonalDataClassname, hidePersonalInputDataClassname = defaultHidePersonalInputDataClassname, components: propsComponents, nextFeatureFlags = {}, }) => {
|
|
31
|
-
const captureException =
|
|
32
|
-
|
|
33
|
-
captureExceptionProp || ((error) => console.error(error));
|
|
34
|
-
useMemo(() => {
|
|
35
|
+
export const ConfigProvider = ({ children, language = 'ru', datePickerLanguageMap = russianMap, captureException: captureExceptionProp, emptySymbol = '—', imagesMap = imagesMapDefault, techSup = techSupDefault, hidePersonalData = true, hidePersonalDataClassname = defaultHidePersonalDataClassname, hidePersonalInputDataClassname = defaultHidePersonalInputDataClassname, components: propsComponents, nextFeatureFlags = {}, logLevel, }) => {
|
|
36
|
+
const captureException = captureExceptionProp ?? defaultCaptureException;
|
|
37
|
+
useEffect(() => {
|
|
35
38
|
ErrorService.getInstance().init(captureException);
|
|
36
39
|
}, [captureException]);
|
|
37
40
|
useEffect(() => {
|
|
38
|
-
|
|
41
|
+
return configureLogger({ level: logLevel });
|
|
42
|
+
}, [logLevel]);
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
if (!captureExceptionProp) {
|
|
39
45
|
// biome-ignore lint/suspicious/noConsole: Ошибка для интеграторов
|
|
40
46
|
console.warn('ConfigProvider: Необходимо наличие captureException, связанного с сервисом мониторинга ошибок.\n' +
|
|
41
47
|
'На данный момент все ошибки, отлавливаемые в ErrorBoundary будут выводиться только в консоль');
|
|
42
48
|
}
|
|
43
|
-
}, []);
|
|
49
|
+
}, [captureExceptionProp]);
|
|
44
50
|
const components = {
|
|
45
51
|
...propsComponents,
|
|
46
52
|
layout: {
|
|
@@ -4,6 +4,8 @@ import { Dialog } from '../Dialog';
|
|
|
4
4
|
import { DialogActions } from '../DialogActions';
|
|
5
5
|
import { DialogContent } from '../DialogContent';
|
|
6
6
|
import { DialogContentText } from '../DialogContentText';
|
|
7
|
+
import { classNames } from '../utils/classNames';
|
|
8
|
+
import { confirmDialogClassnames } from './constants';
|
|
7
9
|
import { CancelButton } from './styles';
|
|
8
10
|
import { useLogic } from './useLogic';
|
|
9
11
|
export const ConfirmDialog = (props) => {
|
|
@@ -11,5 +13,5 @@ export const ConfirmDialog = (props) => {
|
|
|
11
13
|
const { open, title, description, actions, onClose, size = 'sm', ...restProps } = props;
|
|
12
14
|
const { text: confirmText, ...confirmButtonProps } = actions.confirm;
|
|
13
15
|
const { text: cancelText, variant, onClick, ...restCancelProps } = actions.cancel || {};
|
|
14
|
-
return (_jsxs(Dialog, { size: size, title: title, open: open, onClose: onClose, ...restProps, children: [description && (_jsx(DialogContent, { children: typeof description === 'string' ? (_jsx(DialogContentText, { children: description })) : (description) })), _jsxs(DialogActions, { children: [isShowCancelButton && (_jsx(CancelButton, { ...restCancelProps, ...cancelButtonProps, children: cancelText })), _jsx(Button, { ...confirmButtonProps, children: confirmText })] })] }));
|
|
16
|
+
return (_jsxs(Dialog, { size: size, title: title, open: open, onClose: onClose, ...restProps, children: [description && (_jsx(DialogContent, { children: typeof description === 'string' ? (_jsx(DialogContentText, { children: description })) : (description) })), _jsxs(DialogActions, { children: [isShowCancelButton && (_jsx(CancelButton, { ...restCancelProps, ...cancelButtonProps, className: classNames(actions.cancel?.className, confirmDialogClassnames.cancelButton), children: cancelText })), _jsx(Button, { ...confirmButtonProps, className: classNames(confirmButtonProps.className, confirmDialogClassnames.confirmButton), children: confirmText })] })] }));
|
|
15
17
|
};
|
|
@@ -33,4 +33,4 @@ export type ConfirmDialogProps = {
|
|
|
33
33
|
text: string;
|
|
34
34
|
};
|
|
35
35
|
};
|
|
36
|
-
} & Pick<DialogProps, 'aria-labelledby' | 'aria-describedby' | 'disableBackdropClick' | 'disablePortal' | 'disableScrollLock' | 'hideBackdrop' | 'keepMounted' | 'open' | 'size'>;
|
|
36
|
+
} & Pick<DialogProps, 'aria-labelledby' | 'aria-describedby' | 'disableBackdropClick' | 'disablePortal' | 'disableScrollLock' | 'hideBackdrop' | 'keepMounted' | 'open' | 'size' | 'className'>;
|
|
@@ -5,7 +5,7 @@ export declare const useLogic: ({ profile, menuOrganization }: HeaderProps) => {
|
|
|
5
5
|
isShowProfile: boolean;
|
|
6
6
|
isMobile: boolean;
|
|
7
7
|
isFocusedMode: boolean;
|
|
8
|
-
mobileHeaderPriorityFeature: "
|
|
8
|
+
mobileHeaderPriorityFeature: "profile" | "menuOrg";
|
|
9
9
|
isLoading: boolean;
|
|
10
10
|
collapsedIn: boolean;
|
|
11
11
|
onToggleSidebar: (newValue?: boolean | undefined) => void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { type NewPopoverProps } from './types';
|
|
2
|
-
export declare const NewPopover: ({ children, onClose, isOpen, title, className, style, placement, anchorEl, disablePortal, disableAutoFocus, }: NewPopoverProps) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare const NewPopover: ({ children, onClose, isOpen, title, className, style, placement, anchorEl, disablePortal, disableAutoFocus, hasArrow, }: NewPopoverProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,23 +1,32 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { BottomDrawer } from '../BottomDrawer';
|
|
3
3
|
import { classNames } from '../utils/classNames';
|
|
4
4
|
import { cva } from '../utils/cva';
|
|
5
5
|
import { popoverClassnames } from './constants';
|
|
6
|
-
import { AnimatedWrapper, InnerContainer, StyledMuiPopper } from './styles';
|
|
6
|
+
import { AnimatedWrapper, InnerContainer, PopoverArrow, StyledMuiPopper, } from './styles';
|
|
7
7
|
import { useLogic } from './useLogic';
|
|
8
8
|
const animatedWrapperCva = cva(popoverClassnames.animatedWrapper, {
|
|
9
9
|
variants: {
|
|
10
10
|
isOpen: {
|
|
11
11
|
true: popoverClassnames.animatedWrapperOpen,
|
|
12
12
|
},
|
|
13
|
+
hasArrow: {
|
|
14
|
+
true: popoverClassnames.animatedWrapperHasArrow,
|
|
15
|
+
},
|
|
13
16
|
},
|
|
14
17
|
});
|
|
15
|
-
export const NewPopover = ({ children, onClose, isOpen, title, className, style, placement = 'bottom', anchorEl, disablePortal, disableAutoFocus, }) => {
|
|
16
|
-
const { isMobile, isOpened, shouldRender, handleAnimationEnd, handleClose, setContainerRef, } = useLogic({
|
|
18
|
+
export const NewPopover = ({ children, onClose, isOpen, title, className, style, placement = 'bottom', anchorEl, disablePortal, disableAutoFocus, hasArrow, }) => {
|
|
19
|
+
const { isMobile, isOpened, shouldRender, handleAnimationEnd, handleClose, setContainerRef, setArrowElement, mergedModifiers, } = useLogic({
|
|
20
|
+
isOpen,
|
|
21
|
+
anchorEl,
|
|
22
|
+
onClose,
|
|
23
|
+
disableAutoFocus,
|
|
24
|
+
hasArrow,
|
|
25
|
+
});
|
|
17
26
|
if (isMobile) {
|
|
18
27
|
return (_jsx(BottomDrawer, { title: title, onClose: handleClose, open: isOpened, className: className, style: style, ModalProps: {
|
|
19
28
|
disableAutoFocus,
|
|
20
29
|
}, children: children }));
|
|
21
30
|
}
|
|
22
|
-
return (_jsx(StyledMuiPopper, { className: popoverClassnames.root, open: shouldRender, placement: placement, anchorEl: anchorEl, disablePortal: disablePortal, children:
|
|
31
|
+
return (_jsx(StyledMuiPopper, { className: classNames(popoverClassnames.root, className), style: style, open: shouldRender, placement: placement, anchorEl: anchorEl, disablePortal: disablePortal, modifiers: mergedModifiers, children: _jsxs(AnimatedWrapper, { className: animatedWrapperCva({ isOpen: isOpened, hasArrow }), onAnimationEnd: handleAnimationEnd, children: [hasArrow && (_jsx(PopoverArrow, { ref: setArrowElement, className: popoverClassnames.arrow })), _jsx(InnerContainer, { ref: setContainerRef, tabIndex: -1, className: popoverClassnames.innerContainer, children: children })] }) }));
|
|
23
32
|
};
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
import { type NewPopoverModifier } from './types';
|
|
1
2
|
export declare const popoverClassnames: {
|
|
2
3
|
root: string;
|
|
3
4
|
innerContainer: string;
|
|
4
5
|
animatedWrapper: string;
|
|
5
6
|
animatedWrapperOpen: string;
|
|
7
|
+
animatedWrapperHasArrow: string;
|
|
8
|
+
arrow: string;
|
|
6
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* Базовые модификаторы Popper.js. У MUI Popper (popper.js)
|
|
12
|
+
*/
|
|
13
|
+
export declare const DEFAULT_MODIFIERS: NewPopoverModifier[];
|
|
@@ -4,4 +4,15 @@ export const popoverClassnames = {
|
|
|
4
4
|
innerContainer: createUIKitClassname('popover__inner-container'),
|
|
5
5
|
animatedWrapper: createUIKitClassname('popover__animated-wrapper'),
|
|
6
6
|
animatedWrapperOpen: createUIKitClassname('popover__animated-wrapper_is-open'),
|
|
7
|
+
animatedWrapperHasArrow: createUIKitClassname('popover__animated-wrapper_has-arrow'),
|
|
8
|
+
arrow: createUIKitClassname('popover__arrow'),
|
|
7
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* Базовые модификаторы Popper.js. У MUI Popper (popper.js)
|
|
12
|
+
*/
|
|
13
|
+
export const DEFAULT_MODIFIERS = [
|
|
14
|
+
{
|
|
15
|
+
name: 'preventOverflow',
|
|
16
|
+
options: { altAxis: true, tether: false, padding: 8 },
|
|
17
|
+
},
|
|
18
|
+
];
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
export declare const StyledMuiPopper: import("../styled").StyledComponent<import("@mui/material/Popper").PopperProps & import("react").RefAttributes<HTMLDivElement> & {
|
|
3
3
|
theme?: import("@emotion/react").Theme | undefined;
|
|
4
4
|
}, {}, {}>;
|
|
5
|
+
export declare const PopoverArrow: import("../styled").StyledComponent<{
|
|
6
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
7
|
+
as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
|
|
8
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
5
9
|
export declare const AnimatedWrapper: import("../styled").StyledComponent<{
|
|
6
10
|
theme?: import("@emotion/react").Theme | undefined;
|
|
7
11
|
as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
|
|
@@ -6,6 +6,12 @@ export const StyledMuiPopper = styled(MuiPopper) `
|
|
|
6
6
|
z-index: ${({ theme }) => theme.zIndex.tooltip};
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
+
/* Anchor ушёл за скролл/вьюпорт — popper вешает reference-hidden.
|
|
10
|
+
Стрелка иначе тянется к пропавшему anchor и торчит криво — прячем её. */
|
|
11
|
+
&[data-popper-reference-hidden] .${popoverClassnames.arrow} {
|
|
12
|
+
visibility: hidden;
|
|
13
|
+
}
|
|
14
|
+
|
|
9
15
|
&&[data-popper-placement*='top'] .${popoverClassnames.animatedWrapper} {
|
|
10
16
|
transform-origin: bottom center;
|
|
11
17
|
|
|
@@ -29,16 +35,106 @@ export const StyledMuiPopper = styled(MuiPopper) `
|
|
|
29
35
|
|
|
30
36
|
margin-left: ${({ theme }) => theme.spacing(2)};
|
|
31
37
|
}
|
|
38
|
+
|
|
39
|
+
/* Со стрелкой отступ больше */
|
|
40
|
+
&&[data-popper-placement*='top']
|
|
41
|
+
.${popoverClassnames.animatedWrapperHasArrow} {
|
|
42
|
+
margin-bottom: ${({ theme }) => theme.spacing(4)};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&&[data-popper-placement*='bottom']
|
|
46
|
+
.${popoverClassnames.animatedWrapperHasArrow} {
|
|
47
|
+
margin-top: ${({ theme }) => theme.spacing(4)};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
&&[data-popper-placement*='left']
|
|
51
|
+
.${popoverClassnames.animatedWrapperHasArrow} {
|
|
52
|
+
margin-right: ${({ theme }) => theme.spacing(4)};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
&&[data-popper-placement*='right']
|
|
56
|
+
.${popoverClassnames.animatedWrapperHasArrow} {
|
|
57
|
+
margin-left: ${({ theme }) => theme.spacing(4)};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&&[data-popper-placement*='bottom'] .${popoverClassnames.arrow} {
|
|
61
|
+
top: -16px;
|
|
62
|
+
|
|
63
|
+
width: 23px;
|
|
64
|
+
height: 16px;
|
|
65
|
+
|
|
66
|
+
&::before {
|
|
67
|
+
border-color: transparent transparent
|
|
68
|
+
${({ theme }) => theme.palette.background.paper};
|
|
69
|
+
border-width: 0 11.5px 16px;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
&&[data-popper-placement*='top'] .${popoverClassnames.arrow} {
|
|
74
|
+
bottom: -16px;
|
|
75
|
+
|
|
76
|
+
width: 23px;
|
|
77
|
+
height: 16px;
|
|
78
|
+
|
|
79
|
+
&::before {
|
|
80
|
+
border-color: ${({ theme }) => theme.palette.background.paper} transparent
|
|
81
|
+
transparent;
|
|
82
|
+
border-width: 16px 11.5px 0;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
&&[data-popper-placement*='right'] .${popoverClassnames.arrow} {
|
|
87
|
+
left: -16px;
|
|
88
|
+
|
|
89
|
+
width: 16px;
|
|
90
|
+
height: 23px;
|
|
91
|
+
|
|
92
|
+
&::before {
|
|
93
|
+
border-color: transparent ${({ theme }) => theme.palette.background.paper}
|
|
94
|
+
transparent transparent;
|
|
95
|
+
border-width: 11.5px 16px 11.5px 0;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
&&[data-popper-placement*='left'] .${popoverClassnames.arrow} {
|
|
100
|
+
right: -16px;
|
|
101
|
+
|
|
102
|
+
width: 16px;
|
|
103
|
+
height: 23px;
|
|
104
|
+
|
|
105
|
+
&::before {
|
|
106
|
+
border-color: transparent transparent transparent
|
|
107
|
+
${({ theme }) => theme.palette.background.paper};
|
|
108
|
+
border-width: 11.5px 0 11.5px 16px;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
`;
|
|
112
|
+
export const PopoverArrow = styled.span `
|
|
113
|
+
position: absolute;
|
|
114
|
+
|
|
115
|
+
&::before {
|
|
116
|
+
content: '';
|
|
117
|
+
|
|
118
|
+
display: block;
|
|
119
|
+
|
|
120
|
+
width: 0;
|
|
121
|
+
height: 0;
|
|
122
|
+
margin: auto;
|
|
123
|
+
|
|
124
|
+
border-style: solid;
|
|
125
|
+
}
|
|
32
126
|
`;
|
|
33
127
|
export const AnimatedWrapper = styled.div `
|
|
128
|
+
position: relative;
|
|
129
|
+
|
|
34
130
|
animation: popover-grow-out
|
|
35
|
-
${({ theme }) => theme.transitions.duration.
|
|
36
|
-
${({ theme }) => theme.transitions.easing.
|
|
131
|
+
${({ theme }) => theme.transitions.duration.leavingScreen}ms
|
|
132
|
+
${({ theme }) => theme.transitions.easing.easeIn} forwards;
|
|
37
133
|
|
|
38
134
|
&.${popoverClassnames.animatedWrapperOpen} {
|
|
39
135
|
animation: popover-grow-in
|
|
40
|
-
${({ theme }) => theme.transitions.duration.
|
|
41
|
-
${({ theme }) => theme.transitions.easing.
|
|
136
|
+
${({ theme }) => theme.transitions.duration.standard}ms
|
|
137
|
+
${({ theme }) => theme.transitions.easing.easeOut} forwards;
|
|
42
138
|
}
|
|
43
139
|
|
|
44
140
|
@keyframes popover-grow-in {
|
|
@@ -5,6 +5,14 @@ type NewPopoverVirtualElement = {
|
|
|
5
5
|
getBoundingClientRect: () => DOMRect;
|
|
6
6
|
};
|
|
7
7
|
export type NewPopoverAnchorEl = null | NewPopoverVirtualElement | HTMLElement | (() => HTMLElement) | (() => NewPopoverVirtualElement);
|
|
8
|
+
/**
|
|
9
|
+
* Модификатор Popper.js.
|
|
10
|
+
*/
|
|
11
|
+
export type NewPopoverModifier = {
|
|
12
|
+
name: string;
|
|
13
|
+
enabled?: boolean;
|
|
14
|
+
options?: Record<string, unknown>;
|
|
15
|
+
};
|
|
8
16
|
export type NewPopoverProps = {
|
|
9
17
|
/**
|
|
10
18
|
* Якорь позиционирования
|
|
@@ -49,5 +57,10 @@ export type NewPopoverProps = {
|
|
|
49
57
|
* @default false
|
|
50
58
|
*/
|
|
51
59
|
disableAutoFocus?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Показывать стрелку, указывающую на anchorEl
|
|
62
|
+
* @default false
|
|
63
|
+
*/
|
|
64
|
+
hasArrow?: boolean;
|
|
52
65
|
};
|
|
53
66
|
export {};
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { type NewPopoverModifier, type NewPopoverProps } from '../types';
|
|
3
|
+
type UseLogicParams = Pick<NewPopoverProps, 'isOpen' | 'anchorEl' | 'onClose' | 'disableAutoFocus' | 'hasArrow'>;
|
|
4
|
+
export declare const useLogic: ({ isOpen, anchorEl, onClose, disableAutoFocus, hasArrow, }: UseLogicParams) => {
|
|
4
5
|
isMobile: boolean;
|
|
5
6
|
isOpened: boolean;
|
|
6
7
|
shouldRender: boolean;
|
|
7
8
|
handleAnimationEnd: () => void;
|
|
8
9
|
handleClose: (event: Event) => void;
|
|
9
10
|
setContainerRef: (node: HTMLDivElement | null) => void;
|
|
11
|
+
arrowElement: HTMLSpanElement | null;
|
|
12
|
+
setArrowElement: import("react").Dispatch<import("react").SetStateAction<HTMLSpanElement | null>>;
|
|
13
|
+
mergedModifiers: NewPopoverModifier[];
|
|
10
14
|
};
|
|
11
15
|
export {};
|
|
@@ -4,10 +4,12 @@ import { useEscapeClickEffect } from '../../useEscapeClickEffect';
|
|
|
4
4
|
import { useFocusTrapEffect } from '../../useFocusTrapEffect';
|
|
5
5
|
import { usePopoverAnimation } from '../../usePopoverAnimation';
|
|
6
6
|
import { useViewportType } from '../../useViewportType';
|
|
7
|
+
import { DEFAULT_MODIFIERS } from '../constants';
|
|
7
8
|
import { resolveAnchorNode } from '../utils';
|
|
8
|
-
export const useLogic = ({ isOpen, anchorEl, onClose, disableAutoFocus, }) => {
|
|
9
|
+
export const useLogic = ({ isOpen, anchorEl, onClose, disableAutoFocus, hasArrow, }) => {
|
|
9
10
|
const containerRef = useRef(null);
|
|
10
11
|
const [isContainerMounted, setIsContainerMounted] = useState(false);
|
|
12
|
+
const [arrowElement, setArrowElement] = useState(null);
|
|
11
13
|
const setContainerRef = useCallback((node) => {
|
|
12
14
|
containerRef.current = node;
|
|
13
15
|
setIsContainerMounted(Boolean(node));
|
|
@@ -43,6 +45,15 @@ export const useLogic = ({ isOpen, anchorEl, onClose, disableAutoFocus, }) => {
|
|
|
43
45
|
allowOutsideClick: true,
|
|
44
46
|
fallbackFocus: () => containerRef.current || document.body,
|
|
45
47
|
});
|
|
48
|
+
const mergedModifiers = useMemo(() => {
|
|
49
|
+
if (!hasArrow) {
|
|
50
|
+
return DEFAULT_MODIFIERS;
|
|
51
|
+
}
|
|
52
|
+
return [
|
|
53
|
+
...DEFAULT_MODIFIERS,
|
|
54
|
+
{ name: 'arrow', enabled: true, options: { element: arrowElement } },
|
|
55
|
+
];
|
|
56
|
+
}, [hasArrow, arrowElement]);
|
|
46
57
|
return {
|
|
47
58
|
isMobile,
|
|
48
59
|
isOpened,
|
|
@@ -50,5 +61,8 @@ export const useLogic = ({ isOpen, anchorEl, onClose, disableAutoFocus, }) => {
|
|
|
50
61
|
handleAnimationEnd,
|
|
51
62
|
handleClose,
|
|
52
63
|
setContainerRef,
|
|
64
|
+
arrowElement,
|
|
65
|
+
setArrowElement,
|
|
66
|
+
mergedModifiers,
|
|
53
67
|
};
|
|
54
68
|
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ErrorService } from '../services/ErrorService';
|
|
2
|
+
import { ActiveStepStore } from './core/ActiveStepStore';
|
|
3
|
+
import { OnboardingTour } from './core/OnboardingTour';
|
|
4
|
+
import { type OnboardingConfig, type OnboardingTourConfig, type SaveStrategyFactory, type Step } from './types';
|
|
5
|
+
/**
|
|
6
|
+
* Фасад Onboarding, который собирает туры.
|
|
7
|
+
*
|
|
8
|
+
* Создаётся через createOnboarding.
|
|
9
|
+
*/
|
|
10
|
+
export declare class Onboarding {
|
|
11
|
+
private readonly saveStrategyFactory;
|
|
12
|
+
private readonly errorService;
|
|
13
|
+
readonly activeStepStore: ActiveStepStore;
|
|
14
|
+
constructor(saveStrategyFactory: SaveStrategyFactory, errorService: ErrorService);
|
|
15
|
+
/**
|
|
16
|
+
* Создаёт тур.
|
|
17
|
+
*/
|
|
18
|
+
createTour: <const TSteps extends readonly Step[]>(tourConfig: OnboardingTourConfig<TSteps>) => OnboardingTour<TSteps>;
|
|
19
|
+
/**
|
|
20
|
+
* Закрывает показанный сейчас тур.
|
|
21
|
+
*/
|
|
22
|
+
closeActiveTour: () => void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Создаёт экземпляр онбординга.
|
|
26
|
+
*
|
|
27
|
+
* Экземпляр передаётся контейнеру явно: `<OnboardingContainer onboarding={...}/>`.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* const onboarding = createOnboarding({ saveStrategy });
|
|
31
|
+
* const tour = onboarding.createTour({ name: 'intro', steps: [...] });
|
|
32
|
+
* <OnboardingContainer onboarding={onboarding} />
|
|
33
|
+
* tour.start();
|
|
34
|
+
*/
|
|
35
|
+
export declare const createOnboarding: (config?: OnboardingConfig) => Onboarding;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { createLogger } from '../../services/Logger';
|
|
2
|
+
import { ErrorService } from '../services/ErrorService';
|
|
3
|
+
import { ActiveStepStore } from './core/ActiveStepStore';
|
|
4
|
+
import { OnboardingTour } from './core/OnboardingTour';
|
|
5
|
+
import { ProgressStorage } from './core/ProgressStorage';
|
|
6
|
+
import { createLocalStorageSaveStrategy } from './services/LocalStorageSaveStrategy';
|
|
7
|
+
import { validateTourConfig } from './validation';
|
|
8
|
+
/**
|
|
9
|
+
* Фасад Onboarding, который собирает туры.
|
|
10
|
+
*
|
|
11
|
+
* Создаётся через createOnboarding.
|
|
12
|
+
*/
|
|
13
|
+
export class Onboarding {
|
|
14
|
+
constructor(saveStrategyFactory, errorService) {
|
|
15
|
+
this.saveStrategyFactory = saveStrategyFactory;
|
|
16
|
+
this.errorService = errorService;
|
|
17
|
+
this.activeStepStore = new ActiveStepStore();
|
|
18
|
+
/**
|
|
19
|
+
* Создаёт тур.
|
|
20
|
+
*/
|
|
21
|
+
this.createTour = (tourConfig) => {
|
|
22
|
+
const logger = createLogger('Onboarding', {
|
|
23
|
+
context: { tourName: tourConfig.name },
|
|
24
|
+
});
|
|
25
|
+
// Fail-fast на некорректной конфигурации до сборки тура.
|
|
26
|
+
try {
|
|
27
|
+
validateTourConfig(tourConfig);
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
logger.error('Некорректная конфигурация тура', error);
|
|
31
|
+
throw error;
|
|
32
|
+
}
|
|
33
|
+
// Ключ хранилища уникален на тур, поэтому стратегия строится на createTour.
|
|
34
|
+
const progressStorage = new ProgressStorage(this.saveStrategyFactory(tourConfig.name), logger);
|
|
35
|
+
return new OnboardingTour(tourConfig, progressStorage, this.activeStepStore, this.errorService, logger);
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Закрывает показанный сейчас тур.
|
|
39
|
+
*/
|
|
40
|
+
this.closeActiveTour = () => {
|
|
41
|
+
this.activeStepStore.closeActiveTour();
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Создаёт экземпляр онбординга.
|
|
47
|
+
*
|
|
48
|
+
* Экземпляр передаётся контейнеру явно: `<OnboardingContainer onboarding={...}/>`.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* const onboarding = createOnboarding({ saveStrategy });
|
|
52
|
+
* const tour = onboarding.createTour({ name: 'intro', steps: [...] });
|
|
53
|
+
* <OnboardingContainer onboarding={onboarding} />
|
|
54
|
+
* tour.start();
|
|
55
|
+
*/
|
|
56
|
+
export const createOnboarding = (config = {}) => new Onboarding(config.saveStrategy ?? createLocalStorageSaveStrategy, ErrorService.getInstance());
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* data-атрибут, по которому highlight-шаг находит свой элемент.
|
|
3
|
+
*/
|
|
4
|
+
export declare const TOUR_ID_ATTR = "data-tour-id";
|
|
5
|
+
/**
|
|
6
|
+
* Тайм-аут по умолчанию ожидания элемента highlight-шага в DOM (мс).
|
|
7
|
+
* `0` — элемент ищется синхронно. Ожидание включается только при заданном
|
|
8
|
+
* `waitForTimeout`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const DEFAULT_WAIT_ELEMENT_TIMEOUT_MS = 0;
|
|
11
|
+
/**
|
|
12
|
+
* Базовый отступ hole overlay вокруг подсвечиваемого элемента (px).
|
|
13
|
+
* Применяется, когда у шага не задан `highlightOffset`.
|
|
14
|
+
*/
|
|
15
|
+
export declare const DEFAULT_HIGHLIGHT_PADDING = 8;
|
|
16
|
+
/**
|
|
17
|
+
* Скругление углов hole overlay (px).
|
|
18
|
+
*/
|
|
19
|
+
export declare const DEFAULT_HIGHLIGHT_RADIUS = 8;
|
|
20
|
+
/**
|
|
21
|
+
* Поведение автоскролла к элементу highlight-шага.
|
|
22
|
+
*/
|
|
23
|
+
export declare const SCROLL_BEHAVIOR: ScrollBehavior;
|
|
24
|
+
/**
|
|
25
|
+
* Надбавки к z-index собственных поверхностей онбординга поверх
|
|
26
|
+
* `theme.zIndex.tooltip`, чтобы они перекрывали
|
|
27
|
+
* обычные UIKit-модалки/подсказки.
|
|
28
|
+
*/
|
|
29
|
+
export declare const ONBOARDING_Z_INDEX_OFFSET: {
|
|
30
|
+
/** Overlay-backdrop и диалоги (standalone-шаг, confirm-exit). */
|
|
31
|
+
readonly base: 10;
|
|
32
|
+
/** Highlight-popover — всплывает над базовым слоем. */
|
|
33
|
+
readonly popover: 30;
|
|
34
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* data-атрибут, по которому highlight-шаг находит свой элемент.
|
|
3
|
+
*/
|
|
4
|
+
export const TOUR_ID_ATTR = 'data-tour-id';
|
|
5
|
+
/**
|
|
6
|
+
* Тайм-аут по умолчанию ожидания элемента highlight-шага в DOM (мс).
|
|
7
|
+
* `0` — элемент ищется синхронно. Ожидание включается только при заданном
|
|
8
|
+
* `waitForTimeout`.
|
|
9
|
+
*/
|
|
10
|
+
export const DEFAULT_WAIT_ELEMENT_TIMEOUT_MS = 0;
|
|
11
|
+
/**
|
|
12
|
+
* Базовый отступ hole overlay вокруг подсвечиваемого элемента (px).
|
|
13
|
+
* Применяется, когда у шага не задан `highlightOffset`.
|
|
14
|
+
*/
|
|
15
|
+
export const DEFAULT_HIGHLIGHT_PADDING = 8;
|
|
16
|
+
/**
|
|
17
|
+
* Скругление углов hole overlay (px).
|
|
18
|
+
*/
|
|
19
|
+
export const DEFAULT_HIGHLIGHT_RADIUS = 8;
|
|
20
|
+
/**
|
|
21
|
+
* Поведение автоскролла к элементу highlight-шага.
|
|
22
|
+
*/
|
|
23
|
+
export const SCROLL_BEHAVIOR = 'smooth';
|
|
24
|
+
/**
|
|
25
|
+
* Надбавки к z-index собственных поверхностей онбординга поверх
|
|
26
|
+
* `theme.zIndex.tooltip`, чтобы они перекрывали
|
|
27
|
+
* обычные UIKit-модалки/подсказки.
|
|
28
|
+
*/
|
|
29
|
+
export const ONBOARDING_Z_INDEX_OFFSET = {
|
|
30
|
+
/** Overlay-backdrop и диалоги (standalone-шаг, confirm-exit). */
|
|
31
|
+
base: 10,
|
|
32
|
+
/** Highlight-popover — всплывает над базовым слоем. */
|
|
33
|
+
popover: 30,
|
|
34
|
+
};
|