react-native-lumen 1.0.1 → 1.1.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 (51) hide show
  1. package/README.md +763 -231
  2. package/lib/module/components/TourOverlay.js +43 -3
  3. package/lib/module/components/TourOverlay.js.map +1 -1
  4. package/lib/module/components/TourProvider.js +318 -61
  5. package/lib/module/components/TourProvider.js.map +1 -1
  6. package/lib/module/components/TourTooltip.js +113 -73
  7. package/lib/module/components/TourTooltip.js.map +1 -1
  8. package/lib/module/components/TourZone.js +186 -119
  9. package/lib/module/components/TourZone.js.map +1 -1
  10. package/lib/module/constants/defaults.js +43 -0
  11. package/lib/module/constants/defaults.js.map +1 -1
  12. package/lib/module/context/TourContext.js +5 -0
  13. package/lib/module/context/TourContext.js.map +1 -0
  14. package/lib/module/hooks/useTour.js +1 -1
  15. package/lib/module/hooks/useTour.js.map +1 -1
  16. package/lib/module/hooks/useTourScrollView.js +71 -0
  17. package/lib/module/hooks/useTourScrollView.js.map +1 -0
  18. package/lib/module/index.js +6 -0
  19. package/lib/module/index.js.map +1 -1
  20. package/lib/module/utils/storage.js +188 -0
  21. package/lib/module/utils/storage.js.map +1 -0
  22. package/lib/typescript/src/components/TourOverlay.d.ts.map +1 -1
  23. package/lib/typescript/src/components/TourProvider.d.ts +21 -4
  24. package/lib/typescript/src/components/TourProvider.d.ts.map +1 -1
  25. package/lib/typescript/src/components/TourTooltip.d.ts.map +1 -1
  26. package/lib/typescript/src/components/TourZone.d.ts +19 -1
  27. package/lib/typescript/src/components/TourZone.d.ts.map +1 -1
  28. package/lib/typescript/src/constants/defaults.d.ts +10 -0
  29. package/lib/typescript/src/constants/defaults.d.ts.map +1 -1
  30. package/lib/typescript/src/context/TourContext.d.ts +3 -0
  31. package/lib/typescript/src/context/TourContext.d.ts.map +1 -0
  32. package/lib/typescript/src/hooks/useTourScrollView.d.ts +65 -0
  33. package/lib/typescript/src/hooks/useTourScrollView.d.ts.map +1 -0
  34. package/lib/typescript/src/index.d.ts +4 -0
  35. package/lib/typescript/src/index.d.ts.map +1 -1
  36. package/lib/typescript/src/types/index.d.ts +296 -1
  37. package/lib/typescript/src/types/index.d.ts.map +1 -1
  38. package/lib/typescript/src/utils/storage.d.ts +51 -0
  39. package/lib/typescript/src/utils/storage.d.ts.map +1 -0
  40. package/package.json +173 -171
  41. package/src/components/TourOverlay.tsx +45 -2
  42. package/src/components/TourProvider.tsx +408 -56
  43. package/src/components/TourTooltip.tsx +144 -71
  44. package/src/components/TourZone.tsx +238 -140
  45. package/src/constants/defaults.ts +51 -0
  46. package/src/context/TourContext.ts +4 -0
  47. package/src/hooks/useTour.ts +1 -1
  48. package/src/hooks/useTourScrollView.ts +111 -0
  49. package/src/index.tsx +27 -0
  50. package/src/types/index.ts +306 -1
  51. package/src/utils/storage.ts +226 -0
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import React, { useEffect, useCallback, useRef } from 'react';
3
+ import React, { useEffect, useCallback, useMemo } from 'react';
4
4
  import { useTour } from "../hooks/useTour.js";
5
5
  import { useAnimatedRef, measure, useFrameCallback, withSpring, default as Animated, useSharedValue } from 'react-native-reanimated';
6
6
  import { Dimensions } from 'react-native';
