@astral/ui 4.81.0 → 4.83.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (457) hide show
  1. package/components/ConfirmDialog/ConfirmDialog.js +3 -1
  2. package/components/ConfirmDialog/constants.d.ts +4 -0
  3. package/components/ConfirmDialog/constants.js +5 -0
  4. package/components/ConfirmDialog/index.d.ts +1 -0
  5. package/components/ConfirmDialog/index.js +1 -0
  6. package/components/ConfirmDialog/public.d.ts +1 -0
  7. package/components/ConfirmDialog/public.js +1 -0
  8. package/components/ConfirmDialog/types.d.ts +1 -1
  9. package/components/NewPopover/NewPopover.d.ts +1 -1
  10. package/components/NewPopover/NewPopover.js +14 -5
  11. package/components/NewPopover/constants.d.ts +7 -0
  12. package/components/NewPopover/constants.js +11 -0
  13. package/components/NewPopover/styles.d.ts +4 -0
  14. package/components/NewPopover/styles.js +100 -4
  15. package/components/NewPopover/types.d.ts +13 -0
  16. package/components/NewPopover/useLogic/useLogic.d.ts +7 -3
  17. package/components/NewPopover/useLogic/useLogic.js +15 -1
  18. package/components/Onboarding/Onboarding.d.ts +35 -0
  19. package/components/Onboarding/Onboarding.js +46 -0
  20. package/components/Onboarding/constants.d.ts +34 -0
  21. package/components/Onboarding/constants.js +34 -0
  22. package/components/Onboarding/core/ActiveStepStore/ActiveStepStore.d.ts +50 -0
  23. package/components/Onboarding/core/ActiveStepStore/ActiveStepStore.js +63 -0
  24. package/components/Onboarding/core/ActiveStepStore/index.d.ts +1 -0
  25. package/components/Onboarding/core/ActiveStepStore/index.js +1 -0
  26. package/components/Onboarding/core/ExitController/ExitController.d.ts +46 -0
  27. package/components/Onboarding/core/ExitController/ExitController.js +56 -0
  28. package/components/Onboarding/core/ExitController/index.d.ts +1 -0
  29. package/components/Onboarding/core/ExitController/index.js +1 -0
  30. package/components/Onboarding/core/OnboardingTour/OnboardingTour.d.ts +101 -0
  31. package/components/Onboarding/core/OnboardingTour/OnboardingTour.js +262 -0
  32. package/components/Onboarding/core/OnboardingTour/index.d.ts +1 -0
  33. package/components/Onboarding/core/OnboardingTour/index.js +1 -0
  34. package/components/Onboarding/core/ProgressStorage/ProgressStorage.d.ts +22 -0
  35. package/components/Onboarding/core/ProgressStorage/ProgressStorage.js +58 -0
  36. package/components/Onboarding/core/ProgressStorage/index.d.ts +1 -0
  37. package/components/Onboarding/core/ProgressStorage/index.js +1 -0
  38. package/components/Onboarding/core/StepNavigator/StepNavigator.d.ts +28 -0
  39. package/components/Onboarding/core/StepNavigator/StepNavigator.js +73 -0
  40. package/components/Onboarding/core/StepNavigator/index.d.ts +1 -0
  41. package/components/Onboarding/core/StepNavigator/index.js +1 -0
  42. package/components/Onboarding/core/StepResolver/StepResolver.d.ts +19 -0
  43. package/components/Onboarding/core/StepResolver/StepResolver.js +49 -0
  44. package/components/Onboarding/core/StepResolver/index.d.ts +1 -0
  45. package/components/Onboarding/core/StepResolver/index.js +1 -0
  46. package/components/Onboarding/core/StepsController/StepsController.d.ts +16 -0
  47. package/components/Onboarding/core/StepsController/StepsController.js +35 -0
  48. package/components/Onboarding/core/StepsController/index.d.ts +1 -0
  49. package/components/Onboarding/core/StepsController/index.js +1 -0
  50. package/components/Onboarding/faker.d.ts +27 -0
  51. package/components/Onboarding/faker.js +79 -0
  52. package/components/Onboarding/index.d.ts +5 -0
  53. package/components/Onboarding/index.js +3 -0
  54. package/components/Onboarding/public.d.ts +5 -0
  55. package/components/Onboarding/public.js +3 -0
  56. package/components/Onboarding/services/LocalStorageSaveStrategy/LocalStorageSaveStrategy.d.ts +20 -0
  57. package/components/Onboarding/services/LocalStorageSaveStrategy/LocalStorageSaveStrategy.js +24 -0
  58. package/components/Onboarding/services/LocalStorageSaveStrategy/index.d.ts +1 -0
  59. package/components/Onboarding/services/LocalStorageSaveStrategy/index.js +1 -0
  60. package/components/Onboarding/types/config.d.ts +18 -0
  61. package/components/Onboarding/types/config.js +1 -0
  62. package/components/Onboarding/types/index.d.ts +4 -0
  63. package/components/Onboarding/types/index.js +4 -0
  64. package/components/Onboarding/types/progress.d.ts +28 -0
  65. package/components/Onboarding/types/progress.js +1 -0
  66. package/components/Onboarding/types/step.d.ts +144 -0
  67. package/components/Onboarding/types/step.js +1 -0
  68. package/components/Onboarding/types/tour.d.ts +168 -0
  69. package/components/Onboarding/types/tour.js +1 -0
  70. package/components/Onboarding/ui/ConfirmExit/ConfirmExit.d.ts +10 -0
  71. package/components/Onboarding/ui/ConfirmExit/ConfirmExit.js +6 -0
  72. package/components/Onboarding/ui/ConfirmExit/index.d.ts +2 -0
  73. package/components/Onboarding/ui/ConfirmExit/index.js +1 -0
  74. package/components/Onboarding/ui/ConfirmExit/styles.d.ts +30 -0
  75. package/components/Onboarding/ui/ConfirmExit/styles.js +11 -0
  76. package/components/Onboarding/ui/OnboardingContainer/OnboardingContainer.d.ts +12 -0
  77. package/components/Onboarding/ui/OnboardingContainer/OnboardingContainer.js +15 -0
  78. package/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/OnboardingErrorBoundary.d.ts +22 -0
  79. package/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/OnboardingErrorBoundary.js +20 -0
  80. package/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/index.d.ts +2 -0
  81. package/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/index.js +1 -0
  82. package/components/Onboarding/ui/OnboardingContainer/index.d.ts +1 -0
  83. package/components/Onboarding/ui/OnboardingContainer/index.js +1 -0
  84. package/components/Onboarding/ui/OnboardingContainer/useLogic/index.d.ts +1 -0
  85. package/components/Onboarding/ui/OnboardingContainer/useLogic/index.js +1 -0
  86. package/components/Onboarding/ui/OnboardingContainer/useLogic/useLogic.d.ts +10 -0
  87. package/components/Onboarding/ui/OnboardingContainer/useLogic/useLogic.js +14 -0
  88. package/components/Onboarding/ui/Overlay/Overlay.d.ts +29 -0
  89. package/components/Onboarding/ui/Overlay/Overlay.js +24 -0
  90. package/components/Onboarding/ui/Overlay/constants.d.ts +7 -0
  91. package/components/Onboarding/ui/Overlay/constants.js +8 -0
  92. package/components/Onboarding/ui/Overlay/index.d.ts +2 -0
  93. package/components/Onboarding/ui/Overlay/index.js +1 -0
  94. package/components/Onboarding/ui/Overlay/styles.d.ts +22 -0
  95. package/components/Onboarding/ui/Overlay/styles.js +57 -0
  96. package/components/Onboarding/ui/Overlay/useLogic/index.d.ts +1 -0
  97. package/components/Onboarding/ui/Overlay/useLogic/index.js +1 -0
  98. package/components/Onboarding/ui/Overlay/useLogic/useLogic.d.ts +13 -0
  99. package/components/Onboarding/ui/Overlay/useLogic/useLogic.js +10 -0
  100. package/components/Onboarding/ui/StepStrategy/StepStrategy.d.ts +6 -0
  101. package/components/Onboarding/ui/StepStrategy/StepStrategy.js +17 -0
  102. package/components/Onboarding/ui/StepStrategy/index.d.ts +1 -0
  103. package/components/Onboarding/ui/StepStrategy/index.js +1 -0
  104. package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/HighlightStep.d.ts +6 -0
  105. package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/HighlightStep.js +19 -0
  106. package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/index.d.ts +2 -0
  107. package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/index.js +1 -0
  108. package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/styles.d.ts +25 -0
  109. package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/styles.js +56 -0
  110. package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/index.d.ts +1 -0
  111. package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/index.js +1 -0
  112. package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/useLogic.d.ts +12 -0
  113. package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/useLogic.js +37 -0
  114. package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/StandaloneStep.d.ts +6 -0
  115. package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/StandaloneStep.js +11 -0
  116. package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/index.d.ts +2 -0
  117. package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/index.js +1 -0
  118. package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/styles.d.ts +13 -0
  119. package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/styles.js +9 -0
  120. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/ProgressDots.d.ts +6 -0
  121. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/ProgressDots.js +15 -0
  122. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/constants.d.ts +4 -0
  123. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/constants.js +5 -0
  124. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/index.d.ts +2 -0
  125. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/index.js +1 -0
  126. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/styles.d.ts +9 -0
  127. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/styles.js +34 -0
  128. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/StepFooter.d.ts +9 -0
  129. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/StepFooter.js +18 -0
  130. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/constants.d.ts +4 -0
  131. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/constants.js +4 -0
  132. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/index.d.ts +2 -0
  133. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/index.js +1 -0
  134. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/styles.d.ts +21 -0
  135. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/styles.js +28 -0
  136. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/index.d.ts +1 -0
  137. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/index.js +1 -0
  138. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/useLogic.d.ts +16 -0
  139. package/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/useLogic.js +22 -0
  140. package/components/Onboarding/ui/StepStrategy/steps/types.d.ts +16 -0
  141. package/components/Onboarding/ui/StepStrategy/steps/types.js +1 -0
  142. package/components/Onboarding/ui/StepStrategy/useLogic/index.d.ts +1 -0
  143. package/components/Onboarding/ui/StepStrategy/useLogic/index.js +1 -0
  144. package/components/Onboarding/ui/StepStrategy/useLogic/useLogic.d.ts +47 -0
  145. package/components/Onboarding/ui/StepStrategy/useLogic/useLogic.js +51 -0
  146. package/components/Onboarding/ui/hooks/useActiveStep/index.d.ts +1 -0
  147. package/components/Onboarding/ui/hooks/useActiveStep/index.js +1 -0
  148. package/components/Onboarding/ui/hooks/useActiveStep/useActiveStep.d.ts +6 -0
  149. package/components/Onboarding/ui/hooks/useActiveStep/useActiveStep.js +7 -0
  150. package/components/Onboarding/ui/hooks/useDelayedActiveStep/index.d.ts +1 -0
  151. package/components/Onboarding/ui/hooks/useDelayedActiveStep/index.js +1 -0
  152. package/components/Onboarding/ui/hooks/useDelayedActiveStep/useDelayedActiveStep.d.ts +15 -0
  153. package/components/Onboarding/ui/hooks/useDelayedActiveStep/useDelayedActiveStep.js +19 -0
  154. package/components/Onboarding/ui/hooks/useFocusTrap/index.d.ts +1 -0
  155. package/components/Onboarding/ui/hooks/useFocusTrap/index.js +1 -0
  156. package/components/Onboarding/ui/hooks/useFocusTrap/useFocusTrap.d.ts +6 -0
  157. package/components/Onboarding/ui/hooks/useFocusTrap/useFocusTrap.js +33 -0
  158. package/components/Onboarding/ui/hooks/useKeyboardNav/index.d.ts +1 -0
  159. package/components/Onboarding/ui/hooks/useKeyboardNav/index.js +1 -0
  160. package/components/Onboarding/ui/hooks/useKeyboardNav/useKeyboardNav.d.ts +11 -0
  161. package/components/Onboarding/ui/hooks/useKeyboardNav/useKeyboardNav.js +62 -0
  162. package/components/Onboarding/ui/hooks/useStepTransition/index.d.ts +1 -0
  163. package/components/Onboarding/ui/hooks/useStepTransition/index.js +1 -0
  164. package/components/Onboarding/ui/hooks/useStepTransition/useStepTransition.d.ts +30 -0
  165. package/components/Onboarding/ui/hooks/useStepTransition/useStepTransition.js +46 -0
  166. package/components/Onboarding/ui/hooks/useTargetAnchor/index.d.ts +1 -0
  167. package/components/Onboarding/ui/hooks/useTargetAnchor/index.js +1 -0
  168. package/components/Onboarding/ui/hooks/useTargetAnchor/useTargetAnchor.d.ts +37 -0
  169. package/components/Onboarding/ui/hooks/useTargetAnchor/useTargetAnchor.js +56 -0
  170. package/components/Onboarding/ui/hooks/useTrackedRect/index.d.ts +1 -0
  171. package/components/Onboarding/ui/hooks/useTrackedRect/index.js +1 -0
  172. package/components/Onboarding/ui/hooks/useTrackedRect/useTrackedRect.d.ts +5 -0
  173. package/components/Onboarding/ui/hooks/useTrackedRect/useTrackedRect.js +43 -0
  174. package/components/Onboarding/ui/hooks/useViewportSize/index.d.ts +1 -0
  175. package/components/Onboarding/ui/hooks/useViewportSize/index.js +1 -0
  176. package/components/Onboarding/ui/hooks/useViewportSize/useViewportSize.d.ts +5 -0
  177. package/components/Onboarding/ui/hooks/useViewportSize/useViewportSize.js +14 -0
  178. package/components/Onboarding/ui/styles.d.ts +5 -0
  179. package/components/Onboarding/ui/styles.js +15 -0
  180. package/components/Onboarding/utils/createVirtualAnchor/createVirtualAnchor.d.ts +12 -0
  181. package/components/Onboarding/utils/createVirtualAnchor/createVirtualAnchor.js +6 -0
  182. package/components/Onboarding/utils/createVirtualAnchor/index.d.ts +1 -0
  183. package/components/Onboarding/utils/createVirtualAnchor/index.js +1 -0
  184. package/components/Onboarding/utils/geometry/index.d.ts +4 -0
  185. package/components/Onboarding/utils/geometry/index.js +4 -0
  186. package/components/Onboarding/utils/geometry/overlayPath/index.d.ts +1 -0
  187. package/components/Onboarding/utils/geometry/overlayPath/index.js +1 -0
  188. package/components/Onboarding/utils/geometry/overlayPath/overlayPath.d.ts +6 -0
  189. package/components/Onboarding/utils/geometry/overlayPath/overlayPath.js +29 -0
  190. package/components/Onboarding/utils/geometry/parseOffset/index.d.ts +1 -0
  191. package/components/Onboarding/utils/geometry/parseOffset/index.js +1 -0
  192. package/components/Onboarding/utils/geometry/parseOffset/parseOffset.d.ts +4 -0
  193. package/components/Onboarding/utils/geometry/parseOffset/parseOffset.js +5 -0
  194. package/components/Onboarding/utils/geometry/rect/index.d.ts +2 -0
  195. package/components/Onboarding/utils/geometry/rect/index.js +1 -0
  196. package/components/Onboarding/utils/geometry/rect/rect.d.ts +34 -0
  197. package/components/Onboarding/utils/geometry/rect/rect.js +60 -0
  198. package/components/Onboarding/utils/geometry/viewport/index.d.ts +2 -0
  199. package/components/Onboarding/utils/geometry/viewport/index.js +1 -0
  200. package/components/Onboarding/utils/geometry/viewport/viewport.d.ts +14 -0
  201. package/components/Onboarding/utils/geometry/viewport/viewport.js +10 -0
  202. package/components/Onboarding/utils/getScrollParents/getScrollParents.d.ts +7 -0
  203. package/components/Onboarding/utils/getScrollParents/getScrollParents.js +24 -0
  204. package/components/Onboarding/utils/getScrollParents/index.d.ts +1 -0
  205. package/components/Onboarding/utils/getScrollParents/index.js +1 -0
  206. package/components/Onboarding/utils/getTargetElement/getTargetElement.d.ts +4 -0
  207. package/components/Onboarding/utils/getTargetElement/getTargetElement.js +9 -0
  208. package/components/Onboarding/utils/getTargetElement/index.d.ts +1 -0
  209. package/components/Onboarding/utils/getTargetElement/index.js +1 -0
  210. package/components/Onboarding/utils/observeRemoval/index.d.ts +1 -0
  211. package/components/Onboarding/utils/observeRemoval/index.js +1 -0
  212. package/components/Onboarding/utils/observeRemoval/observeRemoval.d.ts +4 -0
  213. package/components/Onboarding/utils/observeRemoval/observeRemoval.js +13 -0
  214. package/components/Onboarding/utils/scrollIntoView/index.d.ts +1 -0
  215. package/components/Onboarding/utils/scrollIntoView/index.js +1 -0
  216. package/components/Onboarding/utils/scrollIntoView/scrollIntoView.d.ts +13 -0
  217. package/components/Onboarding/utils/scrollIntoView/scrollIntoView.js +85 -0
  218. package/components/Onboarding/utils/waitForElement/index.d.ts +2 -0
  219. package/components/Onboarding/utils/waitForElement/index.js +1 -0
  220. package/components/Onboarding/utils/waitForElement/waitForElement.d.ts +21 -0
  221. package/components/Onboarding/utils/waitForElement/waitForElement.js +45 -0
  222. package/components/Onboarding/validation/index.d.ts +1 -0
  223. package/components/Onboarding/validation/index.js +1 -0
  224. package/components/Onboarding/validation/validateTourConfig/index.d.ts +1 -0
  225. package/components/Onboarding/validation/validateTourConfig/index.js +1 -0
  226. package/components/Onboarding/validation/validateTourConfig/validateTourConfig.d.ts +12 -0
  227. package/components/Onboarding/validation/validateTourConfig/validateTourConfig.js +52 -0
  228. package/components/TagsList/Tag/Tag.js +3 -2
  229. package/node/components/ConfirmDialog/ConfirmDialog.js +3 -1
  230. package/node/components/ConfirmDialog/constants.d.ts +4 -0
  231. package/node/components/ConfirmDialog/constants.js +8 -0
  232. package/node/components/ConfirmDialog/index.d.ts +1 -0
  233. package/node/components/ConfirmDialog/index.js +3 -0
  234. package/node/components/ConfirmDialog/public.d.ts +1 -0
  235. package/node/components/ConfirmDialog/public.js +3 -0
  236. package/node/components/ConfirmDialog/types.d.ts +1 -1
  237. package/node/components/NewPopover/NewPopover.d.ts +1 -1
  238. package/node/components/NewPopover/NewPopover.js +12 -3
  239. package/node/components/NewPopover/constants.d.ts +7 -0
  240. package/node/components/NewPopover/constants.js +12 -1
  241. package/node/components/NewPopover/styles.d.ts +4 -0
  242. package/node/components/NewPopover/styles.js +101 -5
  243. package/node/components/NewPopover/types.d.ts +13 -0
  244. package/node/components/NewPopover/useLogic/useLogic.d.ts +7 -3
  245. package/node/components/NewPopover/useLogic/useLogic.js +15 -1
  246. package/node/components/Onboarding/Onboarding.d.ts +35 -0
  247. package/node/components/Onboarding/Onboarding.js +51 -0
  248. package/node/components/Onboarding/constants.d.ts +34 -0
  249. package/node/components/Onboarding/constants.js +37 -0
  250. package/node/components/Onboarding/core/ActiveStepStore/ActiveStepStore.d.ts +50 -0
  251. package/node/components/Onboarding/core/ActiveStepStore/ActiveStepStore.js +67 -0
  252. package/node/components/Onboarding/core/ActiveStepStore/index.d.ts +1 -0
  253. package/node/components/Onboarding/core/ActiveStepStore/index.js +17 -0
  254. package/node/components/Onboarding/core/ExitController/ExitController.d.ts +46 -0
  255. package/node/components/Onboarding/core/ExitController/ExitController.js +60 -0
  256. package/node/components/Onboarding/core/ExitController/index.d.ts +1 -0
  257. package/node/components/Onboarding/core/ExitController/index.js +17 -0
  258. package/node/components/Onboarding/core/OnboardingTour/OnboardingTour.d.ts +101 -0
  259. package/node/components/Onboarding/core/OnboardingTour/OnboardingTour.js +266 -0
  260. package/node/components/Onboarding/core/OnboardingTour/index.d.ts +1 -0
  261. package/node/components/Onboarding/core/OnboardingTour/index.js +5 -0
  262. package/node/components/Onboarding/core/ProgressStorage/ProgressStorage.d.ts +22 -0
  263. package/node/components/Onboarding/core/ProgressStorage/ProgressStorage.js +62 -0
  264. package/node/components/Onboarding/core/ProgressStorage/index.d.ts +1 -0
  265. package/node/components/Onboarding/core/ProgressStorage/index.js +17 -0
  266. package/node/components/Onboarding/core/StepNavigator/StepNavigator.d.ts +28 -0
  267. package/node/components/Onboarding/core/StepNavigator/StepNavigator.js +77 -0
  268. package/node/components/Onboarding/core/StepNavigator/index.d.ts +1 -0
  269. package/node/components/Onboarding/core/StepNavigator/index.js +17 -0
  270. package/node/components/Onboarding/core/StepResolver/StepResolver.d.ts +19 -0
  271. package/node/components/Onboarding/core/StepResolver/StepResolver.js +53 -0
  272. package/node/components/Onboarding/core/StepResolver/index.d.ts +1 -0
  273. package/node/components/Onboarding/core/StepResolver/index.js +17 -0
  274. package/node/components/Onboarding/core/StepsController/StepsController.d.ts +16 -0
  275. package/node/components/Onboarding/core/StepsController/StepsController.js +39 -0
  276. package/node/components/Onboarding/core/StepsController/index.d.ts +1 -0
  277. package/node/components/Onboarding/core/StepsController/index.js +17 -0
  278. package/node/components/Onboarding/faker.d.ts +27 -0
  279. package/node/components/Onboarding/faker.js +88 -0
  280. package/node/components/Onboarding/index.d.ts +5 -0
  281. package/node/components/Onboarding/index.js +9 -0
  282. package/node/components/Onboarding/public.d.ts +5 -0
  283. package/node/components/Onboarding/public.js +9 -0
  284. package/node/components/Onboarding/services/LocalStorageSaveStrategy/LocalStorageSaveStrategy.d.ts +20 -0
  285. package/node/components/Onboarding/services/LocalStorageSaveStrategy/LocalStorageSaveStrategy.js +29 -0
  286. package/node/components/Onboarding/services/LocalStorageSaveStrategy/index.d.ts +1 -0
  287. package/node/components/Onboarding/services/LocalStorageSaveStrategy/index.js +17 -0
  288. package/node/components/Onboarding/types/config.d.ts +18 -0
  289. package/node/components/Onboarding/types/config.js +2 -0
  290. package/node/components/Onboarding/types/index.d.ts +4 -0
  291. package/node/components/Onboarding/types/index.js +20 -0
  292. package/node/components/Onboarding/types/progress.d.ts +28 -0
  293. package/node/components/Onboarding/types/progress.js +2 -0
  294. package/node/components/Onboarding/types/step.d.ts +144 -0
  295. package/node/components/Onboarding/types/step.js +2 -0
  296. package/node/components/Onboarding/types/tour.d.ts +168 -0
  297. package/node/components/Onboarding/types/tour.js +2 -0
  298. package/node/components/Onboarding/ui/ConfirmExit/ConfirmExit.d.ts +10 -0
  299. package/node/components/Onboarding/ui/ConfirmExit/ConfirmExit.js +10 -0
  300. package/node/components/Onboarding/ui/ConfirmExit/index.d.ts +2 -0
  301. package/node/components/Onboarding/ui/ConfirmExit/index.js +5 -0
  302. package/node/components/Onboarding/ui/ConfirmExit/styles.d.ts +30 -0
  303. package/node/components/Onboarding/ui/ConfirmExit/styles.js +14 -0
  304. package/node/components/Onboarding/ui/OnboardingContainer/OnboardingContainer.d.ts +12 -0
  305. package/node/components/Onboarding/ui/OnboardingContainer/OnboardingContainer.js +19 -0
  306. package/node/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/OnboardingErrorBoundary.d.ts +22 -0
  307. package/node/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/OnboardingErrorBoundary.js +24 -0
  308. package/node/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/index.d.ts +2 -0
  309. package/node/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/index.js +5 -0
  310. package/node/components/Onboarding/ui/OnboardingContainer/index.d.ts +1 -0
  311. package/node/components/Onboarding/ui/OnboardingContainer/index.js +5 -0
  312. package/node/components/Onboarding/ui/OnboardingContainer/useLogic/index.d.ts +1 -0
  313. package/node/components/Onboarding/ui/OnboardingContainer/useLogic/index.js +5 -0
  314. package/node/components/Onboarding/ui/OnboardingContainer/useLogic/useLogic.d.ts +10 -0
  315. package/node/components/Onboarding/ui/OnboardingContainer/useLogic/useLogic.js +18 -0
  316. package/node/components/Onboarding/ui/Overlay/Overlay.d.ts +29 -0
  317. package/node/components/Onboarding/ui/Overlay/Overlay.js +28 -0
  318. package/node/components/Onboarding/ui/Overlay/constants.d.ts +7 -0
  319. package/node/components/Onboarding/ui/Overlay/constants.js +11 -0
  320. package/node/components/Onboarding/ui/Overlay/index.d.ts +2 -0
  321. package/node/components/Onboarding/ui/Overlay/index.js +5 -0
  322. package/node/components/Onboarding/ui/Overlay/styles.d.ts +22 -0
  323. package/node/components/Onboarding/ui/Overlay/styles.js +60 -0
  324. package/node/components/Onboarding/ui/Overlay/useLogic/index.d.ts +1 -0
  325. package/node/components/Onboarding/ui/Overlay/useLogic/index.js +5 -0
  326. package/node/components/Onboarding/ui/Overlay/useLogic/useLogic.d.ts +13 -0
  327. package/node/components/Onboarding/ui/Overlay/useLogic/useLogic.js +14 -0
  328. package/node/components/Onboarding/ui/StepStrategy/StepStrategy.d.ts +6 -0
  329. package/node/components/Onboarding/ui/StepStrategy/StepStrategy.js +21 -0
  330. package/node/components/Onboarding/ui/StepStrategy/index.d.ts +1 -0
  331. package/node/components/Onboarding/ui/StepStrategy/index.js +17 -0
  332. package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/HighlightStep.d.ts +6 -0
  333. package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/HighlightStep.js +23 -0
  334. package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/index.d.ts +2 -0
  335. package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/index.js +5 -0
  336. package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/styles.d.ts +25 -0
  337. package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/styles.js +59 -0
  338. package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/index.d.ts +1 -0
  339. package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/index.js +5 -0
  340. package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/useLogic.d.ts +12 -0
  341. package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/useLogic.js +41 -0
  342. package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/StandaloneStep.d.ts +6 -0
  343. package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/StandaloneStep.js +15 -0
  344. package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/index.d.ts +2 -0
  345. package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/index.js +5 -0
  346. package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/styles.d.ts +13 -0
  347. package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/styles.js +12 -0
  348. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/ProgressDots.d.ts +6 -0
  349. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/ProgressDots.js +19 -0
  350. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/constants.d.ts +4 -0
  351. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/constants.js +8 -0
  352. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/index.d.ts +2 -0
  353. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/index.js +5 -0
  354. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/styles.d.ts +9 -0
  355. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/styles.js +37 -0
  356. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/StepFooter.d.ts +9 -0
  357. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/StepFooter.js +22 -0
  358. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/constants.d.ts +4 -0
  359. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/constants.js +7 -0
  360. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/index.d.ts +2 -0
  361. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/index.js +5 -0
  362. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/styles.d.ts +21 -0
  363. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/styles.js +31 -0
  364. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/index.d.ts +1 -0
  365. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/index.js +5 -0
  366. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/useLogic.d.ts +16 -0
  367. package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/useLogic.js +26 -0
  368. package/node/components/Onboarding/ui/StepStrategy/steps/types.d.ts +16 -0
  369. package/node/components/Onboarding/ui/StepStrategy/steps/types.js +2 -0
  370. package/node/components/Onboarding/ui/StepStrategy/useLogic/index.d.ts +1 -0
  371. package/node/components/Onboarding/ui/StepStrategy/useLogic/index.js +5 -0
  372. package/node/components/Onboarding/ui/StepStrategy/useLogic/useLogic.d.ts +47 -0
  373. package/node/components/Onboarding/ui/StepStrategy/useLogic/useLogic.js +55 -0
  374. package/node/components/Onboarding/ui/hooks/useActiveStep/index.d.ts +1 -0
  375. package/node/components/Onboarding/ui/hooks/useActiveStep/index.js +5 -0
  376. package/node/components/Onboarding/ui/hooks/useActiveStep/useActiveStep.d.ts +6 -0
  377. package/node/components/Onboarding/ui/hooks/useActiveStep/useActiveStep.js +11 -0
  378. package/node/components/Onboarding/ui/hooks/useDelayedActiveStep/index.d.ts +1 -0
  379. package/node/components/Onboarding/ui/hooks/useDelayedActiveStep/index.js +17 -0
  380. package/node/components/Onboarding/ui/hooks/useDelayedActiveStep/useDelayedActiveStep.d.ts +15 -0
  381. package/node/components/Onboarding/ui/hooks/useDelayedActiveStep/useDelayedActiveStep.js +23 -0
  382. package/node/components/Onboarding/ui/hooks/useFocusTrap/index.d.ts +1 -0
  383. package/node/components/Onboarding/ui/hooks/useFocusTrap/index.js +5 -0
  384. package/node/components/Onboarding/ui/hooks/useFocusTrap/useFocusTrap.d.ts +6 -0
  385. package/node/components/Onboarding/ui/hooks/useFocusTrap/useFocusTrap.js +37 -0
  386. package/node/components/Onboarding/ui/hooks/useKeyboardNav/index.d.ts +1 -0
  387. package/node/components/Onboarding/ui/hooks/useKeyboardNav/index.js +5 -0
  388. package/node/components/Onboarding/ui/hooks/useKeyboardNav/useKeyboardNav.d.ts +11 -0
  389. package/node/components/Onboarding/ui/hooks/useKeyboardNav/useKeyboardNav.js +66 -0
  390. package/node/components/Onboarding/ui/hooks/useStepTransition/index.d.ts +1 -0
  391. package/node/components/Onboarding/ui/hooks/useStepTransition/index.js +5 -0
  392. package/node/components/Onboarding/ui/hooks/useStepTransition/useStepTransition.d.ts +30 -0
  393. package/node/components/Onboarding/ui/hooks/useStepTransition/useStepTransition.js +50 -0
  394. package/node/components/Onboarding/ui/hooks/useTargetAnchor/index.d.ts +1 -0
  395. package/node/components/Onboarding/ui/hooks/useTargetAnchor/index.js +17 -0
  396. package/node/components/Onboarding/ui/hooks/useTargetAnchor/useTargetAnchor.d.ts +37 -0
  397. package/node/components/Onboarding/ui/hooks/useTargetAnchor/useTargetAnchor.js +60 -0
  398. package/node/components/Onboarding/ui/hooks/useTrackedRect/index.d.ts +1 -0
  399. package/node/components/Onboarding/ui/hooks/useTrackedRect/index.js +5 -0
  400. package/node/components/Onboarding/ui/hooks/useTrackedRect/useTrackedRect.d.ts +5 -0
  401. package/node/components/Onboarding/ui/hooks/useTrackedRect/useTrackedRect.js +47 -0
  402. package/node/components/Onboarding/ui/hooks/useViewportSize/index.d.ts +1 -0
  403. package/node/components/Onboarding/ui/hooks/useViewportSize/index.js +5 -0
  404. package/node/components/Onboarding/ui/hooks/useViewportSize/useViewportSize.d.ts +5 -0
  405. package/node/components/Onboarding/ui/hooks/useViewportSize/useViewportSize.js +18 -0
  406. package/node/components/Onboarding/ui/styles.d.ts +5 -0
  407. package/node/components/Onboarding/ui/styles.js +19 -0
  408. package/node/components/Onboarding/utils/createVirtualAnchor/createVirtualAnchor.d.ts +12 -0
  409. package/node/components/Onboarding/utils/createVirtualAnchor/createVirtualAnchor.js +10 -0
  410. package/node/components/Onboarding/utils/createVirtualAnchor/index.d.ts +1 -0
  411. package/node/components/Onboarding/utils/createVirtualAnchor/index.js +17 -0
  412. package/node/components/Onboarding/utils/geometry/index.d.ts +4 -0
  413. package/node/components/Onboarding/utils/geometry/index.js +20 -0
  414. package/node/components/Onboarding/utils/geometry/overlayPath/index.d.ts +1 -0
  415. package/node/components/Onboarding/utils/geometry/overlayPath/index.js +5 -0
  416. package/node/components/Onboarding/utils/geometry/overlayPath/overlayPath.d.ts +6 -0
  417. package/node/components/Onboarding/utils/geometry/overlayPath/overlayPath.js +33 -0
  418. package/node/components/Onboarding/utils/geometry/parseOffset/index.d.ts +1 -0
  419. package/node/components/Onboarding/utils/geometry/parseOffset/index.js +5 -0
  420. package/node/components/Onboarding/utils/geometry/parseOffset/parseOffset.d.ts +4 -0
  421. package/node/components/Onboarding/utils/geometry/parseOffset/parseOffset.js +9 -0
  422. package/node/components/Onboarding/utils/geometry/rect/index.d.ts +2 -0
  423. package/node/components/Onboarding/utils/geometry/rect/index.js +9 -0
  424. package/node/components/Onboarding/utils/geometry/rect/rect.d.ts +34 -0
  425. package/node/components/Onboarding/utils/geometry/rect/rect.js +69 -0
  426. package/node/components/Onboarding/utils/geometry/viewport/index.d.ts +2 -0
  427. package/node/components/Onboarding/utils/geometry/viewport/index.js +5 -0
  428. package/node/components/Onboarding/utils/geometry/viewport/viewport.d.ts +14 -0
  429. package/node/components/Onboarding/utils/geometry/viewport/viewport.js +14 -0
  430. package/node/components/Onboarding/utils/getScrollParents/getScrollParents.d.ts +7 -0
  431. package/node/components/Onboarding/utils/getScrollParents/getScrollParents.js +28 -0
  432. package/node/components/Onboarding/utils/getScrollParents/index.d.ts +1 -0
  433. package/node/components/Onboarding/utils/getScrollParents/index.js +5 -0
  434. package/node/components/Onboarding/utils/getTargetElement/getTargetElement.d.ts +4 -0
  435. package/node/components/Onboarding/utils/getTargetElement/getTargetElement.js +13 -0
  436. package/node/components/Onboarding/utils/getTargetElement/index.d.ts +1 -0
  437. package/node/components/Onboarding/utils/getTargetElement/index.js +5 -0
  438. package/node/components/Onboarding/utils/observeRemoval/index.d.ts +1 -0
  439. package/node/components/Onboarding/utils/observeRemoval/index.js +17 -0
  440. package/node/components/Onboarding/utils/observeRemoval/observeRemoval.d.ts +4 -0
  441. package/node/components/Onboarding/utils/observeRemoval/observeRemoval.js +17 -0
  442. package/node/components/Onboarding/utils/scrollIntoView/index.d.ts +1 -0
  443. package/node/components/Onboarding/utils/scrollIntoView/index.js +5 -0
  444. package/node/components/Onboarding/utils/scrollIntoView/scrollIntoView.d.ts +13 -0
  445. package/node/components/Onboarding/utils/scrollIntoView/scrollIntoView.js +89 -0
  446. package/node/components/Onboarding/utils/waitForElement/index.d.ts +2 -0
  447. package/node/components/Onboarding/utils/waitForElement/index.js +5 -0
  448. package/node/components/Onboarding/utils/waitForElement/waitForElement.d.ts +21 -0
  449. package/node/components/Onboarding/utils/waitForElement/waitForElement.js +49 -0
  450. package/node/components/Onboarding/validation/index.d.ts +1 -0
  451. package/node/components/Onboarding/validation/index.js +6 -0
  452. package/node/components/Onboarding/validation/validateTourConfig/index.d.ts +1 -0
  453. package/node/components/Onboarding/validation/validateTourConfig/index.js +6 -0
  454. package/node/components/Onboarding/validation/validateTourConfig/validateTourConfig.d.ts +12 -0
  455. package/node/components/Onboarding/validation/validateTourConfig/validateTourConfig.js +80 -0
  456. package/node/components/TagsList/Tag/Tag.js +3 -2
  457. package/package.json +3 -2
