{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/Z2UUP7EPo4qsW4FzUp9z/I7YDNV1kRTaIuzhaXNLa/Krt_mwunM.js", "ssg:https://framerusercontent.com/modules/UIrMjSS6ZX89L0CsT8k6/w90zR0qzeh1mgaDSvD54/Carousel.js", "ssg:https://ga.jspm.io/npm:@motionone/utils@10.12.0/dist/index.es.js"],
  "sourcesContent": ["// Generated by Framer (5ac62b5)\nimport { jsx as r } from \"react/jsx-runtime\";\nimport { addFonts as e, addPropertyControls as t, ControlType as a, cx as o, getFonts as i, useActiveVariantCallback as n, useLocaleInfo as s, useVariantState as d, withCSS as f } from \"framer\";\nimport { LayoutGroup as l, motion as m, MotionConfigContext as p } from \"framer-motion\";\nimport * as u from \"react\";\nimport c from \"https://framerusercontent.com/modules/cOlcSPwIWNavCilRbEAA/JrwZ0qDdeaquWyaBmot8/w5NckhfK_.js\";\nlet g = i(c),\n  h = [\"yJuc6A1ue\", \"on57GJimY\"],\n  y = \"framer-fToS2\",\n  v = {\n    on57GJimY: \"framer-v-1v6zyrd\",\n    yJuc6A1ue: \"framer-v-1ysogxd\"\n  };\nfunction x(r, ...e) {\n  let t = {};\n  return null == e || e.forEach(e => e && Object.assign(t, r[e])), t;\n}\nlet b = {\n    default: {\n      damping: 60,\n      delay: 0,\n      mass: 1,\n      stiffness: 500,\n      type: \"spring\"\n    }\n  },\n  w = (r, e) => {\n    if (r && \"object\" == typeof r) return {\n      ...r,\n      alt: e\n    };\n  },\n  S = ({\n    value: e,\n    children: t\n  }) => {\n    let a = u.useContext(p),\n      o = null != e ? e : a.transition,\n      i = u.useMemo(() => ({\n        ...a,\n        transition: o\n      }), [JSON.stringify(o)]);\n    return /*#__PURE__*/r(p.Provider, {\n      value: i,\n      children: t\n    });\n  },\n  T = {\n    Desktop: \"yJuc6A1ue\",\n    Mobile: \"on57GJimY\"\n  },\n  A = ({\n    height: r,\n    id: e,\n    tap: t,\n    width: a,\n    ...o\n  }) => {\n    var i, n;\n    return {\n      ...o,\n      EsabsDsPF: null != t ? t : o.EsabsDsPF,\n      variant: null !== (n = null !== (i = T[o.variant]) && void 0 !== i ? i : o.variant) && void 0 !== n ? n : \"yJuc6A1ue\"\n    };\n  },\n  J = (r, e) => e.join(\"-\") + r.layoutDependency,\n  P = /*#__PURE__*/u.forwardRef(function (e, t) {\n    let {\n        activeLocale: a\n      } = s(),\n      {\n        style: i,\n        className: f,\n        layoutId: p,\n        variant: g,\n        EsabsDsPF: y,\n        ...T\n      } = A(e),\n      {\n        baseVariant: P,\n        classNames: D,\n        gestureVariant: j,\n        setGestureState: E,\n        setVariant: F,\n        transition: k,\n        variants: z\n      } = d({\n        cycleOrder: h,\n        defaultVariant: \"yJuc6A1ue\",\n        transitions: b,\n        variant: g,\n        variantClassNames: v\n      }),\n      N = J(e, z),\n      {\n        activeVariantCallback: q,\n        delay: I\n      } = n(P),\n      Y = q(async (...r) => {\n        if (y) {\n          let e = await y(...r);\n          if (!1 === e) return !1;\n        }\n      }),\n      G = u.useRef(null),\n      H = u.useId();\n    return /*#__PURE__*/r(l, {\n      id: null != p ? p : H,\n      children: /*#__PURE__*/r(m.div, {\n        initial: g,\n        animate: z,\n        onHoverStart: () => E({\n          isHovered: !0\n        }),\n        onHoverEnd: () => E({\n          isHovered: !1\n        }),\n        onTapStart: () => E({\n          isPressed: !0\n        }),\n        onTap: () => E({\n          isPressed: !1\n        }),\n        onTapCancel: () => E({\n          isPressed: !1\n        }),\n        className: o(\"framer-fToS2\", ...[], D),\n        style: {\n          display: \"contents\"\n        },\n        children: /*#__PURE__*/r(S, {\n          value: k,\n          children: /*#__PURE__*/r(m.div, {\n            ...T,\n            className: o(\"framer-1ysogxd\", f),\n            \"data-framer-name\": \"Desktop\",\n            \"data-highlight\": !0,\n            layoutDependency: N,\n            layoutId: \"yJuc6A1ue\",\n            onTap: Y,\n            ref: null != t ? t : G,\n            style: {\n              ...i\n            },\n            ...x({\n              on57GJimY: {\n                \"data-framer-name\": \"Mobile\"\n              }\n            }, P, j),\n            children: /*#__PURE__*/r(m.div, {\n              className: \"framer-qgxwgg-container\",\n              layoutDependency: N,\n              layoutId: \"rj0fUo7xK-container\",\n              children: /*#__PURE__*/r(c, {\n                bPsVchJYw: \"Consumer Attitudes on AI Adoption\",\n                FlcxtWFaU: \"Report\",\n                height: \"100%\",\n                hPdqU_71c: \"rgba(250, 219, 221, 0.8)\",\n                id: \"rj0fUo7xK\",\n                if51suEly: w({\n                  src: \"https://framerusercontent.com/images/NAGecY89i11yXdSn8IqlysrdEzc.svg\"\n                }, \"\"),\n                J_y1gjPHD: w({\n                  src: \"https://framerusercontent.com/images/FAf4OgQ5fF78DqNpvPwQnsJLsrE.jpg\",\n                  srcSet: \"https://framerusercontent.com/images/FAf4OgQ5fF78DqNpvPwQnsJLsrE.jpg?scale-down-to=512 376w, https://framerusercontent.com/images/FAf4OgQ5fF78DqNpvPwQnsJLsrE.jpg 720w\"\n                }, \"A little girl holding hands with a robot.\"),\n                layoutId: \"rj0fUo7xK\",\n                OLUahZp3q: \"We surveyed consumers and creators about their experiences with AI.\",\n                oLV0VAaYW: !0,\n                P3wzH57Mx: \"What do consumers really think about generative AI? Find out in our groundbreaking survey.\",\n                SG_mDV6hT: \"https://info.punchcut.com/ai-adoption-consumer-report\",\n                style: {\n                  height: \"100%\",\n                  width: \"100%\"\n                },\n                TUwSPgnPW: \"rgb(74, 28, 27)\",\n                variant: \"SuOeWgpK0\",\n                width: \"100%\",\n                ...x({\n                  on57GJimY: {\n                    variant: \"eVUQmHtSD\"\n                  }\n                }, P, j)\n              })\n            })\n          })\n        })\n      })\n    });\n  }),\n  D = ['.framer-fToS2 [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; }', \"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\", \".framer-fToS2 .framer-58wyf4 { display: block; }\", \".framer-fToS2 .framer-1ysogxd { cursor: pointer; height: 525px; overflow: visible; position: relative; width: 349px; }\", \".framer-fToS2 .framer-qgxwgg-container { flex: none; height: 100%; left: calc(50.00000000000002% - 100% / 2); position: absolute; top: 0px; width: 100%; }\", \".framer-fToS2.framer-v-1v6zyrd .framer-1ysogxd { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 400px; justify-content: center; padding: 0px 0px 0px 0px; width: 318px; }\", \".framer-fToS2.framer-v-1v6zyrd .framer-qgxwgg-container { left: unset; position: relative; top: unset; }\", \"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-fToS2.framer-v-1v6zyrd .framer-1ysogxd { gap: 0px; } .framer-fToS2.framer-v-1v6zyrd .framer-1ysogxd > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-fToS2.framer-v-1v6zyrd .framer-1ysogxd > :first-child { margin-left: 0px; } .framer-fToS2.framer-v-1v6zyrd .framer-1ysogxd > :last-child { margin-right: 0px; } }\"],\n  j = f(P, D, \"framer-fToS2\");\nexport default j;\nj.displayName = \"Cards/AttitudesTowardsAI\", j.defaultProps = {\n  height: 525,\n  width: 349\n}, t(j, {\n  variant: {\n    options: [\"yJuc6A1ue\", \"on57GJimY\"],\n    optionTitles: [\"Desktop\", \"Mobile\"],\n    title: \"Variant\",\n    type: a.Enum\n  },\n  EsabsDsPF: {\n    title: \"Tap\",\n    type: a.EventHandler\n  }\n}), e(j, [...g]);\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"Props\": {\n      \"type\": \"tsType\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"default\": {\n      \"type\": \"reactComponent\",\n      \"name\": \"FramerKrt_mwunM\",\n      \"slots\": [],\n      \"annotations\": {\n        \"framerCanvasComponentVariantDetails\": \"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"on57GJimY\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\n        \"framerIntrinsicHeight\": \"525\",\n        \"framerVariables\": \"{\\\"EsabsDsPF\\\":\\\"tap\\\"}\",\n        \"framerIntrinsicWidth\": \"349\",\n        \"framerImmutableVariables\": \"true\",\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./Krt_mwunM.map", "import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Children, useCallback, useLayoutEffect, useEffect, useState, useRef, cloneElement } from \"react\";\nimport { addPropertyControls, ControlType, RenderTarget } from \"framer\";\nimport { scroll, resize } from \"@motionone/dom\";\nimport { clamp, progress } from \"@motionone/utils\";\nimport { animate, motion, useMotionValue, useTransform, useReducedMotion } from \"framer-motion\";\nimport { usePadding, paddingControl } from \"https://framer.com/m/framer/default-utils.js@^0.45.0\"; /**\n                                                                                                   * Calculate the width of the fade mask. Fade width and inset are provided\n                                                                                                   * as percentages. There's a fade on the left and the right, so we return\n                                                                                                   * a maximum of 50%.\n                                                                                                   */\nfunction calcMaskWidth([inset, width]) {\n  return inset + (100 - inset) * (width / 100) * .5;\n} /**\n  * Use media queries to determine if this device uses a mouse as\n  * the primary input.\n  */\nfunction useIsMouse() {\n  const [isMouseDevice, setIsMouseDevice] = useState(false);\n  useLayoutEffect(() => {\n    setIsMouseDevice(window.matchMedia(\"(pointer:fine)\").matches);\n  }, []);\n  return isMouseDevice;\n} /**\n  * This checks a scroll position against the available scrollable\n  * range. If we have hit an edge, start/end, we fade out the pagination\n  * controls and mask. Likewise if we've just moved away from an edge we\n  * fade them back in.\n  */\nfunction checkLimit(progress, target, {\n  edgeOpacity,\n  moreItems,\n  buttonRef\n}, transition) {\n  if (moreItems.current && progress === target) {\n    moreItems.current = false;\n    animate(edgeOpacity, 1, transition);\n    buttonRef.current.setAttribute(\"disabled\", \"\");\n  } else if (!moreItems.current && progress !== target) {\n    moreItems.current = true;\n    animate(edgeOpacity, 0, transition);\n    buttonRef.current.removeAttribute(\"disabled\");\n  }\n}\nfunction useGUI(initialMoreItems, initialAlpha) {\n  const moreItems = useRef(initialMoreItems);\n  const edgeOpacity = useMotionValue(moreItems.current ? 0 : 1);\n  const fadeOpacity = useTransform(edgeOpacity, [0, 1], [initialAlpha || 0, 1]);\n  const buttonOpacity = useTransform(edgeOpacity, v => 1 - v);\n  const buttonRef = useRef(null); /**\n                                  * Returns a pointer-events CSS value for a given opacity.\n                                  * The threshold here is arbitrary, the theory being we\n                                  * should only enable pointer-events when the button is\n                                  * somewhat visible.\n                                  */\n  const pointerEvents = useTransform(buttonOpacity, v => v > .2 ? \"auto\" : \"none\"); /**\n                                                                                    * Returns a cursor CSS value for a given pointer-events value.\n                                                                                    * So only indicate\n                                                                                    */\n  const cursor = useTransform(pointerEvents, v => v === \"auto\" ? \"pointer\" : \"default\");\n  const buttonStyle = {\n    ...baseButtonStyles,\n    opacity: buttonOpacity,\n    pointerEvents,\n    cursor\n  };\n  return {\n    moreItems,\n    fadeOpacity,\n    edgeOpacity,\n    buttonStyle,\n    buttonRef\n  };\n}\nfunction setAriaVisible({\n  element\n}) {\n  element.setAttribute(\"aria-hidden\", false);\n}\nfunction useScrollLimits(container, axis, scrollInfo, updateCurrentScroll, targetScroll, checkLimits, measureItems) {\n  useEffect(() => {\n    if (!container.current) return;\n    const updateScrollInfo = info => {\n      scrollInfo.current = info[axis]; /**\n                                       * If we've reached our target scroll, delete it.\n                                       * This way we know when to make calculations based on the\n                                       * actual current scroll or the target scroll.\n                                       */\n      if (info[axis].current === targetScroll.current) {\n        targetScroll.current = undefined;\n      }\n      updateCurrentScroll(info[axis].current);\n      checkLimits();\n    };\n    const stopScroll = scroll(updateScrollInfo, {\n      container: container.current,\n      axis\n    });\n    const stopResize = resize(container.current, () => {\n      measureItems();\n      checkLimits();\n    });\n    return () => {\n      stopScroll();\n      stopResize();\n    };\n  }, [checkLimits, measureItems]);\n} /**\n  *\n  * @framerIntrinsicWidth 400\n  * @framerIntrinsicHeight 200\n  *\n  * @framerDisableUnlink\n  *\n  * @framerSupportedLayoutWidth any-prefer-fixed\n  * @framerSupportedLayoutHeight any-prefer-fixed\n  */\nexport default function Carousel({\n  slots,\n  gap,\n  axis,\n  align,\n  sizingObject,\n  fadeObject,\n  arrowObject,\n  snapObject,\n  progressObject,\n  ariaLabel,\n  borderRadius,\n  effectsObject,\n  ...props\n}) {\n  const numItems = Children.count(slots);\n  const isCanvas = RenderTarget.current() === RenderTarget.canvas;\n  const padding = usePadding(props);\n  const axisLabel = axis ? \"x\" : \"y\";\n  const {\n    fadeContent,\n    fadeWidth,\n    fadeInset,\n    fadeTransition,\n    fadeAlpha\n  } = fadeObject;\n  const {\n    snap,\n    snapEdge,\n    fluid\n  } = snapObject;\n  const {\n    widthType,\n    widthInset,\n    widthColumns,\n    heightType,\n    heightInset,\n    heightRows\n  } = sizingObject;\n  const {\n    showScrollbar,\n    showProgressDots,\n    dotSize,\n    dotsInset,\n    dotsRadius,\n    dotsPadding,\n    dotsGap,\n    dotsFill,\n    dotsBackground,\n    dotsActiveOpacity,\n    dotsOpacity,\n    dotsBlur\n  } = progressObject;\n  const {\n    showMouseControls,\n    arrowSize,\n    arrowRadius,\n    arrowFill,\n    leftArrow,\n    rightArrow,\n    arrowPadding\n  } = arrowObject; /**\n                   * The latest scroll info on the scrollable axis as reported by Motion One.\n                   */\n  const scrollInfo = useRef(undefined); /**\n                                        * The target scroll we're currently animating to, calculated when\n                                        * a user presses a pagination button.\n                                        */\n  const targetScroll = useRef(undefined); /**\n                                          * If we're performing a scroll animation, return the target scroll instead\n                                          * of the latest scroll position. This will help users paginate through\n                                          * a carousel much quicker.\n                                          */\n  const currentScroll = useMotionValue(0);\n  const updateCurrentScroll = newScroll => {\n    currentScroll.set(targetScroll.current !== undefined ? targetScroll.current : newScroll);\n  }; /**\n     * We only want to display pagination buttons if the user has enabled the setting\n     * and this is actually a mouse device.\n     */\n  const isMouseDevice = useIsMouse(); /**\n                                      * Create all the motion values for the GUI at each end of the carousel.\n                                      */\n  const start = useGUI(false, fadeAlpha);\n  const end = useGUI(true, fadeAlpha);\n  const startMaskInset = useMotionValue(fadeInset * .5);\n  const endMaskInset = useTransform(startMaskInset, v => 100 - v);\n  const baseWidth = useMotionValue(fadeWidth);\n  const startMaskWidth = useTransform([startMaskInset, baseWidth], calcMaskWidth);\n  const endMaskWidth = useTransform(startMaskWidth, v => 100 - v);\n  const direction = useMotionValue(axis ? \"right\" : \"bottom\");\n  const mask = useTransform([direction, start.fadeOpacity, startMaskInset, startMaskWidth, end.fadeOpacity, endMaskInset, endMaskWidth], latest => {\n    return `linear-gradient(to ${latest[0]}, rgb(0, 0, 0, ${latest[1]}) ${latest[2]}%, rgb(0, 0, 0, 1) ${latest[3]}%, rgba(0, 0, 0, 1) ${latest[6]}%, rgb(0, 0, 0, ${latest[4]}) ${latest[5]}%)`;\n  });\n  const carouselRef = useRef(null); /**\n                                    * Dots state\n                                    */\n  const [numPages, setNumPages] = useState(isCanvas ? 4 : 1); /**\n                                                              * Generate styles for components.\n                                                              */\n  const itemStyle = {\n    scrollSnapAlign: snapEdge,\n    flexShrink: 0\n  };\n  const childStyle = {};\n  if (align === \"stretch\") {\n    if (axis) {\n      childStyle.height = \"100%\";\n      itemStyle.height = \"auto\";\n    } else {\n      childStyle.width = \"100%\";\n      itemStyle.width = \"auto\";\n    }\n  }\n  if (!fluid) {\n    itemStyle.scrollSnapStop = \"always\";\n  }\n  if (widthType === \"stretch\") {\n    itemStyle.width = `calc(100% - ${widthInset || 0}px)`;\n    childStyle.width = \"100%\";\n  } else if (widthType === \"columns\") {\n    itemStyle.width = `calc(${100 / widthColumns}% - ${gap}px + ${gap / widthColumns}px)`;\n    childStyle.width = \"100%\";\n  }\n  if (heightType === \"stretch\") {\n    itemStyle.height = `calc(100% - ${heightInset || 0}px)`;\n    childStyle.height = \"100%\";\n  } else if (heightType === \"rows\") {\n    itemStyle.height = `calc(${100 / heightRows}% - ${gap}px + ${gap / heightRows}px)`;\n    childStyle.height = \"100%\";\n  }\n  const scrollOverflow = isCanvas ? \"hidden\" : \"auto\";\n  const containerStyle = {\n    ...baseContainerStyle,\n    padding\n  };\n  const carouselStyle = {\n    ...baseCarouselStyle,\n    gap,\n    alignItems: align,\n    flexDirection: axis ? \"row\" : \"column\",\n    overflowX: axis ? scrollOverflow : \"hidden\",\n    overflowY: axis ? \"hidden\" : scrollOverflow,\n    scrollSnapType: snap ? `${axisLabel} mandatory` : undefined,\n    WebkitOverflowScrolling: \"touch\",\n    WebkitMaskImage: fadeContent ? mask : undefined,\n    MozMaskImage: fadeContent ? mask : undefined,\n    maskImage: fadeContent ? mask : undefined,\n    borderRadius\n  };\n  const carouselA11y = {\n    [\"aria-roledescription\"]: \"carousel\"\n  };\n  if (ariaLabel) {\n    carouselA11y[\"aria-title\"] = ariaLabel;\n  }\n  const itemA11y = {};\n  if (align === \"stretch\") {\n    itemA11y[\"aria-role\"] = \"group\";\n    itemA11y[\"aria-roledescription\"] = \"slide\";\n  }\n  if (!isCanvas) {\n    const itemSizes = useRef([]);\n    useScrollLimits(carouselRef, axisLabel, scrollInfo, updateCurrentScroll, targetScroll, useCallback(() => {\n      if (!scrollInfo.current) return;\n      const {\n        targetLength,\n        containerLength,\n        scrollLength\n      } = scrollInfo.current;\n      const current = currentScroll.get();\n      if (!targetLength && !containerLength) return;\n      if (targetLength > containerLength) {\n        checkLimit(current, 0, start, fadeTransition);\n        checkLimit(current, scrollLength, end, fadeTransition);\n        for (let i = 0; i < itemSizes.current.length; i++) {\n          const {\n            element,\n            start: start1,\n            end: end1\n          } = itemSizes.current[i];\n          if (end1 < current || start1 > current + containerLength) {\n            element.setAttribute(\"aria-hidden\", true);\n          } else {\n            element.setAttribute(\"aria-hidden\", false);\n          }\n        }\n      } else {\n        checkLimit(0, 0, start, fadeTransition);\n        checkLimit(1, 1, end, fadeTransition);\n        itemSizes.current.forEach(setAriaVisible);\n      } // This used to be Math.ceil, which would round 3.05 to 4.\n      // This now uses Math.round to ensure people get a perfect amount of dots\n      // when using Columns or Rows \u2014\u00A0Benjamin\n      /**\n                       * Update by Matt: changing back to ceil, might break dots but round was incorrectly\n                       * paginating for all widths - overshooting items at shorter viewports and\n                       * not paginating at all for wide.\n                       */\n      let newNumPages = Math.ceil(targetLength / containerLength);\n      if (!isNaN(newNumPages)) {\n        // If the number of dots is 65% of the number of items, make it 100%\n        if (newNumPages / numItems > .65) newNumPages = numItems;\n        if (newNumPages !== numPages) setNumPages(newNumPages);\n      }\n    }, [numPages]), useCallback(() => {\n      if (!carouselRef.current) return;\n      itemSizes.current = Array.from(carouselRef.current.children).map(element => {\n        return axis ? {\n          element,\n          start: element.offsetLeft,\n          end: element.offsetLeft + element.offsetWidth\n        } : {\n          element,\n          start: element.offsetTop,\n          end: element.offsetTop + element.offsetHeight\n        };\n      });\n    }, []));\n  } /**\n    * On the canvas, we want to keep the motion values updated\n    * with the latest props. Outside of the canvas these will never\n    * update.\n    */\n  if (isCanvas) {\n    useEffect(() => {\n      baseWidth.set(fadeWidth);\n    }, [fadeWidth]);\n    useEffect(() => {\n      startMaskInset.set(fadeInset * .5);\n    }, [fadeInset]);\n    useEffect(() => {\n      direction.set(axis ? \"right\" : \"bottom\");\n    }, [axis]);\n  }\n  const findNextItem = (delta, target) => {\n    if (!scrollInfo.current) return;\n    const {\n      current\n    } = scrollInfo.current;\n    const {\n      children\n    } = carouselRef.current;\n    let scrollTarget;\n    let i = delta === 1 ? 0 : children.length - 1;\n    while (scrollTarget === undefined) {\n      const item = children[i];\n      const start = axis ? item.offsetLeft : item.offsetTop;\n      const length = axis ? item.offsetWidth : item.offsetHeight;\n      const end = start + length;\n      const threshold = .05;\n      if (delta === 1) {\n        const visibility = progress(start, end, target);\n        if (visibility < 1 - threshold) {\n          scrollTarget = start;\n        } else if (i === children.length - 1) {\n          scrollTarget = end;\n        }\n      } else if (delta === -1) {\n        const visibility1 = progress(start, end, target);\n        if (visibility1 > threshold) {\n          scrollTarget = end;\n        } else if (i === 0) {\n          scrollTarget = start;\n        }\n      }\n      i += delta;\n    }\n    return scrollTarget;\n  };\n  const isReducedMotion = useReducedMotion();\n  const goto = scrollTo => {\n    targetScroll.current = scrollTo;\n    const options = axis ? {\n      left: scrollTo\n    } : {\n      top: scrollTo\n    };\n    carouselRef.current.scrollTo({\n      ...options,\n      behavior: isReducedMotion ? \"auto\" : \"smooth\"\n    });\n  };\n  const gotoPage = page => {\n    if (!scrollInfo.current) return;\n    const {\n      scrollLength\n    } = scrollInfo.current;\n    goto(page * (scrollLength / (numPages - 1)));\n  };\n  const gotoDelta = delta => () => {\n    if (!scrollInfo.current) return;\n    const {\n      containerLength,\n      scrollLength\n    } = scrollInfo.current;\n    const current = currentScroll.get();\n    const pageLength = scrollLength / numPages;\n    const currentPage = clamp(0, numPages - 1, Math.floor(current / pageLength));\n    gotoPage(currentPage + delta);\n  }; /**\n     * Return placeholder if no children\n     */\n  if (numItems === 0) {\n    return /*#__PURE__*/_jsx(Placeholder, {});\n  }\n  const dots = [];\n  const dotsBlurStyle = {};\n  if (numPages > 1 && showProgressDots && !showScrollbar) {\n    for (let i = 0; i < numPages; i++) {\n      const isSelected = isCanvas && !i || false;\n      dots.push( /*#__PURE__*/_jsx(Dot, {\n        dotStyle: {\n          ...dotStyle,\n          width: dotSize,\n          height: dotSize,\n          backgroundColor: dotsFill\n        },\n        buttonStyle: baseButtonStyles,\n        isSelected: isSelected,\n        selectedOpacity: dotsActiveOpacity,\n        opacity: dotsOpacity,\n        onClick: () => gotoPage(i),\n        currentScroll: currentScroll,\n        scrollInfo: scrollInfo,\n        total: numPages,\n        index: i,\n        gap: dotsGap,\n        padding: dotsPadding,\n        axis: axis\n      }));\n    }\n    if (dotsBlur) {\n      dotsBlurStyle.backdropFilter = dotsBlurStyle.WebkitBackdropFilter = dotsBlurStyle.MozBackdropFilter = `blur(${dotsBlur}px)`;\n    }\n  }\n  return /*#__PURE__*/_jsxs(\"section\", {\n    style: containerStyle,\n    ...carouselA11y,\n    children: [/*#__PURE__*/_jsx(motion.ul, {\n      ref: carouselRef,\n      style: carouselStyle,\n      className: \"framer--carousel\",\n      \"data-show-scrollbar\": showScrollbar,\n      \"aria-atomic\": \"false\",\n      \"aria-live\": \"polite\",\n      onWheel: () => targetScroll.current = undefined,\n      children: Children.map(slots, (child, index) => {\n        var ref; /*#__PURE__*/\n        return _jsx(\"li\", {\n          style: itemStyle,\n          ...itemA11y,\n          \"aria-label\": `${index + 1} of ${numItems}`,\n          children: /*#__PURE__*/cloneElement(child, {\n            ...child.props,\n            style: {\n              ...((ref = child.props) === null || ref === void 0 ? void 0 : ref.style),\n              ...childStyle\n            }\n          })\n        });\n      })\n    }), /*#__PURE__*/_jsxs(\"fieldset\", {\n      style: {\n        ...controlsStyles,\n        padding: arrowPadding,\n        display: \"flex\",\n        flexDirection: axis ? \"row\" : \"column\"\n      },\n      \"aria-label\": \"Carousel pagination controls\",\n      className: \"framer--carousel-controls\",\n      \"data-show-mouse-controls\": showMouseControls,\n      children: [/*#__PURE__*/_jsx(motion.button, {\n        ref: start.buttonRef,\n        type: \"button\",\n        style: {\n          ...start.buttonStyle,\n          backgroundColor: arrowFill,\n          width: arrowSize,\n          height: arrowSize,\n          borderRadius: arrowRadius,\n          rotate: !axis ? 90 : 0,\n          display: showMouseControls ? \"block\" : \"none\"\n        },\n        onClick: gotoDelta(-1),\n        \"aria-label\": \"Previous\",\n        whileTap: {\n          scale: .9\n        },\n        transition: {\n          duration: .05\n        },\n        children: /*#__PURE__*/_jsx(\"img\", {\n          alt: \"\",\n          width: arrowSize,\n          height: arrowSize,\n          src: leftArrow || \"https://framerusercontent.com/images/6tTbkXggWgQCAJ4DO2QEdXXmgM.svg\"\n        })\n      }), /*#__PURE__*/_jsx(motion.button, {\n        ref: end.buttonRef,\n        type: \"button\",\n        style: {\n          ...end.buttonStyle,\n          backgroundColor: arrowFill,\n          width: arrowSize,\n          height: arrowSize,\n          borderRadius: arrowRadius,\n          rotate: !axis ? 90 : 0,\n          display: showMouseControls ? \"block\" : \"none\"\n        },\n        onClick: gotoDelta(1),\n        \"aria-label\": \"Next\",\n        whileTap: {\n          scale: .9\n        },\n        transition: {\n          duration: .05\n        },\n        children: /*#__PURE__*/_jsx(\"img\", {\n          alt: \"\",\n          width: arrowSize,\n          height: arrowSize,\n          src: rightArrow || \"https://framerusercontent.com/images/11KSGbIZoRSg4pjdnUoif6MKHI.svg\"\n        })\n      }), dots.length > 1 ? /*#__PURE__*/_jsx(\"div\", {\n        style: {\n          ...dotsContainerStyle,\n          left: axis ? \"50%\" : dotsInset,\n          top: !axis ? \"50%\" : \"unset\",\n          transform: axis ? \"translateX(-50%)\" : \"translateY(-50%)\",\n          flexDirection: axis ? \"row\" : \"column\",\n          bottom: axis ? dotsInset : \"unset\",\n          borderRadius: dotsRadius,\n          backgroundColor: dotsBackground,\n          ...dotsBlurStyle\n        },\n        children: dots\n      }) : null]\n    }), /*#__PURE__*/_jsx(MouseStyles, {})]\n  });\n}\n; /* Default Properties */\nCarousel.defaultProps = {\n  gap: 10,\n  padding: 10,\n  progressObject: {\n    showScrollbar: false,\n    showProgressDots: false\n  },\n  sizingObject: {\n    widthType: \"auto\",\n    widthOffset: 0,\n    widthColumns: 2,\n    heightType: \"auto\",\n    heightOffset: 0,\n    heightRows: 2\n  },\n  borderRadius: 0\n}; /* Property Controls */\naddPropertyControls(Carousel, {\n  slots: {\n    type: ControlType.Array,\n    title: \"Children\",\n    control: {\n      type: ControlType.ComponentInstance\n    }\n  },\n  axis: {\n    type: ControlType.Enum,\n    title: \"Direction\",\n    options: [true, false],\n    optionIcons: [\"direction-horizontal\", \"direction-vertical\"],\n    displaySegmentedControl: true\n  },\n  align: {\n    type: ControlType.Enum,\n    title: \"Align\",\n    options: [\"flex-start\", \"center\", \"flex-end\"],\n    optionIcons: {\n      axis: {\n        true: [\"align-top\", \"align-middle\", \"align-bottom\"],\n        false: [\"align-left\", \"align-center\", \"align-right\"]\n      }\n    },\n    defaultValue: \"center\",\n    displaySegmentedControl: true\n  },\n  gap: {\n    type: ControlType.Number,\n    title: \"Gap\"\n  },\n  ...paddingControl,\n  sizingObject: {\n    type: ControlType.Object,\n    title: \"Sizing\",\n    controls: {\n      widthType: {\n        type: ControlType.Enum,\n        title: \"Width\",\n        options: [\"auto\", \"stretch\", \"columns\"],\n        optionTitles: [\"Auto\", \"Stretch\", \"Columns\"],\n        defaultValue: \"auto\"\n      },\n      widthInset: {\n        type: ControlType.Number,\n        title: \"Inset\",\n        min: 0,\n        max: 500,\n        defaultValue: 0,\n        hidden: props => props.widthType !== \"stretch\"\n      },\n      widthColumns: {\n        type: ControlType.Number,\n        title: \"Columns\",\n        min: 1,\n        max: 10,\n        defaultValue: 2,\n        displayStepper: true,\n        hidden: props => props.widthType !== \"columns\"\n      },\n      heightType: {\n        type: ControlType.Enum,\n        title: \"Height\",\n        options: [\"auto\", \"stretch\", \"rows\"],\n        optionTitles: [\"Auto\", \"Stretch\", \"Rows\"],\n        defaultValue: \"auto\"\n      },\n      heightInset: {\n        type: ControlType.Number,\n        title: \"Inset\",\n        min: 0,\n        max: 500,\n        defaultValue: 0,\n        hidden: props => props.heightType !== \"stretch\"\n      },\n      heightRows: {\n        type: ControlType.Number,\n        title: \"Rows\",\n        min: 1,\n        max: 10,\n        defaultValue: 2,\n        displayStepper: true,\n        hidden: props => props.heightType !== \"rows\"\n      }\n    }\n  },\n  snapObject: {\n    type: ControlType.Object,\n    title: \"Snapping\",\n    controls: {\n      snap: {\n        type: ControlType.Boolean,\n        title: \"Enable\"\n      },\n      snapEdge: {\n        type: ControlType.Enum,\n        title: \"Edge\",\n        options: [\"start\", \"center\", \"end\"],\n        optionTitles: [\"Left\", \"Center\", \"Right\"],\n        defaultValue: \"center\",\n        hidden: props => !props.snap\n      },\n      fluid: {\n        type: ControlType.Boolean,\n        title: \"Fluid\",\n        defaultValue: false,\n        hidden: props => !props.snap\n      }\n    }\n  },\n  fadeObject: {\n    type: ControlType.Object,\n    title: \"Fading\",\n    controls: {\n      fadeContent: {\n        type: ControlType.Boolean,\n        title: \"Enable\",\n        defaultValue: false\n      },\n      fadeWidth: {\n        type: ControlType.Number,\n        title: \"Width\",\n        defaultValue: 25,\n        min: 0,\n        max: 100,\n        unit: \"%\",\n        hidden: props => !props.fadeContent\n      },\n      fadeInset: {\n        type: ControlType.Number,\n        title: \"Inset\",\n        defaultValue: 0,\n        min: 0,\n        max: 100,\n        unit: \"%\",\n        hidden: props => !props.fadeContent\n      },\n      fadeAlpha: {\n        type: ControlType.Number,\n        title: \"Opacity\",\n        hidden: props => !props.fadeContent,\n        min: 0,\n        max: 1,\n        step: .05,\n        defaultValue: 0\n      },\n      fadeTransition: {\n        type: ControlType.Transition,\n        title: \"Transition\",\n        hidden: props => !props.fadeContent\n      }\n    }\n  },\n  progressObject: {\n    type: ControlType.Object,\n    title: \"Progress\",\n    controls: {\n      showScrollbar: {\n        type: ControlType.Boolean,\n        title: \"Scroll Bar\",\n        defaultValue: false\n      },\n      showProgressDots: {\n        type: ControlType.Boolean,\n        title: \"Dots\",\n        defaultValue: false,\n        hidden: props => props.showScrollbar\n      },\n      dotSize: {\n        type: ControlType.Number,\n        title: \"Size\",\n        min: 1,\n        max: 100,\n        defaultValue: 10,\n        displayStepper: true,\n        hidden: props => !props.showProgressDots || props.showScrollbar\n      },\n      dotsInset: {\n        type: ControlType.Number,\n        title: \"Inset\",\n        min: 0,\n        max: 100,\n        defaultValue: 10,\n        displayStepper: true,\n        hidden: props => !props.showProgressDots || props.showScrollbar\n      },\n      dotsGap: {\n        type: ControlType.Number,\n        title: \"Gap\",\n        min: 0,\n        max: 100,\n        defaultValue: 10,\n        displayStepper: true,\n        hidden: props => !props.showProgressDots || props.showScrollbar\n      },\n      dotsPadding: {\n        type: ControlType.Number,\n        title: \"Padding\",\n        min: 0,\n        max: 100,\n        defaultValue: 10,\n        displayStepper: true,\n        hidden: props => !props.showProgressDots || props.showScrollbar\n      },\n      dotsFill: {\n        type: ControlType.Color,\n        title: \"Fill\",\n        defaultValue: \"#fff\",\n        hidden: props => !props.showProgressDots || props.showScrollbar\n      },\n      dotsBackground: {\n        type: ControlType.Color,\n        title: \"Backdrop\",\n        defaultValue: \"rgba(0,0,0,0.2)\",\n        hidden: props => !props.showProgressDots || props.showScrollbar\n      },\n      dotsRadius: {\n        type: ControlType.Number,\n        title: \"Radius\",\n        min: 0,\n        max: 200,\n        defaultValue: 50,\n        hidden: props => !props.showProgressDots || props.showScrollbar\n      },\n      dotsOpacity: {\n        type: ControlType.Number,\n        title: \"Opacity\",\n        min: 0,\n        max: 1,\n        defaultValue: .5,\n        step: .1,\n        displayStepper: true,\n        hidden: props => !props.showProgressDots || props.showScrollbar\n      },\n      dotsActiveOpacity: {\n        type: ControlType.Number,\n        title: \"Current\",\n        min: 0,\n        max: 1,\n        defaultValue: 1,\n        step: .1,\n        displayStepper: true,\n        hidden: props => !props.showProgressDots || props.showScrollbar\n      },\n      dotsBlur: {\n        type: ControlType.Number,\n        title: \"Blur\",\n        min: 0,\n        max: 50,\n        defaultValue: 4,\n        step: 1,\n        hidden: props => !props.showProgressDots || props.showScrollbar\n      }\n    }\n  },\n  arrowObject: {\n    type: ControlType.Object,\n    title: \"Arrows\",\n    controls: {\n      showMouseControls: {\n        type: ControlType.Boolean,\n        title: \"Show\",\n        defaultValue: true\n      },\n      arrowFill: {\n        type: ControlType.Color,\n        title: \"Fill\",\n        defaultValue: \"rgba(0,0,0,0.2)\",\n        hidden: props => !props.showMouseControls\n      },\n      leftArrow: {\n        type: ControlType.Image,\n        title: \"Previous\",\n        hidden: props => !props.showMouseControls\n      },\n      rightArrow: {\n        type: ControlType.Image,\n        title: \"Next\",\n        hidden: props => !props.showMouseControls\n      },\n      arrowSize: {\n        type: ControlType.Number,\n        title: \"Size\",\n        min: 0,\n        max: 200,\n        displayStepper: true,\n        defaultValue: 40,\n        hidden: props => !props.showMouseControls\n      },\n      arrowRadius: {\n        type: ControlType.Number,\n        title: \"Radius\",\n        min: 0,\n        max: 500,\n        defaultValue: 40,\n        hidden: props => !props.showMouseControls\n      },\n      arrowPadding: {\n        type: ControlType.Number,\n        title: \"Inset\",\n        min: 0,\n        max: 100,\n        defaultValue: 20,\n        displayStepper: true,\n        hidden: props => !props.showMouseControls\n      }\n    }\n  },\n  ariaLabel: {\n    type: ControlType.String,\n    title: \"Aria Label\",\n    placeholder: \"Movies...\"\n  },\n  borderRadius: {\n    type: ControlType.Number,\n    title: \"Radius\",\n    min: 0,\n    max: 500,\n    displayStepper: true,\n    defaultValue: 0\n  }\n});\nfunction Dot({\n  currentScroll,\n  scrollInfo,\n  isSelected,\n  selectedOpacity,\n  opacity: unselectedOpacity,\n  total,\n  index,\n  dotStyle,\n  buttonStyle,\n  gap,\n  padding,\n  axis,\n  ...props\n}) {\n  const opacity = useTransform(currentScroll, v => {\n    var ref, ref1;\n    if (!((ref = scrollInfo.current) === null || ref === void 0 ? void 0 : ref.scrollLength)) {\n      return index === 0 ? selectedOpacity : unselectedOpacity;\n    }\n    const pageLength = ((ref1 = scrollInfo.current) === null || ref1 === void 0 ? void 0 : ref1.scrollLength) / total;\n    const minScroll = pageLength * index;\n    const maxScroll = minScroll + pageLength;\n    const isSelected = v >= minScroll && (index < total - 1 ? v < maxScroll : index === total - 1);\n    return isSelected ? selectedOpacity : unselectedOpacity;\n  });\n  const inlinePadding = gap / 2;\n  let top = !axis && index > 0 ? inlinePadding : padding;\n  let bottom = !axis && index !== total - 1 ? inlinePadding : padding;\n  let right = axis && index !== total - 1 ? inlinePadding : padding;\n  let left = axis && index > 0 ? inlinePadding : padding;\n  return /*#__PURE__*/_jsx(\"button\", {\n    \"aria-label\": `Scroll to page ${index + 1}`,\n    type: \"button\",\n    ...props,\n    style: {\n      ...buttonStyle,\n      padding: `${top}px ${right}px ${bottom}px ${left}px`\n    },\n    children: /*#__PURE__*/_jsx(motion.div, {\n      style: {\n        ...dotStyle,\n        opacity\n      }\n    })\n  });\n}\nfunction Placeholder() {\n  return /*#__PURE__*/_jsxs(\"section\", {\n    style: placeholderStyles,\n    children: [/*#__PURE__*/_jsx(\"div\", {\n      style: emojiStyles,\n      children: \"\u2728\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      style: titleStyles,\n      children: \"Connect to Content\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      style: subtitleStyles,\n      children: \"Add layers or components to swipe between.\"\n    })]\n  });\n}\nfunction MouseStyles() {\n  return /*#__PURE__*/_jsx(\"div\", {\n    dangerouslySetInnerHTML: {\n      __html: `<style>@media (pointer: fine) {\n                .framer--carousel[data-show-scrollbar=\"false\"]::-webkit-scrollbar {\n                    display: none;\n                    -webkit-appearance: none;\n                    width: 0;\n                    height: 0;\n                }\n\n                .framer--carousel[data-show-scrollbar=\"false\"]::-webkit-scrollbar-thumb {\n                    display: none;\n                }\n\n                .framer--carousel[data-show-scrollbar=\"false\"] {\n                    scrollbar-width: none;\n                    scrollbar-height: none;\n                }\n            }</style>`\n    }\n  });\n} /* Styles */\nconst placeholderStyles = {\n  display: \"flex\",\n  width: \"100%\",\n  height: \"100%\",\n  placeContent: \"center\",\n  placeItems: \"center\",\n  flexDirection: \"column\",\n  color: \"#96F\",\n  background: \"rgba(136, 85, 255, 0.1)\",\n  fontSize: 11,\n  overflow: \"hidden\",\n  padding: \"20px 20px 30px 20px\"\n};\nconst emojiStyles = {\n  fontSize: 32,\n  marginBottom: 10\n};\nconst titleStyles = {\n  margin: 0,\n  marginBottom: 10,\n  fontWeight: 600,\n  textAlign: \"center\"\n};\nconst subtitleStyles = {\n  margin: 0,\n  opacity: .7,\n  maxWidth: 130,\n  lineHeight: 1.5,\n  textAlign: \"center\"\n};\nconst labelStyle = {\n  clip: \"rect(0 0 0 0)\",\n  WebkitClipPath: \"inset(50%)\",\n  clipPath: \"inset(50%)\",\n  height: 1,\n  width: 1,\n  margin: -1,\n  padding: 0,\n  overflow: \"hidden\",\n  position: \"absolute\",\n  whiteSpace: \"nowrap\"\n}; /**\n   * GUI styles\n   */\nconst baseContainerStyle = {\n  display: \"flex\",\n  overflow: \"hidden\",\n  width: \"100%\",\n  height: \"100%\",\n  position: \"relative\"\n};\nconst baseCarouselStyle = {\n  padding: 0,\n  margin: 0,\n  listStyle: \"none\",\n  position: \"relative\",\n  display: \"flex\",\n  flex: \"1 1 100%\",\n  width: \"100%\",\n  height: \"100%\"\n};\nconst baseButtonStyles = {\n  border: \"none\",\n  display: \"flex\",\n  placeContent: \"center\",\n  placeItems: \"center\",\n  overflow: \"hidden\",\n  background: \"transparent\",\n  cursor: \"pointer\",\n  margin: 0,\n  padding: 0\n};\nconst controlsStyles = {\n  display: \"flex\",\n  justifyContent: \"space-between\",\n  alignItems: \"center\",\n  position: \"absolute\",\n  top: 0,\n  left: 0,\n  right: 0,\n  bottom: 0,\n  pointerEvents: \"none\",\n  border: 0,\n  padding: 0,\n  margin: 0\n}; /**\n   * Dot styles\n   */\nconst dotsContainerStyle = {\n  display: \"flex\",\n  placeContent: \"center\",\n  placeItems: \"center\",\n  overflow: \"hidden\",\n  position: \"absolute\",\n  pointerEvents: \"auto\"\n};\nconst dotStyle = {\n  borderRadius: \"50%\",\n  background: \"white\",\n  cursor: \"pointer\",\n  border: \"none\",\n  placeContent: \"center\",\n  placeItems: \"center\",\n  padding: 0\n};\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"default\": {\n      \"type\": \"reactComponent\",\n      \"name\": \"Carousel\",\n      \"slots\": [],\n      \"annotations\": {\n        \"framerIntrinsicWidth\": \"400\",\n        \"framerSupportedLayoutHeight\": \"any-prefer-fixed\",\n        \"framerIntrinsicHeight\": \"200\",\n        \"framerContractVersion\": \"1\",\n        \"framerSupportedLayoutWidth\": \"any-prefer-fixed\",\n        \"framerDisableUnlink\": \"*\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./Carousel.map", "function addUniqueItem(t,e){-1===t.indexOf(e)&&t.push(e)}function removeItem(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const clamp=(t,e,n)=>Math.min(Math.max(n,t),e);const t={duration:.3,delay:0,endDelay:0,repeat:0,easing:\"ease\"};const isNumber=t=>\"number\"===typeof t;const isString=t=>\"string\"===typeof t;const isEasingGenerator=t=>\"object\"===typeof t&&Boolean(t.createAnimation);const isCubicBezier=t=>Array.isArray(t)&&isNumber(t[0]);const isEasingList=t=>Array.isArray(t)&&!isNumber(t[0]);const wrap=(t,e,n)=>{const o=e-t;return((n-t)%o+o)%o+t};function getEasingForSegment(t,e){return isEasingList(t)?t[wrap(0,t.length,e)]:t}const mix=(t,e,n)=>-n*t+n*e+t;const noop=()=>{};const noopReturn=t=>t;const progress=(t,e,n)=>e-t===0?1:(n-t)/(e-t);function fillOffset(t,e){const n=t[t.length-1];for(let o=1;o<=e;o++){const s=progress(0,e,o);t.push(mix(n,1,s))}}function defaultOffset(t){const e=[0];fillOffset(e,t-1);return e}function interpolate(t,e=defaultOffset(t.length),n=noopReturn){const o=t.length;const s=o-e.length;s>0&&fillOffset(e,s);return s=>{let r=0;for(;r<o-2;r++)if(s<e[r+1])break;let f=clamp(0,1,progress(e[r],e[r+1],s));const c=getEasingForSegment(n,r);f=c(f);return mix(t[r],t[r+1],f)}}const e={ms:t=>1e3*t,s:t=>t/1e3};\n/*\n  Convert velocity into velocity per second\n\n  @param [number]: Unit per frame\n  @param [number]: Frame duration in ms\n*/function velocityPerSecond(t,e){return e?t*(1e3/e):0}export{addUniqueItem,clamp,defaultOffset,t as defaults,fillOffset,getEasingForSegment,interpolate,isCubicBezier,isEasingGenerator,isEasingList,isNumber,isString,mix,noop,noopReturn,progress,removeItem,e as time,velocityPerSecond,wrap};\n\n//# sourceMappingURL=index.es.js.map"],
  "mappings": "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",
  "names": ["Krt_mwunM_exports", "__export", "__FramerMetadata__", "Krt_mwunM_default", "init_shims", "g", "getFonts", "w5NckhfK_default", "h", "v", "x", "r", "e", "t", "b", "w", "S", "a", "re", "MotionConfigContext", "o", "i", "se", "p", "T", "A", "n", "J", "P", "Y", "useLocaleInfo", "f", "g", "D", "j", "E", "F", "k", "useVariantState", "h", "N", "q", "I", "useActiveVariantCallback", "G", "pe", "H", "ae", "LayoutGroup", "motion", "cx", "w5NckhfK_default", "withCSS", "Krt_mwunM_default", "addPropertyControls", "ControlType", "addFonts", "__FramerMetadata__", "init_shims", "init_shims", "clamp", "t", "e", "n", "progress", "t", "e", "n", "calcMaskWidth", "inset", "width", "useIsMouse", "isMouseDevice", "setIsMouseDevice", "ye", "fe", "checkLimit", "progress", "target", "edgeOpacity", "moreItems", "buttonRef", "transition", "animate", "useGUI", "initialMoreItems", "initialAlpha", "pe", "useMotionValue", "fadeOpacity", "useTransform", "buttonOpacity", "v", "pointerEvents", "cursor", "buttonStyle", "baseButtonStyles", "setAriaVisible", "element", "useScrollLimits", "container", "axis", "scrollInfo", "updateCurrentScroll", "targetScroll", "checkLimits", "measureItems", "ue", "stopScroll", "scroll", "info", "stopResize", "resize", "Carousel", "slots", "gap", "align", "sizingObject", "fadeObject", "arrowObject", "snapObject", "progressObject", "ariaLabel", "borderRadius", "effectsObject", "props", "numItems", "j", "isCanvas", "RenderTarget", "padding", "usePadding", "axisLabel", "fadeContent", "fadeWidth", "fadeInset", "fadeTransition", "fadeAlpha", "snap", "snapEdge", "fluid", "widthType", "widthInset", "widthColumns", "heightType", "heightInset", "heightRows", "showScrollbar", "showProgressDots", "dotSize", "dotsInset", "dotsRadius", "dotsPadding", "dotsGap", "dotsFill", "dotsBackground", "dotsActiveOpacity", "dotsOpacity", "dotsBlur", "showMouseControls", "arrowSize", "arrowRadius", "arrowFill", "leftArrow", "rightArrow", "arrowPadding", "currentScroll", "newScroll", "start", "end", "startMaskInset", "endMaskInset", "baseWidth", "startMaskWidth", "endMaskWidth", "direction", "mask", "latest", "carouselRef", "numPages", "setNumPages", "itemStyle", "childStyle", "scrollOverflow", "containerStyle", "baseContainerStyle", "carouselStyle", "baseCarouselStyle", "carouselA11y", "itemA11y", "itemSizes", "te", "targetLength", "containerLength", "scrollLength", "current", "i", "start1", "end1", "newNumPages", "findNextItem", "delta", "children", "scrollTarget", "item", "length", "threshold", "isReducedMotion", "useReducedMotion", "goto", "scrollTo", "options", "gotoPage", "page", "gotoDelta", "pageLength", "currentPage", "clamp", "p", "Placeholder", "dots", "dotsBlurStyle", "isSelected", "Dot", "dotStyle", "u", "motion", "child", "index", "ref", "q", "controlsStyles", "dotsContainerStyle", "MouseStyles", "addPropertyControls", "ControlType", "paddingControl", "selectedOpacity", "unselectedOpacity", "total", "opacity", "ref1", "minScroll", "maxScroll", "inlinePadding", "top", "bottom", "right", "left", "placeholderStyles", "emojiStyles", "titleStyles", "subtitleStyles", "baseContainerStyle", "baseCarouselStyle", "baseButtonStyles", "controlsStyles", "dotsContainerStyle", "dotStyle"]
}