@@ -14,11 +14,28 @@ export const TourZone = ({
14
14
  name,
15
15
  description,
16
16
  order,
17
- shape = 'rect',
17
+ shape = 'rounded-rect',
18
18
  borderRadius = 10,
19
19
  children,
20
20
  style,
21
- clickable
21
+ clickable,
22
+ preventInteraction,
23
+ required,
24
+ completed,
25
+ zonePadding,
26
+ zonePaddingTop,
27
+ zonePaddingRight,
28
+ zonePaddingBottom,
29
+ zonePaddingLeft,
30
+ zoneBorderWidth,
31
+ zoneBorderColor,
32
+ zoneGlowColor,
33
+ zoneGlowRadius,
34
+ zoneGlowSpread,
35
+ zoneGlowOffsetX,
36
+ zoneGlowOffsetY,
37
+ zoneStyle,
38
+ renderCustomCard
22
39
  }) => {
23
40
  const {
24
41
  registerStep,
@@ -37,34 +54,63 @@ export const TourZone = ({
37
54
  const viewRef = useAnimatedRef();
38
55
  const isActive = currentStep === stepKey;
39
56
 
40
- // Track if we're currently scrolling to prevent position updates during scroll
57
+ // The critical lock for the UI thread
41
58
  const isScrolling = useSharedValue(false);
42
- const hasScrolled = useRef(false);
43
-
44
- // Signal when scroll completes (from JS thread)
45
- const onScrollComplete = useCallback(() => {
46
- isScrolling.value = false;
47
- }, [isScrolling]);
59
+ console.log(`zoneGlowRadius ${stepKey}`, zoneGlowRadius);
60
+ const resolvedZoneStyle = useMemo(() => ({
61
+ ...zoneStyle,
62
+ ...(zonePadding !== undefined && {
63
+ padding: zonePadding
64
+ }),
65
+ ...(zonePaddingTop !== undefined && {
66
+ paddingTop: zonePaddingTop
67
+ }),
68
+ ...(zonePaddingRight !== undefined && {
69
+ paddingRight: zonePaddingRight
70
+ }),
71
+ ...(zonePaddingBottom !== undefined && {
72
+ paddingBottom: zonePaddingBottom
73
+ }),
74
+ ...(zonePaddingLeft !== undefined && {
75
+ paddingLeft: zonePaddingLeft
76
+ }),
77
+ ...(zoneBorderWidth !== undefined && {
78
+ borderWidth: zoneBorderWidth
79
+ }),
80
+ ...(zoneBorderColor !== undefined && {
81
+ borderColor: zoneBorderColor
82
+ }),
83
+ ...(zoneGlowColor !== undefined && {
84
+ glowColor: zoneGlowColor
85
+ }),
86
+ ...(zoneGlowRadius !== undefined && {
87
+ glowRadius: zoneGlowRadius
88
+ }),
89
+ ...(zoneGlowSpread !== undefined && {
90
+ glowSpread: zoneGlowSpread
91
+ }),
92
+ ...(zoneGlowOffsetX !== undefined && {
93
+ glowOffsetX: zoneGlowOffsetX
94
+ }),
95
+ ...(zoneGlowOffsetY !== undefined && {
96
+ glowOffsetY: zoneGlowOffsetY
97
+ }),
98
+ shape,
99
+ borderRadius
100
+ }), [zoneStyle, zonePadding, zonePaddingTop, zonePaddingRight, zonePaddingBottom, zonePaddingLeft, zoneBorderWidth, zoneBorderColor, zoneGlowColor, zoneGlowRadius, zoneGlowSpread, zoneGlowOffsetX, zoneGlowOffsetY, shape, borderRadius]);
48
101
 
49
102
  /**
50
- * UNIFIED MEASUREMENT FUNCTION (JS THREAD)
51
- * Always measures relative to SCREEN (Viewport), not Content.
52
- * This fixes the bug where measureLayout returned content-relative Y.
103
+ * Captures the final, perfect coordinates and UNLOCKS the UI thread.
104
+ * This is explicitly the ONLY function allowed to set isScrolling.value = false.
53
105
  */
54
106
  const measureJS = useCallback(() => {
55
- if (isScrolling.value || !isActive) {
56
- return;
57
- }
107
+ if (!isActive) return;
58
108
  const view = viewRef.current;
59
109
  const container = containerRef.current;
60
110
  if (view && container) {
61
- // 1. Measure the View in Screen Coordinates (PageX/PageY)
62
111
  view.measure((_x, _y, width, height, pageX, pageY) => {
63
- // 2. Measure the Container (TourOverlay) in Screen Coordinates
64
- // This handles cases where the Tour Overlay isn't exactly at 0,0 (e.g. inside a SafeAreaView)
65
112
  container.measure((_cx, _cy, _cw, _ch, containerPageX, containerPageY) => {
66
113
  if (width > 0 && height > 0 && !isNaN(pageX) && !isNaN(pageY)) {
67
- // Calculate final position relative to the Tour Overlay
68
114
  const finalX = pageX - containerPageX;
69
115
  const finalY = pageY - containerPageY;
70
116
  updateStepLayout(stepKey, {
@@ -73,102 +119,58 @@ export const TourZone = ({
73
119
  width,
74
120
  height
75
121
  });
122
+
123
+ // Unlock the UI thread to take over tracking
124
+ isScrolling.value = false;
76
125
  }
77
126
  });
78
127
  });
79
128
  }
80
- }, [containerRef, stepKey, updateStepLayout, viewRef, isScrolling, isActive]);
81
-
82
- // Initial measurement when step becomes active
83
- useEffect(() => {
84
- if (!isActive) return;
85
-
86
- // Small delay to ensure layout is ready
87
- const timeoutId = setTimeout(() => {
88
- measureJS();
89
- }, 50);
90
- return () => clearTimeout(timeoutId);
91
- }, [isActive, measureJS]);
92
-
93
- // Reanimated Frame Callback (UI Thread Tracking)
94
- // This keeps the highlight sticky during manual user scrolling
95
- useFrameCallback(() => {
96
- 'worklet';
97
-
98
- if (!isActive || isScrolling.value) {
99
- return;
100
- }
101
- try {
102
- const measured = measure(viewRef);
103
- const container = measure(containerRef);
104
- if (measured && container) {
105
- const x = measured.pageX - container.pageX;
106
- const y = measured.pageY - container.pageY;
107
- const width = measured.width;
108
- const height = measured.height;
109
- if (width > 0 && height > 0 && !isNaN(x) && !isNaN(y) && isFinite(x) && isFinite(y)) {
110
- const springConfig = config?.springConfig ?? {
111
- damping: 100,
112
- stiffness: 100
113
- };
114
- targetX.value = withSpring(x, springConfig);
115
- targetY.value = withSpring(y, springConfig);
116
- targetWidth.value = withSpring(width, springConfig);
117
- targetHeight.value = withSpring(height, springConfig);
118
- targetRadius.value = withSpring(borderRadius, springConfig);
119
- }
120
- }
121
- } catch {
122
- // Silently ignore measurement errors on UI thread
123
- }
124
- }, isActive);
129
+ }, [containerRef, isActive, isScrolling, stepKey, updateStepLayout, viewRef]);
125
130
 
126
- // Auto-scroll Effect
131
+ /**
132
+ * Unified Pipeline: Measure -> Predict Scroll -> Scroll -> Measure Final -> Unlock
133
+ * Replaces all independent timers to prevent race conditions on consecutive steps.
134
+ */
127
135
  useEffect(() => {
128
136
  if (!isActive || !scrollViewRef?.current || !viewRef.current) {
129
137
  return;
130
138
  }
131
- hasScrolled.current = false;
132
- const view = viewRef.current;
133
- const scroll = scrollViewRef.current;
134
- const container = containerRef.current;
139
+ let cancelled = false;
135
140
  let attemptCount = 0;
136
- const maxAttempts = 3;
137
- const attemptMeasurement = delay => {
141
+ const maxAttempts = 5;
142
+ let hasInitiatedScroll = false;
143
+
144
+ // 1. Lock immediately so the UI thread doesn't grab off-screen coordinates
145
+ isScrolling.value = true;
146
+ const checkAndScroll = delay => {
138
147
  const timeoutId = setTimeout(() => {
139
- if (hasScrolled.current) return;
148
+ if (cancelled || hasInitiatedScroll) return;
140
149
  attemptCount++;
141
-
142
- // 1. Check current visibility on screen
150
+ const view = viewRef.current;
151
+ const scroll = scrollViewRef.current;
152
+ const container = containerRef.current;
143
153
  view.measure((_mx, _my, mw, mh, px, py) => {
154
+ if (cancelled) return;
144
155
  if (mw > 0 && mh > 0 && !isNaN(px) && !isNaN(py)) {
145
- const viewportHeight = SCREEN_HEIGHT;
146
156
  const topBuffer = 100;
147
157
  const bottomBuffer = 150;
148
-
149
- // Check if element is out of the "safe" visual zone
150
- const needsScroll = py < topBuffer || py + mh > viewportHeight - bottomBuffer;
158
+ const needsScroll = py < topBuffer || py + mh > SCREEN_HEIGHT - bottomBuffer;
151
159
  if (needsScroll) {
152
- hasScrolled.current = true;
153
- isScrolling.value = true;
154
-
155
- // 2. Measure ScrollView to get its Screen Position (Offset from top)
156
- // This fixes the "upwards" bug by accounting for headers/safe-areas
160
+ hasInitiatedScroll = true;
157
161
  scroll.measure((_sx, _sy, _sw, _sh, scrollPx, scrollPy) => {
158
- // 3. Measure Element relative to ScrollView Content
162
+ if (cancelled) return;
159
163
  if (view.measureLayout) {
160
164
  view.measureLayout(scroll, (contentX, contentY) => {
161
- // Calculate target scroll position (center the element)
162
- const centerY = contentY - viewportHeight / 2 + mh / 2 + 50;
165
+ if (cancelled) return;
166
+ const centerY = contentY - SCREEN_HEIGHT / 2 + mh / 2 + 50;
163
167
  const scrollY = Math.max(0, centerY);
164
-
165
- // 4. Measure Container to map coordinates to Overlay space
166
168
  container.measure((_cx, _cy, _cw, _ch, containerPx, containerPy) => {
167
- // THE FIX: Add scrollPy (ScrollView's screen Y)
168
- // Visual Y = ScrollViewScreenY + (ElementContentY - ScrollAmount)
169
- const targetScreenY = scrollPy + contentY - scrollY - containerPy;
169
+ if (cancelled) return;
170
170
 
171
- // X is simpler: ScrollViewScreenX + ElementContentX - ContainerScreenX
171
+ // Calculate predictive screen coordinates so the zone smoothly jumps
172
+ // to the destination *while* the screen is scrolling.
173
+ const targetScreenY = scrollPy + contentY - scrollY - containerPy;
172
174
  const targetScreenX = scrollPx + contentX - containerPx;
173
175
  updateStepLayout(stepKey, {
174
176
  x: targetScreenX,
@@ -181,46 +183,106 @@ export const TourZone = ({
181
183
  y: scrollY,
182
184
  animated: true
183
185
  });
184
- // Wait for scroll animation
185
- setTimeout(() => onScrollComplete(), 800);
186
186
  } catch (e) {
187
187
  console.error(e);
188
- onScrollComplete();
189
188
  }
189
+
190
+ // Wait for the scroll animation to settle, then verify exact position
191
+ setTimeout(() => {
192
+ if (!cancelled) measureJS();
193
+ }, 800);
190
194
  });
195
+ }, () => {
196
+ // Fallback if measureLayout is unavailable
197
+ setTimeout(() => {
198
+ if (!cancelled) measureJS();
199
+ }, 800);
191
200
  });
192
201
  }
193
202
  });
194
203
  } else {
195
- // Element is already visible - just sync position
196
- container.measure((_cx, _cy, _cw, _ch, cPx, cPy) => {
197
- const finalX = px - cPx;
198
- const finalY = py - cPy;
199
- updateStepLayout(stepKey, {
200
- x: finalX,
201
- y: finalY,
202
- width: mw,
203
- height: mh
204
- });
205
- });
204
+ // No scroll needed, just get the perfect coordinates and unlock
205
+ measureJS();
206
206
  }
207
207
  } else if (attemptCount < maxAttempts) {
208
- attemptMeasurement(150 * attemptCount);
208
+ checkAndScroll(150);
209
209
  }
210
210
  });
211
211
  }, delay);
212
212
  return timeoutId;
213
213
  };
214
- const timeoutId = attemptMeasurement(150);
215
- return () => clearTimeout(timeoutId);
216
- }, [isActive, scrollViewRef, viewRef, stepKey, isScrolling, onScrollComplete, containerRef, updateStepLayout]);
214
+ const initialTimeout = checkAndScroll(50);
215
+ return () => {
216
+ cancelled = true;
217
+ clearTimeout(initialTimeout);
218
+ };
219
+ }, [isActive, scrollViewRef, viewRef, containerRef, stepKey, updateStepLayout, measureJS, isScrolling]);
217
220
 
218
- // Standard onLayout handler (uses the unified measureJS)
219
- const onLayout = () => {
220
- measureJS();
221
- };
221
+ // UI Thread tracking
222
+ useFrameCallback(() => {
223
+ 'worklet';
222
224
 
223
- // Register step on mount
225
+ if (!isActive || isScrolling.value) {
226
+ return;
227
+ }
228
+ try {
229
+ const measured = measure(viewRef);
230
+ const container = measure(containerRef);
231
+ if (measured && container) {
232
+ const x = measured.pageX - container.pageX;
233
+ const y = measured.pageY - container.pageY;
234
+ const width = measured.width;
235
+ const height = measured.height;
236
+ if (width > 0 && height > 0 && !isNaN(x) && !isNaN(y) && isFinite(x) && isFinite(y)) {
237
+ const springConfig = config?.springConfig ?? {
238
+ damping: 100,
239
+ stiffness: 100
240
+ };
241
+ const zpt = resolvedZoneStyle.paddingTop ?? resolvedZoneStyle.padding ?? 0;
242
+ const zpr = resolvedZoneStyle.paddingRight ?? resolvedZoneStyle.padding ?? 0;
243
+ const zpb = resolvedZoneStyle.paddingBottom ?? resolvedZoneStyle.padding ?? 0;
244
+ const zpl = resolvedZoneStyle.paddingLeft ?? resolvedZoneStyle.padding ?? 0;
245
+ const zShape = resolvedZoneStyle.shape ?? 'rounded-rect';
246
+ let sx = x - zpl;
247
+ let sy = y - zpt;
248
+ let sw = width + zpl + zpr;
249
+ let sh = height + zpt + zpb;
250
+ let sr = borderRadius;
251
+ if (zShape === 'circle') {
252
+ const cx = x + width / 2;
253
+ const cy = y + height / 2;
254
+ const radius = Math.max(width, height) / 2 + (resolvedZoneStyle.padding ?? 0);
255
+ sx = cx - radius;
256
+ sy = cy - radius;
257
+ sw = radius * 2;
258
+ sh = radius * 2;
259
+ sr = radius;
260
+ } else if (zShape === 'pill') {
261
+ sx = x - zpl;
262
+ sy = y - zpt;
263
+ sw = width + zpl + zpr;
264
+ sh = height + zpt + zpb;
265
+ sr = sh / 2;
266
+ }
267
+ targetX.value = withSpring(sx, springConfig);
268
+ targetY.value = withSpring(sy, springConfig);
269
+ targetWidth.value = withSpring(sw, springConfig);
270
+ targetHeight.value = withSpring(sh, springConfig);
271
+ targetRadius.value = withSpring(sr, springConfig);
272
+ }
273
+ }
274
+ } catch {
275
+ // Silently ignore measurement errors on UI thread
276
+ }
277
+ }, isActive);
278
+
279
+ // Sync position if the element physically resizes, but strictly avoid
280
+ // measuring if we are currently handling an orchestrated scroll.
281
+ const onLayout = useCallback(() => {
282
+ if (isActive && !isScrolling.value) {
283
+ measureJS();
284
+ }
285
+ }, [isActive, isScrolling.value, measureJS]);
224
286
  useEffect(() => {
225
287
  registerStep({
226
288
  key: stepKey,
@@ -228,13 +290,18 @@ export const TourZone = ({
228
290
  description,
229
291
  order,
230
292
  clickable,
293
+ preventInteraction,
294
+ required,
295
+ completed,
231
296
  meta: {
232
- shape,
297
+ shape: resolvedZoneStyle.shape,
233
298
  borderRadius
234
- }
299
+ },
300
+ zoneStyle: resolvedZoneStyle,
301
+ renderCustomCard
235
302
  });
236
303
  return () => unregisterStep(stepKey);
237
- }, [stepKey, name, description, order, shape, borderRadius, registerStep, unregisterStep, clickable]);
304
+ }, [stepKey, name, description, order, borderRadius, registerStep, unregisterStep, clickable, preventInteraction, required, completed, resolvedZoneStyle, renderCustomCard]);
238
305
  return /*#__PURE__*/_jsx(AnimatedView, {
239
306
  ref: viewRef,
240
307
  onLayout: onLayout,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useCallback","useRef","useTour","useAnimatedRef","measure","useFrameCallback","withSpring","default","Animated","useSharedValue","Dimensions","jsx","_jsx","height","SCREEN_HEIGHT","get","AnimatedView","View","TourZone","stepKey","name","description","order","shape","borderRadius","children","style","clickable","registerStep","unregisterStep","updateStepLayout","currentStep","containerRef","scrollViewRef","targetX","targetY","targetWidth","targetHeight","targetRadius","config","viewRef","isActive","isScrolling","hasScrolled","onScrollComplete","value","measureJS","view","current","container","_x","_y","width","pageX","pageY","_cx","_cy","_cw","_ch","containerPageX","containerPageY","isNaN","finalX","finalY","x","y","timeoutId","setTimeout","clearTimeout","measured","isFinite","springConfig","damping","stiffness","scroll","attemptCount","maxAttempts","attemptMeasurement","delay","_mx","_my","mw","mh","px","py","viewportHeight","topBuffer","bottomBuffer","needsScroll","_sx","_sy","_sw","_sh","scrollPx","scrollPy","measureLayout","contentX","contentY","centerY","scrollY","Math","max","containerPx","containerPy","targetScreenY","targetScreenX","scrollTo","animated","e","console","error","cPx","cPy","onLayout","key","meta","ref","collapsable"],"sourceRoot":"..\\..\\..\\src","sources":["components/TourZone.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useCallback","useMemo","useTour","useAnimatedRef","measure","useFrameCallback","withSpring","default","Animated","useSharedValue","Dimensions","jsx","_jsx","height","SCREEN_HEIGHT","get","AnimatedView","View","TourZone","stepKey","name","description","order","shape","borderRadius","children","style","clickable","preventInteraction","required","completed","zonePadding","zonePaddingTop","zonePaddingRight","zonePaddingBottom","zonePaddingLeft","zoneBorderWidth","zoneBorderColor","zoneGlowColor","zoneGlowRadius","zoneGlowSpread","zoneGlowOffsetX","zoneGlowOffsetY","zoneStyle","renderCustomCard","registerStep","unregisterStep","updateStepLayout","currentStep","containerRef","scrollViewRef","targetX","targetY","targetWidth","targetHeight","targetRadius","config","viewRef","isActive","isScrolling","console","log","resolvedZoneStyle","undefined","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","borderWidth","borderColor","glowColor","glowRadius","glowSpread","glowOffsetX","glowOffsetY","measureJS","view","current","container","_x","_y","width","pageX","pageY","_cx","_cy","_cw","_ch","containerPageX","containerPageY","isNaN","finalX","finalY","x","y","value","cancelled","attemptCount","maxAttempts","hasInitiatedScroll","checkAndScroll","delay","timeoutId","setTimeout","scroll","_mx","_my","mw","mh","px","py","topBuffer","bottomBuffer","needsScroll","_sx","_sy","_sw","_sh","scrollPx","scrollPy","measureLayout","contentX","contentY","centerY","scrollY","Math","max","containerPx","containerPy","targetScreenY","targetScreenX","scrollTo","animated","e","error","initialTimeout","clearTimeout","measured","isFinite","springConfig","damping","stiffness","zpt","zpr","zpb","zpl","zShape","sx","sy","sw","sh","sr","cx","cy","radius","onLayout","key","meta","ref","collapsable"],"sourceRoot":"..\\..\\..\\src","sources":["components/TourZone.tsx"],"mappings":"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","ignoreList":[]}
@@ -11,4 +11,47 @@ export const DEFAULT_LABELS = {
11
11
  finish: 'Finish',
12
12
  skip: 'Skip'
13
13
  };
14
+
15
+ /**
16
+ * Default zone style configuration.
17
+ * These values are used when no custom style is provided.
18
+ */
19
+ export const DEFAULT_ZONE_STYLE = {
20
+ padding: 0,
21
+ paddingTop: 0,
22
+ paddingRight: 0,
23
+ paddingBottom: 0,
24
+ paddingLeft: 0,
25
+ borderRadius: 10,
26
+ shape: 'rounded-rect',
27
+ borderWidth: 0,
28
+ borderColor: 'transparent',
29
+ glowColor: '#FFFFFF',
30
+ glowRadius: 10,
31
+ glowSpread: 5,
32
+ glowOffsetX: 0,
33
+ glowOffsetY: 0,
34
+ springDamping: 20,
35
+ springStiffness: 90
36
+ };
37
+
38
+ /**
39
+ * Merges global and per-step zone styles with defaults.
40
+ */
41
+ export function resolveZoneStyle(globalStyle, stepStyle) {
42
+ const merged = {
43
+ ...DEFAULT_ZONE_STYLE,
44
+ ...globalStyle,
45
+ ...stepStyle
46
+ };
47
+
48
+ // Handle individual padding overrides
49
+ return {
50
+ ...merged,
51
+ paddingTop: stepStyle?.paddingTop ?? globalStyle?.paddingTop ?? merged.padding,
52
+ paddingRight: stepStyle?.paddingRight ?? globalStyle?.paddingRight ?? merged.padding,
53
+ paddingBottom: stepStyle?.paddingBottom ?? globalStyle?.paddingBottom ?? merged.padding,
54
+ paddingLeft: stepStyle?.paddingLeft ?? globalStyle?.paddingLeft ?? merged.padding
55
+ };
56
+ }
14
57
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_SPRING_CONFIG","damping","stiffness","DEFAULT_BACKDROP_OPACITY","DEFAULT_LABELS","next","previous","finish","skip"],"sourceRoot":"..\\..\\..\\src","sources":["constants/defaults.ts"],"mappings":";;AAEA,OAAO,MAAMA,qBAAuC,GAAG;EACrDC,OAAO,EAAE,EAAE;EACXC,SAAS,EAAE;AACb,CAAC;AAED,OAAO,MAAMC,wBAAwB,GAAG,GAAG;AAE3C,OAAO,MAAMC,cAAc,GAAG;EAC5BC,IAAI,EAAE,MAAM;EACZC,QAAQ,EAAE,UAAU;EACpBC,MAAM,EAAE,QAAQ;EAChBC,IAAI,EAAE;AACR,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_SPRING_CONFIG","damping","stiffness","DEFAULT_BACKDROP_OPACITY","DEFAULT_LABELS","next","previous","finish","skip","DEFAULT_ZONE_STYLE","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","borderRadius","shape","borderWidth","borderColor","glowColor","glowRadius","glowSpread","glowOffsetX","glowOffsetY","springDamping","springStiffness","resolveZoneStyle","globalStyle","stepStyle","merged"],"sourceRoot":"..\\..\\..\\src","sources":["constants/defaults.ts"],"mappings":";;AAGA,OAAO,MAAMA,qBAAuC,GAAG;EACrDC,OAAO,EAAE,EAAE;EACXC,SAAS,EAAE;AACb,CAAC;AAED,OAAO,MAAMC,wBAAwB,GAAG,GAAG;AAE3C,OAAO,MAAMC,cAAc,GAAG;EAC5BC,IAAI,EAAE,MAAM;EACZC,QAAQ,EAAE,UAAU;EACpBC,MAAM,EAAE,QAAQ;EAChBC,IAAI,EAAE;AACR,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMC,kBAAuC,GAAG;EACrDC,OAAO,EAAE,CAAC;EACVC,UAAU,EAAE,CAAC;EACbC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,WAAW,EAAE,CAAC;EACdC,YAAY,EAAE,EAAE;EAChBC,KAAK,EAAE,cAAc;EACrBC,WAAW,EAAE,CAAC;EACdC,WAAW,EAAE,aAAa;EAC1BC,SAAS,EAAE,SAAS;EACpBC,UAAU,EAAE,EAAE;EACdC,UAAU,EAAE,CAAC;EACbC,WAAW,EAAE,CAAC;EACdC,WAAW,EAAE,CAAC;EACdC,aAAa,EAAE,EAAE;EACjBC,eAAe,EAAE;AACnB,CAAC;;AAED;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC9BC,WAAuB,EACvBC,SAAqB,EACA;EACrB,MAAMC,MAAM,GAAG;IACb,GAAGpB,kBAAkB;IACrB,GAAGkB,WAAW;IACd,GAAGC;EACL,CAAC;;EAED;EACA,OAAO;IACL,GAAGC,MAAM;IACTlB,UAAU,EACRiB,SAAS,EAAEjB,UAAU,IAAIgB,WAAW,EAAEhB,UAAU,IAAIkB,MAAM,CAACnB,OAAO;IACpEE,YAAY,EACVgB,SAAS,EAAEhB,YAAY,IAAIe,WAAW,EAAEf,YAAY,IAAIiB,MAAM,CAACnB,OAAO;IACxEG,aAAa,EACXe,SAAS,EAAEf,aAAa,IAAIc,WAAW,EAAEd,aAAa,IAAIgB,MAAM,CAACnB,OAAO;IAC1EI,WAAW,EACTc,SAAS,EAAEd,WAAW,IAAIa,WAAW,EAAEb,WAAW,IAAIe,MAAM,CAACnB;EACjE,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { createContext } from 'react';
4
+ export const TourContext = /*#__PURE__*/createContext(null);
5
+ //# sourceMappingURL=TourContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","TourContext"],"sourceRoot":"..\\..\\..\\src","sources":["context/TourContext.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,OAAO;AAGrC,OAAO,MAAMC,WAAW,gBAAGD,aAAa,CAAiC,IAAI,CAAC","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { useContext } from 'react';
4
- import { TourContext } from "../components/TourProvider.js";
4
+ import { TourContext } from "../context/TourContext.js";
5
5
  export const useTour = () => {
6
6
  const context = useContext(TourContext);
7
7
  if (!context) {
@@ -1 +1 @@
1
- {"version":3,"names":["useContext","TourContext","useTour","context","Error"],"sourceRoot":"..\\..\\..\\src","sources":["hooks/useTour.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,WAAW,QAAQ,+BAA4B;AAExD,OAAO,MAAMC,OAAO,GAAGA,CAAA,KAAM;EAC3B,MAAMC,OAAO,GAAGH,UAAU,CAACC,WAAW,CAAC;EACvC,IAAI,CAACE,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,4CAA4C,CAAC;EAC/D;EACA,OAAOD,OAAO;AAChB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useContext","TourContext","useTour","context","Error"],"sourceRoot":"..\\..\\..\\src","sources":["hooks/useTour.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,WAAW,QAAQ,2BAAwB;AAEpD,OAAO,MAAMC,OAAO,GAAGA,CAAA,KAAM;EAC3B,MAAMC,OAAO,GAAGH,UAAU,CAACC,WAAW,CAAC;EACvC,IAAI,CAACE,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,4CAA4C,CAAC;EAC/D;EACA,OAAOD,OAAO;AAChB,CAAC","ignoreList":[]}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useMemo } from 'react';
4
+ import { useTour } from "./useTour.js";
5
+ /**
6
+ * Hook to simplify integrating custom scroll views with the tour system.
7
+ *
8
+ * @example
9
+ * // Basic usage with Animated.ScrollView
10
+ * const { scrollViewRef } = useTourScrollView();
11
+ * return <Animated.ScrollView ref={scrollViewRef}>...</Animated.ScrollView>;
12
+ *
13
+ * @example
14
+ * // With scroll disabled during tour
15
+ * const { scrollViewProps } = useTourScrollView({ disableScrollDuringTour: true });
16
+ * return <Animated.ScrollView {...scrollViewProps}>...</Animated.ScrollView>;
17
+ *
18
+ * @example
19
+ * // Custom scroll view wrapper (forwardRef pattern)
20
+ * const MyScrollView = forwardRef((props, ref) => {
21
+ * const { scrollViewRef } = useTourScrollView();
22
+ * useImperativeHandle(ref, () => ({
23
+ * getScrollRef: () => scrollViewRef.current,
24
+ * }));
25
+ * return <Animated.ScrollView ref={scrollViewRef} {...props} />;
26
+ * });
27
+ */
28
+ export function useTourScrollView(options = {}) {
29
+ const {
30
+ disableScrollDuringTour = false
31
+ } = options;
32
+
33
+ // Get the tour context - use type assertion since we know the internal structure
34
+ const tour = useTour();
35
+ const {
36
+ scrollViewRef,
37
+ currentStep
38
+ } = tour;
39
+ const isTourActive = currentStep !== null;
40
+ const scrollEnabled = disableScrollDuringTour ? !isTourActive : true;
41
+ const scrollTo = useCallback(opts => {
42
+ try {
43
+ if (scrollViewRef?.current?.scrollTo) {
44
+ scrollViewRef.current.scrollTo({
45
+ x: opts.x ?? 0,
46
+ y: opts.y ?? 0,
47
+ animated: opts.animated !== false
48
+ });
49
+ }
50
+ } catch {
51
+ // Silently ignore scroll errors
52
+ }
53
+ }, [scrollViewRef]);
54
+ const scrollViewProps = useMemo(() => {
55
+ const props = {
56
+ ref: scrollViewRef
57
+ };
58
+ if (disableScrollDuringTour) {
59
+ props.scrollEnabled = scrollEnabled;
60
+ }
61
+ return props;
62
+ }, [scrollViewRef, disableScrollDuringTour, scrollEnabled]);
63
+ return {
64
+ scrollViewRef,
65
+ isTourActive,
66
+ scrollEnabled,
67
+ scrollTo,
68
+ scrollViewProps
69
+ };
70
+ }
71
+ //# sourceMappingURL=useTourScrollView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useMemo","useTour","useTourScrollView","options","disableScrollDuringTour","tour","scrollViewRef","currentStep","isTourActive","scrollEnabled","scrollTo","opts","current","x","y","animated","scrollViewProps","props","ref"],"sourceRoot":"..\\..\\..\\src","sources":["hooks/useTourScrollView.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAC5C,SAASC,OAAO,QAAQ,cAAW;AAwCnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAC/BC,OAA8B,GAAG,CAAC,CAAC,EACb;EACtB,MAAM;IAAEC,uBAAuB,GAAG;EAAM,CAAC,GAAGD,OAAO;;EAEnD;EACA,MAAME,IAAI,GAAGJ,OAAO,CAAC,CAAC;EACtB,MAAM;IAAEK,aAAa;IAAEC;EAAY,CAAC,GAAGF,IAAW;EAElD,MAAMG,YAAY,GAAGD,WAAW,KAAK,IAAI;EACzC,MAAME,aAAa,GAAGL,uBAAuB,GAAG,CAACI,YAAY,GAAG,IAAI;EAEpE,MAAME,QAAQ,GAAGX,WAAW,CACzBY,IAAoD,IAAK;IACxD,IAAI;MACF,IAAIL,aAAa,EAAEM,OAAO,EAAEF,QAAQ,EAAE;QACpCJ,aAAa,CAACM,OAAO,CAACF,QAAQ,CAAC;UAC7BG,CAAC,EAAEF,IAAI,CAACE,CAAC,IAAI,CAAC;UACdC,CAAC,EAAEH,IAAI,CAACG,CAAC,IAAI,CAAC;UACdC,QAAQ,EAAEJ,IAAI,CAACI,QAAQ,KAAK;QAC9B,CAAC,CAAC;MACJ;IACF,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ,CAAC,EACD,CAACT,aAAa,CAChB,CAAC;EAED,MAAMU,eAAe,GAAGhB,OAAO,CAAC,MAAM;IACpC,MAAMiB,KAA6D,GAAG;MACpEC,GAAG,EAAEZ;IACP,CAAC;IACD,IAAIF,uBAAuB,EAAE;MAC3Ba,KAAK,CAACR,aAAa,GAAGA,aAAa;IACrC;IACA,OAAOQ,KAAK;EACd,CAAC,EAAE,CAACX,aAAa,EAAEF,uBAAuB,EAAEK,aAAa,CAAC,CAAC;EAE3D,OAAO;IACLH,aAAa;IACbE,YAAY;IACZC,aAAa;IACbC,QAAQ;IACRM;EACF,CAAC;AACH","ignoreList":[]}
@@ -4,8 +4,14 @@ export * from "./types/index.js";
4
4
  export * from "./components/TourProvider.js";
5
5
  export * from "./components/TourZone.js";
6
6
  export * from "./hooks/useTour.js";
7
+ export { useTourScrollView } from "./hooks/useTourScrollView.js";
7
8
  export { TourOverlay } from "./components/TourOverlay.js";
8
9
  export { TourTooltip } from "./components/TourTooltip.js";
9
10
  export * from "./constants/defaults.js";
10
11
  export * from "./constants/animations.js";
12
+
13
+ // Storage utilities for advanced use cases
14
+ export { detectStorage, clearStorageCache } from "./utils/storage.js";
15
+
16
+ // Re-export specific types for convenience
11
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TourOverlay","TourTooltip"],"sourceRoot":"..\\..\\src","sources":["index.tsx"],"mappings":";;AAAA,cAAc,kBAAS;AACvB,cAAc,8BAA2B;AACzC,cAAc,0BAAuB;AACrC,cAAc,oBAAiB;AAC/B,SAASA,WAAW,QAAQ,6BAA0B;AACtD,SAASC,WAAW,QAAQ,6BAA0B;AACtD,cAAc,yBAAsB;AACpC,cAAc,2BAAwB","ignoreList":[]}
1
+ {"version":3,"names":["useTourScrollView","TourOverlay","TourTooltip","detectStorage","clearStorageCache"],"sourceRoot":"..\\..\\src","sources":["index.tsx"],"mappings":";;AAAA,cAAc,kBAAS;AACvB,cAAc,8BAA2B;AACzC,cAAc,0BAAuB;AACrC,cAAc,oBAAiB;AAC/B,SAASA,iBAAiB,QAAQ,8BAA2B;AAK7D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,WAAW,QAAQ,6BAA0B;AACtD,cAAc,yBAAsB;AACpC,cAAc,2BAAwB;;AAEtC;AACA,SACEC,aAAa,EACbC,iBAAiB,QAEZ,oBAAiB;;AAExB","ignoreList":[]}