react-native-lumen 1.0.1 → 1.1.1

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 (49) hide show
  1. package/README.md +770 -231
  2. package/lib/module/components/TourOverlay.js +45 -45
  3. package/lib/module/components/TourOverlay.js.map +1 -1
  4. package/lib/module/components/TourProvider.js +345 -80
  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 +229 -125
  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 +74 -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 +76 -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 +316 -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 +169 -171
  41. package/src/components/TourOverlay.tsx +0 -153
  42. package/src/components/TourProvider.tsx +0 -361
  43. package/src/components/TourTooltip.tsx +0 -256
  44. package/src/components/TourZone.tsx +0 -371
  45. package/src/constants/animations.ts +0 -71
  46. package/src/constants/defaults.ts +0 -15
  47. package/src/hooks/useTour.ts +0 -10
  48. package/src/index.tsx +0 -8
  49. package/src/types/index.ts +0 -142
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import { memo } from 'react';
3
+ import { memo, useMemo } from 'react';
4
4
  import { StyleSheet, Dimensions } from 'react-native';
5
5
  import Svg, { Path } from 'react-native-svg';
6
6
  import Animated, { useAnimatedProps, useAnimatedStyle } from 'react-native-reanimated';
7
7
  import { useTour } from "../hooks/useTour.js";
