@aladinbs/react-guided-tour 1.0.2 → 1.0.3

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 (39) hide show
  1. package/README.md +11 -1
  2. package/dist/components/ErrorBoundary.d.ts +31 -0
  3. package/dist/components/ErrorBoundary.d.ts.map +1 -0
  4. package/dist/components/Toast.d.ts +14 -0
  5. package/dist/components/Toast.d.ts.map +1 -0
  6. package/dist/components/ToastProvider.d.ts +28 -0
  7. package/dist/components/ToastProvider.d.ts.map +1 -0
  8. package/dist/components/TourOverlay.d.ts +2 -1
  9. package/dist/components/TourOverlay.d.ts.map +1 -1
  10. package/dist/components/TourPopover.d.ts +2 -1
  11. package/dist/components/TourPopover.d.ts.map +1 -1
  12. package/dist/components/TourProvider.d.ts +10 -2
  13. package/dist/components/TourProvider.d.ts.map +1 -1
  14. package/dist/components/TourRunner.d.ts +2 -1
  15. package/dist/components/TourRunner.d.ts.map +1 -1
  16. package/dist/core/TourActions.d.ts +10 -0
  17. package/dist/core/TourActions.d.ts.map +1 -1
  18. package/dist/core/TourEngine.d.ts +32 -0
  19. package/dist/core/TourEngine.d.ts.map +1 -1
  20. package/dist/hooks/useErrorHandler.d.ts +26 -0
  21. package/dist/hooks/useErrorHandler.d.ts.map +1 -0
  22. package/dist/hooks/useToastErrorHandler.d.ts +15 -0
  23. package/dist/hooks/useToastErrorHandler.d.ts.map +1 -0
  24. package/dist/hooks/useTourEngine.d.ts +4 -0
  25. package/dist/hooks/useTourEngine.d.ts.map +1 -1
  26. package/dist/hooks/useTourHighlight.d.ts +4 -0
  27. package/dist/hooks/useTourHighlight.d.ts.map +1 -1
  28. package/dist/index.d.ts +136 -6
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.esm.js +418 -137
  31. package/dist/index.esm.js.map +1 -1
  32. package/dist/index.js +442 -156
  33. package/dist/index.js.map +1 -1
  34. package/dist/integrations/TabIntegration.d.ts.map +1 -1
  35. package/dist/types/index.d.ts +3 -0
  36. package/dist/types/index.d.ts.map +1 -1
  37. package/dist/utils/positioning.d.ts +13 -0
  38. package/dist/utils/positioning.d.ts.map +1 -1
  39. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/core/TourStorage.ts","../src/core/TourEngine.ts","../src/core/TourActions.ts","../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/hooks/useTourEngine.ts","../src/components/TourProvider.tsx","../src/utils/positioning.ts","../src/hooks/useTourHighlight.ts","../src/components/TourOverlay.tsx","../node_modules/clsx/dist/clsx.mjs","../src/components/TourPopover.tsx","../src/components/TourRunner.tsx","../src/integrations/TabIntegration.ts","../src/integrations/WizardIntegration.ts","../src/integrations/NavigationIntegration.ts"],"sourcesContent":["import { TourState } from '../types';\n\nexport class TourStorage {\n private key: string;\n\n constructor(key: string) {\n this.key = key;\n }\n\n public saveState(state: TourState): void {\n try {\n const stateToSave = {\n currentStepIndex: state.currentStepIndex,\n completedSteps: state.completedSteps,\n skippedSteps: state.skippedSteps,\n isCompleted: false,\n isSkipped: false,\n };\n localStorage.setItem(this.key, JSON.stringify(stateToSave));\n } catch (error) {\n console.warn('Failed to save tour state to localStorage:', error);\n }\n }\n\n public getState(): Partial<TourState> | null {\n try {\n const saved = localStorage.getItem(this.key);\n if (!saved) return null;\n \n return JSON.parse(saved);\n } catch (error) {\n console.warn('Failed to load tour state from localStorage:', error);\n return null;\n }\n }\n\n public clearState(): void {\n try {\n localStorage.removeItem(this.key);\n } catch (error) {\n console.warn('Failed to clear tour state from localStorage:', error);\n }\n }\n\n public hasState(): boolean {\n try {\n return localStorage.getItem(this.key) !== null;\n } catch (error) {\n return false;\n }\n }\n\n public saveCompletion(): void {\n try {\n const existing = this.getState() || {};\n const stateToSave = {\n ...existing,\n isCompleted: true,\n completedAt: new Date().toISOString(),\n };\n localStorage.setItem(this.key, JSON.stringify(stateToSave));\n } catch (error) {\n console.warn('Failed to save tour completion to localStorage:', error);\n }\n }\n\n public saveSkip(): void {\n try {\n const existing = this.getState() || {};\n const stateToSave = {\n ...existing,\n isSkipped: true,\n skippedAt: new Date().toISOString(),\n };\n localStorage.setItem(this.key, JSON.stringify(stateToSave));\n } catch (error) {\n console.warn('Failed to save tour skip to localStorage:', error);\n }\n }\n\n public isCompleted(): boolean {\n try {\n const saved = this.getState();\n return saved?.isCompleted === true;\n } catch (error) {\n return false;\n }\n }\n\n public isSkipped(): boolean {\n try {\n const saved = this.getState();\n return saved?.isSkipped === true;\n } catch (error) {\n return false;\n }\n }\n}\n","import { TourConfig, TourStep, TourState, TourEngineEvents, TourEventCallback } from '../types';\nimport { TourStorage } from './TourStorage';\n\nexport class TourEngine {\n private config: TourConfig;\n private state: TourState;\n private storage: TourStorage;\n private listeners: Map<string, Set<(data: unknown) => void>> = new Map();\n\n constructor(config: TourConfig) {\n this.config = config;\n this.storage = new TourStorage(config.storage?.key || `tour-${config.id}`);\n this.state = this.initializeState();\n }\n\n private initializeState(): TourState {\n const savedState = this.config.storage?.remember ? this.storage.getState() : null;\n \n return {\n isRunning: false,\n currentStepIndex: savedState?.currentStepIndex || 0,\n currentStep: null,\n totalSteps: this.config.steps.length,\n isLoading: false,\n error: null,\n completedSteps: savedState?.completedSteps || [],\n skippedSteps: savedState?.skippedSteps || [],\n isCompleted: savedState?.isCompleted || false,\n isSkipped: savedState?.isSkipped || false,\n completedAt: savedState?.completedAt,\n skippedAt: savedState?.skippedAt,\n };\n }\n\n public getState(): TourState {\n return { ...this.state };\n }\n\n public getConfig(): TourConfig {\n return { ...this.config };\n }\n\n public async start(): Promise<void> {\n try {\n this.setState({ \n isRunning: true,\n isLoading: true,\n error: null \n });\n\n this.emit('tour-start', { tourId: this.config.id });\n \n await this.goToStep(this.state.currentStepIndex);\n \n // STOP HERE - don't auto-advance\n return;\n } catch (error) {\n console.error('Error in TourEngine.start():', error);\n this.handleError(error as Error);\n }\n }\n\n public async next(): Promise<void> {\n if (!this.state.isRunning) {\n return;\n }\n\n try {\n const currentStep = this.getCurrentStep();\n if (!currentStep) {\n return;\n }\n\n // Execute after step hook\n if (currentStep.afterStep) {\n await currentStep.afterStep();\n }\n\n // Mark step as completed\n this.markStepCompleted(currentStep.id);\n\n // Check if this is the last step\n if (this.state.currentStepIndex >= this.state.totalSteps - 1) {\n await this.complete();\n return;\n }\n\n // Go to next step\n const nextStepIndex = this.state.currentStepIndex + 1;\n await this.goToStep(nextStepIndex);\n } catch (error) {\n console.error('Error in TourEngine.next():', error);\n this.handleError(error as Error);\n }\n }\n\n public async previous(): Promise<void> {\n if (!this.state.isRunning || this.state.currentStepIndex <= 0) return;\n\n try {\n await this.goToStep(this.state.currentStepIndex - 1);\n } catch (error) {\n this.handleError(error as Error);\n }\n }\n\n public async goToStep(index: number): Promise<void> {\n if (index < 0 || index >= this.state.totalSteps) return;\n\n try {\n this.setState({ isLoading: true });\n\n const step = this.config.steps[index];\n \n // Execute before step hook\n if (step.beforeStep) {\n await step.beforeStep();\n }\n\n // Wait for element if specified\n if (step.waitForElement && step.target) {\n await this.waitForElement(step.target, step.waitTimeout || 5000);\n }\n\n this.setState({\n currentStepIndex: index,\n currentStep: step,\n isLoading: false,\n });\n\n\n // Save state if persistence is enabled\n if (this.config.storage?.remember) {\n this.storage.saveState(this.state);\n }\n\n // Emit step change event\n this.emit('step-change', { step, index });\n \n if (this.config.onStepChange) {\n this.config.onStepChange(step, index);\n }\n } catch (error) {\n this.setState({ isLoading: false });\n this.handleError(error as Error);\n }\n }\n\n public async skip(): Promise<void> {\n if (!this.state.isRunning) return;\n\n try {\n const currentStep = this.getCurrentStep();\n if (currentStep) {\n this.markStepSkipped(currentStep.id);\n }\n\n this.setState({ isSkipped: true });\n\n this.emit('tour-skip', { tourId: this.config.id, stepIndex: this.state.currentStepIndex });\n \n if (this.config.onSkip) {\n this.config.onSkip();\n }\n\n // Save skip state to localStorage\n if (this.config.storage?.remember) {\n this.storage.saveSkip();\n }\n\n await this.stop();\n } catch (error) {\n console.error('Error in TourEngine.skip():', error);\n this.handleError(error as Error);\n }\n }\n\n public async complete(): Promise<void> {\n try {\n this.setState({ isRunning: false, isCompleted: true });\n\n this.emit('tour-complete', { tourId: this.config.id });\n \n if (this.config.onComplete) {\n this.config.onComplete();\n }\n\n // Save completion state to localStorage\n if (this.config.storage?.remember) {\n this.storage.saveCompletion();\n }\n } catch (error) {\n console.error('Error in TourEngine.complete():', error);\n this.handleError(error as Error);\n }\n }\n\n public async stop(): Promise<void> {\n this.setState({ \n isRunning: false,\n currentStep: null,\n });\n }\n\n public getCurrentStep(): TourStep | null {\n return this.state.currentStep;\n }\n\n public isFirstStep(): boolean {\n return this.state.currentStepIndex === 0;\n }\n\n public isLastStep(): boolean {\n return this.state.currentStepIndex === this.state.totalSteps - 1;\n }\n\n public canGoNext(): boolean {\n return this.state.isRunning && !this.isLastStep() && !this.state.isLoading;\n }\n\n public canGoPrevious(): boolean {\n return this.state.isRunning && !this.isFirstStep() && !this.state.isLoading;\n }\n\n public shouldShowTour(): boolean {\n if (!this.config.storage?.remember) return true;\n return !this.storage.isCompleted() && !this.storage.isSkipped();\n }\n\n public resetTourState(): void {\n if (this.config.storage?.remember) {\n this.storage.clearState();\n }\n this.state = this.initializeState();\n }\n\n private async waitForElement(selector: string, timeout: number): Promise<HTMLElement> {\n return new Promise((resolve, reject) => {\n const element = document.querySelector(selector) as HTMLElement;\n if (element) {\n resolve(element);\n return;\n }\n\n const observer = new MutationObserver(() => {\n const element = document.querySelector(selector) as HTMLElement;\n if (element) {\n observer.disconnect();\n clearTimeout(timeoutId);\n resolve(element);\n }\n });\n\n const timeoutId = setTimeout(() => {\n observer.disconnect();\n reject(new Error(`Element not found: ${selector}`));\n }, timeout);\n\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n });\n });\n }\n\n private markStepCompleted(stepId: string): void {\n if (!this.state.completedSteps.includes(stepId)) {\n this.setState({\n completedSteps: [...this.state.completedSteps, stepId],\n });\n }\n }\n\n private markStepSkipped(stepId: string): void {\n if (!this.state.skippedSteps.includes(stepId)) {\n this.setState({\n skippedSteps: [...this.state.skippedSteps, stepId],\n });\n }\n }\n\n private handleError(error: Error): void {\n this.setState({ \n error: error.message,\n isLoading: false,\n });\n \n this.emit('error', { error, step: this.getCurrentStep() || undefined });\n }\n\n private setState(updates: Partial<TourState>): void {\n this.state = { ...this.state, ...updates };\n // Emit state change event to notify subscribers\n this.emit('state-change', this.state);\n }\n\n // Event system\n public on<K extends keyof TourEngineEvents>(\n event: K,\n callback: TourEventCallback<TourEngineEvents[K]>\n ): void {\n if (!this.listeners.has(event)) {\n this.listeners.set(event, new Set());\n }\n this.listeners.get(event)!.add(callback as (data: unknown) => void);\n }\n\n public off<K extends keyof TourEngineEvents>(\n event: K,\n callback: TourEventCallback<TourEngineEvents[K]>\n ): void {\n const callbacks = this.listeners.get(event);\n if (callbacks) {\n callbacks.delete(callback as (data: unknown) => void);\n }\n }\n\n private emit<K extends keyof TourEngineEvents>(\n event: K,\n data: TourEngineEvents[K]\n ): void {\n const callbacks = this.listeners.get(event);\n if (callbacks) {\n callbacks.forEach(callback => callback(data));\n }\n }\n\n public subscribe(callback: (state: TourState) => void): () => void {\n const handler = () => callback(this.getState());\n \n // Listen to all events that might change state\n this.on('step-change', handler);\n this.on('tour-start', handler);\n this.on('tour-complete', handler);\n this.on('tour-skip', handler);\n this.on('error', handler);\n this.on('state-change', handler);\n\n // Return unsubscribe function\n return () => {\n this.off('step-change', handler);\n this.off('tour-start', handler);\n this.off('tour-complete', handler);\n this.off('tour-skip', handler);\n this.off('error', handler);\n this.off('state-change', handler);\n };\n }\n}\n","import { TourAction, Integration } from '../types';\n\nexport class TourActions {\n private integrations: Map<string, Integration> = new Map();\n\n public registerIntegration(integration: Integration): void {\n this.integrations.set(integration.name, integration);\n }\n\n public unregisterIntegration(name: string): void {\n this.integrations.delete(name);\n }\n\n public async execute(action: TourAction, element?: HTMLElement): Promise<void> {\n // Find the appropriate integration for this action\n const integration = this.findIntegration(action);\n \n if (!integration) {\n // Fallback to default action handling\n await this.executeDefault(action, element);\n return;\n }\n\n try {\n await integration.execute(action, element);\n } catch (error) {\n console.error(`Integration ${integration.name} failed to execute action:`, error);\n // Fallback to default action handling\n await this.executeDefault(action, element);\n }\n }\n\n private findIntegration(action: TourAction): Integration | null {\n for (const integration of this.integrations.values()) {\n if (integration.canHandle(action)) {\n return integration;\n }\n }\n return null;\n }\n\n private async executeDefault(action: TourAction, element?: HTMLElement): Promise<void> {\n const delay = action.delay || 0;\n \n if (delay > 0) {\n await this.sleep(delay);\n }\n\n switch (action.type) {\n case 'click':\n await this.handleClick(action, element);\n break;\n case 'navigate':\n await this.handleNavigate(action);\n break;\n case 'highlight':\n // Highlighting is handled by the UI components\n break;\n case 'custom':\n if (action.handler) {\n await action.handler();\n }\n break;\n default:\n console.warn(`Unknown action type: ${action.type}`);\n }\n }\n\n private async handleClick(action: TourAction, element?: HTMLElement): Promise<void> {\n let targetElement = element;\n \n if (!targetElement && action.target) {\n targetElement = document.querySelector(action.target) as HTMLElement;\n }\n\n if (!targetElement) {\n throw new Error(`Click target not found: ${action.target}`);\n }\n\n // Ensure element is visible and clickable\n targetElement.scrollIntoView({ behavior: 'smooth', block: 'center' });\n \n // Wait a bit for scroll to complete\n await this.sleep(300);\n\n // Dispatch click event\n const clickEvent = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n });\n \n targetElement.dispatchEvent(clickEvent);\n }\n\n private async handleNavigate(action: TourAction): Promise<void> {\n if (!action.target) {\n throw new Error('Navigate action requires a target URL');\n }\n\n // Check if it's a hash navigation (same page)\n if (action.target.startsWith('#')) {\n window.location.hash = action.target;\n return;\n }\n\n // Check if it's a relative path\n if (action.target.startsWith('/')) {\n window.location.pathname = action.target;\n return;\n }\n\n // Full URL navigation\n window.location.href = action.target;\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n }\n\n public getRegisteredIntegrations(): string[] {\n return Array.from(this.integrations.keys());\n }\n\n public hasIntegration(name: string): boolean {\n return this.integrations.has(name);\n }\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { useState, useEffect, useMemo, useCallback } from 'react';\nimport { TourEngine } from '../core/TourEngine';\nimport { TourActions } from '../core/TourActions';\nimport { TourConfig, TourState, TourStep } from '../types';\n\nexport interface UseTourEngineReturn {\n state: TourState;\n start: () => Promise<void>;\n stop: () => Promise<void>;\n next: () => Promise<void>;\n previous: () => Promise<void>;\n skip: () => Promise<void>;\n goToStep: (index: number) => Promise<void>;\n isFirstStep: boolean;\n isLastStep: boolean;\n canGoNext: boolean;\n canGoPrevious: boolean;\n currentStep: TourStep | null;\n engine: TourEngine;\n actions: TourActions;\n}\n\nexport function useTourEngine(config: TourConfig): UseTourEngineReturn {\n const actions = useMemo(() => new TourActions(), []);\n \n const engine = useMemo(() => {\n const tourEngine = new TourEngine(config);\n return tourEngine;\n }, [config]);\n\n const [state, setState] = useState<TourState>(engine.getState());\n\n useEffect(() => {\n const unsubscribe = engine.subscribe(setState);\n return unsubscribe;\n }, [engine]);\n\n const start = useCallback(async () => {\n try {\n await engine.start();\n } catch (error) {\n console.error('Error in useTourEngine.start():', error);\n }\n }, [engine]);\n\n const stop = useCallback(async () => {\n await engine.stop();\n }, [engine]);\n\n const next = useCallback(async () => {\n const currentStep = engine.getCurrentStep();\n if (currentStep?.action) {\n // Execute the step action first\n await actions.execute(currentStep.action);\n }\n await engine.next();\n }, [engine, actions]);\n\n const previous = useCallback(async () => {\n await engine.previous();\n }, [engine]);\n\n const skip = useCallback(async () => {\n await engine.skip();\n }, [engine]);\n\n const goToStep = useCallback(async (index: number) => {\n await engine.goToStep(index);\n }, [engine]);\n\n return {\n state,\n start,\n stop,\n next,\n previous,\n skip,\n goToStep,\n isFirstStep: engine.isFirstStep(),\n isLastStep: engine.isLastStep(),\n canGoNext: engine.canGoNext(),\n canGoPrevious: engine.canGoPrevious(),\n currentStep: engine.getCurrentStep(),\n engine,\n actions,\n };\n}\n","import React, { createContext, useContext, ReactNode } from 'react';\nimport { TourConfig, TourTheme } from '../types';\nimport { useTourEngine, UseTourEngineReturn } from '../hooks/useTourEngine';\n\ninterface TourContextValue extends UseTourEngineReturn {\n config: TourConfig;\n theme: TourTheme;\n}\n\nconst TourContext = createContext<TourContextValue | null>(null);\n\nexport interface TourProviderProps {\n config: TourConfig;\n children: ReactNode;\n}\n\nconst defaultTheme: TourTheme = {\n primaryColor: '#3b82f6',\n backgroundColor: '#ffffff',\n textColor: '#1f2937',\n borderRadius: '12px',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n fontSize: '14px',\n zIndex: 9999,\n overlay: {\n backgroundColor: '#000000',\n opacity: 0.5,\n },\n highlight: {\n borderColor: '#3b82f6',\n borderWidth: '4px',\n glowColor: 'rgba(59, 130, 246, 0.3)',\n animation: 'tour-highlight-pulse 2s infinite',\n },\n popover: {\n backgroundColor: '#ffffff',\n borderColor: '#e5e7eb',\n shadow: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n maxWidth: '384px',\n },\n};\n\nexport function TourProvider({ config, children }: TourProviderProps) {\n const tourEngine = useTourEngine(config);\n const theme = { ...defaultTheme, ...config.theme };\n\n const contextValue: TourContextValue = {\n ...tourEngine,\n config,\n theme,\n };\n\n return (\n <TourContext.Provider value={contextValue}>\n {children}\n </TourContext.Provider>\n );\n}\n\nexport function useTour(): TourContextValue {\n const context = useContext(TourContext);\n if (!context) {\n throw new Error('useTour must be used within a TourProvider');\n }\n return context;\n}\n","import { ElementPosition, PopoverPosition } from '../types';\n\nexport function getElementPosition(element: HTMLElement): ElementPosition {\n const rect = element.getBoundingClientRect();\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\n\n return {\n top: rect.top + scrollTop,\n left: rect.left + scrollLeft,\n width: rect.width,\n height: rect.height,\n right: rect.right + scrollLeft,\n bottom: rect.bottom + scrollTop,\n };\n}\n\nexport function calculatePopoverPosition(\n targetElement: HTMLElement,\n popoverElement: HTMLElement,\n preferredPlacement: 'top' | 'bottom' | 'left' | 'right' | 'center' = 'top'\n): PopoverPosition {\n const targetPos = getElementPosition(targetElement);\n const popoverRect = popoverElement.getBoundingClientRect();\n const viewport = {\n width: window.innerWidth,\n height: window.innerHeight,\n scrollTop: window.pageYOffset || document.documentElement.scrollTop,\n scrollLeft: window.pageXOffset || document.documentElement.scrollLeft,\n };\n\n const spacing = 12; // Gap between target and popover\n const positions = {\n top: {\n top: targetPos.top - popoverRect.height - spacing,\n left: targetPos.left + (targetPos.width - popoverRect.width) / 2,\n placement: 'top' as const,\n },\n bottom: {\n top: targetPos.bottom + spacing,\n left: targetPos.left + (targetPos.width - popoverRect.width) / 2,\n placement: 'bottom' as const,\n },\n left: {\n top: targetPos.top + (targetPos.height - popoverRect.height) / 2,\n left: targetPos.left - popoverRect.width - spacing,\n placement: 'left' as const,\n },\n right: {\n top: targetPos.top + (targetPos.height - popoverRect.height) / 2,\n left: targetPos.right + spacing,\n placement: 'right' as const,\n },\n center: {\n top: viewport.scrollTop + (viewport.height - popoverRect.height) / 2,\n left: viewport.scrollLeft + (viewport.width - popoverRect.width) / 2,\n placement: 'center' as const,\n },\n };\n\n // Check if preferred placement fits in viewport\n const preferred = positions[preferredPlacement];\n if (isPositionInViewport(preferred, popoverRect, viewport)) {\n return preferred;\n }\n\n // Try other placements in order of preference\n const fallbackOrder: Array<keyof typeof positions> = ['bottom', 'top', 'right', 'left', 'center'];\n \n for (const placement of fallbackOrder) {\n if (placement === preferredPlacement) continue;\n \n const position = positions[placement];\n if (isPositionInViewport(position, popoverRect, viewport)) {\n return position;\n }\n }\n\n // If nothing fits, use center as fallback\n return positions.center;\n}\n\nfunction isPositionInViewport(\n position: { top: number; left: number },\n popoverRect: { width: number; height: number },\n viewport: { width: number; height: number; scrollTop: number; scrollLeft: number }\n): boolean {\n const margin = 16; // Minimum margin from viewport edges\n \n return (\n position.left >= viewport.scrollLeft + margin &&\n position.left + popoverRect.width <= viewport.scrollLeft + viewport.width - margin &&\n position.top >= viewport.scrollTop + margin &&\n position.top + popoverRect.height <= viewport.scrollTop + viewport.height - margin\n );\n}\n\nexport function scrollToElement(element: HTMLElement, behavior: ScrollBehavior = 'smooth'): void {\n element.scrollIntoView({\n behavior,\n block: 'center',\n inline: 'center',\n });\n}\n\nexport function isElementInViewport(element: HTMLElement): boolean {\n const rect = element.getBoundingClientRect();\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <= window.innerHeight &&\n rect.right <= window.innerWidth\n );\n}\n\nexport function getViewportCenter(): { x: number; y: number } {\n return {\n x: window.innerWidth / 2,\n y: window.innerHeight / 2,\n };\n}\n","import { useState, useEffect, useRef } from 'react';\nimport { TourStep, HighlightConfig } from '../types';\nimport { getElementPosition, scrollToElement, isElementInViewport } from '../utils/positioning';\n\nexport interface UseTourHighlightReturn {\n targetElement: HTMLElement | null;\n highlightStyle: React.CSSProperties;\n isVisible: boolean;\n}\n\nexport function useTourHighlight(step: TourStep | null): UseTourHighlightReturn {\n const [targetElement, setTargetElement] = useState<HTMLElement | null>(null);\n const [highlightStyle, setHighlightStyle] = useState<React.CSSProperties>({});\n const [isVisible, setIsVisible] = useState(false);\n const observerRef = useRef<MutationObserver | null>(null);\n\n useEffect(() => {\n if (!step?.target) {\n setTargetElement(null);\n setIsVisible(false);\n return;\n }\n\n const findAndHighlightElement = () => {\n const element = step.highlight?.element || \n document.querySelector(step.target!) as HTMLElement;\n \n if (element) {\n setTargetElement(element);\n updateHighlightStyle(element, step.highlight);\n setIsVisible(true);\n\n // Scroll to element if not in viewport\n if (!isElementInViewport(element)) {\n scrollToElement(element);\n }\n } else {\n setTargetElement(null);\n setIsVisible(false);\n }\n };\n\n // Initial attempt to find element\n findAndHighlightElement();\n\n // Set up mutation observer to watch for DOM changes\n if (!targetElement && step.waitForElement !== false) {\n observerRef.current = new MutationObserver(() => {\n findAndHighlightElement();\n });\n\n observerRef.current.observe(document.body, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['class', 'id', 'data-tour'],\n });\n }\n\n return () => {\n if (observerRef.current) {\n observerRef.current.disconnect();\n observerRef.current = null;\n }\n };\n }, [step?.target, step?.highlight, step?.waitForElement, targetElement]);\n\n // Update highlight position when element moves (e.g., during animations)\n useEffect(() => {\n if (!targetElement || !isVisible) return;\n\n const updatePosition = () => {\n updateHighlightStyle(targetElement, step?.highlight);\n };\n\n const handleScroll = () => updatePosition();\n const handleResize = () => updatePosition();\n\n window.addEventListener('scroll', handleScroll, { passive: true });\n window.addEventListener('resize', handleResize, { passive: true });\n\n // Use ResizeObserver to watch for element size changes\n let resizeObserver: ResizeObserver | null = null;\n if (window.ResizeObserver) {\n resizeObserver = new ResizeObserver(updatePosition);\n resizeObserver.observe(targetElement);\n }\n\n return () => {\n window.removeEventListener('scroll', handleScroll);\n window.removeEventListener('resize', handleResize);\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n };\n }, [targetElement, isVisible, step?.highlight]);\n\n const updateHighlightStyle = (element: HTMLElement, config?: HighlightConfig) => {\n const position = getElementPosition(element);\n const padding = config?.padding || 4;\n const borderRadius = config?.borderRadius || 8;\n const borderWidth = config?.borderWidth || 4;\n\n setHighlightStyle({\n position: 'absolute',\n top: position.top - padding,\n left: position.left - padding,\n width: position.width + (padding * 2),\n height: position.height + (padding * 2),\n border: `${borderWidth}px solid var(--tour-highlight-color, #3b82f6)`,\n borderRadius: `${borderRadius}px`,\n boxShadow: config?.animate !== false \n ? '0 0 0 4px rgba(59, 130, 246, 0.2), 0 0 20px rgba(59, 130, 246, 0.3)'\n : '0 0 0 4px rgba(59, 130, 246, 0.2)',\n pointerEvents: 'none',\n zIndex: 9998,\n transition: config?.animate !== false \n ? 'all 0.3s ease-in-out'\n : 'none',\n animation: config?.animate !== false \n ? 'tour-highlight-pulse 2s infinite'\n : 'none',\n });\n };\n\n return {\n targetElement,\n highlightStyle,\n isVisible,\n };\n}\n","import React from 'react';\nimport { useTour } from './TourProvider';\nimport { useTourHighlight } from '../hooks/useTourHighlight';\n\nexport interface TourOverlayProps {\n className?: string;\n}\n\nexport function TourOverlay({ className }: TourOverlayProps) {\n const { state, theme, stop } = useTour();\n const { targetElement, highlightStyle, isVisible } = useTourHighlight(state.currentStep);\n\n if (!state.isRunning || !state.currentStep) {\n return null;\n }\n\n const overlayStyle: React.CSSProperties = {\n position: 'fixed',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n backgroundColor: theme.overlay?.backgroundColor || '#000000',\n opacity: theme.overlay?.opacity || 0.5,\n zIndex: (theme.zIndex || 9999) - 1,\n pointerEvents: 'auto',\n };\n\n const handleOverlayClick = () => {\n if (state.currentStep?.canSkip !== false) {\n stop();\n }\n };\n\n return (\n <>\n {/* Overlay */}\n <div \n style={overlayStyle}\n onClick={handleOverlayClick}\n className={className}\n data-tour-overlay\n />\n \n {/* Highlight */}\n {isVisible && targetElement && (\n <div\n style={highlightStyle}\n data-tour-highlight\n />\n )}\n \n {/* CSS Animations */}\n <style>{`\n @keyframes tour-highlight-pulse {\n 0%, 100% {\n box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2), 0 0 20px rgba(59, 130, 246, 0.3);\n }\n 50% {\n box-shadow: 0 0 0 8px rgba(59, 130, 246, 0.3), 0 0 30px rgba(59, 130, 246, 0.5);\n }\n }\n \n @keyframes tour-fade-in {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n \n [data-tour-overlay] {\n animation: tour-fade-in 0.2s ease-out;\n }\n \n [data-tour-highlight] {\n animation: tour-fade-in 0.3s ease-out;\n }\n `}</style>\n </>\n );\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import React, { useRef, useEffect, useState } from 'react';\nimport { useTour } from './TourProvider';\nimport { useTourHighlight } from '../hooks/useTourHighlight';\nimport { calculatePopoverPosition } from '../utils/positioning';\nimport { PopoverPosition } from '../types';\nimport clsx from 'clsx';\n\nexport interface TourPopoverProps {\n className?: string;\n}\n\nexport function TourPopover({ className }: TourPopoverProps) {\n const { state, theme, next, previous, skip, stop, isFirstStep, isLastStep, canGoNext, canGoPrevious } = useTour();\n const { targetElement } = useTourHighlight(state.currentStep);\n const popoverRef = useRef<HTMLDivElement>(null);\n const [position, setPosition] = useState<PopoverPosition>({ top: 0, left: 0, placement: 'top' });\n\n useEffect(() => {\n if (!popoverRef.current || !targetElement || !state.currentStep) return;\n\n const updatePosition = () => {\n const newPosition = calculatePopoverPosition(\n targetElement,\n popoverRef.current!,\n state.currentStep!.placement || 'top'\n );\n setPosition(newPosition);\n };\n\n updatePosition();\n\n const handleResize = () => updatePosition();\n const handleScroll = () => updatePosition();\n\n window.addEventListener('resize', handleResize);\n window.addEventListener('scroll', handleScroll, { passive: true });\n\n return () => {\n window.removeEventListener('resize', handleResize);\n window.removeEventListener('scroll', handleScroll);\n };\n }, [targetElement, state.currentStep]);\n\n if (!state.isRunning || !state.currentStep) {\n return null;\n }\n\n const step = state.currentStep;\n const popoverConfig = step.popover || {};\n\n const popoverStyle: React.CSSProperties = {\n position: 'absolute',\n top: position.top,\n left: position.left,\n maxWidth: theme.popover?.maxWidth || '384px',\n backgroundColor: theme.popover?.backgroundColor || theme.backgroundColor || '#ffffff',\n borderTopWidth: '1px',\n borderRightWidth: '1px', \n borderBottomWidth: '1px',\n borderLeftWidth: '1px',\n borderTopStyle: 'solid',\n borderRightStyle: 'solid',\n borderBottomStyle: 'solid', \n borderLeftStyle: 'solid',\n borderTopColor: theme.popover?.borderColor || '#e5e7eb',\n borderRightColor: theme.popover?.borderColor || '#e5e7eb',\n borderBottomColor: theme.popover?.borderColor || '#e5e7eb',\n borderLeftColor: theme.popover?.borderColor || '#e5e7eb',\n borderRadius: theme.borderRadius || '12px',\n boxShadow: theme.popover?.shadow || '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n fontFamily: theme.fontFamily || '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n fontSize: theme.fontSize || '14px',\n color: theme.textColor || '#1f2937',\n zIndex: theme.zIndex || 9999,\n animation: 'tour-fade-in 0.3s ease-out',\n };\n\n const handleNext = async () => {\n if (canGoNext || isLastStep) {\n await next();\n }\n };\n\n const handlePrevious = async () => {\n if (canGoPrevious) {\n await previous();\n }\n };\n\n const handleSkip = async () => {\n await skip();\n };\n\n const handleClose = async () => {\n await stop();\n };\n\n\n return (\n <div\n ref={popoverRef}\n style={{\n ...popoverStyle,\n pointerEvents: 'auto',\n userSelect: 'none',\n }}\n className={clsx('tour-popover', className, popoverConfig.className)}\n data-tour-popover\n data-placement={position.placement}\n onClick={(e) => {\n e.stopPropagation();\n }}\n >\n {/* Header */}\n <div style={{ \n display: 'flex', \n justifyContent: 'space-between', \n alignItems: 'center',\n padding: '16px 20px 0 20px'\n }}>\n {/* Close button */}\n <button\n onClick={handleClose}\n style={{\n background: 'none',\n borderTopWidth: '0',\n borderRightWidth: '0',\n borderBottomWidth: '0',\n borderLeftWidth: '0',\n fontSize: '18px',\n cursor: 'pointer',\n color: '#6b7280',\n padding: '4px',\n borderRadius: '4px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '24px',\n height: '24px',\n }}\n aria-label=\"Close tour\"\n >\n ×\n </button>\n\n {/* Progress indicator */}\n {(popoverConfig.showProgress !== false && state.totalSteps > 1) && (\n <div style={{\n backgroundColor: theme.primaryColor || '#3b82f6',\n color: 'white',\n padding: '4px 8px',\n borderRadius: '12px',\n fontSize: '12px',\n fontWeight: '500',\n }}>\n {state.currentStepIndex + 1} of {state.totalSteps}\n </div>\n )}\n </div>\n\n {/* Content */}\n <div style={{ padding: '16px 20px' }}>\n {/* Title */}\n {(popoverConfig.title || step.title) && (\n <h3 style={{\n margin: '0 0 8px 0',\n fontSize: '16px',\n fontWeight: '600',\n color: theme.textColor || '#1f2937',\n }}>\n {popoverConfig.title || step.title}\n </h3>\n )}\n\n {/* Content */}\n <div style={{\n margin: '0 0 16px 0',\n lineHeight: '1.5',\n color: theme.textColor || '#374151',\n }}>\n {popoverConfig.content || step.content}\n </div>\n </div>\n\n {/* Footer */}\n <div style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: '0 20px 20px 20px',\n gap: '12px',\n }}>\n {/* Skip button */}\n {(popoverConfig.showSkip !== false && step.canSkip !== false) && (\n <button\n onClick={(_e) => {\n handleSkip();\n }}\n style={{\n background: 'none',\n borderTopWidth: '0',\n borderRightWidth: '0',\n borderBottomWidth: '0',\n borderLeftWidth: '0',\n color: '#6b7280',\n cursor: 'pointer',\n padding: '8px 16px',\n borderRadius: '8px',\n fontSize: '14px',\n fontWeight: '500',\n transition: 'all 0.2s ease',\n pointerEvents: 'auto',\n position: 'relative',\n zIndex: 99999,\n }}\n >\n {popoverConfig.skipLabel || 'Skip Tour'}\n </button>\n )}\n\n <div style={{ display: 'flex', gap: '8px', marginLeft: 'auto' }}>\n {/* Previous button */}\n {!isFirstStep && (\n <button\n onClick={handlePrevious}\n disabled={!canGoPrevious}\n style={{\n backgroundColor: 'transparent',\n borderTopWidth: '1px',\n borderRightWidth: '1px',\n borderBottomWidth: '1px', \n borderLeftWidth: '1px',\n borderTopStyle: 'solid',\n borderRightStyle: 'solid',\n borderBottomStyle: 'solid',\n borderLeftStyle: 'solid',\n borderTopColor: theme.primaryColor || '#3b82f6',\n borderRightColor: theme.primaryColor || '#3b82f6',\n borderBottomColor: theme.primaryColor || '#3b82f6',\n borderLeftColor: theme.primaryColor || '#3b82f6',\n color: theme.primaryColor || '#3b82f6',\n cursor: canGoPrevious ? 'pointer' : 'not-allowed',\n padding: '8px 16px',\n borderRadius: '8px',\n fontSize: '14px',\n fontWeight: '500',\n opacity: canGoPrevious ? 1 : 0.5,\n transition: 'all 0.2s ease',\n }}\n >\n Previous\n </button>\n )}\n\n {/* Next/Finish button */}\n <button\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleNext();\n }}\n disabled={false}\n style={{\n backgroundColor: theme.primaryColor || '#3b82f6',\n borderTopWidth: '0',\n borderRightWidth: '0',\n borderBottomWidth: '0',\n borderLeftWidth: '0',\n color: 'white',\n cursor: 'pointer',\n padding: '8px 16px',\n borderRadius: '8px',\n fontSize: '14px',\n fontWeight: '500',\n opacity: 1,\n transition: 'all 0.2s ease',\n pointerEvents: 'auto',\n position: 'relative',\n zIndex: 99999,\n }}\n >\n {isLastStep \n ? (popoverConfig.finishLabel || 'Finish')\n : (popoverConfig.nextLabel || 'Next')\n }\n </button>\n </div>\n </div>\n\n {/* Arrow indicator */}\n {position.placement !== 'center' && (\n <div\n style={{\n position: 'absolute',\n width: '12px',\n height: '12px',\n backgroundColor: theme.popover?.backgroundColor || theme.backgroundColor || '#ffffff',\n borderTopWidth: '1px',\n borderRightWidth: '1px',\n borderBottomWidth: '1px',\n borderLeftWidth: '1px',\n borderTopStyle: 'solid',\n borderRightStyle: 'solid',\n borderBottomStyle: 'solid',\n borderLeftStyle: 'solid',\n borderTopColor: theme.popover?.borderColor || '#e5e7eb',\n borderRightColor: theme.popover?.borderColor || '#e5e7eb',\n borderBottomColor: theme.popover?.borderColor || '#e5e7eb',\n borderLeftColor: theme.popover?.borderColor || '#e5e7eb',\n transform: 'rotate(45deg)',\n ...getArrowPosition(position.placement),\n }}\n data-tour-arrow\n />\n )}\n </div>\n );\n}\n\nfunction getArrowPosition(placement: 'top' | 'bottom' | 'left' | 'right' | 'center') {\n switch (placement) {\n case 'top':\n return {\n bottom: '-6px',\n left: '50%',\n marginLeft: '-6px',\n borderTopWidth: '0',\n borderLeftWidth: '0',\n };\n case 'bottom':\n return {\n top: '-6px',\n left: '50%',\n marginLeft: '-6px',\n borderBottomWidth: '0',\n borderRightWidth: '0',\n };\n case 'left':\n return {\n right: '-6px',\n top: '50%',\n marginTop: '-6px',\n borderTopWidth: '0',\n borderLeftWidth: '0',\n };\n case 'right':\n return {\n left: '-6px',\n top: '50%',\n marginTop: '-6px',\n borderBottomWidth: '0',\n borderRightWidth: '0',\n };\n default:\n return {};\n }\n}\n","import React from 'react';\nimport { TourOverlay } from './TourOverlay';\nimport { TourPopover } from './TourPopover';\nimport { useTour } from './TourProvider';\n\nexport interface TourRunnerProps {\n className?: string;\n}\n\nexport function TourRunner({ className }: TourRunnerProps) {\n const { state } = useTour();\n\n if (!state.isRunning) {\n return null;\n }\n\n return (\n <>\n <TourOverlay className={className} />\n <TourPopover className={className} />\n </>\n );\n}\n","import { Integration, TourAction } from '../types';\n\nexport class TabIntegration implements Integration {\n name = 'tab-integration';\n\n canHandle(action: TourAction): boolean {\n return action.type === 'tab-switch';\n }\n\n async execute(action: TourAction, element?: HTMLElement): Promise<void> {\n if (!action.target && !element) {\n throw new Error('Tab integration requires either a target selector or element');\n }\n\n const targetElement = element || document.querySelector(action.target!) as HTMLElement;\n if (!targetElement) {\n throw new Error(`Tab element not found: ${action.target}`);\n }\n\n // Handle different tab implementations\n const tabValue = typeof action.value === 'string' ? action.value : undefined;\n await this.handleTabClick(targetElement, tabValue);\n }\n\n private async handleTabClick(tabElement: HTMLElement, tabValue?: string): Promise<void> {\n // Check for common tab patterns\n \n // 1. Radix UI Tabs\n if (this.isRadixTab(tabElement)) {\n await this.handleRadixTab(tabElement);\n return;\n }\n\n // 2. Material UI Tabs\n if (this.isMaterialUITab(tabElement)) {\n await this.handleMaterialUITab(tabElement);\n return;\n }\n\n // 3. React Router tabs (links)\n if (this.isRouterTab(tabElement)) {\n await this.handleRouterTab(tabElement);\n return;\n }\n\n // 4. Custom tabs with data attributes\n if (this.isCustomTab(tabElement)) {\n await this.handleCustomTab(tabElement, tabValue);\n return;\n }\n\n // 5. Generic button/clickable tab\n await this.handleGenericTab(tabElement);\n }\n\n private isRadixTab(element: HTMLElement): boolean {\n return element.hasAttribute('data-radix-collection-item') ||\n element.getAttribute('role') === 'tab' ||\n element.closest('[data-radix-tabs-root]') !== null;\n }\n\n private async handleRadixTab(element: HTMLElement): Promise<void> {\n // Radix tabs use standard click events\n element.click();\n await this.waitForTabChange();\n }\n\n private isMaterialUITab(element: HTMLElement): boolean {\n return element.classList.contains('MuiTab-root') ||\n element.closest('.MuiTabs-root') !== null;\n }\n\n private async handleMaterialUITab(element: HTMLElement): Promise<void> {\n // Material UI tabs use click events\n element.click();\n await this.waitForTabChange();\n }\n\n private isRouterTab(element: HTMLElement): boolean {\n return element.tagName === 'A' ||\n element.hasAttribute('href') ||\n element.closest('a[href]') !== null;\n }\n\n private async handleRouterTab(element: HTMLElement): Promise<void> {\n const linkElement = element.tagName === 'A' ? element : element.closest('a') as HTMLAnchorElement;\n if (linkElement) {\n linkElement.click();\n await this.waitForNavigation();\n }\n }\n\n private isCustomTab(element: HTMLElement): boolean {\n return element.hasAttribute('data-tab') ||\n element.hasAttribute('data-tab-id') ||\n element.hasAttribute('data-value');\n }\n\n private async handleCustomTab(element: HTMLElement, tabValue?: string): Promise<void> {\n // Try to find and activate the correct tab\n if (tabValue) {\n const tabContainer = element.closest('[role=\"tablist\"]') || \n element.closest('.tabs') ||\n element.parentElement;\n \n if (tabContainer) {\n const targetTab = tabContainer.querySelector(`[data-tab=\"${tabValue}\"], [data-tab-id=\"${tabValue}\"], [data-value=\"${tabValue}\"]`) as HTMLElement;\n if (targetTab) {\n targetTab.click();\n await this.waitForTabChange();\n return;\n }\n }\n }\n\n // Fallback to clicking the provided element\n element.click();\n await this.waitForTabChange();\n }\n\n private async handleGenericTab(element: HTMLElement): Promise<void> {\n // Generic click handling\n element.click();\n await this.waitForTabChange();\n }\n\n private async waitForTabChange(): Promise<void> {\n // Wait for tab content to change\n return new Promise(resolve => {\n setTimeout(resolve, 300); // Allow time for tab transition\n });\n }\n\n private async waitForNavigation(): Promise<void> {\n // Wait for potential page navigation\n return new Promise(resolve => {\n setTimeout(resolve, 500); // Allow time for navigation\n });\n }\n}\n","import { Integration, TourAction } from '../types';\n\nexport class WizardIntegration implements Integration {\n name = 'wizard-integration';\n\n canHandle(action: TourAction): boolean {\n return action.type === 'wizard-step';\n }\n\n async execute(action: TourAction, element?: HTMLElement): Promise<void> {\n if (!action.target && !element) {\n throw new Error('Wizard integration requires either a target selector or element');\n }\n\n const targetElement = element || document.querySelector(action.target!) as HTMLElement;\n if (!targetElement) {\n throw new Error(`Wizard element not found: ${action.target}`);\n }\n\n const stepValue = typeof action.value === 'string' || typeof action.value === 'number' ? action.value : undefined;\n await this.handleWizardNavigation(targetElement, stepValue);\n }\n\n private async handleWizardNavigation(element: HTMLElement, stepValue?: string | number): Promise<void> {\n // Handle different wizard patterns\n \n // 1. Multi-step form wizards\n if (this.isFormWizard(element)) {\n await this.handleFormWizard(element, stepValue);\n return;\n }\n\n // 2. Stepper components (Material UI, Ant Design, etc.)\n if (this.isStepper(element)) {\n await this.handleStepper(element, stepValue);\n return;\n }\n\n // 3. Custom wizard with data attributes\n if (this.isCustomWizard(element)) {\n await this.handleCustomWizard(element, stepValue);\n return;\n }\n\n // 4. Generic next/previous buttons\n await this.handleGenericWizard(element);\n }\n\n private isFormWizard(element: HTMLElement): boolean {\n return element.closest('form') !== null ||\n element.closest('.wizard') !== null ||\n element.closest('.multi-step') !== null;\n }\n\n private async handleFormWizard(element: HTMLElement, stepValue?: string | number): Promise<void> {\n if (typeof stepValue === 'number') {\n // Navigate to specific step\n await this.navigateToStep(element, stepValue);\n } else if (this.isNextButton(element)) {\n // Click next button\n element.click();\n await this.waitForStepTransition();\n } else if (this.isPreviousButton(element)) {\n // Click previous button\n element.click();\n await this.waitForStepTransition();\n } else {\n // Generic click\n element.click();\n await this.waitForStepTransition();\n }\n }\n\n private isStepper(element: HTMLElement): boolean {\n return element.classList.contains('MuiStepper-root') ||\n element.classList.contains('ant-steps') ||\n element.closest('.stepper') !== null ||\n element.closest('[role=\"progressbar\"]') !== null;\n }\n\n private async handleStepper(element: HTMLElement, stepValue?: string | number): Promise<void> {\n if (typeof stepValue === 'number') {\n // Find and click specific step\n const stepElement = this.findStepByIndex(element, stepValue);\n if (stepElement) {\n stepElement.click();\n await this.waitForStepTransition();\n return;\n }\n }\n\n // Click the provided element\n element.click();\n await this.waitForStepTransition();\n }\n\n private isCustomWizard(element: HTMLElement): boolean {\n return element.hasAttribute('data-wizard-step') ||\n element.hasAttribute('data-step') ||\n element.closest('[data-wizard]') !== null;\n }\n\n private async handleCustomWizard(element: HTMLElement, stepValue?: string | number): Promise<void> {\n const wizard = element.closest('[data-wizard]');\n \n if (stepValue && wizard) {\n // Try to find specific step\n const stepElement = wizard.querySelector(`[data-step=\"${stepValue}\"], [data-wizard-step=\"${stepValue}\"]`) as HTMLElement;\n if (stepElement) {\n stepElement.click();\n await this.waitForStepTransition();\n return;\n }\n }\n\n // Click the provided element\n element.click();\n await this.waitForStepTransition();\n }\n\n private async handleGenericWizard(element: HTMLElement): Promise<void> {\n element.click();\n await this.waitForStepTransition();\n }\n\n private isNextButton(element: HTMLElement): boolean {\n const text = element.textContent?.toLowerCase() || '';\n return text.includes('next') ||\n text.includes('continue') ||\n text.includes('proceed') ||\n element.classList.contains('next') ||\n element.hasAttribute('data-next');\n }\n\n private isPreviousButton(element: HTMLElement): boolean {\n const text = element.textContent?.toLowerCase() || '';\n return text.includes('previous') ||\n text.includes('back') ||\n element.classList.contains('previous') ||\n element.classList.contains('back') ||\n element.hasAttribute('data-previous');\n }\n\n private async navigateToStep(container: HTMLElement, stepIndex: number): Promise<void> {\n // Try different methods to navigate to a specific step\n \n // Method 1: Find step by index in stepper\n const stepElement = this.findStepByIndex(container, stepIndex);\n if (stepElement) {\n stepElement.click();\n await this.waitForStepTransition();\n return;\n }\n\n // Method 2: Use next/previous buttons to reach target step\n const currentStep = this.getCurrentStepIndex(container);\n if (currentStep !== null) {\n const diff = stepIndex - currentStep;\n if (diff > 0) {\n // Go forward\n for (let i = 0; i < diff; i++) {\n const nextButton = this.findNextButton(container);\n if (nextButton) {\n nextButton.click();\n await this.waitForStepTransition();\n }\n }\n } else if (diff < 0) {\n // Go backward\n for (let i = 0; i < Math.abs(diff); i++) {\n const prevButton = this.findPreviousButton(container);\n if (prevButton) {\n prevButton.click();\n await this.waitForStepTransition();\n }\n }\n }\n }\n }\n\n private findStepByIndex(container: HTMLElement, index: number): HTMLElement | null {\n // Try different selectors for step elements\n const selectors = [\n `.step:nth-child(${index + 1})`,\n `[data-step=\"${index}\"]`,\n `[data-wizard-step=\"${index}\"]`,\n `.MuiStep-root:nth-child(${index + 1})`,\n `.ant-steps-item:nth-child(${index + 1})`,\n ];\n\n for (const selector of selectors) {\n const element = container.querySelector(selector) as HTMLElement;\n if (element) return element;\n }\n\n return null;\n }\n\n private getCurrentStepIndex(container: HTMLElement): number | null {\n // Try to determine current step index\n const activeStep = container.querySelector('.active, .current, .MuiStep-active, .ant-steps-item-active') as HTMLElement;\n if (activeStep) {\n const steps = container.querySelectorAll('.step, .MuiStep-root, .ant-steps-item');\n return Array.from(steps).indexOf(activeStep);\n }\n\n return null;\n }\n\n private findNextButton(container: HTMLElement): HTMLElement | null {\n const selectors = [\n 'button[data-next]',\n '.next-button',\n 'button:contains(\"Next\")',\n 'button:contains(\"Continue\")',\n '.wizard-next',\n ];\n\n for (const selector of selectors) {\n const element = container.querySelector(selector) as HTMLElement;\n if (element) return element;\n }\n\n // Fallback: find button with \"next\" text\n const buttons = container.querySelectorAll('button');\n for (const button of buttons) {\n const text = button.textContent?.toLowerCase() || '';\n if (text.includes('next') || text.includes('continue')) {\n return button;\n }\n }\n\n return null;\n }\n\n private findPreviousButton(container: HTMLElement): HTMLElement | null {\n const selectors = [\n 'button[data-previous]',\n '.previous-button',\n '.back-button',\n 'button:contains(\"Previous\")',\n 'button:contains(\"Back\")',\n '.wizard-previous',\n ];\n\n for (const selector of selectors) {\n const element = container.querySelector(selector) as HTMLElement;\n if (element) return element;\n }\n\n // Fallback: find button with \"previous\" or \"back\" text\n const buttons = container.querySelectorAll('button');\n for (const button of buttons) {\n const text = button.textContent?.toLowerCase() || '';\n if (text.includes('previous') || text.includes('back')) {\n return button;\n }\n }\n\n return null;\n }\n\n private async waitForStepTransition(): Promise<void> {\n // Wait for step transition animation/content change\n return new Promise(resolve => {\n setTimeout(resolve, 400); // Allow time for transition\n });\n }\n}\n","import { Integration, TourAction } from '../types';\n\ninterface NavigationOptions {\n replace?: boolean;\n state?: Record<string, unknown>;\n timeout?: number;\n [key: string]: unknown;\n}\n\nexport class NavigationIntegration implements Integration {\n name = 'navigation-integration';\n\n canHandle(action: TourAction): boolean {\n return action.type === 'navigate';\n }\n\n async execute(action: TourAction, _element?: HTMLElement): Promise<void> {\n if (!action.target) {\n throw new Error('Navigation integration requires a target URL or path');\n }\n\n const options = typeof action.value === 'object' && action.value !== null ? action.value as NavigationOptions : undefined;\n await this.handleNavigation(action.target, options);\n }\n\n private async handleNavigation(target: string, options?: NavigationOptions): Promise<void> {\n // Handle different navigation patterns\n \n // 1. Hash navigation (same page)\n if (target.startsWith('#')) {\n await this.handleHashNavigation(target);\n return;\n }\n\n // 2. Relative path navigation\n if (target.startsWith('/')) {\n await this.handlePathNavigation(target, options);\n return;\n }\n\n // 3. Query parameter navigation\n if (target.includes('?') || target.includes('&')) {\n await this.handleQueryNavigation(target, options);\n return;\n }\n\n // 4. Full URL navigation\n if (target.startsWith('http')) {\n await this.handleUrlNavigation(target, options);\n return;\n }\n\n // 5. Router navigation (for SPAs)\n await this.handleRouterNavigation(target, options);\n }\n\n private async handleHashNavigation(hash: string): Promise<void> {\n // Update hash without page reload\n window.location.hash = hash;\n \n // Wait for potential scroll or content change\n await this.waitForNavigation(200);\n \n // Try to scroll to element if it exists\n const targetElement = document.querySelector(hash);\n if (targetElement) {\n targetElement.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }\n }\n\n private async handlePathNavigation(path: string, options?: NavigationOptions): Promise<void> {\n // Check if we're in a SPA with router\n if (this.isSPA()) {\n await this.handleSPANavigation(path, options);\n } else {\n // Traditional navigation\n if (options?.replace) {\n window.location.replace(path);\n } else {\n window.location.href = path;\n }\n }\n }\n\n private async handleQueryNavigation(target: string, options?: NavigationOptions): Promise<void> {\n const url = new URL(window.location.href);\n \n // Parse query parameters from target\n if (target.startsWith('?')) {\n // Replace entire query string\n url.search = target;\n } else if (target.startsWith('&')) {\n // Append to existing query string\n url.search += target;\n } else {\n // Parse key=value pairs\n const params = new URLSearchParams(target);\n params.forEach((value, key) => {\n url.searchParams.set(key, value);\n });\n }\n\n // Update URL\n if (options?.replace) {\n window.history.replaceState({}, '', url.toString());\n } else {\n window.history.pushState({}, '', url.toString());\n }\n\n // Trigger popstate event for SPAs\n window.dispatchEvent(new PopStateEvent('popstate'));\n await this.waitForNavigation(300);\n }\n\n private async handleUrlNavigation(url: string, options?: NavigationOptions): Promise<void> {\n if (options?.newTab) {\n window.open(url, '_blank');\n } else if (options?.replace) {\n window.location.replace(url);\n } else {\n window.location.href = url;\n }\n }\n\n private async handleRouterNavigation(path: string, options?: NavigationOptions): Promise<void> {\n // Try different router patterns\n \n // 1. React Router\n if (this.hasReactRouter()) {\n await this.handleReactRouter(path, options);\n return;\n }\n\n // 2. Vue Router\n if (this.hasVueRouter()) {\n await this.handleVueRouter(path, options);\n return;\n }\n\n // 3. Next.js Router\n if (this.hasNextRouter()) {\n await this.handleNextRouter(path, options);\n return;\n }\n\n // 4. Generic SPA navigation\n await this.handleSPANavigation(path, options);\n }\n\n private async handleSPANavigation(path: string, options?: NavigationOptions): Promise<void> {\n // Generic SPA navigation using History API\n const url = new URL(path, window.location.origin);\n \n if (options?.replace) {\n window.history.replaceState({}, '', url.toString());\n } else {\n window.history.pushState({}, '', url.toString());\n }\n\n // Trigger popstate event\n window.dispatchEvent(new PopStateEvent('popstate'));\n await this.waitForNavigation(500);\n }\n\n private isSPA(): boolean {\n // Detect if we're in a Single Page Application\n return !!(\n window.history &&\n (this.hasReactRouter() || this.hasVueRouter() || this.hasNextRouter() || this.hasGenericSPA())\n );\n }\n\n private hasReactRouter(): boolean {\n // Check for React Router presence\n return !!(\n (window as unknown as Record<string, unknown>).__reactRouter ||\n document.querySelector('[data-reactroot]') ||\n document.querySelector('#root') ||\n document.querySelector('#__next')\n );\n }\n\n private hasVueRouter(): boolean {\n // Check for Vue Router presence\n return !!(\n (window as unknown as Record<string, unknown>).Vue ||\n document.querySelector('[data-v-]') ||\n document.querySelector('#app')\n );\n }\n\n private hasNextRouter(): boolean {\n // Check for Next.js presence\n return !!(\n (window as unknown as Record<string, unknown>).__NEXT_DATA__ ||\n document.querySelector('#__next')\n );\n }\n\n private hasGenericSPA(): boolean {\n // Check for generic SPA indicators\n return !!(\n document.querySelector('[data-spa]') ||\n document.querySelector('[data-router]') ||\n window.location.pathname !== '/' && !window.location.pathname.includes('.')\n );\n }\n\n private async detectAndCallRouter(path: string, options?: NavigationOptions): Promise<boolean> {\n const router: unknown = (window as unknown as Record<string, unknown>).router || (window as unknown as Record<string, unknown>).__ROUTER__ || null;\n const method: 'push' | 'replace' = options?.replace ? 'replace' : 'push';\n if (router && typeof router === 'object' && router !== null && method in router && typeof (router as Record<string, unknown>)[method] === 'function') {\n await ((router as Record<string, unknown>)[method] as (path: string, options?: NavigationOptions) => Promise<void>)(path, options);\n return true;\n }\n return false;\n }\n\n private async handleReactRouter(path: string, options?: NavigationOptions): Promise<void> {\n // Try to use React Router's navigate function if available\n const navigate: unknown = (window as unknown as Record<string, unknown>).__reactRouterNavigate;\n if (navigate) {\n await (navigate as (path: string, options?: NavigationOptions) => Promise<void>)(path, options);\n } else {\n // Fallback to history API\n await this.handleSPANavigation(path, options);\n }\n }\n\n private async handleVueRouter(path: string, options?: NavigationOptions): Promise<void> {\n // Try to use Vue Router's push/replace methods\n const vueRouter: unknown = (window as unknown as Record<string, unknown>).router || (window as unknown as Record<string, unknown>).__ROUTER__ || null;\n if (vueRouter && typeof vueRouter === 'object' && vueRouter !== null) {\n const router = vueRouter as Record<string, unknown>;\n if (options?.replace && typeof router.replace === 'function') {\n await (router.replace as (path: string) => Promise<void>)(path);\n } else if (typeof router.push === 'function') {\n await (router.push as (path: string) => Promise<void>)(path);\n }\n } else {\n // Fallback to history API\n await this.handleSPANavigation(path, options);\n }\n }\n\n private async handleNextRouter(path: string, options?: NavigationOptions): Promise<void> {\n // Try to use Next.js router\n const nextRouter: unknown = (window as unknown as Record<string, unknown>).__nextRouter;\n if (nextRouter && typeof nextRouter === 'object' && nextRouter !== null) {\n const router = nextRouter as Record<string, unknown>;\n if (options?.replace && typeof router.replace === 'function') {\n await (router.replace as (path: string) => Promise<void>)(path);\n } else if (typeof router.push === 'function') {\n await (router.push as (path: string) => Promise<void>)(path);\n }\n } else {\n // Fallback to history API\n await this.handleSPANavigation(path, options);\n }\n }\n\n private async waitForNavigation(delay: number = 300): Promise<void> {\n return new Promise(resolve => {\n setTimeout(resolve, delay);\n });\n }\n}\n"],"names":["jsxRuntimeModule","require$$0","require$$1","_jsx","_jsxs","_Fragment"],"mappings":"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","x_google_ignoreList":[3,4,5,11]}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/core/TourStorage.ts","../src/core/TourEngine.ts","../src/core/TourActions.ts","../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/hooks/useErrorHandler.ts","../src/hooks/useTourEngine.ts","../src/components/TourProvider.tsx","../src/utils/positioning.ts","../src/hooks/useTourHighlight.ts","../src/components/TourOverlay.tsx","../node_modules/clsx/dist/clsx.mjs","../src/components/TourPopover.tsx","../src/components/ErrorBoundary.tsx","../src/components/TourRunner.tsx","../src/integrations/TabIntegration.ts","../src/integrations/WizardIntegration.ts","../src/integrations/NavigationIntegration.ts"],"sourcesContent":["import { TourState } from '../types';\n\nexport class TourStorage {\n private key: string;\n\n constructor(key: string) {\n this.key = key;\n }\n\n public saveState(state: TourState): void {\n try {\n const stateToSave = {\n currentStepIndex: state.currentStepIndex,\n completedSteps: state.completedSteps,\n skippedSteps: state.skippedSteps,\n isCompleted: false,\n isSkipped: false,\n };\n localStorage.setItem(this.key, JSON.stringify(stateToSave));\n } catch (error) {\n console.warn('Failed to save tour state to localStorage:', error);\n }\n }\n\n public getState(): Partial<TourState> | null {\n try {\n const saved = localStorage.getItem(this.key);\n if (!saved) return null;\n \n return JSON.parse(saved);\n } catch (error) {\n console.warn('Failed to load tour state from localStorage:', error);\n return null;\n }\n }\n\n public clearState(): void {\n try {\n localStorage.removeItem(this.key);\n } catch (error) {\n console.warn('Failed to clear tour state from localStorage:', error);\n }\n }\n\n public hasState(): boolean {\n try {\n return localStorage.getItem(this.key) !== null;\n } catch (error) {\n return false;\n }\n }\n\n public saveCompletion(): void {\n try {\n const existing = this.getState() || {};\n const stateToSave = {\n ...existing,\n isCompleted: true,\n completedAt: new Date().toISOString(),\n };\n localStorage.setItem(this.key, JSON.stringify(stateToSave));\n } catch (error) {\n console.warn('Failed to save tour completion to localStorage:', error);\n }\n }\n\n public saveSkip(): void {\n try {\n const existing = this.getState() || {};\n const stateToSave = {\n ...existing,\n isSkipped: true,\n skippedAt: new Date().toISOString(),\n };\n localStorage.setItem(this.key, JSON.stringify(stateToSave));\n } catch (error) {\n console.warn('Failed to save tour skip to localStorage:', error);\n }\n }\n\n public isCompleted(): boolean {\n try {\n const saved = this.getState();\n return saved?.isCompleted === true;\n } catch (error) {\n return false;\n }\n }\n\n public isSkipped(): boolean {\n try {\n const saved = this.getState();\n return saved?.isSkipped === true;\n } catch (error) {\n return false;\n }\n }\n}\n","import { TourConfig, TourStep, TourState, TourEngineEvents, TourEventCallback } from '../types';\nimport { TourStorage } from './TourStorage';\n\n/**\n * Core tour engine that manages tour state, navigation, and lifecycle.\n * Handles step progression, state persistence, and event emission.\n */\nexport class TourEngine {\n private config: TourConfig;\n private state: TourState;\n private storage: TourStorage;\n private listeners: Map<string, Set<(data: unknown) => void>> = new Map();\n\n constructor(config: TourConfig) {\n this.config = config;\n this.storage = new TourStorage(config.storage?.key || `tour-${config.id}`);\n this.state = this.initializeState();\n }\n\n private initializeState(): TourState {\n const savedState = this.config.storage?.remember ? this.storage.getState() : null;\n \n return {\n isRunning: false,\n currentStepIndex: savedState?.currentStepIndex || 0,\n currentStep: null,\n totalSteps: this.config.steps.length,\n isLoading: false,\n error: null,\n completedSteps: savedState?.completedSteps || [],\n skippedSteps: savedState?.skippedSteps || [],\n isCompleted: savedState?.isCompleted || false,\n isSkipped: savedState?.isSkipped || false,\n completedAt: savedState?.completedAt,\n skippedAt: savedState?.skippedAt,\n };\n }\n\n public getState(): TourState {\n return { ...this.state };\n }\n\n public getConfig(): TourConfig {\n return { ...this.config };\n }\n\n /**\n * Starts the tour from the current step index.\n */\n public async start(): Promise<void> {\n try {\n this.setState({ \n isRunning: true,\n isLoading: true,\n error: null \n });\n\n this.emit('tour-start', { tourId: this.config.id });\n \n await this.goToStep(this.state.currentStepIndex);\n \n return;\n } catch (error) {\n const errorObj = error as Error;\n console.error('Error in TourEngine.start():', errorObj);\n this.handleError(errorObj);\n \n this.setState({ \n isRunning: false,\n isLoading: false \n });\n \n throw errorObj;\n }\n }\n\n /**\n * Advances to the next step in the tour.\n */\n public async next(): Promise<void> {\n if (!this.state.isRunning) {\n return;\n }\n\n try {\n const currentStep = this.getCurrentStep();\n if (!currentStep) {\n throw new Error('No current step available for next operation');\n }\n\n if (currentStep.afterStep) {\n try {\n await currentStep.afterStep();\n } catch (hookError) {\n console.warn('Error in afterStep hook:', hookError);\n }\n }\n\n this.markStepCompleted(currentStep.id);\n\n if (this.state.currentStepIndex >= this.state.totalSteps - 1) {\n await this.complete();\n return;\n }\n\n const nextStepIndex = this.state.currentStepIndex + 1;\n await this.goToStep(nextStepIndex);\n } catch (error) {\n const errorObj = error as Error;\n console.error('Error in TourEngine.next():', errorObj);\n this.handleError(errorObj);\n throw errorObj;\n }\n }\n\n /**\n * Goes back to the previous step in the tour.\n */\n public async previous(): Promise<void> {\n if (!this.state.isRunning || this.state.currentStepIndex <= 0) return;\n\n try {\n await this.goToStep(this.state.currentStepIndex - 1);\n } catch (error) {\n this.handleError(error as Error);\n }\n }\n\n /**\n * Navigates to a specific step by index.\n */\n public async goToStep(index: number): Promise<void> {\n if (index < 0 || index >= this.state.totalSteps) {\n throw new Error(`Invalid step index: ${index}. Must be between 0 and ${this.state.totalSteps - 1}`);\n }\n\n try {\n this.setState({ isLoading: true });\n\n const step = this.config.steps[index];\n \n if (step.beforeStep) {\n try {\n await step.beforeStep();\n } catch (hookError) {\n console.warn('Error in beforeStep hook:', hookError);\n }\n }\n\n if (step.waitForElement && step.target) {\n try {\n await this.waitForElement(step.target, step.waitTimeout || 5000);\n } catch (waitError) {\n console.warn(`Element not found: ${step.target}. Continuing anyway.`);\n }\n }\n\n this.setState({\n currentStepIndex: index,\n currentStep: step,\n isLoading: false,\n });\n\n if (this.config.storage?.remember) {\n try {\n this.storage.saveState(this.state);\n } catch (storageError) {\n console.warn('Failed to save tour state:', storageError);\n }\n }\n\n this.emit('step-change', { step, index });\n \n if (this.config.onStepChange) {\n try {\n this.config.onStepChange(step, index);\n } catch (callbackError) {\n console.warn('Error in onStepChange callback:', callbackError);\n }\n }\n } catch (error) {\n this.setState({ isLoading: false });\n const errorObj = error as Error;\n this.handleError(errorObj);\n throw errorObj;\n }\n }\n\n /**\n * Skips the current tour and marks it as skipped.\n */\n public async skip(): Promise<void> {\n if (!this.state.isRunning) return;\n\n try {\n const currentStep = this.getCurrentStep();\n if (currentStep) {\n this.markStepSkipped(currentStep.id);\n }\n\n this.setState({ isSkipped: true });\n\n this.emit('tour-skip', { tourId: this.config.id, stepIndex: this.state.currentStepIndex });\n \n if (this.config.onSkip) {\n this.config.onSkip();\n }\n\n if (this.config.storage?.remember) {\n this.storage.saveSkip();\n }\n\n await this.stop();\n } catch (error) {\n console.error('Error in TourEngine.skip():', error);\n this.handleError(error as Error);\n }\n }\n\n /**\n * Completes the tour and marks it as finished.\n */\n public async complete(): Promise<void> {\n try {\n this.setState({ isRunning: false, isCompleted: true });\n\n this.emit('tour-complete', { tourId: this.config.id });\n \n if (this.config.onComplete) {\n this.config.onComplete();\n }\n\n if (this.config.storage?.remember) {\n this.storage.saveCompletion();\n }\n } catch (error) {\n console.error('Error in TourEngine.complete():', error);\n this.handleError(error as Error);\n }\n }\n\n public async stop(): Promise<void> {\n this.setState({ \n isRunning: false,\n currentStep: null,\n });\n }\n\n public getCurrentStep(): TourStep | null {\n return this.state.currentStep;\n }\n\n public isFirstStep(): boolean {\n return this.state.currentStepIndex === 0;\n }\n\n public isLastStep(): boolean {\n return this.state.currentStepIndex === this.state.totalSteps - 1;\n }\n\n public canGoNext(): boolean {\n return this.state.isRunning && !this.isLastStep() && !this.state.isLoading;\n }\n\n public canGoPrevious(): boolean {\n return this.state.isRunning && !this.isFirstStep() && !this.state.isLoading;\n }\n\n /**\n * Determines if the tour should be shown based on completion/skip state.\n */\n public shouldShowTour(): boolean {\n if (!this.config.storage?.remember) return true;\n return !this.storage.isCompleted() && !this.storage.isSkipped();\n }\n\n /**\n * Resets tour state and clears localStorage.\n */\n public resetTourState(): void {\n if (this.config.storage?.remember) {\n this.storage.clearState();\n }\n this.state = this.initializeState();\n }\n\n private async waitForElement(selector: string, timeout: number): Promise<HTMLElement> {\n return new Promise((resolve, reject) => {\n const element = document.querySelector(selector) as HTMLElement;\n if (element) {\n resolve(element);\n return;\n }\n\n const observer = new MutationObserver(() => {\n const element = document.querySelector(selector) as HTMLElement;\n if (element) {\n observer.disconnect();\n clearTimeout(timeoutId);\n resolve(element);\n }\n });\n\n const timeoutId = setTimeout(() => {\n observer.disconnect();\n reject(new Error(`Element not found: ${selector}`));\n }, timeout);\n\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n });\n });\n }\n\n private markStepCompleted(stepId: string): void {\n if (!this.state.completedSteps.includes(stepId)) {\n this.setState({\n completedSteps: [...this.state.completedSteps, stepId],\n });\n }\n }\n\n private markStepSkipped(stepId: string): void {\n if (!this.state.skippedSteps.includes(stepId)) {\n this.setState({\n skippedSteps: [...this.state.skippedSteps, stepId],\n });\n }\n }\n\n private handleError(error: Error): void {\n const errorMessage = error.message || 'Unknown error occurred';\n const currentStep = this.getCurrentStep();\n \n this.setState({ \n error: errorMessage,\n isLoading: false,\n });\n \n this.emit('error', { \n error, \n step: currentStep || undefined,\n tourId: this.config.id,\n stepIndex: this.state.currentStepIndex,\n timestamp: new Date().toISOString()\n });\n \n console.error('TourEngine Error Details:', {\n message: errorMessage,\n stack: error.stack,\n tourId: this.config.id,\n currentStep: currentStep?.id,\n stepIndex: this.state.currentStepIndex,\n state: this.state\n });\n }\n\n private setState(updates: Partial<TourState>): void {\n this.state = { ...this.state, ...updates };\n this.emit('state-change', this.state);\n }\n\n public on<K extends keyof TourEngineEvents>(\n event: K,\n callback: TourEventCallback<TourEngineEvents[K]>\n ): void {\n if (!this.listeners.has(event)) {\n this.listeners.set(event, new Set());\n }\n this.listeners.get(event)!.add(callback as (data: unknown) => void);\n }\n\n public off<K extends keyof TourEngineEvents>(\n event: K,\n callback: TourEventCallback<TourEngineEvents[K]>\n ): void {\n const callbacks = this.listeners.get(event);\n if (callbacks) {\n callbacks.delete(callback as (data: unknown) => void);\n }\n }\n\n private emit<K extends keyof TourEngineEvents>(\n event: K,\n data: TourEngineEvents[K]\n ): void {\n const callbacks = this.listeners.get(event);\n if (callbacks) {\n callbacks.forEach(callback => callback(data));\n }\n }\n\n /**\n * Subscribes to tour state changes.\n * Returns an unsubscribe function.\n */\n public subscribe(callback: (state: TourState) => void): () => void {\n const handler = () => callback(this.getState());\n \n this.on('step-change', handler);\n this.on('tour-start', handler);\n this.on('tour-complete', handler);\n this.on('tour-skip', handler);\n this.on('error', handler);\n this.on('state-change', handler);\n\n return () => {\n this.off('step-change', handler);\n this.off('tour-start', handler);\n this.off('tour-complete', handler);\n this.off('tour-skip', handler);\n this.off('error', handler);\n this.off('state-change', handler);\n };\n }\n}\n","import { TourAction, Integration } from '../types';\n\n/**\n * Manages and executes tour actions with pluggable integration support.\n * Handles clicks, navigation, and custom actions through registered integrations.\n */\nexport class TourActions {\n private integrations: Map<string, Integration> = new Map();\n\n public registerIntegration(integration: Integration): void {\n this.integrations.set(integration.name, integration);\n }\n\n public unregisterIntegration(name: string): void {\n this.integrations.delete(name);\n }\n\n /**\n * Executes a tour action using the appropriate integration or default handler.\n */\n public async execute(action: TourAction, element?: HTMLElement): Promise<void> {\n const integration = this.findIntegration(action);\n \n if (!integration) {\n await this.executeDefault(action, element);\n return;\n }\n\n try {\n await integration.execute(action, element);\n } catch (error) {\n console.error(`Integration ${integration.name} failed to execute action:`, error);\n await this.executeDefault(action, element);\n }\n }\n\n private findIntegration(action: TourAction): Integration | null {\n for (const integration of this.integrations.values()) {\n if (integration.canHandle(action)) {\n return integration;\n }\n }\n return null;\n }\n\n /**\n * Default action handler for built-in action types.\n */\n private async executeDefault(action: TourAction, element?: HTMLElement): Promise<void> {\n const delay = action.delay || 0;\n \n if (delay > 0) {\n await this.sleep(delay);\n }\n\n switch (action.type) {\n case 'click':\n await this.handleClick(action, element);\n break;\n case 'navigate':\n await this.handleNavigate(action);\n break;\n case 'highlight':\n break;\n case 'custom':\n if (action.handler) {\n await action.handler();\n }\n break;\n default:\n console.warn(`Unknown action type: ${action.type}`);\n }\n }\n\n private async handleClick(action: TourAction, element?: HTMLElement): Promise<void> {\n let targetElement = element;\n \n if (!targetElement && action.target) {\n targetElement = document.querySelector(action.target) as HTMLElement;\n }\n\n if (!targetElement) {\n throw new Error(`Click target not found: ${action.target}`);\n }\n\n targetElement.scrollIntoView({ behavior: 'smooth', block: 'center' });\n \n await this.sleep(300);\n\n const clickEvent = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n });\n \n targetElement.dispatchEvent(clickEvent);\n }\n\n private async handleNavigate(action: TourAction): Promise<void> {\n if (!action.target) {\n throw new Error('Navigate action requires a target URL');\n }\n\n if (action.target.startsWith('#')) {\n window.location.hash = action.target;\n return;\n }\n\n if (action.target.startsWith('/')) {\n window.location.pathname = action.target;\n return;\n }\n\n window.location.href = action.target;\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n }\n\n public getRegisteredIntegrations(): string[] {\n return Array.from(this.integrations.keys());\n }\n\n public hasIntegration(name: string): boolean {\n return this.integrations.has(name);\n }\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { useCallback, useRef } from 'react';\n\nexport interface ErrorHandlerOptions {\n onError?: (error: Error, context?: string) => void;\n logErrors?: boolean;\n retryAttempts?: number;\n retryDelay?: number;\n}\n\nexport interface UseErrorHandlerReturn {\n handleError: (error: Error, context?: string) => void;\n handleAsyncError: <T>(\n asyncFn: () => Promise<T>,\n context?: string,\n fallback?: T\n ) => Promise<T | undefined>;\n wrapFunction: <T extends (...args: unknown[]) => unknown>(\n fn: T,\n context?: string\n ) => T;\n wrapAsyncFunction: <T extends (...args: unknown[]) => Promise<unknown>>(\n fn: T,\n context?: string\n ) => T;\n}\n\nexport function useErrorHandler(options: ErrorHandlerOptions = {}): UseErrorHandlerReturn {\n const {\n onError,\n logErrors = true,\n retryAttempts = 0,\n retryDelay = 1000,\n } = options;\n\n const retryCountRef = useRef<Map<string, number>>(new Map());\n\n const handleError = useCallback((error: Error, context?: string) => {\n if (logErrors) {\n console.error(`Tour Error${context ? ` in ${context}` : ''}:`, error);\n }\n\n if (onError) {\n try {\n onError(error, context);\n } catch (handlerError) {\n console.error('Error in custom error handler:', handlerError);\n }\n }\n }, [onError, logErrors]);\n\n const handleAsyncError = useCallback(async <T>(\n asyncFn: () => Promise<T>,\n context?: string,\n fallback?: T\n ): Promise<T | undefined> => {\n const contextKey = context || 'unknown';\n const currentRetries = retryCountRef.current.get(contextKey) || 0;\n\n try {\n const result = await asyncFn();\n retryCountRef.current.delete(contextKey);\n return result;\n } catch (error) {\n handleError(error as Error, context);\n\n if (currentRetries < retryAttempts) {\n retryCountRef.current.set(contextKey, currentRetries + 1);\n \n await new Promise(resolve => setTimeout(resolve, retryDelay));\n \n return handleAsyncError(asyncFn, context, fallback);\n }\n\n retryCountRef.current.delete(contextKey);\n \n return fallback;\n }\n }, [handleError, retryAttempts, retryDelay]);\n\n const wrapFunction = useCallback(<T extends (...args: unknown[]) => unknown>(\n fn: T,\n context?: string\n ): T => {\n return ((...args: Parameters<T>) => {\n try {\n return fn(...args);\n } catch (error) {\n handleError(error as Error, context);\n throw error;\n }\n }) as T;\n }, [handleError]);\n\n const wrapAsyncFunction = useCallback(<T extends (...args: unknown[]) => Promise<unknown>>(\n fn: T,\n context?: string\n ): T => {\n return (async (...args: Parameters<T>) => {\n try {\n return await fn(...args);\n } catch (error) {\n handleError(error as Error, context);\n throw error; // Re-throw to maintain original behavior\n }\n }) as T;\n }, [handleError]);\n\n return {\n handleError,\n handleAsyncError,\n wrapFunction,\n wrapAsyncFunction,\n };\n}\n\n// Utility function for creating error-safe async operations\nexport function createSafeAsyncOperation<T>(\n operation: () => Promise<T>,\n options: {\n context?: string;\n fallback?: T;\n onError?: (error: Error) => void;\n retryAttempts?: number;\n retryDelay?: number;\n } = {}\n) {\n const {\n context,\n fallback,\n onError,\n retryAttempts = 0,\n retryDelay = 1000,\n } = options;\n\n return async (): Promise<T | undefined> => {\n let attempts = 0;\n \n while (attempts <= retryAttempts) {\n try {\n return await operation();\n } catch (error) {\n const errorObj = error as Error;\n \n // Log error\n console.error(`Error in ${context || 'async operation'} (attempt ${attempts + 1}):`, errorObj);\n \n // Call custom error handler\n if (onError) {\n onError(errorObj);\n }\n \n attempts++;\n \n // If we've exhausted retries, return fallback\n if (attempts > retryAttempts) {\n return fallback;\n }\n \n // Wait before retrying\n if (retryDelay > 0) {\n await new Promise(resolve => setTimeout(resolve, retryDelay));\n }\n }\n }\n \n return fallback;\n };\n}\n\n// Error boundary hook for functional components\nexport function useErrorBoundary() {\n const handleError = useCallback((error: Error, _errorInfo?: { componentStack: string }) => {\n // This will be caught by the nearest ErrorBoundary\n throw error;\n }, []);\n\n return { handleError };\n}\n","import { useState, useEffect, useMemo, useCallback } from 'react';\nimport { TourEngine } from '../core/TourEngine';\nimport { TourActions } from '../core/TourActions';\nimport { TourConfig, TourState, TourStep } from '../types';\nimport { useErrorHandler } from './useErrorHandler';\n\nexport interface UseTourEngineReturn {\n state: TourState;\n start: () => Promise<void>;\n stop: () => Promise<void>;\n next: () => Promise<void>;\n previous: () => Promise<void>;\n skip: () => Promise<void>;\n goToStep: (index: number) => Promise<void>;\n isFirstStep: boolean;\n isLastStep: boolean;\n canGoNext: boolean;\n canGoPrevious: boolean;\n currentStep: TourStep | null;\n engine: TourEngine;\n actions: TourActions;\n}\n\n/**\n * Hook that creates and manages a tour engine instance.\n * Provides tour control methods and state management with error handling.\n */\nexport function useTourEngine(config: TourConfig): UseTourEngineReturn {\n // Use regular error handler to avoid ToastProvider dependency issues\n const errorHandler = useErrorHandler({\n onError: (error, context) => {\n console.error(`Tour Engine Error in ${context}:`, error);\n },\n retryAttempts: 1,\n retryDelay: 500,\n });\n \n const { handleAsyncError } = errorHandler;\n\n const actions = useMemo(() => new TourActions(), []);\n \n const engine = useMemo(() => {\n const tourEngine = new TourEngine(config);\n return tourEngine;\n }, [config]);\n\n const [state, setState] = useState<TourState>(engine.getState());\n\n useEffect(() => {\n const unsubscribe = engine.subscribe(setState);\n return unsubscribe;\n }, [engine]);\n\n const start = useCallback(async () => {\n await handleAsyncError(\n () => engine.start(),\n 'tour start'\n );\n }, [engine, handleAsyncError]);\n\n const stop = useCallback(async () => {\n await engine.stop();\n }, [engine]);\n\n const next = useCallback(async () => {\n await handleAsyncError(async () => {\n const currentStep = engine.getCurrentStep();\n if (currentStep?.action) {\n // Execute the step action first\n await actions.execute(currentStep.action);\n }\n await engine.next();\n }, 'tour next');\n }, [engine, actions, handleAsyncError]);\n\n const previous = useCallback(async () => {\n await handleAsyncError(\n () => engine.previous(),\n 'tour previous'\n );\n }, [engine, handleAsyncError]);\n\n const skip = useCallback(async () => {\n await handleAsyncError(\n () => engine.skip(),\n 'tour skip'\n );\n }, [engine, handleAsyncError]);\n\n const goToStep = useCallback(async (index: number) => {\n await handleAsyncError(\n () => engine.goToStep(index),\n `tour goToStep(${index})`\n );\n }, [engine, handleAsyncError]);\n\n const memoizedReturn = useMemo(() => ({\n state,\n start,\n stop,\n next,\n previous,\n skip,\n goToStep,\n isFirstStep: engine.isFirstStep(),\n isLastStep: engine.isLastStep(),\n canGoNext: engine.canGoNext(),\n canGoPrevious: engine.canGoPrevious(),\n currentStep: engine.getCurrentStep(),\n engine,\n actions,\n }), [state, start, stop, next, previous, skip, goToStep, engine, actions]);\n\n return memoizedReturn;\n}\n","import React, { createContext, useContext, ReactNode, useMemo } from 'react';\nimport { TourConfig, TourTheme } from '../types';\nimport { useTourEngine, UseTourEngineReturn } from '../hooks/useTourEngine';\n\ninterface TourContextValue extends UseTourEngineReturn {\n config: TourConfig;\n theme: TourTheme;\n}\n\nconst TourContext = createContext<TourContextValue | null>(null);\n\nexport interface TourProviderProps {\n config: TourConfig;\n children: ReactNode;\n}\n\nconst defaultTheme: TourTheme = {\n primaryColor: '#3b82f6',\n backgroundColor: '#ffffff',\n textColor: '#1f2937',\n borderRadius: '12px',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n fontSize: '14px',\n zIndex: 9999,\n overlay: {\n backgroundColor: '#000000',\n opacity: 0.5,\n },\n highlight: {\n borderColor: '#3b82f6',\n borderWidth: '4px',\n glowColor: 'rgba(59, 130, 246, 0.3)',\n animation: 'tour-highlight-pulse 2s infinite',\n },\n popover: {\n backgroundColor: '#ffffff',\n borderColor: '#e5e7eb',\n shadow: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n maxWidth: '384px',\n },\n};\n\n/**\n * Main provider component that initializes the tour system and provides context.\n * Wraps the application with tour functionality.\n */\nexport const TourProvider = React.memo(function TourProvider({ \n config, \n children\n}: TourProviderProps) {\n const tourEngine = useTourEngine(config);\n const theme = useMemo(() => ({ ...defaultTheme, ...config.theme }), [config.theme]);\n\n const contextValue: TourContextValue = useMemo(() => ({\n ...tourEngine,\n config,\n theme,\n }), [tourEngine, config, theme]);\n\n return (\n <TourContext.Provider value={contextValue}>\n {children}\n </TourContext.Provider>\n );\n});\n\n/**\n * Hook to access tour functionality and state.\n * Must be used within a TourProvider.\n */\nexport function useTour(): TourContextValue {\n const context = useContext(TourContext);\n if (!context) {\n throw new Error('useTour must be used within a TourProvider');\n }\n return context;\n}\n","import { ElementPosition, PopoverPosition } from '../types';\n\n/**\n * Gets the absolute position of an element relative to the document.\n */\nexport function getElementPosition(element: HTMLElement): ElementPosition {\n const rect = element.getBoundingClientRect();\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\n\n return {\n top: rect.top + scrollTop,\n left: rect.left + scrollLeft,\n width: rect.width,\n height: rect.height,\n right: rect.right + scrollLeft,\n bottom: rect.bottom + scrollTop,\n };\n}\n\n/**\n * Calculates the optimal position for a popover relative to a target element.\n * Falls back to alternative placements if the preferred placement doesn't fit.\n */\nexport function calculatePopoverPosition(\n targetElement: HTMLElement,\n popoverElement: HTMLElement,\n preferredPlacement: 'top' | 'bottom' | 'left' | 'right' | 'center' = 'top'\n): PopoverPosition {\n const targetPos = getElementPosition(targetElement);\n const popoverRect = popoverElement.getBoundingClientRect();\n const viewport = {\n width: window.innerWidth,\n height: window.innerHeight,\n scrollTop: window.pageYOffset || document.documentElement.scrollTop,\n scrollLeft: window.pageXOffset || document.documentElement.scrollLeft,\n };\n\n const spacing = 12;\n const positions = {\n top: {\n top: targetPos.top - popoverRect.height - spacing,\n left: targetPos.left + (targetPos.width - popoverRect.width) / 2,\n placement: 'top' as const,\n },\n bottom: {\n top: targetPos.bottom + spacing,\n left: targetPos.left + (targetPos.width - popoverRect.width) / 2,\n placement: 'bottom' as const,\n },\n left: {\n top: targetPos.top + (targetPos.height - popoverRect.height) / 2,\n left: targetPos.left - popoverRect.width - spacing,\n placement: 'left' as const,\n },\n right: {\n top: targetPos.top + (targetPos.height - popoverRect.height) / 2,\n left: targetPos.right + spacing,\n placement: 'right' as const,\n },\n center: {\n top: viewport.scrollTop + (viewport.height - popoverRect.height) / 2,\n left: viewport.scrollLeft + (viewport.width - popoverRect.width) / 2,\n placement: 'center' as const,\n },\n };\n\n // Try preferred placement first\n const preferred = positions[preferredPlacement];\n if (isPositionInViewport(preferred, popoverRect, viewport)) {\n return preferred;\n }\n\n // Try fallback placements in order of preference\n const fallbackOrder: Array<keyof typeof positions> = ['bottom', 'top', 'right', 'left', 'center'];\n \n for (const placement of fallbackOrder) {\n if (placement === preferredPlacement) continue;\n \n const position = positions[placement];\n if (isPositionInViewport(position, popoverRect, viewport)) {\n return position;\n }\n }\n\n return positions.center;\n}\n\nfunction isPositionInViewport(\n position: { top: number; left: number },\n popoverRect: { width: number; height: number },\n viewport: { width: number; height: number; scrollTop: number; scrollLeft: number }\n): boolean {\n const margin = 16;\n \n return (\n position.left >= viewport.scrollLeft + margin &&\n position.left + popoverRect.width <= viewport.scrollLeft + viewport.width - margin &&\n position.top >= viewport.scrollTop + margin &&\n position.top + popoverRect.height <= viewport.scrollTop + viewport.height - margin\n );\n}\n\n/**\n * Smoothly scrolls an element into view.\n */\nexport function scrollToElement(element: HTMLElement, behavior: ScrollBehavior = 'smooth'): void {\n element.scrollIntoView({\n behavior,\n block: 'center',\n inline: 'center',\n });\n}\n\n/**\n * Checks if an element is currently visible in the viewport.\n */\nexport function isElementInViewport(element: HTMLElement): boolean {\n const rect = element.getBoundingClientRect();\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <= window.innerHeight &&\n rect.right <= window.innerWidth\n );\n}\n\nexport function getViewportCenter(): { x: number; y: number } {\n return {\n x: window.innerWidth / 2,\n y: window.innerHeight / 2,\n };\n}\n","import { useState, useEffect, useRef } from 'react';\nimport { TourStep, HighlightConfig } from '../types';\nimport { getElementPosition, scrollToElement, isElementInViewport } from '../utils/positioning';\n\nexport interface UseTourHighlightReturn {\n targetElement: HTMLElement | null;\n highlightStyle: React.CSSProperties;\n isVisible: boolean;\n}\n\n/**\n * Hook that manages element highlighting for tour steps.\n * Finds target elements, positions highlights, and handles dynamic content.\n */\nexport function useTourHighlight(step: TourStep | null): UseTourHighlightReturn {\n const [targetElement, setTargetElement] = useState<HTMLElement | null>(null);\n const [highlightStyle, setHighlightStyle] = useState<React.CSSProperties>({});\n const [isVisible, setIsVisible] = useState(false);\n const observerRef = useRef<MutationObserver | null>(null);\n\n useEffect(() => {\n if (!step?.target) {\n setTargetElement(null);\n setIsVisible(false);\n return;\n }\n\n // Find target element and update highlight styling\n const findAndHighlightElement = () => {\n const element = step.highlight?.element || \n document.querySelector(step.target!) as HTMLElement;\n \n if (element) {\n setTargetElement(element);\n updateHighlightStyle(element, step.highlight);\n setIsVisible(true);\n\n if (!isElementInViewport(element)) {\n scrollToElement(element);\n }\n } else {\n setTargetElement(null);\n setIsVisible(false);\n }\n };\n\n findAndHighlightElement();\n\n // Watch for DOM changes if element not found initially\n if (!targetElement && step.waitForElement !== false) {\n observerRef.current = new MutationObserver(() => {\n findAndHighlightElement();\n });\n\n observerRef.current.observe(document.body, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['class', 'id', 'data-tour'],\n });\n }\n\n return () => {\n if (observerRef.current) {\n observerRef.current.disconnect();\n observerRef.current = null;\n }\n };\n }, [step?.target, step?.highlight, step?.waitForElement, targetElement]);\n\n // Update highlight position when element moves\n useEffect(() => {\n if (!targetElement || !isVisible) return;\n\n const updatePosition = () => {\n updateHighlightStyle(targetElement, step?.highlight);\n };\n\n const handleScroll = () => updatePosition();\n const handleResize = () => updatePosition();\n\n window.addEventListener('scroll', handleScroll, { passive: true });\n window.addEventListener('resize', handleResize, { passive: true });\n\n let resizeObserver: ResizeObserver | null = null;\n if (window.ResizeObserver) {\n resizeObserver = new ResizeObserver(updatePosition);\n resizeObserver.observe(targetElement);\n }\n\n return () => {\n window.removeEventListener('scroll', handleScroll);\n window.removeEventListener('resize', handleResize);\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n };\n }, [targetElement, isVisible, step?.highlight]);\n\n /**\n * Updates the highlight style based on element position and configuration.\n */\n const updateHighlightStyle = (element: HTMLElement, config?: HighlightConfig) => {\n const position = getElementPosition(element);\n const padding = config?.padding || 4;\n const borderRadius = config?.borderRadius || 8;\n const borderWidth = config?.borderWidth || 4;\n\n setHighlightStyle({\n position: 'absolute',\n top: position.top - padding,\n left: position.left - padding,\n width: position.width + (padding * 2),\n height: position.height + (padding * 2),\n border: `${borderWidth}px solid var(--tour-highlight-color, #3b82f6)`,\n borderRadius: `${borderRadius}px`,\n boxShadow: config?.animate !== false \n ? '0 0 0 4px rgba(59, 130, 246, 0.2), 0 0 20px rgba(59, 130, 246, 0.3)'\n : '0 0 0 4px rgba(59, 130, 246, 0.2)',\n pointerEvents: 'none',\n zIndex: 9998,\n transition: config?.animate !== false \n ? 'all 0.3s ease-in-out'\n : 'none',\n animation: config?.animate !== false \n ? 'tour-highlight-pulse 2s infinite'\n : 'none',\n });\n };\n\n return {\n targetElement,\n highlightStyle,\n isVisible,\n };\n}\n","import React, { useMemo, useCallback } from 'react';\nimport { useTour } from './TourProvider';\nimport { useTourHighlight } from '../hooks/useTourHighlight';\n\nexport interface TourOverlayProps {\n className?: string;\n}\n\nexport const TourOverlay = React.memo(function TourOverlay({ className }: TourOverlayProps) {\n const { state, theme, stop } = useTour();\n const { targetElement, highlightStyle, isVisible } = useTourHighlight(state.currentStep);\n\n const overlayStyle: React.CSSProperties = useMemo(() => ({\n position: 'fixed',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n backgroundColor: theme.overlay?.backgroundColor || '#000000',\n opacity: theme.overlay?.opacity || 0.5,\n zIndex: (theme.zIndex || 9999) - 1,\n pointerEvents: 'auto',\n }), [theme.overlay?.backgroundColor, theme.overlay?.opacity, theme.zIndex]);\n\n const handleOverlayClick = useCallback(() => {\n if (state.currentStep?.canSkip !== false) {\n stop();\n }\n }, [state.currentStep?.canSkip, stop]);\n\n if (!state.isRunning || !state.currentStep) {\n return null;\n }\n\n return (\n <>\n {/* Overlay */}\n <div \n style={overlayStyle}\n onClick={handleOverlayClick}\n className={className}\n data-tour-overlay\n />\n \n {/* Highlight */}\n {isVisible && targetElement && (\n <div\n style={highlightStyle}\n data-tour-highlight\n />\n )}\n \n {/* CSS Animations */}\n <style>{`\n @keyframes tour-highlight-pulse {\n 0%, 100% {\n box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2), 0 0 20px rgba(59, 130, 246, 0.3);\n }\n 50% {\n box-shadow: 0 0 0 8px rgba(59, 130, 246, 0.3), 0 0 30px rgba(59, 130, 246, 0.5);\n }\n }\n \n @keyframes tour-fade-in {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n \n [data-tour-overlay] {\n animation: tour-fade-in 0.2s ease-out;\n }\n \n [data-tour-highlight] {\n animation: tour-fade-in 0.3s ease-out;\n }\n `}</style>\n </>\n );\n});\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import React, { useRef, useEffect, useState, useMemo, useCallback } from 'react';\nimport { useTour } from './TourProvider';\nimport { useTourHighlight } from '../hooks/useTourHighlight';\nimport { calculatePopoverPosition } from '../utils/positioning';\nimport { PopoverPosition } from '../types';\nimport clsx from 'clsx';\n\nexport interface TourPopoverProps {\n className?: string;\n}\n\nexport const TourPopover = React.memo(function TourPopover({ className }: TourPopoverProps) {\n const { state, theme, next, previous, skip, stop, isFirstStep, isLastStep, canGoNext, canGoPrevious } = useTour();\n const { targetElement } = useTourHighlight(state.currentStep);\n const popoverRef = useRef<HTMLDivElement>(null);\n const [position, setPosition] = useState<PopoverPosition>({ top: 0, left: 0, placement: 'top' });\n\n const updatePosition = useCallback(() => {\n if (!popoverRef.current || !targetElement || !state.currentStep) return;\n \n const newPosition = calculatePopoverPosition(\n targetElement,\n popoverRef.current,\n state.currentStep.placement || 'top'\n );\n setPosition(newPosition);\n }, [targetElement, state.currentStep]);\n\n const step = state.currentStep;\n const popoverConfig = useMemo(() => step?.popover || {}, [step?.popover]);\n\n const popoverStyle: React.CSSProperties = useMemo(() => ({\n position: 'absolute',\n top: position.top,\n left: position.left,\n maxWidth: theme.popover?.maxWidth || '384px',\n backgroundColor: theme.popover?.backgroundColor || theme.backgroundColor || '#ffffff',\n borderTopWidth: '1px',\n borderRightWidth: '1px', \n borderBottomWidth: '1px',\n borderLeftWidth: '1px',\n borderTopStyle: 'solid',\n borderRightStyle: 'solid',\n borderBottomStyle: 'solid', \n borderLeftStyle: 'solid',\n borderTopColor: theme.popover?.borderColor || '#e5e7eb',\n borderRightColor: theme.popover?.borderColor || '#e5e7eb',\n borderBottomColor: theme.popover?.borderColor || '#e5e7eb',\n borderLeftColor: theme.popover?.borderColor || '#e5e7eb',\n borderRadius: theme.borderRadius || '12px',\n boxShadow: theme.popover?.shadow || '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n fontFamily: theme.fontFamily || '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n fontSize: theme.fontSize || '14px',\n color: theme.textColor || '#1f2937',\n zIndex: theme.zIndex || 9999,\n animation: 'tour-fade-in 0.3s ease-out',\n }), [position.top, position.left, theme]);\n\n const handleNext = useCallback(async () => {\n if (canGoNext || isLastStep) {\n await next();\n }\n }, [canGoNext, isLastStep, next]);\n\n const handlePrevious = useCallback(async () => {\n if (canGoPrevious) {\n await previous();\n }\n }, [canGoPrevious, previous]);\n\n const handleSkip = useCallback(async () => {\n await skip();\n }, [skip]);\n\n const handleClose = useCallback(async () => {\n await stop();\n }, [stop]);\n\n useEffect(() => {\n updatePosition();\n\n const handleResize = () => updatePosition();\n const handleScroll = () => updatePosition();\n\n window.addEventListener('resize', handleResize);\n window.addEventListener('scroll', handleScroll, { passive: true });\n\n return () => {\n window.removeEventListener('resize', handleResize);\n window.removeEventListener('scroll', handleScroll);\n };\n }, [updatePosition]);\n\n if (!state.isRunning || !state.currentStep) {\n return null;\n }\n return (\n <div\n ref={popoverRef}\n style={{\n ...popoverStyle,\n pointerEvents: 'auto',\n userSelect: 'none',\n }}\n className={clsx('tour-popover', className, popoverConfig.className)}\n data-tour-popover\n data-placement={position.placement}\n onClick={(e) => {\n e.stopPropagation();\n }}\n >\n {/* Header */}\n <div style={{ \n display: 'flex', \n justifyContent: 'space-between', \n alignItems: 'center',\n padding: '16px 20px 0 20px'\n }}>\n {/* Close button */}\n <button\n onClick={handleClose}\n style={{\n background: 'none',\n borderTopWidth: '0',\n borderRightWidth: '0',\n borderBottomWidth: '0',\n borderLeftWidth: '0',\n fontSize: '18px',\n cursor: 'pointer',\n color: '#6b7280',\n padding: '4px',\n borderRadius: '4px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '24px',\n height: '24px',\n }}\n aria-label=\"Close tour\"\n >\n ×\n </button>\n\n {/* Progress indicator */}\n {(popoverConfig.showProgress !== false && state.totalSteps > 1) && (\n <div style={{\n backgroundColor: theme.primaryColor || '#3b82f6',\n color: 'white',\n padding: '4px 8px',\n borderRadius: '12px',\n fontSize: '12px',\n fontWeight: '500',\n }}>\n {state.currentStepIndex + 1} of {state.totalSteps}\n </div>\n )}\n </div>\n\n {/* Content */}\n <div style={{ padding: '16px 20px' }}>\n {/* Title */}\n {(popoverConfig.title || step?.title) && (\n <h3 style={{\n margin: '0 0 8px 0',\n fontSize: '16px',\n fontWeight: '600',\n color: theme.textColor || '#1f2937',\n }}>\n {popoverConfig.title || step?.title}\n </h3>\n )}\n\n {/* Content */}\n <div style={{\n margin: '0 0 16px 0',\n lineHeight: '1.5',\n color: theme.textColor || '#374151',\n }}>\n {popoverConfig.content || step?.content}\n </div>\n </div>\n\n {/* Footer */}\n <div style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: '0 20px 20px 20px',\n gap: '12px',\n }}>\n {/* Skip button */}\n {(popoverConfig.showSkip !== false && step?.canSkip !== false) && (\n <button\n onClick={(_e) => {\n handleSkip();\n }}\n style={{\n background: 'none',\n borderTopWidth: '0',\n borderRightWidth: '0',\n borderBottomWidth: '0',\n borderLeftWidth: '0',\n color: '#6b7280',\n cursor: 'pointer',\n padding: '8px 16px',\n borderRadius: '8px',\n fontSize: '14px',\n fontWeight: '500',\n transition: 'all 0.2s ease',\n pointerEvents: 'auto',\n position: 'relative',\n zIndex: 99999,\n }}\n >\n {popoverConfig.skipLabel || 'Skip Tour'}\n </button>\n )}\n\n <div style={{ display: 'flex', gap: '8px', marginLeft: 'auto' }}>\n {/* Previous button */}\n {!isFirstStep && (\n <button\n onClick={handlePrevious}\n disabled={!canGoPrevious}\n style={{\n backgroundColor: 'transparent',\n borderTopWidth: '1px',\n borderRightWidth: '1px',\n borderBottomWidth: '1px', \n borderLeftWidth: '1px',\n borderTopStyle: 'solid',\n borderRightStyle: 'solid',\n borderBottomStyle: 'solid',\n borderLeftStyle: 'solid',\n borderTopColor: theme.primaryColor || '#3b82f6',\n borderRightColor: theme.primaryColor || '#3b82f6',\n borderBottomColor: theme.primaryColor || '#3b82f6',\n borderLeftColor: theme.primaryColor || '#3b82f6',\n color: theme.primaryColor || '#3b82f6',\n cursor: canGoPrevious ? 'pointer' : 'not-allowed',\n padding: '8px 16px',\n borderRadius: '8px',\n fontSize: '14px',\n fontWeight: '500',\n opacity: canGoPrevious ? 1 : 0.5,\n transition: 'all 0.2s ease',\n }}\n >\n Previous\n </button>\n )}\n\n {/* Next/Finish button */}\n <button\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleNext();\n }}\n disabled={false}\n style={{\n backgroundColor: theme.primaryColor || '#3b82f6',\n borderTopWidth: '0',\n borderRightWidth: '0',\n borderBottomWidth: '0',\n borderLeftWidth: '0',\n color: 'white',\n cursor: 'pointer',\n padding: '8px 16px',\n borderRadius: '8px',\n fontSize: '14px',\n fontWeight: '500',\n opacity: 1,\n transition: 'all 0.2s ease',\n pointerEvents: 'auto',\n position: 'relative',\n zIndex: 99999,\n }}\n >\n {isLastStep \n ? (popoverConfig.finishLabel || 'Finish')\n : (popoverConfig.nextLabel || 'Next')\n }\n </button>\n </div>\n </div>\n\n {/* Arrow indicator */}\n {position.placement !== 'center' && (\n <div\n style={{\n position: 'absolute',\n width: '12px',\n height: '12px',\n backgroundColor: theme.popover?.backgroundColor || theme.backgroundColor || '#ffffff',\n borderTopWidth: '1px',\n borderRightWidth: '1px',\n borderBottomWidth: '1px',\n borderLeftWidth: '1px',\n borderTopStyle: 'solid',\n borderRightStyle: 'solid',\n borderBottomStyle: 'solid',\n borderLeftStyle: 'solid',\n borderTopColor: theme.popover?.borderColor || '#e5e7eb',\n borderRightColor: theme.popover?.borderColor || '#e5e7eb',\n borderBottomColor: theme.popover?.borderColor || '#e5e7eb',\n borderLeftColor: theme.popover?.borderColor || '#e5e7eb',\n transform: 'rotate(45deg)',\n ...getArrowPosition(position.placement),\n }}\n data-tour-arrow\n />\n )}\n </div>\n );\n});\n\nfunction getArrowPosition(placement: 'top' | 'bottom' | 'left' | 'right' | 'center') {\n switch (placement) {\n case 'top':\n return {\n bottom: '-6px',\n left: '50%',\n marginLeft: '-6px',\n borderTopWidth: '0',\n borderLeftWidth: '0',\n };\n case 'bottom':\n return {\n top: '-6px',\n left: '50%',\n marginLeft: '-6px',\n borderBottomWidth: '0',\n borderRightWidth: '0',\n };\n case 'left':\n return {\n right: '-6px',\n top: '50%',\n marginTop: '-6px',\n borderTopWidth: '0',\n borderLeftWidth: '0',\n };\n case 'right':\n return {\n left: '-6px',\n top: '50%',\n marginTop: '-6px',\n borderBottomWidth: '0',\n borderRightWidth: '0',\n };\n default:\n return {};\n }\n}\n","import React, { Component, ReactNode } from 'react';\n\nexport interface ErrorInfo {\n componentStack: string;\n errorBoundary?: string;\n errorBoundaryStack?: string;\n}\n\nexport interface ErrorBoundaryState {\n hasError: boolean;\n error: Error | null;\n errorInfo: ErrorInfo | null;\n}\n\nexport interface ErrorBoundaryProps {\n children: ReactNode;\n fallback?: (error: Error, errorInfo: ErrorInfo, retry: () => void) => ReactNode;\n onError?: (error: Error, errorInfo: ErrorInfo) => void;\n isolate?: boolean;\n}\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n private retryTimeoutId: number | null = null;\n\n constructor(props: ErrorBoundaryProps) {\n super(props);\n this.state = {\n hasError: false,\n error: null,\n errorInfo: null,\n };\n }\n\n static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState> {\n return {\n hasError: true,\n error,\n };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n this.setState({\n error,\n errorInfo,\n });\n\n if (this.props.onError) {\n this.props.onError(error, errorInfo);\n }\n\n console.error('Tour ErrorBoundary caught an error:', error, errorInfo);\n }\n\n componentWillUnmount() {\n if (this.retryTimeoutId) {\n clearTimeout(this.retryTimeoutId);\n }\n }\n\n retry = () => {\n this.setState({\n hasError: false,\n error: null,\n errorInfo: null,\n });\n };\n\n render() {\n if (this.state.hasError && this.state.error && this.state.errorInfo) {\n if (this.props.fallback) {\n return this.props.fallback(this.state.error, this.state.errorInfo, this.retry);\n }\n\n return (\n <div style={{\n padding: '20px',\n margin: '20px',\n border: '2px solid #ff6b6b',\n borderRadius: '8px',\n backgroundColor: '#fff5f5',\n color: '#c92a2a',\n fontFamily: 'system-ui, sans-serif'\n }}>\n <h2 style={{ margin: '0 0 10px 0', fontSize: '18px' }}>\n Something went wrong\n </h2>\n <details style={{ marginBottom: '15px' }}>\n <summary style={{ cursor: 'pointer', fontWeight: 'bold' }}>\n Error Details\n </summary>\n <pre style={{ \n marginTop: '10px', \n padding: '10px', \n backgroundColor: '#f8f8f8', \n borderRadius: '4px',\n fontSize: '12px',\n overflow: 'auto'\n }}>\n {this.state.error.message}\n {this.state.error.stack && (\n <>\n {'\\n\\n'}\n {this.state.error.stack}\n </>\n )}\n {this.state.errorInfo.componentStack && (\n <>\n {'\\n\\nComponent Stack:'}\n {this.state.errorInfo.componentStack}\n </>\n )}\n </pre>\n </details>\n <button\n onClick={this.retry}\n style={{\n padding: '8px 16px',\n backgroundColor: '#228be6',\n color: 'white',\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n fontSize: '14px'\n }}\n >\n Try Again\n </button>\n </div>\n );\n }\n\n return this.props.children;\n }\n}\n\nexport function withErrorBoundary<P extends object>(\n Component: React.ComponentType<P>,\n errorBoundaryProps?: Omit<ErrorBoundaryProps, 'children'>\n) {\n const WrappedComponent = (props: P) => (\n <ErrorBoundary {...errorBoundaryProps}>\n <Component {...props} />\n </ErrorBoundary>\n );\n\n WrappedComponent.displayName = `withErrorBoundary(${Component.displayName || Component.name})`;\n \n return WrappedComponent;\n}\n\n","import React from 'react';\nimport { TourOverlay } from './TourOverlay';\nimport { TourPopover } from './TourPopover';\nimport { useTour } from './TourProvider';\nimport { ErrorBoundary } from './ErrorBoundary';\n\nexport interface TourRunnerProps {\n className?: string;\n}\n\nexport const TourRunner = React.memo(function TourRunner({ className }: TourRunnerProps) {\n const { state } = useTour();\n\n if (!state.isRunning) {\n return null;\n }\n\n return (\n <ErrorBoundary\n onError={(error, errorInfo) => {\n console.error('TourRunner error:', error, errorInfo);\n }}\n >\n <TourOverlay className={className} />\n <TourPopover className={className} />\n </ErrorBoundary>\n );\n});\n","import { Integration, TourAction } from '../types';\n\nexport class TabIntegration implements Integration {\n name = 'tab-integration';\n\n canHandle(action: TourAction): boolean {\n return action.type === 'tab-switch';\n }\n\n async execute(action: TourAction, element?: HTMLElement): Promise<void> {\n if (!action.target && !element) {\n throw new Error('Tab integration requires either a target selector or element');\n }\n\n const targetElement = element || document.querySelector(action.target!) as HTMLElement;\n if (!targetElement) {\n throw new Error(`Tab element not found: ${action.target}`);\n }\n\n const tabValue = typeof action.value === 'string' ? action.value : undefined;\n await this.handleTabClick(targetElement, tabValue);\n }\n\n private async handleTabClick(tabElement: HTMLElement, tabValue?: string): Promise<void> {\n if (this.isRadixTab(tabElement)) {\n await this.handleRadixTab(tabElement);\n return;\n }\n\n if (this.isMaterialUITab(tabElement)) {\n await this.handleMaterialUITab(tabElement);\n return;\n }\n\n if (this.isRouterTab(tabElement)) {\n await this.handleRouterTab(tabElement);\n return;\n }\n\n if (this.isCustomTab(tabElement)) {\n await this.handleCustomTab(tabElement, tabValue);\n return;\n }\n\n await this.handleGenericTab(tabElement);\n }\n\n private isRadixTab(element: HTMLElement): boolean {\n return element.hasAttribute('data-radix-collection-item') ||\n element.getAttribute('role') === 'tab' ||\n element.closest('[data-radix-tabs-root]') !== null;\n }\n\n private async handleRadixTab(element: HTMLElement): Promise<void> {\n // Radix tabs use standard click events\n element.click();\n await this.waitForTabChange();\n }\n\n private isMaterialUITab(element: HTMLElement): boolean {\n return element.classList.contains('MuiTab-root') ||\n element.closest('.MuiTabs-root') !== null;\n }\n\n private async handleMaterialUITab(element: HTMLElement): Promise<void> {\n // Material UI tabs use click events\n element.click();\n await this.waitForTabChange();\n }\n\n private isRouterTab(element: HTMLElement): boolean {\n return element.tagName === 'A' ||\n element.hasAttribute('href') ||\n element.closest('a[href]') !== null;\n }\n\n private async handleRouterTab(element: HTMLElement): Promise<void> {\n const linkElement = element.tagName === 'A' ? element : element.closest('a') as HTMLAnchorElement;\n if (linkElement) {\n linkElement.click();\n await this.waitForNavigation();\n }\n }\n\n private isCustomTab(element: HTMLElement): boolean {\n return element.hasAttribute('data-tab') ||\n element.hasAttribute('data-tab-id') ||\n element.hasAttribute('data-value');\n }\n\n private async handleCustomTab(element: HTMLElement, tabValue?: string): Promise<void> {\n // Try to find and activate the correct tab\n if (tabValue) {\n const tabContainer = element.closest('[role=\"tablist\"]') || \n element.closest('.tabs') ||\n element.parentElement;\n \n if (tabContainer) {\n const targetTab = tabContainer.querySelector(`[data-tab=\"${tabValue}\"], [data-tab-id=\"${tabValue}\"], [data-value=\"${tabValue}\"]`) as HTMLElement;\n if (targetTab) {\n targetTab.click();\n await this.waitForTabChange();\n return;\n }\n }\n }\n\n // Fallback to clicking the provided element\n element.click();\n await this.waitForTabChange();\n }\n\n private async handleGenericTab(element: HTMLElement): Promise<void> {\n // Generic click handling\n element.click();\n await this.waitForTabChange();\n }\n\n private async waitForTabChange(): Promise<void> {\n // Wait for tab content to change\n return new Promise(resolve => {\n setTimeout(resolve, 300); // Allow time for tab transition\n });\n }\n\n private async waitForNavigation(): Promise<void> {\n // Wait for potential page navigation\n return new Promise(resolve => {\n setTimeout(resolve, 500); // Allow time for navigation\n });\n }\n}\n","import { Integration, TourAction } from '../types';\n\nexport class WizardIntegration implements Integration {\n name = 'wizard-integration';\n\n canHandle(action: TourAction): boolean {\n return action.type === 'wizard-step';\n }\n\n async execute(action: TourAction, element?: HTMLElement): Promise<void> {\n if (!action.target && !element) {\n throw new Error('Wizard integration requires either a target selector or element');\n }\n\n const targetElement = element || document.querySelector(action.target!) as HTMLElement;\n if (!targetElement) {\n throw new Error(`Wizard element not found: ${action.target}`);\n }\n\n const stepValue = typeof action.value === 'string' || typeof action.value === 'number' ? action.value : undefined;\n await this.handleWizardNavigation(targetElement, stepValue);\n }\n\n private async handleWizardNavigation(element: HTMLElement, stepValue?: string | number): Promise<void> {\n // Handle different wizard patterns\n \n // 1. Multi-step form wizards\n if (this.isFormWizard(element)) {\n await this.handleFormWizard(element, stepValue);\n return;\n }\n\n // 2. Stepper components (Material UI, Ant Design, etc.)\n if (this.isStepper(element)) {\n await this.handleStepper(element, stepValue);\n return;\n }\n\n // 3. Custom wizard with data attributes\n if (this.isCustomWizard(element)) {\n await this.handleCustomWizard(element, stepValue);\n return;\n }\n\n // 4. Generic next/previous buttons\n await this.handleGenericWizard(element);\n }\n\n private isFormWizard(element: HTMLElement): boolean {\n return element.closest('form') !== null ||\n element.closest('.wizard') !== null ||\n element.closest('.multi-step') !== null;\n }\n\n private async handleFormWizard(element: HTMLElement, stepValue?: string | number): Promise<void> {\n if (typeof stepValue === 'number') {\n // Navigate to specific step\n await this.navigateToStep(element, stepValue);\n } else if (this.isNextButton(element)) {\n // Click next button\n element.click();\n await this.waitForStepTransition();\n } else if (this.isPreviousButton(element)) {\n // Click previous button\n element.click();\n await this.waitForStepTransition();\n } else {\n // Generic click\n element.click();\n await this.waitForStepTransition();\n }\n }\n\n private isStepper(element: HTMLElement): boolean {\n return element.classList.contains('MuiStepper-root') ||\n element.classList.contains('ant-steps') ||\n element.closest('.stepper') !== null ||\n element.closest('[role=\"progressbar\"]') !== null;\n }\n\n private async handleStepper(element: HTMLElement, stepValue?: string | number): Promise<void> {\n if (typeof stepValue === 'number') {\n // Find and click specific step\n const stepElement = this.findStepByIndex(element, stepValue);\n if (stepElement) {\n stepElement.click();\n await this.waitForStepTransition();\n return;\n }\n }\n\n // Click the provided element\n element.click();\n await this.waitForStepTransition();\n }\n\n private isCustomWizard(element: HTMLElement): boolean {\n return element.hasAttribute('data-wizard-step') ||\n element.hasAttribute('data-step') ||\n element.closest('[data-wizard]') !== null;\n }\n\n private async handleCustomWizard(element: HTMLElement, stepValue?: string | number): Promise<void> {\n const wizard = element.closest('[data-wizard]');\n \n if (stepValue && wizard) {\n // Try to find specific step\n const stepElement = wizard.querySelector(`[data-step=\"${stepValue}\"], [data-wizard-step=\"${stepValue}\"]`) as HTMLElement;\n if (stepElement) {\n stepElement.click();\n await this.waitForStepTransition();\n return;\n }\n }\n\n // Click the provided element\n element.click();\n await this.waitForStepTransition();\n }\n\n private async handleGenericWizard(element: HTMLElement): Promise<void> {\n element.click();\n await this.waitForStepTransition();\n }\n\n private isNextButton(element: HTMLElement): boolean {\n const text = element.textContent?.toLowerCase() || '';\n return text.includes('next') ||\n text.includes('continue') ||\n text.includes('proceed') ||\n element.classList.contains('next') ||\n element.hasAttribute('data-next');\n }\n\n private isPreviousButton(element: HTMLElement): boolean {\n const text = element.textContent?.toLowerCase() || '';\n return text.includes('previous') ||\n text.includes('back') ||\n element.classList.contains('previous') ||\n element.classList.contains('back') ||\n element.hasAttribute('data-previous');\n }\n\n private async navigateToStep(container: HTMLElement, stepIndex: number): Promise<void> {\n // Try different methods to navigate to a specific step\n \n // Method 1: Find step by index in stepper\n const stepElement = this.findStepByIndex(container, stepIndex);\n if (stepElement) {\n stepElement.click();\n await this.waitForStepTransition();\n return;\n }\n\n // Method 2: Use next/previous buttons to reach target step\n const currentStep = this.getCurrentStepIndex(container);\n if (currentStep !== null) {\n const diff = stepIndex - currentStep;\n if (diff > 0) {\n // Go forward\n for (let i = 0; i < diff; i++) {\n const nextButton = this.findNextButton(container);\n if (nextButton) {\n nextButton.click();\n await this.waitForStepTransition();\n }\n }\n } else if (diff < 0) {\n // Go backward\n for (let i = 0; i < Math.abs(diff); i++) {\n const prevButton = this.findPreviousButton(container);\n if (prevButton) {\n prevButton.click();\n await this.waitForStepTransition();\n }\n }\n }\n }\n }\n\n private findStepByIndex(container: HTMLElement, index: number): HTMLElement | null {\n // Try different selectors for step elements\n const selectors = [\n `.step:nth-child(${index + 1})`,\n `[data-step=\"${index}\"]`,\n `[data-wizard-step=\"${index}\"]`,\n `.MuiStep-root:nth-child(${index + 1})`,\n `.ant-steps-item:nth-child(${index + 1})`,\n ];\n\n for (const selector of selectors) {\n const element = container.querySelector(selector) as HTMLElement;\n if (element) return element;\n }\n\n return null;\n }\n\n private getCurrentStepIndex(container: HTMLElement): number | null {\n // Try to determine current step index\n const activeStep = container.querySelector('.active, .current, .MuiStep-active, .ant-steps-item-active') as HTMLElement;\n if (activeStep) {\n const steps = container.querySelectorAll('.step, .MuiStep-root, .ant-steps-item');\n return Array.from(steps).indexOf(activeStep);\n }\n\n return null;\n }\n\n private findNextButton(container: HTMLElement): HTMLElement | null {\n const selectors = [\n 'button[data-next]',\n '.next-button',\n 'button:contains(\"Next\")',\n 'button:contains(\"Continue\")',\n '.wizard-next',\n ];\n\n for (const selector of selectors) {\n const element = container.querySelector(selector) as HTMLElement;\n if (element) return element;\n }\n\n // Fallback: find button with \"next\" text\n const buttons = container.querySelectorAll('button');\n for (const button of buttons) {\n const text = button.textContent?.toLowerCase() || '';\n if (text.includes('next') || text.includes('continue')) {\n return button;\n }\n }\n\n return null;\n }\n\n private findPreviousButton(container: HTMLElement): HTMLElement | null {\n const selectors = [\n 'button[data-previous]',\n '.previous-button',\n '.back-button',\n 'button:contains(\"Previous\")',\n 'button:contains(\"Back\")',\n '.wizard-previous',\n ];\n\n for (const selector of selectors) {\n const element = container.querySelector(selector) as HTMLElement;\n if (element) return element;\n }\n\n // Fallback: find button with \"previous\" or \"back\" text\n const buttons = container.querySelectorAll('button');\n for (const button of buttons) {\n const text = button.textContent?.toLowerCase() || '';\n if (text.includes('previous') || text.includes('back')) {\n return button;\n }\n }\n\n return null;\n }\n\n private async waitForStepTransition(): Promise<void> {\n // Wait for step transition animation/content change\n return new Promise(resolve => {\n setTimeout(resolve, 400); // Allow time for transition\n });\n }\n}\n","import { Integration, TourAction } from '../types';\n\ninterface NavigationOptions {\n replace?: boolean;\n state?: Record<string, unknown>;\n timeout?: number;\n [key: string]: unknown;\n}\n\nexport class NavigationIntegration implements Integration {\n name = 'navigation-integration';\n\n canHandle(action: TourAction): boolean {\n return action.type === 'navigate';\n }\n\n async execute(action: TourAction, _element?: HTMLElement): Promise<void> {\n if (!action.target) {\n throw new Error('Navigation integration requires a target URL or path');\n }\n\n const options = typeof action.value === 'object' && action.value !== null ? action.value as NavigationOptions : undefined;\n await this.handleNavigation(action.target, options);\n }\n\n private async handleNavigation(target: string, options?: NavigationOptions): Promise<void> {\n // Handle different navigation patterns\n \n // 1. Hash navigation (same page)\n if (target.startsWith('#')) {\n await this.handleHashNavigation(target);\n return;\n }\n\n // 2. Relative path navigation\n if (target.startsWith('/')) {\n await this.handlePathNavigation(target, options);\n return;\n }\n\n // 3. Query parameter navigation\n if (target.includes('?') || target.includes('&')) {\n await this.handleQueryNavigation(target, options);\n return;\n }\n\n // 4. Full URL navigation\n if (target.startsWith('http')) {\n await this.handleUrlNavigation(target, options);\n return;\n }\n\n // 5. Router navigation (for SPAs)\n await this.handleRouterNavigation(target, options);\n }\n\n private async handleHashNavigation(hash: string): Promise<void> {\n // Update hash without page reload\n window.location.hash = hash;\n \n // Wait for potential scroll or content change\n await this.waitForNavigation(200);\n \n // Try to scroll to element if it exists\n const targetElement = document.querySelector(hash);\n if (targetElement) {\n targetElement.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }\n }\n\n private async handlePathNavigation(path: string, options?: NavigationOptions): Promise<void> {\n // Check if we're in a SPA with router\n if (this.isSPA()) {\n await this.handleSPANavigation(path, options);\n } else {\n // Traditional navigation\n if (options?.replace) {\n window.location.replace(path);\n } else {\n window.location.href = path;\n }\n }\n }\n\n private async handleQueryNavigation(target: string, options?: NavigationOptions): Promise<void> {\n const url = new URL(window.location.href);\n \n // Parse query parameters from target\n if (target.startsWith('?')) {\n // Replace entire query string\n url.search = target;\n } else if (target.startsWith('&')) {\n // Append to existing query string\n url.search += target;\n } else {\n // Parse key=value pairs\n const params = new URLSearchParams(target);\n params.forEach((value, key) => {\n url.searchParams.set(key, value);\n });\n }\n\n // Update URL\n if (options?.replace) {\n window.history.replaceState({}, '', url.toString());\n } else {\n window.history.pushState({}, '', url.toString());\n }\n\n // Trigger popstate event for SPAs\n window.dispatchEvent(new PopStateEvent('popstate'));\n await this.waitForNavigation(300);\n }\n\n private async handleUrlNavigation(url: string, options?: NavigationOptions): Promise<void> {\n if (options?.newTab) {\n window.open(url, '_blank');\n } else if (options?.replace) {\n window.location.replace(url);\n } else {\n window.location.href = url;\n }\n }\n\n private async handleRouterNavigation(path: string, options?: NavigationOptions): Promise<void> {\n // Try different router patterns\n \n // 1. React Router\n if (this.hasReactRouter()) {\n await this.handleReactRouter(path, options);\n return;\n }\n\n // 2. Vue Router\n if (this.hasVueRouter()) {\n await this.handleVueRouter(path, options);\n return;\n }\n\n // 3. Next.js Router\n if (this.hasNextRouter()) {\n await this.handleNextRouter(path, options);\n return;\n }\n\n // 4. Generic SPA navigation\n await this.handleSPANavigation(path, options);\n }\n\n private async handleSPANavigation(path: string, options?: NavigationOptions): Promise<void> {\n // Generic SPA navigation using History API\n const url = new URL(path, window.location.origin);\n \n if (options?.replace) {\n window.history.replaceState({}, '', url.toString());\n } else {\n window.history.pushState({}, '', url.toString());\n }\n\n // Trigger popstate event\n window.dispatchEvent(new PopStateEvent('popstate'));\n await this.waitForNavigation(500);\n }\n\n private isSPA(): boolean {\n // Detect if we're in a Single Page Application\n return !!(\n window.history &&\n (this.hasReactRouter() || this.hasVueRouter() || this.hasNextRouter() || this.hasGenericSPA())\n );\n }\n\n private hasReactRouter(): boolean {\n // Check for React Router presence\n return !!(\n (window as unknown as Record<string, unknown>).__reactRouter ||\n document.querySelector('[data-reactroot]') ||\n document.querySelector('#root') ||\n document.querySelector('#__next')\n );\n }\n\n private hasVueRouter(): boolean {\n // Check for Vue Router presence\n return !!(\n (window as unknown as Record<string, unknown>).Vue ||\n document.querySelector('[data-v-]') ||\n document.querySelector('#app')\n );\n }\n\n private hasNextRouter(): boolean {\n // Check for Next.js presence\n return !!(\n (window as unknown as Record<string, unknown>).__NEXT_DATA__ ||\n document.querySelector('#__next')\n );\n }\n\n private hasGenericSPA(): boolean {\n // Check for generic SPA indicators\n return !!(\n document.querySelector('[data-spa]') ||\n document.querySelector('[data-router]') ||\n window.location.pathname !== '/' && !window.location.pathname.includes('.')\n );\n }\n\n private async detectAndCallRouter(path: string, options?: NavigationOptions): Promise<boolean> {\n const router: unknown = (window as unknown as Record<string, unknown>).router || (window as unknown as Record<string, unknown>).__ROUTER__ || null;\n const method: 'push' | 'replace' = options?.replace ? 'replace' : 'push';\n if (router && typeof router === 'object' && router !== null && method in router && typeof (router as Record<string, unknown>)[method] === 'function') {\n await ((router as Record<string, unknown>)[method] as (path: string, options?: NavigationOptions) => Promise<void>)(path, options);\n return true;\n }\n return false;\n }\n\n private async handleReactRouter(path: string, options?: NavigationOptions): Promise<void> {\n // Try to use React Router's navigate function if available\n const navigate: unknown = (window as unknown as Record<string, unknown>).__reactRouterNavigate;\n if (navigate) {\n await (navigate as (path: string, options?: NavigationOptions) => Promise<void>)(path, options);\n } else {\n // Fallback to history API\n await this.handleSPANavigation(path, options);\n }\n }\n\n private async handleVueRouter(path: string, options?: NavigationOptions): Promise<void> {\n // Try to use Vue Router's push/replace methods\n const vueRouter: unknown = (window as unknown as Record<string, unknown>).router || (window as unknown as Record<string, unknown>).__ROUTER__ || null;\n if (vueRouter && typeof vueRouter === 'object' && vueRouter !== null) {\n const router = vueRouter as Record<string, unknown>;\n if (options?.replace && typeof router.replace === 'function') {\n await (router.replace as (path: string) => Promise<void>)(path);\n } else if (typeof router.push === 'function') {\n await (router.push as (path: string) => Promise<void>)(path);\n }\n } else {\n // Fallback to history API\n await this.handleSPANavigation(path, options);\n }\n }\n\n private async handleNextRouter(path: string, options?: NavigationOptions): Promise<void> {\n // Try to use Next.js router\n const nextRouter: unknown = (window as unknown as Record<string, unknown>).__nextRouter;\n if (nextRouter && typeof nextRouter === 'object' && nextRouter !== null) {\n const router = nextRouter as Record<string, unknown>;\n if (options?.replace && typeof router.replace === 'function') {\n await (router.replace as (path: string) => Promise<void>)(path);\n } else if (typeof router.push === 'function') {\n await (router.push as (path: string) => Promise<void>)(path);\n }\n } else {\n // Fallback to history API\n await this.handleSPANavigation(path, options);\n }\n }\n\n private async waitForNavigation(delay: number = 300): Promise<void> {\n return new Promise(resolve => {\n setTimeout(resolve, delay);\n });\n }\n}\n"],"names":["React","require$$0","jsxRuntimeModule","require$$1","_jsx","_jsxs","_Fragment"],"mappings":"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","x_google_ignoreList":[3,4,5,12]}