{
  "version": 3,
  "sources": ["../src/useMounted.ts", "../src/useNullableActivity.ts", "../src/useActivityDataAttributes.ts", "../src/useAppBarTitleMaxWidth.ts", "../src/utils/listenOnce.ts", "../src/utils/listenResize.ts", "../src/utils/noop.ts", "../src/utils/requestNextFrame.tsx", "../src/useLazy.tsx", "../src/usePreventTouchDuringTransition.ts", "../src/useNullableStack.ts", "../src/useStyleEffect.ts", "../src/useStyleEffectHide.ts", "../src/useStyleEffectOffset.ts", "../src/useStyleEffectSwipeBack.ts", "../src/useZIndexBase.ts"],
  "sourcesContent": ["import { useEffect, useReducer, useState } from \"react\";\n\nexport function useMounted() {\n  const [mounted, mount] = useReducer(() => true, false);\n\n  useEffect(() => {\n    mount();\n  }, []);\n\n  return mounted;\n}\n", "import type { Activity } from \"@stackflow/core\";\nimport { useActivity } from \"@stackflow/react\";\n\nexport function useNullableActivity() {\n  return useActivity() as Activity | null;\n}\n", "import { useMounted } from \"./useMounted\";\nimport { useNullableActivity } from \"./useNullableActivity\";\n\nexport function useActivityDataAttributes() {\n  const activity = useNullableActivity();\n  const mounted = useMounted();\n\n  return {\n    /**\n     * should be rendered in client-side only to avoid hydration mismatch warning\n     */\n    ...(mounted\n      ? {\n          \"data-stackflow-activity-id\": activity?.id,\n          \"data-stackflow-activity-is-active\": activity?.isActive,\n          \"data-stackflow-activity-transition-state\": activity?.transitionState,\n        }\n      : null),\n  };\n}\n", "import { useEffect, useState } from \"react\";\n\nimport { listenResize, noop } from \"./utils\";\n\nexport function useAppBarTitleMaxWidth({\n  outerRef,\n  innerRef,\n  enable,\n}: {\n  outerRef: React.ForwardedRef<any>;\n  innerRef: React.MutableRefObject<any>;\n  enable: boolean;\n}) {\n  const [maxWidth, setMaxWidth] = useState<number | undefined>(undefined);\n\n  useEffect(() => {\n    const $outer = outerRef && \"current\" in outerRef && outerRef.current;\n    const $inner = innerRef.current;\n\n    if (!enable || !$outer || !$inner) {\n      return noop;\n    }\n\n    const dispose = listenResize(() => {\n      const screenWidth = $outer.clientWidth;\n\n      const leftWidth = $inner.offsetLeft;\n      const centerWidth = $inner.clientWidth;\n      const rightWidth = screenWidth - leftWidth - centerWidth;\n\n      const sideMargin = Math.max(leftWidth, rightWidth);\n\n      setMaxWidth(screenWidth - 2 * sideMargin);\n    });\n\n    return dispose;\n  });\n\n  return {\n    maxWidth,\n  };\n}\n", "export function listenOnce<T extends HTMLElement>(\n  el: T,\n  types: Array<keyof HTMLElementEventMap>,\n  cb: () => void,\n) {\n  const listener = () => {\n    types.forEach((type) => {\n      el.removeEventListener(type, listener);\n    });\n    cb();\n  };\n\n  types.forEach((type) => {\n    el.addEventListener(type, listener);\n  });\n}\n", "export const listenResize = (cb: () => void) => {\n  cb();\n  window.addEventListener(\"resize\", cb);\n\n  return () => {\n    window.removeEventListener(\"resize\", cb);\n  };\n};\n", "export const noop = () => {};\n", "// https://github.com/MingruiZhang/react-animate-mount/blob/32300c04a4fdfa97724b70aaaf0c0f403d6da247/src/Animate.js#L171-L179\nexport function requestNextFrame(cb: () => void) {\n  requestAnimationFrame(() => {\n    requestAnimationFrame(() => {\n      cb();\n    });\n  });\n}\n", "import { useEffect, useState } from \"react\";\n\nimport { requestNextFrame } from \"./utils\";\n\nexport function useLazy<T>(value: T) {\n  const [state, setState] = useState<T | undefined>(undefined);\n\n  useEffect(() => {\n    requestNextFrame(() => {\n      setState(value);\n    });\n  }, [value]);\n\n  return state;\n}\n", "import { useEffect } from \"react\";\nimport { useNullableStack } from \"./useNullableStack\";\n\nexport function usePreventTouchDuringTransition({\n  ref,\n}: {\n  ref: React.RefObject<HTMLDivElement>;\n}) {\n  const stack = useNullableStack();\n\n  useEffect(() => {\n    if (!stack) {\n      return;\n    }\n\n    const $ref = ref.current;\n    if (!$ref || stack.globalTransitionState === \"idle\") {\n      return;\n    }\n\n    const preventTouch = (e: TouchEvent) => {\n      e.preventDefault();\n      e.stopPropagation();\n    };\n\n    // Use capture phase to prevent all touch events from reaching child elements\n    // during transitions (including edge swipe area)\n    $ref.addEventListener(\"touchstart\", preventTouch, { capture: true });\n    $ref.addEventListener(\"touchmove\", preventTouch, { capture: true });\n    $ref.addEventListener(\"touchend\", preventTouch, { capture: true });\n    $ref.addEventListener(\"touchcancel\", preventTouch, { capture: true });\n\n    return () => {\n      $ref.removeEventListener(\"touchstart\", preventTouch, { capture: true });\n      $ref.removeEventListener(\"touchmove\", preventTouch, { capture: true });\n      $ref.removeEventListener(\"touchend\", preventTouch, { capture: true });\n      $ref.removeEventListener(\"touchcancel\", preventTouch, { capture: true });\n    };\n  }, [stack?.globalTransitionState]);\n}\n", "import type { Stack } from \"@stackflow/core\";\nimport { useStack } from \"@stackflow/react\";\n\nexport function useNullableStack() {\n  return useStack() as Stack | null;\n}\n", "import type { ActivityTransitionState } from \"@stackflow/core\";\nimport { useEffect } from \"react\";\n\nimport { useNullableActivity } from \"./useNullableActivity\";\nimport { noop } from \"./utils\";\n\nconst connections: {\n  [styleName: string]: Map<\n    number,\n    {\n      refs: Array<React.RefObject<any>>;\n      hasEffect: boolean;\n    }\n  >;\n} = {};\n\nexport function useStyleEffect<T extends HTMLElement>({\n  styleName,\n  refs,\n  effect,\n  effectDeps,\n}: {\n  styleName: string;\n  refs: Array<React.RefObject<T>>;\n  effect?: (params: {\n    activityTransitionState: ActivityTransitionState;\n    refs: Array<React.RefObject<T>>;\n  }) => (() => void) | undefined;\n  effectDeps?: any[];\n}) {\n  const activity = useNullableActivity();\n\n  useEffect(() => {\n    if (!activity) {\n      return noop;\n    }\n    if (!connections[styleName]) {\n      connections[styleName] = new Map();\n    }\n\n    connections[styleName].set(activity.zIndex, {\n      refs,\n      hasEffect: !!effect,\n    });\n\n    return () => {\n      connections[styleName].delete(activity.zIndex);\n    };\n  }, [activity?.id, refs, effect]);\n\n  useEffect(() => {\n    if (!activity) {\n      return noop;\n    }\n    if (!effect) {\n      return noop;\n    }\n\n    const refs = (() => {\n      let arr: Array<React.RefObject<T>> = [];\n\n      for (let i = 1; i <= activity.zIndex; i += 1) {\n        const connection = connections[styleName].get(activity.zIndex - i);\n\n        if (connection?.refs) {\n          arr = [...arr, ...connection.refs];\n        }\n        if (connection?.hasEffect) {\n          break;\n        }\n      }\n\n      return arr;\n    })();\n\n    const cleanup = effect({\n      activityTransitionState: activity.transitionState,\n      refs,\n    });\n\n    return () => {\n      cleanup?.();\n    };\n  }, [activity?.transitionState, ...(effectDeps ?? [])]);\n}\n", "import { useStyleEffect } from \"./useStyleEffect\";\nimport { noop } from \"./utils\";\n\nexport function useStyleEffectHide({\n  refs,\n}: {\n  refs: Array<React.RefObject<any>>;\n}) {\n  useStyleEffect({\n    styleName: \"hide\",\n    refs,\n    effect: ({ activityTransitionState, refs }) => {\n      const cleanup = () => {\n        refs.forEach((ref) => {\n          if (!ref.current) {\n            return;\n          }\n          const $ref = ref.current;\n\n          $ref.style.display = \"\";\n        });\n      };\n\n      switch (activityTransitionState) {\n        case \"enter-done\": {\n          refs.forEach((ref) => {\n            if (!ref.current) {\n              return;\n            }\n            const $ref = ref.current;\n\n            $ref.style.display = \"none\";\n          });\n\n          return () => {\n            cleanup();\n          };\n        }\n        default: {\n          cleanup();\n\n          return noop;\n        }\n      }\n    },\n  });\n}\n", "import { useStyleEffect } from \"./useStyleEffect\";\nimport { listenOnce, noop, requestNextFrame } from \"./utils\";\n\nexport function useStyleEffectOffset({\n  refs,\n  transitionDuration,\n  offsetStyles,\n  hasEffect = false,\n}: {\n  refs: Array<React.RefObject<any>>;\n  transitionDuration: string;\n  offsetStyles: {\n    transform: string;\n    opacity: string;\n  };\n  hasEffect?: boolean;\n}) {\n  useStyleEffect({\n    styleName: \"offset\",\n    refs,\n    effect: hasEffect\n      ? ({ activityTransitionState, refs }) => {\n          const cleanup = () => {\n            requestNextFrame(() => {\n              refs.forEach((ref) => {\n                if (!ref.current) {\n                  return;\n                }\n\n                const $el = ref.current;\n\n                $el.style.transform = \"\";\n                $el.style.opacity = \"\";\n\n                listenOnce($el, [\"transitionend\", \"transitioncancel\"], () => {\n                  $el.style.transition = \"\";\n                });\n              });\n            });\n          };\n\n          switch (activityTransitionState) {\n            case \"enter-active\":\n            case \"enter-done\": {\n              refs.forEach((ref) => {\n                if (!ref.current) {\n                  return;\n                }\n\n                ref.current.style.transition = transitionDuration;\n                ref.current.style.transform = offsetStyles.transform;\n                ref.current.style.opacity = offsetStyles.opacity;\n              });\n\n              switch (activityTransitionState) {\n                case \"enter-done\":\n                  return () => {\n                    cleanup();\n                  };\n                default:\n                  return noop;\n              }\n            }\n            case \"exit-active\":\n            case \"exit-done\": {\n              requestNextFrame(() => {\n                cleanup();\n              });\n\n              return noop;\n            }\n            default: {\n              return noop;\n            }\n          }\n        }\n      : undefined,\n  });\n}\n", "import type { ActivityTransitionState } from \"@stackflow/core\";\nimport { useStyleEffect } from \"./useStyleEffect\";\nimport { listenOnce, noop } from \"./utils\";\n\nexport const SWIPE_BACK_RATIO_CSS_VAR_NAME = \"--stackflow-swipe-back-ratio\";\n\nexport function useStyleEffectSwipeBack({\n  dimRef,\n  edgeRef,\n  paperRef,\n  appBarRef,\n  offset,\n  transitionDuration,\n  preventSwipeBack,\n  moveAppBarTogether,\n  getActivityTransitionState,\n  onSwipeStart,\n  onSwipeMove,\n  onSwipeEnd,\n  onTransitionEnd,\n}: {\n  dimRef: React.RefObject<HTMLDivElement>;\n  edgeRef: React.RefObject<HTMLDivElement>;\n  paperRef: React.RefObject<HTMLDivElement>;\n  appBarRef?: React.RefObject<HTMLDivElement>;\n  offset: number;\n  transitionDuration: string;\n  preventSwipeBack: boolean;\n  moveAppBarTogether: boolean;\n  getActivityTransitionState: () => ActivityTransitionState | null;\n  onSwipeStart?: () => void;\n  onSwipeMove?: (args: { dx: number; ratio: number }) => void;\n  onSwipeEnd?: (args: { swiped: boolean }) => void;\n  onTransitionEnd?: (args: { swiped: boolean }) => void;\n}) {\n  useStyleEffect({\n    styleName: \"swipe-back\",\n    refs: moveAppBarTogether && appBarRef ? [paperRef, appBarRef] : [paperRef],\n    effect: ({ refs }) => {\n      if (preventSwipeBack) {\n        return noop;\n      }\n\n      if (!dimRef.current || !edgeRef.current || !paperRef.current) {\n        return noop;\n      }\n\n      const $dim = dimRef.current;\n      const $edge = edgeRef.current;\n      const $paper = paperRef.current;\n      const $appBarRef = appBarRef?.current;\n\n      let x0: number | null = null;\n      let t0: number | null = null;\n      let x: number | null = null;\n\n      let cachedRefs: Array<{\n        style: {\n          transform: string;\n          transition: string;\n        };\n        parentElement?: {\n          style: {\n            display: string;\n          };\n        };\n      }> = [];\n\n      const resetState = () => {\n        x0 = null;\n        t0 = null;\n        x = null;\n        cachedRefs = [];\n      };\n\n      let _rAFLock = false;\n\n      function moveActivity({ dx, ratio }: { dx: number; ratio: number }) {\n        if (!_rAFLock) {\n          _rAFLock = true;\n\n          requestAnimationFrame(() => {\n            $dim.style.opacity = `${1 - ratio}`;\n            $dim.style.transition = \"0s\";\n\n            $paper.style.overflowY = \"hidden\";\n            $paper.style.transform = `translate3d(${dx}px, 0, 0)`;\n            $paper.style.transition = \"0s\";\n\n            if (moveAppBarTogether && $appBarRef) {\n              $appBarRef.style.overflowY = \"hidden\";\n              $appBarRef.style.transform = `translate3d(${dx}px, 0, 0)`;\n              $appBarRef.style.transition = \"0s\";\n            }\n\n            $appBarRef?.style.setProperty(\n              SWIPE_BACK_RATIO_CSS_VAR_NAME,\n              String(ratio),\n            );\n\n            refs.forEach((ref) => {\n              if (!ref.current) {\n                return;\n              }\n\n              ref.current.style.transform = `translate3d(${\n                -1 * (1 - ratio) * offset\n              }px, 0, 0)`;\n              ref.current.style.transition = \"0s\";\n\n              if (ref.current.parentElement?.style.display === \"none\") {\n                ref.current.parentElement.style.display = \"block\";\n              }\n\n              ref.current.parentElement?.style.setProperty(\n                SWIPE_BACK_RATIO_CSS_VAR_NAME,\n                String(ratio),\n              );\n            });\n\n            _rAFLock = false;\n          });\n        }\n      }\n\n      function resetActivity({ swiped }: { swiped: boolean }): Promise<void> {\n        return new Promise((resolve) => {\n          requestAnimationFrame(() => {\n            $dim.style.opacity = `${swiped ? 0 : 1}`;\n            $dim.style.transition = transitionDuration;\n\n            $paper.style.overflowY = \"hidden\";\n            $paper.style.transform = `translateX(${swiped ? \"100%\" : \"0\"})`;\n            $paper.style.transition = transitionDuration;\n\n            if (moveAppBarTogether && $appBarRef) {\n              $appBarRef.style.overflowY = \"hidden\";\n              $appBarRef.style.transform = `translateX(${swiped ? \"100%\" : \"0\"})`;\n              $appBarRef.style.transition = transitionDuration;\n            }\n\n            refs.forEach((ref) => {\n              if (!ref.current) {\n                return;\n              }\n\n              ref.current.style.transition = transitionDuration;\n              ref.current.style.transform = `translate3d(${\n                swiped ? \"0\" : `-${offset / 16}rem`\n              }, 0, 0)`;\n            });\n\n            const _cachedRefs = [...cachedRefs];\n\n            resolve();\n\n            listenOnce($paper, [\"transitionend\", \"transitioncancel\"], () => {\n              const _swiped =\n                swiped ||\n                getActivityTransitionState() === \"exit-active\" ||\n                getActivityTransitionState() === \"exit-done\";\n\n              $dim.style.opacity = \"\";\n              $paper.style.overflowY = \"\";\n              $paper.style.transform = \"\";\n\n              if (moveAppBarTogether && $appBarRef) {\n                $appBarRef.style.overflowY = \"\";\n                $appBarRef.style.transform = \"\";\n                $appBarRef.style.removeProperty(\"transition\");\n              }\n\n              $appBarRef?.style.removeProperty(SWIPE_BACK_RATIO_CSS_VAR_NAME);\n\n              refs.forEach((ref, i) => {\n                if (!ref.current) {\n                  return;\n                }\n\n                const _cachedRef = _cachedRefs[i];\n\n                if (_swiped) {\n                  ref.current.style.transition = \"\";\n                  ref.current.style.transform = \"\";\n\n                  if (ref.current.parentElement) {\n                    ref.current.parentElement.style.display = \"\";\n                  }\n                } else if (_cachedRef) {\n                  ref.current.style.transition = _cachedRef.style.transition;\n                  ref.current.style.transform = _cachedRef.style.transform;\n\n                  if (ref.current.parentElement && _cachedRef.parentElement) {\n                    ref.current.parentElement.style.display =\n                      _cachedRef.parentElement.style.display;\n                  }\n                }\n\n                ref.current.parentElement?.style.removeProperty(\n                  SWIPE_BACK_RATIO_CSS_VAR_NAME,\n                );\n              });\n\n              onTransitionEnd?.({ swiped });\n            });\n          });\n        });\n      }\n\n      const onTouchStart = (e: TouchEvent) => {\n        const { activeElement } = document as any;\n\n        activeElement?.blur?.();\n\n        x0 = x = e.touches[0].clientX;\n        t0 = Date.now();\n\n        cachedRefs = refs.map((ref) => {\n          if (!ref.current) {\n            return {\n              style: {\n                transform: \"\",\n                transition: \"\",\n              },\n            };\n          }\n\n          return {\n            style: {\n              transform: ref.current.style.transform,\n              transition: ref.current.style.transition,\n            },\n            parentElement: ref.current.parentElement\n              ? {\n                  style: {\n                    display: ref.current.parentElement.style.display,\n                  },\n                }\n              : undefined,\n          };\n        });\n\n        onSwipeStart?.();\n      };\n\n      const onTouchMove = (e: TouchEvent) => {\n        if (!x0) {\n          resetState();\n          return;\n        }\n\n        x = e.touches[0].clientX;\n\n        const dx = Math.max(0, x - x0);\n        const ratio = dx / $paper.clientWidth;\n\n        moveActivity({ dx, ratio });\n        onSwipeMove?.({ dx, ratio });\n      };\n\n      const onTouchEnd = () => {\n        if (!x0 || !t0 || !x) {\n          resetState();\n          return;\n        }\n\n        const t = Date.now();\n        const v = (x - x0) / (t - t0);\n        const swiped = v > 1 || x / $paper.clientWidth > 0.4;\n\n        onSwipeEnd?.({ swiped });\n\n        Promise.resolve()\n          .then(() => resetActivity({ swiped }))\n          .then(() => resetState());\n      };\n\n      $edge.addEventListener(\"touchstart\", onTouchStart, { passive: true });\n      $edge.addEventListener(\"touchmove\", onTouchMove, { passive: true });\n      $edge.addEventListener(\"touchend\", onTouchEnd, { passive: true });\n      $edge.addEventListener(\"touchcancel\", onTouchEnd, { passive: true });\n\n      return () => {\n        $edge.removeEventListener(\"touchstart\", onTouchStart);\n        $edge.removeEventListener(\"touchmove\", onTouchMove);\n        $edge.removeEventListener(\"touchend\", onTouchEnd);\n        $edge.removeEventListener(\"touchcancel\", onTouchEnd);\n      };\n    },\n    effectDeps: [preventSwipeBack],\n  });\n}\n", "import { useNullableActivity } from \"./useNullableActivity\";\n\nexport function useZIndexBase() {\n  const activity = useNullableActivity();\n  return (activity?.zIndex ?? 0) * 5;\n}\n"],
  "mappings": "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",
  "names": ["useEffect", "useState", "useState", "useEffect", "useEffect", "useState", "useState", "useEffect", "useEffect", "useEffect", "useEffect", "useEffect", "refs", "refs", "refs"]
}