@@ -0,0 +1,101 @@
1
+ import { type ErrorService } from '../../../services/ErrorService';
2
+ import { type OnboardingTourConfig, type Step, type StepHandles, type TourProgress } from '../../types';
3
+ import { type ActiveStepStore } from '../ActiveStepStore';
4
+ import { type ProgressStorage } from '../ProgressStorage';
5
+ /**
6
+ * Управляющий объект одного тура: связывает навигацию (StepNavigator), разрешение
7
+ * значений шага (StepResolver), рантайм-переопределения (StepsController),
8
+ * выход (ExitController) и сохранение прогресса (ProgressStorage), публикуя
9
+ * состояние активного шага в store своего экземпляра онбординга.
10
+ */
11
+ export declare class OnboardingTour<TSteps extends readonly Step[] = readonly Step[]> {
12
+ private readonly config;
13
+ private readonly progressStorage;
14
+ private readonly activeStepStore;
15
+ private readonly errorService;
16
+ private readonly navigator;
17
+ private readonly resolver;
18
+ private readonly stepsController;
19
+ private readonly exitController;
20
+ private status;
21
+ /**
22
+ * Типобезопасный доступ к шагам по их именам.
23
+ */
24
+ readonly steps: StepHandles<TSteps>;
25
+ constructor(config: OnboardingTourConfig<TSteps>, progressStorage: ProgressStorage, activeStepStore: ActiveStepStore, errorService: ErrorService);
26
+ /**
27
+ * Запуск тура с первого шага.
28
+ */
29
+ start: () => Promise<void>;
30
+ /**
31
+ * Снимает паузу шага с `waitForResume`
32
+ */
33
+ resume: () => void;
34
+ /**
35
+ * Показ тура из сохранённого прогресса по запросу пользователя
36
+ */
37
+ restore: () => Promise<void>;
38
+ /**
39
+ * Переход к следующему шагу. На последнем шаге завершает тур.
40
+ */
41
+ next: () => void;
42
+ /**
43
+ * Переход к предыдущему шагу.
44
+ */
45
+ prev: () => void;
46
+ /**
47
+ * Переход к шагу по его позиции среди видимых шагов.
48
+ */
49
+ goToPosition: (position: number) => void;
50
+ /**
51
+ * Завершение тура: помечаем пройденным (`isCompleted`) и закрываем.
52
+ */
53
+ finish: () => void;
54
+ /**
55
+ * Программное закрытие тура.
56
+ * В отличие от навигации работает в любом состоянии: закрывает и тур,
57
+ * ожидающий `resume()`.
58
+ */
59
+ close: () => void;
60
+ /**
61
+ * Запрос выхода.
62
+ */
63
+ private requestClose;
64
+ /**
65
+ * Сбрасывает сохранённый прогресс тура
66
+ * После сброса `start()` снова покажет тур с первого шага.
67
+ */
68
+ resetProgress: () => Promise<void>;
69
+ /**
70
+ * Возвращает сохранённый прогресс тура
71
+ */
72
+ getState: () => Promise<TourProgress | null>;
73
+ /**
74
+ * Разрешена ли навигация сейчас: тур показан на экране и владеет активным
75
+ * шагом store
76
+ */
77
+ private canNavigate;
78
+ /**
79
+ * Единая точка закрытия тура
80
+ */
81
+ private exit;
82
+ /**
83
+ * Переход к текущему шагу. Шаг с `waitForResume` ставит тур в ожидание
84
+ * и не отрисовывается до явного `resume()`.
85
+ */
86
+ private enterCurrentStep;
87
+ /**
88
+ * Очищает store, только если активный шаг принадлежит именно этому туру.
89
+ */
90
+ private releaseStep;
91
+ private handleError;
92
+ /**
93
+ * Публикует состояние текущего шага в store.
94
+ */
95
+ private publishStep;
96
+ private buildActiveStep;
97
+ /**
98
+ * Перерисовывает шаг после изменения его override-содержимого
99
+ */
100
+ private refreshStep;
101
+ }
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnboardingTour = void 0;
4
+ const ExitController_1 = require("../ExitController");
5
+ const StepNavigator_1 = require("../StepNavigator");
6
+ const StepResolver_1 = require("../StepResolver");
7
+ const StepsController_1 = require("../StepsController");
8
+ /**
9
+ * Управляющий объект одного тура: связывает навигацию (StepNavigator), разрешение
10
+ * значений шага (StepResolver), рантайм-переопределения (StepsController),
11
+ * выход (ExitController) и сохранение прогресса (ProgressStorage), публикуя
12
+ * состояние активного шага в store своего экземпляра онбординга.
13
+ */
14
+ class OnboardingTour {
15
+ constructor(config, progressStorage, activeStepStore, errorService) {
16
+ this.config = config;
17
+ this.progressStorage = progressStorage;
18
+ this.activeStepStore = activeStepStore;
19
+ this.errorService = errorService;
20
+ this.status = 'idle';
21
+ /**
22
+ * Запуск тура с первого шага.
23
+ */
24
+ this.start = async () => {
25
+ const persisted = await this.progressStorage.load();
26
+ if (persisted?.isDismissed) {
27
+ return;
28
+ }
29
+ this.exitController.reset();
30
+ this.navigator.reset();
31
+ this.enterCurrentStep();
32
+ };
33
+ /**
34
+ * Снимает паузу шага с `waitForResume`
35
+ */
36
+ this.resume = () => {
37
+ if (this.status !== 'waiting-resume') {
38
+ return;
39
+ }
40
+ this.status = 'running';
41
+ this.publishStep();
42
+ };
43
+ /**
44
+ * Показ тура из сохранённого прогресса по запросу пользователя
45
+ */
46
+ this.restore = async () => {
47
+ const persisted = await this.progressStorage.load();
48
+ this.exitController.reset();
49
+ this.navigator.reset();
50
+ // Пройденный тур переигрываем с начала; иначе продолжаем с сохранённого шага.
51
+ if (persisted && !persisted.isCompleted) {
52
+ this.navigator.goToStep(persisted.lastStepName);
53
+ }
54
+ this.enterCurrentStep();
55
+ };
56
+ /**
57
+ * Переход к следующему шагу. На последнем шаге завершает тур.
58
+ */
59
+ this.next = () => {
60
+ if (!this.canNavigate()) {
61
+ return;
62
+ }
63
+ if (this.navigator.hasNext) {
64
+ // Обратный вызов шага — только при реальном переходе (на последнем next = finish).
65
+ this.navigator.current.onNextClick?.();
66
+ this.navigator.next();
67
+ this.progressStorage.save({
68
+ lastStepName: this.navigator.current.name,
69
+ isCompleted: false,
70
+ isDismissed: false,
71
+ });
72
+ this.enterCurrentStep();
73
+ }
74
+ else {
75
+ this.finish();
76
+ }
77
+ };
78
+ /**
79
+ * Переход к предыдущему шагу.
80
+ */
81
+ this.prev = () => {
82
+ if (!this.canNavigate()) {
83
+ return;
84
+ }
85
+ if (this.navigator.hasPrev) {
86
+ // Обратный вызов шага — только при реальном переходе.
87
+ this.navigator.current.onPrevClick?.();
88
+ this.navigator.prev();
89
+ this.progressStorage.save({
90
+ lastStepName: this.navigator.current.name,
91
+ isCompleted: false,
92
+ isDismissed: false,
93
+ });
94
+ this.enterCurrentStep();
95
+ }
96
+ };
97
+ /**
98
+ * Переход к шагу по его позиции среди видимых шагов.
99
+ */
100
+ this.goToPosition = (position) => {
101
+ if (!this.canNavigate()) {
102
+ return;
103
+ }
104
+ const previous = this.navigator.position;
105
+ this.navigator.goToPosition(position);
106
+ if (this.navigator.position === previous) {
107
+ return;
108
+ }
109
+ this.progressStorage.save({
110
+ lastStepName: this.navigator.current.name,
111
+ isCompleted: false,
112
+ isDismissed: false,
113
+ });
114
+ this.enterCurrentStep();
115
+ };
116
+ /**
117
+ * Завершение тура: помечаем пройденным (`isCompleted`) и закрываем.
118
+ */
119
+ this.finish = () => {
120
+ if (!this.canNavigate()) {
121
+ return;
122
+ }
123
+ this.progressStorage.save({
124
+ lastStepName: this.navigator.current.name,
125
+ isCompleted: true,
126
+ isDismissed: true,
127
+ });
128
+ this.exit('completed');
129
+ };
130
+ /**
131
+ * Программное закрытие тура.
132
+ * В отличие от навигации работает в любом состоянии: закрывает и тур,
133
+ * ожидающий `resume()`.
134
+ */
135
+ this.close = () => {
136
+ this.exit('closed');
137
+ };
138
+ /**
139
+ * Запрос выхода.
140
+ */
141
+ this.requestClose = () => {
142
+ if (!this.navigator.hasNext) {
143
+ this.finish();
144
+ return;
145
+ }
146
+ this.exitController.requestClose();
147
+ };
148
+ /**
149
+ * Сбрасывает сохранённый прогресс тура
150
+ * После сброса `start()` снова покажет тур с первого шага.
151
+ */
152
+ this.resetProgress = async () => {
153
+ await this.progressStorage.reset();
154
+ };
155
+ /**
156
+ * Возвращает сохранённый прогресс тура
157
+ */
158
+ this.getState = () => this.progressStorage.load();
159
+ /**
160
+ * Единая точка закрытия тура
161
+ */
162
+ this.exit = (reason) => {
163
+ if (this.status === 'idle') {
164
+ return;
165
+ }
166
+ if (reason === 'dismissed') {
167
+ this.progressStorage.save({
168
+ lastStepName: this.navigator.current.name,
169
+ isCompleted: false,
170
+ isDismissed: true,
171
+ });
172
+ }
173
+ this.status = 'idle';
174
+ this.exitController.reset();
175
+ this.releaseStep();
176
+ this.config.onClose?.(reason);
177
+ };
178
+ this.handleError = (error) => {
179
+ this.errorService.captureException(error, {
180
+ place: 'Onboarding',
181
+ tourName: this.config.name,
182
+ step: this.navigator.current?.name,
183
+ });
184
+ this.config.onError?.(error);
185
+ this.exit('closed');
186
+ };
187
+ this.navigator = new StepNavigator_1.StepNavigator(config.steps);
188
+ this.resolver = new StepResolver_1.StepResolver(config);
189
+ this.stepsController = new StepsController_1.StepsController(config.steps, (stepName) => this.refreshStep(stepName));
190
+ this.steps = this.stepsController.handles;
191
+ this.exitController = new ExitController_1.ExitController({
192
+ close: () => this.exit('dismissed'),
193
+ onChange: () => this.publishStep(),
194
+ });
195
+ }
196
+ /**
197
+ * Разрешена ли навигация сейчас: тур показан на экране и владеет активным
198
+ * шагом store
199
+ */
200
+ canNavigate() {
201
+ return this.status === 'running' && this.activeStepStore.isActiveTour(this);
202
+ }
203
+ /**
204
+ * Переход к текущему шагу. Шаг с `waitForResume` ставит тур в ожидание
205
+ * и не отрисовывается до явного `resume()`.
206
+ */
207
+ enterCurrentStep() {
208
+ // Показывать нечего: у тура нет ни одного видимого (не-пропущенного) шага.
209
+ if (this.navigator.total === 0) {
210
+ this.status = 'idle';
211
+ this.releaseStep();
212
+ return;
213
+ }
214
+ const step = this.navigator.current;
215
+ if (step.waitForResume) {
216
+ this.status = 'waiting-resume';
217
+ this.releaseStep();
218
+ return;
219
+ }
220
+ this.status = 'running';
221
+ this.publishStep();
222
+ }
223
+ /**
224
+ * Очищает store, только если активный шаг принадлежит именно этому туру.
225
+ */
226
+ releaseStep() {
227
+ this.activeStepStore.release(this);
228
+ }
229
+ /**
230
+ * Публикует состояние текущего шага в store.
231
+ */
232
+ publishStep() {
233
+ const current = this.navigator.current;
234
+ const step = this.resolver.resolve(current, this.stepsController.getOverride(current.name));
235
+ this.activeStepStore.setActiveStep(this.buildActiveStep(step), this);
236
+ }
237
+ buildActiveStep(step) {
238
+ return {
239
+ ...this.resolver.resolvePresentation(),
240
+ tourName: this.config.name,
241
+ step,
242
+ position: this.navigator.position,
243
+ total: this.navigator.total,
244
+ hasNext: this.navigator.hasNext,
245
+ hasPrev: this.navigator.hasPrev,
246
+ isInteractive: this.resolver.resolveIsInteractive(step),
247
+ isConfirming: this.exitController.isConfirming,
248
+ onNext: this.next,
249
+ onPrev: this.prev,
250
+ onSelectStep: this.goToPosition,
251
+ requestClose: this.requestClose,
252
+ onConfirmExit: this.exitController.confirm,
253
+ onCancelExit: this.exitController.cancel,
254
+ onError: this.handleError,
255
+ };
256
+ }
257
+ /**
258
+ * Перерисовывает шаг после изменения его override-содержимого
259
+ */
260
+ refreshStep(stepName) {
261
+ if (this.activeStepStore.isActiveStep(this, stepName)) {
262
+ this.publishStep();
263
+ }
264
+ }
265
+ }
266
+ exports.OnboardingTour = OnboardingTour;
@@ -0,0 +1 @@
1
+ export { OnboardingTour } from './OnboardingTour';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnboardingTour = void 0;
4
+ var OnboardingTour_1 = require("./OnboardingTour");
5
+ Object.defineProperty(exports, "OnboardingTour", { enumerable: true, get: function () { return OnboardingTour_1.OnboardingTour; } });
@@ -0,0 +1,22 @@
1
+ import { type SaveStrategy, type TourProgress } from '../../types';
2
+ /**
3
+ * Обёртка над переданной SaveStrategy, изолирующая тур от исключений хранилища
4
+ *
5
+ * Записи выполняются строго последовательно : при async-стратегии это
6
+ * не даёт конкурентным вызовам переставиться местами — быстрый next/next,
7
+ * save→reset или save→skip сохранят порядок.
8
+ * `load()` ждёт текущее сохранение, поэтому читает уже применённое состояние.
9
+ */
10
+ export declare class ProgressStorage {
11
+ private readonly strategy;
12
+ private saving;
13
+ constructor(strategy: SaveStrategy);
14
+ load(): Promise<TourProgress | null>;
15
+ save(state: TourProgress): Promise<void>;
16
+ /**
17
+ * Полный сброс прогресса. Если стратегия умеет `remove` — запись удаляется;
18
+ * иначе поверх пишется пустое состояние.
19
+ */
20
+ reset(): Promise<void>;
21
+ private enqueue;
22
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProgressStorage = void 0;
4
+ /**
5
+ * «Пустой» прогресс
6
+ */
7
+ const CLEARED_STATE = {
8
+ lastStepName: '',
9
+ isCompleted: false,
10
+ isDismissed: false,
11
+ };
12
+ /**
13
+ * Обёртка над переданной SaveStrategy, изолирующая тур от исключений хранилища
14
+ *
15
+ * Записи выполняются строго последовательно : при async-стратегии это
16
+ * не даёт конкурентным вызовам переставиться местами — быстрый next/next,
17
+ * save→reset или save→skip сохранят порядок.
18
+ * `load()` ждёт текущее сохранение, поэтому читает уже применённое состояние.
19
+ */
20
+ class ProgressStorage {
21
+ constructor(strategy) {
22
+ this.strategy = strategy;
23
+ this.saving = Promise.resolve();
24
+ }
25
+ async load() {
26
+ // Дожидаемся текущего сохранения, чтобы не прочитать состояние до него.
27
+ await this.saving;
28
+ try {
29
+ return await this.strategy.load();
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ }
35
+ save(state) {
36
+ return this.enqueue(() => this.strategy.save(state));
37
+ }
38
+ /**
39
+ * Полный сброс прогресса. Если стратегия умеет `remove` — запись удаляется;
40
+ * иначе поверх пишется пустое состояние.
41
+ */
42
+ reset() {
43
+ return this.enqueue(() => {
44
+ if (this.strategy.remove) {
45
+ return this.strategy.remove();
46
+ }
47
+ return this.strategy.save(CLEARED_STATE);
48
+ });
49
+ }
50
+ enqueue(write) {
51
+ this.saving = this.saving.then(async () => {
52
+ try {
53
+ await write();
54
+ }
55
+ catch {
56
+ // Ошибка хранилища не должна ронять тур;
57
+ }
58
+ });
59
+ return this.saving;
60
+ }
61
+ }
62
+ exports.ProgressStorage = ProgressStorage;
@@ -0,0 +1 @@
1
+ export * from './ProgressStorage';
@@ -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("./ProgressStorage"), exports);
@@ -0,0 +1,28 @@
1
+ import { type Step } from '../../types';
2
+ /**
3
+ * Навигатор по шагам тура. Пропущенные шаги в навигации и в прогрессе не существуют.
4
+ */
5
+ export declare class StepNavigator<TSteps extends readonly Step[] = readonly Step[]> {
6
+ private readonly steps;
7
+ /** Видимые шаги в порядке прохождения. */
8
+ private visibleSteps;
9
+ /** Текущая позиция среди видимых шагов */
10
+ private cursor;
11
+ constructor(steps: TSteps);
12
+ get current(): TSteps[number];
13
+ get position(): number;
14
+ get total(): number;
15
+ get hasNext(): boolean;
16
+ get hasPrev(): boolean;
17
+ next(): TSteps[number];
18
+ prev(): TSteps[number];
19
+ goToPosition(position: number): TSteps[number];
20
+ goToStep(stepName: string): TSteps[number];
21
+ /**
22
+ * Пересобирает список видимых шагов под актуальное состояние (здесь и только
23
+ * здесь вычисляются предикаты `shouldSkip`) и встаёт на первый шаг. Вызывается
24
+ * при (пере)запуске тура.
25
+ */
26
+ reset(): TSteps[number];
27
+ private collectVisibleSteps;
28
+ }
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StepNavigator = void 0;
4
+ /**
5
+ * Нужно ли пропустить шаг.
6
+ */
7
+ const isStepSkipped = (step) => {
8
+ const { shouldSkip } = step;
9
+ return typeof shouldSkip === 'function' ? shouldSkip() : Boolean(shouldSkip);
10
+ };
11
+ /**
12
+ * Навигатор по шагам тура. Пропущенные шаги в навигации и в прогрессе не существуют.
13
+ */
14
+ class StepNavigator {
15
+ constructor(steps) {
16
+ this.steps = steps;
17
+ /** Видимые шаги в порядке прохождения. */
18
+ this.visibleSteps = [];
19
+ /** Текущая позиция среди видимых шагов */
20
+ this.cursor = 0;
21
+ this.visibleSteps = this.collectVisibleSteps();
22
+ }
23
+ get current() {
24
+ return this.visibleSteps[this.cursor] ?? this.steps[0];
25
+ }
26
+ get position() {
27
+ return this.cursor;
28
+ }
29
+ get total() {
30
+ return this.visibleSteps.length;
31
+ }
32
+ get hasNext() {
33
+ return this.cursor < this.visibleSteps.length - 1;
34
+ }
35
+ get hasPrev() {
36
+ return this.cursor > 0;
37
+ }
38
+ next() {
39
+ if (this.hasNext) {
40
+ this.cursor += 1;
41
+ }
42
+ return this.current;
43
+ }
44
+ prev() {
45
+ if (this.hasPrev) {
46
+ this.cursor -= 1;
47
+ }
48
+ return this.current;
49
+ }
50
+ goToPosition(position) {
51
+ if (position >= 0 && position < this.visibleSteps.length) {
52
+ this.cursor = position;
53
+ }
54
+ return this.current;
55
+ }
56
+ goToStep(stepName) {
57
+ const position = this.visibleSteps.findIndex((step) => step.name === stepName);
58
+ if (position !== -1) {
59
+ this.cursor = position;
60
+ }
61
+ return this.current;
62
+ }
63
+ /**
64
+ * Пересобирает список видимых шагов под актуальное состояние (здесь и только
65
+ * здесь вычисляются предикаты `shouldSkip`) и встаёт на первый шаг. Вызывается
66
+ * при (пере)запуске тура.
67
+ */
68
+ reset() {
69
+ this.visibleSteps = this.collectVisibleSteps();
70
+ this.cursor = 0;
71
+ return this.current;
72
+ }
73
+ collectVisibleSteps() {
74
+ return this.steps.filter((step) => !isStepSkipped(step));
75
+ }
76
+ }
77
+ exports.StepNavigator = StepNavigator;
@@ -0,0 +1 @@
1
+ export * from './StepNavigator';
@@ -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("./StepNavigator"), exports);
@@ -0,0 +1,19 @@
1
+ import { type OnboardingTourConfig, type ResolvedStep, type Step, type StepOverride, type TourPresentation } from '../../types';
2
+ /**
3
+ * Вычисляет итоговые значения по приоритету источников:
4
+ * - `title`/`content`: рантайм-override → значение шага;
5
+ * - `position`/`dialogSize`/видимость кнопок: шаг → значение по умолчанию;
6
+ * - `isInteractive`/`waitForTimeout`: шаг → конфигурация тура → значение по умолчанию;
7
+ * - презентация тура (`resolvePresentation`): конфигурация тура → значение по умолчанию.
8
+ */
9
+ export declare class StepResolver {
10
+ private readonly config;
11
+ constructor(config: OnboardingTourConfig<readonly Step[]>);
12
+ resolve(step: Step, override?: StepOverride): ResolvedStep;
13
+ private resolveWaitForTimeout;
14
+ resolveIsInteractive(step: Step): boolean;
15
+ /**
16
+ * Конфигурация тура с применёнными значениями по умолчанию.
17
+ */
18
+ resolvePresentation(): TourPresentation;
19
+ }