@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,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getScrollParents = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Является ли элемент scroll-контейнером.
|
|
6
|
+
*/
|
|
7
|
+
const isScrollable = (element) => {
|
|
8
|
+
const { overflow, overflowX, overflowY } = getComputedStyle(element);
|
|
9
|
+
return /(auto|scroll|overlay)/.test(`${overflow}${overflowX}${overflowY}`);
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Возвращает цепочку scroll-предков элемента (от ближайшего к корню).
|
|
13
|
+
*
|
|
14
|
+
* Нужна, чтобы прокручивать вложенные контейнеры и слушать их `scroll`
|
|
15
|
+
* для синхронизации hole overlay.
|
|
16
|
+
*/
|
|
17
|
+
const getScrollParents = (element) => {
|
|
18
|
+
const parents = [];
|
|
19
|
+
let node = element?.parentElement ?? null;
|
|
20
|
+
while (node && node !== document.body && node !== document.documentElement) {
|
|
21
|
+
if (isScrollable(node)) {
|
|
22
|
+
parents.push(node);
|
|
23
|
+
}
|
|
24
|
+
node = node.parentElement;
|
|
25
|
+
}
|
|
26
|
+
return parents;
|
|
27
|
+
};
|
|
28
|
+
exports.getScrollParents = getScrollParents;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { getScrollParents } from './getScrollParents';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getScrollParents = void 0;
|
|
4
|
+
var getScrollParents_1 = require("./getScrollParents");
|
|
5
|
+
Object.defineProperty(exports, "getScrollParents", { enumerable: true, get: function () { return getScrollParents_1.getScrollParents; } });
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTargetElement = void 0;
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
5
|
+
/**
|
|
6
|
+
* Экранирует значение для безопасной подстановки в CSS-селектор атрибута.
|
|
7
|
+
*/
|
|
8
|
+
const escapeAttrValue = (value) => value.replace(/["\\]/g, '\\$&');
|
|
9
|
+
/**
|
|
10
|
+
* Находит элемент highlight-шага по `[data-tour-id="<stepName>"]`.
|
|
11
|
+
*/
|
|
12
|
+
const getTargetElement = (stepName, root = document) => root.querySelector(`[${constants_1.TOUR_ID_ATTR}="${escapeAttrValue(stepName)}"]`);
|
|
13
|
+
exports.getTargetElement = getTargetElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { getTargetElement } from './getTargetElement';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTargetElement = void 0;
|
|
4
|
+
var getTargetElement_1 = require("./getTargetElement");
|
|
5
|
+
Object.defineProperty(exports, "getTargetElement", { enumerable: true, get: function () { return getTargetElement_1.getTargetElement; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './observeRemoval';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./observeRemoval"), exports);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.observeRemoval = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Следит за удалением элемента из DOM (размонтирование, условный render).
|
|
6
|
+
*/
|
|
7
|
+
const observeRemoval = (element, onRemoved) => {
|
|
8
|
+
const observer = new MutationObserver(() => {
|
|
9
|
+
if (!element.isConnected) {
|
|
10
|
+
observer.disconnect();
|
|
11
|
+
onRemoved();
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
observer.observe(document.body, { childList: true, subtree: true });
|
|
15
|
+
return () => observer.disconnect();
|
|
16
|
+
};
|
|
17
|
+
exports.observeRemoval = observeRemoval;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { scrollIntoView } from './scrollIntoView';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.scrollIntoView = void 0;
|
|
4
|
+
var scrollIntoView_1 = require("./scrollIntoView");
|
|
5
|
+
Object.defineProperty(exports, "scrollIntoView", { enumerable: true, get: function () { return scrollIntoView_1.scrollIntoView; } });
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Доводит элемент highlight-шага до центра viewport и ждёт, пока прокрутка
|
|
3
|
+
* реально доедет.
|
|
4
|
+
*
|
|
5
|
+
* Зачем: цель может быть за пределами экрана или внутри прокрученного
|
|
6
|
+
* контейнера — её надо показать, прежде чем подсвечивать. Нативный
|
|
7
|
+
* `scrollIntoView` сам прокручивает всю цепочку вложенных scroll-контейнеров.
|
|
8
|
+
*
|
|
9
|
+
* Почему ждём: прокрутка плавная (анимированная), позиция элемента меняется
|
|
10
|
+
* кадр за кадром. Дожидаемся её стабилизации, чтобы hole overlay и popover встали
|
|
11
|
+
* по финальной позиции, а не по промежуточной «едущей».
|
|
12
|
+
*/
|
|
13
|
+
export declare const scrollIntoView: (element: HTMLElement, behavior?: ScrollBehavior) => Promise<void>;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.scrollIntoView = void 0;
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
5
|
+
const geometry_1 = require("../geometry");
|
|
6
|
+
const getScrollParents_1 = require("../getScrollParents");
|
|
7
|
+
/**
|
|
8
|
+
* Сколько кадров подряд позиция не меняется, чтобы счесть прокрутку стабилизировавшейся.
|
|
9
|
+
*/
|
|
10
|
+
const STABLE_FRAMES = 3;
|
|
11
|
+
/**
|
|
12
|
+
* Предохранитель: если позиция так и не стабилизировалась (постоянные
|
|
13
|
+
* layout-сдвиги), делаем resolve по тайм-ауту, чтобы Promise не завис и тур не застрял.
|
|
14
|
+
*/
|
|
15
|
+
const SETTLE_TIMEOUT_MS = 1000;
|
|
16
|
+
/**
|
|
17
|
+
* Дожидается окончания плавной прокрутки.
|
|
18
|
+
*
|
|
19
|
+
* У браузера нет надёжного сигнала «плавная прокрутка доехала».
|
|
20
|
+
* Поэтому отслеживаем позицию элемента покадрово и считаем прокрутку
|
|
21
|
+
* законченной, когда `top` перестаёт меняться 3 кадра
|
|
22
|
+
* подряд — либо когда срабатывает предохранитель 1000мс.
|
|
23
|
+
*/
|
|
24
|
+
const waitForScrollSettle = (element) => new Promise((resolve) => {
|
|
25
|
+
let raf = 0;
|
|
26
|
+
let stableFrames = 0;
|
|
27
|
+
let prevTop = Number.NaN;
|
|
28
|
+
const timer = setTimeout(() => {
|
|
29
|
+
cancelAnimationFrame(raf);
|
|
30
|
+
resolve();
|
|
31
|
+
}, SETTLE_TIMEOUT_MS);
|
|
32
|
+
const tick = () => {
|
|
33
|
+
const { top } = element.getBoundingClientRect();
|
|
34
|
+
// Позиция не изменилась за кадр — копим «стабильные» кадры; дёрнулась —
|
|
35
|
+
// сбрасываем счётчик и запоминаем новую позицию.
|
|
36
|
+
if (top === prevTop) {
|
|
37
|
+
stableFrames += 1;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
stableFrames = 0;
|
|
41
|
+
prevTop = top;
|
|
42
|
+
}
|
|
43
|
+
// Достаточно кадров без движения → анимация закончилась.
|
|
44
|
+
if (stableFrames >= STABLE_FRAMES) {
|
|
45
|
+
clearTimeout(timer);
|
|
46
|
+
resolve();
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
raf = requestAnimationFrame(tick);
|
|
50
|
+
};
|
|
51
|
+
raf = requestAnimationFrame(tick);
|
|
52
|
+
});
|
|
53
|
+
/**
|
|
54
|
+
* Элемент целиком видим: помещается и во viewport, и в рамки каждого своего
|
|
55
|
+
* scroll-предка.
|
|
56
|
+
*/
|
|
57
|
+
const isFullyVisible = (element) => {
|
|
58
|
+
const rect = element.getBoundingClientRect();
|
|
59
|
+
const { width, height } = (0, geometry_1.getViewport)();
|
|
60
|
+
const viewport = new DOMRect(0, 0, width, height);
|
|
61
|
+
const frames = [
|
|
62
|
+
viewport,
|
|
63
|
+
...(0, getScrollParents_1.getScrollParents)(element).map((parent) => parent.getBoundingClientRect()),
|
|
64
|
+
];
|
|
65
|
+
return frames.every((frame) => rect.top >= frame.top &&
|
|
66
|
+
rect.left >= frame.left &&
|
|
67
|
+
rect.bottom <= frame.bottom &&
|
|
68
|
+
rect.right <= frame.right);
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Доводит элемент highlight-шага до центра viewport и ждёт, пока прокрутка
|
|
72
|
+
* реально доедет.
|
|
73
|
+
*
|
|
74
|
+
* Зачем: цель может быть за пределами экрана или внутри прокрученного
|
|
75
|
+
* контейнера — её надо показать, прежде чем подсвечивать. Нативный
|
|
76
|
+
* `scrollIntoView` сам прокручивает всю цепочку вложенных scroll-контейнеров.
|
|
77
|
+
*
|
|
78
|
+
* Почему ждём: прокрутка плавная (анимированная), позиция элемента меняется
|
|
79
|
+
* кадр за кадром. Дожидаемся её стабилизации, чтобы hole overlay и popover встали
|
|
80
|
+
* по финальной позиции, а не по промежуточной «едущей».
|
|
81
|
+
*/
|
|
82
|
+
const scrollIntoView = async (element, behavior = constants_1.SCROLL_BEHAVIOR) => {
|
|
83
|
+
if (isFullyVisible(element)) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
element.scrollIntoView({ behavior, block: 'center', inline: 'center' });
|
|
87
|
+
await waitForScrollSettle(element);
|
|
88
|
+
};
|
|
89
|
+
exports.scrollIntoView = scrollIntoView;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.waitForElement = void 0;
|
|
4
|
+
var waitForElement_1 = require("./waitForElement");
|
|
5
|
+
Object.defineProperty(exports, "waitForElement", { enumerable: true, get: function () { return waitForElement_1.waitForElement; } });
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type WaitForElementOptions = {
|
|
2
|
+
/**
|
|
3
|
+
* Тайм-аут ожидания, мс. `0` — не ждём: проверяем DOM синхронно и, если
|
|
4
|
+
* элемента нет, сразу делаем reject.
|
|
5
|
+
* @default 0
|
|
6
|
+
*/
|
|
7
|
+
timeout?: number;
|
|
8
|
+
/**
|
|
9
|
+
* Корень для поиска и наблюдения за DOM.
|
|
10
|
+
* @default document
|
|
11
|
+
*/
|
|
12
|
+
root?: Document | HTMLElement;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Дожидается появления элемента highlight-шага в DOM.
|
|
16
|
+
*
|
|
17
|
+
* Если элемент уже есть — синхронный resolve. При `timeout <= 0` ожидание
|
|
18
|
+
* отключено. Иначе подписывается через MutationObserver и resolve при появлении,
|
|
19
|
+
* либо reject по тайм-ауту.
|
|
20
|
+
*/
|
|
21
|
+
export declare const waitForElement: (stepName: string, { timeout, root, }?: WaitForElementOptions) => Promise<HTMLElement>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.waitForElement = void 0;
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
5
|
+
const getTargetElement_1 = require("../getTargetElement");
|
|
6
|
+
/**
|
|
7
|
+
* Дожидается появления элемента highlight-шага в DOM.
|
|
8
|
+
*
|
|
9
|
+
* Если элемент уже есть — синхронный resolve. При `timeout <= 0` ожидание
|
|
10
|
+
* отключено. Иначе подписывается через MutationObserver и resolve при появлении,
|
|
11
|
+
* либо reject по тайм-ауту.
|
|
12
|
+
*/
|
|
13
|
+
const waitForElement = (stepName, { timeout = constants_1.DEFAULT_WAIT_ELEMENT_TIMEOUT_MS, root = document, } = {}) => new Promise((resolve, reject) => {
|
|
14
|
+
const existing = (0, getTargetElement_1.getTargetElement)(stepName, root);
|
|
15
|
+
if (existing) {
|
|
16
|
+
resolve(existing);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
// Ожидание отключено (по умолчанию): элемента в DOM нет — ждать нечего,
|
|
20
|
+
// делаем reject сразу, не подписываясь на мутации.
|
|
21
|
+
if (timeout <= 0) {
|
|
22
|
+
reject(new Error(`Элемент шага "${stepName}" не найден в DOM, а ожидание отключено (waitForTimeout=0). Навесьте data-tour-id через getHighlightProps() либо задайте waitForTimeout, если элемент появляется асинхронно.`));
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const observeRoot = root instanceof Document ? root.body : root;
|
|
26
|
+
let timer;
|
|
27
|
+
const observer = new MutationObserver(() => {
|
|
28
|
+
const element = (0, getTargetElement_1.getTargetElement)(stepName, root);
|
|
29
|
+
if (element) {
|
|
30
|
+
cleanup();
|
|
31
|
+
resolve(element);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
const cleanup = () => {
|
|
35
|
+
observer.disconnect();
|
|
36
|
+
clearTimeout(timer);
|
|
37
|
+
};
|
|
38
|
+
observer.observe(observeRoot, {
|
|
39
|
+
childList: true,
|
|
40
|
+
subtree: true,
|
|
41
|
+
attributes: true,
|
|
42
|
+
attributeFilter: [constants_1.TOUR_ID_ATTR],
|
|
43
|
+
});
|
|
44
|
+
timer = setTimeout(() => {
|
|
45
|
+
cleanup();
|
|
46
|
+
reject(new Error(`Элемент шага "${stepName}" не найден за ${timeout}мс. Убедитесь, что на нём навешен data-tour-id через getHighlightProps().`));
|
|
47
|
+
}, timeout);
|
|
48
|
+
});
|
|
49
|
+
exports.waitForElement = waitForElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { validateTourConfig, OnboardingConfigError, } from './validateTourConfig';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingConfigError = exports.validateTourConfig = void 0;
|
|
4
|
+
var validateTourConfig_1 = require("./validateTourConfig");
|
|
5
|
+
Object.defineProperty(exports, "validateTourConfig", { enumerable: true, get: function () { return validateTourConfig_1.validateTourConfig; } });
|
|
6
|
+
Object.defineProperty(exports, "OnboardingConfigError", { enumerable: true, get: function () { return validateTourConfig_1.OnboardingConfigError; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { validateTourConfig, OnboardingConfigError, } from './validateTourConfig';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingConfigError = exports.validateTourConfig = void 0;
|
|
4
|
+
var validateTourConfig_1 = require("./validateTourConfig");
|
|
5
|
+
Object.defineProperty(exports, "validateTourConfig", { enumerable: true, get: function () { return validateTourConfig_1.validateTourConfig; } });
|
|
6
|
+
Object.defineProperty(exports, "OnboardingConfigError", { enumerable: true, get: function () { return validateTourConfig_1.OnboardingConfigError; } });
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type OnboardingTourConfig, type Step } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Ошибка конфигурации тура
|
|
4
|
+
*/
|
|
5
|
+
export declare class OnboardingConfigError extends Error {
|
|
6
|
+
constructor(errors: unknown);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Проверяет конфигурацию тура и бросает ошибку при нарушениях.
|
|
10
|
+
* Вызывается при создании тура (в `createTour`).
|
|
11
|
+
*/
|
|
12
|
+
export declare const validateTourConfig: <TSteps extends readonly Step[]>(config: OnboardingTourConfig<TSteps>) => void;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.validateTourConfig = exports.OnboardingConfigError = void 0;
|
|
27
|
+
const v = __importStar(require("@astral/validations"));
|
|
28
|
+
/**
|
|
29
|
+
* Имя шага в camelCase.
|
|
30
|
+
* Гарантирует доступ `tour.steps.stepName` и чистый `data-tour-id`.
|
|
31
|
+
*/
|
|
32
|
+
const CAMEL_CASE = /^[a-z][a-zA-Z0-9]*$/;
|
|
33
|
+
/**
|
|
34
|
+
* Правило: имена шагов уникальны в рамках тура.
|
|
35
|
+
*/
|
|
36
|
+
const uniqueStepName = () => v.createRule((steps, ctx) => {
|
|
37
|
+
const seenNames = new Set();
|
|
38
|
+
for (const { name } of steps) {
|
|
39
|
+
if (seenNames.has(name)) {
|
|
40
|
+
return ctx.createError({
|
|
41
|
+
code: 'DUPLICATE_STEP_NAME',
|
|
42
|
+
message: `Имя шага «${name}» не уникально`,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
seenNames.add(name);
|
|
46
|
+
}
|
|
47
|
+
return undefined;
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* Схема валидации конфигурации тура.
|
|
51
|
+
*/
|
|
52
|
+
const tourConfigSchema = v.object({
|
|
53
|
+
name: v.string(v.min(1)),
|
|
54
|
+
steps: v.array(v.min(1), v.arrayItem(v.object({
|
|
55
|
+
name: v.string(v.min(1), v.pattern(CAMEL_CASE, {
|
|
56
|
+
message: 'Имя шага должно быть в camelCase',
|
|
57
|
+
})),
|
|
58
|
+
})), uniqueStepName()),
|
|
59
|
+
});
|
|
60
|
+
/**
|
|
61
|
+
* Ошибка конфигурации тура
|
|
62
|
+
*/
|
|
63
|
+
class OnboardingConfigError extends Error {
|
|
64
|
+
constructor(errors) {
|
|
65
|
+
super(`Некорректная конфигурация тура:\n${JSON.stringify(errors, null, 2)}`);
|
|
66
|
+
this.name = 'OnboardingConfigError';
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.OnboardingConfigError = OnboardingConfigError;
|
|
70
|
+
/**
|
|
71
|
+
* Проверяет конфигурацию тура и бросает ошибку при нарушениях.
|
|
72
|
+
* Вызывается при создании тура (в `createTour`).
|
|
73
|
+
*/
|
|
74
|
+
const validateTourConfig = (config) => {
|
|
75
|
+
const errors = tourConfigSchema(config);
|
|
76
|
+
if (errors) {
|
|
77
|
+
throw new OnboardingConfigError(v.toPrettyError(errors));
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
exports.validateTourConfig = validateTourConfig;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export type LogLevel = 'error' | 'warn' | 'info' | 'debug';
|
|
2
|
+
export type LogThreshold = LogLevel | 'silent';
|
|
3
|
+
export type LogContext = Readonly<Record<string, unknown>>;
|
|
4
|
+
export type LoggerOptions = {
|
|
5
|
+
context?: LogContext;
|
|
6
|
+
};
|
|
7
|
+
export type CreateLoggerOptions = LoggerOptions & {
|
|
8
|
+
name: string;
|
|
9
|
+
level?: LogThreshold;
|
|
10
|
+
};
|
|
11
|
+
export type ConfigureOptions = {
|
|
12
|
+
level?: LogThreshold;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Логгер.
|
|
16
|
+
* Формат логов: `{пакет}: {иконка} [{scope}]: {сообщение}`.
|
|
17
|
+
* */
|
|
18
|
+
export declare class Logger {
|
|
19
|
+
private readonly name;
|
|
20
|
+
private readonly scope;
|
|
21
|
+
private readonly context;
|
|
22
|
+
private readonly parent;
|
|
23
|
+
private level?;
|
|
24
|
+
private readonly console;
|
|
25
|
+
private constructor();
|
|
26
|
+
static create: ({ name, context, level, }: CreateLoggerOptions) => Logger;
|
|
27
|
+
/**
|
|
28
|
+
* Меняет уровень пакета.
|
|
29
|
+
* Без `level` — сброс к env-дефолту.
|
|
30
|
+
* Возвращает функцию отмены — вернёт прежний уровень.
|
|
31
|
+
* */
|
|
32
|
+
configure: (options?: ConfigureOptions) => () => void;
|
|
33
|
+
/** Дочерний логгер: добавляет `scope`, наследует уровень корня. */
|
|
34
|
+
child: (scope: string, options?: LoggerOptions) => Logger;
|
|
35
|
+
/** Дойдёт ли лог такого уровня до консоли. */
|
|
36
|
+
isLevelEnabled: (level: LogLevel) => boolean;
|
|
37
|
+
success: (message: string, ...data: unknown[]) => void;
|
|
38
|
+
info: (message: string, ...data: unknown[]) => void;
|
|
39
|
+
warn: (message: string, ...data: unknown[]) => void;
|
|
40
|
+
debug: (message: string, ...data: unknown[]) => void;
|
|
41
|
+
error: (message: string, ...data: unknown[]) => void;
|
|
42
|
+
/** Свой уровень → уровень родителя по цепочке → env-дефолт. */
|
|
43
|
+
private effectiveLevel;
|
|
44
|
+
private print;
|
|
45
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// biome-ignore-all lint/suspicious/noConsole: Logger — единственная точка вывода в консоль
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Logger = void 0;
|
|
5
|
+
/** Приоритет уровней. Лог виден, если его приоритет ≤ порога. */
|
|
6
|
+
const LOG_LEVEL_PRIORITY = {
|
|
7
|
+
silent: 0,
|
|
8
|
+
error: 1,
|
|
9
|
+
warn: 2,
|
|
10
|
+
info: 3,
|
|
11
|
+
debug: 4,
|
|
12
|
+
};
|
|
13
|
+
/** Порог по умолчанию для каждого окружения. */
|
|
14
|
+
const DEFAULT_LOG_LEVEL_BY_ENV = {
|
|
15
|
+
production: 'error',
|
|
16
|
+
test: 'silent',
|
|
17
|
+
development: 'warn',
|
|
18
|
+
};
|
|
19
|
+
/** Порог для текущего окружения. */
|
|
20
|
+
const getEnvLevel = () => DEFAULT_LOG_LEVEL_BY_ENV[process.env.NODE_ENV ?? 'development'] ?? 'warn';
|
|
21
|
+
/**
|
|
22
|
+
* Логгер.
|
|
23
|
+
* Формат логов: `{пакет}: {иконка} [{scope}]: {сообщение}`.
|
|
24
|
+
* */
|
|
25
|
+
class Logger {
|
|
26
|
+
constructor(name, scope, context, parent, level, console = globalThis.console) {
|
|
27
|
+
this.name = name;
|
|
28
|
+
this.scope = scope;
|
|
29
|
+
this.context = context;
|
|
30
|
+
this.parent = parent;
|
|
31
|
+
this.level = level;
|
|
32
|
+
this.console = console;
|
|
33
|
+
/**
|
|
34
|
+
* Меняет уровень пакета.
|
|
35
|
+
* Без `level` — сброс к env-дефолту.
|
|
36
|
+
* Возвращает функцию отмены — вернёт прежний уровень.
|
|
37
|
+
* */
|
|
38
|
+
this.configure = (options = {}) => {
|
|
39
|
+
const previousLevel = this.level;
|
|
40
|
+
this.level = options.level;
|
|
41
|
+
return () => {
|
|
42
|
+
this.level = previousLevel;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
/** Дочерний логгер: добавляет `scope`, наследует уровень корня. */
|
|
46
|
+
this.child = (scope, options) => {
|
|
47
|
+
return new Logger(this.name,
|
|
48
|
+
// склеиваем scope: `Onboarding` → `Onboarding Tour`.
|
|
49
|
+
this.scope ? `${this.scope} ${scope}` : scope, { ...this.context, ...options?.context }, this, undefined, this.console);
|
|
50
|
+
};
|
|
51
|
+
/** Дойдёт ли лог такого уровня до консоли. */
|
|
52
|
+
this.isLevelEnabled = (level) => LOG_LEVEL_PRIORITY[level] <= LOG_LEVEL_PRIORITY[this.effectiveLevel()];
|
|
53
|
+
this.success = (message, ...data) => this.print('info', '✅', this.console.log, message, data);
|
|
54
|
+
this.info = (message, ...data) => this.print('info', 'ℹ️', this.console.log, message, data);
|
|
55
|
+
this.warn = (message, ...data) => this.print('warn', '⚠️', this.console.warn, message, data);
|
|
56
|
+
this.debug = (message, ...data) => this.print('debug', '🐞', this.console.log, message, data);
|
|
57
|
+
this.error = (message, ...data) => this.print('error', '❌', this.console.error, message, data);
|
|
58
|
+
/** Свой уровень → уровень родителя по цепочке → env-дефолт. */
|
|
59
|
+
this.effectiveLevel = () => this.level ?? this.parent?.effectiveLevel() ?? getEnvLevel();
|
|
60
|
+
this.print = (level, icon, sink, message, data) => {
|
|
61
|
+
if (!this.isLevelEnabled(level)) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const prefix = this.name ? `${this.name}: ` : '';
|
|
65
|
+
const scope = this.scope ? ` [${this.scope}]:` : '';
|
|
66
|
+
const withContext = Object.keys(this.context).length === 0 ? data : [...data, this.context];
|
|
67
|
+
sink(`${prefix}${icon}${scope} ${message}`, ...withContext);
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.Logger = Logger;
|
|
72
|
+
Logger.create = ({ name, context = {}, level, }) => new Logger(name, undefined, { ...context }, null, level);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Logger, type ConfigureOptions, type CreateLoggerOptions, type LogContext, type LoggerOptions, type LogLevel, type LogThreshold } from './Logger';
|
|
2
|
+
export { Logger, type ConfigureOptions, type CreateLoggerOptions, type LogContext, type LoggerOptions, type LogLevel, type LogThreshold, };
|
|
3
|
+
/**
|
|
4
|
+
* Фабрика Logger для `@astral/ui`: сервисы и компоненты получают инстанс через DI.
|
|
5
|
+
*/
|
|
6
|
+
export declare const createLogger: (scope: string, options?: LoggerOptions) => Logger;
|
|
7
|
+
/**
|
|
8
|
+
* (Пере)-Настройка логгера пакета `@astral/ui` — вызывает `ConfigProvider`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const configureLogger: (options?: ConfigureOptions) => () => void;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.configureLogger = exports.createLogger = exports.Logger = void 0;
|
|
4
|
+
const Logger_1 = require("./Logger");
|
|
5
|
+
Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return Logger_1.Logger; } });
|
|
6
|
+
// Корневой логгер пакета @astral/ui.
|
|
7
|
+
const uiLogger = Logger_1.Logger.create({ name: '@astral/ui' });
|
|
8
|
+
/**
|
|
9
|
+
* Фабрика Logger для `@astral/ui`: сервисы и компоненты получают инстанс через DI.
|
|
10
|
+
*/
|
|
11
|
+
const createLogger = (scope, options) => uiLogger.child(scope, options);
|
|
12
|
+
exports.createLogger = createLogger;
|
|
13
|
+
/**
|
|
14
|
+
* (Пере)-Настройка логгера пакета `@astral/ui` — вызывает `ConfigProvider`.
|
|
15
|
+
*/
|
|
16
|
+
const configureLogger = (options) => uiLogger.configure(options);
|
|
17
|
+
exports.configureLogger = configureLogger;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astral/ui",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.84.0",
|
|
4
4
|
"browser": "./index.js",
|
|
5
5
|
"main": "./node/index.js",
|
|
6
6
|
"dependencies": {
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
"remeda": "^1.61.0",
|
|
25
25
|
"react-pdf": "9.2.1",
|
|
26
26
|
"react-hook-form": "^7.66.1",
|
|
27
|
-
"focus-trap": "^7.8.0"
|
|
27
|
+
"focus-trap": "^7.8.0",
|
|
28
|
+
"use-sync-external-store": "^1.6.0"
|
|
28
29
|
},
|
|
29
30
|
"peerDependencies": {
|
|
30
31
|
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export type LogLevel = 'error' | 'warn' | 'info' | 'debug';
|
|
2
|
+
export type LogThreshold = LogLevel | 'silent';
|
|
3
|
+
export type LogContext = Readonly<Record<string, unknown>>;
|
|
4
|
+
export type LoggerOptions = {
|
|
5
|
+
context?: LogContext;
|
|
6
|
+
};
|
|
7
|
+
export type CreateLoggerOptions = LoggerOptions & {
|
|
8
|
+
name: string;
|
|
9
|
+
level?: LogThreshold;
|
|
10
|
+
};
|
|
11
|
+
export type ConfigureOptions = {
|
|
12
|
+
level?: LogThreshold;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Логгер.
|
|
16
|
+
* Формат логов: `{пакет}: {иконка} [{scope}]: {сообщение}`.
|
|
17
|
+
* */
|
|
18
|
+
export declare class Logger {
|
|
19
|
+
private readonly name;
|
|
20
|
+
private readonly scope;
|
|
21
|
+
private readonly context;
|
|
22
|
+
private readonly parent;
|
|
23
|
+
private level?;
|
|
24
|
+
private readonly console;
|
|
25
|
+
private constructor();
|
|
26
|
+
static create: ({ name, context, level, }: CreateLoggerOptions) => Logger;
|
|
27
|
+
/**
|
|
28
|
+
* Меняет уровень пакета.
|
|
29
|
+
* Без `level` — сброс к env-дефолту.
|
|
30
|
+
* Возвращает функцию отмены — вернёт прежний уровень.
|
|
31
|
+
* */
|
|
32
|
+
configure: (options?: ConfigureOptions) => () => void;
|
|
33
|
+
/** Дочерний логгер: добавляет `scope`, наследует уровень корня. */
|
|
34
|
+
child: (scope: string, options?: LoggerOptions) => Logger;
|
|
35
|
+
/** Дойдёт ли лог такого уровня до консоли. */
|
|
36
|
+
isLevelEnabled: (level: LogLevel) => boolean;
|
|
37
|
+
success: (message: string, ...data: unknown[]) => void;
|
|
38
|
+
info: (message: string, ...data: unknown[]) => void;
|
|
39
|
+
warn: (message: string, ...data: unknown[]) => void;
|
|
40
|
+
debug: (message: string, ...data: unknown[]) => void;
|
|
41
|
+
error: (message: string, ...data: unknown[]) => void;
|
|
42
|
+
/** Свой уровень → уровень родителя по цепочке → env-дефолт. */
|
|
43
|
+
private effectiveLevel;
|
|
44
|
+
private print;
|
|
45
|
+
}
|