8
+ import { DEFAULT_ZONE_STYLE } from "../constants/defaults.js";
8
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
10
  const {
10
11
  width: SCREEN_WIDTH,
@@ -13,15 +14,11 @@ const {
13
14
  const AnimatedPath = Animated.createAnimatedComponent(Path);
14
15
  const AnimatedView = Animated.View;
15
16
 
16
- // Helper to create rounded rect path
17
- // x,y are top-left coordinates
17
+ // SVG rounded-rect path with a cutout hole (fillRule="evenodd")
18
18
  const createRoundedRectPath = (x, y, w, h, r) => {
19
19
  'worklet';
20
20
 
21
- // Ensure radius doesn't exceed dimensions
22
21
  const radius = Math.min(r, w / 2, h / 2);
23
-
24
- // Standard SVG Path command for rounded rect
25
22
  return `
26
23
  M ${x + radius}, ${y}
27
24
  H ${x + w - radius}
@@ -43,15 +40,21 @@ export const TourOverlay = /*#__PURE__*/memo(() => {
43
40
  targetHeight,
44
41
  targetRadius,
45
42
  opacity,
43
+ zoneBorderWidth,
46
44
  config,
47
45
  currentStep,
48
- steps
46
+ steps,
47
+ currentZoneStyle
49
48
  } = useTour();
49
+ const zoneStyle = useMemo(() => {
50
+ return {
51
+ ...DEFAULT_ZONE_STYLE,
52
+ ...config?.zoneStyle,
53
+ ...currentZoneStyle
54
+ };
55
+ }, [config?.zoneStyle, currentZoneStyle]);
50
56
 
51
- // Create the d string for the mask
52
- // Outer rectangle covers the whole screen
53
- // Inner shape is the "hole"
54
- // fillRule="evenodd" makes the intersection transparent
57
+ // Backdrop SVG: full-screen rect minus the highlight cutout
55
58
  const animatedProps = useAnimatedProps(() => {
56
59
  const holePath = createRoundedRectPath(targetX.value, targetY.value, targetWidth.value, targetHeight.value, targetRadius.value);
57
60
  const path = `
@@ -70,33 +73,10 @@ export const TourOverlay = /*#__PURE__*/memo(() => {
70
73
  const step = currentStep ? steps[currentStep] : null;
71
74
  const isClickable = step?.clickable ?? false;
72
75
 
73
- // Interaction Logic:
74
- // 1. preventInteraction = true:
75
- // - Wrapper pointerEvents = 'box-none' (pass through) BUT SVG is auto?
76
- // - Actually, if we want to block OUTSIDE but allow INSIDE:
77
- // - SVG path normally blocks where it draws (the dark part).
78
- // - The 'hole' is empty, so touches pass through the hole to the app?
79
- // - YES, with fillRule="evenodd", the hole effectively has no fill.
80
- // - So if SVG is 'auto', touching the dark mask is blocked (if we consume touch).
81
- // - Touching the hole goes through to the app (GOOD for clickable).
82
- // - IF we want to BLOCK the hole (clickable=false):
83
- // - We need a transparent view covering the hole that consumes touches.
84
- //
85
- // 2. preventInteraction = false (default):
86
- // - Overlay shouldn't block anything?
87
- // - pointerEvents='none' on the whole container.
88
-
89
- const shouldBlockOutside = config?.preventInteraction ?? false;
90
-
91
- // If we don't want to block outside, we just let everything pass.
92
- // But wait, if we let everything pass, we can't implement 'clickable=false' strictness?
93
- // Usually preventInteraction=false means "just show the highlighter, let user do whatever".
94
-
76
+ // When preventInteraction is true, the SVG blocks touches outside the hole.
77
+ // A transparent view covers the hole to block touches inside it when clickable=false.
78
+ const shouldBlockOutside = step?.preventInteraction ?? config?.preventInteraction ?? false;
95
79
  const containerPointerEvents = shouldBlockOutside && currentStep ? 'box-none' : 'none';
96
-
97
- // If blocking outside, the SVG (which is absolute fill) needs to catch touches on the dark part.
98
-
99
- // Blocker style for the hole (only if NOT clickable)
100
80
  const blockerStyle = useAnimatedStyle(() => {
101
81
  return {
102
82
  position: 'absolute',
@@ -104,10 +84,31 @@ export const TourOverlay = /*#__PURE__*/memo(() => {
104
84
  top: targetY.value,
105
85
  width: targetWidth.value,
106
86
  height: targetHeight.value,
107
- // We can match radius too if needed, but rect is fine for touch area usually
108
87
  borderRadius: targetRadius.value
109
88
  };
110
89
  });
90
+
91
+ // Border/glow ring tracks the highlight and fades with the backdrop
92
+ const zoneBorderStyle = useAnimatedStyle(() => {
93
+ const isGlowEnabled = config?.enableGlow === true;
94
+ const borderW = zoneBorderWidth?.value ?? zoneStyle.borderWidth;
95
+ return {
96
+ position: 'absolute',
97
+ left: targetX.value,
98
+ top: targetY.value,
99
+ width: targetWidth.value,
100
+ height: targetHeight.value,
101
+ borderRadius: targetRadius.value,
102
+ borderWidth: borderW,
103
+ borderColor: zoneStyle.borderColor,
104
+ backgroundColor: 'transparent',
105
+ opacity: opacity.value,
106
+ ...(isGlowEnabled && {
107
+ boxShadow: `${zoneStyle.glowOffsetX}px ${zoneStyle.glowOffsetY}px ${zoneStyle.glowRadius}px ${zoneStyle.glowSpread}px ${zoneStyle.glowColor}`
108
+ })
109
+ };
110
+ });
111
+ const showBorder = config?.enableGlow === true || zoneStyle.borderWidth > 0;
111
112
  return /*#__PURE__*/_jsxs(AnimatedView, {
112
113
  pointerEvents: containerPointerEvents,
113
114
  style: StyleSheet.absoluteFill,
@@ -117,17 +118,16 @@ export const TourOverlay = /*#__PURE__*/memo(() => {
117
118
  style: StyleSheet.absoluteFill,
118
119
  children: /*#__PURE__*/_jsx(AnimatedPath, {
119
120
  animatedProps: animatedProps,
120
- fill: "black" // The backdrop color
121
- ,
121
+ fill: "black",
122
122
  fillRule: "evenodd",
123
- onPress: () => {
124
- // Consume touch on the backdrop?
125
- }
123
+ onPress: () => {}
126
124
  })
127
125
  }), shouldBlockOutside && !isClickable && currentStep && /*#__PURE__*/_jsx(AnimatedView, {
128
126
  style: blockerStyle,
129
- pointerEvents: "auto" // Catch touches
130
- // backgroundColor="transparent" // Default
127
+ pointerEvents: "auto"
128
+ }), showBorder && currentStep && /*#__PURE__*/_jsx(AnimatedView, {
129
+ style: zoneBorderStyle,
130
+ pointerEvents: "none"
131
131
  })]
132
132
  });
133
133
  });
@@ -1 +1 @@
1
- {"version":3,"names":["memo","StyleSheet","Dimensions","Svg","Path","Animated","useAnimatedProps","useAnimatedStyle","useTour","jsx","_jsx","jsxs","_jsxs","width","SCREEN_WIDTH","height","SCREEN_HEIGHT","get","AnimatedPath","createAnimatedComponent","AnimatedView","View","createRoundedRectPath","x","y","w","h","r","radius","Math","min","TourOverlay","targetX","targetY","targetWidth","targetHeight","targetRadius","opacity","config","currentStep","steps","animatedProps","holePath","value","path","d","fillOpacity","step","isClickable","clickable","shouldBlockOutside","preventInteraction","containerPointerEvents","blockerStyle","position","left","top","borderRadius","pointerEvents","style","absoluteFill","children","fill","fillRule","onPress"],"sourceRoot":"..\\..\\..\\src","sources":["components/TourOverlay.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["memo","useMemo","StyleSheet","Dimensions","Svg","Path","Animated","useAnimatedProps","useAnimatedStyle","useTour","DEFAULT_ZONE_STYLE","jsx","_jsx","jsxs","_jsxs","width","SCREEN_WIDTH","height","SCREEN_HEIGHT","get","AnimatedPath","createAnimatedComponent","AnimatedView","View","createRoundedRectPath","x","y","w","h","r","radius","Math","min","TourOverlay","targetX","targetY","targetWidth","targetHeight","targetRadius","opacity","zoneBorderWidth","config","currentStep","steps","currentZoneStyle","zoneStyle","animatedProps","holePath","value","path","d","fillOpacity","step","isClickable","clickable","shouldBlockOutside","preventInteraction","containerPointerEvents","blockerStyle","position","left","top","borderRadius","zoneBorderStyle","isGlowEnabled","enableGlow","borderW","borderWidth","borderColor","backgroundColor","boxShadow","glowOffsetX","glowOffsetY","glowRadius","glowSpread","glowColor","showBorder","pointerEvents","style","absoluteFill","children","fill","fillRule","onPress"],"sourceRoot":"..\\..\\..\\src","sources":["components/TourOverlay.tsx"],"mappings":"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","ignoreList":[]}