@korsolutions/guidon 1.0.9 → 1.0.10

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 (32) hide show
  1. package/README.md +160 -39
  2. package/dist/commonjs/components/GuidonProvider.js +27 -11
  3. package/dist/commonjs/components/GuidonProvider.js.map +1 -1
  4. package/dist/commonjs/index.js.map +1 -1
  5. package/dist/commonjs/store.js +95 -7
  6. package/dist/commonjs/store.js.map +1 -1
  7. package/dist/module/components/GuidonProvider.js +27 -11
  8. package/dist/module/components/GuidonProvider.js.map +1 -1
  9. package/dist/module/index.js.map +1 -1
  10. package/dist/module/store.js +95 -7
  11. package/dist/module/store.js.map +1 -1
  12. package/dist/typescript/commonjs/components/GuidonProvider.d.ts +1 -1
  13. package/dist/typescript/commonjs/components/GuidonProvider.d.ts.map +1 -1
  14. package/dist/typescript/commonjs/index.d.ts +1 -1
  15. package/dist/typescript/commonjs/index.d.ts.map +1 -1
  16. package/dist/typescript/commonjs/store.d.ts +28 -4
  17. package/dist/typescript/commonjs/store.d.ts.map +1 -1
  18. package/dist/typescript/commonjs/types.d.ts +18 -6
  19. package/dist/typescript/commonjs/types.d.ts.map +1 -1
  20. package/dist/typescript/module/components/GuidonProvider.d.ts +1 -1
  21. package/dist/typescript/module/components/GuidonProvider.d.ts.map +1 -1
  22. package/dist/typescript/module/index.d.ts +1 -1
  23. package/dist/typescript/module/index.d.ts.map +1 -1
  24. package/dist/typescript/module/store.d.ts +28 -4
  25. package/dist/typescript/module/store.d.ts.map +1 -1
  26. package/dist/typescript/module/types.d.ts +18 -6
  27. package/dist/typescript/module/types.d.ts.map +1 -1
  28. package/package.json +1 -1
  29. package/src/components/GuidonProvider.tsx +28 -12
  30. package/src/index.ts +1 -0
  31. package/src/store.ts +103 -13
  32. package/src/types.ts +19 -6
package/README.md CHANGED
@@ -20,7 +20,80 @@ yarn add react react-native react-native-reanimated react-native-safe-area-conte
20
20
 
21
21
  ## Quick Start
22
22
 
23
- ### 1. Define Your Guidon Steps
23
+ Guidon supports two modes:
24
+ - **Single Tour Mode**: One tour per provider (legacy, simpler for single-screen tours)
25
+ - **Multi-Tour Mode**: Multiple named tours configured once, started from anywhere (recommended for apps with multiple screens)
26
+
27
+ ### Multi-Tour Mode (Recommended)
28
+
29
+ Best for apps with tours on multiple screens.
30
+
31
+ #### 1. Configure Tours Once (at app root)
32
+
33
+ ```tsx
34
+ import { Guidon, GuidonProvider } from '@korsolutions/guidon';
35
+
36
+ // Configure all tours ONCE outside React (stable reference)
37
+ const tours = {
38
+ explore: {
39
+ id: 'explore',
40
+ steps: [
41
+ { id: 'search', targetId: 'search-btn', title: 'Search', description: 'Find what you need' },
42
+ { id: 'filter', targetId: 'filter-btn', title: 'Filter', description: 'Narrow results' },
43
+ ],
44
+ onComplete: () => console.log('Explore tour done'),
45
+ },
46
+ profile: {
47
+ id: 'profile',
48
+ steps: [
49
+ { id: 'edit', targetId: 'edit-btn', title: 'Edit Profile', description: 'Update your info' },
50
+ ],
51
+ },
52
+ };
53
+ Guidon.configureTours(tours);
54
+
55
+ // In your app root
56
+ export default function App() {
57
+ return (
58
+ <QueryClientProvider client={queryClient}>
59
+ <GuidonProvider> {/* No config prop needed! */}
60
+ <Navigation />
61
+ </GuidonProvider>
62
+ </QueryClientProvider>
63
+ );
64
+ }
65
+ ```
66
+
67
+ #### 2. Start Tours from Screens
68
+
69
+ ```tsx
70
+ import { useEffect } from 'react';
71
+ import { Guidon, GuidonTarget } from '@korsolutions/guidon';
72
+
73
+ function ExploreScreen() {
74
+ useEffect(() => {
75
+ Guidon.start('explore'); // Start this screen's tour
76
+ return () => Guidon.stop(); // Stop when leaving screen
77
+ }, []);
78
+
79
+ return (
80
+ <View>
81
+ <GuidonTarget id="search-btn">
82
+ <Button title="Search" />
83
+ </GuidonTarget>
84
+ <GuidonTarget id="filter-btn">
85
+ <Button title="Filter" />
86
+ </GuidonTarget>
87
+ </View>
88
+ );
89
+ }
90
+ ```
91
+
92
+ ### Single Tour Mode (Legacy)
93
+
94
+ For simpler use cases with one tour per screen.
95
+
96
+ #### 1. Define Your Guidon Steps
24
97
 
