{"version":3,"file":"script_main.DQ0GoJCv.mjs","names":["clamp","x","d","debounce","e","time","distance","className","distance","useRef","_Fragment","Children","e","index","j","log","time","timeEnd","e","splitWordsRegex","useRef","useCallback","offsetTop","SearchInputClearButtonType","SearchInputDividerType","SearchResultTitleType","SearchResultSubtitleType","SearchResultItemType","SearchLayoutType","SearchEntryType","SearchIconType","splitWordsRegex","SearchInputClearButtonType","SearchInputDividerType","SearchResultTitleType","SearchResultSubtitleType","SearchResultItemType","SearchLayoutType","SearchEntryType","SearchIconType","splitWordsRegex","SearchInputClearButtonType","SearchInputDividerType","SearchResultTitleType","SearchResultSubtitleType","SearchResultItemType","SearchLayoutType","SearchEntryType","SearchIconType","p","useState","useTransition","index","SearchResultTitleType","useRef","useState","useDeferredValue","useCallback","index","Input","ResultRow","useMemo","ScrollView","React","useState","x","Overlay","EntryPoint","useRef","useState","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","addPropertyOverrides","MenuItem","Search","Button","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableEnumMap","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","IconInstagram","serializationHash","variantClassNames","React.useContext","React.useMemo","React.Fragment","humanReadableVariantMap","getProps","Component","useRef","React.useId","sharedStyle.className","sharedStyle1.className","className","css","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","Navigation","Lenis","Footer","Component","useRef","React.useId","className","PropertyOverrides","React.createElement","Layout","Framer.PageRoot","Framer.lazy","Framer.useCurrentRoute","Framer.useLocaleInfo","Framer.useRouter","React.Fragment","React.memo","React.useCallback","React.useEffect","React.useRef","React.useState","Framer.LibraryFeaturesProvider","Framer.GracefullyDegradingErrorBoundary","Framer.PageEffectsProvider","breakpoints","Framer.patchRoutesForABTesting","Framer.inferInitialRouteFromPath","Framer.yieldToMain","React.startTransition","Framer.ErrorPlaceholder","React.Suspense","React.lazy"],"sources":["https:/unpkg.com/lenis@1.3.8/dist/lenis.mjs","https:/unpkg.com/lenis@1.3.8/dist/lenis-snap.mjs","https:/framerusercontent.com/modules/bSeEZJm22jsjERCOGQvq/ewEgVFDJmU5IWGjRz6lM/Lenis.js","https:/framerusercontent.com/modules/LV9trClbmNwd5PVj9l8y/L4rFqMGNzGSwRZpGTGF3/Icons.js","https:/framerusercontent.com/modules/3Xi2AslpcDRhfyCVPmx3/d0Oobr5BHnVqZJQyMdGn/storage.js","https:/framer.com/m/cache-YMiL.js@b9aplVZjN51x28yfNK16","https:/framerusercontent.com/modules/uU1mtMKXsrVAg8N5hW7w/v7gDLwKJgQ5vAsFHxY4H/cachedIndex.js","https:/framerusercontent.com/modules/K9JZRwJcE6slDAf8rUmh/mJ54py1Ecnn1RoC4N1m4/fakeResults.js","https:/framerusercontent.com/modules/TwRgbWuhHeB95MPifel4/YW8Hlm59FG3PajbrVsaR/fuzzySearch.js","https:/framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js","https:/framerusercontent.com/modules/MyBp84Z0p9nUcMimVMnY/IOZYtsQMauhTmjY894DM/useSearch.js","https:/framerusercontent.com/modules/PJVBcBLmDteTEAZh3J9Z/keXJyjyE9VnzUcDMayjg/browser.js","https:/framerusercontent.com/modules/Gzef0nFihI9m9vZG45th/lIUxbZcreiDm2GzUkt3y/useCallbackOnMouseMove.js","https:/framerusercontent.com/modules/eAnjm75CdfYT1Zz4BIaz/7KDSfnnyD1T3Ap75L4m8/scrollIntoView.js","https:/framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/wgITiHCOZBBo33pin0wW/SearchModal.js","https:/framerusercontent.com/modules/MyBp84Z0p9nUcMimVMnY/G59GwobMNJqwSjtPO6Pv/useSearch.js","https:/framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/bsLTiXYjkHoD2XaMjabu/SearchModal.js","https:/framerusercontent.com/modules/MyBp84Z0p9nUcMimVMnY/fpvHBWGoGQcWezUopJLS/useSearch.js","https:/framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/1GynhDlRW7uuXFYW1RXb/SearchModal.js","https:/framerusercontent.com/modules/MyBp84Z0p9nUcMimVMnY/1vZ2fdkLJI4IprrVTHqR/useSearch.js","https:/framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/lCNMpf6DznmmCJRndYjM/SearchModal.js","https:/framerusercontent.com/modules/hqEf5wXaAewP8VPuaZ98/5A0QGVeEr2cwheQpIuEG/useViewportSizeState.js","https:/framerusercontent.com/modules/6wAE2eMb2Tl3zrU7u4UL/mKj6QS2p4Cgdaa0WrZKY/Search.js","https:/framerusercontent.com/modules/bfQDT3m69ihltHWkS4cA/PuKglzk6joNj4LKkNE2U/srWlEMRHU.js","https:/framerusercontent.com/modules/sWa6stXmC1BBAwWwJNFt/5nbTwOU6rPk7hRKBXeIY/Csf9uXxSx.js","https:/framerusercontent.com/modules/liacONXMPejV2JictnoW/oftAiQd0wa3BaA1nLPlp/gic_s0h5F.js","https:/framerusercontent.com/modules/taqqdLxY1F4zdrv59NNB/M7MLWjGfmNUOCnkyllqM/Vak1yq85O.js","framer:toplevel/main"],"sourcesContent":["// package.json\nvar version = \"1.3.8\";\n\n// packages/core/src/maths.ts\nfunction clamp(min, input, max) {\n  return Math.max(min, Math.min(input, max));\n}\nfunction lerp(x, y, t) {\n  return (1 - t) * x + t * y;\n}\nfunction damp(x, y, lambda, deltaTime) {\n  return lerp(x, y, 1 - Math.exp(-lambda * deltaTime));\n}\nfunction modulo(n, d) {\n  return (n % d + d) % d;\n}\n\n// packages/core/src/animate.ts\nvar Animate = class {\n  isRunning = false;\n  value = 0;\n  from = 0;\n  to = 0;\n  currentTime = 0;\n  // These are instanciated in the fromTo method\n  lerp;\n  duration;\n  easing;\n  onUpdate;\n  /**\n   * Advance the animation by the given delta time\n   *\n   * @param deltaTime - The time in seconds to advance the animation\n   */\n  advance(deltaTime) {\n    if (!this.isRunning) return;\n    let completed = false;\n    if (this.duration && this.easing) {\n      this.currentTime += deltaTime;\n      const linearProgress = clamp(0, this.currentTime / this.duration, 1);\n      completed = linearProgress >= 1;\n      const easedProgress = completed ? 1 : this.easing(linearProgress);\n      this.value = this.from + (this.to - this.from) * easedProgress;\n    } else if (this.lerp) {\n      this.value = damp(this.value, this.to, this.lerp * 60, deltaTime);\n      if (Math.round(this.value) === this.to) {\n        this.value = this.to;\n        completed = true;\n      }\n    } else {\n      this.value = this.to;\n      completed = true;\n    }\n    if (completed) {\n      this.stop();\n    }\n    this.onUpdate?.(this.value, completed);\n  }\n  /** Stop the animation */\n  stop() {\n    this.isRunning = false;\n  }\n  /**\n   * Set up the animation from a starting value to an ending value\n   * with optional parameters for lerping, duration, easing, and onUpdate callback\n   *\n   * @param from - The starting value\n   * @param to - The ending value\n   * @param options - Options for the animation\n   */\n  fromTo(from, to, { lerp: lerp2, duration, easing, onStart, onUpdate }) {\n    this.from = this.value = from;\n    this.to = to;\n    this.lerp = lerp2;\n    this.duration = duration;\n    this.easing = easing;\n    this.currentTime = 0;\n    this.isRunning = true;\n    onStart?.();\n    this.onUpdate = onUpdate;\n  }\n};\n\n// packages/core/src/debounce.ts\nfunction debounce(callback, delay) {\n  let timer;\n  return function(...args) {\n    let context = this;\n    clearTimeout(timer);\n    timer = setTimeout(() => {\n      timer = void 0;\n      callback.apply(context, args);\n    }, delay);\n  };\n}\n\n// packages/core/src/dimensions.ts\nvar Dimensions = class {\n  constructor(wrapper, content, { autoResize = true, debounce: debounceValue = 250 } = {}) {\n    this.wrapper = wrapper;\n    this.content = content;\n    if (autoResize) {\n      this.debouncedResize = debounce(this.resize, debounceValue);\n      if (this.wrapper instanceof Window) {\n        window.addEventListener(\"resize\", this.debouncedResize, false);\n      } else {\n        this.wrapperResizeObserver = new ResizeObserver(this.debouncedResize);\n        this.wrapperResizeObserver.observe(this.wrapper);\n      }\n      this.contentResizeObserver = new ResizeObserver(this.debouncedResize);\n      this.contentResizeObserver.observe(this.content);\n    }\n    this.resize();\n  }\n  width = 0;\n  height = 0;\n  scrollHeight = 0;\n  scrollWidth = 0;\n  // These are instanciated in the constructor as they need information from the options\n  debouncedResize;\n  wrapperResizeObserver;\n  contentResizeObserver;\n  destroy() {\n    this.wrapperResizeObserver?.disconnect();\n    this.contentResizeObserver?.disconnect();\n    if (this.wrapper === window && this.debouncedResize) {\n      window.removeEventListener(\"resize\", this.debouncedResize, false);\n    }\n  }\n  resize = () => {\n    this.onWrapperResize();\n    this.onContentResize();\n  };\n  onWrapperResize = () => {\n    if (this.wrapper instanceof Window) {\n      this.width = window.innerWidth;\n      this.height = window.innerHeight;\n    } else {\n      this.width = this.wrapper.clientWidth;\n      this.height = this.wrapper.clientHeight;\n    }\n  };\n  onContentResize = () => {\n    if (this.wrapper instanceof Window) {\n      this.scrollHeight = this.content.scrollHeight;\n      this.scrollWidth = this.content.scrollWidth;\n    } else {\n      this.scrollHeight = this.wrapper.scrollHeight;\n      this.scrollWidth = this.wrapper.scrollWidth;\n    }\n  };\n  get limit() {\n    return {\n      x: this.scrollWidth - this.width,\n      y: this.scrollHeight - this.height\n    };\n  }\n};\n\n// packages/core/src/emitter.ts\nvar Emitter = class {\n  events = {};\n  /**\n   * Emit an event with the given data\n   * @param event Event name\n   * @param args Data to pass to the event handlers\n   */\n  emit(event, ...args) {\n    let callbacks = this.events[event] || [];\n    for (let i = 0, length = callbacks.length; i < length; i++) {\n      callbacks[i]?.(...args);\n    }\n  }\n  /**\n   * Add a callback to the event\n   * @param event Event name\n   * @param cb Callback function\n   * @returns Unsubscribe function\n   */\n  on(event, cb) {\n    this.events[event]?.push(cb) || (this.events[event] = [cb]);\n    return () => {\n      this.events[event] = this.events[event]?.filter((i) => cb !== i);\n    };\n  }\n  /**\n   * Remove a callback from the event\n   * @param event Event name\n   * @param callback Callback function\n   */\n  off(event, callback) {\n    this.events[event] = this.events[event]?.filter((i) => callback !== i);\n  }\n  /**\n   * Remove all event listeners and clean up\n   */\n  destroy() {\n    this.events = {};\n  }\n};\n\n// packages/core/src/virtual-scroll.ts\nvar LINE_HEIGHT = 100 / 6;\nvar listenerOptions = { passive: false };\nvar VirtualScroll = class {\n  constructor(element, options = { wheelMultiplier: 1, touchMultiplier: 1 }) {\n    this.element = element;\n    this.options = options;\n    window.addEventListener(\"resize\", this.onWindowResize, false);\n    this.onWindowResize();\n    this.element.addEventListener(\"wheel\", this.onWheel, listenerOptions);\n    this.element.addEventListener(\n      \"touchstart\",\n      this.onTouchStart,\n      listenerOptions\n    );\n    this.element.addEventListener(\n      \"touchmove\",\n      this.onTouchMove,\n      listenerOptions\n    );\n    this.element.addEventListener(\"touchend\", this.onTouchEnd, listenerOptions);\n  }\n  touchStart = {\n    x: 0,\n    y: 0\n  };\n  lastDelta = {\n    x: 0,\n    y: 0\n  };\n  window = {\n    width: 0,\n    height: 0\n  };\n  emitter = new Emitter();\n  /**\n   * Add an event listener for the given event and callback\n   *\n   * @param event Event name\n   * @param callback Callback function\n   */\n  on(event, callback) {\n    return this.emitter.on(event, callback);\n  }\n  /** Remove all event listeners and clean up */\n  destroy() {\n    this.emitter.destroy();\n    window.removeEventListener(\"resize\", this.onWindowResize, false);\n    this.element.removeEventListener(\"wheel\", this.onWheel, listenerOptions);\n    this.element.removeEventListener(\n      \"touchstart\",\n      this.onTouchStart,\n      listenerOptions\n    );\n    this.element.removeEventListener(\n      \"touchmove\",\n      this.onTouchMove,\n      listenerOptions\n    );\n    this.element.removeEventListener(\n      \"touchend\",\n      this.onTouchEnd,\n      listenerOptions\n    );\n  }\n  /**\n   * Event handler for 'touchstart' event\n   *\n   * @param event Touch event\n   */\n  onTouchStart = (event) => {\n    const { clientX, clientY } = event.targetTouches ? event.targetTouches[0] : event;\n    this.touchStart.x = clientX;\n    this.touchStart.y = clientY;\n    this.lastDelta = {\n      x: 0,\n      y: 0\n    };\n    this.emitter.emit(\"scroll\", {\n      deltaX: 0,\n      deltaY: 0,\n      event\n    });\n  };\n  /** Event handler for 'touchmove' event */\n  onTouchMove = (event) => {\n    const { clientX, clientY } = event.targetTouches ? event.targetTouches[0] : event;\n    const deltaX = -(clientX - this.touchStart.x) * this.options.touchMultiplier;\n    const deltaY = -(clientY - this.touchStart.y) * this.options.touchMultiplier;\n    this.touchStart.x = clientX;\n    this.touchStart.y = clientY;\n    this.lastDelta = {\n      x: deltaX,\n      y: deltaY\n    };\n    this.emitter.emit(\"scroll\", {\n      deltaX,\n      deltaY,\n      event\n    });\n  };\n  onTouchEnd = (event) => {\n    this.emitter.emit(\"scroll\", {\n      deltaX: this.lastDelta.x,\n      deltaY: this.lastDelta.y,\n      event\n    });\n  };\n  /** Event handler for 'wheel' event */\n  onWheel = (event) => {\n    let { deltaX, deltaY, deltaMode } = event;\n    const multiplierX = deltaMode === 1 ? LINE_HEIGHT : deltaMode === 2 ? this.window.width : 1;\n    const multiplierY = deltaMode === 1 ? LINE_HEIGHT : deltaMode === 2 ? this.window.height : 1;\n    deltaX *= multiplierX;\n    deltaY *= multiplierY;\n    deltaX *= this.options.wheelMultiplier;\n    deltaY *= this.options.wheelMultiplier;\n    this.emitter.emit(\"scroll\", { deltaX, deltaY, event });\n  };\n  onWindowResize = () => {\n    this.window = {\n      width: window.innerWidth,\n      height: window.innerHeight\n    };\n  };\n};\n\n// packages/core/src/lenis.ts\nvar defaultEasing = (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t));\nvar Lenis = class {\n  _isScrolling = false;\n  // true when scroll is animating\n  _isStopped = false;\n  // true if user should not be able to scroll - enable/disable programmatically\n  _isLocked = false;\n  // same as isStopped but enabled/disabled when scroll reaches target\n  _preventNextNativeScrollEvent = false;\n  _resetVelocityTimeout = null;\n  __rafID = null;\n  /**\n   * Whether or not the user is touching the screen\n   */\n  isTouching;\n  /**\n   * The time in ms since the lenis instance was created\n   */\n  time = 0;\n  /**\n   * User data that will be forwarded through the scroll event\n   *\n   * @example\n   * lenis.scrollTo(100, {\n   *   userData: {\n   *     foo: 'bar'\n   *   }\n   * })\n   */\n  userData = {};\n  /**\n   * The last velocity of the scroll\n   */\n  lastVelocity = 0;\n  /**\n   * The current velocity of the scroll\n   */\n  velocity = 0;\n  /**\n   * The direction of the scroll\n   */\n  direction = 0;\n  /**\n   * The options passed to the lenis instance\n   */\n  options;\n  /**\n   * The target scroll value\n   */\n  targetScroll;\n  /**\n   * The animated scroll value\n   */\n  animatedScroll;\n  // These are instanciated here as they don't need information from the options\n  animate = new Animate();\n  emitter = new Emitter();\n  // These are instanciated in the constructor as they need information from the options\n  dimensions;\n  // This is not private because it's used in the Snap class\n  virtualScroll;\n  constructor({\n    wrapper = window,\n    content = document.documentElement,\n    eventsTarget = wrapper,\n    smoothWheel = true,\n    syncTouch = false,\n    syncTouchLerp = 0.075,\n    touchInertiaExponent = 1.7,\n    duration,\n    // in seconds\n    easing,\n    lerp: lerp2 = 0.1,\n    infinite = false,\n    orientation = \"vertical\",\n    // vertical, horizontal\n    gestureOrientation = \"vertical\",\n    // vertical, horizontal, both\n    touchMultiplier = 1,\n    wheelMultiplier = 1,\n    autoResize = true,\n    prevent,\n    virtualScroll,\n    overscroll = true,\n    autoRaf = false,\n    anchors = false,\n    autoToggle = false,\n    // https://caniuse.com/?search=transition-behavior\n    allowNestedScroll = false,\n    __experimental__naiveDimensions = false\n  } = {}) {\n    window.lenisVersion = version;\n    if (!wrapper || wrapper === document.documentElement) {\n      wrapper = window;\n    }\n    if (typeof duration === \"number\" && typeof easing !== \"function\") {\n      easing = defaultEasing;\n    } else if (typeof easing === \"function\" && typeof duration !== \"number\") {\n      duration = 1;\n    }\n    this.options = {\n      wrapper,\n      content,\n      eventsTarget,\n      smoothWheel,\n      syncTouch,\n      syncTouchLerp,\n      touchInertiaExponent,\n      duration,\n      easing,\n      lerp: lerp2,\n      infinite,\n      gestureOrientation,\n      orientation,\n      touchMultiplier,\n      wheelMultiplier,\n      autoResize,\n      prevent,\n      virtualScroll,\n      overscroll,\n      autoRaf,\n      anchors,\n      autoToggle,\n      allowNestedScroll,\n      __experimental__naiveDimensions\n    };\n    this.dimensions = new Dimensions(wrapper, content, { autoResize });\n    this.updateClassName();\n    this.targetScroll = this.animatedScroll = this.actualScroll;\n    this.options.wrapper.addEventListener(\"scroll\", this.onNativeScroll, false);\n    this.options.wrapper.addEventListener(\"scrollend\", this.onScrollEnd, {\n      capture: true\n    });\n    if (this.options.anchors && this.options.wrapper === window) {\n      this.options.wrapper.addEventListener(\n        \"click\",\n        this.onClick,\n        false\n      );\n    }\n    this.options.wrapper.addEventListener(\n      \"pointerdown\",\n      this.onPointerDown,\n      false\n    );\n    this.virtualScroll = new VirtualScroll(eventsTarget, {\n      touchMultiplier,\n      wheelMultiplier\n    });\n    this.virtualScroll.on(\"scroll\", this.onVirtualScroll);\n    if (this.options.autoToggle) {\n      this.rootElement.addEventListener(\"transitionend\", this.onTransitionEnd, {\n        passive: true\n      });\n    }\n    if (this.options.autoRaf) {\n      this.__rafID = requestAnimationFrame(this.raf);\n    }\n  }\n  /**\n   * Destroy the lenis instance, remove all event listeners and clean up the class name\n   */\n  destroy() {\n    this.emitter.destroy();\n    this.options.wrapper.removeEventListener(\n      \"scroll\",\n      this.onNativeScroll,\n      false\n    );\n    this.options.wrapper.removeEventListener(\"scrollend\", this.onScrollEnd, {\n      capture: true\n    });\n    this.options.wrapper.removeEventListener(\n      \"pointerdown\",\n      this.onPointerDown,\n      false\n    );\n    if (this.options.anchors && this.options.wrapper === window) {\n      this.options.wrapper.removeEventListener(\n        \"click\",\n        this.onClick,\n        false\n      );\n    }\n    this.virtualScroll.destroy();\n    this.dimensions.destroy();\n    this.cleanUpClassName();\n    if (this.__rafID) {\n      cancelAnimationFrame(this.__rafID);\n    }\n  }\n  on(event, callback) {\n    return this.emitter.on(event, callback);\n  }\n  off(event, callback) {\n    return this.emitter.off(event, callback);\n  }\n  onScrollEnd = (e) => {\n    if (!(e instanceof CustomEvent)) {\n      if (this.isScrolling === \"smooth\" || this.isScrolling === false) {\n        e.stopPropagation();\n      }\n    }\n  };\n  dispatchScrollendEvent = () => {\n    this.options.wrapper.dispatchEvent(\n      new CustomEvent(\"scrollend\", {\n        bubbles: this.options.wrapper === window,\n        // cancelable: false,\n        detail: {\n          lenisScrollEnd: true\n        }\n      })\n    );\n  };\n  onTransitionEnd = (event) => {\n    if (event.propertyName.includes(\"overflow\")) {\n      const property = this.isHorizontal ? \"overflow-x\" : \"overflow-y\";\n      const overflow = getComputedStyle(this.rootElement)[property];\n      if ([\"hidden\", \"clip\"].includes(overflow)) {\n        this.internalStop();\n      } else {\n        this.internalStart();\n      }\n    }\n  };\n  setScroll(scroll) {\n    if (this.isHorizontal) {\n      this.options.wrapper.scrollTo({ left: scroll, behavior: \"instant\" });\n    } else {\n      this.options.wrapper.scrollTo({ top: scroll, behavior: \"instant\" });\n    }\n  }\n  onClick = (event) => {\n    const path = event.composedPath();\n    const anchor = path.find(\n      (node) => node instanceof HTMLAnchorElement && (node.getAttribute(\"href\")?.startsWith(\"#\") || node.getAttribute(\"href\")?.startsWith(\"/#\") || node.getAttribute(\"href\")?.startsWith(\"./#\"))\n    );\n    if (anchor) {\n      const id = anchor.getAttribute(\"href\");\n      if (id) {\n        const options = typeof this.options.anchors === \"object\" && this.options.anchors ? this.options.anchors : void 0;\n        let target = `#${id.split(\"#\")[1]}`;\n        if ([\"#\", \"/#\", \"./#\", \"#top\", \"/#top\", \"./#top\"].includes(id)) {\n          target = 0;\n        }\n        this.scrollTo(target, options);\n      }\n    }\n  };\n  onPointerDown = (event) => {\n    if (event.button === 1) {\n      this.reset();\n    }\n  };\n  onVirtualScroll = (data) => {\n    if (typeof this.options.virtualScroll === \"function\" && this.options.virtualScroll(data) === false)\n      return;\n    const { deltaX, deltaY, event } = data;\n    this.emitter.emit(\"virtual-scroll\", { deltaX, deltaY, event });\n    if (event.ctrlKey) return;\n    if (event.lenisStopPropagation) return;\n    const isTouch = event.type.includes(\"touch\");\n    const isWheel = event.type.includes(\"wheel\");\n    this.isTouching = event.type === \"touchstart\" || event.type === \"touchmove\";\n    const isClickOrTap = deltaX === 0 && deltaY === 0;\n    const isTapToStop = this.options.syncTouch && isTouch && event.type === \"touchstart\" && isClickOrTap && !this.isStopped && !this.isLocked;\n    if (isTapToStop) {\n      this.reset();\n      return;\n    }\n    const isUnknownGesture = this.options.gestureOrientation === \"vertical\" && deltaY === 0 || this.options.gestureOrientation === \"horizontal\" && deltaX === 0;\n    if (isClickOrTap || isUnknownGesture) {\n      return;\n    }\n    let composedPath = event.composedPath();\n    composedPath = composedPath.slice(0, composedPath.indexOf(this.rootElement));\n    const prevent = this.options.prevent;\n    if (!!composedPath.find(\n      (node) => node instanceof HTMLElement && (typeof prevent === \"function\" && prevent?.(node) || node.hasAttribute?.(\"data-lenis-prevent\") || isTouch && node.hasAttribute?.(\"data-lenis-prevent-touch\") || isWheel && node.hasAttribute?.(\"data-lenis-prevent-wheel\") || this.options.allowNestedScroll && this.checkNestedScroll(node, { deltaX, deltaY }))\n    ))\n      return;\n    if (this.isStopped || this.isLocked) {\n      if (event.cancelable) {\n        event.preventDefault();\n      }\n      return;\n    }\n    const isSmooth = this.options.syncTouch && isTouch || this.options.smoothWheel && isWheel;\n    if (!isSmooth) {\n      this.isScrolling = \"native\";\n      this.animate.stop();\n      event.lenisStopPropagation = true;\n      return;\n    }\n    let delta = deltaY;\n    if (this.options.gestureOrientation === \"both\") {\n      delta = Math.abs(deltaY) > Math.abs(deltaX) ? deltaY : deltaX;\n    } else if (this.options.gestureOrientation === \"horizontal\") {\n      delta = deltaX;\n    }\n    if (!this.options.overscroll || this.options.infinite || this.options.wrapper !== window && (this.animatedScroll > 0 && this.animatedScroll < this.limit || this.animatedScroll === 0 && deltaY > 0 || this.animatedScroll === this.limit && deltaY < 0)) {\n      event.lenisStopPropagation = true;\n    }\n    if (event.cancelable) {\n      event.preventDefault();\n    }\n    const isSyncTouch = isTouch && this.options.syncTouch;\n    const isTouchEnd = isTouch && event.type === \"touchend\";\n    const hasTouchInertia = isTouchEnd;\n    if (hasTouchInertia) {\n      delta = Math.sign(this.velocity) * Math.pow(Math.abs(this.velocity), this.options.touchInertiaExponent);\n    }\n    this.scrollTo(this.targetScroll + delta, {\n      programmatic: false,\n      ...isSyncTouch ? {\n        lerp: hasTouchInertia ? this.options.syncTouchLerp : 1\n        // immediate: !hasTouchInertia,\n      } : {\n        lerp: this.options.lerp,\n        duration: this.options.duration,\n        easing: this.options.easing\n      }\n    });\n  };\n  /**\n   * Force lenis to recalculate the dimensions\n   */\n  resize() {\n    this.dimensions.resize();\n    this.animatedScroll = this.targetScroll = this.actualScroll;\n    this.emit();\n  }\n  emit() {\n    this.emitter.emit(\"scroll\", this);\n  }\n  onNativeScroll = () => {\n    if (this._resetVelocityTimeout !== null) {\n      clearTimeout(this._resetVelocityTimeout);\n      this._resetVelocityTimeout = null;\n    }\n    if (this._preventNextNativeScrollEvent) {\n      this._preventNextNativeScrollEvent = false;\n      return;\n    }\n    if (this.isScrolling === false || this.isScrolling === \"native\") {\n      const lastScroll = this.animatedScroll;\n      this.animatedScroll = this.targetScroll = this.actualScroll;\n      this.lastVelocity = this.velocity;\n      this.velocity = this.animatedScroll - lastScroll;\n      this.direction = Math.sign(\n        this.animatedScroll - lastScroll\n      );\n      if (!this.isStopped) {\n        this.isScrolling = \"native\";\n      }\n      this.emit();\n      if (this.velocity !== 0) {\n        this._resetVelocityTimeout = setTimeout(() => {\n          this.lastVelocity = this.velocity;\n          this.velocity = 0;\n          this.isScrolling = false;\n          this.emit();\n        }, 400);\n      }\n    }\n  };\n  reset() {\n    this.isLocked = false;\n    this.isScrolling = false;\n    this.animatedScroll = this.targetScroll = this.actualScroll;\n    this.lastVelocity = this.velocity = 0;\n    this.animate.stop();\n  }\n  /**\n   * Start lenis scroll after it has been stopped\n   */\n  start() {\n    if (!this.isStopped) return;\n    if (this.options.autoToggle) {\n      this.rootElement.style.removeProperty(\"overflow\");\n      return;\n    }\n    this.internalStart();\n  }\n  internalStart() {\n    if (!this.isStopped) return;\n    this.reset();\n    this.isStopped = false;\n    this.emit();\n  }\n  /**\n   * Stop lenis scroll\n   */\n  stop() {\n    if (this.isStopped) return;\n    if (this.options.autoToggle) {\n      this.rootElement.style.setProperty(\"overflow\", \"clip\");\n      return;\n    }\n    this.internalStop();\n  }\n  internalStop() {\n    if (this.isStopped) return;\n    this.reset();\n    this.isStopped = true;\n    this.emit();\n  }\n  /**\n   * RequestAnimationFrame for lenis\n   *\n   * @param time The time in ms from an external clock like `requestAnimationFrame` or Tempus\n   */\n  raf = (time) => {\n    const deltaTime = time - (this.time || time);\n    this.time = time;\n    this.animate.advance(deltaTime * 1e-3);\n    if (this.options.autoRaf) {\n      this.__rafID = requestAnimationFrame(this.raf);\n    }\n  };\n  /**\n   * Scroll to a target value\n   *\n   * @param target The target value to scroll to\n   * @param options The options for the scroll\n   *\n   * @example\n   * lenis.scrollTo(100, {\n   *   offset: 100,\n   *   duration: 1,\n   *   easing: (t) => 1 - Math.cos((t * Math.PI) / 2),\n   *   lerp: 0.1,\n   *   onStart: () => {\n   *     console.log('onStart')\n   *   },\n   *   onComplete: () => {\n   *     console.log('onComplete')\n   *   },\n   * })\n   */\n  scrollTo(target, {\n    offset = 0,\n    immediate = false,\n    lock = false,\n    duration = this.options.duration,\n    easing = this.options.easing,\n    lerp: lerp2 = this.options.lerp,\n    onStart,\n    onComplete,\n    force = false,\n    // scroll even if stopped\n    programmatic = true,\n    // called from outside of the class\n    userData\n  } = {}) {\n    if ((this.isStopped || this.isLocked) && !force) return;\n    if (typeof target === \"string\" && [\"top\", \"left\", \"start\"].includes(target)) {\n      target = 0;\n    } else if (typeof target === \"string\" && [\"bottom\", \"right\", \"end\"].includes(target)) {\n      target = this.limit;\n    } else {\n      let node;\n      if (typeof target === \"string\") {\n        node = document.querySelector(target);\n      } else if (target instanceof HTMLElement && target?.nodeType) {\n        node = target;\n      }\n      if (node) {\n        if (this.options.wrapper !== window) {\n          const wrapperRect = this.rootElement.getBoundingClientRect();\n          offset -= this.isHorizontal ? wrapperRect.left : wrapperRect.top;\n        }\n        const rect = node.getBoundingClientRect();\n        target = (this.isHorizontal ? rect.left : rect.top) + this.animatedScroll;\n      }\n    }\n    if (typeof target !== \"number\") return;\n    target += offset;\n    target = Math.round(target);\n    if (this.options.infinite) {\n      if (programmatic) {\n        this.targetScroll = this.animatedScroll = this.scroll;\n        const distance = target - this.animatedScroll;\n        if (distance > this.limit / 2) {\n          target = target - this.limit;\n        } else if (distance < -this.limit / 2) {\n          target = target + this.limit;\n        }\n      }\n    } else {\n      target = clamp(0, target, this.limit);\n    }\n    if (target === this.targetScroll) {\n      onStart?.(this);\n      onComplete?.(this);\n      return;\n    }\n    this.userData = userData ?? {};\n    if (immediate) {\n      this.animatedScroll = this.targetScroll = target;\n      this.setScroll(this.scroll);\n      this.reset();\n      this.preventNextNativeScrollEvent();\n      this.emit();\n      onComplete?.(this);\n      this.userData = {};\n      requestAnimationFrame(() => {\n        this.dispatchScrollendEvent();\n      });\n      return;\n    }\n    if (!programmatic) {\n      this.targetScroll = target;\n    }\n    if (typeof duration === \"number\" && typeof easing !== \"function\") {\n      easing = defaultEasing;\n    } else if (typeof easing === \"function\" && typeof duration !== \"number\") {\n      duration = 1;\n    }\n    this.animate.fromTo(this.animatedScroll, target, {\n      duration,\n      easing,\n      lerp: lerp2,\n      onStart: () => {\n        if (lock) this.isLocked = true;\n        this.isScrolling = \"smooth\";\n        onStart?.(this);\n      },\n      onUpdate: (value, completed) => {\n        this.isScrolling = \"smooth\";\n        this.lastVelocity = this.velocity;\n        this.velocity = value - this.animatedScroll;\n        this.direction = Math.sign(this.velocity);\n        this.animatedScroll = value;\n        this.setScroll(this.scroll);\n        if (programmatic) {\n          this.targetScroll = value;\n        }\n        if (!completed) this.emit();\n        if (completed) {\n          this.reset();\n          this.emit();\n          onComplete?.(this);\n          this.userData = {};\n          requestAnimationFrame(() => {\n            this.dispatchScrollendEvent();\n          });\n          this.preventNextNativeScrollEvent();\n        }\n      }\n    });\n  }\n  preventNextNativeScrollEvent() {\n    this._preventNextNativeScrollEvent = true;\n    requestAnimationFrame(() => {\n      this._preventNextNativeScrollEvent = false;\n    });\n  }\n  checkNestedScroll(node, { deltaX, deltaY }) {\n    const time = Date.now();\n    const cache = node._lenis ??= {};\n    let hasOverflowX, hasOverflowY, isScrollableX, isScrollableY, scrollWidth, scrollHeight, clientWidth, clientHeight;\n    const gestureOrientation = this.options.gestureOrientation;\n    if (time - (cache.time ?? 0) > 2e3) {\n      cache.time = Date.now();\n      const computedStyle = window.getComputedStyle(node);\n      cache.computedStyle = computedStyle;\n      const overflowXString = computedStyle.overflowX;\n      const overflowYString = computedStyle.overflowY;\n      hasOverflowX = [\"auto\", \"overlay\", \"scroll\"].includes(overflowXString);\n      hasOverflowY = [\"auto\", \"overlay\", \"scroll\"].includes(overflowYString);\n      cache.hasOverflowX = hasOverflowX;\n      cache.hasOverflowY = hasOverflowY;\n      if (!hasOverflowX && !hasOverflowY) return false;\n      if (gestureOrientation === \"vertical\" && !hasOverflowY) return false;\n      if (gestureOrientation === \"horizontal\" && !hasOverflowX) return false;\n      scrollWidth = node.scrollWidth;\n      scrollHeight = node.scrollHeight;\n      clientWidth = node.clientWidth;\n      clientHeight = node.clientHeight;\n      isScrollableX = scrollWidth > clientWidth;\n      isScrollableY = scrollHeight > clientHeight;\n      cache.isScrollableX = isScrollableX;\n      cache.isScrollableY = isScrollableY;\n      cache.scrollWidth = scrollWidth;\n      cache.scrollHeight = scrollHeight;\n      cache.clientWidth = clientWidth;\n      cache.clientHeight = clientHeight;\n    } else {\n      isScrollableX = cache.isScrollableX;\n      isScrollableY = cache.isScrollableY;\n      hasOverflowX = cache.hasOverflowX;\n      hasOverflowY = cache.hasOverflowY;\n      scrollWidth = cache.scrollWidth;\n      scrollHeight = cache.scrollHeight;\n      clientWidth = cache.clientWidth;\n      clientHeight = cache.clientHeight;\n    }\n    if (!hasOverflowX && !hasOverflowY || !isScrollableX && !isScrollableY) {\n      return false;\n    }\n    if (gestureOrientation === \"vertical\" && (!hasOverflowY || !isScrollableY))\n      return false;\n    if (gestureOrientation === \"horizontal\" && (!hasOverflowX || !isScrollableX))\n      return false;\n    let orientation;\n    if (gestureOrientation === \"horizontal\") {\n      orientation = \"x\";\n    } else if (gestureOrientation === \"vertical\") {\n      orientation = \"y\";\n    } else {\n      const isScrollingX = deltaX !== 0;\n      const isScrollingY = deltaY !== 0;\n      if (isScrollingX && hasOverflowX && isScrollableX) {\n        orientation = \"x\";\n      }\n      if (isScrollingY && hasOverflowY && isScrollableY) {\n        orientation = \"y\";\n      }\n    }\n    if (!orientation) return false;\n    let scroll, maxScroll, delta, hasOverflow, isScrollable;\n    if (orientation === \"x\") {\n      scroll = node.scrollLeft;\n      maxScroll = scrollWidth - clientWidth;\n      delta = deltaX;\n      hasOverflow = hasOverflowX;\n      isScrollable = isScrollableX;\n    } else if (orientation === \"y\") {\n      scroll = node.scrollTop;\n      maxScroll = scrollHeight - clientHeight;\n      delta = deltaY;\n      hasOverflow = hasOverflowY;\n      isScrollable = isScrollableY;\n    } else {\n      return false;\n    }\n    const willScroll = delta > 0 ? scroll < maxScroll : scroll > 0;\n    return willScroll && hasOverflow && isScrollable;\n  }\n  /**\n   * The root element on which lenis is instanced\n   */\n  get rootElement() {\n    return this.options.wrapper === window ? document.documentElement : this.options.wrapper;\n  }\n  /**\n   * The limit which is the maximum scroll value\n   */\n  get limit() {\n    if (this.options.__experimental__naiveDimensions) {\n      if (this.isHorizontal) {\n        return this.rootElement.scrollWidth - this.rootElement.clientWidth;\n      } else {\n        return this.rootElement.scrollHeight - this.rootElement.clientHeight;\n      }\n    } else {\n      return this.dimensions.limit[this.isHorizontal ? \"x\" : \"y\"];\n    }\n  }\n  /**\n   * Whether or not the scroll is horizontal\n   */\n  get isHorizontal() {\n    return this.options.orientation === \"horizontal\";\n  }\n  /**\n   * The actual scroll value\n   */\n  get actualScroll() {\n    const wrapper = this.options.wrapper;\n    return this.isHorizontal ? wrapper.scrollX ?? wrapper.scrollLeft : wrapper.scrollY ?? wrapper.scrollTop;\n  }\n  /**\n   * The current scroll value\n   */\n  get scroll() {\n    return this.options.infinite ? modulo(this.animatedScroll, this.limit) : this.animatedScroll;\n  }\n  /**\n   * The progress of the scroll relative to the limit\n   */\n  get progress() {\n    return this.limit === 0 ? 1 : this.scroll / this.limit;\n  }\n  /**\n   * Current scroll state\n   */\n  get isScrolling() {\n    return this._isScrolling;\n  }\n  set isScrolling(value) {\n    if (this._isScrolling !== value) {\n      this._isScrolling = value;\n      this.updateClassName();\n    }\n  }\n  /**\n   * Check if lenis is stopped\n   */\n  get isStopped() {\n    return this._isStopped;\n  }\n  set isStopped(value) {\n    if (this._isStopped !== value) {\n      this._isStopped = value;\n      this.updateClassName();\n    }\n  }\n  /**\n   * Check if lenis is locked\n   */\n  get isLocked() {\n    return this._isLocked;\n  }\n  set isLocked(value) {\n    if (this._isLocked !== value) {\n      this._isLocked = value;\n      this.updateClassName();\n    }\n  }\n  /**\n   * Check if lenis is smooth scrolling\n   */\n  get isSmooth() {\n    return this.isScrolling === \"smooth\";\n  }\n  /**\n   * The class name applied to the wrapper element\n   */\n  get className() {\n    let className = \"lenis\";\n    if (this.options.autoToggle) className += \" lenis-autoToggle\";\n    if (this.isStopped) className += \" lenis-stopped\";\n    if (this.isLocked) className += \" lenis-locked\";\n    if (this.isScrolling) className += \" lenis-scrolling\";\n    if (this.isScrolling === \"smooth\") className += \" lenis-smooth\";\n    return className;\n  }\n  updateClassName() {\n    this.cleanUpClassName();\n    this.rootElement.className = `${this.rootElement.className} ${this.className}`.trim();\n  }\n  cleanUpClassName() {\n    this.rootElement.className = this.rootElement.className.replace(/lenis(-\\w+)?/g, \"\").trim();\n  }\n};\nexport {\n  Lenis as default\n};\n//# sourceMappingURL=lenis.mjs.map","// packages/snap/src/debounce.ts\nfunction debounce(callback, delay) {\n  let timer;\n  return function(...args) {\n    let context = this;\n    clearTimeout(timer);\n    timer = setTimeout(() => {\n      timer = void 0;\n      callback.apply(context, args);\n    }, delay);\n  };\n}\n\n// packages/snap/src/element.ts\nfunction removeParentSticky(element) {\n  const position = getComputedStyle(element).position;\n  const isSticky = position === \"sticky\";\n  if (isSticky) {\n    element.style.setProperty(\"position\", \"static\");\n    element.dataset.sticky = \"true\";\n  }\n  if (element.offsetParent) {\n    removeParentSticky(element.offsetParent);\n  }\n}\nfunction addParentSticky(element) {\n  if (element?.dataset?.sticky === \"true\") {\n    element.style.removeProperty(\"position\");\n    delete element.dataset.sticky;\n  }\n  if (element.offsetParent) {\n    addParentSticky(element.offsetParent);\n  }\n}\nfunction offsetTop(element, accumulator = 0) {\n  const top = accumulator + element.offsetTop;\n  if (element.offsetParent) {\n    return offsetTop(element.offsetParent, top);\n  }\n  return top;\n}\nfunction offsetLeft(element, accumulator = 0) {\n  const left = accumulator + element.offsetLeft;\n  if (element.offsetParent) {\n    return offsetLeft(element.offsetParent, left);\n  }\n  return left;\n}\nfunction scrollTop(element, accumulator = 0) {\n  const top = accumulator + element.scrollTop;\n  if (element.offsetParent) {\n    return scrollTop(element.offsetParent, top);\n  }\n  return top + window.scrollY;\n}\nfunction scrollLeft(element, accumulator = 0) {\n  const left = accumulator + element.scrollLeft;\n  if (element.offsetParent) {\n    return scrollLeft(element.offsetParent, left);\n  }\n  return left + window.scrollX;\n}\nvar SnapElement = class {\n  element;\n  options;\n  align;\n  // @ts-ignore\n  rect = {};\n  wrapperResizeObserver;\n  resizeObserver;\n  constructor(element, {\n    align = [\"start\"],\n    ignoreSticky = true,\n    ignoreTransform = false\n  } = {}) {\n    this.element = element;\n    this.options = { align, ignoreSticky, ignoreTransform };\n    this.align = [align].flat();\n    this.wrapperResizeObserver = new ResizeObserver(this.onWrapperResize);\n    this.wrapperResizeObserver.observe(document.body);\n    this.onWrapperResize();\n    this.resizeObserver = new ResizeObserver(this.onResize);\n    this.resizeObserver.observe(this.element);\n    this.setRect({\n      width: this.element.offsetWidth,\n      height: this.element.offsetHeight\n    });\n  }\n  destroy() {\n    this.wrapperResizeObserver.disconnect();\n    this.resizeObserver.disconnect();\n  }\n  setRect({\n    top,\n    left,\n    width,\n    height,\n    element\n  } = {}) {\n    top = top ?? this.rect.top;\n    left = left ?? this.rect.left;\n    width = width ?? this.rect.width;\n    height = height ?? this.rect.height;\n    element = element ?? this.rect.element;\n    if (top === this.rect.top && left === this.rect.left && width === this.rect.width && height === this.rect.height && element === this.rect.element)\n      return;\n    this.rect.top = top;\n    this.rect.y = top;\n    this.rect.width = width;\n    this.rect.height = height;\n    this.rect.left = left;\n    this.rect.x = left;\n    this.rect.bottom = top + height;\n    this.rect.right = left + width;\n  }\n  onWrapperResize = () => {\n    let top, left;\n    if (this.options.ignoreSticky) removeParentSticky(this.element);\n    if (this.options.ignoreTransform) {\n      top = offsetTop(this.element);\n      left = offsetLeft(this.element);\n    } else {\n      const rect = this.element.getBoundingClientRect();\n      top = rect.top + scrollTop(this.element);\n      left = rect.left + scrollLeft(this.element);\n    }\n    if (this.options.ignoreSticky) addParentSticky(this.element);\n    this.setRect({ top, left });\n  };\n  onResize = ([entry]) => {\n    if (!entry?.borderBoxSize[0]) return;\n    const width = entry.borderBoxSize[0].inlineSize;\n    const height = entry.borderBoxSize[0].blockSize;\n    this.setRect({ width, height });\n  };\n};\n\n// packages/snap/src/uid.ts\nvar index = 0;\nfunction uid() {\n  return index++;\n}\n\n// packages/snap/src/snap.ts\nvar Snap = class {\n  constructor(lenis, {\n    type = \"proximity\",\n    lerp,\n    easing,\n    duration,\n    distanceThreshold = \"50%\",\n    // velocityThreshold = 1.2,\n    debounce: debounceDelay = 500,\n    onSnapStart,\n    onSnapComplete\n  } = {}) {\n    this.lenis = lenis;\n    this.options = {\n      type,\n      lerp,\n      easing,\n      duration,\n      distanceThreshold,\n      // velocityThreshold,\n      debounce: debounceDelay,\n      onSnapStart,\n      onSnapComplete\n    };\n    this.onWindowResize();\n    window.addEventListener(\"resize\", this.onWindowResize, false);\n    this.onSnapDebounced = debounce(this.onSnap, this.options.debounce);\n    this.lenis.on(\"virtual-scroll\", this.onSnapDebounced);\n  }\n  options;\n  elements = /* @__PURE__ */ new Map();\n  snaps = /* @__PURE__ */ new Map();\n  viewport = {\n    width: window.innerWidth,\n    height: window.innerHeight\n  };\n  isStopped = false;\n  onSnapDebounced;\n  /**\n   * Destroy the snap instance\n   */\n  destroy() {\n    this.lenis.off(\"virtual-scroll\", this.onSnapDebounced);\n    window.removeEventListener(\"resize\", this.onWindowResize, false);\n    this.elements.forEach((element) => element.destroy());\n  }\n  /**\n   * Start the snap after it has been stopped\n   */\n  start() {\n    this.isStopped = false;\n  }\n  /**\n   * Stop the snap\n   */\n  stop() {\n    this.isStopped = true;\n  }\n  /**\n   * Add a snap to the snap instance\n   *\n   * @param value The value to snap to\n   * @param userData User data that will be forwarded through the snap event\n   * @returns Unsubscribe function\n   */\n  add(value, userData = {}) {\n    const id = uid();\n    this.snaps.set(id, { value, userData });\n    return () => this.snaps.delete(id);\n  }\n  /**\n   * Add an element to the snap instance\n   *\n   * @param element The element to add\n   * @param options The options for the element\n   * @returns Unsubscribe function\n   */\n  addElement(element, options = {}) {\n    const id = uid();\n    this.elements.set(id, new SnapElement(element, options));\n    return () => this.elements.delete(id);\n  }\n  onWindowResize = () => {\n    this.viewport.width = window.innerWidth;\n    this.viewport.height = window.innerHeight;\n  };\n  // private onScroll = ({\n  //   // scroll,\n  //   // limit,\n  //   lastVelocity,\n  //   velocity,\n  //   // isScrolling,\n  //   userData,\n  // }: // isHorizontal,\n  // Lenis) => {\n  //   if (this.isStopped) return\n  //   // return\n  //   const isDecelerating = Math.abs(lastVelocity) > Math.abs(velocity)\n  //   const isTurningBack =\n  //     Math.sign(lastVelocity) !== Math.sign(velocity) && velocity !== 0\n  //   if (\n  //     Math.abs(velocity) < this.options.velocityThreshold &&\n  //     // !isTouching &&\n  //     isDecelerating &&\n  //     !isTurningBack &&\n  //     userData?.initiator !== 'snap'\n  //   ) {\n  //     this.onSnapDebounced()\n  //   }\n  // }\n  onSnap = () => {\n    let { scroll, isHorizontal } = this.lenis;\n    scroll = Math.ceil(this.lenis.scroll);\n    let snaps = [...this.snaps.values()];\n    this.elements.forEach(({ rect, align }) => {\n      let value;\n      align.forEach((align2) => {\n        if (align2 === \"start\") {\n          value = rect.top;\n        } else if (align2 === \"center\") {\n          value = isHorizontal ? rect.left + rect.width / 2 - this.viewport.width / 2 : rect.top + rect.height / 2 - this.viewport.height / 2;\n        } else if (align2 === \"end\") {\n          value = isHorizontal ? rect.left + rect.width - this.viewport.width : rect.top + rect.height - this.viewport.height;\n        }\n        if (typeof value === \"number\") {\n          snaps.push({ value: Math.ceil(value), userData: {} });\n        }\n      });\n    });\n    snaps = snaps.sort((a, b) => Math.abs(a.value) - Math.abs(b.value));\n    if (snaps.length === 0) return;\n    let prevSnap = snaps.findLast(({ value }) => value <= scroll);\n    if (prevSnap === void 0) prevSnap = snaps[0];\n    const distanceToPrevSnap = Math.abs(scroll - prevSnap.value);\n    let nextSnap = snaps.find(({ value }) => value >= scroll);\n    if (nextSnap === void 0) nextSnap = snaps[snaps.length - 1];\n    const distanceToNextSnap = Math.abs(scroll - nextSnap.value);\n    const snap = distanceToPrevSnap < distanceToNextSnap ? prevSnap : nextSnap;\n    const distance = Math.abs(scroll - snap.value);\n    let distanceThreshold;\n    const axis = isHorizontal ? \"width\" : \"height\";\n    if (typeof this.options.distanceThreshold === \"string\" && this.options.distanceThreshold.endsWith(\"%\")) {\n      distanceThreshold = Number(this.options.distanceThreshold.replace(\"%\", \"\")) / 100 * this.viewport[axis];\n    } else if (typeof this.options.distanceThreshold === \"number\") {\n      distanceThreshold = this.options.distanceThreshold;\n    } else {\n      distanceThreshold = this.viewport[axis];\n    }\n    if (this.options.type === \"mandatory\" || this.options.type === \"proximity\" && distance <= distanceThreshold) {\n      this.lenis.scrollTo(snap.value, {\n        lerp: this.options.lerp,\n        easing: this.options.easing,\n        duration: this.options.duration,\n        userData: { initiator: \"snap\" },\n        onStart: () => {\n          this.options.onSnapStart?.(snap);\n        },\n        onComplete: () => {\n          this.options.onSnapComplete?.(snap);\n        }\n      });\n    }\n  };\n};\nexport {\n  Snap as default\n};\n//# sourceMappingURL=lenis-snap.mjs.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import Lenis from\"https://unpkg.com/lenis@1.3.8/dist/lenis.mjs\";import Snap from\"https://unpkg.com/lenis@1.3.8/dist/lenis-snap.mjs\";import{useEffect,useRef,Children,isValidElement,cloneElement}from\"react\";/**\n * @framerSupportedLayoutHeight any\n * @framerSupportedLayoutWidth any\n * @framerDisableUnlink\n */export default function Component({smooth,easing,infinite,orientation,intensity,children,snap}){const wrapperRef=useRef();const contentRef=useRef();useEffect(()=>{if(children&&(!wrapperRef.current||!contentRef.current))return;if(wrapperRef.current&&contentRef.current){if(orientation===\"horizontal\"){wrapperRef.current.style.setProperty(\"overflowX\",\"auto\");}else{wrapperRef.current.style.setProperty(\"overflowY\",\"auto\");}}const lenis=new Lenis({smoothWheel:smooth,duration:intensity/10,infinite,orientation,gestureOrientation:orientation===\"horizontal\"?\"both\":\"vertical\",autoRaf:true,autoToggle:true,anchors:true,allowNestedScroll:true,wrapper:wrapperRef.current,content:contentRef.current,syncTouch:Boolean(infinite)||orientation===\"horizontal\"});let lenisSnap;if(snap&&snap.snaps.length>0){lenisSnap=new Snap(lenis,{type:snap.type,distanceThreshold:snap.threshold+\"%\"});snap.snaps.forEach(item=>{if(!item.target?.current)return;const id=item.target.current.id;// workaround when content is duplicated by LenisSeamlessInfinite\nconst elements=document.querySelectorAll(`#${id}`);elements.forEach(element=>{lenisSnap.addElement(element,{align:item.align});});});}window.lenis=lenis;window.lenisSnap=snap;return()=>{lenis.destroy();if(lenisSnap)lenisSnap.destroy();};},[children]);return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"link\",{href:\"https://unpkg.com/lenis@1.3.8/dist/lenis.css\",rel:\"stylesheet\"}),children&&/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(\"div\",{ref:wrapperRef,style:orientation===\"horizontal\"?{overflowX:\"auto\",width:\"100%\"}:{overflowY:\"auto\",height:\"100%\"},children:/*#__PURE__*/_jsx(\"div\",{ref:contentRef,style:{width:\"100%\"},children:Children.map(children,child=>/*#__PURE__*/isValidElement(child)?/*#__PURE__*/cloneElement(child,{style:{...child.props.style,width:\"100%\"}}):child)})})})]});}Component.displayName=\"Lenis\";addPropertyControls(Component,{smooth:{type:ControlType.Boolean,title:\"Smooth\",defaultValue:true},intensity:{type:ControlType.Number,title:\"Intensity\",defaultValue:12,step:1,min:1,max:100,hidden(props){return props.smooth===false;}},infinite:{type:ControlType.Boolean,title:\"Infinite\",defaultValue:false,hidden(props){return props.smooth===false;}},orientation:{type:ControlType.Enum,defaultValue:\"Vertical\",displaySegmentedControl:true,options:[\"vertical\",\"horizontal\"],optionTitles:[\"Vertical\",\"Horizontal\"],hidden(props){return props.smooth===false;}},children:{type:ControlType.ComponentInstance,title:\"Content\"},snap:{type:ControlType.Object,optional:true,description:\"Cooked and served by [darkroom.engineering](https://darkroom.engineering).\",controls:{type:{type:ControlType.Enum,defaultValue:\"proximity\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",options:[\"proximity\",\"mandatory\"],optionTitles:[\"Proximity\",\"Mandatory\"]},threshold:{type:ControlType.Number,defaultValue:50,min:0,max:100,unit:\"%\",hidden:props=>{return props.snap.type===\"mandatory\";}},snaps:{type:ControlType.Array,control:{type:ControlType.Object,controls:{target:{title:\"Target\",type:ControlType.ScrollSectionRef},align:{type:ControlType.Enum,defaultValue:\"center\",displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",options:[\"start\",\"center\",\"end\"],optionIcons:[\"align-top\",\"align-middle\",\"align-bottom\"]}}}}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Component\",\"slots\":[\"children\"],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Lenis.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{motion}from\"framer-motion\";export function SearchIcon(props){return /*#__PURE__*/ _jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 256 256\",width:props.width,height:props.height,style:{...props.style,color:props.color},children:/*#__PURE__*/ _jsx(\"path\",{d:\"M232.49,215.51,185,168a92.12,92.12,0,1,0-17,17l47.53,47.54a12,12,0,0,0,17-17ZM44,112a68,68,0,1,1,68,68A68.07,68.07,0,0,1,44,112Z\",fill:\"currentColor\"})});}export function ClearIcon(props){return /*#__PURE__*/ _jsxs(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 256 256\",...props,children:[/*#__PURE__*/ _jsx(\"rect\",{width:\"256\",height:\"256\",fill:\"none\"}),/*#__PURE__*/ _jsx(\"path\",{d:\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm37.66,130.34a8,8,0,0,1-11.32,11.32L128,139.31l-26.34,26.35a8,8,0,0,1-11.32-11.32L116.69,128,90.34,101.66a8,8,0,0,1,11.32-11.32L128,116.69l26.34-26.35a8,8,0,0,1,11.32,11.32L139.31,128Z\",fill:\"currentColor\"})]});}export function SpinnerIcon(props){const borderWidth=3;return /*#__PURE__*/ _jsxs(\"div\",{style:{position:\"relative\",...props.style},children:[/*#__PURE__*/ _jsx(motion.div,{animate:{rotate:360},transition:{ease:\"linear\",duration:1,repeat:Infinity},style:{borderRadius:100,backgroundImage:`conic-gradient(from 270deg, transparent 0%, ${props.color} 100%)`,width:\"100%\",height:\"100%\"}}),/*#__PURE__*/ _jsx(\"div\",{style:{backgroundColor:props.backgroundColor,borderRadius:100,position:\"absolute\",top:borderWidth,left:borderWidth,bottom:borderWidth,right:borderWidth}})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"ClearIcon\":{\"type\":\"reactComponent\",\"name\":\"ClearIcon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"SpinnerIcon\":{\"type\":\"reactComponent\",\"name\":\"SpinnerIcon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchIcon\":{\"type\":\"reactComponent\",\"name\":\"SearchIcon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Icons.map","export function Storage(name) {\n    this.ready = new Promise((resolve, reject)=>{\n        var request = window.indexedDB.open(location.origin);\n        request.onupgradeneeded = (e)=>{\n            this.db = e.target[\"result\"];\n            this.db.createObjectStore(\"store\");\n        };\n        request.onsuccess = (e)=>{\n            this.db = e.target[\"result\"];\n            resolve();\n        };\n        request.onerror = (e)=>{\n            this.db = e.target[\"result\"];\n            reject(e);\n        };\n    });\n}\nStorage.prototype.get = function(key) {\n    return this.ready.then(()=>{\n        return new Promise((resolve, reject)=>{\n            var request = this.getStore().get(key);\n            request.onsuccess = (e)=>resolve(e.target.result)\n            ;\n            request.onerror = reject;\n        });\n    });\n};\nStorage.prototype.getStore = function() {\n    return this.db.transaction([\n        \"store\"\n    ], \"readwrite\").objectStore(\"store\");\n};\nStorage.prototype.set = function(key, value) {\n    return this.ready.then(()=>{\n        return new Promise((resolve, reject)=>{\n            var request = this.getStore().put(value, key);\n            request.onsuccess = resolve;\n            request.onerror = reject;\n        });\n    });\n};\nStorage.prototype.delete = function(key, value) {\n    window.indexedDB.deleteDatabase(location.origin);\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"Storage\":{\"type\":\"function\"}}}","// @ts-ignore\nimport{Storage}from\"https://framerusercontent.com/modules/3Xi2AslpcDRhfyCVPmx3/d0Oobr5BHnVqZJQyMdGn/storage.js\";export const hashCode=s=>s.split(\"\").reduce((a,b)=>{a=(a<<5)-a+b.charCodeAt(0);return a&a;},0);export function corsProxy(url){return`https://cors-anywhere.herokuapp.com/${url}`;}export async function cachedResponse(url,cache=new Storage(\"cache\")){const cacheKey=url;const data=await cache.get(cacheKey);if(data){return data;}else{var req=new XMLHttpRequest;req.open(\"GET\",url,true);req.responseType=\"blob\";return new Promise((resolve,reject)=>{req.onload=async function(){if(this.status===200){await cache.set(url,this.response);resolve(this.response);}else{reject(new Error(`Response status ${this.status} ${this.statusText}`));}};req.onerror=function(error){reject(error);};req.send();});}}export async function setCachedData(url,dataToCache,cache=new Storage(\"cache\")){const cacheKey=url;const data=await cache.set(cacheKey,dataToCache);}export async function checkForCachedData(url,cache=new Storage(\"cache\")){const cacheKey=url;const data=await cache.get(cacheKey);if(data){return data;}else{return null;}}\nexport const __FramerMetadata__ = {\"exports\":{\"hashCode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"setCachedData\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"checkForCachedData\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"corsProxy\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"cachedResponse\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./cache.map","import{checkForCachedData,setCachedData}from\"https://framer.com/m/cache-YMiL.js@b9aplVZjN51x28yfNK16\";const VERSION=1;const defaultLocaleId=\"default\";export function isDefaultLocaleId(localeId){return!localeId||localeId===\"default\";}const INDEX_KEY=\"searchIndexCache\";function getIndexKey(localeId){if(isDefaultLocaleId(localeId))return INDEX_KEY;return`${INDEX_KEY}-${localeId}`;}const METADATA_KEY=\"searchCacheMetadata\";function getMetadataKey(localeId){if(isDefaultLocaleId(localeId))return METADATA_KEY;return`${METADATA_KEY}-${localeId}`;}export async function getCachedIndex(localeId,indexHash){// A check here for metadata can be added later if we need to\n// migrate or expire the index. Though most likely, any version change\n// should result in deleting the cache and starting again.\nconst metadataKey=getMetadataKey(localeId);const indexKey=getIndexKey(localeId);const[metadata,cachedIndex]=await Promise.all([checkForCachedData(metadataKey),checkForCachedData(indexKey)]);if(cachedIndex){return{status:indexHash&&metadata?.indexHash===indexHash?\"fresh\":\"stale\",searchIndex:cachedIndex,indexHash:metadata?.indexHash};}return{status:\"miss\"};}export function setCachedIndex(localeId,index,indexHash){const indexKey=getIndexKey(localeId);setCachedData(indexKey,index);const metadata={version:VERSION,timestamp:Date.now(),indexHash};const metadataKey=getMetadataKey(localeId);setCachedData(metadataKey,metadata);}\nexport const __FramerMetadata__ = {\"exports\":{\"isDefaultLocaleId\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCachedIndex\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"setCachedIndex\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./cachedIndex.map","// Fake example data used for when the search component is in preview mode.\n// Note that the `url` value is used as a key in React, so it needs to be unique.\nexport const fakeResults={\"/\":{version:1,title:\"Example Search Result\",description:\"Description of search result.\",keywords:\"\",h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],p:[],url:\"/example-url/\",codeblock:[]},\"/example-1\":{version:1,title:\"Publish your Site to Search\",description:\"Try Site Search to instantly search your Framer site content.\",keywords:\"\",h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],p:[],url:\"/example-url/1/\",codeblock:[]},\"/example-2\":{version:1,title:\"Customise your Site Search\",description:\"Personalize everything from corner radius, to icon weight.\",keywords:\"\",h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],p:[],url:\"/example-url/2/\",codeblock:[]}};\nexport const __FramerMetadata__ = {\"exports\":{\"fakeResults\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./fakeResults.map","// This file is based on the Levenshtein algorithm. Originally from Koen but maybe he\n// got it from somewhere else.\nconst peq=new Uint32Array(65536);const myers_32=(a,b)=>{const n=a.length;const m=b.length;const lst=1<<n-1;let pv=-1;let mv=0;let sc=n;let i=n;while(i--){peq[a.charCodeAt(i)]|=1<<i;}for(i=0;i<m;i++){let eq=peq[b.charCodeAt(i)];const xv=eq|mv;eq|=(eq&pv)+pv^pv;mv|=~(eq|pv);pv&=eq;if(mv&lst){sc++;}if(pv&lst){sc--;}mv=mv<<1|1;pv=pv<<1|~(xv|mv);mv&=xv;}i=n;while(i--){peq[a.charCodeAt(i)]=0;}return sc;};const myers_x=(b,a)=>{const n=a.length;const m=b.length;const mhc=[];const phc=[];const hsize=Math.ceil(n/32);const vsize=Math.ceil(m/32);for(let i=0;i<hsize;i++){phc[i]=-1;mhc[i]=0;}let j=0;for(;j<vsize-1;j++){let mv=0;let pv=-1;const start=j*32;const vlen=Math.min(32,m)+start;for(let k=start;k<vlen;k++){peq[b.charCodeAt(k)]|=1<<k;}for(let i1=0;i1<n;i1++){const eq=peq[a.charCodeAt(i1)];const pb=phc[i1/32|0]>>>i1&1;const mb=mhc[i1/32|0]>>>i1&1;const xv=eq|mv;const xh=((eq|mb)&pv)+pv^pv|eq|mb;let ph=mv|~(xh|pv);let mh=pv&xh;if(ph>>>31^pb){phc[i1/32|0]^=1<<i1;}if(mh>>>31^mb){mhc[i1/32|0]^=1<<i1;}ph=ph<<1|pb;mh=mh<<1|mb;pv=mh|~(xv|ph);mv=ph&xv;}for(let k1=start;k1<vlen;k1++){peq[b.charCodeAt(k1)]=0;}}let mv1=0;let pv1=-1;const start1=j*32;const vlen1=Math.min(32,m-start1)+start1;for(let k2=start1;k2<vlen1;k2++){peq[b.charCodeAt(k2)]|=1<<k2;}let score=m;for(let i2=0;i2<n;i2++){const eq1=peq[a.charCodeAt(i2)];const pb1=phc[i2/32|0]>>>i2&1;const mb1=mhc[i2/32|0]>>>i2&1;const xv1=eq1|mv1;const xh1=((eq1|mb1)&pv1)+pv1^pv1|eq1|mb1;let ph1=mv1|~(xh1|pv1);let mh1=pv1&xh1;score+=ph1>>>m-1&1;score-=mh1>>>m-1&1;if(ph1>>>31^pb1){phc[i2/32|0]^=1<<i2;}if(mh1>>>31^mb1){mhc[i2/32|0]^=1<<i2;}ph1=ph1<<1|pb1;mh1=mh1<<1|mb1;pv1=mh1|~(xv1|ph1);mv1=ph1&xv1;}for(let k3=start1;k3<vlen1;k3++){peq[b.charCodeAt(k3)]=0;}return score;};const distance=(a,b)=>{if(a.length<b.length){const tmp=b;b=a;a=tmp;}if(b.length===0){return a.length;}if(a.length<=32){return myers_32(a,b);}return myers_x(a,b);};const closest=(str,arr)=>{let min_distance=Infinity;let min_index=0;for(let i=0;i<arr.length;i++){const dist=distance(str,arr[i]);if(dist<min_distance){min_distance=dist;min_index=i;}}return arr[min_index];};export{closest,distance};\nexport const __FramerMetadata__ = {\"exports\":{\"closest\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"distance\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./fuzzySearch.map","export const localStorageDebugFlag=(()=>{try{return typeof window!==\"undefined\"&&window.localStorage.__framerDebugSearch===\"true\";}catch(e){// localStorage not available\n}})();const groupsRegex=/[A-Z]{2,}|[A-Z][a-z]+|[a-z]+|[A-Z]\\d*|\\d+/gu;function capitalizeFirstLetter(value){return value.charAt(0).toUpperCase()+value.slice(1);}export function titleCase(value){const groups=value.match(groupsRegex)||[];return groups.map(capitalizeFirstLetter).join(\" \");}export function clampText(text,maxLength){const textLength=text.length;if(textLength<=maxLength){return text;}const slicedText=text.slice(0,maxLength);if(textLength>maxLength){return slicedText+\"…\";}return slicedText;}export function isEmptyObject(object){return Object.keys(object).length===0;}export function createLogger(showOutput){function log(...data){console.log(Date.now(),...data);}function time(label){console.time(label);}function timeEnd(label){console.timeEnd(label);}function noop(){}if(!showOutput){return{log:noop,time:noop,timeEnd:noop};}return{log,time,timeEnd};}export const DEFAULT_FONT_FAMILY=`\"Inter\", system-ui, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;export function getFontFamily(theme){if(theme.inputFont?.fontFamily)return theme.inputFont.fontFamily;if(theme.titleFont?.fontFamily)return theme.titleFont.fontFamily;if(theme.subtitleFont?.fontFamily)return theme.subtitleFont.fontFamily;return DEFAULT_FONT_FAMILY;}export function animationKeyFromLayout(layout){return`${layout}Animation`;}export const safeDocument=typeof document!==\"undefined\"?document:null;export const safeWindow=typeof window!==\"undefined\"?window:null;const metaTagSelector='meta[name=\"framer-search-index\"]';export function getMetaTagContent(){const metaTag=safeDocument?.querySelector(metaTagSelector);if(!metaTag)return undefined;const metaTagContent=metaTag.getAttribute(\"content\");return metaTagContent;}export const checkIfOverLimit=()=>{return getMetaTagContent()===\"limit-reached\";};export function stripLocaleSlugFromPath(url,localeSlug){if(!localeSlug)return url;const localeSlugWithSlash=`/${localeSlug}`;if(url.startsWith(localeSlugWithSlash)){return url.slice(localeSlugWithSlash.length);}}/**\n * @param isHighPriority If true and `scheduler.yield` is not available, the function will either use `postTask` or if also not available, return a resolved promise.\n */export function yieldToMain(isHighPriority){if(\"scheduler\"in window){// see https://github.com/WICG/scheduling-apis/blob/main/explainers/yield-and-continuation.md\n// \"user-blocking\" is the highest priority and creates a paint opportunity.\n// \"user-visible\" is the default, creates a paint opportunity, but has more potential to be delayed (by \"user-blocking\" tasks).\nconst options={priority:isHighPriority?\"user-blocking\":\"user-visible\"};if(\"yield\"in scheduler)return scheduler.yield(options);if(\"postTask\"in scheduler)return scheduler.postTask(()=>{},options);}if(isHighPriority){// `setTimeout` could suffer from being delayed for longer: https://developer.chrome.com/blog/introducing-scheduler-yield-origin-trial#the_problem_with_current_yielding_strategies\n// so for browsers not supporting yield, we guarantee execution for high priority actions, but do not guarantee a paint opportunity as trade-off.\nreturn Promise.resolve();}return new Promise(resolve=>{setTimeout(resolve,0);});}\nexport const __FramerMetadata__ = {\"exports\":{\"safeWindow\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"stripLocaleSlugFromPath\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"titleCase\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"safeDocument\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localStorageDebugFlag\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createLogger\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"animationKeyFromLayout\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"clampText\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"yieldToMain\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getMetaTagContent\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"checkIfOverLimit\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getFontFamily\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isEmptyObject\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_FONT_FAMILY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./utils.map","// @ts-ignore\nimport{useLocaleInfo}from\"framer\";import{clamp}from\"framer-motion\";import{useEffect,useState,useTransition}from\"react\";import{SearchResultTitleType}from\"https://framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/wgITiHCOZBBo33pin0wW/SearchModal.js\";import{getCachedIndex,setCachedIndex,isDefaultLocaleId}from\"https://framerusercontent.com/modules/uU1mtMKXsrVAg8N5hW7w/v7gDLwKJgQ5vAsFHxY4H/cachedIndex.js\";import{fakeResults}from\"https://framerusercontent.com/modules/K9JZRwJcE6slDAf8rUmh/mJ54py1Ecnn1RoC4N1m4/fakeResults.js\";import{distance}from\"https://framerusercontent.com/modules/TwRgbWuhHeB95MPifel4/YW8Hlm59FG3PajbrVsaR/fuzzySearch.js\";import{createLogger,localStorageDebugFlag,safeDocument,safeWindow,stripLocaleSlugFromPath,yieldToMain}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";const{log,time,timeEnd}=createLogger(localStorageDebugFlag);function isValidUrl(url){try{new URL(url);return true;}catch(_error){return false;}}const splitWordsRegex=(()=>{try{// Regex lookbehind is used to ignore ampersands when splitting\n// words. For example \"H&M\" will not be split and is considered as\n// one word, but \"H & M\" will be split.\n// However, some browsers (like Safari iOS 15) don't support\n// lookbehind and will crash. When it's not supported, fallback to\n// a safer regex that always splits ampersands.\nconst regex=RegExp(\"[\\\\s.,;!?\\\\p{P}\\\\p{Z}]+(?<!\\\\p{L}&)(?!&\\\\p{L})\",\"u\");\"\".split(regex);return regex;}catch{log(\"Falling back to regex without lookbehind\");return RegExp(\"[\\\\s.,;!?\\\\p{P}\\\\p{Z}]+\",\"u\");}})();function splitWords(text){return text.split(splitWordsRegex);}function getUniqueWords(str){const words=splitWords(str).filter(word=>word.trim()&&word.length>0);return new Set(words);}const normalizeRegex=/[\\u0300-\\u036f]/g;/**\n * Replace accented characters with equivilant non-accented versions and\n * make everything lowercase.\n */function getNormalizedString(text){if(Array.isArray(text)){return text.map(getNormalizedString);}return text.normalize(\"NFD\")// From: https://stackoverflow.com/a/37511463\n.replace(normalizeRegex,\"\").toLowerCase();}const normalizedItemCache=new WeakMap;function getNormalizedItemFromCache(item){const cached=normalizedItemCache.get(item);if(cached)return cached;const normalizedItem=getNormalizedItem(item);normalizedItemCache.set(item,normalizedItem);return normalizedItem;}function getNormalizedItem(item){const normalizedItem={};for(const key in item){if(item.hasOwnProperty(key)){const value=item[key];if(typeof value===\"string\"){normalizedItem[key]=getNormalizedString(value);continue;}if(Array.isArray(value)){normalizedItem[key]=getNormalizedString(value);continue;}normalizedItem[key]=value;}}return normalizedItem;}function getMatchRange(currentRange,start,end){const result={...currentRange};if(start<result.start){result.start=start;}if(end>result.end){result.end=end;}return result;}/**\n * Score index item based on the contents of it's fields such as title, description, headings etc.\n *\n * Note that this does not normalize the item or query. Normalization is expected to happen\n * before passing the data into this.\n */function getScoreForSearchIndexItem(item,query,words,fullQuery){let score=0;const match={title:{start:Infinity,end:0},description:{start:Infinity,end:0}};const urlWords=getUniqueWords(item.url);// Match query based on words in the URL so that random strings inside\n// other strings are not matched.\nif(urlWords.has(query)){score+=10;}// Really boost single word queries that match single word URLs.\nif(words.size===1&&urlWords.size===1&&urlWords.values().next().value===query){score+=score*5;}// Score shorter URLs higher so `/pricing` is before `/lala/pricing`.\nif(score>0){const splitLength=item.url.split(\"/\").length;score+=clamp(10-splitLength,0,splitLength);}const titleWords=getUniqueWords(item.title);// Prefer full word matches in the title.\nif(titleWords.has(query)){score+=10;}const titleIndex=item.title.indexOf(query);if(titleIndex!==-1){score+=10;// TODO: Matches are currently not used, but they can be used in the\n// future to add text highlighting.\nmatch.title=getMatchRange(match.title,titleIndex,titleIndex+query.length);}// If the full query is close to being the heading, score this highly as\n// the user is most likely looking for that exact title.\nif(distance(item.title,fullQuery)<=2){score+=score*10;}// Fuzzy match full words in the title.\nfor(const titleWord of titleWords){const distanceScore=distance(query,titleWord);// Small distance score helps with small typos.\nif(distanceScore<=2){score+=10;}}const headings=[...item.h1,...item.h2,...item.h3,...item.h4,...item.h5,...item.h6];for(const heading of headings){const headingWords=getUniqueWords(heading);// If the full query is close to being the heading, score this highly as\n// the user is most likely looking for that exact title.\nif(distance(heading,fullQuery)<=2){score+=score*10;}// Bias headings that start with the query as this helps when\n// you know the title you are searching for.\nif(heading.startsWith(query)){score+=10;}if(headingWords.has(query)){score+=10;}if(heading.includes(query)){score+=1;}// Fuzzy match full words in headings.\nfor(const headingWord of headingWords){const distanceScore=distance(query,headingWord);if(distanceScore<=2){score+=1;}}}const descriptionIndex=item.description.indexOf(query);if(descriptionIndex!==-1){score+=10;match.description=getMatchRange(match.description,descriptionIndex,descriptionIndex+query.length);}for(const p of item.p){if(p.includes(query)){score+=.5;}}for(const codeblock of item.codeblock){// If the full query is close to being the codeblock, score this highly as\n// the user is most likely looking for that exact code.\nif(distance(codeblock,fullQuery)<=2){score*=10;}if(codeblock.includes(fullQuery)){score+=10;}if(codeblock.includes(query)){score+=.5;}}return{score,match};}function getSearchIndexItemScore(item,normalizedQuery){const normalizedItem=getNormalizedItemFromCache(item);const queryWords=getUniqueWords(normalizedQuery);let total=0;for(const queryWord of queryWords){const{score}=getScoreForSearchIndexItem(normalizedItem,queryWord,queryWords,normalizedQuery);total+=score;}return total;}function useRawSearch(index,query,settings){const[results,setResults]=useState(null);const[,startTransition]=useTransition();useEffect(()=>{const abortController=new AbortController;executeRawSearch(index,query,settings,abortController.signal).then(res=>{if(!abortController.signal.aborted){startTransition(()=>{setResults(res);});}}).catch(err=>{if(err.name!==\"AbortError\"){console.error(\"Search failed:\",err);}});return()=>{abortController.abort();};},[index,query]);return{results:results??[]};}const QUANTUM=32// ms, 2*16ms (2 frames on 60 hz)\n;async function executeRawSearch(index,query,settings,signal){const path=safeWindow?.location.pathname;time(\"query\");const normalizedQuery=getNormalizedString(query);const results=[];const items=Object.values(index);let deadline=performance.now()+QUANTUM;async function yieldToMainIfNecessary(){if(performance.now()>=deadline){await yieldToMain();deadline=performance.now()+QUANTUM;}}for(let i=0;i<items.length;++i){if(performance.now()>=deadline){await yieldToMainIfNecessary();deadline=performance.now()+QUANTUM;}if(signal?.aborted)return[];const item=items[i];const score=getSearchIndexItemScore(item,normalizedQuery);if(score>(settings.minimumScore||0)&&(!path||item.url!==path)){const heading=item.h1.length&&item.h1[0];const title=settings?.titleType===SearchResultTitleType.Title?item.title:heading?heading:item.title;// Convert index item to result item.\nresults.push({url:item.url,title,description:item.description,body:[...item.p,item.codeblock].join(\" \"),score});}}await yieldToMainIfNecessary();if(signal?.aborted)return[];const sorted=results.sort((itemA,itemB)=>itemB.score-itemA.score);timeEnd(\"query\");await yieldToMainIfNecessary();if(signal?.aborted)return[];return results.slice(0,20);}function getIndexedScopedToUrl(index,rawUrlScope,localeSlug){const scopedIndex={};const baseScopeUrlHasVariable=rawUrlScope.includes(\":\");const urlUpToPathVariable=rawUrlScope.split(\":\")[0];const urlScope=urlUpToPathVariable.length>1?urlUpToPathVariable:\"\";for(const url in index){const strippedURL=stripLocaleSlugFromPath(url,localeSlug);if(!strippedURL.startsWith(urlScope)){continue;}if(baseScopeUrlHasVariable&&url.length<=urlScope.length){continue;}scopedIndex[url]=index[url];}return scopedIndex;}export function useSearch(query,settings){const[searchIndex,_setSearchIndex]=useState({});const[status,setStatus]=useState(\"loading\");const{results}=useRawSearch(searchIndex,query,settings);const{activeLocale}=useLocaleInfo();const localeId=activeLocale?.id;// Seperate setter function so that the URL scope is always applied\n// to indexes loaded from either the cache or network.\nfunction setSearchIndex(index,options={ignoreScope:false}){let scopedIndex=index;if(settings.urlScope&&!options.ignoreScope){scopedIndex=getIndexedScopedToUrl(index,settings.urlScope,activeLocale?.slug);log(\"Using URL scope\",settings.urlScope);}_setSearchIndex(scopedIndex);}useEffect(()=>{async function loadSearchIndex(){setStatus(\"loading\");const baseUrl=getBaseUrl(\"framer-search-index\");if(!baseUrl){setStatus(\"no-meta-tag-found\");setSearchIndex(fakeResults,{ignoreScope:true});log(\"No meta tag found\");return;}// If a cached index exists, use the cached version until the latest one from the network loads.\nconst cacheResult=await getCachedIndex(localeId,baseUrl);if(cacheResult.status!==\"miss\"){setSearchIndex(cacheResult.searchIndex);setStatus(\"loading-with-cache\");log(\"Using cached index\");if(cacheResult.status===\"fresh\")return;}const searchIndexUrl=getSearchIndexUrl(baseUrl,localeId);const response=await fetch(searchIndexUrl);// Happy case.\nif(response.ok){const downloadedIndex=await response.json();setSearchIndex(downloadedIndex);setCachedIndex(localeId,downloadedIndex,baseUrl);setStatus(\"success\");log(\"Using downloaded index\");return;}// Unexpected error.\n// Our \"sites\" CDN currently returns 403s for missing files.\nconst isNotFound=response.status===403||response.status===404;if(!isNotFound){throw new Error(response.statusText);}// Index is likely still being generated.\nlog(\"Index not found\");const fallbackBaseUrl=getBaseUrl(\"framer-search-index-fallback\");if(!fallbackBaseUrl){if(cacheResult.status===\"miss\"){setStatus(\"pending-index-generation\");log(\"No fallback, no cache\");}else{log(\"No fallback, using cache\");}return;}const fallbackSearchIndexUrl=getSearchIndexUrl(fallbackBaseUrl,localeId);const fallbackResponse=await fetch(fallbackSearchIndexUrl);if(fallbackResponse.ok){const downloadedIndex=await fallbackResponse.json();setSearchIndex(downloadedIndex);// It's safe to cache the fallback because if we're here, current cache is empty or stale.\nsetCachedIndex(localeId,downloadedIndex,fallbackBaseUrl);setStatus(\"success\");log(\"Using downloaded fallback index\");return;}if(cacheResult.status===\"miss\"){setStatus(\"pending-index-generation\");log(\"Fallback failed, no cache\");}else{log(\"Fallback failed, using cache\");}}loadSearchIndex().catch(error=>{// TODO: Check for error type here. If it's a network error,\n// we could do a few retries.\nsetStatus(\"error\");log(\"Failed to load search index\",error);});},[localeId]);log({status,results});return{results,status};}function getBaseUrl(name){return safeDocument?.querySelector(`meta[name=\"${name}\"]`)?.getAttribute(\"content\");}function getSearchIndexUrl(baseURL,localeId){if(isDefaultLocaleId(localeId))return baseURL;return baseURL.replace(\".json\",`-${localeId}.json`);}\nexport const __FramerMetadata__ = {\"exports\":{\"SearchIndex\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useSearch\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","export var Browser;(function(Browser){var isTouch=Browser.isTouch=()=>\"ontouchstart\"in window||navigator.maxTouchPoints>0;var isChrome=Browser.isChrome=()=>navigator.userAgent.toLowerCase().includes(\"chrome/\");var isWebKit=Browser.isWebKit=()=>navigator.userAgent.toLowerCase().includes(\"applewebkit/\");var isSafari=Browser.isSafari=()=>isWebKit()&&!isChrome();var isSafariDesktop=Browser.isSafariDesktop=()=>isSafari()&&!isTouch();var isWindows=Browser.isWindows=()=>/Win/.test(navigator.platform);var isMacOS=Browser.isMacOS=()=>/Mac/.test(navigator.platform);})(Browser||(Browser={}));\nexport const __FramerMetadata__ = {\"exports\":{\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./browser.map","// From: @framerjs/fresco/src/components/utils/useCallbackOnMouseMove.ts\nimport{useRef,useCallback}from\"react\";import{Browser}from\"https://framerusercontent.com/modules/PJVBcBLmDteTEAZh3J9Z/keXJyjyE9VnzUcDMayjg/browser.js\";/**\n * Webkit fires mousemove events if the pointer's coordination changes relative\n * to its container (e.g. if the container scrolls), or when a modifier key is\n * pressed, mousemove would fire even if the cursor did not actually move.\n * This helper compares the cursor position between mouse events, and fire the\n * callback only when its position changes.\n */ export const useCallbackOnMouseMove=(callback,mousePositionRef)=>{const prevPositionRef=useRef(null);return useCallback(event=>{if(!Browser.isSafari())return callback(event);const ref=mousePositionRef?mousePositionRef:prevPositionRef;const{clientX,clientY}=event;const prevCursorPosition=ref.current;ref.current={x:clientX,y:clientY};// Ignore mouse moves unless we have a position. Else it might be an\n// element that appears behind the mouse without the mouse moving.\nif(!prevCursorPosition){return;}if(prevCursorPosition.x!==clientX||prevCursorPosition.y!==clientY){return callback(event);}},[mousePositionRef,callback]);};\nexport const __FramerMetadata__ = {\"exports\":{\"useCallbackOnMouseMove\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Point\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useCallbackOnMouseMove.map","// Safari does not support `element.scrollIntoView({ block: \"nearest\" })`, so this\n// is a workaround for that.\nexport function scrollIntoView(targetElement,scrollElement,/** Additional spacing to add from the top or bottom of the scroll element viewport. */ {offsetTop,offsetBottom}){const targetElementBounds=targetElement.getBoundingClientRect();const scrollElementBounds=scrollElement.getBoundingClientRect();if(targetElementBounds.top<scrollElementBounds.top){const difference=scrollElementBounds.top-targetElementBounds.top;scrollElement.scrollTop=scrollElement.scrollTop-difference-offsetTop;}else if(targetElementBounds.bottom>scrollElementBounds.bottom){const topAligned=scrollElementBounds.top-targetElementBounds.top;const minOffset=scrollElement.scrollTop-topAligned-offsetTop;const bottomAligned=targetElementBounds.bottom-scrollElementBounds.bottom;const offset=scrollElement.scrollTop+bottomAligned+offsetBottom;scrollElement.scrollTop=Math.min(minOffset,offset);}}\nexport const __FramerMetadata__ = {\"exports\":{\"scrollIntoView\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./scrollIntoView.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useSearch}from\"https://framerusercontent.com/modules/MyBp84Z0p9nUcMimVMnY/IOZYtsQMauhTmjY894DM/useSearch.js\";import React,{useEffect,useState,useMemo,forwardRef,useRef,useDeferredValue,useLayoutEffect,useCallback,useImperativeHandle}from\"react\";import{Browser}from\"https://framerusercontent.com/modules/PJVBcBLmDteTEAZh3J9Z/keXJyjyE9VnzUcDMayjg/browser.js\";import{motion,clamp,useAnimate}from\"framer-motion\";import{SearchIcon,ClearIcon,SpinnerIcon}from\"https://framerusercontent.com/modules/LV9trClbmNwd5PVj9l8y/L4rFqMGNzGSwRZpGTGF3/Icons.js\";import{clampText,getFontFamily,localStorageDebugFlag,animationKeyFromLayout,stripLocaleSlugFromPath}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";import{useCallbackOnMouseMove}from\"https://framerusercontent.com/modules/Gzef0nFihI9m9vZG45th/lIUxbZcreiDm2GzUkt3y/useCallbackOnMouseMove.js\";import{scrollIntoView}from\"https://framerusercontent.com/modules/eAnjm75CdfYT1Zz4BIaz/7KDSfnnyD1T3Ap75L4m8/scrollIntoView.js\";import{useLocaleInfo,// @ts-expect-error Internal API\nuseRouter,// @ts-expect-error Internal API\ninferInitialRouteFromPath}from\"framer\";const MAX_DESCRIPTION_LENGTH=120;const MODAL_MAX_HEIGHT=496;const VERTICAL_SPACING_MULTIPLIER=.6;function ClearButton({theme,type,onClick,text}){const shouldDisplayIcon=type===\"icon\";const iconOrText=shouldDisplayIcon?/*#__PURE__*/_jsx(ClearIcon,{style:{color:theme.inputIconColor,width:theme.inputIconSize,height:theme.inputIconSize}}):text;return /*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,fontSize:theme&&theme.titleFont&&theme.titleFont.fontSize?theme.titleFont.fontSize:15},children:/*#__PURE__*/_jsx(\"button\",{className:\"__framer-search-clear-button\",onClick:onClick,style:{fontFamily:\"inherit\",border:\"none\",background:\"none\",cursor:\"pointer\",display:\"flex\",textTransform:\"uppercase\",color:theme.inputIconColor,fontSize:\"0.75em\",padding:0},children:iconOrText})});}function Divider({theme,type}){const styles={background:theme.foregroundColor,height:1,flexShrink:0,opacity:.05};if(type===\"contained\"&&theme){styles.marginLeft=theme.horizontalSpacing;styles.marginRight=theme.horizontalSpacing;}return /*#__PURE__*/_jsx(\"div\",{style:styles});}export const Input=/*#__PURE__*/forwardRef(function Input(props,ref){const{value=\"\",status,autofocus,theme,placeholder,iconType,clearButtonType,onChange}=props;const[inputValue,setInputValue]=useState(value);const[isFocused,setIsFocused]=useState(false);const inputRef=useRef();useImperativeHandle(ref,()=>inputRef.current);React.useLayoutEffect(()=>{// Runs on unmount, fixes a bug in Safari that scrolls to the bottom\n// of the page when the input unmounts.\nreturn()=>{const inputElement=inputRef.current;if(!inputElement||inputElement!==document.activeElement)return;inputElement.blur();};},[]);const handleInputClick=()=>{if(inputRef.current){inputRef.current.focus();}};const handleClearClick=()=>{setInputValue(\"\");};useEffect(()=>{onChange(inputValue);},[inputValue]);const hasInputText=inputValue.length>0;const showClearButton=inputValue.length>0&&clearButtonType&&clearButtonType!==\"none\";const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);const searchIcon=iconType===\"custom\"&&theme.inputIconImage?/*#__PURE__*/_jsx(\"img\",{alt:\"icon alongside the Site Search input\",src:theme.inputIconImage.src,width:theme.inputIconSize,height:theme.inputIconSize,decoding:\"async\"}):/*#__PURE__*/_jsx(SearchIcon,{color:theme.inputIconColor,width:theme.inputIconSize,height:theme.inputIconSize});return /*#__PURE__*/_jsxs(\"div\",{role:\"search\",style:{...inputContainerStyle,fontFamily:getFontFamily(theme),paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,gap:12,paddingTop:verticalSpacing,paddingBottom:verticalSpacing,touchAction:\"none\"},onClick:handleInputClick,children:[/*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,display:\"flex\"},children:status===\"loading\"&&inputValue?/*#__PURE__*/_jsx(SpinnerIcon,{color:theme.inputIconColor,backgroundColor:theme.backgroundColor,style:{height:theme&&theme.inputIconSize,width:theme&&theme.inputIconSize}}):searchIcon}),/*#__PURE__*/_jsx(\"input\",{ref:inputRef,spellCheck:false,autoFocus:autofocus,style:{...inputStyle,WebkitTapHighlightColor:\"rgba(0,0,0,0)\",color:theme.foregroundColor,lineHeight:\"2em\",verticalAlign:\"baseline\",...theme.titleFont,...theme.inputFont,fontSize:theme.inputFontSize,// @ts-ignore\n\"--framer-search-placeholder-color\":theme.placeholderColor},onFocus:()=>{const scrollOffset=document.documentElement.scrollTop;document.documentElement.scrollTop=scrollOffset;},placeholder:placeholder,value:inputValue,onChange:()=>setInputValue(inputRef.current.value)}),showClearButton&&/*#__PURE__*/_jsx(ClearButton,{theme:theme,type:props.clearButtonType,text:props.clearButtonText,onClick:handleClearClick})]});});const inputContainerStyle={display:\"inline-flex\",alignItems:\"center\",flexShrink:0};const inputStyle={outline:\"none\",border:\"none\",background:\"transparent\",fontWeight:500,height:\"2em\",padding:0,width:\"100%\"};export const ResultRow=/*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function ResultRow(props,ref){const{index,result,prevMousePositionRef,type=\"contained\",subtitleType=\"path\",selected=false,theme,localeSlug,style,onMouseMove,onPointerDown,onNavigateTo}=props;const{url,title,score}=result;const urlPath=useMemo(()=>{return stripLocaleSlugFromPath(url,localeSlug);},[url,localeSlug]);const handleMouseMove=useCallbackOnMouseMove(event=>onMouseMove(event,index),prevMousePositionRef);const isContained=type===\"contained\";const borderRadius=isContained?clamp(0,Infinity,theme.borderRadius-theme.spacing):0;const subtitleText=subtitleType===\"path\"?urlPath:clampText(result.description,MAX_DESCRIPTION_LENGTH);const handleClick=event=>{event.preventDefault();onNavigateTo(result.url);};const focusTrap=event=>{event.preventDefault();};return /*#__PURE__*/_jsx(\"a\",{ref:ref,style:{textDecoration:\"none\"},href:result.url,onClick:handleClick,onMouseMove:handleMouseMove,onMouseDown:focusTrap,onPointerDown:event=>onPointerDown(event,index),children:/*#__PURE__*/_jsxs(\"li\",{style:{...resultContainer,...style,paddingTop:isContained?12:16,paddingBottom:isContained?12:16,color:theme.foregroundColor,position:\"relative\",paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing},children:[/*#__PURE__*/_jsx(\"div\",{style:{backgroundColor:theme.foregroundColor,position:\"absolute\",opacity:selected?.06:0,borderRadius,left:theme&&isContained?theme.spacing:0,right:theme&&isContained?theme.spacing:0,top:0,bottom:0}}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",gap:4},children:[/*#__PURE__*/_jsx(\"h3\",{style:{...resultTitle,...theme.titleFont,lineHeight:\"1.4em\"},children:title}),/*#__PURE__*/_jsxs(\"p\",{style:{margin:0,color:theme.subtitleColor,...theme.subtitleFont,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",lineHeight:\"1.4em\"},children:[localStorageDebugFlag?score:\"\",\" \",subtitleText]})]})]},result.url)});}));/**\n * Flexible gap used inside a flexbox layout to push down the quick menu\n * by 20% of the screen height, but also allow it to collapse to zero if\n * there is not enough vertical room.\n */function QuickMenuSpacer({onClick}){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",flexBasis:\"20vh\"},onClick:onClick});}const layoutContainerStyle={display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"flex-start\",gap:15,overflow:\"visible\"};function LayoutContainer({layoutType,theme,onKeyDown,onDismiss,children,modalOptions}){const layoutStyles=getLayoutBaseStyles(layoutType,theme);const style={...layoutContainerStyle,...layoutStyles,willChange:\"transform\",marginTop:layoutType===\"FixedTop\"?theme.offsetTop:0,height:layoutType===\"Sidebar\"?\"100%\":\"auto\",maxHeight:layoutType===\"QuickMenu\"?\"100%\":\"none\",justifyContent:layoutType===\"Sidebar\"?\"flex-end\":\"flex-start\",flexDirection:layoutType===\"Sidebar\"?\"column-reverse\":\"column\"};const innerStyle={...layoutContainerStyle,...layoutStyles,height:layoutType===\"Sidebar\"?\"100%\":\"auto\",maxHeight:layoutType===\"QuickMenu\"?\"100%\":\"none\",gap:layoutType===\"Sidebar\"?0:theme.gapBetweenStatusAndSearch,backgroundColor:layoutType===\"Sidebar\"?theme.backgroundColor:\"transparent\",justifyContent:layoutType===\"Sidebar\"?\"flex-end\":\"flex-start\",flexDirection:layoutType===\"Sidebar\"?\"column-reverse\":\"column\",originX:.5,originY:.5};function getContainerAnimation(){switch(layoutType){case\"FixedTop\":{const key=animationKeyFromLayout(\"FixedTop\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{y:-10,opacity:.2,transition:{duration:Browser.isTouch()?0:.15}};}break;}case\"QuickMenu\":{const key=animationKeyFromLayout(\"QuickMenu\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{scale:.95,opacity:0,y:0,x:0,rotate:0,transition:{type:\"spring\",stiffness:600,damping:40}};}break;}case\"Sidebar\":{const key=animationKeyFromLayout(\"Sidebar\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{x:-10,opacity:0,transition:{duration:.15}};}break;}}}const containerAnimation=getContainerAnimation();return /*#__PURE__*/_jsxs(\"div\",{style:style,onKeyDown:onKeyDown,onClick:event=>event.stopPropagation(),children:[layoutType===\"QuickMenu\"&&/*#__PURE__*/_jsx(QuickMenuSpacer,{onClick:onDismiss}),/*#__PURE__*/_jsx(motion.div,{initial:containerAnimation,animate:{opacity:1,scale:1,x:0,y:0,rotate:0},transition:containerAnimation?containerAnimation.transition:undefined,exit:{opacity:0,transition:{duration:0}},style:innerStyle,children:children})]});}function ModalContainer({layoutType,theme,children,heightIsStatic,heightTransition,heightDeps}){const style={// This `willChange` is required to avoid weird rendering issues where\n// parts of the search window won't redraw, which we observed in Safari 16.4.\nwillChange:\"transform\",backgroundColor:theme.backgroundColor,color:theme.foregroundColor,borderRadius:layoutType===\"QuickMenu\"?theme.borderRadius:0,width:\"100%\",display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",boxShadow:layoutType!==\"Sidebar\"?theme.shadow:undefined,maxHeight:layoutType===\"QuickMenu\"?`min(${MODAL_MAX_HEIGHT}px, calc(100vh - 30px))`:undefined};// Opt-in Height Animations for the Search Quick Actions menu.\n// These are disabled by default, but can be enabled via props.\nconst[scope,animate]=useAnimate();useLayoutEffect(()=>{if(layoutType!==\"QuickMenu\"||heightIsStatic)return;const prevHeight=scope.current.offsetHeight;scope.current.style.height=\"auto\";const height=scope.current.offsetHeight;scope.current.style.height=prevHeight+\"px\";animate(scope.current,{height:[prevHeight,height]},heightTransition);},heightDeps);return /*#__PURE__*/_jsx(\"div\",{ref:scope,role:\"dialog\",className:layoutType===\"FixedTop\"?\"__framer-max-height-80dvh\":undefined,style:style,children:children});}const ScrollView=/*#__PURE__*/React.forwardRef(function ScrollView({theme,children},ref){const isTouch=Browser.isTouch();const[canScroll,setCanScroll]=React.useState(true);React.useEffect(()=>{if(!isTouch)return;const element=ref.current;if(!element)return;setCanScroll(element.scrollHeight>element.clientHeight);});return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{width:`calc(100% + ${theme.scrollBarWidth}px)`,overflowY:\"scroll\",overflowX:\"hidden\",overscrollBehavior:\"contain\",touchAction:canScroll?undefined:\"none\",// Make the list appear slightly under the divider\n// so that the divider is still visible when the first\n// item is selected.\nmarginTop:-1},children:children});});const statusStyle={backgroundColor:\"#B5B5B5\",color:\"#FFF\",boxShadow:\"0px 20px 40px 0px rgba(0, 0, 0, 0.25)\",fontFamily:\"inherit\",textAlign:\"center\",fontSize:13,padding:\"8px 0\"};function StatusMessage({status,layoutType,theme}){const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);const style={...statusStyle,userSelect:\"none\",fontFamily:getFontFamily(theme),paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,fontWeight:500,lineHeight:`calc(${theme.inputFontSize} * 2)`,paddingTop:verticalSpacing,paddingBottom:verticalSpacing,...theme.titleFont,zIndex:theme.zIndex+1,maxWidth:layoutType===\"FixedTop\"?\"none\":theme.width,width:layoutType===\"FixedTop\"?`calc(100% - ${verticalSpacing*2}px`:\"100%\",boxShadow:layoutType!==\"Sidebar\"&&statusStyle.boxShadow,borderRadius:layoutType!==\"Sidebar\"&&theme.borderRadius};// Show less text on fixed text to look nicer on mobile\nconst previewInfoText=layoutType===\"FixedTop\"?\"Preview Mode\":\"Preview Mode. Publish your Site to Search.\";if(status===\"no-meta-tag-found\"){return /*#__PURE__*/_jsx(\"div\",{style:style,children:previewInfoText});}if(status===\"pending-index-generation\"){return /*#__PURE__*/_jsx(\"div\",{style:style,children:\"Site is being indexed\"});}return null;}const resultTitle={textOverflow:\"ellipsis\",maxWidth:\"100%\",overflow:\"hidden\",fontWeight:500,whiteSpace:\"nowrap\",flex:1,margin:0};const resultContainer={padding:\"16px 20px\",listStyle:\"none\",fontWeight:500};const sidebarStyles={left:0,width:500};const fixedTopStyles={top:0,width:\"100%\"};const quickMenuStyles={width:500};function getLayoutBaseStyles(layoutOption,theme){switch(layoutOption){case\"Sidebar\":return{...sidebarStyles,width:theme.width};case\"FixedTop\":return fixedTopStyles;case\"QuickMenu\":return{...quickMenuStyles,width:theme.width};}}export var SearchInputClearButtonType;(function(SearchInputClearButtonType){SearchInputClearButtonType[\"Icon\"]=\"icon\";SearchInputClearButtonType[\"Text\"]=\"text\";SearchInputClearButtonType[\"None\"]=\"none\";})(SearchInputClearButtonType||(SearchInputClearButtonType={}));export var SearchInputDividerType;(function(SearchInputDividerType){SearchInputDividerType[\"None\"]=\"none\";SearchInputDividerType[\"FullWidth\"]=\"fullWidth\";SearchInputDividerType[\"Contained\"]=\"contained\";})(SearchInputDividerType||(SearchInputDividerType={}));export var SearchResultTitleType;(function(SearchResultTitleType){SearchResultTitleType[\"H1\"]=\"h1\";SearchResultTitleType[\"Title\"]=\"title\";})(SearchResultTitleType||(SearchResultTitleType={}));export var SearchResultSubtitleType;(function(SearchResultSubtitleType){SearchResultSubtitleType[\"Description\"]=\"description\";SearchResultSubtitleType[\"Path\"]=\"path\";})(SearchResultSubtitleType||(SearchResultSubtitleType={}));export var SearchResultItemType;(function(SearchResultItemType){SearchResultItemType[\"FullWidth\"]=\"fullWidth\";SearchResultItemType[\"Contained\"]=\"contained\";})(SearchResultItemType||(SearchResultItemType={}));export var SearchLayoutType;(function(SearchLayoutType){SearchLayoutType[\"Sidebar\"]=\"Sidebar\";SearchLayoutType[\"FixedTop\"]=\"FixedTop\";SearchLayoutType[\"QuickMenu\"]=\"QuickMenu\";})(SearchLayoutType||(SearchLayoutType={}));export var SearchEntryType;(function(SearchEntryType){SearchEntryType[\"Icon\"]=\"icon\";SearchEntryType[\"Text\"]=\"text\";})(SearchEntryType||(SearchEntryType={}));export var SearchIconType;(function(SearchIconType){SearchIconType[\"Default\"]=\"default\";SearchIconType[\"Custom\"]=\"custom\";})(SearchIconType||(SearchIconType={}));/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export function SearchModal(props){const{layoutType,theme,urlScope,inputOptions,backdropOptions,modalOptions,resultOptions,onDismiss}=props;const{activeLocale}=useLocaleInfo();const localeId=activeLocale?.id;const localeSlug=activeLocale?.slug;const input=useRef();const selectedResultRow=useRef();const scrollView=useRef();const[selected,setSelected]=useState({index:0,scroll:true});const prevMousePositionRef=useRef(null);const[isKeyboardNavigationDisabled,setIsKeyboardNavigationDisabled]=useState(Browser.isTouch);const[query,setQuery]=useState(\"\");const deferredQuery=useDeferredValue(query);const{results,status}=useSearch(deferredQuery,{minimumScore:0,urlScope,titleType:resultOptions.titleType});const selectedResult=results[selected.index];const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);useEffect(()=>{// Reset the selection to the top if the query changes.\nsetSelected({index:0,scroll:true});},[deferredQuery]);const handleResultRowPointerDown=useCallback((event,index)=>{if(event.pointerType!==\"touch\")return;setIsKeyboardNavigationDisabled(true);setSelected({index,scroll:false});},[]);const handleResultRowMouseMove=useCallback((event,index)=>{setSelected(previousSelected=>{if(previousSelected.index===index){return previousSelected;}return{index,scroll:false};});},[]);const router=useRouter();const navigateTo=useCallback(async url=>{if(status===\"no-meta-tag-found\"){return;}try{// Ideally, we would directly expose `routeId` in the search index so that\n// we don't need to infer it from the URL.\nconst{routeId,pathVariables}=inferInitialRouteFromPath(router.routes,url);const route=router.getRoute?.(routeId);onDismiss();await route?.page?.preload?.();router.navigate?.(routeId,null,pathVariables,false);}catch(error){window.location.href=url;}},[status]);const handleKeyDown=event=>{const maxIndex=results.length-1;switch(event.code){case\"ArrowUp\":event.preventDefault();if(isKeyboardNavigationDisabled){setIsKeyboardNavigationDisabled(false);break;}setSelected(previousSelected=>({index:clamp(0,maxIndex,previousSelected.index-1),scroll:true}));break;case\"ArrowDown\":event.preventDefault();if(isKeyboardNavigationDisabled){setIsKeyboardNavigationDisabled(false);break;}setSelected(previousSelected=>({index:clamp(0,maxIndex,previousSelected.index+1),scroll:true}));break;case\"Escape\":break;case\"Enter\":if(selectedResult){navigateTo(selectedResult.url);}break;default:event.stopPropagation();}};const showNoResults=results.length===0&&deferredQuery.length>1&&status!==\"loading\";const showDivider=Boolean((deferredQuery.length>0&&results.length>0||showNoResults)&&status!==\"loading\"&&props.inputOptions&&props.inputOptions.dividerType!==\"none\");const isItemContained=Boolean(props.resultOptions&&props.resultOptions.itemType===\"contained\");const spacing=isItemContained?theme.spacing:10;const listPaddingTop=showDivider&&isItemContained?spacing+theme.gapBetweenResults*2:0;useEffect(()=>{if(!selected.scroll)return;const element=selectedResultRow.current;if(!element)return;scrollIntoView(element,scrollView.current,{offsetTop:showDivider&&isItemContained?listPaddingTop:0,offsetBottom:isItemContained?spacing:0});// `showDivider` and `isItemContained` are not dependencies because\n// they will be the latest values when `selected` changes. And including\n// them will cause unnecessary scrolling into view.\n},[selected]);return /*#__PURE__*/_jsxs(LayoutContainer,{layoutType:layoutType,modalOptions:modalOptions,theme:theme,onKeyDown:handleKeyDown,onDismiss:onDismiss,children:[/*#__PURE__*/_jsxs(ModalContainer,{layoutType:layoutType,theme:theme,heightIsStatic:modalOptions.heightIsStatic,heightTransition:modalOptions.heightTransition,heightDeps:[results.length,showNoResults],children:[/*#__PURE__*/_jsx(Input,{autofocus:true,ref:input,onChange:setQuery,value:query,theme:theme,status:status,iconType:inputOptions.iconOptions.iconType,placeholder:inputOptions.placeholderOptions.placeholderText,clearButtonType:inputOptions?inputOptions.clearButtonType:undefined,clearButtonText:inputOptions.clearButtonText}),showDivider&&/*#__PURE__*/_jsx(Divider,{theme:theme,type:inputOptions.dividerType}),/*#__PURE__*/_jsx(ScrollView,{ref:scrollView,theme:theme,children:/*#__PURE__*/_jsxs(\"ul\",{\"aria-live\":\"polite\",style:{display:\"flex\",flexDirection:\"column\",width:`calc(100% - ${theme.scrollBarWidth}px)`,padding:0,paddingTop:listPaddingTop,paddingBottom:results.length&&isItemContained?spacing:0,gap:theme.gapBetweenResults,margin:0},children:[results.map((result,index)=>{const isSelected=index===selected.index;return /*#__PURE__*/_jsx(ResultRow,{ref:isSelected?selectedResultRow:null,index:index,result:result,prevMousePositionRef:prevMousePositionRef,selected:!isKeyboardNavigationDisabled&&isSelected,type:props.resultOptions.itemType,subtitleType:props.resultOptions.subtitleOptions.subtitleType,theme:theme,localeSlug:localeSlug,onMouseMove:handleResultRowMouseMove,onPointerDown:handleResultRowPointerDown,onNavigateTo:navigateTo},result.url);}),showNoResults&&/*#__PURE__*/_jsx(\"li\",{style:{paddingTop:verticalSpacing-listPaddingTop,paddingBottom:verticalSpacing,lineHeight:\"2em\",paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,height:\"Sidebar\"?\"100%\":\"auto\"},children:/*#__PURE__*/_jsx(\"h3\",{style:{...resultTitle,textAlign:\"center\",lineHeight:`calc(${theme.inputFontSize} * 2)`,color:theme.subtitleColor,...theme.titleFont},children:\"No results\"})})]})})]}),/*#__PURE__*/_jsx(StatusMessage,{status:status,layoutType:layoutType,theme:theme})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"ResultRow\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultTitleType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultItemType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchLayoutType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchInputDividerType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchTheme\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultSubtitleType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchModal\":{\"type\":\"reactComponent\",\"name\":\"SearchModal\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"SearchIconType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Input\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchEntryType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchInputClearButtonType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-ignore\nimport{useLocaleInfo}from\"framer\";import{clamp}from\"framer-motion\";import{useEffect,useState,useTransition}from\"react\";import{SearchResultTitleType}from\"https://framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/wgITiHCOZBBo33pin0wW/SearchModal.js\";import{getCachedIndex,isDefaultLocaleId,setCachedIndex}from\"https://framerusercontent.com/modules/uU1mtMKXsrVAg8N5hW7w/v7gDLwKJgQ5vAsFHxY4H/cachedIndex.js\";import{fakeResults}from\"https://framerusercontent.com/modules/K9JZRwJcE6slDAf8rUmh/mJ54py1Ecnn1RoC4N1m4/fakeResults.js\";import{distance}from\"https://framerusercontent.com/modules/TwRgbWuhHeB95MPifel4/YW8Hlm59FG3PajbrVsaR/fuzzySearch.js\";import{createLogger,localStorageDebugFlag,safeDocument,safeWindow,stripLocaleSlugFromPath,yieldToMain}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";const{log,time,timeEnd}=createLogger(localStorageDebugFlag);const splitWordsRegex=(()=>{try{// Regex lookbehind is used to ignore ampersands when splitting\n// words. For example \"H&M\" will not be split and is considered as\n// one word, but \"H & M\" will be split.\n// However, some browsers (like Safari iOS 15) don't support\n// lookbehind and will crash. When it's not supported, fallback to\n// a safer regex that always splits ampersands.\nconst regex=RegExp(\"[\\\\s.,;!?\\\\p{P}\\\\p{Z}]+(?<!\\\\p{L}&)(?!&\\\\p{L})\",\"u\");\"\".split(regex);return regex;}catch{log(\"Falling back to regex without lookbehind\");return RegExp(\"[\\\\s.,;!?\\\\p{P}\\\\p{Z}]+\",\"u\");}})();function splitWords(text){return text.split(splitWordsRegex);}function getUniqueWords(str){const words=splitWords(str).filter(word=>word.trim()&&word.length>0);return new Set(words);}const normalizeRegex=/[\\u0300-\\u036f]/g;/**\n * Replace accented characters with equivilant non-accented versions and\n * make everything lowercase.\n */function getNormalizedString(text){if(Array.isArray(text)){return text.map(getNormalizedString);}return text.normalize(\"NFD\")// From: https://stackoverflow.com/a/37511463\n.replace(normalizeRegex,\"\").toLowerCase();}const normalizedItemCache=new WeakMap;function getNormalizedItemFromCache(item){const cached=normalizedItemCache.get(item);if(cached)return cached;const normalizedItem=getNormalizedItem(item);normalizedItemCache.set(item,normalizedItem);return normalizedItem;}function getNormalizedItem(item){const normalizedItem={};for(const key in item){if(item.hasOwnProperty(key)){const value=item[key];if(typeof value===\"string\"){normalizedItem[key]=getNormalizedString(value);continue;}if(Array.isArray(value)){normalizedItem[key]=getNormalizedString(value);continue;}normalizedItem[key]=value;}}return normalizedItem;}function getMatchRange(currentRange,start,end){const result={...currentRange};if(start<result.start){result.start=start;}if(end>result.end){result.end=end;}return result;}/**\n * Score index item based on the contents of it's fields such as title, description, headings etc.\n *\n * Note that this does not normalize the item or query. Normalization is expected to happen\n * before passing the data into this.\n */function getScoreForSearchIndexItem(item,query,words,fullQuery){let score=0;const match={title:{start:Infinity,end:0},description:{start:Infinity,end:0}};const urlWords=getUniqueWords(item.url);// Match query based on words in the URL so that random strings inside\n// other strings are not matched.\nif(urlWords.has(query)){score+=10;}// Really boost single word queries that match single word URLs.\nif(words.size===1&&urlWords.size===1&&urlWords.values().next().value===query){score+=score*5;}// Score shorter URLs higher so `/pricing` is before `/lala/pricing`.\nif(score>0){const splitLength=item.url.split(\"/\").length;score+=clamp(10-splitLength,0,splitLength);}const titleWords=getUniqueWords(item.title);// Prefer full word matches in the title.\nif(titleWords.has(query)){score+=10;}const titleIndex=item.title.indexOf(query);if(titleIndex!==-1){score+=10;// TODO: Matches are currently not used, but they can be used in the\n// future to add text highlighting.\nmatch.title=getMatchRange(match.title,titleIndex,titleIndex+query.length);}// If the full query is close to being the heading, score this highly as\n// the user is most likely looking for that exact title.\nif(distance(item.title,fullQuery)<=2){score+=score*10;}// Fuzzy match full words in the title.\nfor(const titleWord of titleWords){const distanceScore=distance(query,titleWord);// Small distance score helps with small typos.\nif(distanceScore<=2){score+=10;}}const headings=[...item.h1,...item.h2,...item.h3,...item.h4,...item.h5,...item.h6];for(const heading of headings){const headingWords=getUniqueWords(heading);// If the full query is close to being the heading, score this highly as\n// the user is most likely looking for that exact title.\nif(distance(heading,fullQuery)<=2){score+=score*10;}// Bias headings that start with the query as this helps when\n// you know the title you are searching for.\nif(heading.startsWith(query)){score+=10;}if(headingWords.has(query)){score+=10;}if(heading.includes(query)){score+=1;}// Fuzzy match full words in headings.\nfor(const headingWord of headingWords){const distanceScore=distance(query,headingWord);if(distanceScore<=2){score+=1;}}}const descriptionIndex=item.description.indexOf(query);if(descriptionIndex!==-1){score+=10;match.description=getMatchRange(match.description,descriptionIndex,descriptionIndex+query.length);}for(const p of item.p){if(p.includes(query)){score+=.5;}}for(const codeblock of item.codeblock){// If the full query is close to being the codeblock, score this highly as\n// the user is most likely looking for that exact code.\nif(distance(codeblock,fullQuery)<=2){score*=10;}if(codeblock.includes(fullQuery)){score+=10;}if(codeblock.includes(query)){score+=.5;}}return{score,match};}function getSearchIndexItemScore(item,normalizedQuery){const normalizedItem=getNormalizedItemFromCache(item);const queryWords=getUniqueWords(normalizedQuery);let total=0;for(const queryWord of queryWords){const{score}=getScoreForSearchIndexItem(normalizedItem,queryWord,queryWords,normalizedQuery);total+=score;}return total;}function useRawSearch(index,query,settings){const[results,setResults]=useState(null);const[,startTransition]=useTransition();useEffect(()=>{const abortController=new AbortController;executeRawSearch(index,query,settings,abortController.signal).then(res=>{if(!abortController.signal.aborted){startTransition(()=>{setResults(res);});}}).catch(err=>{if(err.name!==\"AbortError\"){console.error(\"Search failed:\",err);}});return()=>{abortController.abort();};},[index,query]);return{results:results??[]};}const QUANTUM=32// ms, 2*16ms (2 frames on 60 hz)\n;async function executeRawSearch(index,query,settings,signal){const path=safeWindow?.location.pathname;time(\"query\");const normalizedQuery=getNormalizedString(query);const results=[];const items=Object.values(index);let deadline=performance.now()+QUANTUM;async function yieldToMainIfNecessary(){if(performance.now()>=deadline){await yieldToMain();deadline=performance.now()+QUANTUM;}}for(let i=0;i<items.length;++i){if(performance.now()>=deadline){await yieldToMainIfNecessary();deadline=performance.now()+QUANTUM;}if(signal?.aborted)return[];const item=items[i];const score=getSearchIndexItemScore(item,normalizedQuery);if(score>(settings.minimumScore||0)&&(!path||item.url!==path)){const heading=item.h1.length&&item.h1[0];const title=settings?.titleType===SearchResultTitleType.Title?item.title:heading?heading:item.title;// Convert index item to result item.\nresults.push({url:item.url,title,description:item.description,body:[...item.p,item.codeblock].join(\" \"),score});}}await yieldToMainIfNecessary();if(signal?.aborted)return[];const sorted=results.sort((itemA,itemB)=>itemB.score-itemA.score);timeEnd(\"query\");await yieldToMainIfNecessary();if(signal?.aborted)return[];return results.slice(0,20);}function getIndexedScopedToUrl(index,rawUrlScope,localeSlug){const scopedIndex={};const baseScopeUrlHasVariable=rawUrlScope.includes(\":\");const urlUpToPathVariable=rawUrlScope.split(\":\")[0];const urlScope=urlUpToPathVariable.length>1?urlUpToPathVariable:\"\";for(const url in index){const strippedURL=stripLocaleSlugFromPath(url,localeSlug);if(!strippedURL.startsWith(urlScope)){continue;}if(baseScopeUrlHasVariable&&url.length<=urlScope.length){continue;}scopedIndex[url]=index[url];}return scopedIndex;}export function useSearch(query,settings){const[searchIndex,_setSearchIndex]=useState({});const[status,setStatus]=useState(\"loading\");const{results}=useRawSearch(searchIndex,query,settings);const{activeLocale}=useLocaleInfo();const localeId=activeLocale?.id;// Seperate setter function so that the URL scope is always applied\n// to indexes loaded from either the cache or network.\nfunction setSearchIndex(index,options={ignoreScope:false}){let scopedIndex=index;if(settings.urlScope&&!options.ignoreScope){scopedIndex=getIndexedScopedToUrl(index,settings.urlScope,activeLocale?.slug);log(\"Using URL scope\",settings.urlScope);}_setSearchIndex(scopedIndex);}useEffect(()=>{async function loadSearchIndex(){setStatus(\"loading\");const baseUrl=getBaseUrl(\"framer-search-index\");if(!baseUrl){setStatus(\"no-meta-tag-found\");setSearchIndex(fakeResults,{ignoreScope:true});log(\"No meta tag found\");return;}const cacheResult=await getCachedIndex(localeId,baseUrl);if(cacheResult.status===\"fresh\"){setSearchIndex(cacheResult.searchIndex);setStatus(\"success\");log(\"Using fresh cached index\");return;}if(cacheResult.status===\"stale\"){setSearchIndex(cacheResult.searchIndex);setStatus(\"loading-with-cache\");log(\"Using stale cached index while loading a fresh one\");}const searchIndexUrl=getSearchIndexUrl(baseUrl,localeId);const response=await fetch(searchIndexUrl);if(response.ok){const downloadedIndex=await response.json();setSearchIndex(downloadedIndex);setCachedIndex(localeId,downloadedIndex,baseUrl);setStatus(\"success\");log(\"Using downloaded index\");return;}// Our \"sites\" CDN currently returns 403s for missing files.\nconst isNotFound=response.status===403||response.status===404;if(!isNotFound){throw new Error(response.statusText);}// Index is likely still being generated.\nlog(\"Index not found\");const fallbackBaseUrl=getBaseUrl(\"framer-search-index-fallback\");if(!fallbackBaseUrl){if(cacheResult.status===\"miss\"){setStatus(\"pending-index-generation\");log(\"No fallback, no cache\");}else{log(\"No fallback, using cache\");}return;}// If we're here, cache is missing or stale. If it's stale but it's our fallback index, we can use it.\nif(cacheResult.status===\"stale\"&&cacheResult.indexHash===fallbackBaseUrl){setStatus(\"success\");log(\"Using cached fallback index\");return;}const fallbackSearchIndexUrl=getSearchIndexUrl(fallbackBaseUrl,localeId);const fallbackResponse=await fetch(fallbackSearchIndexUrl);if(fallbackResponse.ok){const downloadedIndex=await fallbackResponse.json();setSearchIndex(downloadedIndex);setCachedIndex(localeId,downloadedIndex,fallbackBaseUrl);setStatus(\"success\");log(\"Using downloaded fallback index\");return;}if(cacheResult.status===\"miss\"){setStatus(\"pending-index-generation\");log(\"Fallback failed, no cache\");}else{log(\"Fallback failed, using cache\");}}loadSearchIndex().catch(error=>{// TODO: Check for error type here. If it's a network error,\n// we could do a few retries.\nsetStatus(\"error\");log(\"Failed to load search index\",error);});},[localeId]);log({status,results});return{results,status};}function getBaseUrl(name){return safeDocument?.querySelector(`meta[name=\"${name}\"]`)?.getAttribute(\"content\");}function getSearchIndexUrl(baseURL,localeId){if(isDefaultLocaleId(localeId))return baseURL;return baseURL.replace(\".json\",`-${localeId}.json`);}\nexport const __FramerMetadata__ = {\"exports\":{\"SearchIndex\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useSearch\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useSearch.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useSearch}from\"https://framerusercontent.com/modules/MyBp84Z0p9nUcMimVMnY/G59GwobMNJqwSjtPO6Pv/useSearch.js\";import React,{useEffect,useState,useMemo,forwardRef,useRef,useDeferredValue,useLayoutEffect,useCallback,useImperativeHandle}from\"react\";import{Browser}from\"https://framerusercontent.com/modules/PJVBcBLmDteTEAZh3J9Z/keXJyjyE9VnzUcDMayjg/browser.js\";import{motion,clamp,useAnimate}from\"framer-motion\";import{SearchIcon,ClearIcon,SpinnerIcon}from\"https://framerusercontent.com/modules/LV9trClbmNwd5PVj9l8y/L4rFqMGNzGSwRZpGTGF3/Icons.js\";import{clampText,getFontFamily,localStorageDebugFlag,animationKeyFromLayout,stripLocaleSlugFromPath}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";import{useCallbackOnMouseMove}from\"https://framerusercontent.com/modules/Gzef0nFihI9m9vZG45th/lIUxbZcreiDm2GzUkt3y/useCallbackOnMouseMove.js\";import{scrollIntoView}from\"https://framerusercontent.com/modules/eAnjm75CdfYT1Zz4BIaz/7KDSfnnyD1T3Ap75L4m8/scrollIntoView.js\";import{useLocaleInfo,// @ts-expect-error Internal API\nuseRouter,// @ts-expect-error Internal API\ninferInitialRouteFromPath}from\"framer\";const MAX_DESCRIPTION_LENGTH=120;const MODAL_MAX_HEIGHT=496;const VERTICAL_SPACING_MULTIPLIER=.6;function ClearButton({theme,type,onClick,text}){const shouldDisplayIcon=type===\"icon\";const iconOrText=shouldDisplayIcon?/*#__PURE__*/_jsx(ClearIcon,{style:{color:theme.inputIconColor,width:theme.inputIconSize,height:theme.inputIconSize}}):text;return /*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,fontSize:theme&&theme.titleFont&&theme.titleFont.fontSize?theme.titleFont.fontSize:15},children:/*#__PURE__*/_jsx(\"button\",{className:\"__framer-search-clear-button\",onClick:onClick,style:{fontFamily:\"inherit\",border:\"none\",background:\"none\",cursor:\"pointer\",display:\"flex\",textTransform:\"uppercase\",color:theme.inputIconColor,fontSize:\"0.75em\",padding:0},children:iconOrText})});}function Divider({theme,type}){const styles={background:theme.foregroundColor,height:1,flexShrink:0,opacity:.05};if(type===\"contained\"&&theme){styles.marginLeft=theme.horizontalSpacing;styles.marginRight=theme.horizontalSpacing;}return /*#__PURE__*/_jsx(\"div\",{style:styles});}export const Input=/*#__PURE__*/forwardRef(function Input(props,ref){const{value=\"\",status,autofocus,theme,placeholder,iconType,clearButtonType,onChange}=props;const[inputValue,setInputValue]=useState(value);const[isFocused,setIsFocused]=useState(false);const inputRef=useRef();useImperativeHandle(ref,()=>inputRef.current);React.useLayoutEffect(()=>{// Runs on unmount, fixes a bug in Safari that scrolls to the bottom\n// of the page when the input unmounts.\nreturn()=>{const inputElement=inputRef.current;if(!inputElement||inputElement!==document.activeElement)return;inputElement.blur();};},[]);const handleInputClick=()=>{if(inputRef.current){inputRef.current.focus();}};const handleClearClick=()=>{setInputValue(\"\");};useEffect(()=>{onChange(inputValue);},[inputValue]);const hasInputText=inputValue.length>0;const showClearButton=inputValue.length>0&&clearButtonType&&clearButtonType!==\"none\";const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);const searchIcon=iconType===\"custom\"&&theme.inputIconImage?/*#__PURE__*/_jsx(\"img\",{alt:\"icon alongside the Site Search input\",src:theme.inputIconImage.src,width:theme.inputIconSize,height:theme.inputIconSize,decoding:\"async\"}):/*#__PURE__*/_jsx(SearchIcon,{color:theme.inputIconColor,width:theme.inputIconSize,height:theme.inputIconSize});return /*#__PURE__*/_jsxs(\"div\",{role:\"search\",style:{...inputContainerStyle,fontFamily:getFontFamily(theme),paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,gap:12,paddingTop:verticalSpacing,paddingBottom:verticalSpacing,touchAction:\"none\"},onClick:handleInputClick,children:[/*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,display:\"flex\"},children:status===\"loading\"&&inputValue?/*#__PURE__*/_jsx(SpinnerIcon,{color:theme.inputIconColor,backgroundColor:theme.backgroundColor,style:{height:theme&&theme.inputIconSize,width:theme&&theme.inputIconSize}}):searchIcon}),/*#__PURE__*/_jsx(\"input\",{ref:inputRef,spellCheck:false,autoFocus:autofocus,style:{...inputStyle,WebkitTapHighlightColor:\"rgba(0,0,0,0)\",color:theme.foregroundColor,lineHeight:\"2em\",verticalAlign:\"baseline\",...theme.titleFont,...theme.inputFont,fontSize:theme.inputFontSize,// @ts-ignore\n\"--framer-search-placeholder-color\":theme.placeholderColor},onFocus:()=>{const scrollOffset=document.documentElement.scrollTop;document.documentElement.scrollTop=scrollOffset;},placeholder:placeholder,value:inputValue,onChange:()=>setInputValue(inputRef.current.value)}),showClearButton&&/*#__PURE__*/_jsx(ClearButton,{theme:theme,type:props.clearButtonType,text:props.clearButtonText,onClick:handleClearClick})]});});const inputContainerStyle={display:\"inline-flex\",alignItems:\"center\",flexShrink:0};const inputStyle={outline:\"none\",border:\"none\",background:\"transparent\",fontWeight:500,height:\"2em\",padding:0,width:\"100%\"};export const ResultRow=/*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function ResultRow(props,ref){const{index,result,prevMousePositionRef,type=\"contained\",subtitleType=\"path\",selected=false,theme,localeSlug,style,onMouseMove,onPointerDown,onNavigateTo}=props;const{url,title,score}=result;const urlPath=useMemo(()=>{return stripLocaleSlugFromPath(url,localeSlug);},[url,localeSlug]);const handleMouseMove=useCallbackOnMouseMove(event=>onMouseMove(event,index),prevMousePositionRef);const isContained=type===\"contained\";const borderRadius=isContained?clamp(0,Infinity,theme.borderRadius-theme.spacing):0;const subtitleText=subtitleType===\"path\"?urlPath:clampText(result.description,MAX_DESCRIPTION_LENGTH);const handleClick=event=>{event.preventDefault();onNavigateTo(result.url);};const focusTrap=event=>{event.preventDefault();};return /*#__PURE__*/_jsx(\"a\",{ref:ref,style:{textDecoration:\"none\"},href:result.url,onClick:handleClick,onMouseMove:handleMouseMove,onMouseDown:focusTrap,onPointerDown:event=>onPointerDown(event,index),children:/*#__PURE__*/_jsxs(\"li\",{style:{...resultContainer,...style,paddingTop:isContained?12:16,paddingBottom:isContained?12:16,color:theme.foregroundColor,position:\"relative\",paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing},children:[/*#__PURE__*/_jsx(\"div\",{style:{backgroundColor:theme.foregroundColor,position:\"absolute\",opacity:selected?.06:0,borderRadius,left:theme&&isContained?theme.spacing:0,right:theme&&isContained?theme.spacing:0,top:0,bottom:0}}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",gap:4},children:[/*#__PURE__*/_jsx(\"h3\",{style:{...resultTitle,...theme.titleFont,lineHeight:\"1.4em\"},children:title}),/*#__PURE__*/_jsxs(\"p\",{style:{margin:0,color:theme.subtitleColor,...theme.subtitleFont,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",lineHeight:\"1.4em\"},children:[localStorageDebugFlag?score:\"\",\" \",subtitleText]})]})]},result.url)});}));/**\n * Flexible gap used inside a flexbox layout to push down the quick menu\n * by 20% of the screen height, but also allow it to collapse to zero if\n * there is not enough vertical room.\n */function QuickMenuSpacer({onClick}){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",flexBasis:\"20vh\"},onClick:onClick});}const layoutContainerStyle={display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"flex-start\",gap:15,overflow:\"visible\"};function LayoutContainer({layoutType,theme,onKeyDown,onDismiss,children,modalOptions}){const layoutStyles=getLayoutBaseStyles(layoutType,theme);const style={...layoutContainerStyle,...layoutStyles,willChange:\"transform\",marginTop:layoutType===\"FixedTop\"?theme.offsetTop:0,height:layoutType===\"Sidebar\"?\"100%\":\"auto\",maxHeight:layoutType===\"QuickMenu\"?\"100%\":\"none\",justifyContent:layoutType===\"Sidebar\"?\"flex-end\":\"flex-start\",flexDirection:layoutType===\"Sidebar\"?\"column-reverse\":\"column\"};const innerStyle={...layoutContainerStyle,...layoutStyles,height:layoutType===\"Sidebar\"?\"100%\":\"auto\",maxHeight:layoutType===\"QuickMenu\"?\"100%\":\"none\",gap:layoutType===\"Sidebar\"?0:theme.gapBetweenStatusAndSearch,backgroundColor:layoutType===\"Sidebar\"?theme.backgroundColor:\"transparent\",justifyContent:layoutType===\"Sidebar\"?\"flex-end\":\"flex-start\",flexDirection:layoutType===\"Sidebar\"?\"column-reverse\":\"column\",originX:.5,originY:.5};function getContainerAnimation(){switch(layoutType){case\"FixedTop\":{const key=animationKeyFromLayout(\"FixedTop\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{y:-10,opacity:.2,transition:{duration:Browser.isTouch()?0:.15}};}break;}case\"QuickMenu\":{const key=animationKeyFromLayout(\"QuickMenu\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{scale:.95,opacity:0,y:0,x:0,rotate:0,transition:{type:\"spring\",stiffness:600,damping:40}};}break;}case\"Sidebar\":{const key=animationKeyFromLayout(\"Sidebar\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{x:-10,opacity:0,transition:{duration:.15}};}break;}}}const containerAnimation=getContainerAnimation();return /*#__PURE__*/_jsxs(\"div\",{style:style,onKeyDown:onKeyDown,onClick:event=>event.stopPropagation(),children:[layoutType===\"QuickMenu\"&&/*#__PURE__*/_jsx(QuickMenuSpacer,{onClick:onDismiss}),/*#__PURE__*/_jsx(motion.div,{initial:containerAnimation,animate:{opacity:1,scale:1,x:0,y:0,rotate:0},transition:containerAnimation?containerAnimation.transition:undefined,exit:{opacity:0,transition:{duration:0}},style:innerStyle,children:children})]});}function ModalContainer({layoutType,theme,children,heightIsStatic,heightTransition,heightDeps}){const style={// This `willChange` is required to avoid weird rendering issues where\n// parts of the search window won't redraw, which we observed in Safari 16.4.\nwillChange:\"transform\",backgroundColor:theme.backgroundColor,color:theme.foregroundColor,borderRadius:layoutType===\"QuickMenu\"?theme.borderRadius:0,width:\"100%\",display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",boxShadow:layoutType!==\"Sidebar\"?theme.shadow:undefined,maxHeight:layoutType===\"QuickMenu\"?`min(${MODAL_MAX_HEIGHT}px, calc(100vh - 30px))`:undefined};// Opt-in Height Animations for the Search Quick Actions menu.\n// These are disabled by default, but can be enabled via props.\nconst[scope,animate]=useAnimate();useLayoutEffect(()=>{if(layoutType!==\"QuickMenu\"||heightIsStatic)return;const prevHeight=scope.current.offsetHeight;scope.current.style.height=\"auto\";const height=scope.current.offsetHeight;scope.current.style.height=prevHeight+\"px\";animate(scope.current,{height:[prevHeight,height]},heightTransition);},heightDeps);return /*#__PURE__*/_jsx(\"div\",{ref:scope,role:\"dialog\",className:layoutType===\"FixedTop\"?\"__framer-max-height-80dvh\":undefined,style:style,children:children});}const ScrollView=/*#__PURE__*/React.forwardRef(function ScrollView({theme,children},ref){const isTouch=Browser.isTouch();const[canScroll,setCanScroll]=React.useState(true);React.useEffect(()=>{if(!isTouch)return;const element=ref.current;if(!element)return;setCanScroll(element.scrollHeight>element.clientHeight);});return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{width:`calc(100% + ${theme.scrollBarWidth}px)`,overflowY:\"scroll\",overflowX:\"hidden\",overscrollBehavior:\"contain\",touchAction:canScroll?undefined:\"none\",// Make the list appear slightly under the divider\n// so that the divider is still visible when the first\n// item is selected.\nmarginTop:-1},children:children});});const statusStyle={backgroundColor:\"#B5B5B5\",color:\"#FFF\",boxShadow:\"0px 20px 40px 0px rgba(0, 0, 0, 0.25)\",fontFamily:\"inherit\",textAlign:\"center\",fontSize:13,padding:\"8px 0\"};function StatusMessage({status,layoutType,theme}){const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);const style={...statusStyle,userSelect:\"none\",fontFamily:getFontFamily(theme),paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,fontWeight:500,lineHeight:`calc(${theme.inputFontSize} * 2)`,paddingTop:verticalSpacing,paddingBottom:verticalSpacing,...theme.titleFont,zIndex:theme.zIndex+1,maxWidth:layoutType===\"FixedTop\"?\"none\":theme.width,width:layoutType===\"FixedTop\"?`calc(100% - ${verticalSpacing*2}px`:\"100%\",boxShadow:layoutType!==\"Sidebar\"&&statusStyle.boxShadow,borderRadius:layoutType!==\"Sidebar\"&&theme.borderRadius};// Show less text on fixed text to look nicer on mobile\nconst previewInfoText=layoutType===\"FixedTop\"?\"Preview Mode\":\"Preview Mode. Publish your Site to Search.\";if(status===\"no-meta-tag-found\"){return /*#__PURE__*/_jsx(\"div\",{style:style,children:previewInfoText});}if(status===\"pending-index-generation\"){return /*#__PURE__*/_jsx(\"div\",{style:style,children:\"Site is being indexed\"});}return null;}const resultTitle={textOverflow:\"ellipsis\",maxWidth:\"100%\",overflow:\"hidden\",fontWeight:500,whiteSpace:\"nowrap\",flex:1,margin:0};const resultContainer={padding:\"16px 20px\",listStyle:\"none\",fontWeight:500};const sidebarStyles={left:0,width:500};const fixedTopStyles={top:0,width:\"100%\"};const quickMenuStyles={width:500};function getLayoutBaseStyles(layoutOption,theme){switch(layoutOption){case\"Sidebar\":return{...sidebarStyles,width:theme.width};case\"FixedTop\":return fixedTopStyles;case\"QuickMenu\":return{...quickMenuStyles,width:theme.width};}}export var SearchInputClearButtonType;(function(SearchInputClearButtonType){SearchInputClearButtonType[\"Icon\"]=\"icon\";SearchInputClearButtonType[\"Text\"]=\"text\";SearchInputClearButtonType[\"None\"]=\"none\";})(SearchInputClearButtonType||(SearchInputClearButtonType={}));export var SearchInputDividerType;(function(SearchInputDividerType){SearchInputDividerType[\"None\"]=\"none\";SearchInputDividerType[\"FullWidth\"]=\"fullWidth\";SearchInputDividerType[\"Contained\"]=\"contained\";})(SearchInputDividerType||(SearchInputDividerType={}));export var SearchResultTitleType;(function(SearchResultTitleType){SearchResultTitleType[\"H1\"]=\"h1\";SearchResultTitleType[\"Title\"]=\"title\";})(SearchResultTitleType||(SearchResultTitleType={}));export var SearchResultSubtitleType;(function(SearchResultSubtitleType){SearchResultSubtitleType[\"Description\"]=\"description\";SearchResultSubtitleType[\"Path\"]=\"path\";})(SearchResultSubtitleType||(SearchResultSubtitleType={}));export var SearchResultItemType;(function(SearchResultItemType){SearchResultItemType[\"FullWidth\"]=\"fullWidth\";SearchResultItemType[\"Contained\"]=\"contained\";})(SearchResultItemType||(SearchResultItemType={}));export var SearchLayoutType;(function(SearchLayoutType){SearchLayoutType[\"Sidebar\"]=\"Sidebar\";SearchLayoutType[\"FixedTop\"]=\"FixedTop\";SearchLayoutType[\"QuickMenu\"]=\"QuickMenu\";})(SearchLayoutType||(SearchLayoutType={}));export var SearchEntryType;(function(SearchEntryType){SearchEntryType[\"Icon\"]=\"icon\";SearchEntryType[\"Text\"]=\"text\";})(SearchEntryType||(SearchEntryType={}));export var SearchIconType;(function(SearchIconType){SearchIconType[\"Default\"]=\"default\";SearchIconType[\"Custom\"]=\"custom\";})(SearchIconType||(SearchIconType={}));/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export function SearchModal(props){const{layoutType,theme,urlScope,inputOptions,backdropOptions,modalOptions,resultOptions,onDismiss}=props;const{activeLocale}=useLocaleInfo();const localeId=activeLocale?.id;const localeSlug=activeLocale?.slug;const input=useRef();const selectedResultRow=useRef();const scrollView=useRef();const[selected,setSelected]=useState({index:0,scroll:true});const prevMousePositionRef=useRef(null);const[isKeyboardNavigationDisabled,setIsKeyboardNavigationDisabled]=useState(Browser.isTouch);const[query,setQuery]=useState(\"\");const deferredQuery=useDeferredValue(query);const{results,status}=useSearch(deferredQuery,{minimumScore:0,urlScope,titleType:resultOptions.titleType});const selectedResult=results[selected.index];const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);useEffect(()=>{// Reset the selection to the top if the query changes.\nsetSelected({index:0,scroll:true});},[deferredQuery]);const handleResultRowPointerDown=useCallback((event,index)=>{if(event.pointerType!==\"touch\")return;setIsKeyboardNavigationDisabled(true);setSelected({index,scroll:false});},[]);const handleResultRowMouseMove=useCallback((event,index)=>{setSelected(previousSelected=>{if(previousSelected.index===index){return previousSelected;}return{index,scroll:false};});},[]);const router=useRouter();const navigateTo=useCallback(async url=>{if(status===\"no-meta-tag-found\"){return;}try{// Ideally, we would directly expose `routeId` in the search index so that\n// we don't need to infer it from the URL.\nconst{routeId,pathVariables}=inferInitialRouteFromPath(router.routes,url);const route=router.getRoute?.(routeId);onDismiss();await route?.page?.preload?.();router.navigate?.(routeId,null,pathVariables,false);}catch(error){window.location.href=url;}},[status]);const handleKeyDown=event=>{const maxIndex=results.length-1;switch(event.code){case\"ArrowUp\":event.preventDefault();if(isKeyboardNavigationDisabled){setIsKeyboardNavigationDisabled(false);break;}setSelected(previousSelected=>({index:clamp(0,maxIndex,previousSelected.index-1),scroll:true}));break;case\"ArrowDown\":event.preventDefault();if(isKeyboardNavigationDisabled){setIsKeyboardNavigationDisabled(false);break;}setSelected(previousSelected=>({index:clamp(0,maxIndex,previousSelected.index+1),scroll:true}));break;case\"Escape\":break;case\"Enter\":if(selectedResult){navigateTo(selectedResult.url);}break;default:event.stopPropagation();}};const showNoResults=results.length===0&&deferredQuery.length>1&&status!==\"loading\";const showDivider=Boolean((deferredQuery.length>0&&results.length>0||showNoResults)&&status!==\"loading\"&&props.inputOptions&&props.inputOptions.dividerType!==\"none\");const isItemContained=Boolean(props.resultOptions&&props.resultOptions.itemType===\"contained\");const spacing=isItemContained?theme.spacing:10;const listPaddingTop=showDivider&&isItemContained?spacing+theme.gapBetweenResults*2:0;useEffect(()=>{if(!selected.scroll)return;const element=selectedResultRow.current;if(!element)return;scrollIntoView(element,scrollView.current,{offsetTop:showDivider&&isItemContained?listPaddingTop:0,offsetBottom:isItemContained?spacing:0});// `showDivider` and `isItemContained` are not dependencies because\n// they will be the latest values when `selected` changes. And including\n// them will cause unnecessary scrolling into view.\n},[selected]);return /*#__PURE__*/_jsxs(LayoutContainer,{layoutType:layoutType,modalOptions:modalOptions,theme:theme,onKeyDown:handleKeyDown,onDismiss:onDismiss,children:[/*#__PURE__*/_jsxs(ModalContainer,{layoutType:layoutType,theme:theme,heightIsStatic:modalOptions.heightIsStatic,heightTransition:modalOptions.heightTransition,heightDeps:[results.length,showNoResults],children:[/*#__PURE__*/_jsx(Input,{autofocus:true,ref:input,onChange:setQuery,value:query,theme:theme,status:status,iconType:inputOptions.iconOptions.iconType,placeholder:inputOptions.placeholderOptions.placeholderText,clearButtonType:inputOptions?inputOptions.clearButtonType:undefined,clearButtonText:inputOptions.clearButtonText}),showDivider&&/*#__PURE__*/_jsx(Divider,{theme:theme,type:inputOptions.dividerType}),/*#__PURE__*/_jsx(ScrollView,{ref:scrollView,theme:theme,children:/*#__PURE__*/_jsxs(\"ul\",{\"aria-live\":\"polite\",style:{display:\"flex\",flexDirection:\"column\",width:`calc(100% - ${theme.scrollBarWidth}px)`,padding:0,paddingTop:listPaddingTop,paddingBottom:results.length&&isItemContained?spacing:0,gap:theme.gapBetweenResults,margin:0},children:[results.map((result,index)=>{const isSelected=index===selected.index;return /*#__PURE__*/_jsx(ResultRow,{ref:isSelected?selectedResultRow:null,index:index,result:result,prevMousePositionRef:prevMousePositionRef,selected:!isKeyboardNavigationDisabled&&isSelected,type:props.resultOptions.itemType,subtitleType:props.resultOptions.subtitleOptions.subtitleType,theme:theme,localeSlug:localeSlug,onMouseMove:handleResultRowMouseMove,onPointerDown:handleResultRowPointerDown,onNavigateTo:navigateTo},result.url);}),showNoResults&&/*#__PURE__*/_jsx(\"li\",{style:{paddingTop:verticalSpacing-listPaddingTop,paddingBottom:verticalSpacing,lineHeight:\"2em\",paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,height:\"Sidebar\"?\"100%\":\"auto\"},children:/*#__PURE__*/_jsx(\"h3\",{style:{...resultTitle,textAlign:\"center\",lineHeight:`calc(${theme.inputFontSize} * 2)`,color:theme.subtitleColor,...theme.titleFont},children:\"No results\"})})]})})]}),/*#__PURE__*/_jsx(StatusMessage,{status:status,layoutType:layoutType,theme:theme})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"ResultRow\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultTitleType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultItemType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchLayoutType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchInputDividerType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchTheme\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultSubtitleType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchModal\":{\"type\":\"reactComponent\",\"name\":\"SearchModal\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"SearchIconType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Input\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchEntryType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchInputClearButtonType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-ignore\nimport{useLocaleInfo}from\"framer\";import{clamp}from\"framer-motion\";import{useEffect,useState,useTransition}from\"react\";import{SearchResultTitleType}from\"https://framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/bsLTiXYjkHoD2XaMjabu/SearchModal.js\";import{getCachedIndex,isDefaultLocaleId,setCachedIndex}from\"https://framerusercontent.com/modules/uU1mtMKXsrVAg8N5hW7w/v7gDLwKJgQ5vAsFHxY4H/cachedIndex.js\";import{fakeResults}from\"https://framerusercontent.com/modules/K9JZRwJcE6slDAf8rUmh/mJ54py1Ecnn1RoC4N1m4/fakeResults.js\";import{distance}from\"https://framerusercontent.com/modules/TwRgbWuhHeB95MPifel4/YW8Hlm59FG3PajbrVsaR/fuzzySearch.js\";import{createLogger,localStorageDebugFlag,safeDocument,safeWindow,stripLocaleSlugFromPath,yieldToMain}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";const{log,time,timeEnd}=createLogger(localStorageDebugFlag);const splitWordsRegex=(()=>{try{// Regex lookbehind is used to ignore ampersands when splitting\n// words. For example \"H&M\" will not be split and is considered as\n// one word, but \"H & M\" will be split.\n// However, some browsers (like Safari iOS 15) don't support\n// lookbehind and will crash. When it's not supported, fallback to\n// a safer regex that always splits ampersands.\nconst regex=RegExp(\"[\\\\s.,;!?\\\\p{P}\\\\p{Z}]+(?<!\\\\p{L}&)(?!&\\\\p{L})\",\"u\");\"\".split(regex);return regex;}catch{log(\"Falling back to regex without lookbehind\");return RegExp(\"[\\\\s.,;!?\\\\p{P}\\\\p{Z}]+\",\"u\");}})();function splitWords(text){return text.split(splitWordsRegex);}function getUniqueWords(str){const words=splitWords(str).filter(word=>word.trim()&&word.length>0);return new Set(words);}const normalizeRegex=/[\\u0300-\\u036f]/g;/**\n * Replace accented characters with equivilant non-accented versions and\n * make everything lowercase.\n */function getNormalizedString(text){if(Array.isArray(text)){return text.map(getNormalizedString);}return text.normalize(\"NFD\")// From: https://stackoverflow.com/a/37511463\n.replace(normalizeRegex,\"\").toLowerCase();}const normalizedItemCache=new WeakMap;function getNormalizedItemFromCache(item){const cached=normalizedItemCache.get(item);if(cached)return cached;const normalizedItem=getNormalizedItem(item);normalizedItemCache.set(item,normalizedItem);return normalizedItem;}function getNormalizedItem(item){const normalizedItem={};for(const key in item){if(item.hasOwnProperty(key)){const value=item[key];if(typeof value===\"string\"){normalizedItem[key]=getNormalizedString(value);continue;}if(Array.isArray(value)){normalizedItem[key]=getNormalizedString(value);continue;}normalizedItem[key]=value;}}return normalizedItem;}function getMatchRange(currentRange,start,end){const result={...currentRange};if(start<result.start){result.start=start;}if(end>result.end){result.end=end;}return result;}/**\n * Score index item based on the contents of it's fields such as title, description, headings etc.\n *\n * Note that this does not normalize the item or query. Normalization is expected to happen\n * before passing the data into this.\n */function getScoreForSearchIndexItem(item,query,words,fullQuery){let score=0;const match={title:{start:Infinity,end:0},description:{start:Infinity,end:0}};const urlWords=getUniqueWords(item.url);// Match query based on words in the URL so that random strings inside\n// other strings are not matched.\nif(urlWords.has(query)){score+=10;}// Really boost single word queries that match single word URLs.\nif(words.size===1&&urlWords.size===1&&urlWords.values().next().value===query){score+=score*5;}// Score shorter URLs higher so `/pricing` is before `/lala/pricing`.\nif(score>0){const splitLength=item.url.split(\"/\").length;score+=clamp(10-splitLength,0,splitLength);}const titleWords=getUniqueWords(item.title);// Prefer full word matches in the title.\nif(titleWords.has(query)){score+=10;}const titleIndex=item.title.indexOf(query);if(titleIndex!==-1){score+=10;// TODO: Matches are currently not used, but they can be used in the\n// future to add text highlighting.\nmatch.title=getMatchRange(match.title,titleIndex,titleIndex+query.length);}// If the full query is close to being the heading, score this highly as\n// the user is most likely looking for that exact title.\nif(distance(item.title,fullQuery)<=2){score+=score*10;}// Fuzzy match full words in the title.\nfor(const titleWord of titleWords){const distanceScore=distance(query,titleWord);// Small distance score helps with small typos.\nif(distanceScore<=2){score+=10;}}const headings=[...item.h1,...item.h2,...item.h3,...item.h4,...item.h5,...item.h6];for(const heading of headings){const headingWords=getUniqueWords(heading);// If the full query is close to being the heading, score this highly as\n// the user is most likely looking for that exact title.\nif(distance(heading,fullQuery)<=2){score+=score*10;}// Bias headings that start with the query as this helps when\n// you know the title you are searching for.\nif(heading.startsWith(query)){score+=10;}if(headingWords.has(query)){score+=10;}if(heading.includes(query)){score+=1;}// Fuzzy match full words in headings.\nfor(const headingWord of headingWords){const distanceScore=distance(query,headingWord);if(distanceScore<=2){score+=1;}}}const descriptionIndex=item.description.indexOf(query);if(descriptionIndex!==-1){score+=10;match.description=getMatchRange(match.description,descriptionIndex,descriptionIndex+query.length);}for(const p of item.p){if(p.includes(query)){score+=.5;}}for(const codeblock of item.codeblock){// If the full query is close to being the codeblock, score this highly as\n// the user is most likely looking for that exact code.\nif(distance(codeblock,fullQuery)<=2){score*=10;}if(codeblock.includes(fullQuery)){score+=10;}if(codeblock.includes(query)){score+=.5;}}return{score,match};}function getSearchIndexItemScore(item,normalizedQuery){const normalizedItem=getNormalizedItemFromCache(item);const queryWords=getUniqueWords(normalizedQuery);let total=0;for(const queryWord of queryWords){const{score}=getScoreForSearchIndexItem(normalizedItem,queryWord,queryWords,normalizedQuery);total+=score;}return total;}function useRawSearch(index,query,settings){const[results,setResults]=useState(null);const[,startTransition]=useTransition();useEffect(()=>{const abortController=new AbortController;executeRawSearch(index,query,settings,abortController.signal).then(res=>{if(!abortController.signal.aborted){startTransition(()=>{setResults(res);});}}).catch(err=>{if(err.name!==\"AbortError\"){console.error(\"Search failed:\",err);}});return()=>{abortController.abort();};},[index,query]);return{results:results??[]};}const QUANTUM=32// ms, 2*16ms (2 frames on 60 hz)\n;async function executeRawSearch(index,query,settings,signal){const path=safeWindow?.location.pathname;time(\"query\");const normalizedQuery=getNormalizedString(query);const results=[];const items=Object.values(index);let deadline=performance.now()+QUANTUM;async function yieldToMainIfNecessary(){if(performance.now()>=deadline){await yieldToMain();deadline=performance.now()+QUANTUM;}}for(let i=0;i<items.length;++i){if(performance.now()>=deadline){await yieldToMainIfNecessary();deadline=performance.now()+QUANTUM;}if(signal?.aborted)return[];const item=items[i];const score=getSearchIndexItemScore(item,normalizedQuery);if(score>(settings.minimumScore||0)&&(!path||item.url!==path)){const heading=item.h1.length&&item.h1[0];const title=settings?.titleType===SearchResultTitleType.Title?item.title:heading?heading:item.title;// Convert index item to result item.\nresults.push({url:item.url,title,description:item.description,body:[...item.p,item.codeblock].join(\" \"),score});}}await yieldToMainIfNecessary();if(signal?.aborted)return[];const sorted=results.sort((itemA,itemB)=>itemB.score-itemA.score);timeEnd(\"query\");await yieldToMainIfNecessary();if(signal?.aborted)return[];return results.slice(0,20);}function getIndexedScopedToUrl(index,rawUrlScope,localeSlug){const scopedIndex={};const baseScopeUrlHasVariable=rawUrlScope.includes(\":\");const urlUpToPathVariable=rawUrlScope.split(\":\")[0];const urlScope=urlUpToPathVariable.length>1?urlUpToPathVariable:\"\";for(const url in index){const strippedURL=stripLocaleSlugFromPath(url,localeSlug);if(!strippedURL.startsWith(urlScope)){continue;}if(baseScopeUrlHasVariable&&url.length<=urlScope.length){continue;}scopedIndex[url]=index[url];}return scopedIndex;}export function useSearch(query,settings){const[searchIndex,_setSearchIndex]=useState({});const[status,setStatus]=useState(\"loading\");const{results}=useRawSearch(searchIndex,query,settings);const{activeLocale}=useLocaleInfo();const localeId=activeLocale?.id;// Seperate setter function so that the URL scope is always applied\n// to indexes loaded from either the cache or network.\nfunction setSearchIndex(index,options={ignoreScope:false}){let scopedIndex=index;if(settings.urlScope&&!options.ignoreScope){scopedIndex=getIndexedScopedToUrl(index,settings.urlScope,activeLocale?.slug);log(\"Using URL scope\",settings.urlScope);}_setSearchIndex(scopedIndex);}useEffect(()=>{async function loadSearchIndex(){setStatus(\"loading\");const baseUrl=getBaseUrl(\"framer-search-index\");if(!baseUrl){setStatus(\"no-meta-tag-found\");setSearchIndex(fakeResults,{ignoreScope:true});log(\"No meta tag found\");return;}const cacheResult=await getCachedIndex(localeId,baseUrl);if(cacheResult.status===\"fresh\"){setSearchIndex(cacheResult.searchIndex);setStatus(\"success\");log(\"Using fresh cached index\");return;}if(cacheResult.status===\"stale\"){setSearchIndex(cacheResult.searchIndex);setStatus(\"loading-with-cache\");log(\"Using stale cached index while loading a fresh one\");}const searchIndexUrl=getSearchIndexUrl(baseUrl,localeId);const response=await fetch(searchIndexUrl);if(response.ok){const downloadedIndex=await response.json();setSearchIndex(downloadedIndex);setCachedIndex(localeId,downloadedIndex,baseUrl);setStatus(\"success\");log(\"Using downloaded index\");return;}// Our \"sites\" CDN currently returns 403s for missing files.\nconst isNotFound=response.status===403||response.status===404;if(!isNotFound){throw new Error(response.statusText);}// Index is likely still being generated.\nlog(\"Index not found\");const fallbackBaseUrl=getBaseUrl(\"framer-search-index-fallback\");if(!fallbackBaseUrl){if(cacheResult.status===\"miss\"){setStatus(\"pending-index-generation\");log(\"No fallback, no cache\");}else{setStatus(\"success\");log(\"No fallback, using cache\");}return;}// If we're here, cache is missing or stale. If it's stale but it's our fallback index, we can use it.\nif(cacheResult.status===\"stale\"&&cacheResult.indexHash===fallbackBaseUrl){setStatus(\"success\");log(\"Using cached fallback index\");return;}const fallbackSearchIndexUrl=getSearchIndexUrl(fallbackBaseUrl,localeId);const fallbackResponse=await fetch(fallbackSearchIndexUrl);if(fallbackResponse.ok){const downloadedIndex=await fallbackResponse.json();setSearchIndex(downloadedIndex);setCachedIndex(localeId,downloadedIndex,fallbackBaseUrl);setStatus(\"success\");log(\"Using downloaded fallback index\");return;}if(cacheResult.status===\"miss\"){setStatus(\"pending-index-generation\");log(\"Fallback failed, no cache\");}else{setStatus(\"success\");log(\"Fallback failed, using cache\");}}loadSearchIndex().catch(error=>{// TODO: Check for error type here. If it's a network error,\n// we could do a few retries.\nsetStatus(\"error\");log(\"Failed to load search index\",error);});},[localeId]);log({status,results});return{results,status};}function getBaseUrl(name){return safeDocument?.querySelector(`meta[name=\"${name}\"]`)?.getAttribute(\"content\");}function getSearchIndexUrl(baseURL,localeId){if(isDefaultLocaleId(localeId))return baseURL;return baseURL.replace(\".json\",`-${localeId}.json`);}\nexport const __FramerMetadata__ = {\"exports\":{\"SearchIndex\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useSearch\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useSearch.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useSearch}from\"https://framerusercontent.com/modules/MyBp84Z0p9nUcMimVMnY/fpvHBWGoGQcWezUopJLS/useSearch.js\";import React,{useEffect,useState,useMemo,forwardRef,useRef,useDeferredValue,useLayoutEffect,useCallback,useImperativeHandle}from\"react\";import{Browser}from\"https://framerusercontent.com/modules/PJVBcBLmDteTEAZh3J9Z/keXJyjyE9VnzUcDMayjg/browser.js\";import{motion,clamp,useAnimate}from\"framer-motion\";import{SearchIcon,ClearIcon,SpinnerIcon}from\"https://framerusercontent.com/modules/LV9trClbmNwd5PVj9l8y/L4rFqMGNzGSwRZpGTGF3/Icons.js\";import{clampText,getFontFamily,localStorageDebugFlag,animationKeyFromLayout,stripLocaleSlugFromPath}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";import{useCallbackOnMouseMove}from\"https://framerusercontent.com/modules/Gzef0nFihI9m9vZG45th/lIUxbZcreiDm2GzUkt3y/useCallbackOnMouseMove.js\";import{scrollIntoView}from\"https://framerusercontent.com/modules/eAnjm75CdfYT1Zz4BIaz/7KDSfnnyD1T3Ap75L4m8/scrollIntoView.js\";import{useLocaleInfo,// @ts-expect-error Internal API\nuseRouter,// @ts-expect-error Internal API\ninferInitialRouteFromPath}from\"framer\";const MAX_DESCRIPTION_LENGTH=120;const MODAL_MAX_HEIGHT=496;const VERTICAL_SPACING_MULTIPLIER=.6;function ClearButton({theme,type,onClick,text}){const shouldDisplayIcon=type===\"icon\";const iconOrText=shouldDisplayIcon?/*#__PURE__*/_jsx(ClearIcon,{style:{color:theme.inputIconColor,width:theme.inputIconSize,height:theme.inputIconSize}}):text;return /*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,fontSize:theme&&theme.titleFont&&theme.titleFont.fontSize?theme.titleFont.fontSize:15},children:/*#__PURE__*/_jsx(\"button\",{className:\"__framer-search-clear-button\",onClick:onClick,style:{fontFamily:\"inherit\",border:\"none\",background:\"none\",cursor:\"pointer\",display:\"flex\",textTransform:\"uppercase\",color:theme.inputIconColor,fontSize:\"0.75em\",padding:0},children:iconOrText})});}function Divider({theme,type}){const styles={background:theme.foregroundColor,height:1,flexShrink:0,opacity:.05};if(type===\"contained\"&&theme){styles.marginLeft=theme.horizontalSpacing;styles.marginRight=theme.horizontalSpacing;}return /*#__PURE__*/_jsx(\"div\",{style:styles});}export const Input=/*#__PURE__*/forwardRef(function Input(props,ref){const{value=\"\",status,autofocus,theme,placeholder,iconType,clearButtonType,onChange}=props;const[inputValue,setInputValue]=useState(value);const[isFocused,setIsFocused]=useState(false);const inputRef=useRef();useImperativeHandle(ref,()=>inputRef.current);React.useLayoutEffect(()=>{// Runs on unmount, fixes a bug in Safari that scrolls to the bottom\n// of the page when the input unmounts.\nreturn()=>{const inputElement=inputRef.current;if(!inputElement||inputElement!==document.activeElement)return;inputElement.blur();};},[]);const handleInputClick=()=>{if(inputRef.current){inputRef.current.focus();}};const handleClearClick=()=>{setInputValue(\"\");};useEffect(()=>{onChange(inputValue);},[inputValue]);const hasInputText=inputValue.length>0;const showClearButton=inputValue.length>0&&clearButtonType&&clearButtonType!==\"none\";const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);const searchIcon=iconType===\"custom\"&&theme.inputIconImage?/*#__PURE__*/_jsx(\"img\",{alt:\"icon alongside the Site Search input\",src:theme.inputIconImage.src,width:theme.inputIconSize,height:theme.inputIconSize,decoding:\"async\"}):/*#__PURE__*/_jsx(SearchIcon,{color:theme.inputIconColor,width:theme.inputIconSize,height:theme.inputIconSize});return /*#__PURE__*/_jsxs(\"div\",{role:\"search\",style:{...inputContainerStyle,fontFamily:getFontFamily(theme),paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,gap:12,paddingTop:verticalSpacing,paddingBottom:verticalSpacing,touchAction:\"none\"},onClick:handleInputClick,children:[/*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,display:\"flex\"},children:status===\"loading\"&&inputValue?/*#__PURE__*/_jsx(SpinnerIcon,{color:theme.inputIconColor,backgroundColor:theme.backgroundColor,style:{height:theme&&theme.inputIconSize,width:theme&&theme.inputIconSize}}):searchIcon}),/*#__PURE__*/_jsx(\"input\",{ref:inputRef,spellCheck:false,autoFocus:autofocus,style:{...inputStyle,WebkitTapHighlightColor:\"rgba(0,0,0,0)\",color:theme.foregroundColor,lineHeight:\"2em\",verticalAlign:\"baseline\",...theme.titleFont,...theme.inputFont,fontSize:theme.inputFontSize,// @ts-ignore\n\"--framer-search-placeholder-color\":theme.placeholderColor},onFocus:()=>{const scrollOffset=document.documentElement.scrollTop;document.documentElement.scrollTop=scrollOffset;},placeholder:placeholder,value:inputValue,onChange:()=>setInputValue(inputRef.current.value)}),showClearButton&&/*#__PURE__*/_jsx(ClearButton,{theme:theme,type:props.clearButtonType,text:props.clearButtonText,onClick:handleClearClick})]});});const inputContainerStyle={display:\"inline-flex\",alignItems:\"center\",flexShrink:0};const inputStyle={outline:\"none\",border:\"none\",background:\"transparent\",fontWeight:500,height:\"2em\",padding:0,width:\"100%\"};export const ResultRow=/*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function ResultRow(props,ref){const{index,result,prevMousePositionRef,type=\"contained\",subtitleType=\"path\",selected=false,theme,localeSlug,style,onMouseMove,onPointerDown,onNavigateTo}=props;const{url,title,score}=result;const urlPath=useMemo(()=>{return stripLocaleSlugFromPath(url,localeSlug);},[url,localeSlug]);const handleMouseMove=useCallbackOnMouseMove(event=>onMouseMove(event,index),prevMousePositionRef);const isContained=type===\"contained\";const borderRadius=isContained?clamp(0,Infinity,theme.borderRadius-theme.spacing):0;const subtitleText=subtitleType===\"path\"?urlPath:clampText(result.description,MAX_DESCRIPTION_LENGTH);const handleClick=event=>{event.preventDefault();onNavigateTo(result.url);};const focusTrap=event=>{event.preventDefault();};return /*#__PURE__*/_jsx(\"a\",{ref:ref,style:{textDecoration:\"none\"},href:result.url,onClick:handleClick,onMouseMove:handleMouseMove,onMouseDown:focusTrap,onPointerDown:event=>onPointerDown(event,index),children:/*#__PURE__*/_jsxs(\"li\",{style:{...resultContainer,...style,paddingTop:isContained?12:16,paddingBottom:isContained?12:16,color:theme.foregroundColor,position:\"relative\",paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing},children:[/*#__PURE__*/_jsx(\"div\",{style:{backgroundColor:theme.foregroundColor,position:\"absolute\",opacity:selected?.06:0,borderRadius,left:theme&&isContained?theme.spacing:0,right:theme&&isContained?theme.spacing:0,top:0,bottom:0}}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",gap:4},children:[/*#__PURE__*/_jsx(\"h3\",{style:{...resultTitle,...theme.titleFont,lineHeight:\"1.4em\"},children:title}),/*#__PURE__*/_jsxs(\"p\",{style:{margin:0,color:theme.subtitleColor,...theme.subtitleFont,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",lineHeight:\"1.4em\"},children:[localStorageDebugFlag?score:\"\",\" \",subtitleText]})]})]},result.url)});}));/**\n * Flexible gap used inside a flexbox layout to push down the quick menu\n * by 20% of the screen height, but also allow it to collapse to zero if\n * there is not enough vertical room.\n */function QuickMenuSpacer({onClick}){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",flexBasis:\"20vh\"},onClick:onClick});}const layoutContainerStyle={display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"flex-start\",gap:15,overflow:\"visible\"};function LayoutContainer({layoutType,theme,onKeyDown,onDismiss,children,modalOptions}){const layoutStyles=getLayoutBaseStyles(layoutType,theme);const style={...layoutContainerStyle,...layoutStyles,willChange:\"transform\",marginTop:layoutType===\"FixedTop\"?theme.offsetTop:0,height:layoutType===\"Sidebar\"?\"100%\":\"auto\",maxHeight:layoutType===\"QuickMenu\"?\"100%\":\"none\",justifyContent:layoutType===\"Sidebar\"?\"flex-end\":\"flex-start\",flexDirection:layoutType===\"Sidebar\"?\"column-reverse\":\"column\"};const innerStyle={...layoutContainerStyle,...layoutStyles,height:layoutType===\"Sidebar\"?\"100%\":\"auto\",maxHeight:layoutType===\"QuickMenu\"?\"100%\":\"none\",gap:layoutType===\"Sidebar\"?0:theme.gapBetweenStatusAndSearch,backgroundColor:layoutType===\"Sidebar\"?theme.backgroundColor:\"transparent\",justifyContent:layoutType===\"Sidebar\"?\"flex-end\":\"flex-start\",flexDirection:layoutType===\"Sidebar\"?\"column-reverse\":\"column\",originX:.5,originY:.5};function getContainerAnimation(){switch(layoutType){case\"FixedTop\":{const key=animationKeyFromLayout(\"FixedTop\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{y:-10,opacity:.2,transition:{duration:Browser.isTouch()?0:.15}};}break;}case\"QuickMenu\":{const key=animationKeyFromLayout(\"QuickMenu\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{scale:.95,opacity:0,y:0,x:0,rotate:0,transition:{type:\"spring\",stiffness:600,damping:40}};}break;}case\"Sidebar\":{const key=animationKeyFromLayout(\"Sidebar\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{x:-10,opacity:0,transition:{duration:.15}};}break;}}}const containerAnimation=getContainerAnimation();return /*#__PURE__*/_jsxs(\"div\",{style:style,onKeyDown:onKeyDown,onClick:event=>event.stopPropagation(),children:[layoutType===\"QuickMenu\"&&/*#__PURE__*/_jsx(QuickMenuSpacer,{onClick:onDismiss}),/*#__PURE__*/_jsx(motion.div,{initial:containerAnimation,animate:{opacity:1,scale:1,x:0,y:0,rotate:0},transition:containerAnimation?containerAnimation.transition:undefined,exit:{opacity:0,transition:{duration:0}},style:innerStyle,children:children})]});}function ModalContainer({layoutType,theme,children,heightIsStatic,heightTransition,heightDeps}){const style={// This `willChange` is required to avoid weird rendering issues where\n// parts of the search window won't redraw, which we observed in Safari 16.4.\nwillChange:\"transform\",backgroundColor:theme.backgroundColor,color:theme.foregroundColor,borderRadius:layoutType===\"QuickMenu\"?theme.borderRadius:0,width:\"100%\",display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",boxShadow:layoutType!==\"Sidebar\"?theme.shadow:undefined,maxHeight:layoutType===\"QuickMenu\"?`min(${MODAL_MAX_HEIGHT}px, calc(100vh - 30px))`:undefined};// Opt-in Height Animations for the Search Quick Actions menu.\n// These are disabled by default, but can be enabled via props.\nconst[scope,animate]=useAnimate();useLayoutEffect(()=>{if(layoutType!==\"QuickMenu\"||heightIsStatic)return;const prevHeight=scope.current.offsetHeight;scope.current.style.height=\"auto\";const height=scope.current.offsetHeight;scope.current.style.height=prevHeight+\"px\";animate(scope.current,{height:[prevHeight,height]},heightTransition);},heightDeps);return /*#__PURE__*/_jsx(\"div\",{ref:scope,role:\"dialog\",className:layoutType===\"FixedTop\"?\"__framer-max-height-80dvh\":undefined,style:style,children:children});}const ScrollView=/*#__PURE__*/React.forwardRef(function ScrollView({theme,children},ref){const isTouch=Browser.isTouch();const[canScroll,setCanScroll]=React.useState(true);React.useEffect(()=>{if(!isTouch)return;const element=ref.current;if(!element)return;setCanScroll(element.scrollHeight>element.clientHeight);});return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{width:`calc(100% + ${theme.scrollBarWidth}px)`,overflowY:\"scroll\",overflowX:\"hidden\",overscrollBehavior:\"contain\",touchAction:canScroll?undefined:\"none\",// Make the list appear slightly under the divider\n// so that the divider is still visible when the first\n// item is selected.\nmarginTop:-1},children:children});});const statusStyle={backgroundColor:\"#B5B5B5\",color:\"#FFF\",boxShadow:\"0px 20px 40px 0px rgba(0, 0, 0, 0.25)\",fontFamily:\"inherit\",textAlign:\"center\",fontSize:13,padding:\"8px 0\"};function StatusMessage({status,layoutType,theme}){const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);const style={...statusStyle,userSelect:\"none\",fontFamily:getFontFamily(theme),paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,fontWeight:500,lineHeight:`calc(${theme.inputFontSize} * 2)`,paddingTop:verticalSpacing,paddingBottom:verticalSpacing,...theme.titleFont,zIndex:theme.zIndex+1,maxWidth:layoutType===\"FixedTop\"?\"none\":theme.width,width:layoutType===\"FixedTop\"?`calc(100% - ${verticalSpacing*2}px`:\"100%\",boxShadow:layoutType!==\"Sidebar\"&&statusStyle.boxShadow,borderRadius:layoutType!==\"Sidebar\"&&theme.borderRadius};// Show less text on fixed text to look nicer on mobile\nconst previewInfoText=layoutType===\"FixedTop\"?\"Preview Mode\":\"Preview Mode. Publish your Site to Search.\";if(status===\"no-meta-tag-found\"){return /*#__PURE__*/_jsx(\"div\",{style:style,children:previewInfoText});}if(status===\"pending-index-generation\"){return /*#__PURE__*/_jsx(\"div\",{style:style,children:\"Site is being indexed\"});}return null;}const resultTitle={textOverflow:\"ellipsis\",maxWidth:\"100%\",overflow:\"hidden\",fontWeight:500,whiteSpace:\"nowrap\",flex:1,margin:0};const resultContainer={padding:\"16px 20px\",listStyle:\"none\",fontWeight:500};const sidebarStyles={left:0,width:500};const fixedTopStyles={top:0,width:\"100%\"};const quickMenuStyles={width:500};function getLayoutBaseStyles(layoutOption,theme){switch(layoutOption){case\"Sidebar\":return{...sidebarStyles,width:theme.width};case\"FixedTop\":return fixedTopStyles;case\"QuickMenu\":return{...quickMenuStyles,width:theme.width};}}export var SearchInputClearButtonType;(function(SearchInputClearButtonType){SearchInputClearButtonType[\"Icon\"]=\"icon\";SearchInputClearButtonType[\"Text\"]=\"text\";SearchInputClearButtonType[\"None\"]=\"none\";})(SearchInputClearButtonType||(SearchInputClearButtonType={}));export var SearchInputDividerType;(function(SearchInputDividerType){SearchInputDividerType[\"None\"]=\"none\";SearchInputDividerType[\"FullWidth\"]=\"fullWidth\";SearchInputDividerType[\"Contained\"]=\"contained\";})(SearchInputDividerType||(SearchInputDividerType={}));export var SearchResultTitleType;(function(SearchResultTitleType){SearchResultTitleType[\"H1\"]=\"h1\";SearchResultTitleType[\"Title\"]=\"title\";})(SearchResultTitleType||(SearchResultTitleType={}));export var SearchResultSubtitleType;(function(SearchResultSubtitleType){SearchResultSubtitleType[\"Description\"]=\"description\";SearchResultSubtitleType[\"Path\"]=\"path\";})(SearchResultSubtitleType||(SearchResultSubtitleType={}));export var SearchResultItemType;(function(SearchResultItemType){SearchResultItemType[\"FullWidth\"]=\"fullWidth\";SearchResultItemType[\"Contained\"]=\"contained\";})(SearchResultItemType||(SearchResultItemType={}));export var SearchLayoutType;(function(SearchLayoutType){SearchLayoutType[\"Sidebar\"]=\"Sidebar\";SearchLayoutType[\"FixedTop\"]=\"FixedTop\";SearchLayoutType[\"QuickMenu\"]=\"QuickMenu\";})(SearchLayoutType||(SearchLayoutType={}));export var SearchEntryType;(function(SearchEntryType){SearchEntryType[\"Icon\"]=\"icon\";SearchEntryType[\"Text\"]=\"text\";})(SearchEntryType||(SearchEntryType={}));export var SearchIconType;(function(SearchIconType){SearchIconType[\"Default\"]=\"default\";SearchIconType[\"Custom\"]=\"custom\";})(SearchIconType||(SearchIconType={}));/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export function SearchModal(props){const{layoutType,theme,urlScope,inputOptions,backdropOptions,modalOptions,resultOptions,onDismiss}=props;const{activeLocale}=useLocaleInfo();const localeId=activeLocale?.id;const localeSlug=activeLocale?.slug;const input=useRef();const selectedResultRow=useRef();const scrollView=useRef();const[selected,setSelected]=useState({index:0,scroll:true});const prevMousePositionRef=useRef(null);const[isKeyboardNavigationDisabled,setIsKeyboardNavigationDisabled]=useState(Browser.isTouch);const[query,setQuery]=useState(\"\");const deferredQuery=useDeferredValue(query);const{results,status}=useSearch(deferredQuery,{minimumScore:0,urlScope,titleType:resultOptions.titleType});const selectedResult=results[selected.index];const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);useEffect(()=>{// Reset the selection to the top if the query changes.\nsetSelected({index:0,scroll:true});},[deferredQuery]);const handleResultRowPointerDown=useCallback((event,index)=>{if(event.pointerType!==\"touch\")return;setIsKeyboardNavigationDisabled(true);setSelected({index,scroll:false});},[]);const handleResultRowMouseMove=useCallback((event,index)=>{setSelected(previousSelected=>{if(previousSelected.index===index){return previousSelected;}return{index,scroll:false};});},[]);const router=useRouter();const navigateTo=useCallback(async url=>{if(status===\"no-meta-tag-found\"){return;}try{// Ideally, we would directly expose `routeId` in the search index so that\n// we don't need to infer it from the URL.\nconst{routeId,pathVariables}=inferInitialRouteFromPath(router.routes,url);const route=router.getRoute?.(routeId);onDismiss();await route?.page?.preload?.();router.navigate?.(routeId,null,pathVariables,false);}catch(error){window.location.href=url;}},[status]);const handleKeyDown=event=>{const maxIndex=results.length-1;switch(event.code){case\"ArrowUp\":event.preventDefault();if(isKeyboardNavigationDisabled){setIsKeyboardNavigationDisabled(false);break;}setSelected(previousSelected=>({index:clamp(0,maxIndex,previousSelected.index-1),scroll:true}));break;case\"ArrowDown\":event.preventDefault();if(isKeyboardNavigationDisabled){setIsKeyboardNavigationDisabled(false);break;}setSelected(previousSelected=>({index:clamp(0,maxIndex,previousSelected.index+1),scroll:true}));break;case\"Escape\":break;case\"Enter\":if(selectedResult){navigateTo(selectedResult.url);}break;default:event.stopPropagation();}};const showNoResults=results.length===0&&deferredQuery.length>1&&status!==\"loading\";const showDivider=Boolean((deferredQuery.length>0&&results.length>0||showNoResults)&&status!==\"loading\"&&props.inputOptions&&props.inputOptions.dividerType!==\"none\");const isItemContained=Boolean(props.resultOptions&&props.resultOptions.itemType===\"contained\");const spacing=isItemContained?theme.spacing:10;const listPaddingTop=showDivider&&isItemContained?spacing+theme.gapBetweenResults*2:0;useEffect(()=>{if(!selected.scroll)return;const element=selectedResultRow.current;if(!element)return;scrollIntoView(element,scrollView.current,{offsetTop:showDivider&&isItemContained?listPaddingTop:0,offsetBottom:isItemContained?spacing:0});// `showDivider` and `isItemContained` are not dependencies because\n// they will be the latest values when `selected` changes. And including\n// them will cause unnecessary scrolling into view.\n},[selected]);return /*#__PURE__*/_jsxs(LayoutContainer,{layoutType:layoutType,modalOptions:modalOptions,theme:theme,onKeyDown:handleKeyDown,onDismiss:onDismiss,children:[/*#__PURE__*/_jsxs(ModalContainer,{layoutType:layoutType,theme:theme,heightIsStatic:modalOptions.heightIsStatic,heightTransition:modalOptions.heightTransition,heightDeps:[results.length,showNoResults],children:[/*#__PURE__*/_jsx(Input,{autofocus:true,ref:input,onChange:setQuery,value:query,theme:theme,status:status,iconType:inputOptions.iconOptions.iconType,placeholder:inputOptions.placeholderOptions.placeholderText,clearButtonType:inputOptions?inputOptions.clearButtonType:undefined,clearButtonText:inputOptions.clearButtonText}),showDivider&&/*#__PURE__*/_jsx(Divider,{theme:theme,type:inputOptions.dividerType}),/*#__PURE__*/_jsx(ScrollView,{ref:scrollView,theme:theme,children:/*#__PURE__*/_jsxs(\"ul\",{\"aria-live\":\"polite\",style:{display:\"flex\",flexDirection:\"column\",width:`calc(100% - ${theme.scrollBarWidth}px)`,padding:0,paddingTop:listPaddingTop,paddingBottom:results.length&&isItemContained?spacing:0,gap:theme.gapBetweenResults,margin:0},children:[results.map((result,index)=>{const isSelected=index===selected.index;return /*#__PURE__*/_jsx(ResultRow,{ref:isSelected?selectedResultRow:null,index:index,result:result,prevMousePositionRef:prevMousePositionRef,selected:!isKeyboardNavigationDisabled&&isSelected,type:props.resultOptions.itemType,subtitleType:props.resultOptions.subtitleOptions.subtitleType,theme:theme,localeSlug:localeSlug,onMouseMove:handleResultRowMouseMove,onPointerDown:handleResultRowPointerDown,onNavigateTo:navigateTo},result.url);}),showNoResults&&/*#__PURE__*/_jsx(\"li\",{style:{paddingTop:verticalSpacing-listPaddingTop,paddingBottom:verticalSpacing,lineHeight:\"2em\",paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,height:\"Sidebar\"?\"100%\":\"auto\"},children:/*#__PURE__*/_jsx(\"h3\",{style:{...resultTitle,textAlign:\"center\",lineHeight:`calc(${theme.inputFontSize} * 2)`,color:theme.subtitleColor,...theme.titleFont},children:\"No results\"})})]})})]}),/*#__PURE__*/_jsx(StatusMessage,{status:status,layoutType:layoutType,theme:theme})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"ResultRow\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultTitleType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultItemType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchLayoutType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchInputDividerType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchTheme\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultSubtitleType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchModal\":{\"type\":\"reactComponent\",\"name\":\"SearchModal\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"SearchIconType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Input\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchEntryType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchInputClearButtonType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-ignore\nimport{useLocaleInfo}from\"framer\";import{clamp}from\"framer-motion\";import{useEffect,useState,useTransition}from\"react\";import{SearchResultTitleType}from\"https://framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/1GynhDlRW7uuXFYW1RXb/SearchModal.js\";import{getCachedIndex,isDefaultLocaleId,setCachedIndex}from\"https://framerusercontent.com/modules/uU1mtMKXsrVAg8N5hW7w/v7gDLwKJgQ5vAsFHxY4H/cachedIndex.js\";import{fakeResults}from\"https://framerusercontent.com/modules/K9JZRwJcE6slDAf8rUmh/mJ54py1Ecnn1RoC4N1m4/fakeResults.js\";import{distance}from\"https://framerusercontent.com/modules/TwRgbWuhHeB95MPifel4/YW8Hlm59FG3PajbrVsaR/fuzzySearch.js\";import{createLogger,localStorageDebugFlag,safeDocument,safeWindow,stripLocaleSlugFromPath,yieldToMain}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";const{log,time,timeEnd}=createLogger(localStorageDebugFlag);const splitWordsRegex=(()=>{try{// Regex lookbehind is used to ignore ampersands when splitting\n// words. For example \"H&M\" will not be split and is considered as\n// one word, but \"H & M\" will be split.\n// However, some browsers (like Safari iOS 15) don't support\n// lookbehind and will crash. When it's not supported, fallback to\n// a safer regex that always splits ampersands.\nconst regex=RegExp(\"[\\\\s.,;!?\\\\p{P}\\\\p{Z}]+(?<!\\\\p{L}&)(?!&\\\\p{L})\",\"u\");\"\".split(regex);return regex;}catch{log(\"Falling back to regex without lookbehind\");return RegExp(\"[\\\\s.,;!?\\\\p{P}\\\\p{Z}]+\",\"u\");}})();function splitWords(text){return text.split(splitWordsRegex);}function getUniqueWords(str){const words=splitWords(str).filter(word=>word.trim()&&word.length>0);return new Set(words);}const normalizeRegex=/[\\u0300-\\u036f]/g;/**\n * Replace accented characters with equivilant non-accented versions and\n * make everything lowercase.\n */function getNormalizedString(text){if(Array.isArray(text)){return text.map(getNormalizedString);}return text.normalize(\"NFD\")// From: https://stackoverflow.com/a/37511463\n.replace(normalizeRegex,\"\").toLowerCase();}const normalizedItemCache=new WeakMap;function getNormalizedItemFromCache(item){const cached=normalizedItemCache.get(item);if(cached)return cached;const normalizedItem=getNormalizedItem(item);normalizedItemCache.set(item,normalizedItem);return normalizedItem;}function getNormalizedItem(item){const normalizedItem={};for(const key in item){if(item.hasOwnProperty(key)){const value=item[key];if(typeof value===\"string\"){normalizedItem[key]=getNormalizedString(value);continue;}if(Array.isArray(value)){normalizedItem[key]=getNormalizedString(value);continue;}normalizedItem[key]=value;}}return normalizedItem;}function getMatchRange(currentRange,start,end){const result={...currentRange};if(start<result.start){result.start=start;}if(end>result.end){result.end=end;}return result;}/**\n * Score index item based on the contents of it's fields such as title, description, headings etc.\n *\n * Note that this does not normalize the item or query. Normalization is expected to happen\n * before passing the data into this.\n */function getScoreForSearchIndexItem(item,query,words,fullQuery){let score=0;const match={title:{start:Infinity,end:0},description:{start:Infinity,end:0}};const urlWords=getUniqueWords(item.url);// Match query based on words in the URL so that random strings inside\n// other strings are not matched.\nif(urlWords.has(query)){score+=10;}// Really boost single word queries that match single word URLs.\nif(words.size===1&&urlWords.size===1&&urlWords.values().next().value===query){score+=score*5;}// Score shorter URLs higher so `/pricing` is before `/lala/pricing`.\nif(score>0){const splitLength=item.url.split(\"/\").length;score+=clamp(10-splitLength,0,splitLength);}const titleWords=getUniqueWords(item.title);// Prefer full word matches in the title.\nif(titleWords.has(query)){score+=10;}const titleIndex=item.title.indexOf(query);if(titleIndex!==-1){score+=10;// TODO: Matches are currently not used, but they can be used in the\n// future to add text highlighting.\nmatch.title=getMatchRange(match.title,titleIndex,titleIndex+query.length);}// If the full query is close to being the heading, score this highly as\n// the user is most likely looking for that exact title.\nif(distance(item.title,fullQuery)<=2){score+=score*10;}// Fuzzy match full words in the title.\nfor(const titleWord of titleWords){const distanceScore=distance(query,titleWord);// Small distance score helps with small typos.\nif(distanceScore<=2){score+=10;}}const headings=[...item.h1,...item.h2,...item.h3,...item.h4,...item.h5,...item.h6];for(const heading of headings){const headingWords=getUniqueWords(heading);// If the full query is close to being the heading, score this highly as\n// the user is most likely looking for that exact title.\nif(distance(heading,fullQuery)<=2){score+=score*10;}// Bias headings that start with the query as this helps when\n// you know the title you are searching for.\nif(heading.startsWith(query)){score+=10;}if(headingWords.has(query)){score+=10;}if(heading.includes(query)){score+=1;}// Fuzzy match full words in headings.\nfor(const headingWord of headingWords){const distanceScore=distance(query,headingWord);if(distanceScore<=2){score+=1;}}}const descriptionIndex=item.description.indexOf(query);if(descriptionIndex!==-1){score+=10;match.description=getMatchRange(match.description,descriptionIndex,descriptionIndex+query.length);}for(const p of item.p){if(p.includes(query)){score+=.5;}}for(const codeblock of item.codeblock){// If the full query is close to being the codeblock, score this highly as\n// the user is most likely looking for that exact code.\nif(distance(codeblock,fullQuery)<=2){score*=10;}if(codeblock.includes(fullQuery)){score+=10;}if(codeblock.includes(query)){score+=.5;}}return{score,match};}function getSearchIndexItemScore(item,normalizedQuery){const normalizedItem=getNormalizedItemFromCache(item);const queryWords=getUniqueWords(normalizedQuery);let total=0;for(const queryWord of queryWords){const{score}=getScoreForSearchIndexItem(normalizedItem,queryWord,queryWords,normalizedQuery);total+=score;}return total;}function useRawSearch(index,query,settings){const[results,setResults]=useState(null);const[,startTransition]=useTransition();useEffect(()=>{const abortController=new AbortController;executeRawSearch(index,query,settings,abortController.signal).then(res=>{if(!abortController.signal.aborted){startTransition(()=>{setResults(res);});}}).catch(err=>{if(err.name!==\"AbortError\"){console.error(\"Search failed:\",err);}});return()=>{abortController.abort();};},[index,query]);return{results:results??[]};}const QUANTUM=32// ms, 2*16ms (2 frames on 60 hz)\n;async function executeRawSearch(index,query,settings,signal){const path=safeWindow?.location.pathname;time(\"query\");const normalizedQuery=getNormalizedString(query);const results=[];const items=Object.values(index);let deadline=performance.now()+QUANTUM;async function yieldToMainIfNecessary(){if(performance.now()>=deadline){await yieldToMain();deadline=performance.now()+QUANTUM;}}for(let i=0;i<items.length;++i){if(performance.now()>=deadline){await yieldToMainIfNecessary();deadline=performance.now()+QUANTUM;}if(signal?.aborted)return[];const item=items[i];const score=getSearchIndexItemScore(item,normalizedQuery);if(score>(settings.minimumScore||0)&&(!path||item.url!==path)){const heading=item.h1.length&&item.h1[0];const title=settings?.titleType===SearchResultTitleType.Title?item.title:heading?heading:item.title;// Convert index item to result item.\nresults.push({url:item.url,title,description:item.description,body:[...item.p,item.codeblock].join(\" \"),score});}}await yieldToMainIfNecessary();if(signal?.aborted)return[];const sorted=results.sort((itemA,itemB)=>itemB.score-itemA.score);timeEnd(\"query\");await yieldToMainIfNecessary();if(signal?.aborted)return[];return results.slice(0,20);}function getIndexedScopedToUrl(index,rawUrlScope,localeSlug){const scopedIndex={};const baseScopeUrlHasVariable=rawUrlScope.includes(\":\");const urlUpToPathVariable=rawUrlScope.split(\":\")[0];const urlScope=urlUpToPathVariable.length>1?urlUpToPathVariable:\"\";for(const url in index){const strippedURL=stripLocaleSlugFromPath(url,localeSlug);if(!strippedURL.startsWith(urlScope)){continue;}if(baseScopeUrlHasVariable&&url.length<=urlScope.length){continue;}scopedIndex[url]=index[url];}return scopedIndex;}export function useSearch(query,settings){const[searchIndex,_setSearchIndex]=useState({});const[status,setStatus]=useState(\"loading\");const{results}=useRawSearch(searchIndex,query,settings);const{activeLocale}=useLocaleInfo();const localeId=activeLocale?.id;// Seperate setter function so that the URL scope is always applied\n// to indexes loaded from either the cache or network.\nfunction setSearchIndex(index,options={ignoreScope:false}){let scopedIndex=index;if(settings.urlScope&&!options.ignoreScope){scopedIndex=getIndexedScopedToUrl(index,settings.urlScope,activeLocale?.slug);log(\"Using URL scope\",settings.urlScope);}_setSearchIndex(scopedIndex);}useEffect(()=>{async function loadSearchIndex(){setStatus(\"loading\");const baseUrl=getBaseUrl(\"framer-search-index\");if(!baseUrl){setStatus(\"no-meta-tag-found\");setSearchIndex(fakeResults,{ignoreScope:true});log(\"No meta tag found\");return;}const cacheResult=await getCachedIndex(localeId,baseUrl);if(cacheResult.status===\"fresh\"){setSearchIndex(cacheResult.searchIndex);setStatus(\"success\");log(\"Using fresh cached index\");return;}if(cacheResult.status===\"stale\"){setSearchIndex(cacheResult.searchIndex);setStatus(\"loading-with-cache\");log(\"Using stale cached index while loading a fresh one\");}const searchIndexUrl=getSearchIndexUrl(baseUrl,localeId);const response=await fetch(searchIndexUrl);if(response.ok){const downloadedIndex=await response.json();setSearchIndex(downloadedIndex);setCachedIndex(localeId,downloadedIndex,baseUrl);setStatus(\"success\");log(\"Using downloaded index\");return;}// Our \"sites\" CDN currently returns 403s for missing files.\nconst isNotFound=response.status===403||response.status===404;if(!isNotFound){throw new Error(response.statusText);}// Index is likely still being generated.\nlog(\"Index not found\");const fallbackBaseUrl=getBaseUrl(\"framer-search-index-fallback\");if(!fallbackBaseUrl){if(cacheResult.status===\"miss\"){setStatus(\"pending-index-generation\");log(\"No fallback, no cache\");}else{setStatus(\"success\");log(\"No fallback, using cache\");}return;}// If we're here, cache is missing or stale.\n// If it's stale but it's our fallback index, we can use it.\nif(cacheResult.status===\"stale\"&&cacheResult.indexHash===fallbackBaseUrl){setStatus(\"success\");log(\"Using cached fallback index\");return;}const fallbackSearchIndexUrl=getSearchIndexUrl(fallbackBaseUrl,localeId);const fallbackResponse=await fetch(fallbackSearchIndexUrl);if(fallbackResponse.ok){const downloadedIndex=await fallbackResponse.json();setSearchIndex(downloadedIndex);setCachedIndex(localeId,downloadedIndex,fallbackBaseUrl);setStatus(\"success\");log(\"Using downloaded fallback index\");return;}if(cacheResult.status===\"miss\"){setStatus(\"pending-index-generation\");log(\"Fallback failed, no cache\");}else{setStatus(\"success\");log(\"Fallback failed, using cache\");}}loadSearchIndex().catch(error=>{// TODO: Check for error type here. If it's a network error,\n// we could do a few retries.\nsetStatus(\"error\");log(\"Failed to load search index\",error);});},[localeId]);log({status,results});return{results,status};}function getBaseUrl(name){return safeDocument?.querySelector(`meta[name=\"${name}\"]`)?.getAttribute(\"content\");}function getSearchIndexUrl(baseURL,localeId){if(isDefaultLocaleId(localeId))return baseURL;return baseURL.replace(\".json\",`-${localeId}.json`);}\nexport const __FramerMetadata__ = {\"exports\":{\"SearchIndex\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useSearch\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useSearch.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useSearch}from\"https://framerusercontent.com/modules/MyBp84Z0p9nUcMimVMnY/1vZ2fdkLJI4IprrVTHqR/useSearch.js\";import React,{useEffect,useState,useMemo,forwardRef,useRef,useDeferredValue,useLayoutEffect,useCallback,useImperativeHandle}from\"react\";import{Browser}from\"https://framerusercontent.com/modules/PJVBcBLmDteTEAZh3J9Z/keXJyjyE9VnzUcDMayjg/browser.js\";import{motion,clamp,useAnimate}from\"framer-motion\";import{SearchIcon,ClearIcon,SpinnerIcon}from\"https://framerusercontent.com/modules/LV9trClbmNwd5PVj9l8y/L4rFqMGNzGSwRZpGTGF3/Icons.js\";import{clampText,getFontFamily,localStorageDebugFlag,animationKeyFromLayout,stripLocaleSlugFromPath}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";import{useCallbackOnMouseMove}from\"https://framerusercontent.com/modules/Gzef0nFihI9m9vZG45th/lIUxbZcreiDm2GzUkt3y/useCallbackOnMouseMove.js\";import{scrollIntoView}from\"https://framerusercontent.com/modules/eAnjm75CdfYT1Zz4BIaz/7KDSfnnyD1T3Ap75L4m8/scrollIntoView.js\";import{useLocaleInfo,// @ts-expect-error Internal API\nuseRouter,// @ts-expect-error Internal API\ninferInitialRouteFromPath}from\"framer\";const MAX_DESCRIPTION_LENGTH=120;const MODAL_MAX_HEIGHT=496;const VERTICAL_SPACING_MULTIPLIER=.6;function ClearButton({theme,type,onClick,text}){const shouldDisplayIcon=type===\"icon\";const iconOrText=shouldDisplayIcon?/*#__PURE__*/_jsx(ClearIcon,{style:{color:theme.inputIconColor,width:theme.inputIconSize,height:theme.inputIconSize}}):text;return /*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,fontSize:theme&&theme.titleFont&&theme.titleFont.fontSize?theme.titleFont.fontSize:15},children:/*#__PURE__*/_jsx(\"button\",{className:\"__framer-search-clear-button\",onClick:onClick,style:{fontFamily:\"inherit\",border:\"none\",background:\"none\",cursor:\"pointer\",display:\"flex\",textTransform:\"uppercase\",color:theme.inputIconColor,fontSize:\"0.75em\",padding:0},children:iconOrText})});}function Divider({theme,type}){const styles={background:theme.foregroundColor,height:1,flexShrink:0,opacity:.05};if(type===\"contained\"&&theme){styles.marginLeft=theme.horizontalSpacing;styles.marginRight=theme.horizontalSpacing;}return /*#__PURE__*/_jsx(\"div\",{style:styles});}export const Input=/*#__PURE__*/forwardRef(function Input(props,ref){const{value=\"\",status,autofocus,theme,placeholder,iconType,clearButtonType,onChange}=props;const[inputValue,setInputValue]=useState(value);const[isFocused,setIsFocused]=useState(false);const inputRef=useRef();useImperativeHandle(ref,()=>inputRef.current);React.useLayoutEffect(()=>{// Runs on unmount, fixes a bug in Safari that scrolls to the bottom\n// of the page when the input unmounts.\nreturn()=>{const inputElement=inputRef.current;if(!inputElement||inputElement!==document.activeElement)return;inputElement.blur();};},[]);const handleInputClick=()=>{if(inputRef.current){inputRef.current.focus();}};const handleClearClick=()=>{setInputValue(\"\");};useEffect(()=>{onChange(inputValue);},[inputValue]);const hasInputText=inputValue.length>0;const showClearButton=inputValue.length>0&&clearButtonType&&clearButtonType!==\"none\";const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);const searchIcon=iconType===\"custom\"&&theme.inputIconImage?/*#__PURE__*/_jsx(\"img\",{alt:\"icon alongside the Site Search input\",src:theme.inputIconImage.src,width:theme.inputIconSize,height:theme.inputIconSize,decoding:\"async\"}):/*#__PURE__*/_jsx(SearchIcon,{color:theme.inputIconColor,width:theme.inputIconSize,height:theme.inputIconSize});return /*#__PURE__*/_jsxs(\"div\",{role:\"search\",style:{...inputContainerStyle,fontFamily:getFontFamily(theme),paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,gap:12,paddingTop:verticalSpacing,paddingBottom:verticalSpacing,touchAction:\"none\"},onClick:handleInputClick,children:[/*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,display:\"flex\"},children:status===\"loading\"&&inputValue?/*#__PURE__*/_jsx(SpinnerIcon,{color:theme.inputIconColor,backgroundColor:theme.backgroundColor,style:{height:theme&&theme.inputIconSize,width:theme&&theme.inputIconSize}}):searchIcon}),/*#__PURE__*/_jsx(\"input\",{ref:inputRef,spellCheck:false,autoFocus:autofocus,style:{...inputStyle,WebkitTapHighlightColor:\"rgba(0,0,0,0)\",color:theme.foregroundColor,lineHeight:\"2em\",verticalAlign:\"baseline\",...theme.titleFont,...theme.inputFont,fontSize:theme.inputFontSize,// @ts-ignore\n\"--framer-search-placeholder-color\":theme.placeholderColor},onFocus:()=>{const scrollOffset=document.documentElement.scrollTop;document.documentElement.scrollTop=scrollOffset;},placeholder:placeholder,value:inputValue,onChange:()=>setInputValue(inputRef.current.value)}),showClearButton&&/*#__PURE__*/_jsx(ClearButton,{theme:theme,type:props.clearButtonType,text:props.clearButtonText,onClick:handleClearClick})]});});const inputContainerStyle={display:\"inline-flex\",alignItems:\"center\",flexShrink:0};const inputStyle={outline:\"none\",border:\"none\",background:\"transparent\",fontWeight:500,height:\"2em\",padding:0,width:\"100%\"};export const ResultRow=/*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function ResultRow(props,ref){const{index,result,prevMousePositionRef,type=\"contained\",subtitleType=\"path\",selected=false,theme,localeSlug,style,onMouseMove,onPointerDown,onNavigateTo}=props;const{url,title,score}=result;const urlPath=useMemo(()=>{return stripLocaleSlugFromPath(url,localeSlug);},[url,localeSlug]);const handleMouseMove=useCallbackOnMouseMove(event=>onMouseMove(event,index),prevMousePositionRef);const isContained=type===\"contained\";const borderRadius=isContained?clamp(0,Infinity,theme.borderRadius-theme.spacing):0;const subtitleText=subtitleType===\"path\"?urlPath:clampText(result.description,MAX_DESCRIPTION_LENGTH);const handleClick=event=>{event.preventDefault();onNavigateTo(result.url);};const focusTrap=event=>{event.preventDefault();};return /*#__PURE__*/_jsx(\"a\",{ref:ref,style:{textDecoration:\"none\"},href:result.url,onClick:handleClick,onMouseMove:handleMouseMove,onMouseDown:focusTrap,onPointerDown:event=>onPointerDown(event,index),children:/*#__PURE__*/_jsxs(\"li\",{style:{...resultContainer,...style,paddingTop:isContained?12:16,paddingBottom:isContained?12:16,color:theme.foregroundColor,position:\"relative\",paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing},children:[/*#__PURE__*/_jsx(\"div\",{style:{backgroundColor:theme.foregroundColor,position:\"absolute\",opacity:selected?.06:0,borderRadius,left:theme&&isContained?theme.spacing:0,right:theme&&isContained?theme.spacing:0,top:0,bottom:0}}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",gap:4},children:[/*#__PURE__*/_jsx(\"h3\",{style:{...resultTitle,...theme.titleFont,lineHeight:\"1.4em\"},children:title}),/*#__PURE__*/_jsxs(\"p\",{style:{margin:0,color:theme.subtitleColor,...theme.subtitleFont,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",lineHeight:\"1.4em\"},children:[localStorageDebugFlag?score:\"\",\" \",subtitleText]})]})]},result.url)});}));/**\n * Flexible gap used inside a flexbox layout to push down the quick menu\n * by 20% of the screen height, but also allow it to collapse to zero if\n * there is not enough vertical room.\n */function QuickMenuSpacer({onClick}){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",flexBasis:\"20vh\"},onClick:onClick});}const layoutContainerStyle={display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"flex-start\",gap:15,overflow:\"visible\"};function LayoutContainer({layoutType,theme,onKeyDown,onDismiss,children,modalOptions}){const layoutStyles=getLayoutBaseStyles(layoutType,theme);const style={...layoutContainerStyle,...layoutStyles,willChange:\"transform\",marginTop:layoutType===\"FixedTop\"?theme.offsetTop:0,height:layoutType===\"Sidebar\"?\"100%\":\"auto\",maxHeight:layoutType===\"QuickMenu\"?\"100%\":\"none\",justifyContent:layoutType===\"Sidebar\"?\"flex-end\":\"flex-start\",flexDirection:layoutType===\"Sidebar\"?\"column-reverse\":\"column\"};const innerStyle={...layoutContainerStyle,...layoutStyles,height:layoutType===\"Sidebar\"?\"100%\":\"auto\",maxHeight:layoutType===\"QuickMenu\"?\"100%\":\"none\",gap:layoutType===\"Sidebar\"?0:theme.gapBetweenStatusAndSearch,backgroundColor:layoutType===\"Sidebar\"?theme.backgroundColor:\"transparent\",justifyContent:layoutType===\"Sidebar\"?\"flex-end\":\"flex-start\",flexDirection:layoutType===\"Sidebar\"?\"column-reverse\":\"column\",originX:.5,originY:.5};function getContainerAnimation(){switch(layoutType){case\"FixedTop\":{const key=animationKeyFromLayout(\"FixedTop\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{y:-10,opacity:.2,transition:{duration:Browser.isTouch()?0:.15}};}break;}case\"QuickMenu\":{const key=animationKeyFromLayout(\"QuickMenu\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{scale:.95,opacity:0,y:0,x:0,rotate:0,transition:{type:\"spring\",stiffness:600,damping:40}};}break;}case\"Sidebar\":{const key=animationKeyFromLayout(\"Sidebar\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{x:-10,opacity:0,transition:{duration:.15}};}break;}}}const containerAnimation=getContainerAnimation();return /*#__PURE__*/_jsxs(\"div\",{style:style,onKeyDown:onKeyDown,onClick:event=>event.stopPropagation(),children:[layoutType===\"QuickMenu\"&&/*#__PURE__*/_jsx(QuickMenuSpacer,{onClick:onDismiss}),/*#__PURE__*/_jsx(motion.div,{initial:containerAnimation,animate:{opacity:1,scale:1,x:0,y:0,rotate:0},transition:containerAnimation?containerAnimation.transition:undefined,exit:{opacity:0,transition:{duration:0}},style:innerStyle,children:children})]});}function ModalContainer({layoutType,theme,children,heightIsStatic,heightTransition,heightDeps}){const style={// This `willChange` is required to avoid weird rendering issues where\n// parts of the search window won't redraw, which we observed in Safari 16.4.\nwillChange:\"transform\",backgroundColor:theme.backgroundColor,color:theme.foregroundColor,borderRadius:layoutType===\"QuickMenu\"?theme.borderRadius:0,width:\"100%\",display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",boxShadow:layoutType!==\"Sidebar\"?theme.shadow:undefined,maxHeight:layoutType===\"QuickMenu\"?`min(${MODAL_MAX_HEIGHT}px, calc(100vh - 30px))`:undefined};// Opt-in Height Animations for the Search Quick Actions menu.\n// These are disabled by default, but can be enabled via props.\nconst[scope,animate]=useAnimate();useLayoutEffect(()=>{if(layoutType!==\"QuickMenu\"||heightIsStatic)return;const prevHeight=scope.current.offsetHeight;scope.current.style.height=\"auto\";const height=scope.current.offsetHeight;scope.current.style.height=prevHeight+\"px\";animate(scope.current,{height:[prevHeight,height]},heightTransition);},heightDeps);return /*#__PURE__*/_jsx(\"div\",{ref:scope,role:\"dialog\",className:layoutType===\"FixedTop\"?\"__framer-max-height-80dvh\":undefined,style:style,children:children});}const ScrollView=/*#__PURE__*/React.forwardRef(function ScrollView({theme,children},ref){const isTouch=Browser.isTouch();const[canScroll,setCanScroll]=React.useState(true);React.useEffect(()=>{if(!isTouch)return;const element=ref.current;if(!element)return;setCanScroll(element.scrollHeight>element.clientHeight);});return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{width:`calc(100% + ${theme.scrollBarWidth}px)`,overflowY:\"scroll\",overflowX:\"hidden\",overscrollBehavior:\"contain\",touchAction:canScroll?undefined:\"none\",// Make the list appear slightly under the divider\n// so that the divider is still visible when the first\n// item is selected.\nmarginTop:-1},children:children});});const statusStyle={backgroundColor:\"#B5B5B5\",color:\"#FFF\",boxShadow:\"0px 20px 40px 0px rgba(0, 0, 0, 0.25)\",fontFamily:\"inherit\",textAlign:\"center\",fontSize:13,padding:\"8px 0\"};function StatusMessage({status,layoutType,theme}){const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);const style={...statusStyle,userSelect:\"none\",fontFamily:getFontFamily(theme),paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,fontWeight:500,lineHeight:`calc(${theme.inputFontSize} * 2)`,paddingTop:verticalSpacing,paddingBottom:verticalSpacing,...theme.titleFont,zIndex:theme.zIndex+1,maxWidth:layoutType===\"FixedTop\"?\"none\":theme.width,width:layoutType===\"FixedTop\"?`calc(100% - ${verticalSpacing*2}px`:\"100%\",boxShadow:layoutType!==\"Sidebar\"&&statusStyle.boxShadow,borderRadius:layoutType!==\"Sidebar\"&&theme.borderRadius};// Show less text on fixed text to look nicer on mobile\nconst previewInfoText=layoutType===\"FixedTop\"?\"Preview Mode\":\"Preview Mode. Publish your Site to Search.\";if(status===\"no-meta-tag-found\"){return /*#__PURE__*/_jsx(\"div\",{style:style,children:previewInfoText});}if(status===\"pending-index-generation\"){return /*#__PURE__*/_jsx(\"div\",{style:style,children:\"Site is being indexed\"});}return null;}const resultTitle={textOverflow:\"ellipsis\",maxWidth:\"100%\",overflow:\"hidden\",fontWeight:500,whiteSpace:\"nowrap\",flex:1,margin:0};const resultContainer={padding:\"16px 20px\",listStyle:\"none\",fontWeight:500};const sidebarStyles={left:0,width:500};const fixedTopStyles={top:0,width:\"100%\"};const quickMenuStyles={width:500};function getLayoutBaseStyles(layoutOption,theme){switch(layoutOption){case\"Sidebar\":return{...sidebarStyles,width:theme.width};case\"FixedTop\":return fixedTopStyles;case\"QuickMenu\":return{...quickMenuStyles,width:theme.width};}}export var SearchInputClearButtonType;(function(SearchInputClearButtonType){SearchInputClearButtonType[\"Icon\"]=\"icon\";SearchInputClearButtonType[\"Text\"]=\"text\";SearchInputClearButtonType[\"None\"]=\"none\";})(SearchInputClearButtonType||(SearchInputClearButtonType={}));export var SearchInputDividerType;(function(SearchInputDividerType){SearchInputDividerType[\"None\"]=\"none\";SearchInputDividerType[\"FullWidth\"]=\"fullWidth\";SearchInputDividerType[\"Contained\"]=\"contained\";})(SearchInputDividerType||(SearchInputDividerType={}));export var SearchResultTitleType;(function(SearchResultTitleType){SearchResultTitleType[\"H1\"]=\"h1\";SearchResultTitleType[\"Title\"]=\"title\";})(SearchResultTitleType||(SearchResultTitleType={}));export var SearchResultSubtitleType;(function(SearchResultSubtitleType){SearchResultSubtitleType[\"Description\"]=\"description\";SearchResultSubtitleType[\"Path\"]=\"path\";})(SearchResultSubtitleType||(SearchResultSubtitleType={}));export var SearchResultItemType;(function(SearchResultItemType){SearchResultItemType[\"FullWidth\"]=\"fullWidth\";SearchResultItemType[\"Contained\"]=\"contained\";})(SearchResultItemType||(SearchResultItemType={}));export var SearchLayoutType;(function(SearchLayoutType){SearchLayoutType[\"Sidebar\"]=\"Sidebar\";SearchLayoutType[\"FixedTop\"]=\"FixedTop\";SearchLayoutType[\"QuickMenu\"]=\"QuickMenu\";})(SearchLayoutType||(SearchLayoutType={}));export var SearchEntryType;(function(SearchEntryType){SearchEntryType[\"Icon\"]=\"icon\";SearchEntryType[\"Text\"]=\"text\";})(SearchEntryType||(SearchEntryType={}));export var SearchIconType;(function(SearchIconType){SearchIconType[\"Default\"]=\"default\";SearchIconType[\"Custom\"]=\"custom\";})(SearchIconType||(SearchIconType={}));/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export function SearchModal(props){const{layoutType,theme,urlScope,inputOptions,backdropOptions,modalOptions,resultOptions,onDismiss}=props;const{activeLocale}=useLocaleInfo();const localeId=activeLocale?.id;const localeSlug=activeLocale?.slug;const input=useRef();const selectedResultRow=useRef();const scrollView=useRef();const[selected,setSelected]=useState({index:0,scroll:true});const prevMousePositionRef=useRef(null);const[isKeyboardNavigationDisabled,setIsKeyboardNavigationDisabled]=useState(Browser.isTouch);const[query,setQuery]=useState(\"\");const deferredQuery=useDeferredValue(query);const{results,status}=useSearch(deferredQuery,{minimumScore:0,urlScope,titleType:resultOptions.titleType});const selectedResult=results[selected.index];const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);useEffect(()=>{// Reset the selection to the top if the query changes.\nsetSelected({index:0,scroll:true});},[deferredQuery]);const handleResultRowPointerDown=useCallback((event,index)=>{if(event.pointerType!==\"touch\")return;setIsKeyboardNavigationDisabled(true);setSelected({index,scroll:false});},[]);const handleResultRowMouseMove=useCallback((event,index)=>{setSelected(previousSelected=>{if(previousSelected.index===index){return previousSelected;}return{index,scroll:false};});},[]);const router=useRouter();const navigateTo=useCallback(async url=>{if(status===\"no-meta-tag-found\"){return;}try{// Ideally, we would directly expose `routeId` in the search index so that\n// we don't need to infer it from the URL.\nconst{routeId,pathVariables}=inferInitialRouteFromPath(router.routes,url);const route=router.getRoute?.(routeId);onDismiss();await route?.page?.preload?.();router.navigate?.(routeId,null,pathVariables,false);}catch(error){window.location.href=url;}},[status]);const handleKeyDown=event=>{const maxIndex=results.length-1;switch(event.code){case\"ArrowUp\":event.preventDefault();if(isKeyboardNavigationDisabled){setIsKeyboardNavigationDisabled(false);break;}setSelected(previousSelected=>({index:clamp(0,maxIndex,previousSelected.index-1),scroll:true}));break;case\"ArrowDown\":event.preventDefault();if(isKeyboardNavigationDisabled){setIsKeyboardNavigationDisabled(false);break;}setSelected(previousSelected=>({index:clamp(0,maxIndex,previousSelected.index+1),scroll:true}));break;case\"Escape\":break;case\"Enter\":if(selectedResult){navigateTo(selectedResult.url);}break;default:event.stopPropagation();}};const showNoResults=results.length===0&&deferredQuery.length>1&&status!==\"loading\";const showDivider=Boolean((deferredQuery.length>0&&results.length>0||showNoResults)&&status!==\"loading\"&&props.inputOptions&&props.inputOptions.dividerType!==\"none\");const isItemContained=Boolean(props.resultOptions&&props.resultOptions.itemType===\"contained\");const spacing=isItemContained?theme.spacing:10;const listPaddingTop=showDivider&&isItemContained?spacing+theme.gapBetweenResults*2:0;useEffect(()=>{if(!selected.scroll)return;const element=selectedResultRow.current;if(!element)return;scrollIntoView(element,scrollView.current,{offsetTop:showDivider&&isItemContained?listPaddingTop:0,offsetBottom:isItemContained?spacing:0});// `showDivider` and `isItemContained` are not dependencies because\n// they will be the latest values when `selected` changes. And including\n// them will cause unnecessary scrolling into view.\n},[selected]);return /*#__PURE__*/_jsxs(LayoutContainer,{layoutType:layoutType,modalOptions:modalOptions,theme:theme,onKeyDown:handleKeyDown,onDismiss:onDismiss,children:[/*#__PURE__*/_jsxs(ModalContainer,{layoutType:layoutType,theme:theme,heightIsStatic:modalOptions.heightIsStatic,heightTransition:modalOptions.heightTransition,heightDeps:[results.length,showNoResults],children:[/*#__PURE__*/_jsx(Input,{autofocus:true,ref:input,onChange:setQuery,value:query,theme:theme,status:status,iconType:inputOptions.iconOptions.iconType,placeholder:inputOptions.placeholderOptions.placeholderText,clearButtonType:inputOptions?inputOptions.clearButtonType:undefined,clearButtonText:inputOptions.clearButtonText}),showDivider&&/*#__PURE__*/_jsx(Divider,{theme:theme,type:inputOptions.dividerType}),/*#__PURE__*/_jsx(ScrollView,{ref:scrollView,theme:theme,children:/*#__PURE__*/_jsxs(\"ul\",{\"aria-live\":\"polite\",style:{display:\"flex\",flexDirection:\"column\",width:`calc(100% - ${theme.scrollBarWidth}px)`,padding:0,paddingTop:listPaddingTop,paddingBottom:results.length&&isItemContained?spacing:0,gap:theme.gapBetweenResults,margin:0},children:[results.map((result,index)=>{const isSelected=index===selected.index;return /*#__PURE__*/_jsx(ResultRow,{ref:isSelected?selectedResultRow:null,index:index,result:result,prevMousePositionRef:prevMousePositionRef,selected:!isKeyboardNavigationDisabled&&isSelected,type:props.resultOptions.itemType,subtitleType:props.resultOptions.subtitleOptions.subtitleType,theme:theme,localeSlug:localeSlug,onMouseMove:handleResultRowMouseMove,onPointerDown:handleResultRowPointerDown,onNavigateTo:navigateTo},result.url);}),showNoResults&&/*#__PURE__*/_jsx(\"li\",{style:{paddingTop:verticalSpacing-listPaddingTop,paddingBottom:verticalSpacing,lineHeight:\"2em\",paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,height:\"Sidebar\"?\"100%\":\"auto\"},children:/*#__PURE__*/_jsx(\"h3\",{style:{...resultTitle,textAlign:\"center\",lineHeight:`calc(${theme.inputFontSize} * 2)`,color:theme.subtitleColor,...theme.titleFont},children:\"No results\"})})]})})]}),/*#__PURE__*/_jsx(StatusMessage,{status:status,layoutType:layoutType,theme:theme})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"ResultRow\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultTitleType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultItemType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchLayoutType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchInputDividerType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchTheme\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultSubtitleType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchModal\":{\"type\":\"reactComponent\",\"name\":\"SearchModal\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"SearchIconType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Input\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchEntryType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchInputClearButtonType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{useEffect,useState}from\"react\";function getViewportSize(){if(typeof window===\"undefined\"){return{width:0,height:0};}return{width:window.innerWidth,height:window.innerHeight};}export function useViewportSizeState(getState){const[state,setState]=useState(()=>getState(getViewportSize()));useEffect(()=>{const handleWindowResize=()=>setState(getState(getViewportSize()));window.addEventListener(\"resize\",handleWindowResize);return()=>{window.removeEventListener(\"resize\",handleWindowResize);};},[]);return state;}\nexport const __FramerMetadata__ = {\"exports\":{\"useViewportSizeState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useViewportSizeState.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{createPortal}from\"react-dom\";import{useRef,useState,useEffect,forwardRef}from\"react\";import{AnimatePresence,motion}from\"framer-motion\";import{SearchIcon}from\"https://framerusercontent.com/modules/LV9trClbmNwd5PVj9l8y/L4rFqMGNzGSwRZpGTGF3/Icons.js\";import{addPropertyControls,ControlType,RenderTarget,withCSS}from\"framer\";import{SearchModal,SearchResultItemType,SearchResultTitleType,SearchResultSubtitleType,SearchInputDividerType,SearchInputClearButtonType,SearchLayoutType,SearchIconType}from\"https://framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/lCNMpf6DznmmCJRndYjM/SearchModal.js\";import{useViewportSizeState}from\"https://framerusercontent.com/modules/hqEf5wXaAewP8VPuaZ98/5A0QGVeEr2cwheQpIuEG/useViewportSizeState.js\";import{titleCase,DEFAULT_FONT_FAMILY,isEmptyObject,animationKeyFromLayout,checkIfOverLimit}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";import{Browser}from\"https://framerusercontent.com/modules/PJVBcBLmDteTEAZh3J9Z/keXJyjyE9VnzUcDMayjg/browser.js\";var EntryPointOptions;// SITE SEARCH\n// By Anthony and Hunter\n(function(EntryPointOptions){EntryPointOptions[\"icon\"]=\"Icon\";EntryPointOptions[\"input\"]=\"Input\";})(EntryPointOptions||(EntryPointOptions={}));function buildShadow(shadowProperty,fallback=\"none\"){if(!shadowProperty)return fallback;const{x,y,blur,color,spread}=shadowProperty;return`${x}px ${y}px ${blur}px ${spread}px ${color}`;}const Overlay=/*#__PURE__*/forwardRef(function Overlay(props,ref){const{layoutType,theme,onDismiss}=props;useEffect(()=>{const handleKeyDown=event=>{if(event.code===\"Escape\"){event.stopPropagation();onDismiss();}};const handlePointerDown=event=>{if(event.pointerType!==\"touch\")return;const isWithinSearchHeader=Boolean(event.target instanceof Element&&event.target.closest(\"[role=search]\"));if(isWithinSearchHeader)return;if(document.activeElement instanceof HTMLInputElement){document.activeElement.blur();}};// Event listener added to window so that pressing escape key to dimiss\n// can be invoked from anywhere on the page.\nwindow.addEventListener(\"keydown\",handleKeyDown);window.addEventListener(\"pointerdown\",handlePointerDown,{capture:true});// Disable page scrolling when overlay is shown.\ndocument.body.classList.add(bodyOverflowHidden);return()=>{window.removeEventListener(\"keydown\",handleKeyDown);window.removeEventListener(\"pointerdown\",handlePointerDown,{capture:true});document.body.classList.remove(bodyOverflowHidden);};},[]);return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(\"div\",{ref:ref,className:\"__framer-search-modal-container\",role:\"presentation\",style:{...backdropStyles,zIndex:props.backdropOptions.zIndex,justifyContent:layoutType===SearchLayoutType.Sidebar?\"flex-start\":\"center\"},onClick:onDismiss,children:[/*#__PURE__*/_jsx(motion.div,{role:\"presentation\",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0,transition:{duration:0}},transition:theme.overlayTransition,style:{top:0,left:0,right:0,bottom:0,width:\"100%\",height:\"100%\",boxSizing:\"border-box\",position:\"absolute\",touchAction:\"none\",backgroundColor:props.backdropOptions.backgroundColor}}),/*#__PURE__*/_jsx(SearchModal,{urlScope:props.urlScope,layoutType:layoutType,inputOptions:props.inputOptions,resultOptions:props.resultOptions,modalOptions:props.modalOptions,backdropOptions:props.backdropOptions,theme:props.theme,onDismiss:onDismiss})]}),document.body);});const backdropStyles={width:\"100%\",boxSizing:\"border-box\",willChange:\"transform\",position:\"fixed\",display:\"flex\",alignItems:\"flex-start\",top:0,left:0,right:0,bottom:0};const containerStyle={height:\"100%\",display:\"flex\",borderRadius:10,cursor:\"inherit\",overflow:\"hidden\"};const bodyOverflowHidden=\"__framer-overflow-hidden\";/**\n *\n * SEARCH\n * By Anthony and Hunter\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n *\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 40\n * @framerIntrinsicHeight 40\n */const EntryPoint=withCSS(function EntryPoint(props){const overlay=useRef(null);const[isOpen,setIsOpen]=useState(false);const[isOverLimit,setIsOverLimit]=useState(false);const[isSafariTouchDevice,setIsSafariTouchDevice]=useState(false);const[isOnCanvas]=useState(()=>RenderTarget.current()===RenderTarget.canvas);useEffect(()=>{setIsOverLimit(checkIfOverLimit());setIsSafariTouchDevice(Browser.isSafari()&&Browser.isTouch());},[]);const baseInputFontSize=props.inputOptions?.inputFont?.fontSize?props.inputOptions.inputFont.fontSize:\"16px\";// The font size is set to a minimum of `16px` on Safari with touch screens\n// because otherwise Safari will zoom in slightly if the type size is smaller.\nconst inputFontSize=isSafariTouchDevice?`max(16px, ${baseInputFontSize})`:baseInputFontSize;const layoutType=useViewportSizeState(size=>{if(size.width<props.modalOptions.width+10){return SearchLayoutType.FixedTop;}// @ts-ignore – Fallback\nreturn props.modalOptions.layoutType||props.layoutType;});const theme={subtitleColor:props.resultOptions.subtitleOptions.subtitleColor,backgroundColor:props.modalOptions.backgroundColor,foregroundColor:props.resultOptions.titleColor,placeholderColor:props.inputOptions.placeholderOptions.placeholderColor,titleFont:props.resultOptions?.titleFont&&!isEmptyObject(props.resultOptions.titleFont)?props.resultOptions.titleFont:{fontSize:14,fontFamily:DEFAULT_FONT_FAMILY,fontWeight:500},subtitleFont:props.resultOptions.subtitleOptions?.subtitleFont&&!isEmptyObject(props.resultOptions.subtitleOptions.subtitleFont)?props.resultOptions.subtitleOptions.subtitleFont:{fontSize:12,fontFamily:DEFAULT_FONT_FAMILY,fontWeight:500},inputFont:props.inputOptions?.inputFont&&!isEmptyObject(props.inputOptions.inputFont)?props.inputOptions.inputFont:{fontSize:16,fontFamily:DEFAULT_FONT_FAMILY,fontWeight:500},// Keep separate so we can more easily override\ninputFontSize:inputFontSize,width:props.modalOptions.width,offsetTop:props.modalOptions.top,borderRadius:props.modalOptions.borderRadius,shadow:buildShadow(props.modalOptions.shadow),entryIconColor:props.iconColor,entryIconSize:props.iconSize,entryIconImage:props.iconImage,inputIconSize:props.inputOptions.iconOptions.iconSize,inputIconColor:props.inputOptions.iconOptions.iconColor,inputIconImage:props.inputOptions.iconOptions.iconImage,gapBetweenStatusAndSearch:16,gapBetweenResults:1,scrollBarWidth:20,margin:10,spacing:8,zIndex:props.backdropOptions.zIndex,horizontalSpacing:20,overlayTransition:props.backdropOptions.transition};const handleClick=event=>{// Both need to keep `autofocus` working on the search input.\nevent.preventDefault();event.stopPropagation();if(isOverLimit)return;setIsOpen(true);};return /*#__PURE__*/_jsxs(\"div\",{style:{...containerStyle,...props.style,pointerEvents:isOverLimit?\"none\":\"auto\",opacity:isOverLimit?.4:1},children:[/*#__PURE__*/_jsx(\"button\",{\"aria-label\":\"Search Icon\",style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"none\",cursor:\"inherit\",color:\"inherit\",border:\"none\",borderRadius:10,padding:0},onClick:handleClick,children:props.iconType===SearchIconType.Custom&&theme.entryIconImage?/*#__PURE__*/_jsx(\"img\",{alt:\"icon entry point for Site Search\",src:theme.entryIconImage.src,width:theme.entryIconSize,height:theme.entryIconSize}):/*#__PURE__*/_jsx(SearchIcon,{color:theme.entryIconColor,width:theme.entryIconSize,height:theme.entryIconSize})}),/*#__PURE__*/_jsx(AnimatePresence,{children:isOpen&&!isOnCanvas&&/*#__PURE__*/_jsx(Overlay,{ref:overlay,layoutType:layoutType,urlScope:props.urlScope,inputOptions:props.inputOptions,resultOptions:props.resultOptions,backdropOptions:props.backdropOptions,modalOptions:props.modalOptions,theme:theme,onDismiss:()=>setIsOpen(false)})})]});},[// Prevent scrolling on iOS Safari when Input is focused.\n// From: https://gist.github.com/kiding/72721a0553fa93198ae2bb6eefaa3299\n`\n        @keyframes __framer-blink-input {\n            0% { opacity: 0; }\n            100% { opacity: 1; }\n        }\n\n        .__framer-search-modal-container input:focus {\n            animation: __framer-blink-input 0.01s;\n        }\n        `,// Allow styling of input placeholder\n`\n         .__framer-search-modal-container input::placeholder, \n         .__framer-search-modal-container input::-webkit-input-placeholder { \n            color: var(--framer-search-placeholder-color, #999999);\n            opacity: 1;\n        }\n        `,// Allow fallback to 100vh when dvh unit is not supported.\n`\n        .__framer-search-modal-container {\n            height: 100vh;\n            height: 100dvh;\n        }\n        .__framer-search-modal-container .__framer-max-height-80dvh {\n            max-height: 80vh;\n            max-height: 80dvh;\n        }\n        `,`\n        body.${bodyOverflowHidden} {\n            overflow: hidden;\n        }`,// Increase hit target\n`\n        button.__framer-search-clear-button {\n            position: relative;\n        }\n        button.__framer-search-clear-button::after {\n            content: \"\";\n            position: absolute;\n            top: -10px;\n            right: -10px;\n            bottom: -10px;\n            left: -10px;\n        }`],\"framer-lib-search\");export default EntryPoint;addPropertyControls(EntryPoint,{urlScope:{title:\"Scope\",// @ts-ignore - Internal\ntype:ControlType.PageScope},// entryType: {\n//     title: \"Type\",\n//     type: ControlType.Enum,\n//     options: Object.values(SearchEntryType),\n//     optionTitles: Object.values(SearchEntryType).map(titleCase),\n//     displaySegmentedControl: true,\n// },\niconType:{title:\"Icon\",type:ControlType.Enum,options:Object.values(SearchIconType),optionTitles:Object.values(SearchIconType).map(titleCase),displaySegmentedControl:true},iconColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"#333\",hidden:props=>props.iconType===SearchIconType.Custom},iconImage:{title:\"File\",type:ControlType.ResponsiveImage,allowedFileTypes:[\"jpg\",\"png\",\"svg\"],hidden:props=>props.iconType===SearchIconType.Default},iconSize:{title:\"Size\",type:ControlType.Number,displayStepper:true,defaultValue:24},inputOptions:{title:\"Input\",type:ControlType.Object,buttonTitle:\"Icon, Styles\",controls:{iconOptions:{title:\"Icon\",type:ControlType.Object,buttonTitle:\"Color, Size\",controls:{iconType:{title:\"Icon\",type:ControlType.Enum,options:Object.values(SearchIconType),optionTitles:Object.values(SearchIconType).map(titleCase),displaySegmentedControl:true},iconColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"rgba(0, 0, 0, 0.45)\",hidden:({iconType})=>{return iconType===SearchIconType.Custom;}},iconImage:{title:\"File\",type:ControlType.ResponsiveImage,allowedFileTypes:[\"jpg\",\"png\",\"svg\"],hidden:({iconType})=>iconType===SearchIconType.Default},iconSize:{title:\"Icon Size\",type:ControlType.Number,displayStepper:true,defaultValue:18,min:0,max:100}}},inputFont:{title:\"Font\",// @ts-ignore – Internal\ntype:ControlType.Font,displayFontSize:true},textColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"#333\"},placeholderOptions:{title:\"Placeholder\",type:ControlType.Object,buttonTitle:\"Color, Text\",controls:{placeholderText:{title:\"Text\",type:ControlType.String,defaultValue:\"Search...\"},placeholderColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"rgba(0,0,0,0.4)\"}}},dividerType:{title:\"Divider\",type:ControlType.Enum,options:Object.values(SearchInputDividerType),optionTitles:Object.keys(SearchInputDividerType).map(titleCase),defaultValue:SearchInputDividerType.FullWidth},clearButtonType:{title:\"Clear Type\",type:ControlType.Enum,options:Object.values(SearchInputClearButtonType),optionTitles:Object.keys(SearchInputClearButtonType).map(titleCase),defaultValue:SearchInputClearButtonType.Icon},clearButtonText:{title:\"Clear Text\",type:ControlType.String,defaultValue:\"Clear\",hidden:props=>props.clearButtonType!==SearchInputClearButtonType.Text}}},modalOptions:{title:\"Modal\",buttonTitle:\"Layout, Width\",type:ControlType.Object,controls:{layoutType:{title:\"Layout\",type:ControlType.Enum,options:Object.keys(SearchLayoutType),optionTitles:Object.values(SearchLayoutType).map(titleCase),defaultValue:SearchLayoutType.QuickMenu},width:{title:\"Width\",type:ControlType.Number,defaultValue:500,min:200,max:1e3,displayStepper:true,step:5,hidden:props=>props.layoutType===SearchLayoutType.FixedTop},top:{title:\"Top\",type:ControlType.Number,defaultValue:0,min:0,max:1e3,displayStepper:true,hidden:props=>props.layoutType!==SearchLayoutType.FixedTop},heightIsStatic:{title:\"Height\",type:ControlType.Boolean,enabledTitle:\"Instant\",disabledTitle:\"Animate\",hidden:({layoutType})=>layoutType!==SearchLayoutType.QuickMenu},heightTransition:{title:\"Type\",type:ControlType.Transition,defaultValue:{type:\"spring\",stiffness:800,damping:60},hidden:({heightIsStatic,layoutType})=>layoutType!==SearchLayoutType.QuickMenu||heightIsStatic},borderRadius:{title:\"Radius\",type:ControlType.Number,defaultValue:16,displayStepper:true,min:0,hidden:({layoutType})=>layoutType!==SearchLayoutType.QuickMenu},shadow:{buttonTitle:\"Options\",type:ControlType.Object,defaultValue:{x:0,y:20,blur:40,spread:0,color:\"rgba(0,0,0,0.2)\"},controls:{color:{type:ControlType.Color,defaultValue:\"rgba(0,0,0,0.2)\"},x:{type:ControlType.Number,defaultValue:0},y:{type:ControlType.Number,defaultValue:20},blur:{type:ControlType.Number,defaultValue:40},spread:{type:ControlType.Number,defaultValue:0}}},backgroundColor:{title:\"Background\",type:ControlType.Color,defaultValue:\"#FFF\"},[animationKeyFromLayout(SearchLayoutType.QuickMenu)]:{title:\"Animation\",type:ControlType.Object,icon:\"effect\",hidden:({layoutType})=>layoutType!==SearchLayoutType.QuickMenu,optional:true,buttonTitle:\"Options\",controls:{opacity:{type:ControlType.Number,defaultValue:.5,step:.1,min:0,max:1},scale:{type:ControlType.Number,defaultValue:.75,step:.1,min:0,max:2},// rotate: {\n//     type: ControlType.Number,\n//     defaultValue: 0,\n//     min: -360,\n//     max: 360,\n// },\nx:{type:ControlType.Number,defaultValue:0,min:-500,max:500},y:{type:ControlType.Number,defaultValue:0,min:-500,max:500},transition:{type:ControlType.Transition}}},[animationKeyFromLayout(SearchLayoutType.FixedTop)]:{title:\"Animation\",type:ControlType.Object,icon:\"effect\",buttonTitle:\"Options\",hidden:({layoutType})=>layoutType!==SearchLayoutType.FixedTop,optional:true,controls:{opacity:{type:ControlType.Number,defaultValue:.8,step:.1,min:0,max:1},y:{type:ControlType.Number,defaultValue:0,min:-100,max:100},transition:{type:ControlType.Transition}}},[animationKeyFromLayout(SearchLayoutType.Sidebar)]:{title:\"Animation\",type:ControlType.Object,icon:\"effect\",buttonTitle:\"Options\",hidden:({layoutType})=>layoutType!==SearchLayoutType.Sidebar,optional:true,controls:{opacity:{type:ControlType.Number,defaultValue:.8,step:.1,min:0,max:1},x:{type:ControlType.Number,defaultValue:0,min:-1e3,max:1e3},transition:{type:ControlType.Transition}}}}},resultOptions:{title:\"Results\",buttonTitle:\"Fonts, Style\",type:ControlType.Object,defaultValue:{},// description:\n//     \"Learn more about how to use Site Search [here](https://framer.com/learn/site-search)\",\ncontrols:{itemType:{title:\"Style\",type:ControlType.Enum,options:Object.values(SearchResultItemType),optionTitles:Object.keys(SearchResultItemType).map(titleCase),defaultValue:SearchResultItemType.FullWidth},titleFont:{title:\"Title\",// @ts-ignore - Internal\ntype:ControlType.Font,defaultValue:{fontSize:15},displayFontSize:true},titleColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"#333\"},titleType:{title:\"Content\",type:ControlType.Enum,options:Object.values(SearchResultTitleType),optionTitles:Object.keys(SearchResultTitleType).map(titleCase),defaultValue:SearchResultTitleType.H1,displaySegmentedControl:true},subtitleOptions:{type:ControlType.Object,title:\"Subtitle\",buttonTitle:\"Font, Content\",controls:{subtitleFont:{title:\"Font\",// @ts-ignore - Internal\ntype:ControlType.Font,defaultValue:{fontSize:13},displayFontSize:true},subtitleColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"rgba(0, 0, 0, 0.4)\"},subtitleType:{title:\"Content\",type:ControlType.Enum,options:Object.values(SearchResultSubtitleType),optionTitles:Object.keys(SearchResultSubtitleType).map(titleCase),defaultValue:SearchResultSubtitleType.Path}}}}},backdropOptions:{title:\"Backdrop\",type:ControlType.Object,buttonTitle:\"Color, Z Index\",controls:{backgroundColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"rgba(0, 0, 0, 0.8)\"},zIndex:{title:\"Z Index\",type:ControlType.Number,defaultValue:10,displayStepper:true,min:0,max:10},transition:{type:ControlType.Transition}}}});EntryPoint.displayName=\"Search\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"EntryPoint\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"40\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"*\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"40\"}},\"ResponsiveImage\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Shadow\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EntryPointProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"WindowAnimation\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (98b71dc)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const enabledGestures={A11MAxUvI:{hover:true}};const cycleOrder=[\"A11MAxUvI\",\"BttlXtKpW\"];const serializationHash=\"framer-4MtdJ\";const variantClassNames={A11MAxUvI:\"framer-v-107t2or\",BttlXtKpW:\"framer-v-if8nz\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Active:\"BttlXtKpW\",Default:\"A11MAxUvI\"};const getProps=({height,id,link,menuText,width,...props})=>{return{...props,Sj0RtSr49:link??props.Sj0RtSr49,sjByrZpXy:menuText??props.sjByrZpXy??\"Your Text\",variant:humanReadableVariantMap[props.variant]??props.variant??\"A11MAxUvI\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,sjByrZpXy,Sj0RtSr49,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"A11MAxUvI\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(gestureVariant===\"A11MAxUvI-hover\")return true;if(baseVariant===\"BttlXtKpW\")return true;return false;};const isDisplayed1=()=>{if(baseVariant===\"BttlXtKpW\")return false;return true;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{motionChild:true,nodeId:\"A11MAxUvI\",scopeId:\"srWlEMRHU\",...addPropertyOverrides({\"A11MAxUvI-hover\":{href:Sj0RtSr49,openInNewTab:false,smoothScroll:true}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-107t2or\",className,classNames)} framer-yok5cb`,\"data-framer-name\":\"Default\",layoutDependency:layoutDependency,layoutId:\"A11MAxUvI\",ref:refBinding,style:{...style},...addPropertyOverrides({\"A11MAxUvI-hover\":{\"data-framer-name\":undefined},BttlXtKpW:{\"data-framer-name\":\"Active\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7UGx1cyBKYWthcnRhIFNhbnMtNTAw\",\"--framer-font-family\":'\"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"100%\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(51, 51, 51))\"},children:\"Home\"})}),className:\"framer-9p5gug\",\"data-framer-name\":\"default-text\",fonts:[\"GF;Plus Jakarta Sans-500\"],layoutDependency:layoutDependency,layoutId:\"XQg4xbTHW\",style:{\"--extracted-r6o4lv\":\"rgb(51, 51, 51)\",\"--framer-paragraph-spacing\":\"0px\"},text:sjByrZpXy,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"A11MAxUvI-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7UGx1cyBKYWthcnRhIFNhbnMtNTAw\",\"--framer-font-family\":'\"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"100%\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(51, 51, 51))\"},children:\"Your Text\"})})}},baseVariant,gestureVariant)}),isDisplayed()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-17zskye\",layoutDependency:layoutDependency,layoutId:\"QEeKkNvwh\",style:{backgroundColor:\"rgb(195, 28, 18)\",borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8}}),isDisplayed1()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7UGx1cyBKYWthcnRhIFNhbnMtNTAw\",\"--framer-font-family\":'\"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"100%\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(51, 51, 51))\"},children:\"Home\"})}),className:\"framer-1lrrqs6\",\"data-framer-name\":\"hover-text\",fonts:[\"GF;Plus Jakarta Sans-500\"],layoutDependency:layoutDependency,layoutId:\"GRY4aWkWI\",style:{\"--extracted-r6o4lv\":\"rgb(51, 51, 51)\",\"--framer-paragraph-spacing\":\"0px\"},text:sjByrZpXy,variants:{\"A11MAxUvI-hover\":{\"--extracted-r6o4lv\":\"rgb(195, 28, 18)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"A11MAxUvI-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7UGx1cyBKYWthcnRhIFNhbnMtNTAw\",\"--framer-font-family\":'\"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"100%\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(195, 28, 18))\"},children:\"Your Text\"})})}},baseVariant,gestureVariant)})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-4MtdJ.framer-yok5cb, .framer-4MtdJ .framer-yok5cb { display: block; }\",\".framer-4MtdJ.framer-107t2or { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 4px; height: 24px; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 5px 0px 0px 0px; position: relative; width: min-content; }\",\".framer-4MtdJ .framer-9p5gug, .framer-4MtdJ .framer-1lrrqs6 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-4MtdJ .framer-17zskye { align-self: stretch; flex: none; height: 2px; overflow: visible; position: relative; width: auto; }\",\".framer-4MtdJ.framer-v-if8nz.framer-107t2or { cursor: unset; }\",\".framer-4MtdJ.framer-v-107t2or.hover.framer-107t2or { justify-content: flex-end; padding: 0px; text-decoration: none; }\",\".framer-4MtdJ.framer-v-107t2or.hover .framer-9p5gug { order: 0; }\",\".framer-4MtdJ.framer-v-107t2or.hover .framer-17zskye { order: 2; }\",\".framer-4MtdJ.framer-v-107t2or.hover .framer-1lrrqs6 { order: 1; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 24\n * @framerIntrinsicWidth 60\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"fixed\"]},\"BttlXtKpW\":{\"layout\":[\"auto\",\"fixed\"]},\"pZSVu4uJ9\":{\"layout\":[\"auto\",\"fixed\"]}}}\n * @framerVariables {\"sjByrZpXy\":\"menuText\",\"Sj0RtSr49\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramersrWlEMRHU=withCSS(Component,css,\"framer-4MtdJ\");export default FramersrWlEMRHU;FramersrWlEMRHU.displayName=\"Menu Item\";FramersrWlEMRHU.defaultProps={height:24,width:60};addPropertyControls(FramersrWlEMRHU,{variant:{options:[\"A11MAxUvI\",\"BttlXtKpW\"],optionTitles:[\"Default\",\"Active\"],title:\"Variant\",type:ControlType.Enum},sjByrZpXy:{defaultValue:\"Your Text\",description:\"\",displayTextArea:false,title:\"Menu Text\",type:ControlType.String},Sj0RtSr49:{title:\"Link\",type:ControlType.Link}});addFonts(FramersrWlEMRHU,[{explicitInter:true,fonts:[{cssFamilyName:\"Plus Jakarta Sans\",source:\"google\",style:\"normal\",uiFamilyName:\"Plus Jakarta Sans\",url:\"https://fonts.gstatic.com/s/plusjakartasans/v12/LDIbaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_m07NTxXUEKi4Rw.woff2\",weight:\"500\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramersrWlEMRHU\",\"slots\":[],\"annotations\":{\"framerVariables\":\"{\\\"sjByrZpXy\\\":\\\"menuText\\\",\\\"Sj0RtSr49\\\":\\\"link\\\"}\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"24\",\"framerColorSyntax\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"BttlXtKpW\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"pZSVu4uJ9\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]}}}\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicWidth\":\"60\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./srWlEMRHU.map","// Generated by Framer (98b71dc)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getPropertyControls,Link,ResolveLinks,resolvePageScope,RichText,SmartComponentScopedContainer,SVG,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Search from\"https://framerusercontent.com/modules/6wAE2eMb2Tl3zrU7u4UL/mKj6QS2p4Cgdaa0WrZKY/Search.js\";import Button from\"https://framerusercontent.com/modules/umxKgqmShKGtv5RWFHHs/bYME2kO9gNpusUZ5IYsv/o30ep91SI.js\";import MenuItem from\"https://framerusercontent.com/modules/bfQDT3m69ihltHWkS4cA/PuKglzk6joNj4LKkNE2U/srWlEMRHU.js\";const MenuItemFonts=getFonts(MenuItem);const SearchFonts=getFonts(Search);const ButtonFonts=getFonts(Button);const MenuItemControls=getPropertyControls(MenuItem);const cycleOrder=[\"mTBl5cQVG\",\"T9ifHXmeq\",\"ce6njx8s9\",\"U6bFo7cUa\",\"P6iHCo37F\"];const serializationHash=\"framer-zNm84\";const variantClassNames={ce6njx8s9:\"framer-v-p0reza\",mTBl5cQVG:\"framer-v-1bqlm9h\",P6iHCo37F:\"framer-v-1tb32c7\",T9ifHXmeq:\"framer-v-l4f32n\",U6bFo7cUa:\"framer-v-1lboj7o\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:40,delay:0,mass:1,stiffness:400,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableEnumMap={Active:\"BttlXtKpW\",Default:\"A11MAxUvI\"};const humanReadableVariantMap={\"Phone Open\":\"U6bFo7cUa\",\"Tablet Open\":\"P6iHCo37F\",Desktop:\"mTBl5cQVG\",Phone:\"ce6njx8s9\",Tablet:\"T9ifHXmeq\"};const getProps=({height,id,link,link2,link3,link4,link5,menuText1,menuText2,menuText3,menuText4,menuText5,state1,state2,state3,state4,state5,width,...props})=>{return{...props,A3U4oXbdG:menuText4??props.A3U4oXbdG??\"Your Text\",dfzzYUW1N:menuText3??props.dfzzYUW1N??\"Your Text\",dt3y3MxYI:menuText1??props.dt3y3MxYI??\"Your Text\",iMRuNJtho:humanReadableEnumMap[state2]??state2??props.iMRuNJtho??\"A11MAxUvI\",ma1F7uS3C:link3??props.ma1F7uS3C,MOxGvbY6v:link??props.MOxGvbY6v,NEUy_GK1M:humanReadableEnumMap[state5]??state5??props.NEUy_GK1M??\"A11MAxUvI\",QOpzIUJfU:humanReadableEnumMap[state3]??state3??props.QOpzIUJfU??\"A11MAxUvI\",RcijcY1nD:menuText2??props.RcijcY1nD??\"Your Text\",SDfOaiEqK:link5??props.SDfOaiEqK,skE6BDBG5:menuText5??props.skE6BDBG5??\"Your Text\",V4Ay25PML:humanReadableEnumMap[state4]??state4??props.V4Ay25PML??\"A11MAxUvI\",variant:humanReadableVariantMap[props.variant]??props.variant??\"mTBl5cQVG\",VBUBv6lYk:link2??props.VBUBv6lYk,WWQtZBO1A:humanReadableEnumMap[state1]??state1??props.WWQtZBO1A??\"A11MAxUvI\",xKRAWnAb5:link4??props.xKRAWnAb5};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,WWQtZBO1A,iMRuNJtho,QOpzIUJfU,V4Ay25PML,NEUy_GK1M,dt3y3MxYI,RcijcY1nD,dfzzYUW1N,A3U4oXbdG,skE6BDBG5,MOxGvbY6v,VBUBv6lYk,ma1F7uS3C,xKRAWnAb5,SDfOaiEqK,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"mTBl5cQVG\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap1h4z3ez=activeVariantCallback(async(...args)=>{setVariant(\"P6iHCo37F\");});const onTap1dmgnhy=activeVariantCallback(async(...args)=>{setVariant(\"U6bFo7cUa\");});const onTap19trrx=activeVariantCallback(async(...args)=>{setVariant(\"ce6njx8s9\");});const onTapxpzf9q=activeVariantCallback(async(...args)=>{setVariant(\"T9ifHXmeq\");});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"T9ifHXmeq\",\"ce6njx8s9\"].includes(baseVariant))return false;return true;};const router=useRouter();const isDisplayed1=()=>{if(baseVariant===\"ce6njx8s9\")return false;return true;};const isDisplayed2=()=>{if([\"T9ifHXmeq\",\"ce6njx8s9\",\"U6bFo7cUa\",\"P6iHCo37F\"].includes(baseVariant))return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.nav,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1bqlm9h\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"mTBl5cQVG\",ref:refBinding,style:{backgroundColor:\"rgb(255, 255, 255)\",...style},...addPropertyOverrides({ce6njx8s9:{\"data-framer-name\":\"Phone\"},P6iHCo37F:{\"data-framer-name\":\"Tablet Open\"},T9ifHXmeq:{\"data-framer-name\":\"Tablet\"},U6bFo7cUa:{\"data-framer-name\":\"Phone Open\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(Link,{href:MOxGvbY6v,motionChild:true,nodeId:\"YlJrrr0qc\",openInNewTab:false,scopeId:\"Csf9uXxSx\",smoothScroll:true,children:/*#__PURE__*/_jsxs(motion.a,{className:\"framer-1wn64vb framer-152hl65\",\"data-framer-name\":\"Logo\",layoutDependency:layoutDependency,layoutId:\"YlJrrr0qc\",children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-15kat4x\",\"data-framer-name\":\"icon-park:oval-love-two\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:40,intrinsicWidth:40,layoutDependency:layoutDependency,layoutId:\"kcP8RyE_d\",svg:'<svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<path d=\"M19.9375 12.9468C16.8499 10.1917 13.207 9.18542 10.5564 10.7157C6.79944 12.8848 6.45903 19.3287 9.79609 25.1087C11.9901 28.9088 15.2273 31.4757 18.2554 32.172\" stroke=\"url(#paint0_linear_785_237)\" stroke-width=\"2.50272\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\\n<path d=\"M32.4941 16.7982C32.4082 14.0861 31.3794 11.8334 29.4435 10.7157C25.6866 8.54662 19.9357 11.4738 16.5987 17.2538C13.2616 23.0337 13.602 29.4777 17.359 31.6468C19.1556 32.684 21.4081 32.5559 23.6346 31.5077\" stroke=\"url(#paint1_linear_785_237)\" stroke-width=\"2.50272\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\\n<path d=\"M24.8214 31.6119C25.0331 31.6622 25.2553 31.6217 25.4343 31.5002L27.966 29.7824C28.1658 29.6468 28.3308 29.4661 28.4478 29.2549L32.1568 22.5676C32.4977 21.953 32.7086 21.2622 32.692 20.5555C32.6734 19.7622 32.4414 19.336 32.1098 19.1483C31.7785 18.9601 31.2977 18.9827 30.6186 19.3804C30.0137 19.7348 29.5406 20.2773 29.1996 20.8917L27.9438 23.1558L22.6208 24.435C22.5464 24.4352 22.4735 24.4552 22.4095 24.4929C22.3455 24.5307 22.2928 24.5849 22.2568 24.6499L21.4187 26.1611C21.2826 26.4063 21.4195 26.7166 21.693 26.7829L26.0139 26.6355L24.6983 29.0078L22.8149 29.25C22.75 29.2583 22.6879 29.2818 22.6338 29.3186C22.5797 29.3553 22.5349 29.4042 22.5032 29.4614L21.9917 30.3839C21.8586 30.6239 21.9868 30.9283 22.2523 31.0021L24.8214 31.6119Z\" fill=\"#404040\"/>\\n<defs>\\n<linearGradient id=\"paint0_linear_785_237\" x1=\"26.5\" y1=\"32\" x2=\"22.6692\" y2=\"-1.28545\" gradientUnits=\"userSpaceOnUse\">\\n<stop stop-color=\"#C31313\"/>\\n<stop offset=\"1\" stop-color=\"#F38585\"/>\\n</linearGradient>\\n<linearGradient id=\"paint1_linear_785_237\" x1=\"32\" y1=\"10\" x2=\"14\" y2=\"40\" gradientUnits=\"userSpaceOnUse\">\\n<stop stop-color=\"#C31313\"/>\\n<stop offset=\"1\" stop-color=\"#F38585\"/>\\n</linearGradient>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7UGx1cyBKYWthcnRhIFNhbnMtNzAw\",\"--framer-font-family\":'\"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif',\"--framer-font-size\":\"26.7px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"130%\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(195, 19, 19))\"},children:\"RoamMate!\"})}),className:\"framer-kfrpi8\",\"data-framer-name\":\"Logo Text\",fonts:[\"GF;Plus Jakarta Sans-700\"],layoutDependency:layoutDependency,layoutId:\"HUsjqSnWo\",style:{\"--extracted-r6o4lv\":\"rgb(195, 19, 19)\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"center\",withExternalLayout:true})]})}),isDisplayed()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-ei8004\",\"data-framer-name\":\"Links\",layoutDependency:layoutDependency,layoutId:\"NklUdv1K9\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,y:(componentViewport?.y||0)+(24+((componentViewport?.height||200)-48-56)/2)+16,...addPropertyOverrides({P6iHCo37F:{y:(componentViewport?.y||0)+32+129+16+0},U6bFo7cUa:{y:(componentViewport?.y||0)+32+132+16+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-p4pw8u-container\",layoutDependency:layoutDependency,layoutId:\"CgRNEDevP-container\",nodeId:\"CgRNEDevP\",rendersWithMotion:true,scopeId:\"Csf9uXxSx\",children:/*#__PURE__*/_jsx(MenuItem,{height:\"100%\",id:\"CgRNEDevP\",layoutId:\"CgRNEDevP\",Sj0RtSr49:MOxGvbY6v,sjByrZpXy:dt3y3MxYI,variant:WWQtZBO1A,width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,y:(componentViewport?.y||0)+(24+((componentViewport?.height||200)-48-56)/2)+16,...addPropertyOverrides({P6iHCo37F:{y:(componentViewport?.y||0)+32+129+16+60},U6bFo7cUa:{y:(componentViewport?.y||0)+32+132+16+60}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-x9dpad-container\",layoutDependency:layoutDependency,layoutId:\"o1V0Gg7b_-container\",nodeId:\"o1V0Gg7b_\",rendersWithMotion:true,scopeId:\"Csf9uXxSx\",children:/*#__PURE__*/_jsx(MenuItem,{height:\"100%\",id:\"o1V0Gg7b_\",layoutId:\"o1V0Gg7b_\",Sj0RtSr49:VBUBv6lYk,sjByrZpXy:RcijcY1nD,variant:iMRuNJtho,width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,y:(componentViewport?.y||0)+(24+((componentViewport?.height||200)-48-56)/2)+16,...addPropertyOverrides({P6iHCo37F:{y:(componentViewport?.y||0)+32+129+16+120},U6bFo7cUa:{y:(componentViewport?.y||0)+32+132+16+120}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-14uxnmy-container\",layoutDependency:layoutDependency,layoutId:\"tHJu8Lvgb-container\",nodeId:\"tHJu8Lvgb\",rendersWithMotion:true,scopeId:\"Csf9uXxSx\",children:/*#__PURE__*/_jsx(MenuItem,{height:\"100%\",id:\"tHJu8Lvgb\",layoutId:\"tHJu8Lvgb\",Sj0RtSr49:ma1F7uS3C,sjByrZpXy:dfzzYUW1N,variant:QOpzIUJfU,width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,y:(componentViewport?.y||0)+(24+((componentViewport?.height||200)-48-56)/2)+16,...addPropertyOverrides({P6iHCo37F:{y:(componentViewport?.y||0)+32+129+16+180},U6bFo7cUa:{y:(componentViewport?.y||0)+32+132+16+180}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1h1qr5o-container\",layoutDependency:layoutDependency,layoutId:\"sQovbwDRo-container\",nodeId:\"sQovbwDRo\",rendersWithMotion:true,scopeId:\"Csf9uXxSx\",children:/*#__PURE__*/_jsx(MenuItem,{height:\"100%\",id:\"sQovbwDRo\",layoutId:\"sQovbwDRo\",Sj0RtSr49:xKRAWnAb5,sjByrZpXy:A3U4oXbdG,variant:V4Ay25PML,width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,y:(componentViewport?.y||0)+(24+((componentViewport?.height||200)-48-56)/2)+16,...addPropertyOverrides({P6iHCo37F:{y:(componentViewport?.y||0)+32+129+16+240},U6bFo7cUa:{y:(componentViewport?.y||0)+32+132+16+240}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1acfi2e-container\",layoutDependency:layoutDependency,layoutId:\"krRbTwSHs-container\",nodeId:\"krRbTwSHs\",rendersWithMotion:true,scopeId:\"Csf9uXxSx\",children:/*#__PURE__*/_jsx(MenuItem,{height:\"100%\",id:\"krRbTwSHs\",layoutId:\"krRbTwSHs\",Sj0RtSr49:SDfOaiEqK,sjByrZpXy:skE6BDBG5,variant:NEUy_GK1M,width:\"100%\"})})})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-16zoid1\",layoutDependency:layoutDependency,layoutId:\"Zn4uKkqRK\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-877pw\",layoutDependency:layoutDependency,layoutId:\"rzwv4Pvqq\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-82osme-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"MPMa9R8Dr-container\",nodeId:\"MPMa9R8Dr\",rendersWithMotion:true,scopeId:\"Csf9uXxSx\",children:/*#__PURE__*/_jsx(Search,{backdropOptions:{backgroundColor:\"rgba(0, 0, 0, 0.8)\",transition:{damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"},zIndex:10},height:\"100%\",iconColor:\"rgb(195, 19, 19)\",iconSize:24,iconType:\"default\",id:\"MPMa9R8Dr\",inputOptions:{clearButtonText:\"Clear\",clearButtonType:\"icon\",dividerType:\"fullWidth\",iconOptions:{iconColor:\"rgba(0, 0, 0, 0.45)\",iconSize:18,iconType:\"default\"},inputFont:{},placeholderOptions:{placeholderColor:\"rgba(0, 0, 0, 0.4)\",placeholderText:\"Search...\"},textColor:\"rgb(51, 51, 51)\"},layoutId:\"MPMa9R8Dr\",modalOptions:{backgroundColor:\"rgb(255, 255, 255)\",borderRadius:16,heightIsStatic:true,heightTransition:{damping:60,delay:0,mass:1,stiffness:800,type:\"spring\"},layoutType:\"QuickMenu\",shadow:{blur:40,color:\"rgba(0, 0, 0, 0.2)\",spread:0,x:0,y:20},top:0,width:500},resultOptions:{itemType:\"fullWidth\",subtitleOptions:{subtitleColor:\"rgba(0, 0, 0, 0.4)\",subtitleFont:{},subtitleType:\"path\"},titleColor:\"rgb(51, 51, 51)\",titleFont:{},titleType:\"h1\"},style:{height:\"100%\",width:\"100%\"},urlScope:resolvePageScope({webPageId:\"GgYzXJLyx\"},router),width:\"100%\"})})}),isDisplayed1()&&/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"mC8C5J4Bf\"},implicitPathVariables:undefined},{href:{webPageId:\"mC8C5J4Bf\"},implicitPathVariables:undefined},{href:{webPageId:\"mC8C5J4Bf\"},implicitPathVariables:undefined},{href:{webPageId:\"mC8C5J4Bf\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:41,y:(componentViewport?.y||0)+(24+((componentViewport?.height||200)-48-41)/2)+0+0,...addPropertyOverrides({P6iHCo37F:{y:(componentViewport?.y||0)+32+72+0+0},U6bFo7cUa:{y:(componentViewport?.y||0)+32+72+1.5+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1blrj7f-container\",layoutDependency:layoutDependency,layoutId:\"tJy7eY7qW-container\",nodeId:\"tJy7eY7qW\",rendersWithMotion:true,scopeId:\"Csf9uXxSx\",children:/*#__PURE__*/_jsx(Button,{height:\"100%\",id:\"tJy7eY7qW\",layoutId:\"tJy7eY7qW\",ua_OCtiQN:resolvedLinks[0],variant:\"Z3IiCWULd\",wFG2CeBFZ:\"Login\",width:\"100%\",...addPropertyOverrides({P6iHCo37F:{ua_OCtiQN:resolvedLinks[3]},T9ifHXmeq:{ua_OCtiQN:resolvedLinks[1]},U6bFo7cUa:{ua_OCtiQN:resolvedLinks[2]}},baseVariant,gestureVariant)})})})})]}),isDisplayed2()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-mguorf\",\"data-framer-name\":\"Icon\",layoutDependency:layoutDependency,layoutId:\"AkVCMtIdf\",...addPropertyOverrides({ce6njx8s9:{\"data-highlight\":true,onTap:onTap1dmgnhy},P6iHCo37F:{\"data-highlight\":true,onTap:onTapxpzf9q},T9ifHXmeq:{\"data-highlight\":true,onTap:onTap1h4z3ez},U6bFo7cUa:{\"data-highlight\":true,onTap:onTap19trrx}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1nlcr2l\",\"data-framer-name\":\"Bottom\",layoutDependency:layoutDependency,layoutId:\"Iaoe98S4n\",style:{backgroundColor:\"rgb(153, 153, 153)\",borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,rotate:0},variants:{P6iHCo37F:{rotate:-45},U6bFo7cUa:{rotate:-45}}}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-6oc8oc\",\"data-framer-name\":\"Top\",layoutDependency:layoutDependency,layoutId:\"bUA2dHMRi\",style:{backgroundColor:\"rgb(153, 153, 153)\",borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,rotate:0},variants:{P6iHCo37F:{rotate:45},U6bFo7cUa:{rotate:45}}})]})]})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-zNm84.framer-152hl65, .framer-zNm84 .framer-152hl65 { display: block; }\",\".framer-zNm84.framer-1bqlm9h { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: hidden; padding: 24px 48px 24px 48px; position: relative; width: 1200px; }\",\".framer-zNm84 .framer-1wn64vb { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-zNm84 .framer-15kat4x { flex: none; height: 40px; position: relative; width: 40px; }\",\".framer-zNm84 .framer-kfrpi8 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-zNm84 .framer-ei8004 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 40px; height: min-content; justify-content: center; overflow: visible; padding: 16px; position: relative; width: min-content; }\",\".framer-zNm84 .framer-p4pw8u-container, .framer-zNm84 .framer-x9dpad-container, .framer-zNm84 .framer-14uxnmy-container, .framer-zNm84 .framer-1h1qr5o-container, .framer-zNm84 .framer-1acfi2e-container, .framer-zNm84 .framer-1blrj7f-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-zNm84 .framer-16zoid1 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 32px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-zNm84 .framer-877pw { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-zNm84 .framer-82osme-container { cursor: pointer; flex: none; height: 40px; position: relative; width: 40px; }\",\".framer-zNm84 .framer-mguorf { flex: none; height: 40px; overflow: hidden; position: relative; width: 40px; }\",\".framer-zNm84 .framer-1nlcr2l { flex: none; height: 2px; left: calc(50.00000000000002% - 20px / 2); overflow: hidden; position: absolute; top: calc(62.50000000000002% - 2px / 2); width: 20px; will-change: var(--framer-will-change-override, transform); }\",\".framer-zNm84 .framer-6oc8oc { flex: none; height: 2px; left: calc(50.00000000000002% - 20px / 2); overflow: hidden; position: absolute; top: calc(37.50000000000002% - 2px / 2); width: 20px; will-change: var(--framer-will-change-override, transform); }\",\".framer-zNm84.framer-v-l4f32n.framer-1bqlm9h { width: 810px; }\",\".framer-zNm84.framer-v-l4f32n .framer-1wn64vb, .framer-zNm84.framer-v-1lboj7o .framer-1blrj7f-container, .framer-zNm84.framer-v-1tb32c7 .framer-1blrj7f-container { order: 0; }\",\".framer-zNm84.framer-v-l4f32n .framer-16zoid1 { order: 2; }\",\".framer-zNm84.framer-v-l4f32n .framer-mguorf, .framer-zNm84.framer-v-1tb32c7 .framer-mguorf { cursor: pointer; }\",\".framer-zNm84.framer-v-p0reza.framer-1bqlm9h { padding: 16px; width: 390px; }\",\".framer-zNm84.framer-v-p0reza .framer-16zoid1 { gap: 8px; }\",\".framer-zNm84.framer-v-p0reza .framer-mguorf, .framer-zNm84.framer-v-1lboj7o .framer-mguorf { cursor: pointer; height: 44px; width: 44px; }\",\".framer-zNm84.framer-v-1lboj7o.framer-1bqlm9h { flex-direction: column; gap: 16px; justify-content: flex-start; max-height: calc(var(--framer-viewport-height, 100vh) * 1); overflow: auto; overscroll-behavior: contain; padding: 32px 0px 0px 0px; width: 390px; }\",\".framer-zNm84.framer-v-1lboj7o .framer-1wn64vb, .framer-zNm84.framer-v-1tb32c7 .framer-1wn64vb { order: 0; padding: 0px 0px 16px 0px; }\",\".framer-zNm84.framer-v-1lboj7o .framer-ei8004, .framer-zNm84.framer-v-1tb32c7 .framer-ei8004 { align-content: flex-start; align-items: flex-start; flex-direction: column; gap: 36px; justify-content: flex-start; order: 2; padding: 16px 32px 32px 32px; width: 100%; }\",\".framer-zNm84.framer-v-1lboj7o .framer-16zoid1, .framer-zNm84.framer-v-1tb32c7 .framer-16zoid1 { order: 1; padding: 0px 16px 0px 16px; width: 100%; }\",\".framer-zNm84.framer-v-1lboj7o .framer-877pw, .framer-zNm84.framer-v-1tb32c7 .framer-877pw { flex: 1 0 0px; gap: unset; justify-content: space-between; width: 1px; }\",\".framer-zNm84.framer-v-1lboj7o .framer-82osme-container, .framer-zNm84.framer-v-1tb32c7 .framer-82osme-container { order: 1; }\",\".framer-zNm84.framer-v-1lboj7o .framer-1nlcr2l, .framer-zNm84.framer-v-1lboj7o .framer-6oc8oc, .framer-zNm84.framer-v-1tb32c7 .framer-1nlcr2l, .framer-zNm84.framer-v-1tb32c7 .framer-6oc8oc { top: calc(50.00000000000002% - 2px / 2); }\",\".framer-zNm84.framer-v-1tb32c7.framer-1bqlm9h { flex-direction: column; gap: 16px; justify-content: flex-start; overflow: auto; overscroll-behavior: contain; padding: 32px 0px 0px 0px; width: 810px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 104\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"T9ifHXmeq\":{\"layout\":[\"fixed\",\"auto\"]},\"ce6njx8s9\":{\"layout\":[\"fixed\",\"auto\"]},\"U6bFo7cUa\":{\"layout\":[\"fixed\",\"auto\"],\"constraints\":[null,null,null,\"100vh\"]},\"P6iHCo37F\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"WWQtZBO1A\":\"state1\",\"iMRuNJtho\":\"state2\",\"QOpzIUJfU\":\"state3\",\"V4Ay25PML\":\"state4\",\"NEUy_GK1M\":\"state5\",\"dt3y3MxYI\":\"menuText1\",\"RcijcY1nD\":\"menuText2\",\"dfzzYUW1N\":\"menuText3\",\"A3U4oXbdG\":\"menuText4\",\"skE6BDBG5\":\"menuText5\",\"MOxGvbY6v\":\"link\",\"VBUBv6lYk\":\"link2\",\"ma1F7uS3C\":\"link3\",\"xKRAWnAb5\":\"link4\",\"SDfOaiEqK\":\"link5\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerCsf9uXxSx=withCSS(Component,css,\"framer-zNm84\");export default FramerCsf9uXxSx;FramerCsf9uXxSx.displayName=\"Navigation\";FramerCsf9uXxSx.defaultProps={height:104,width:1200};addPropertyControls(FramerCsf9uXxSx,{variant:{options:[\"mTBl5cQVG\",\"T9ifHXmeq\",\"ce6njx8s9\",\"U6bFo7cUa\",\"P6iHCo37F\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\",\"Phone Open\",\"Tablet Open\"],title:\"Variant\",type:ControlType.Enum},WWQtZBO1A:MenuItemControls?.[\"variant\"]&&{...MenuItemControls[\"variant\"],defaultValue:\"A11MAxUvI\",description:undefined,hidden:undefined,title:\"State1\"},iMRuNJtho:MenuItemControls?.[\"variant\"]&&{...MenuItemControls[\"variant\"],defaultValue:\"A11MAxUvI\",description:undefined,hidden:undefined,title:\"State2\"},QOpzIUJfU:MenuItemControls?.[\"variant\"]&&{...MenuItemControls[\"variant\"],defaultValue:\"A11MAxUvI\",description:undefined,hidden:undefined,title:\"State3\"},V4Ay25PML:MenuItemControls?.[\"variant\"]&&{...MenuItemControls[\"variant\"],defaultValue:\"A11MAxUvI\",description:undefined,hidden:undefined,title:\"State4\"},NEUy_GK1M:MenuItemControls?.[\"variant\"]&&{...MenuItemControls[\"variant\"],defaultValue:\"A11MAxUvI\",description:undefined,hidden:undefined,title:\"State5\"},dt3y3MxYI:{defaultValue:\"Your Text\",displayTextArea:false,title:\"Menu Text1\",type:ControlType.String},RcijcY1nD:{defaultValue:\"Your Text\",displayTextArea:false,title:\"Menu Text2\",type:ControlType.String},dfzzYUW1N:{defaultValue:\"Your Text\",displayTextArea:false,title:\"Menu Text3\",type:ControlType.String},A3U4oXbdG:{defaultValue:\"Your Text\",displayTextArea:false,title:\"Menu Text4\",type:ControlType.String},skE6BDBG5:{defaultValue:\"Your Text\",displayTextArea:false,title:\"Menu Text5\",type:ControlType.String},MOxGvbY6v:{title:\"Link\",type:ControlType.Link},VBUBv6lYk:{title:\"Link 2\",type:ControlType.Link},ma1F7uS3C:{title:\"Link 3\",type:ControlType.Link},xKRAWnAb5:{title:\"Link 4\",type:ControlType.Link},SDfOaiEqK:{title:\"Link 5\",type:ControlType.Link}});addFonts(FramerCsf9uXxSx,[{explicitInter:true,fonts:[{cssFamilyName:\"Plus Jakarta Sans\",source:\"google\",style:\"normal\",uiFamilyName:\"Plus Jakarta Sans\",url:\"https://fonts.gstatic.com/s/plusjakartasans/v12/LDIbaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_TknNTxXUEKi4Rw.woff2\",weight:\"700\"}]},...MenuItemFonts,...SearchFonts,...ButtonFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerCsf9uXxSx\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1200\",\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\",\"framerVariables\":\"{\\\"WWQtZBO1A\\\":\\\"state1\\\",\\\"iMRuNJtho\\\":\\\"state2\\\",\\\"QOpzIUJfU\\\":\\\"state3\\\",\\\"V4Ay25PML\\\":\\\"state4\\\",\\\"NEUy_GK1M\\\":\\\"state5\\\",\\\"dt3y3MxYI\\\":\\\"menuText1\\\",\\\"RcijcY1nD\\\":\\\"menuText2\\\",\\\"dfzzYUW1N\\\":\\\"menuText3\\\",\\\"A3U4oXbdG\\\":\\\"menuText4\\\",\\\"skE6BDBG5\\\":\\\"menuText5\\\",\\\"MOxGvbY6v\\\":\\\"link\\\",\\\"VBUBv6lYk\\\":\\\"link2\\\",\\\"ma1F7uS3C\\\":\\\"link3\\\",\\\"xKRAWnAb5\\\":\\\"link4\\\",\\\"SDfOaiEqK\\\":\\\"link5\\\"}\",\"framerIntrinsicHeight\":\"104\",\"framerAutoSizeImages\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"T9ifHXmeq\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"ce6njx8s9\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"U6bFo7cUa\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"],\\\"constraints\\\":[null,null,null,\\\"100vh\\\"]},\\\"P6iHCo37F\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (259a342)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,ResolveLinks,RichText,SmartComponentScopedContainer,SVG,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/ElGJxr9ATKx7Xcoeuiqp/JqgfCAPljbxKClI282K1/lb7BNr5M9.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/rWoiGND9uOGGzMbeRq7j/AayeDbuL7BGpZMNtxDvd/XJTmJWItp.js\";import IconInstagram from\"https://framerusercontent.com/modules/2RLHOc5F3Ds5YsIJeZ4M/6PylEVYY2DJcLvBwu5eN/hazRwBhj8.js\";const IconInstagramFonts=getFonts(IconInstagram);const cycleOrder=[\"tHfcNhD42\",\"rnUE8XWHy\",\"xQAQ6mGYo\"];const serializationHash=\"framer-BwCr5\";const variantClassNames={rnUE8XWHy:\"framer-v-nawp7e\",tHfcNhD42:\"framer-v-edfgcw\",xQAQ6mGYo:\"framer-v-1didv02\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Desktop:\"tHfcNhD42\",Phone:\"xQAQ6mGYo\",Tablet:\"rnUE8XWHy\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"tHfcNhD42\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"tHfcNhD42\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const router=useRouter();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-edfgcw\",className,classNames),\"data-border\":true,\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"tHfcNhD42\",ref:refBinding,style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"rgb(227, 227, 227)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",...style},...addPropertyOverrides({rnUE8XWHy:{\"data-framer-name\":\"Tablet\"},xQAQ6mGYo:{\"data-framer-name\":\"Phone\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-fm3o3h\",\"data-framer-name\":\"Container\",layoutDependency:layoutDependency,layoutId:\"kgK947DYJ\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-u1d2xq\",\"data-framer-name\":\"Container\",layoutDependency:layoutDependency,layoutId:\"Kzg2TCshs\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-dve190\",\"data-framer-name\":\"Logo\",layoutDependency:layoutDependency,layoutId:\"GgVxPThSb\",children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-1jiyy6n\",\"data-framer-name\":\"icon-park:oval-love-two\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:40,intrinsicWidth:40,layoutDependency:layoutDependency,layoutId:\"dtpDu48tm\",svg:'<svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<path d=\"M19.9375 12.9468C16.8499 10.1917 13.207 9.18542 10.5564 10.7157C6.79944 12.8848 6.45903 19.3287 9.79609 25.1087C11.9901 28.9088 15.2273 31.4757 18.2554 32.172\" stroke=\"url(#paint0_linear_785_392)\" stroke-width=\"2.50272\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\\n<path d=\"M32.4941 16.7982C32.4082 14.0861 31.3794 11.8334 29.4435 10.7157C25.6866 8.54662 19.9357 11.4738 16.5987 17.2538C13.2616 23.0337 13.602 29.4777 17.359 31.6468C19.1556 32.684 21.4081 32.5559 23.6346 31.5077\" stroke=\"url(#paint1_linear_785_392)\" stroke-width=\"2.50272\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\\n<path d=\"M24.8214 31.6118C25.0331 31.6621 25.2553 31.6216 25.4343 31.5002L27.966 29.7823C28.1658 29.6467 28.3308 29.466 28.4478 29.2548L32.1568 22.5675C32.4977 21.9529 32.7086 21.2621 32.692 20.5554C32.6734 19.7621 32.4414 19.3359 32.1098 19.1482C31.7785 18.9601 31.2977 18.9826 30.6186 19.3803C30.0137 19.7347 29.5406 20.2772 29.1996 20.8916L27.9438 23.1557L22.6208 24.4349C22.5464 24.4351 22.4735 24.4551 22.4095 24.4929C22.3455 24.5306 22.2928 24.5848 22.2568 24.6498L21.4187 26.1611C21.2826 26.4062 21.4195 26.7165 21.693 26.7828L26.0139 26.6355L24.6983 29.0077L22.8149 29.2499C22.75 29.2583 22.6879 29.2817 22.6338 29.3185C22.5797 29.3552 22.5349 29.4041 22.5032 29.4614L21.9917 30.3838C21.8586 30.6238 21.9868 30.9282 22.2523 31.002L24.8214 31.6118Z\" fill=\"#404040\"/>\\n<defs>\\n<linearGradient id=\"paint0_linear_785_392\" x1=\"26.5\" y1=\"32\" x2=\"22.6692\" y2=\"-1.28545\" gradientUnits=\"userSpaceOnUse\">\\n<stop stop-color=\"#C31313\"/>\\n<stop offset=\"1\" stop-color=\"#F38585\"/>\\n</linearGradient>\\n<linearGradient id=\"paint1_linear_785_392\" x1=\"32\" y1=\"10\" x2=\"14\" y2=\"40\" gradientUnits=\"userSpaceOnUse\">\\n<stop stop-color=\"#C31313\"/>\\n<stop offset=\"1\" stop-color=\"#F38585\"/>\\n</linearGradient>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7UGx1cyBKYWthcnRhIFNhbnMtNzAw\",\"--framer-font-family\":'\"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif',\"--framer-font-size\":\"26.7px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"130%\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(195, 19, 19))\"},children:\"RoamMate!\"})}),className:\"framer-8pqfr2\",\"data-framer-name\":\"Logo Text\",fonts:[\"GF;Plus Jakarta Sans-700\"],layoutDependency:layoutDependency,layoutId:\"qxhyTuTcJ\",style:{\"--extracted-r6o4lv\":\"rgb(195, 19, 19)\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"center\",withExternalLayout:true})]}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-lpj3sb\",\"data-styles-preset\":\"lb7BNr5M9\",children:\"Let RoamMate take you on a journey of a lifetime. Browse exciting destinations and customize your itinerary to create unforgettable memories.\"})}),className:\"framer-kninnu\",\"data-framer-name\":\"Description\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"QtNsUCJDc\",style:{\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"center\",withExternalLayout:true})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1ydmh8m\",\"data-framer-name\":\"Container\",layoutDependency:layoutDependency,layoutId:\"oZkdFOGQm\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1lsngro\",\"data-framer-name\":\"Container\",layoutDependency:layoutDependency,layoutId:\"libm9hIhl\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h5,{className:\"framer-styles-preset-1jf2231\",\"data-styles-preset\":\"XJTmJWItp\",children:\"Visit Us\"})}),className:\"framer-hqpkwv\",\"data-framer-name\":\"Visit Us\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"AdLCpiTEd\",style:{\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"center\",withExternalLayout:true}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1bsjye1\",\"data-framer-name\":\"Container\",layoutDependency:layoutDependency,layoutId:\"RkgYKshZl\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-lpj3sb\",\"data-styles-preset\":\"lb7BNr5M9\",children:\"About\"})}),className:\"framer-eai5sq\",\"data-framer-name\":\"About\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"sau_gqBUN\",style:{\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"center\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-lpj3sb\",\"data-styles-preset\":\"lb7BNr5M9\",children:\"Contact\"})}),className:\"framer-16jcnpm\",\"data-framer-name\":\"Contact\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"XiXbmwDCP\",style:{\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"center\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-lpj3sb\",\"data-styles-preset\":\"lb7BNr5M9\",children:\"Privacy Policy\"})}),className:\"framer-1eks4re\",\"data-framer-name\":\"Privacy Policy\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"qWFqUS5OM\",style:{\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"center\",withExternalLayout:true})]})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-r45sob\",\"data-framer-name\":\"Container\",layoutDependency:layoutDependency,layoutId:\"vamFUbK8E\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h5,{className:\"framer-styles-preset-1jf2231\",\"data-styles-preset\":\"XJTmJWItp\",children:\"Follow Us\"})}),className:\"framer-dwg8j1\",\"data-framer-name\":\"Follow Us\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"YPW0hyYO4\",style:{\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"center\",withExternalLayout:true}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1jl46b9\",layoutDependency:layoutDependency,layoutId:\"SbwRFBbvj\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"mC8C5J4Bf\"},implicitPathVariables:undefined},{href:{webPageId:\"mC8C5J4Bf\"},implicitPathVariables:undefined},{href:{webPageId:\"mC8C5J4Bf\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,width:\"24px\",y:(componentViewport?.y||0)+40+(((componentViewport?.height||280)-40-286.2)/2+0+0)+0+0+0+41.2+0,...addPropertyOverrides({rnUE8XWHy:{y:(componentViewport?.y||0)+40+(((componentViewport?.height||301)-40-286.2)/2+0+0)+0+0+0+41.2+0},xQAQ6mGYo:{y:(componentViewport?.y||0)+40+(((componentViewport?.height||515)-40-500.2)/2+0+0)+24+212+0+0+41.2+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-12z8ewj-container\",layoutDependency:layoutDependency,layoutId:\"aWNt6N2GE-container\",nodeId:\"aWNt6N2GE\",rendersWithMotion:true,scopeId:\"gic_s0h5F\",children:/*#__PURE__*/_jsx(IconInstagram,{height:\"100%\",id:\"aWNt6N2GE\",JFfkGYFre:resolvedLinks[0],layoutId:\"aWNt6N2GE\",style:{height:\"100%\",width:\"100%\"},variant:\"ArpFTLY1c\",width:\"100%\",...addPropertyOverrides({rnUE8XWHy:{JFfkGYFre:resolvedLinks[1]},xQAQ6mGYo:{JFfkGYFre:resolvedLinks[2]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"mC8C5J4Bf\"},implicitPathVariables:undefined},{href:{webPageId:\"mC8C5J4Bf\"},implicitPathVariables:undefined},{href:{webPageId:\"mC8C5J4Bf\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,width:\"24px\",y:(componentViewport?.y||0)+40+(((componentViewport?.height||280)-40-286.2)/2+0+0)+0+0+0+41.2+0,...addPropertyOverrides({rnUE8XWHy:{y:(componentViewport?.y||0)+40+(((componentViewport?.height||301)-40-286.2)/2+0+0)+0+0+0+41.2+0},xQAQ6mGYo:{y:(componentViewport?.y||0)+40+(((componentViewport?.height||515)-40-500.2)/2+0+0)+24+212+0+0+41.2+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-7gat0k-container\",layoutDependency:layoutDependency,layoutId:\"ShX0HKL3G-container\",nodeId:\"ShX0HKL3G\",rendersWithMotion:true,scopeId:\"gic_s0h5F\",children:/*#__PURE__*/_jsx(IconInstagram,{height:\"100%\",id:\"ShX0HKL3G\",JFfkGYFre:resolvedLinks1[0],layoutId:\"ShX0HKL3G\",style:{height:\"100%\",width:\"100%\"},variant:\"xyEYFiUqg\",width:\"100%\",...addPropertyOverrides({rnUE8XWHy:{JFfkGYFre:resolvedLinks1[1]},xQAQ6mGYo:{JFfkGYFre:resolvedLinks1[2]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"mC8C5J4Bf\"},implicitPathVariables:undefined},{href:{webPageId:\"mC8C5J4Bf\"},implicitPathVariables:undefined},{href:{webPageId:\"mC8C5J4Bf\"},implicitPathVariables:undefined}],children:resolvedLinks2=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,width:\"24px\",y:(componentViewport?.y||0)+40+(((componentViewport?.height||280)-40-286.2)/2+0+0)+0+0+0+41.2+0,...addPropertyOverrides({rnUE8XWHy:{y:(componentViewport?.y||0)+40+(((componentViewport?.height||301)-40-286.2)/2+0+0)+0+0+0+41.2+0},xQAQ6mGYo:{y:(componentViewport?.y||0)+40+(((componentViewport?.height||515)-40-500.2)/2+0+0)+24+212+0+0+41.2+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-7anga3-container\",layoutDependency:layoutDependency,layoutId:\"GwERI4xsW-container\",nodeId:\"GwERI4xsW\",rendersWithMotion:true,scopeId:\"gic_s0h5F\",children:/*#__PURE__*/_jsx(IconInstagram,{height:\"100%\",id:\"GwERI4xsW\",JFfkGYFre:resolvedLinks2[0],layoutId:\"GwERI4xsW\",style:{height:\"100%\",width:\"100%\"},variant:\"C8ZRtmhly\",width:\"100%\",...addPropertyOverrides({rnUE8XWHy:{JFfkGYFre:resolvedLinks2[1]},xQAQ6mGYo:{JFfkGYFre:resolvedLinks2[2]}},baseVariant,gestureVariant)})})})})]})]})]})]}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-lvzpvm\",\"data-framer-name\":\"Footer\",layoutDependency:layoutDependency,layoutId:\"YPM6Exs9D\",style:{backgroundColor:\"rgb(10, 10, 10)\"},children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"RlM7UGx1cyBKYWthcnRhIFNhbnMtcmVndWxhcg==\",\"--framer-font-family\":'\"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"130%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"\\xa9 RoamMate 2025 All Rights reserved\"})}),className:\"framer-2cyinn\",\"data-framer-name\":\"Footer Text\",fonts:[\"FS;Plus Jakarta Sans-regular\"],layoutDependency:layoutDependency,layoutId:\"XioKRjOos\",style:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-BwCr5.framer-13iqsy3, .framer-BwCr5 .framer-13iqsy3 { display: block; }\",\".framer-BwCr5.framer-edfgcw { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 40px; height: min-content; justify-content: center; overflow: visible; padding: 40px 0px 0px 0px; position: relative; width: 1200px; }\",\".framer-BwCr5 .framer-fm3o3h { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: visible; padding: 0px 80px 0px 80px; position: relative; width: 100%; }\",\".framer-BwCr5 .framer-u1d2xq { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 12px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 50%; }\",\".framer-BwCr5 .framer-dve190 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-BwCr5 .framer-1jiyy6n { flex: none; height: 40px; position: relative; width: 40px; }\",\".framer-BwCr5 .framer-8pqfr2, .framer-BwCr5 .framer-eai5sq, .framer-BwCr5 .framer-16jcnpm, .framer-BwCr5 .framer-1eks4re, .framer-BwCr5 .framer-2cyinn { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-BwCr5 .framer-kninnu { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-BwCr5 .framer-1ydmh8m { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 80px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-BwCr5 .framer-1lsngro, .framer-BwCr5 .framer-r45sob { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-BwCr5 .framer-hqpkwv { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 104px; word-break: break-word; word-wrap: break-word; }\",\".framer-BwCr5 .framer-1bsjye1 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-BwCr5 .framer-dwg8j1 { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 120px; word-break: break-word; word-wrap: break-word; }\",\".framer-BwCr5 .framer-1jl46b9 { align-content: center; align-items: center; align-self: stretch; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: hidden; padding: 0px; position: relative; width: auto; }\",\".framer-BwCr5 .framer-12z8ewj-container, .framer-BwCr5 .framer-7gat0k-container, .framer-BwCr5 .framer-7anga3-container { flex: none; height: 24px; position: relative; width: 24px; }\",\".framer-BwCr5 .framer-lvzpvm { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: center; overflow: visible; padding: 24px; position: relative; width: 100%; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-BwCr5.framer-edfgcw, .framer-BwCr5 .framer-u1d2xq, .framer-BwCr5 .framer-dve190, .framer-BwCr5 .framer-1ydmh8m, .framer-BwCr5 .framer-1lsngro, .framer-BwCr5 .framer-1bsjye1, .framer-BwCr5 .framer-r45sob, .framer-BwCr5 .framer-lvzpvm { gap: 0px; } .framer-BwCr5.framer-edfgcw > * { margin: 0px; margin-bottom: calc(40px / 2); margin-top: calc(40px / 2); } .framer-BwCr5.framer-edfgcw > :first-child, .framer-BwCr5 .framer-u1d2xq > :first-child, .framer-BwCr5 .framer-1lsngro > :first-child, .framer-BwCr5 .framer-1bsjye1 > :first-child, .framer-BwCr5 .framer-r45sob > :first-child { margin-top: 0px; } .framer-BwCr5.framer-edfgcw > :last-child, .framer-BwCr5 .framer-u1d2xq > :last-child, .framer-BwCr5 .framer-1lsngro > :last-child, .framer-BwCr5 .framer-1bsjye1 > :last-child, .framer-BwCr5 .framer-r45sob > :last-child { margin-bottom: 0px; } .framer-BwCr5 .framer-u1d2xq > * { margin: 0px; margin-bottom: calc(12px / 2); margin-top: calc(12px / 2); } .framer-BwCr5 .framer-dve190 > * { margin: 0px; margin-left: calc(0px / 2); margin-right: calc(0px / 2); } .framer-BwCr5 .framer-dve190 > :first-child, .framer-BwCr5 .framer-1ydmh8m > :first-child, .framer-BwCr5 .framer-lvzpvm > :first-child { margin-left: 0px; } .framer-BwCr5 .framer-dve190 > :last-child, .framer-BwCr5 .framer-1ydmh8m > :last-child, .framer-BwCr5 .framer-lvzpvm > :last-child { margin-right: 0px; } .framer-BwCr5 .framer-1ydmh8m > * { margin: 0px; margin-left: calc(80px / 2); margin-right: calc(80px / 2); } .framer-BwCr5 .framer-1lsngro > *, .framer-BwCr5 .framer-r45sob > * { margin: 0px; margin-bottom: calc(16px / 2); margin-top: calc(16px / 2); } .framer-BwCr5 .framer-1bsjye1 > * { margin: 0px; margin-bottom: calc(8px / 2); margin-top: calc(8px / 2); } .framer-BwCr5 .framer-lvzpvm > * { margin: 0px; margin-left: calc(8px / 2); margin-right: calc(8px / 2); } }\",\".framer-BwCr5.framer-v-nawp7e.framer-edfgcw { width: 810px; }\",\".framer-BwCr5.framer-v-nawp7e .framer-fm3o3h { gap: 56px; justify-content: flex-start; padding: 0px 64px 0px 64px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-BwCr5.framer-v-nawp7e .framer-fm3o3h { gap: 0px; } .framer-BwCr5.framer-v-nawp7e .framer-fm3o3h > * { margin: 0px; margin-left: calc(56px / 2); margin-right: calc(56px / 2); } .framer-BwCr5.framer-v-nawp7e .framer-fm3o3h > :first-child { margin-left: 0px; } .framer-BwCr5.framer-v-nawp7e .framer-fm3o3h > :last-child { margin-right: 0px; } }\",\".framer-BwCr5.framer-v-1didv02.framer-edfgcw { width: 390px; }\",\".framer-BwCr5.framer-v-1didv02 .framer-fm3o3h { flex-direction: column; gap: 32px; justify-content: flex-start; overflow: hidden; padding: 24px; }\",\".framer-BwCr5.framer-v-1didv02 .framer-u1d2xq { width: 100%; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-BwCr5.framer-v-1didv02 .framer-fm3o3h { gap: 0px; } .framer-BwCr5.framer-v-1didv02 .framer-fm3o3h > * { margin: 0px; margin-bottom: calc(32px / 2); margin-top: calc(32px / 2); } .framer-BwCr5.framer-v-1didv02 .framer-fm3o3h > :first-child { margin-top: 0px; } .framer-BwCr5.framer-v-1didv02 .framer-fm3o3h > :last-child { margin-bottom: 0px; } }\",...sharedStyle.css,...sharedStyle1.css,'.framer-BwCr5[data-border=\"true\"]::after, .framer-BwCr5 [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 280\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"rnUE8XWHy\":{\"layout\":[\"fixed\",\"auto\"]},\"xQAQ6mGYo\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const Framergic_s0h5F=withCSS(Component,css,\"framer-BwCr5\");export default Framergic_s0h5F;Framergic_s0h5F.displayName=\"Footer\";Framergic_s0h5F.defaultProps={height:280,width:1200};addPropertyControls(Framergic_s0h5F,{variant:{options:[\"tHfcNhD42\",\"rnUE8XWHy\",\"xQAQ6mGYo\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\"],title:\"Variant\",type:ControlType.Enum}});addFonts(Framergic_s0h5F,[{explicitInter:true,fonts:[{family:\"Plus Jakarta Sans\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/plusjakartasans/v8/LDIbaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_TknNTxXUEKi4Rw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"normal\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/TX2N2Q6ZO2LBO34H72H5RVJTBQFGU4GV/ZICVNTLTT4V7CCIJPWNY363N6LIP2AET/OUUAK2X2MEGEKC6ULA4CFSBY4PE5EGPV.woff2\",weight:\"400\"}]},...IconInstagramFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framergic_s0h5F\",\"slots\":[],\"annotations\":{\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"rnUE8XWHy\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"xQAQ6mGYo\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"1200\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"280\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (98b71dc)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,Container,ControlType,cx,GeneratedComponentContext,getFonts,getPropertyControls,PropertyOverrides,RenderTarget,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCSS}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Lenis from\"https://framerusercontent.com/modules/bSeEZJm22jsjERCOGQvq/ewEgVFDJmU5IWGjRz6lM/Lenis.js\";import Navigation from\"#framer/local/canvasComponent/Csf9uXxSx/Csf9uXxSx.js\";import Footer from\"#framer/local/canvasComponent/gic_s0h5F/gic_s0h5F.js\";const NavigationFonts=getFonts(Navigation);const LenisFonts=getFonts(Lenis);const FooterFonts=getFonts(Footer);const NavigationControls=getPropertyControls(Navigation);const breakpoints={B4OJ5pC4h:\"(min-width: 810px) and (max-width: 1199.98px)\",fDrZybMsA:\"(max-width: 809.98px)\",w2zhRutms:\"(min-width: 1200px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-VWFbL\";const variantClassNames={B4OJ5pC4h:\"framer-v-njsrzj\",fDrZybMsA:\"framer-v-1gzw1jg\",w2zhRutms:\"framer-v-suckq5\"};const breakpointRules={};const breakpointKeys=Object.keys(breakpointRules);const rules=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-VWFbL.framer-1p5wb0f, .framer-VWFbL .framer-1p5wb0f { display: block; }\",\".framer-VWFbL.framer-suckq5 { align-content: center; align-items: center; background-color: #ffffff; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-VWFbL .framer-oupci5-container { flex: none; height: auto; order: -1000; position: sticky; top: 0px; width: 100%; z-index: 1; }\",\".framer-VWFbL .framer-1g1dugj-container { flex: none; height: auto; order: -999; position: relative; width: auto; }\",\".framer-VWFbL .framer-1hepkyo { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -0px; position: relative; width: 0px; }\",\".framer-VWFbL .framer-1l0zunu-container { flex: none; height: auto; order: 1003; position: relative; width: 100%; z-index: 1; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }'];const mediaQueries={B4OJ5pC4h:\"(min-width: 810px) and (max-width: 1199.98px)\",fDrZybMsA:\"(max-width: 809.98px)\",w2zhRutms:\"(min-width: 1200px)\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const humanReadableEnumMap={Active:\"BttlXtKpW\",Default:\"A11MAxUvI\"};const humanReadableVariantMap={Desktop:\"w2zhRutms\",Phone:\"fDrZybMsA\",Tablet:\"B4OJ5pC4h\"};const getProps=({height,id,link,link2,link3,link4,link5,menuText1,menuText2,menuText3,menuText4,menuText5,state1,state2,state3,state4,state5,width,...props})=>{return{...props,Abgz9CerA:link2??props.Abgz9CerA,AvhD_K6GX:humanReadableEnumMap[state2]??state2??props.AvhD_K6GX??\"A11MAxUvI\",B8_DK5EmP:link5??props.B8_DK5EmP,cIXWtMOjz:menuText2??props.cIXWtMOjz??\"Destination\",CoGXA2JSP:humanReadableEnumMap[state3]??state3??props.CoGXA2JSP??\"A11MAxUvI\",IAWQAlXVy:link4??props.IAWQAlXVy,IpPr6rRc7:humanReadableEnumMap[state5]??state5??props.IpPr6rRc7??\"A11MAxUvI\",m323SQpKt:menuText1??props.m323SQpKt??\"Home\",nr6GciCl4:link3??props.nr6GciCl4,Qh_vBdqQs:link??props.Qh_vBdqQs,QZyX8HeW9:menuText4??props.QZyX8HeW9??\"About\",UJ1pYJ_7s:humanReadableEnumMap[state1]??state1??props.UJ1pYJ_7s??\"A11MAxUvI\",variant:humanReadableVariantMap[props.variant]??props.variant??\"w2zhRutms\",WIlbYzcSF:menuText5??props.WIlbYzcSF??\"Contact\",XlE4h9fA2:menuText3??props.XlE4h9fA2??\"Stories\",ZRZ6m1KQf:humanReadableEnumMap[state4]??state4??props.ZRZ6m1KQf??\"A11MAxUvI\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,UJ1pYJ_7s,AvhD_K6GX,CoGXA2JSP,ZRZ6m1KQf,IpPr6rRc7,m323SQpKt,cIXWtMOjz,XlE4h9fA2,QZyX8HeW9,WIlbYzcSF,Qh_vBdqQs,Abgz9CerA,nr6GciCl4,IAWQAlXVy,B8_DK5EmP,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{isLayoutTemplate:true,primaryVariantId:\"w2zhRutms\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: rgb(255, 255, 255); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-suckq5\",className),\"data-layout-template\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:104,width:\"100vw\",y:0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-oupci5-container\",nodeId:\"qhKummMdJ\",scopeId:\"Vak1yq85O\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{B4OJ5pC4h:{variant:\"T9ifHXmeq\"},fDrZybMsA:{variant:\"ce6njx8s9\"}},children:/*#__PURE__*/_jsx(Navigation,{A3U4oXbdG:QZyX8HeW9,dfzzYUW1N:XlE4h9fA2,dt3y3MxYI:m323SQpKt,height:\"100%\",id:\"qhKummMdJ\",iMRuNJtho:AvhD_K6GX,layoutId:\"qhKummMdJ\",ma1F7uS3C:nr6GciCl4,MOxGvbY6v:Qh_vBdqQs,NEUy_GK1M:IpPr6rRc7,QOpzIUJfU:CoGXA2JSP,RcijcY1nD:cIXWtMOjz,SDfOaiEqK:B8_DK5EmP,skE6BDBG5:WIlbYzcSF,style:{width:\"100%\"},V4Ay25PML:ZRZ6m1KQf,variant:\"mTBl5cQVG\",VBUBv6lYk:Abgz9CerA,width:\"100%\",WWQtZBO1A:UJ1pYJ_7s,xKRAWnAb5:IAWQAlXVy})})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1g1dugj-container\",isAuthoredByUser:true,isModuleExternal:true,nodeId:\"MbClnTjV9\",scopeId:\"Vak1yq85O\",children:/*#__PURE__*/_jsx(Lenis,{height:\"100%\",id:\"MbClnTjV9\",infinite:false,intensity:8,layoutId:\"MbClnTjV9\",orientation:\"vertical\",smooth:true,width:\"100%\"})})}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-1hepkyo\"}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:280,width:\"100vw\",y:1304,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1l0zunu-container\",nodeId:\"wce9tHhsd\",scopeId:\"Vak1yq85O\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{B4OJ5pC4h:{variant:\"rnUE8XWHy\"},fDrZybMsA:{variant:\"xQAQ6mGYo\"}},children:/*#__PURE__*/_jsx(Footer,{height:\"100%\",id:\"wce9tHhsd\",layoutId:\"wce9tHhsd\",style:{width:\"100%\"},variant:\"tHfcNhD42\",width:\"100%\"})})})})]}),/*#__PURE__*/_jsx(\"div\",{id:\"template-overlay\"})]})});});const css=target=>{const isStaticRenderer=target===RenderTarget.canvas||target===RenderTarget.export;if(!isStaticRenderer){return[...rules,...breakpointKeys.map(key=>{const query=mediaQueries[key];return`@media ${query} { ${breakpointRules[key].join(\" \")} }`;})];}return[...rules,...breakpointKeys.flatMap(key=>{const selector=breakpointRules[key];return breakpointRules[key].map(rule=>`${selector} {${rule}}`);})];};/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 1000\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"B4OJ5pC4h\":{\"layout\":[\"fixed\",\"fixed\"]},\"fDrZybMsA\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"UJ1pYJ_7s\":\"state1\",\"AvhD_K6GX\":\"state2\",\"CoGXA2JSP\":\"state3\",\"ZRZ6m1KQf\":\"state4\",\"IpPr6rRc7\":\"state5\",\"m323SQpKt\":\"menuText1\",\"cIXWtMOjz\":\"menuText2\",\"XlE4h9fA2\":\"menuText3\",\"QZyX8HeW9\":\"menuText4\",\"WIlbYzcSF\":\"menuText5\",\"Qh_vBdqQs\":\"link\",\"Abgz9CerA\":\"link2\",\"nr6GciCl4\":\"link3\",\"IAWQAlXVy\":\"link4\",\"B8_DK5EmP\":\"link5\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"w2zhRutms\":[\".framer-oupci5-container\",\".framer-1g1dugj-container\",\".framer-1l0zunu-container\"],\"B4OJ5pC4h\":[\".framer-oupci5-container\",\".framer-1g1dugj-container\",\".framer-1l0zunu-container\"],\"fDrZybMsA\":[\".framer-oupci5-container\",\".framer-1g1dugj-container\",\".framer-1l0zunu-container\"]}\n * @framerBreakpoints {\"w2zhRutms\":{\"min\":1200,\"canvasClassName\":\"framer-suckq5-override\",\"minHeight\":1000,\"name\":\"Desktop\",\"width\":1200,\"rootFontSize\":16},\"B4OJ5pC4h\":{\"min\":810,\"max\":1199,\"canvasClassName\":\"framer-njsrzj-override\",\"minHeight\":1000,\"viewportHeight\":1080,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":16},\"fDrZybMsA\":{\"max\":809,\"canvasClassName\":\"framer-1gzw1jg-override\",\"minHeight\":1000,\"viewportHeight\":844,\"name\":\"Phone\",\"width\":390,\"rootFontSize\":16}}\n * @framerDefaultVariant w2zhRutms\n * @framerLayoutTemplate\n */const FramerVak1yq85O=withCSS(Component,css,\"framer-VWFbL\");export default FramerVak1yq85O;FramerVak1yq85O.displayName=\"Layout\";FramerVak1yq85O.defaultProps={height:1e3,width:1200};addPropertyControls(FramerVak1yq85O,{UJ1pYJ_7s:NavigationControls?.[\"WWQtZBO1A\"]&&{...NavigationControls[\"WWQtZBO1A\"],defaultValue:\"A11MAxUvI\",description:undefined,hidden:undefined,title:\"State 1\"},AvhD_K6GX:NavigationControls?.[\"iMRuNJtho\"]&&{...NavigationControls[\"iMRuNJtho\"],defaultValue:\"A11MAxUvI\",description:undefined,hidden:undefined,title:\"State 2\"},CoGXA2JSP:NavigationControls?.[\"QOpzIUJfU\"]&&{...NavigationControls[\"QOpzIUJfU\"],defaultValue:\"A11MAxUvI\",description:undefined,hidden:undefined,title:\"State 3\"},ZRZ6m1KQf:NavigationControls?.[\"V4Ay25PML\"]&&{...NavigationControls[\"V4Ay25PML\"],defaultValue:\"A11MAxUvI\",description:undefined,hidden:undefined,title:\"State 4\"},IpPr6rRc7:NavigationControls?.[\"NEUy_GK1M\"]&&{...NavigationControls[\"NEUy_GK1M\"],defaultValue:\"A11MAxUvI\",description:undefined,hidden:undefined,title:\"State 5\"},m323SQpKt:{defaultValue:\"Home\",displayTextArea:false,title:\"Menu Text 1\",type:ControlType.String},cIXWtMOjz:{defaultValue:\"Destination\",displayTextArea:false,title:\"Menu Text 2\",type:ControlType.String},XlE4h9fA2:{defaultValue:\"Stories\",displayTextArea:false,title:\"Menu Text 3\",type:ControlType.String},QZyX8HeW9:{defaultValue:\"About\",displayTextArea:false,title:\"Menu Text 4\",type:ControlType.String},WIlbYzcSF:{defaultValue:\"Contact\",displayTextArea:false,title:\"Menu Text 5\",type:ControlType.String},Qh_vBdqQs:{title:\"Link\",type:ControlType.Link},Abgz9CerA:{title:\"Link 2\",type:ControlType.Link},nr6GciCl4:{title:\"Link 3\",type:ControlType.Link},IAWQAlXVy:{title:\"Link 4\",type:ControlType.Link},B8_DK5EmP:{title:\"Link 5\",type:ControlType.Link}});addFonts(FramerVak1yq85O,[{explicitInter:true,fonts:[]},...NavigationFonts,...LenisFonts,...FooterFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerVak1yq85O\",\"slots\":[],\"annotations\":{\"framerHitTargets\":\"{\\\"w2zhRutms\\\":[\\\".framer-oupci5-container\\\",\\\".framer-1g1dugj-container\\\",\\\".framer-1l0zunu-container\\\"],\\\"B4OJ5pC4h\\\":[\\\".framer-oupci5-container\\\",\\\".framer-1g1dugj-container\\\",\\\".framer-1l0zunu-container\\\"],\\\"fDrZybMsA\\\":[\\\".framer-oupci5-container\\\",\\\".framer-1g1dugj-container\\\",\\\".framer-1l0zunu-container\\\"]}\",\"framerVariables\":\"{\\\"UJ1pYJ_7s\\\":\\\"state1\\\",\\\"AvhD_K6GX\\\":\\\"state2\\\",\\\"CoGXA2JSP\\\":\\\"state3\\\",\\\"ZRZ6m1KQf\\\":\\\"state4\\\",\\\"IpPr6rRc7\\\":\\\"state5\\\",\\\"m323SQpKt\\\":\\\"menuText1\\\",\\\"cIXWtMOjz\\\":\\\"menuText2\\\",\\\"XlE4h9fA2\\\":\\\"menuText3\\\",\\\"QZyX8HeW9\\\":\\\"menuText4\\\",\\\"WIlbYzcSF\\\":\\\"menuText5\\\",\\\"Qh_vBdqQs\\\":\\\"link\\\",\\\"Abgz9CerA\\\":\\\"link2\\\",\\\"nr6GciCl4\\\":\\\"link3\\\",\\\"IAWQAlXVy\\\":\\\"link4\\\",\\\"B8_DK5EmP\\\":\\\"link5\\\"}\",\"framerIntrinsicHeight\":\"1000\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerBreakpoints\":\"{\\\"w2zhRutms\\\":{\\\"min\\\":1200,\\\"canvasClassName\\\":\\\"framer-suckq5-override\\\",\\\"minHeight\\\":1000,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16},\\\"B4OJ5pC4h\\\":{\\\"min\\\":810,\\\"max\\\":1199,\\\"canvasClassName\\\":\\\"framer-njsrzj-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":1080,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":16},\\\"fDrZybMsA\\\":{\\\"max\\\":809,\\\"canvasClassName\\\":\\\"framer-1gzw1jg-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":844,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":390,\\\"rootFontSize\\\":16}}\",\"framerIntrinsicWidth\":\"1200\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"B4OJ5pC4h\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"fDrZybMsA\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerDefaultVariant\":\"w2zhRutms\",\"framerLayoutTemplate\":\"\",\"framerContractVersion\":\"1\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","\r\n        import * as Framer from \"framer\";\r\nimport { ResolveLinks } from \"framer\";\r\nimport * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport * as ReactDOM from \"react-dom/client\";\r\nimport Layout from \"https://framerusercontent.com/modules/taqqdLxY1F4zdrv59NNB/M7MLWjGfmNUOCnkyllqM/Vak1yq85O.js\";\r\n\r\n        const routes = {augiA20Il: {elements: {cJ03ySVEz: \"hero\", Paa_e2vCU: \"testimonial\", RWT3EHoWr: \"contact\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/a7H0w8jMYwRsEhGvSpXZ/4g0sN0fZAtkNKeIUHBOz/augiA20Il.js\")), path: \"/\"}, N7WBCwWAX: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/MKIGvDqDFS5BiOfbj6ix/oECRHeREz5CCGMWndy4T/N7WBCwWAX.js\")), path: \"/recommendation\"}, mC8C5J4Bf: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/b6StKaiYDZ1OvDm1rGVS/3yMFtGyibLQFMpt98gzA/mC8C5J4Bf.js\")), path: \"/404\"}, o7OlyMJow: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/Tig7HqLHAzlVVjhpbZ1d/QOgQ1zQaOjM036O1cQUX/o7OlyMJow.js\")), path: \"/stories\"}, GgYzXJLyx: {collectionId: \"E5ii6A1Km\", elements: {Hwx6gRnFt: \"testi\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/VgoRKtqoAtdH76Q0blYp/Tdb5GSfdFBHSQ5w0nsQa/GgYzXJLyx.js\")), path: \"/recommendation/:ds5FKlGFk\"}}\r\n\r\n        const locales = [{code: \"en-US\", id: \"default\", name: \"English\", slug: \"\", textDirection: \"ltr\"}]\r\n        const collectionUtils = {E5ii6A1Km: async () => (await import(\"https://framerusercontent.com/modules/uN2TORU9YdEb1p9shnn2/ilsnAz6a0hXNKTtxzgIo/E5ii6A1Km.js\"))?.[\"utils\"]}\r\n        const framerSiteId = \"ec9747af68b52c8b102667a5f5f38c7171263a7f32e97bb9ea31784cf550fb13\"\r\n        function Template({routeId, children, style, ...rest}) {const props1 = {Abgz9CerA: {href: {webPageId: \"N7WBCwWAX\"}}, AvhD_K6GX: \"A11MAxUvI\", B8_DK5EmP: {href: {hash: \":RWT3EHoWr\", webPageId: \"augiA20Il\"}}, cIXWtMOjz: \"Destination\", CoGXA2JSP: \"A11MAxUvI\", IAWQAlXVy: {href: {webPageId: \"mC8C5J4Bf\"}}, IpPr6rRc7: \"A11MAxUvI\", m323SQpKt: \"Home\", nr6GciCl4: {href: {webPageId: \"o7OlyMJow\"}}, QZyX8HeW9: \"About\", UJ1pYJ_7s: \"BttlXtKpW\", WIlbYzcSF: \"Contact\", XlE4h9fA2: \"Stories\", ZRZ6m1KQf: \"A11MAxUvI\"}\r\nconst props2 = {...props1, Abgz9CerA: undefined, AvhD_K6GX: \"BttlXtKpW\", Qh_vBdqQs: {href: {webPageId: \"augiA20Il\"}}, UJ1pYJ_7s: \"A11MAxUvI\"}\r\nconst props3 = {...props1, IAWQAlXVy: {href: {webPageId: \"augiA20Il\"}}, Qh_vBdqQs: {href: {webPageId: \"augiA20Il\"}}, UJ1pYJ_7s: \"A11MAxUvI\"}\r\nconst props4 = {...props1, CoGXA2JSP: \"BttlXtKpW\", nr6GciCl4: undefined, Qh_vBdqQs: {href: {webPageId: \"augiA20Il\"}}, UJ1pYJ_7s: \"A11MAxUvI\"}\r\nconst templateProps = {augiA20Il: props1, GgYzXJLyx: props2, mC8C5J4Bf: props3, N7WBCwWAX: props2, o7OlyMJow: props4}\r\nconst props = templateProps[routeId] ?? {}\r\nswitch (routeId) {case \"augiA20Il\":\r\ncase \"N7WBCwWAX\":\r\ncase \"mC8C5J4Bf\":\r\ncase \"o7OlyMJow\":\r\ncase \"GgYzXJLyx\":\r\nreturn React.createElement(ResolveLinks, {links: [props[\"Abgz9CerA\"], props[\"nr6GciCl4\"], props[\"IAWQAlXVy\"], props[\"B8_DK5EmP\"], props[\"Qh_vBdqQs\"]]}, (resolvedLinks) => React.createElement(Layout, {...props, Abgz9CerA: resolvedLinks[0], B8_DK5EmP: resolvedLinks[3], IAWQAlXVy: resolvedLinks[2], key: \"Layout\", nr6GciCl4: resolvedLinks[1], Qh_vBdqQs: resolvedLinks[4], routeId, style}, children(true)));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"augiA20Il\":\r\ncase \"N7WBCwWAX\":\r\ncase \"mC8C5J4Bf\":\r\ncase \"o7OlyMJow\":\r\ncase \"GgYzXJLyx\":\r\nreturn [{hash: \"suckq5\", mediaQuery: \"(min-width: 1200px)\"}, {hash: \"njsrzj\", mediaQuery: \"(min-width: 810px) and (max-width: 1199.98px)\"}, {hash: \"1gzw1jg\", mediaQuery: \"(max-width: 809.98px)\"}]\r\ndefault: { return undefined }}}\r\n\r\n        export async function getPageRoot({ routeId, pathVariables, localeId }) {\r\n            const rootPreload = routes[routeId].page.preload()\r\n\r\n            const content = React.createElement(\r\n                Framer.PageRoot,\r\n                {\r\n                    isWebsite: true,\r\n                    routeId,\r\n                    pathVariables,\r\n                    routes,\r\n                    collectionUtils,\r\n                    framerSiteId,\r\n                    notFoundPage: Framer.lazy(() => import(\"https://framerusercontent.com/modules/b6StKaiYDZ1OvDm1rGVS/3yMFtGyibLQFMpt98gzA/mC8C5J4Bf.js\")),\r\n                    isReducedMotion: true,\r\n                    localeId,\r\n                    locales,\r\n                    preserveQueryParams: false,\r\n                    siteCanonicalURL: \"https://roammate.framer.wiki\",\r\n                    EditorBar: \r\n            typeof window !== \"undefined\" ? (() => {\r\n                const isBot = /bot|-google|google-|yandex|ia_archiver|crawl|spider/iu.test(navigator.userAgent)\r\n                if (isBot) {\r\n                    console.log(\"[Framer Editor Bar] Unavailable because navigator is bot\")\r\n                    return\r\n                }\r\n\r\n                return Framer.lazy(async () => {\r\n                    const dependencies = {\r\n                        __version: 2,\r\n                        framer: {\r\n                            useCurrentRoute: Framer.useCurrentRoute,\r\n                            useLocaleInfo: Framer.useLocaleInfo,\r\n                            useRouter: Framer.useRouter,\r\n                        },\r\n                        react: {\r\n                            createElement: React.createElement,\r\n                            Fragment: React.Fragment,\r\n                            memo: React.memo,\r\n                            useCallback: React.useCallback,\r\n                            useEffect: React.useEffect,\r\n                            useRef: React.useRef,\r\n                            useState: React.useState,\r\n                        },\r\n                        \"react-dom\": { createPortal },\r\n                    }\r\n\r\n                    window.__framer_editorBarDependencies = dependencies\r\n\r\n                    const { createEditorBar } = await import(\"https://framer.com/edit/init.mjs\")\r\n                    return {\r\n                        default: createEditorBar(),\r\n                    }\r\n                })\r\n            })() : undefined\r\n        ,\r\n                    adaptLayoutToTextDirection: false,\r\n                    LayoutTemplate: Template,\r\n                }\r\n            )\r\n\r\n            const contentWithFeaturesContext = React.createElement(\r\n                Framer.LibraryFeaturesProvider,\r\n                {\r\n                    children: content,\r\n                    value: {editorBarDisableFrameAncestorsSecurity: false, motionDivToDiv: false, motionDivToDivBackgroundImage: true, pauseOffscreen: true, synchronousNavigationOnDesktop: false, yieldOnTap: false}\r\n                }\r\n            )\r\n\r\n            const contentWithGracefullyDegradingErrorBoundary = React.createElement(Framer.GracefullyDegradingErrorBoundary, {\r\n                children: contentWithFeaturesContext\r\n            })\r\n\r\n            \r\n            const page = React.createElement(Framer.PageEffectsProvider, {\r\n                children: contentWithGracefullyDegradingErrorBoundary,\r\n                value: {routes: {}}\r\n            })\r\n\r\n            // We don't want the initial render to immediately have to suspend.\r\n            await rootPreload\r\n            return page\r\n        }\r\n\r\n        const isBrowser = typeof document !== \"undefined\"\r\n        if (isBrowser) {\r\n            window.__framer_importFromPackage = (packageAndFilename, exportIdentifier) => () => {\r\n                return React.createElement(Framer.ErrorPlaceholder, { error: 'Package component not supported: \"' + exportIdentifier + '\" in \"' + packageAndFilename + '\"' })\r\n            }\r\n\r\n            // A lot of libraries assume process.env.NODE_ENV is present in runtime/buildtime, so we are polyfilling it\r\n            window.process = {\r\n                ...window.process,\r\n                env: {\r\n                    ...(window.process ? window.process.env: undefined),\r\n                    NODE_ENV: \"production\"\r\n                }\r\n            }\r\n\r\n            window.__framer_events = window.__framer_events || []\r\n\r\n            // Fallback support for stack gaps\r\n            Framer.installFlexboxGapWorkaroundIfNeeded()\r\n\r\n            const container = document.getElementById(\"main\")\r\n            // We know that #main is parsed before this script, so we don't need to wait for DOMContentLoaded or similar events.\r\n            if (\"framerHydrateV2\" in container.dataset) main(true, container)\r\n            else main(false, container)\r\n        }\r\n\r\n        function track() {\r\n            if (!isBrowser) return\r\n            window.__framer_events.push(arguments)\r\n        }\r\n\r\n        async function main(shouldHydrate, container) {\r\n            function handleError(error, errorInfo, recoverable = true) {\r\n                if (error.caught || window.__framer_hadFatalError) return // we already logged it\r\n\r\n                const componentStack = errorInfo?.componentStack\r\n                if (recoverable) {\r\n                    console.warn(\"Caught a recoverable error. The site is still functional, but might have some UI flickering or degraded page load performance. If you are the author of this website, update external components and check recently added custom code or code overrides to fix the following server/client mismatches:\\n\", error, componentStack)\r\n                    // we only want to collect 1%, because this can be quite noisy (floods the data pipeline)\r\n                    if (Math.random() > 0.01) return\r\n                } else {\r\n                    console.error(\"Caught a fatal error. If you are the author of this website, please report the following to the Framer team via https://www.framer.com/contact/:\\n\", error, componentStack)\r\n                }\r\n                track(recoverable ? \"published_site_load_recoverable_error\" : \"published_site_load_error\", {\r\n                    message: String(error),\r\n                    componentStack, // componentStack is more useful\r\n                    stack: componentStack ? undefined : error instanceof Error && typeof error.stack === \"string\" ? error.stack : null,\r\n                })\r\n            }\r\n\r\n            try {\r\n                let routeId, localeId, pathVariables, breakpoints\r\n                if (shouldHydrate) {\r\n                    const routeData = JSON.parse(container.dataset[\"framerHydrateV2\"])\r\n                    routeId = routeData.routeId\r\n                    localeId = routeData.localeId\r\n                    pathVariables = routeData.pathVariables\r\n                    breakpoints = routeData.breakpoints\r\n\r\n                    routeId = Framer.patchRoutesForABTesting(routes, routeId) // Prioritize optimized route id to avoid flickering in browsers not supporting the server-timing header (Safari older than 16.4)\r\n                } else {\r\n                    Framer.patchRoutesForABTesting(routes, undefined) // This must happen before inferInitialRouteFromPath\r\n\r\n                    const routeData = Framer.inferInitialRouteFromPath(routes, decodeURIComponent(location.pathname), true, locales)\r\n                    routeId = routeData.routeId\r\n                    localeId = routeData.localeId\r\n                    pathVariables = routeData.pathVariables\r\n                }\r\n\r\n                const pagePromise = getPageRoot({ routeId, localeId, pathVariables })\r\n\r\n                \r\nif (typeof window !== \"undefined\") {\r\n    void (async () => {\r\n        const route = routes[routeId]\r\n\r\n        const defaultLocaleId = \"default\"\r\n        const framerLocale = locales.find(({ id }) => !localeId ? id === defaultLocaleId : id === localeId).code\r\n\r\n        let collectionItemId = null\r\n        if (route?.collectionId && collectionUtils) {\r\n              const utils = await collectionUtils[route.collectionId]?.()\r\n              const [slug] = Object.values(pathVariables)\r\n              if (utils && typeof slug === \"string\") {\r\n                  collectionItemId = (await utils.getRecordIdBySlug(slug, framerLocale || undefined)) ?? null\r\n              }\r\n        }\r\n\r\n        const resolvedDateTimeOptions = Intl.DateTimeFormat().resolvedOptions()\r\n        const timezone = resolvedDateTimeOptions.timeZone\r\n        const locale = resolvedDateTimeOptions.locale\r\n\r\n        // wait for the page to be activated before sending the pageview event\r\n        // https://developer.chrome.com/docs/web-platform/prerender-pages#impact-on-analytics\r\n        await new Promise((resolve) => {\r\n            if (document.prerendering) {\r\n                document.addEventListener(\"prerenderingchange\", resolve, { once: true })\r\n            } else {\r\n                resolve()\r\n            }\r\n        })\r\n\r\n        window.__framer_events.push([\r\n            \"published_site_pageview\",\r\n            {\r\n                framerSiteId: framerSiteId ?? null,\r\n                version: 2,\r\n                routePath: route?.path || \"/\",\r\n                collectionItemId,\r\n                framerLocale: framerLocale || null,\r\n                webPageId: route?.abTestingVariantId ?? routeId,\r\n                abTestId: route?.abTestId,\r\n                referrer: document.referrer || null,\r\n                url: window.location.href,\r\n                hostname: window.location.hostname || null,\r\n                pathname: window.location.pathname || null,\r\n                hash: window.location.hash || null,\r\n                search: window.location.search || null,\r\n                timezone,\r\n                locale,\r\n            },\r\n            \"eager\"\r\n        ])\r\n\r\n        // Yield to avoid blocking the main thread with the user code\r\n        await Framer.yieldToMain({ priority: \"background\", ensureContinueBeforeUnload: true, continueAfter: \"paint\" })\r\n\r\n        document.dispatchEvent(new CustomEvent(\"framer:pageview\", {\r\n            detail: { framerLocale: framerLocale || null }\r\n        }))\r\n    })()\r\n}\r\n\r\n\r\n                const page = await pagePromise\r\n                if (shouldHydrate) {\r\n                    \r\n\r\n                    Framer.withPerformanceMarks(\"framer-rewrite-breakpoints\", () => {\r\n                        Framer.removeHiddenBreakpointLayersV2(breakpoints)\r\n                        window.__framer_onRewriteBreakpoints?.(breakpoints)\r\n                    })\r\n\r\n                    \r\n\r\n                    const startTransition = React.startTransition\r\n                    startTransition(() => {\r\n                        Framer.markHydrationStart()\r\n                        if (true) Framer.turnOffReactEventHandling()\r\n                        ReactDOM.hydrateRoot(container, page, { onRecoverableError: handleError })\r\n                    })\r\n                } else {\r\n                    \r\n                    ReactDOM.createRoot(container, { onRecoverableError: handleError }).render(page)\r\n                }\r\n            } catch (error) {\r\n                handleError(error, undefined, false)\r\n                throw error\r\n            }\r\n        }\r\n\r\n        \r\n\r\n        \r\n        ;(function () {\r\n            if (!isBrowser) return\r\n\r\n            React.startTransition(() => {\r\n                ReactDOM.hydrateRoot(\r\n                    document.getElementById(\"__framer-badge-container\"),\r\n                    React.createElement(React.Suspense, {}, React.createElement(React.lazy(() => import(\"__framer-badge\"))))\r\n                )\r\n            })\r\n        })()\r\n    "],"mappings":"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"}