{"version":3,"file":"index.mjs","sources":["../src/GuidelyContext.ts","../src/createGuidelyStore.ts","../src/GuidelyProvider.tsx","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js","../../../node_modules/use-sync-external-store/shim/index.js","../src/useGuidely.ts","../src/useGuidelyEvent.ts"],"sourcesContent":["import { createContext } from \"react\";\nimport type { TGuidelyRuntimeSnapshot } from \"@sendsay-ru/guidely\";\nimport type { TGuidelyStore } from \"./types\";\n\nexport const emptySnapshot: TGuidelyRuntimeSnapshot = {\n  activeFlow: null,\n  promptedFlow: null,\n  locale: \"en\",\n  status: \"idle\",\n  isDestroyed: false,\n};\n\nexport const GuidelyContext = createContext<TGuidelyStore | null>(null);\n","import type { TGuidely, TGuidelyRuntimeSnapshot } from \"@sendsay-ru/guidely\";\nimport { emptySnapshot } from \"./GuidelyContext\";\nimport type { TGuidelyStore } from \"./types\";\n\nexport function createGuidelyStore(): TGuidelyStore {\n  const listeners = new Set<() => void>();\n  let instance: TGuidely | null = null;\n  let unsubscribeFromInstance: (() => void) | null = null;\n  let snapshot: TGuidelyRuntimeSnapshot = emptySnapshot;\n\n  const readSnapshot = (): TGuidelyRuntimeSnapshot => instance?.getSnapshot() ?? emptySnapshot;\n\n  const refreshSnapshot = (force = false): void => {\n    const nextSnapshot = readSnapshot();\n\n    if (force || !areSnapshotsEqual(snapshot, nextSnapshot)) {\n      snapshot = nextSnapshot;\n    }\n  };\n\n  const notify = (): void => {\n    refreshSnapshot();\n    listeners.forEach((listener) => listener());\n  };\n\n  return {\n    getInstance(): TGuidely | null {\n      return instance;\n    },\n\n    setInstance(nextInstance: TGuidely | null): void {\n      unsubscribeFromInstance?.();\n      unsubscribeFromInstance = null;\n      instance = nextInstance;\n      refreshSnapshot(true);\n\n      if (nextInstance) {\n        unsubscribeFromInstance = nextInstance.subscribe(notify);\n      }\n\n      notify();\n    },\n\n    subscribe(listener: () => void): () => void {\n      listeners.add(listener);\n\n      return () => {\n        listeners.delete(listener);\n      };\n    },\n\n    getSnapshot(): TGuidelyRuntimeSnapshot {\n      return snapshot;\n    },\n  };\n}\n\nfunction areSnapshotsEqual(\n  current: TGuidelyRuntimeSnapshot,\n  next: TGuidelyRuntimeSnapshot,\n): boolean {\n  return (\n    current.locale === next.locale &&\n    current.status === next.status &&\n    current.isDestroyed === next.isDestroyed &&\n    current.activeFlow?.flowId === next.activeFlow?.flowId &&\n    current.activeFlow?.stepId === next.activeFlow?.stepId &&\n    current.activeFlow?.index === next.activeFlow?.index &&\n    current.promptedFlow?.flowId === next.promptedFlow?.flowId &&\n    current.promptedFlow?.stepId === next.promptedFlow?.stepId\n  );\n}\n","import { createElement, useEffect, useMemo, useRef } from \"react\";\nimport { createGuidely } from \"@sendsay-ru/guidely\";\nimport { GuidelyContext } from \"./GuidelyContext\";\nimport { createGuidelyStore } from \"./createGuidelyStore\";\nimport type { TGuidelyProviderProps } from \"./types\";\n\nexport function GuidelyProvider({\n  children,\n  config,\n  adapter,\n  onEvent,\n  locale,\n  labels,\n  theme,\n  container,\n  targetResolver,\n  autoPromote,\n  path,\n  enabled = true,\n}: TGuidelyProviderProps) {\n  const store = useMemo(() => createGuidelyStore(), []);\n  // The locale and the path change while the app runs. They reach the running instance through\n  // `setLocale` and `setPath`, because recreating it would drop the running tour, and a new\n  // instance starts from their latest values.\n  const localeRef = useRef(locale);\n  const pathRef = useRef(path);\n\n  // Declared before the effect that creates the instance, so an instance recreated in the same\n  // render already starts from the new values.\n  useEffect(() => {\n    localeRef.current = locale;\n\n    if (locale) {\n      store.getInstance()?.setLocale(locale);\n    }\n  }, [locale, store]);\n\n  useEffect(() => {\n    pathRef.current = path;\n\n    if (path !== undefined) {\n      store.getInstance()?.setPath(path);\n    }\n  }, [path, store]);\n\n  useEffect(() => {\n    if (!enabled || !adapter) {\n      store.setInstance(null);\n\n      return undefined;\n    }\n\n    const options = {\n      config,\n      adapter,\n      ...(onEvent ? { onEvent } : {}),\n      ...(localeRef.current ? { locale: localeRef.current } : {}),\n      ...(labels ? { labels } : {}),\n      ...(theme ? { theme } : {}),\n      ...(container ? { container } : {}),\n      ...(targetResolver ? { targetResolver } : {}),\n      ...(autoPromote !== undefined ? { autoPromote } : {}),\n      ...(pathRef.current !== undefined ? { path: pathRef.current } : {}),\n    };\n    const guidely = createGuidely(options);\n\n    store.setInstance(guidely);\n\n    return () => {\n      store.setInstance(null);\n      guidely.destroy();\n    };\n  }, [\n    adapter,\n    autoPromote,\n    config,\n    container,\n    enabled,\n    labels,\n    onEvent,\n    store,\n    targetResolver,\n    theme,\n  ]);\n\n  return createElement(GuidelyContext.Provider, { value: store }, children);\n}\n","/**\n * @license React\n * use-sync-external-store-shim.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 = require(\"react\");\nfunction is(x, y) {\n  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n  useState = React.useState,\n  useEffect = React.useEffect,\n  useLayoutEffect = React.useLayoutEffect,\n  useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n  var value = getSnapshot(),\n    _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n    inst = _useState[0].inst,\n    forceUpdate = _useState[1];\n  useLayoutEffect(\n    function () {\n      inst.value = value;\n      inst.getSnapshot = getSnapshot;\n      checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n    },\n    [subscribe, value, getSnapshot]\n  );\n  useEffect(\n    function () {\n      checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n      return subscribe(function () {\n        checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n      });\n    },\n    [subscribe]\n  );\n  useDebugValue(value);\n  return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n  var latestGetSnapshot = inst.getSnapshot;\n  inst = inst.value;\n  try {\n    var nextValue = latestGetSnapshot();\n    return !objectIs(inst, nextValue);\n  } catch (error) {\n    return !0;\n  }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n  return getSnapshot();\n}\nvar shim =\n  \"undefined\" === typeof window ||\n  \"undefined\" === typeof window.document ||\n  \"undefined\" === typeof window.document.createElement\n    ? useSyncExternalStore$1\n    : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n  void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","/**\n * @license React\n * use-sync-external-store-shim.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 is(x, y) {\n      return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n    }\n    function useSyncExternalStore$2(subscribe, getSnapshot) {\n      didWarnOld18Alpha ||\n        void 0 === React.startTransition ||\n        ((didWarnOld18Alpha = !0),\n        console.error(\n          \"You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release.\"\n        ));\n      var value = getSnapshot();\n      if (!didWarnUncachedGetSnapshot) {\n        var cachedValue = getSnapshot();\n        objectIs(value, cachedValue) ||\n          (console.error(\n            \"The result of getSnapshot should be cached to avoid an infinite loop\"\n          ),\n          (didWarnUncachedGetSnapshot = !0));\n      }\n      cachedValue = useState({\n        inst: { value: value, getSnapshot: getSnapshot }\n      });\n      var inst = cachedValue[0].inst,\n        forceUpdate = cachedValue[1];\n      useLayoutEffect(\n        function () {\n          inst.value = value;\n          inst.getSnapshot = getSnapshot;\n          checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n        },\n        [subscribe, value, getSnapshot]\n      );\n      useEffect(\n        function () {\n          checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n          return subscribe(function () {\n            checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n          });\n        },\n        [subscribe]\n      );\n      useDebugValue(value);\n      return value;\n    }\n    function checkIfSnapshotChanged(inst) {\n      var latestGetSnapshot = inst.getSnapshot;\n      inst = inst.value;\n      try {\n        var nextValue = latestGetSnapshot();\n        return !objectIs(inst, nextValue);\n      } catch (error) {\n        return !0;\n      }\n    }\n    function useSyncExternalStore$1(subscribe, getSnapshot) {\n      return getSnapshot();\n    }\n    \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n      \"function\" ===\n        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n    var React = require(\"react\"),\n      objectIs = \"function\" === typeof Object.is ? Object.is : is,\n      useState = React.useState,\n      useEffect = React.useEffect,\n      useLayoutEffect = React.useLayoutEffect,\n      useDebugValue = React.useDebugValue,\n      didWarnOld18Alpha = !1,\n      didWarnUncachedGetSnapshot = !1,\n      shim =\n        \"undefined\" === typeof window ||\n        \"undefined\" === typeof window.document ||\n        \"undefined\" === typeof window.document.createElement\n          ? useSyncExternalStore$1\n          : useSyncExternalStore$2;\n    exports.useSyncExternalStore =\n      void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n    \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n      \"function\" ===\n        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n  })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n  module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","import { useContext, useMemo } from \"react\";\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nimport { GuidelyContext, emptySnapshot } from \"./GuidelyContext\";\nimport type { TGuidelyStore, TUseGuidelyResult } from \"./types\";\n\nexport function useGuidely(): TUseGuidelyResult {\n  const store = useContext(GuidelyContext);\n\n  if (!store) {\n    throw new Error(\"useGuidely must be used inside GuidelyProvider\");\n  }\n\n  const snapshot = useSyncExternalStore(store.subscribe, store.getSnapshot, () => emptySnapshot);\n  const actions = useMemo(\n    () => ({\n      start: (flowId: string, opts?: Parameters<TUseGuidelyResult[\"start\"]>[1]) =>\n        startGuidely(store, flowId, opts),\n      next: () => callGuidely(store, (guidely) => guidely.next()),\n      prev: () => callGuidely(store, (guidely) => guidely.prev()),\n      skip: () => callGuidely(store, (guidely) => guidely.skip()),\n      complete: () => callGuidely(store, (guidely) => guidely.complete()),\n      goTo: (stepId: string) => callGuidely(store, (guidely) => guidely.goTo(stepId)),\n      stop: () => callGuidely(store, (guidely) => guidely.stop()),\n      setLocale: (locale: string) => callGuidely(store, (guidely) => guidely.setLocale(locale)),\n    }),\n    [store],\n  );\n\n  return useMemo(\n    () => ({\n      activeFlow: snapshot.activeFlow,\n      promptedFlow: snapshot.promptedFlow,\n      isReady: store.getInstance() !== null,\n      snapshot,\n      ...actions,\n    }),\n    [actions, snapshot, store],\n  );\n}\n\nfunction startGuidely(\n  store: TGuidelyStore,\n  flowId: string,\n  opts?: Parameters<TUseGuidelyResult[\"start\"]>[1],\n) {\n  const guidely = store.getInstance();\n\n  if (!guidely) {\n    return Promise.resolve({ started: false, reason: \"not_ready\" } as const);\n  }\n\n  return guidely.start(flowId, opts);\n}\n\nfunction callGuidely(\n  store: TGuidelyStore,\n  callback: (guidely: NonNullable<ReturnType<TGuidelyStore[\"getInstance\"]>>) => void,\n): void {\n  const guidely = store.getInstance();\n\n  if (guidely) {\n    callback(guidely);\n  }\n}\n","import { useContext, useEffect, useRef } from \"react\";\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nimport type { TGuidelyEvent } from \"@sendsay-ru/guidely\";\nimport { GuidelyContext, emptySnapshot } from \"./GuidelyContext\";\n\nexport function useGuidelyEvent(listener: (event: TGuidelyEvent) => void): void {\n  const store = useContext(GuidelyContext);\n\n  if (!store) {\n    throw new Error(\"useGuidelyEvent must be used inside GuidelyProvider\");\n  }\n\n  useSyncExternalStore(store.subscribe, store.getSnapshot, () => emptySnapshot);\n\n  const listenerRef = useRef(listener);\n  listenerRef.current = listener;\n\n  const guidely = store.getInstance();\n\n  useEffect(() => {\n    if (!guidely) {\n      return undefined;\n    }\n\n    return guidely.subscribeEvents((event) => listenerRef.current(event));\n  }, [guidely]);\n}\n"],"names":["emptySnapshot","GuidelyContext","createContext","createGuidelyStore","listeners","instance","unsubscribeFromInstance","snapshot","readSnapshot","refreshSnapshot","force","nextSnapshot","areSnapshotsEqual","notify","listener","nextInstance","current","next","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","GuidelyProvider","children","config","adapter","onEvent","locale","labels","theme","container","targetResolver","autoPromote","path","enabled","store","useMemo","localeRef","useRef","pathRef","useEffect","options","guidely","createGuidely","createElement","React","require$$0","is","x","y","objectIs","useState","useLayoutEffect","useDebugValue","useSyncExternalStore$2","subscribe","getSnapshot","value","_useState","inst","forceUpdate","checkIfSnapshotChanged","latestGetSnapshot","nextValue","useSyncExternalStore$1","shim","useSyncExternalStoreShim_production","didWarnOld18Alpha","didWarnUncachedGetSnapshot","cachedValue","useSyncExternalStoreShim_development","shimModule","require$$1","useGuidely","useContext","useSyncExternalStore","actions","flowId","opts","startGuidely","callGuidely","stepId","callback","useGuidelyEvent","listenerRef","event"],"mappings":"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","x_google_ignoreList":[3,4,5]}