25
98
  ```tsx
26
99
  import type { GuidonConfig } from '@korsolutions/guidon';
@@ -42,13 +115,6 @@ const exploreGuidonConfig: GuidonConfig = {
42
115
  description: 'Use filters to find exactly what you need.',
43
116
  tooltipPosition: 'bottom',
44
117
  },
45
- {
46
- id: 'card-actions',
47
- targetId: 'card-dismiss',
48
- title: 'Card Actions',
49
- description: 'Swipe left to dismiss or tap the X button.',
50
- tooltipPosition: 'top',
51
- },
52
118
  ],
53
119
  theme: {
54
120
  primaryColor: '#007AFF',
@@ -60,7 +126,7 @@ const exploreGuidonConfig: GuidonConfig = {
60
126
  };
61
127
  ```
62
128
 
63
- ### 2. Wrap Your Screen with GuidonProvider
129
+ #### 2. Wrap Your Screen with GuidonProvider
64
130
 
65
131
  ```tsx
66
132
  import { GuidonProvider } from '@korsolutions/guidon';
@@ -77,7 +143,7 @@ function ExploreScreen() {
77
143
  }
78
144
  ```
79
145
 
80
- ### 3. Mark Target Elements with GuidonTarget
146
+ #### 3. Mark Target Elements with GuidonTarget
81
147
 
82
148
  ```tsx
83
149
  import { GuidonTarget } from '@korsolutions/guidon';
@@ -93,6 +159,31 @@ function SearchButton() {
93
159
  }
94
160
  ```
95
161
 
162
+ ## Floating Steps (No Target)
163
+
164
+ Create steps without a target element for welcome screens or announcements:
165
+
166
+ ```tsx
167
+ const config: GuidonConfig = {
168
+ id: 'welcome-tour',
169
+ steps: [
170
+ {
171
+ id: 'welcome',
172
+ // No targetId - this is a floating step!
173
+ title: 'Welcome to Our App!',
174
+ description: 'Let us show you around.',
175
+ floatingPosition: 'center', // 'center' | 'top' | 'bottom' | 'top-left' | etc.
176
+ },
177
+ {
178
+ id: 'feature-1',
179
+ targetId: 'some-button',
180
+ title: 'First Feature',
181
+ description: 'This highlights an element.',
182
+ },
183
+ ],
184
+ };
185
+ ```
186
+
96
187
  ## Persistence
97
188
 
98
189
  The library supports flexible persistence through adapters. You can save guidon progress to local storage, AsyncStorage, or your backend API.
@@ -165,11 +256,43 @@ const compositeAdapter = createCompositeAdapter([
165
256
 
166
257
  ## API Reference
167
258
 
259
+ ### Guidon API (Imperative)
260
+
261
+ Use outside React components or for programmatic control:
262
+
263
+ ```tsx
264
+ import { Guidon } from '@korsolutions/guidon';
265
+
266
+ // Multi-tour mode
267
+ Guidon.configureTours(tours); // Configure all tours at once
268
+ Guidon.start('explore'); // Start a specific tour by ID
269
+ Guidon.stop(); // Stop current tour without completing
270
+
271
+ // Navigation
272
+ Guidon.next(); // Go to next step
273
+ Guidon.previous(); // Go to previous step
274
+ Guidon.goToStep(2); // Jump to specific step
275
+ Guidon.skip(); // Skip the tour
276
+ Guidon.complete(); // Complete the tour
277
+
278
+ // State queries
279
+ Guidon.isActive(); // Check if a tour is running
280
+ Guidon.isCompleted(); // Check if tour completed
281
+ Guidon.getActiveTourId(); // Get current tour ID
282
+ Guidon.getTours(); // Get all configured tours
283
+ Guidon.getCurrentStepIndex(); // Get current step index
284
+ Guidon.getCurrentStep(); // Get current step object
285
+ Guidon.getSteps(); // Get all steps of active tour
286
+
287
+ // Reset
288
+ Guidon.reset(); // Reset to initial state
289
+ ```
290
+
168
291
  ### GuidonProvider Props
169
292
 
170
293
  | Prop | Type | Default | Description |
171
294
  |------|------|---------|-------------|
172
- | `config` | `GuidonConfig` | required | Configuration for the guidon |
295
+ | `config` | `GuidonConfig` | - | Configuration (optional in multi-tour mode) |
173
296
  | `autoStart` | `boolean` | `true` | Whether to auto-start when mounted |
174
297
  | `shouldStart` | `() => boolean \| Promise<boolean>` | - | Custom condition for starting |
175
298
  | `persistenceAdapter` | `GuidonPersistenceAdapter` | - | Adapter for saving progress |
@@ -183,8 +306,8 @@ const compositeAdapter = createCompositeAdapter([
183
306
  ```tsx
184
307
  interface GuidonConfig {
185
308
  id: string; // Unique identifier
186
- steps: GuidonStep[]; // Array of steps
187
- theme?: GuidonTheme; // Theme customization
309
+ steps: GuidonStep[]; // Array of steps
310
+ theme?: GuidonTheme; // Theme customization
188
311
  animationDuration?: number; // Animation duration (ms)
189
312
  onComplete?: () => void; // Called on completion
190
313
  onSkip?: () => void; // Called when skipped
@@ -197,13 +320,16 @@ interface GuidonConfig {
197
320
  ```tsx
198
321
  interface GuidonStep {
199
322
  id: string; // Unique step identifier
200
- targetId: string; // ID of the target element
323
+ targetId?: string; // ID of target element (optional for floating steps)
201
324
  title: string; // Tooltip title
202
325
  description: string; // Tooltip description
203
326
  tooltipPosition?: 'top' | 'bottom' | 'left' | 'right' | 'auto';
327
+ floatingPosition?: 'center' | 'top' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
204
328
  customContent?: ReactNode; // Additional content in tooltip
205
329
  onStepEnter?: () => void; // Called when step becomes active
206
330
  onStepExit?: () => void; // Called when leaving step
331
+ waitingMessage?: string; // Message while waiting for target to mount
332
+ waitTimeout?: number; // Auto-skip timeout (ms) if target doesn't mount
207
333
  }
208
334
  ```
209
335
 
@@ -225,6 +351,19 @@ interface GuidonTheme {
225
351
  }
226
352
  ```
227
353
 
354
+ ### GuidonTours
355
+
356
+ ```tsx
357
+ type GuidonTours = Record<string, GuidonConfig>;
358
+
359
+ // Example
360
+ const tours: GuidonTours = {
361
+ explore: { id: 'explore', steps: [...] },
362
+ profile: { id: 'profile', steps: [...] },
363
+ settings: { id: 'settings', steps: [...] },
364
+ };
365
+ ```
366
+
228
367
  ## Controlling the Guidon
229
368
 
230
369
  ### Using the Context Hook
@@ -233,37 +372,19 @@ interface GuidonTheme {
233
372
  import { useGuidonContext } from '@korsolutions/guidon';
234
373
 
235
374
  function ReplayButton() {
236
- const { replay, isCompleted } = useGuidonContext();
237
-
238
- if (!isCompleted) return null;
375
+ const { replay, isCompleted, start } = useGuidonContext();
239
376
 
240
377
  return (
241
- <Button onPress={replay}>
242
- Replay Tutorial
243
- </Button>
378
+ <>
379
+ {isCompleted && (
380
+ <Button onPress={replay}>Replay Tutorial</Button>
381
+ )}
382
+ <Button onPress={() => start('explore')}>Start Explore Tour</Button>
383
+ </>
244
384
  );
245
385
  }
246
386
  ```
247
387
 
248
- ### Using the Guidon API (Outside React)
249
-
250
- ```tsx
251
- import { Guidon } from '@korsolutions/guidon';
252
-
253
- // Start programmatically
254
- Guidon.start();
255
-
256
- // Skip to a specific step
257
- Guidon.goToStep(2);
258
-
259
- // Complete the guidon
260
- Guidon.complete();
261
-
262
- // Reset and replay
263
- Guidon.reset();
264
- Guidon.start();
265
- ```
266
-
267
388
  ### Using Hook Selectors
268
389
 
269
390
  ```tsx
@@ -33,6 +33,7 @@ function GuidonProvider({
33
33
  const hasInitialized = (0, _react.useRef)(false);
34
34
  const isActive = (0, _store.useGuidonStore)(state => state.isActive);
35
35
  const storeIsCompleted = (0, _store.useGuidonStore)(state => state.isCompleted);
36
+ const storeConfig = (0, _store.useGuidonStore)(state => state.config);
36
37
  const currentStepIndex = (0, _store.useGuidonStore)(state => state.currentStepIndex);
37
38
  const configure = (0, _store.useGuidonStore)(state => state.configure);
38
39
  const start = (0, _store.useGuidonStore)(state => state.start);
@@ -42,15 +43,21 @@ function GuidonProvider({
42
43
 
43
44
  // Check for waiting state (target element not mounted)
44
45
  const waitingState = (0, _store.useWaitingState)();
46
+
47
+ // Use config prop ID for persistence, or fall back to store config ID
48
+ const persistenceId = config?.id ?? storeConfig?.id ?? '__guidon_default__';
45
49
  const {
46
50
  isLoading,
47
51
  isCompleted: persistedCompleted,
48
52
  markCompleted,
49
53
  markStepViewed,
50
54
  clearProgress
51
- } = (0, _hooks.useGuidonPersistence)(persistenceAdapter, config.id);
55
+ } = (0, _hooks.useGuidonPersistence)(persistenceAdapter, persistenceId);
52
56
  const isCompleted = storeIsCompleted || persistedCompleted;
57
+
58
+ // Only configure if a config prop is provided (legacy single-config mode)
53
59
  (0, _react.useEffect)(() => {
60
+ if (!config) return;
54
61
  const enhancedConfig = {
55
62
  ...config,
56
63
  onComplete: async () => {
@@ -74,8 +81,10 @@ function GuidonProvider({
74
81
  };
75
82
  configure(enhancedConfig);
76
83
  }, [config, configure, persistenceAdapter, markCompleted, markStepViewed, currentStepIndex]);
84
+
85
+ // Auto-start only in legacy single-config mode
77
86
  (0, _react.useEffect)(() => {
78
- if (!autoStart || hasInitialized.current || isLoading) return;
87
+ if (!config || !autoStart || hasInitialized.current || isLoading) return;
79
88
  const checkAndStart = async () => {
80
89
  hasInitialized.current = true;
81
90
  if (persistedCompleted) return;
@@ -88,11 +97,14 @@ function GuidonProvider({
88
97
  }, 500);
89
98
  };
90
99
  checkAndStart();
91
- }, [autoStart, isLoading, persistedCompleted, shouldStart, start]);
100
+ }, [config, autoStart, isLoading, persistedCompleted, shouldStart, start]);
92
101
 
93
102
  // Handle wait timeout - auto-skip to next step if waiting too long
103
+ // Works for both legacy and multi-tour mode (reads from store)
94
104
  (0, _react.useEffect)(() => {
95
- const currentStep = config.steps[currentStepIndex];
105
+ const activeConfig = storeConfig;
106
+ if (!activeConfig) return;
107
+ const currentStep = activeConfig.steps[currentStepIndex];
96
108
  const waitTimeout = currentStep?.waitTimeout;
97
109
 
98
110
  // Only set timeout if:
@@ -110,7 +122,7 @@ function GuidonProvider({
110
122
  }
111
123
  }, waitTimeout);
112
124
  return () => clearTimeout(timer);
113
- }, [currentStepIndex, config.steps, waitingState?.isWaiting, next]);
125
+ }, [currentStepIndex, storeConfig, waitingState?.isWaiting, next]);
114
126
  const replay = (0, _react.useCallback)(async () => {
115
127
  if (persistenceAdapter) {
116
128
  await clearProgress();
@@ -121,9 +133,9 @@ function GuidonProvider({
121
133
  start();
122
134
  }, 100);
123
135
  }, [persistenceAdapter, clearProgress, reset, start]);
124
- const manualStart = (0, _react.useCallback)(() => {
136
+ const manualStart = (0, _react.useCallback)(tourId => {
125
137
  if (!isActive && !isLoading) {
126
- start();
138
+ start(tourId);
127
139
  }
128
140
  }, [isActive, isLoading, start]);
129
141
  const contextValue = {
@@ -135,14 +147,18 @@ function GuidonProvider({
135
147
  isCompleted,
136
148
  isLoading
137
149
  };
150
+
151
+ // Get theme from prop config or store config
152
+ const activeTheme = config?.theme ?? storeConfig?.theme;
153
+ const activeDuration = config?.animationDuration ?? storeConfig?.animationDuration;
138
154
  const overlayContent = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
139
155
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GuidonOverlay.GuidonOverlay, {
140
- theme: config.theme,
141
- animationDuration: config.animationDuration,
156
+ theme: activeTheme,
157
+ animationDuration: activeDuration,
142
158
  onBackdropPress: onBackdropPress
143
159
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GuidonTooltip.GuidonTooltip, {
144
- theme: config.theme,
145
- animationDuration: config.animationDuration,
160
+ theme: activeTheme,
161
+ animationDuration: activeDuration,
146
162
  renderCustomTooltip: renderTooltip,
147
163
  labels: tooltipLabels
148
164
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_store","_hooks","_GuidonOverlay","_GuidonTooltip","_jsxRuntime","GuidonContext","createContext","useGuidonContext","context","useContext","Error","GuidonProvider","children","config","autoStart","shouldStart","persistenceAdapter","portalComponent","Portal","renderTooltip","tooltipLabels","onBackdropPress","hasInitialized","useRef","isActive","useGuidonStore","state","storeIsCompleted","isCompleted","currentStepIndex","configure","start","next","skip","reset","waitingState","useWaitingState","isLoading","persistedCompleted","markCompleted","markStepViewed","clearProgress","useGuidonPersistence","id","useEffect","enhancedConfig","onComplete","onSkip","onStepChange","stepIndex","step","current","checkAndStart","should","setTimeout","currentStep","steps","waitTimeout","isWaiting","timer","stillWaiting","getState","targetMeasurements","targetId","undefined","clearTimeout","replay","useCallback","manualStart","contextValue","overlayContent","jsxs","Fragment","jsx","GuidonOverlay","theme","animationDuration","GuidonTooltip","renderCustomTooltip","labels","Provider","value"],"sourceRoot":"../../../src","sources":["components/GuidonProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_store","_hooks","_GuidonOverlay","_GuidonTooltip","_jsxRuntime","GuidonContext","createContext","useGuidonContext","context","useContext","Error","GuidonProvider","children","config","autoStart","shouldStart","persistenceAdapter","portalComponent","Portal","renderTooltip","tooltipLabels","onBackdropPress","hasInitialized","useRef","isActive","useGuidonStore","state","storeIsCompleted","isCompleted","storeConfig","currentStepIndex","configure","start","next","skip","reset","waitingState","useWaitingState","persistenceId","id","isLoading","persistedCompleted","markCompleted","markStepViewed","clearProgress","useGuidonPersistence","useEffect","enhancedConfig","onComplete","onSkip","onStepChange","stepIndex","step","current","checkAndStart","should","setTimeout","activeConfig","currentStep","steps","waitTimeout","isWaiting","timer","stillWaiting","getState","targetMeasurements","targetId","undefined","clearTimeout","replay","useCallback","manualStart","tourId","contextValue","activeTheme","theme","activeDuration","animationDuration","overlayContent","jsxs","Fragment","jsx","GuidonOverlay","GuidonTooltip","renderCustomTooltip","labels","Provider","value"],"sourceRoot":"../../../src","sources":["components/GuidonProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_index","require","_index2","_store","_adapters","_hooks"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AASA,IAAAC,OAAA,GAAAD,OAAA;AAGA,IAAAE,MAAA,GAAAF,OAAA;AA+BA,IAAAG,SAAA,GAAAH,OAAA;AASA,IAAAI,MAAA,GAAAJ,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_index","require","_index2","_store","_adapters","_hooks"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AASA,IAAAC,OAAA,GAAAD,OAAA;AAGA,IAAAE,MAAA,GAAAF,OAAA;AAgCA,IAAAG,SAAA,GAAAH,OAAA;AASA,IAAAI,MAAA,GAAAJ,OAAA","ignoreList":[]}
@@ -7,6 +7,8 @@ exports.useWaitingState = exports.useTargetMeasurements = exports.useIsFloatingS
7
7
  var _zustand = require("zustand");
8
8
  var _shallow = require("zustand/react/shallow");
9
9
  const initialState = {
10
+ tours: {},
11
+ activeTourId: null,
10
12
  config: null,
11
13
  isActive: false,
12
14
  currentStepIndex: 0,
@@ -20,6 +22,14 @@ const initialState = {
20
22
  const useGuidonStore = exports.useGuidonStore = (0, _zustand.create)((set, get) => ({
21
23
  ...initialState,
22
24
  configure: config => {
25
+ const {
26
+ config: existingConfig
27
+ } = get();
28
+
29
+ // Skip if same config reference (prevents re-renders from resetting)
30
+ if (existingConfig === config) {
31
+ return;
32
+ }
23
33
  console.log("[Guidon] configure() called - resetting to step 0");
24
34
  set({
25
35
  config,
@@ -27,11 +37,40 @@ const useGuidonStore = exports.useGuidonStore = (0, _zustand.create)((set, get)
27
37
  isCompleted: false
28
38
  });
29
39
  },
30
- start: () => {
40
+ configureTours: tours => {
41
+ const {
42
+ tours: existingTours
43
+ } = get();
44
+
45
+ // Skip if same tours reference (prevents re-renders from resetting)
46
+ if (existingTours === tours) {
47
+ return;
48
+ }
49
+ console.log("[Guidon] configureTours() called with tours:", Object.keys(tours));
50
+ set({
51
+ tours
52
+ });
53
+ },
54
+ start: tourId => {
31
55
  const {
32
- config
56
+ tours,
57
+ config: legacyConfig
33
58
  } = get();
34
- console.log("[Guidon] start() called - will reset to step 0", {
59
+
60
+ // If tourId provided, use that tour from the tours collection
61
+ let config = null;
62
+ if (tourId) {
63
+ config = tours[tourId] ?? null;
64
+ if (!config) {
65
+ console.log(`[Guidon] start() - tour "${tourId}" not found`);
66
+ return;
67
+ }
68
+ } else {
69
+ // Fall back to legacy single config
70
+ config = legacyConfig;
71
+ }
72
+ console.log("[Guidon] start() called", {
73
+ tourId: tourId ?? "legacy",
35
74
  hasConfig: !!config,
36
75
  stepCount: config?.steps.length ?? 0
37
76
  });
@@ -41,6 +80,8 @@ const useGuidonStore = exports.useGuidonStore = (0, _zustand.create)((set, get)
41
80
  }
42
81
  console.log("[Guidon] starting walkthrough with steps:", config.steps.map(s => s.id));
43
82
  set({
83
+ config,
84
+ activeTourId: tourId ?? null,
44
85
  isActive: true,
45
86
  currentStepIndex: 0,
46
87
  isCompleted: false
@@ -53,6 +94,21 @@ const useGuidonStore = exports.useGuidonStore = (0, _zustand.create)((set, get)
53
94
  config.onStepChange?.(0, firstStep);
54
95
  }
55
96
  },
97
+ stop: () => {
98
+ const {
99
+ config,
100
+ currentStepIndex,
101
+ isActive
102
+ } = get();
103
+ if (!isActive) return;
104
+ console.log("[Guidon] stop() called");
105
+ const currentStep = config?.steps[currentStepIndex];
106
+ currentStep?.onStepExit?.();
107
+ set({
108
+ isActive: false,
109
+ activeTourId: null
110
+ });
111
+ },
56
112
  next: () => {
57
113
  const {
58
114
  config,
@@ -202,16 +258,36 @@ const useGuidonStore = exports.useGuidonStore = (0, _zustand.create)((set, get)
202
258
  */
203
259
  const Guidon = exports.Guidon = {
204
260
  /**
205
- * Configure the walkthrough with steps and options
261
+ * Configure a single walkthrough (legacy API)
206
262
  */
207
263
  configure: config => {
208
264
  useGuidonStore.getState().configure(config);
209
265
  },
210
266
  /**
211
- * Start the walkthrough
267
+ * Configure multiple named tours
268
+ * @example
269
+ * Guidon.configureTours({
270
+ * explore: { steps: [...], onComplete: () => {} },
271
+ * profile: { steps: [...] },
272
+ * });
273
+ */
274
+ configureTours: tours => {
275
+ useGuidonStore.getState().configureTours(tours);
276
+ },
277
+ /**
278
+ * Start a tour by ID, or the legacy single config if no ID provided
279
+ * @example
280
+ * Guidon.start('explore'); // Start the 'explore' tour
281
+ * Guidon.start(); // Start legacy single config
212
282
  */
213
- start: () => {
214
- useGuidonStore.getState().start();
283
+ start: tourId => {
284
+ useGuidonStore.getState().start(tourId);
285
+ },
286
+ /**
287
+ * Stop the current tour without completing it
288
+ */
289
+ stop: () => {
290
+ useGuidonStore.getState().stop();
215
291
  },
216
292
  /**
217
293
  * Go to the next step
@@ -261,6 +337,18 @@ const Guidon = exports.Guidon = {
261
337
  isCompleted: () => {
262
338
  return useGuidonStore.getState().isCompleted;
263
339
  },
340
+ /**
341
+ * Get the currently active tour ID (null if using legacy single config)
342
+ */
343
+ getActiveTourId: () => {
344
+ return useGuidonStore.getState().activeTourId;
345
+ },
346
+ /**
347
+ * Get all configured tours
348
+ */
349
+ getTours: () => {
350
+ return useGuidonStore.getState().tours;
351
+ },
264
352
  /**
265
353
  * Get the current step index
266
354
  */
@@ -1 +1 @@
1
- {"version":3,"names":["_zustand","require","_shallow","initialState","config","isActive","currentStepIndex","isCompleted","targetMeasurements","isLoading","error","waitingForTarget","waitingTargetId","useGuidonStore","exports","create","set","get","configure","console","log","start","hasConfig","stepCount","steps","length","map","s","id","firstStep","onStepEnter","onStepChange","next","totalSteps","currentStep","onStepExit","nextIndex","nextStep","complete","previous","prevIndex","prevStep","goToStep","index","targetStep","skip","onSkip","onComplete","reset","registerTarget","targetId","measurements","state","unregisterTarget","_","rest","setLoading","setError","Guidon","getState","getCurrentStepIndex","getCurrentStep","getSteps","subscribe","useGuidonActive","useGuidonStep","useGuidonProgress","useShallow","percentage","useTargetMeasurements","useWaitingState","hasMeasurements","isWaiting","message","waitingMessage","useIsFloatingStep"],"sourceRoot":"../../src","sources":["store.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_zustand","require","_shallow","initialState","tours","activeTourId","config","isActive","currentStepIndex","isCompleted","targetMeasurements","isLoading","error","waitingForTarget","waitingTargetId","useGuidonStore","exports","create","set","get","configure","existingConfig","console","log","configureTours","existingTours","Object","keys","start","tourId","legacyConfig","hasConfig","stepCount","steps","length","map","s","id","firstStep","onStepEnter","onStepChange","stop","currentStep","onStepExit","next","totalSteps","nextIndex","nextStep","complete","previous","prevIndex","prevStep","goToStep","index","targetStep","skip","onSkip","onComplete","reset","registerTarget","targetId","measurements","state","unregisterTarget","_","rest","setLoading","setError","Guidon","getState","getActiveTourId","getTours","getCurrentStepIndex","getCurrentStep","getSteps","subscribe","useGuidonActive","useGuidonStep","useGuidonProgress","useShallow","percentage","useTargetMeasurements","useWaitingState","hasMeasurements","isWaiting","message","waitingMessage","useIsFloatingStep"],"sourceRoot":"../../src","sources":["store.ts"],"mappings":"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","ignoreList":[]}