{
  "version": 3,
  "sources": ["ssg:https://asset.29cm.co.kr/contents/framer/components/systems/Headline/Headline.js", "ssg:https://asset.29cm.co.kr/contents/framer/libs/property-controls/headline.js", "ssg:https://asset.29cm.co.kr/contents/framer/libs/property-controls/section.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/systems/curations/Products/Root.constants.js", "ssg:https://asset.29cm.co.kr/contents/framer/utils/getRestScrollWidth.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/@shared/DraggableTabs/Root.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/@shared/DraggableTabs/Root.hooks.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/@shared/DraggableTabs/Gradient.js", "ssg:https://asset.29cm.co.kr/contents/framer/utils/closest.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/@shared/DraggableTabs/List.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/@shared/DraggableTabs/Panel.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/@shared/DraggableTabs/Trigger.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/@shared/DraggableTabs/index.js"],
  "sourcesContent": ["import { jsxs, jsx } from \"react/jsx-runtime\";\nimport { addPropertyControls, ControlType } from \"framer\";\nimport { Headline as Headline$1 } from \"../curations/Headline/index.js\";\nimport { ThemeProvider } from \"../../@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport \"react\";\nimport { BreakpointProvider } from \"../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport { THEME_CONTROLS } from \"../../../libs/property-controls/theme.js\";\nimport { BREAKPOINT_CONTROLS } from \"../../../libs/property-controls/breakpoint.js\";\nconst HeadlineMedia = ({\n  mediaType,\n  imageSrc,\n  videoSrc,\n  videoSrcWebm,\n  poster,\n  lazy\n}) => {\n  if (mediaType === \"image\") {\n    return /* @__PURE__ */ jsx(Headline$1.Image, { source: imageSrc, lazy });\n  }\n  if (mediaType === \"video\") {\n    return /* @__PURE__ */ jsx(Headline$1.Video, { source: videoSrc, sourceWebm: videoSrcWebm, poster, lazy });\n  }\n  return null;\n};\nconst Headline = (props) => {\n  const {\n    priority,\n    title,\n    description,\n    action,\n    mediaType,\n    loading\n  } = props;\n  const hasMediaType = mediaType !== \"none\";\n  const isPrimary = priority === \"primary\";\n  const canRenderMedia = isPrimary && hasMediaType;\n  return /* @__PURE__ */ jsxs(Headline$1.Root, { priority, loading, children: [\n    canRenderMedia ? /* @__PURE__ */ jsx(HeadlineMedia, { ...props }) : null,\n    /* @__PURE__ */ jsxs(Headline$1.Content, { children: [\n      /* @__PURE__ */ jsxs(Headline$1.Body, { children: [\n        /* @__PURE__ */ jsx(Headline$1.Title, { children: title }),\n        isPrimary ? /* @__PURE__ */ jsx(Headline$1.Action, { children: action }) : /* @__PURE__ */ jsx(Headline$1.Description, { children: description })\n      ] }),\n      isPrimary ? /* @__PURE__ */ jsx(Headline$1.Description, { children: description }) : /* @__PURE__ */ jsx(Headline$1.Action, { children: action }),\n      canRenderMedia ? /* @__PURE__ */ jsx(Headline$1.Gradient, {}) : null\n    ] })\n  ] });\n};\nconst FramerHeadline = (props) => {\n  return /* @__PURE__ */ jsx(ThemeProvider, { theme: props.theme, children: /* @__PURE__ */ jsx(BreakpointProvider, { breakpoint: props.breakpoint, children: /* @__PURE__ */ jsx(Headline, { ...props }) }) });\n};\naddPropertyControls(FramerHeadline, {\n  ...BREAKPOINT_CONTROLS,\n  ...THEME_CONTROLS,\n  priority: {\n    type: ControlType.Enum,\n    title: \"\uC6B0\uC120 \uC21C\uC704\",\n    description: \"\uBBF8\uB514\uC5B4 \uAD00\uB828 \uC635\uC158\uC740 primary \uC77C \uB54C\uC5D0\uB9CC \uC0AC\uC6A9 \uAC00\uB2A5\uD569\uB2C8\uB2E4.\",\n    options: [\"primary\", \"secondary\", \"tertiary\"]\n  },\n  title: {\n    type: ControlType.String,\n    title: \"\uC81C\uBAA9\",\n    placeholder: \"\uC81C\uBAA9 \uD14D\uC2A4\uD2B8 \uC785\uB825\",\n    defaultValue: \"\uC81C\uBAA9 \uD14D\uC2A4\uD2B8 \uC785\uB825\"\n  },\n  description: {\n    type: ControlType.String,\n    title: \"\uC124\uBA85\",\n    placeholder: \"\uC124\uBA85 \uD14D\uC2A4\uD2B8 \uC785\uB825\",\n    displayTextArea: true\n  },\n  action: {\n    type: ControlType.ComponentInstance,\n    title: \"\uC561\uC158 \uCEF4\uD3EC\uB10C\uD2B8\",\n    description: \"\uD5E4\uB4DC\uB77C\uC778 \uC6B0\uCE21\uC5D0 \uBCC4\uB3C4\uC758 \uCEF4\uD3EC\uB10C\uD2B8\uAC00 \uC0BD\uC785\uB418\uC5B4\uC57C \uD558\uB294 \uACBD\uC6B0 \uC5F0\uACB0\"\n  },\n  mediaType: {\n    hidden: ({\n      priority\n    }) => priority !== \"primary\",\n    type: ControlType.Enum,\n    title: \"\uBBF8\uB514\uC5B4 \uC720\uD615\",\n    description: \"\uC0BD\uC785\uD560 \uD0A4\uBE44\uC8FC\uC5BC\uC758 \uBBF8\uB514\uC5B4 \uC720\uD615 \uC120\uD0DD\",\n    options: [\"none\", \"image\", \"video\"],\n    optionTitles: [\"\uC120\uD0DD \uC548 \uD568\", \"\uC774\uBBF8\uC9C0\", \"\uC601\uC0C1\"]\n  },\n  imageSrc: {\n    hidden: ({\n      priority,\n      mediaType\n    }) => priority !== \"primary\" || mediaType !== \"image\",\n    type: ControlType.String,\n    title: \"\uC774\uBBF8\uC9C0 URL\",\n    placeholder: \"\uC774\uBBF8\uC9C0 URL \uC785\uB825\"\n  },\n  videoSrc: {\n    hidden: ({\n      priority,\n      mediaType\n    }) => priority !== \"primary\" || mediaType !== \"video\",\n    type: ControlType.String,\n    title: \"\uC601\uC0C1 URL\",\n    placeholder: \"\uC601\uC0C1 URL \uC785\uB825\"\n  },\n  videoSrcWebm: {\n    hidden: ({\n      priority,\n      mediaType\n    }) => priority !== \"primary\" || mediaType !== \"video\",\n    type: ControlType.String,\n    title: \"WEBM \uC601\uC0C1 URL\",\n    placeholder: \"WEBM \uD3EC\uB9F7\uC758 \uC601\uC0C1 URL \uC785\uB825\"\n  },\n  poster: {\n    hidden: ({\n      priority,\n      mediaType\n    }) => priority !== \"primary\" || mediaType !== \"video\",\n    type: ControlType.String,\n    title: \"\uD3EC\uC2A4\uD130 \uC774\uBBF8\uC9C0 URL\",\n    description: \"\uC601\uC0C1\uC774 \uC790\uB3D9\uC7AC\uC0DD\uB418\uC9C0 \uC54A\uB294 \uD658\uACBD(ex. \uC800\uC804\uB825 \uBAA8\uB4DC)\uC5D0\uC11C \uC784\uC2DC\uB85C \uB178\uCD9C\uD560 \uC774\uBBF8\uC9C0 URL\uC744 \uC785\uB825\uD569\uB2C8\uB2E4.\",\n    placeholder: \"\uD3EC\uC2A4\uD130 \uC774\uBBF8\uC9C0 URL \uC785\uB825\"\n  },\n  lazy: {\n    hidden: ({\n      priority,\n      mediaType\n    }) => priority !== \"primary\" || mediaType === \"none\",\n    type: ControlType.Boolean,\n    title: \"\uBBF8\uB514\uC5B4 \uC9C0\uC5F0 \uC694\uCCAD\",\n    description: \"\uCEF4\uD3EC\uB10C\uD2B8\uAC00 \uD654\uBA74\uC5D0 \uBCF4\uC77C \uB54C\uC5D0\uB9CC \uBBF8\uB514\uC5B4\uB97C \uB85C\uB4DC\uD569\uB2C8\uB2E4.\\n(\uC131\uB2A5 \uCD5C\uC801\uD654\uB97C \uC704\uD574 \uD65C\uC131\uD654\uD558\uB294 \uAC83\uC744 \uAD8C\uC7A5\uD569\uB2C8\uB2E4.)\",\n    defaultValue: true\n  }\n});\nexport {\n  FramerHeadline,\n  Headline\n};\n", "import { ControlType } from \"framer\";\nconst HEADLINE_CONTROLS = {\n  headline: {\n    type: ControlType.Object,\n    title: \"\uD5E4\uB4DC\uB77C\uC778\",\n    description: \"\uD5E4\uB4DC\uB77C\uC778 \uAD00\uB828 \uC0C1\uC138 \uC635\uC158 \uC124\uC815\",\n    controls: {\n      title: {\n        type: ControlType.String,\n        title: \"\uC81C\uBAA9\",\n        placeholder: \"\uC81C\uBAA9 \uD14D\uC2A4\uD2B8 \uC785\uB825\",\n        defaultValue: \"\uC81C\uBAA9 \uD14D\uC2A4\uD2B8 \uC785\uB825\"\n      },\n      description: {\n        type: ControlType.String,\n        title: \"\uC124\uBA85\",\n        placeholder: \"\uC124\uBA85 \uD14D\uC2A4\uD2B8 \uC785\uB825\",\n        displayTextArea: true\n      },\n      mediaType: {\n        type: ControlType.Enum,\n        title: \"\uBBF8\uB514\uC5B4 \uC720\uD615\",\n        description: \"\uC0BD\uC785\uD560 \uD0A4\uBE44\uC8FC\uC5BC\uC758 \uBBF8\uB514\uC5B4 \uC720\uD615 \uC120\uD0DD\",\n        options: [\"none\", \"image\", \"video\"],\n        optionTitles: [\"\uC120\uD0DD \uC548 \uD568\", \"\uC774\uBBF8\uC9C0\", \"\uC601\uC0C1\"]\n      },\n      imageSrc: {\n        hidden: ({\n          mediaType\n        }) => mediaType !== \"image\",\n        type: ControlType.String,\n        title: \"\uC774\uBBF8\uC9C0 URL\",\n        placeholder: \"\uC774\uBBF8\uC9C0 URL \uC785\uB825\"\n      },\n      videoSrc: {\n        hidden: ({\n          mediaType\n        }) => mediaType !== \"video\",\n        type: ControlType.String,\n        title: \"\uC601\uC0C1 URL\",\n        placeholder: \"\uC601\uC0C1 URL \uC785\uB825\"\n      },\n      videoSrcWebm: {\n        hidden: ({\n          mediaType\n        }) => mediaType !== \"video\",\n        type: ControlType.String,\n        title: \"WEBM \uC601\uC0C1 URL\",\n        placeholder: \"WEBM \uD3EC\uB9F7\uC758 \uC601\uC0C1 URL \uC785\uB825\"\n      },\n      poster: {\n        hidden: ({\n          mediaType\n        }) => mediaType !== \"video\",\n        type: ControlType.String,\n        title: \"\uD3EC\uC2A4\uD130 \uC774\uBBF8\uC9C0 URL\",\n        description: \"\uC601\uC0C1\uC774 \uC790\uB3D9\uC7AC\uC0DD\uB418\uC9C0 \uC54A\uB294 \uD658\uACBD(ex. \uC800\uC804\uB825 \uBAA8\uB4DC)\uC5D0\uC11C \uC784\uC2DC\uB85C \uB178\uCD9C\uD560 \uC774\uBBF8\uC9C0 URL\uC744 \uC785\uB825\uD569\uB2C8\uB2E4.\",\n        placeholder: \"\uD3EC\uC2A4\uD130 \uC774\uBBF8\uC9C0 URL \uC785\uB825\"\n      },\n      lazy: {\n        hidden: ({\n          mediaType\n        }) => mediaType === \"none\",\n        type: ControlType.Boolean,\n        title: \"\uBBF8\uB514\uC5B4 \uC9C0\uC5F0 \uC694\uCCAD\",\n        description: \"\uCEF4\uD3EC\uB10C\uD2B8\uAC00 \uD654\uBA74\uC5D0 \uBCF4\uC77C \uB54C\uC5D0\uB9CC \uBBF8\uB514\uC5B4\uB97C \uB85C\uB4DC\uD569\uB2C8\uB2E4.\\n(\uC131\uB2A5 \uCD5C\uC801\uD654\uB97C \uC704\uD574 \uD65C\uC131\uD654\uD558\uB294 \uAC83\uC744 \uAD8C\uC7A5\uD569\uB2C8\uB2E4.)\",\n        defaultValue: true\n      }\n    }\n  }\n};\nexport {\n  HEADLINE_CONTROLS\n};\n", "import { ControlType } from \"framer\";\nimport { BREAKPOINT_CONTROLS } from \"./breakpoint.js\";\nimport { HEADLINE_CONTROLS } from \"./headline.js\";\nimport { THEME_CONTROLS } from \"./theme.js\";\nconst SECTION_CONTROLS = {\n  ...BREAKPOINT_CONTROLS,\n  ...THEME_CONTROLS,\n  ...HEADLINE_CONTROLS,\n  componentId: {\n    type: ControlType.String,\n    title: \"\uCEF4\uD3EC\uB10C\uD2B8 ID\",\n    description: \"\uC774\uBCA4\uD2B8 \uC218\uC9D1 \uC2DC\uC5D0 \uC0C1\uD488 \uBAA8\uB4C8\uC744 \uAD6C\uBD84\uD558\uAE30 \uC704\uD55C \uAC12\\nex. 29welcoming\",\n    defaultValue: \"\"\n  }\n};\nexport {\n  SECTION_CONTROLS\n};\n", "import { ProductCardType } from \"../../../@shared/ProductCard/ProductCard.types.js\";\nimport { createOptionTemplate, getResponsiveWidth } from \"./Root.utils.js\";\nconst CARD_HORIZONTAL_AUTO = createOptionTemplate({\n  base: {\n    direction: \"horizontal\",\n    card: {\n      type: ProductCardType.CARD,\n      hasBadges: false,\n      hasPriceUnit: false\n    },\n    column: {\n      gap: 6\n    },\n    row: {\n      count: 2\n    }\n  },\n  mobile: {\n    column: {\n      displayCount: 3,\n      width: getResponsiveWidth(6, 3)\n    }\n  },\n  tablet: {\n    column: {\n      displayCount: 4,\n      width: getResponsiveWidth(6, 4)\n    }\n  },\n  desktop: {\n    navigator: true,\n    card: {\n      type: ProductCardType.CARD_DETAILED,\n      hasBadges: true\n    },\n    column: {\n      displayCount: 5,\n      width: getResponsiveWidth(6, 5)\n    }\n  }\n});\nconst BAR_HORIZONTAL_AUTO = createOptionTemplate({\n  base: {\n    direction: \"horizontal\",\n    card: {\n      type: ProductCardType.BAR,\n      size: \"small\",\n      hasName: false,\n      hasHeart: false,\n      hasBadges: false,\n      hasPriceUnit: false\n    },\n    column: {\n      gap: 16\n    },\n    row: {\n      count: 4,\n      gap: 16\n    }\n  },\n  mobile: {\n    column: {\n      displayCount: 1,\n      width: getResponsiveWidth(0, 1, 60)\n    }\n  },\n  tablet: {\n    column: {\n      displayCount: 2,\n      width: getResponsiveWidth(16, 2, 60)\n    }\n  },\n  desktop: {\n    navigator: true,\n    card: {\n      size: \"medium\"\n    },\n    column: {\n      displayCount: 3,\n      width: getResponsiveWidth(16, 3)\n    }\n  }\n});\nexport {\n  BAR_HORIZONTAL_AUTO,\n  CARD_HORIZONTAL_AUTO\n};\n", "const getRestScrollWidth = (element) => {\n  const {\n    scrollWidth = 0,\n    offsetWidth = 0\n  } = element ?? {};\n  return scrollWidth - offsetWidth;\n};\nexport {\n  getRestScrollWidth\n};\n", "import { jsx } from \"react/jsx-runtime\";\nimport { useMotionValue, clamp, animate } from \"framer-motion\";\nimport { createContext, forwardRef, useRef, useState, useLayoutEffect, useEffect } from \"react\";\nimport { getRestScrollWidth } from \"../../../utils/getRestScrollWidth.js\";\nconst DraggableTabsContext = createContext(null);\nconst Root = forwardRef(({\n  children,\n  style,\n  defaultValue,\n  value,\n  dragPaddingLeft = 0,\n  dragPaddingRight = 0,\n  onValueChange,\n  ...rest\n}, ref) => {\n  const refs = useRef(/* @__PURE__ */ new Map());\n  const listRef = useRef(null);\n  const [firstValue] = refs.current.keys();\n  const [currentValue, setCurrentValue] = useState(defaultValue ?? value ?? firstValue);\n  const listX = useMotionValue(0);\n  const focusTo = (incoming, smooth = true) => {\n    const item = refs.current.get(incoming);\n    if (item === void 0) {\n      return;\n    }\n    const threshold = getRestScrollWidth(listRef.current);\n    const finalX = -clamp(0, threshold, item.offsetLeft - dragPaddingLeft);\n    if (smooth) {\n      animate(listX, finalX, {\n        type: \"spring\",\n        stiffness: 400,\n        damping: 50\n      });\n    } else {\n      listX.set(finalX);\n    }\n  };\n  const move = (next) => {\n    onValueChange == null ? void 0 : onValueChange(next);\n    setCurrentValue(next);\n    focusTo(next);\n  };\n  useLayoutEffect(() => {\n    if (defaultValue) {\n      focusTo(defaultValue, false);\n    }\n  }, []);\n  useEffect(() => {\n    if (value) {\n      move(value);\n    }\n  }, [value]);\n  const context = {\n    refs,\n    listRef,\n    currentValue,\n    listX,\n    dragPaddingLeft,\n    dragPaddingRight,\n    move\n  };\n  return /* @__PURE__ */ jsx(DraggableTabsContext.Provider, { value: context, children: /* @__PURE__ */ jsx(\"div\", { ref, ...rest, style: {\n    ...style,\n    ...containerStyle\n  }, children }) });\n});\nconst containerStyle = {\n  display: \"flex\",\n  flexDirection: \"column\"\n};\nexport {\n  DraggableTabsContext,\n  Root\n};\n", "import { useContext } from \"react\";\nimport { DraggableTabsContext } from \"./Root.js\";\nconst useDraggableTabsContext = () => {\n  const context = useContext(DraggableTabsContext);\n  if (!context) {\n    throw new Error(\"useDraggableTabsContext should be used within Root\");\n  }\n  return context;\n};\nexport {\n  useDraggableTabsContext\n};\n", "import { jsx } from \"react/jsx-runtime\";\nimport { useTransform, motion, useMotionValue, useMotionValueEvent } from \"framer-motion\";\nimport { useDraggableTabsContext } from \"./Root.hooks.js\";\nimport { forwardRef, useState, useEffect } from \"react\";\nimport { getRestScrollWidth } from \"../../../utils/getRestScrollWidth.js\";\nconst Gradient = forwardRef(({\n  style,\n  theme = \"light\",\n  ...props\n}, ref) => {\n  const {\n    listRef\n  } = useDraggableTabsContext();\n  const xProgress = useListXProgress();\n  const opacity = useTransform(xProgress, [0.95, 1], [1, 0]);\n  const [hidden, setHidden] = useState(true);\n  useEffect(() => {\n    const container = listRef.current;\n    if (container === null) {\n      return;\n    }\n    setHidden(container.scrollWidth <= container.clientWidth);\n  }, []);\n  return /* @__PURE__ */ jsx(motion.div, { ref, ...props, style: {\n    ...gradientStyle,\n    ...gradientStyleByTheme[theme],\n    opacity: hidden ? 0 : opacity,\n    ...style\n  } });\n});\nconst useListXProgress = () => {\n  const {\n    listX,\n    listRef\n  } = useDraggableTabsContext();\n  const xProgress = useMotionValue(0);\n  useMotionValueEvent(listX, \"change\", (latest) => {\n    xProgress.set(-latest / getRestScrollWidth(listRef.current));\n  });\n  return xProgress;\n};\nconst gradientStyle = {\n  position: \"absolute\",\n  zIndex: 8,\n  inset: \"0 0 0 auto\",\n  pointerEvents: \"none\",\n  width: 60\n};\nconst gradientStyleByTheme = {\n  light: {\n    background: \"linear-gradient(270deg, #ffffff 0%, rgba(0, 0, 0, 0) 100%)\"\n  },\n  dark: {\n    background: \"linear-gradient(270deg, #000000 0%, rgba(0, 0, 0, 0) 100%)\"\n  }\n};\nexport {\n  Gradient\n};\n", "const closest = (array, target) => {\n  return array.reduce((prev, curr) => Math.abs(curr - target) < Math.abs(prev - target) ? curr : prev, 0);\n};\nexport {\n  closest\n};\n", "import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { mergeRefs } from \"../../../utils/react/mergeRefs.js\";\nimport { useDraggableTabsContext } from \"./Root.hooks.js\";\nimport { withCSS } from \"framer\";\nimport { motion, clamp, animate } from \"framer-motion\";\nimport { closest } from \"../../../utils/closest.js\";\nimport { getRestScrollWidth } from \"../../../utils/getRestScrollWidth.js\";\nconst COMPONENT_NAME = \"tabs-list\";\nconst INITIAL_DAMPING = 0.4;\nconst css = [`\n    .${COMPONENT_NAME}-container::-webkit-scrollbar {\n      display: none;\n    }\n  `];\nconst List = withCSS(forwardRef(({\n  children,\n  style,\n  gap = 0,\n  damping = INITIAL_DAMPING,\n  ...rest\n}, ref) => {\n  const {\n    listRef,\n    refs,\n    listX,\n    dragPaddingLeft,\n    dragPaddingRight\n  } = useDraggableTabsContext();\n  const getChildrenPositions = () => {\n    return Array.from(refs.current.values()).map((element) => element.offsetLeft);\n  };\n  const handleDragEnd = (_, {\n    velocity\n  }) => {\n    const destinationX = listX.get() + velocity.x * damping;\n    const closestX = closest(getChildrenPositions(), -destinationX);\n    const threshold = getRestScrollWidth(listRef.current);\n    const finalX = -clamp(0, threshold, closestX - dragPaddingLeft);\n    animate(listX, finalX, {\n      type: \"spring\",\n      stiffness: 200,\n      damping: 50\n    });\n  };\n  return /* @__PURE__ */ jsx(\"div\", { ref: mergeRefs([ref, listRef]), className: `${COMPONENT_NAME}-container`, style: {\n    ...containerStyle,\n    ...style\n  }, ...rest, children: /* @__PURE__ */ jsx(motion.div, { style: {\n    ...listStyle,\n    x: listX,\n    gap,\n    paddingLeft: dragPaddingLeft,\n    paddingRight: dragPaddingRight\n  }, drag: \"x\", dragElastic: 0.1, dragConstraints: listRef, dragPropagation: false, onDragEnd: handleDragEnd, whileDrag: {\n    pointerEvents: \"none\"\n  }, children }) });\n}), css);\nconst containerStyle = {\n  position: \"relative\",\n  zIndex: 8,\n  width: \"100%\",\n  overflow: \"hidden\",\n  msOverflowStyle: \"none\",\n  scrollbarWidth: \"none\",\n  cursor: \"grab\"\n};\nconst listStyle = {\n  display: \"inline-flex\",\n  minWidth: \"100%\"\n};\nexport {\n  List\n};\n", "import { useDraggableTabsContext } from \"./Root.hooks.js\";\nconst Panel = ({\n  children,\n  value\n}) => {\n  const {\n    currentValue\n  } = useDraggableTabsContext();\n  const isCurrent = value === currentValue;\n  return isCurrent ? children : null;\n};\nexport {\n  Panel\n};\n", "import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { useDraggableTabsContext } from \"./Root.hooks.js\";\nimport { mergeRefs } from \"../../../utils/react/mergeRefs.js\";\nimport { isFunction } from \"../../../utils/function.js\";\nimport { playHaptic } from \"../../../utils/playHaptic.js\";\nconst Trigger = forwardRef(({\n  children,\n  style,\n  value,\n  onClick,\n  ...rest\n}, ref) => {\n  const {\n    refs,\n    currentValue,\n    move\n  } = useDraggableTabsContext();\n  const isCurrent = value === currentValue;\n  const register = (incoming) => (element) => {\n    refs.current.set(incoming, element);\n  };\n  const handleClick = (e) => {\n    onClick == null ? void 0 : onClick(e);\n    move(value);\n    playHaptic(\"rigid\");\n  };\n  return /* @__PURE__ */ jsx(\"div\", { ref: mergeRefs([ref, register(value)]), style: {\n    ...containerStyle,\n    ...style\n  }, ...rest, onClick: handleClick, children: isFunction(children) ? children(isCurrent) : children });\n});\nconst containerStyle = {\n  position: \"relative\",\n  display: \"flex\",\n  flex: \"0 0 auto\",\n  alignItems: \"center\",\n  justifyContent: \"center\",\n  cursor: \"pointer\",\n  scrollSnapAlign: \"start\"\n};\nexport {\n  Trigger\n};\n", "import { Gradient } from \"./Gradient.js\";\nimport { List } from \"./List.js\";\nimport { Panel } from \"./Panel.js\";\nimport { Root } from \"./Root.js\";\nimport { Trigger } from \"./Trigger.js\";\nconst DraggableTabs = {\n  Root,\n  List,\n  Trigger,\n  Panel,\n  Gradient\n};\nexport {\n  DraggableTabs\n};\n"],
  "mappings": "2fAQA,IAAMA,GAAgB,CAAC,CACrB,UAAAC,EACA,SAAAC,EACA,SAAAC,EACA,aAAAC,EACA,OAAAC,EACA,KAAAC,CACF,IACML,IAAc,QACOM,EAAIC,EAAW,MAAO,CAAE,OAAQN,EAAU,KAAAI,CAAK,CAAC,EAErEL,IAAc,QACOM,EAAIC,EAAW,MAAO,CAAE,OAAQL,EAAU,WAAYC,EAAc,OAAAC,EAAQ,KAAAC,CAAK,CAAC,EAEpG,KAEHE,GAAYC,GAAU,CAC1B,GAAM,CACJ,SAAAC,EACA,MAAAC,EACA,YAAAC,EACA,OAAAC,EACA,UAAAZ,EACA,QAAAa,CACF,EAAIL,EACEM,EAAed,IAAc,OAC7Be,EAAYN,IAAa,UACzBO,EAAiBD,GAAaD,EACpC,OAAuBG,EAAKV,EAAW,KAAM,CAAE,SAAAE,EAAU,QAAAI,EAAS,SAAU,CAC1EG,EAAiCV,EAAIP,GAAe,CAAE,GAAGS,CAAM,CAAC,EAAI,KACpDS,EAAKV,EAAW,QAAS,CAAE,SAAU,CACnCU,EAAKV,EAAW,KAAM,CAAE,SAAU,CAChCD,EAAIC,EAAW,MAAO,CAAE,SAAUG,CAAM,CAAC,EACzDK,EAA4BT,EAAIC,EAAW,OAAQ,CAAE,SAAUK,CAAO,CAAC,EAAoBN,EAAIC,EAAW,YAAa,CAAE,SAAUI,CAAY,CAAC,CAClJ,CAAE,CAAC,EACHI,EAA4BT,EAAIC,EAAW,YAAa,CAAE,SAAUI,CAAY,CAAC,EAAoBL,EAAIC,EAAW,OAAQ,CAAE,SAAUK,CAAO,CAAC,EAChJI,EAAiCV,EAAIC,EAAW,SAAU,CAAC,CAAC,EAAI,IAClE,CAAE,CAAC,CACL,CAAE,CAAC,CACL,EACMW,GAAkBV,GACCF,EAAIa,EAAe,CAAE,MAAOX,EAAM,MAAO,SAA0BF,EAAIc,GAAoB,CAAE,WAAYZ,EAAM,WAAY,SAA0BF,EAAIC,GAAU,CAAE,GAAGC,CAAM,CAAC,CAAE,CAAC,CAAE,CAAC,EAE9Ma,EAAoBH,GAAgB,CAClC,GAAGI,EACH,GAAGC,EACH,SAAU,CACR,KAAMC,EAAY,KAClB,MAAO,4BACP,YAAa,oIACb,QAAS,CAAC,UAAW,YAAa,UAAU,CAC9C,EACA,MAAO,CACL,KAAMA,EAAY,OAClB,MAAO,eACP,YAAa,+CACb,aAAc,8CAChB,EACA,YAAa,CACX,KAAMA,EAAY,OAClB,MAAO,eACP,YAAa,+CACb,gBAAiB,EACnB,EACA,OAAQ,CACN,KAAMA,EAAY,kBAClB,MAAO,wCACP,YAAa,qKACf,EACA,UAAW,CACT,OAAQ,CAAC,CACP,SAAAf,CACF,IAAMA,IAAa,UACnB,KAAMe,EAAY,KAClB,MAAO,kCACP,YAAa,iGACb,QAAS,CAAC,OAAQ,QAAS,OAAO,EAClC,aAAc,CAAC,6BAAU,qBAAO,cAAI,CACtC,EACA,SAAU,CACR,OAAQ,CAAC,CACP,SAAAf,EACA,UAAAT,CACF,IAAMS,IAAa,WAAaT,IAAc,QAC9C,KAAMwB,EAAY,OAClB,MAAO,yBACP,YAAa,qCACf,EACA,SAAU,CACR,OAAQ,CAAC,CACP,SAAAf,EACA,UAAAT,CACF,IAAMS,IAAa,WAAaT,IAAc,QAC9C,KAAMwB,EAAY,OAClB,MAAO,mBACP,YAAa,+BACf,EACA,aAAc,CACZ,OAAQ,CAAC,CACP,SAAAf,EACA,UAAAT,CACF,IAAMS,IAAa,WAAaT,IAAc,QAC9C,KAAMwB,EAAY,OAClB,MAAO,wBACP,YAAa,uDACf,EACA,OAAQ,CACN,OAAQ,CAAC,CACP,SAAAf,EACA,UAAAT,CACF,IAAMS,IAAa,WAAaT,IAAc,QAC9C,KAAMwB,EAAY,OAClB,MAAO,4CACP,YAAa,wOACb,YAAa,wDACf,EACA,KAAM,CACJ,OAAQ,CAAC,CACP,SAAAf,EACA,UAAAT,CACF,IAAMS,IAAa,WAAaT,IAAc,OAC9C,KAAMwB,EAAY,QAClB,MAAO,+CACP,YAAa;AAAA,kIACb,aAAc,EAChB,CACF,CAAC,ECrID,IAAMC,GAAoB,CACxB,SAAU,CACR,KAAMC,EAAY,OAClB,MAAO,2BACP,YAAa,+EACb,SAAU,CACR,MAAO,CACL,KAAMA,EAAY,OAClB,MAAO,eACP,YAAa,+CACb,aAAc,8CAChB,EACA,YAAa,CACX,KAAMA,EAAY,OAClB,MAAO,eACP,YAAa,+CACb,gBAAiB,EACnB,EACA,UAAW,CACT,KAAMA,EAAY,KAClB,MAAO,kCACP,YAAa,iGACb,QAAS,CAAC,OAAQ,QAAS,OAAO,EAClC,aAAc,CAAC,6BAAU,qBAAO,cAAI,CACtC,EACA,SAAU,CACR,OAAQ,CAAC,CACP,UAAAC,CACF,IAAMA,IAAc,QACpB,KAAMD,EAAY,OAClB,MAAO,yBACP,YAAa,qCACf,EACA,SAAU,CACR,OAAQ,CAAC,CACP,UAAAC,CACF,IAAMA,IAAc,QACpB,KAAMD,EAAY,OAClB,MAAO,mBACP,YAAa,+BACf,EACA,aAAc,CACZ,OAAQ,CAAC,CACP,UAAAC,CACF,IAAMA,IAAc,QACpB,KAAMD,EAAY,OAClB,MAAO,wBACP,YAAa,uDACf,EACA,OAAQ,CACN,OAAQ,CAAC,CACP,UAAAC,CACF,IAAMA,IAAc,QACpB,KAAMD,EAAY,OAClB,MAAO,4CACP,YAAa,wOACb,YAAa,wDACf,EACA,KAAM,CACJ,OAAQ,CAAC,CACP,UAAAC,CACF,IAAMA,IAAc,OACpB,KAAMD,EAAY,QAClB,MAAO,+CACP,YAAa;AAAA,kIACb,aAAc,EAChB,CACF,CACF,CACF,EClEA,IAAME,GAAmB,CACvB,GAAGC,EACH,GAAGC,EACH,GAAGC,GACH,YAAa,CACX,KAAMC,EAAY,OAClB,MAAO,8BACP,YAAa;AAAA,iBACb,aAAc,EAChB,CACF,ECZA,IAAMC,GAAuBC,EAAqB,CAChD,KAAM,CACJ,UAAW,aACX,KAAM,CACJ,KAAMC,EAAgB,KACtB,UAAW,GACX,aAAc,EAChB,EACA,OAAQ,CACN,IAAK,CACP,EACA,IAAK,CACH,MAAO,CACT,CACF,EACA,OAAQ,CACN,OAAQ,CACN,aAAc,EACd,MAAOC,EAAmB,EAAG,CAAC,CAChC,CACF,EACA,OAAQ,CACN,OAAQ,CACN,aAAc,EACd,MAAOA,EAAmB,EAAG,CAAC,CAChC,CACF,EACA,QAAS,CACP,UAAW,GACX,KAAM,CACJ,KAAMD,EAAgB,cACtB,UAAW,EACb,EACA,OAAQ,CACN,aAAc,EACd,MAAOC,EAAmB,EAAG,CAAC,CAChC,CACF,CACF,CAAC,EACKC,GAAsBH,EAAqB,CAC/C,KAAM,CACJ,UAAW,aACX,KAAM,CACJ,KAAMC,EAAgB,IACtB,KAAM,QACN,QAAS,GACT,SAAU,GACV,UAAW,GACX,aAAc,EAChB,EACA,OAAQ,CACN,IAAK,EACP,EACA,IAAK,CACH,MAAO,EACP,IAAK,EACP,CACF,EACA,OAAQ,CACN,OAAQ,CACN,aAAc,EACd,MAAOC,EAAmB,EAAG,EAAG,EAAE,CACpC,CACF,EACA,OAAQ,CACN,OAAQ,CACN,aAAc,EACd,MAAOA,EAAmB,GAAI,EAAG,EAAE,CACrC,CACF,EACA,QAAS,CACP,UAAW,GACX,KAAM,CACJ,KAAM,QACR,EACA,OAAQ,CACN,aAAc,EACd,MAAOA,EAAmB,GAAI,CAAC,CACjC,CACF,CACF,CAAC,EClFD,IAAME,EAAsBC,GAAY,CACtC,GAAM,CACJ,YAAAC,EAAc,EACd,YAAAC,EAAc,CAChB,EAAIF,GAAW,CAAC,EAChB,OAAOC,EAAcC,CACvB,ECFA,IAAMC,EAAuBC,EAAc,IAAI,EACzCC,GAAOC,EAAW,CAAC,CACvB,SAAAC,EACA,MAAAC,EACA,aAAAC,EACA,MAAAC,EACA,gBAAAC,EAAkB,EAClB,iBAAAC,EAAmB,EACnB,cAAAC,EACA,GAAGC,CACL,EAAGC,IAAQ,CACT,IAAMC,EAAOC,EAAuB,IAAI,GAAK,EACvCC,EAAUD,EAAO,IAAI,EACrB,CAACE,CAAU,EAAIH,EAAK,QAAQ,KAAK,EACjC,CAACI,EAAcC,CAAe,EAAIC,EAASb,GAAgBC,GAASS,CAAU,EAC9EI,EAAQC,EAAe,CAAC,EACxBC,EAAU,CAACC,EAAUC,GAAS,KAAS,CAC3C,IAAMC,EAAOZ,EAAK,QAAQ,IAAIU,CAAQ,EACtC,GAAIE,IAAS,OACX,OAEF,IAAMC,GAAYC,EAAmBZ,EAAQ,OAAO,EAC9Ca,EAAS,CAACC,EAAM,EAAGH,GAAWD,EAAK,WAAajB,CAAe,EACjEgB,GACFM,EAAQV,EAAOQ,EAAQ,CACrB,KAAM,SACN,UAAW,IACX,QAAS,EACX,CAAC,EAEDR,EAAM,IAAIQ,CAAM,CAEpB,EACMG,EAAQC,GAAS,CACYtB,IAAcsB,CAAI,EACnDd,EAAgBc,CAAI,EACpBV,EAAQU,CAAI,CACd,EACAC,EAAgB,IAAM,CAChB3B,GACFgB,EAAQhB,EAAc,EAAK,CAE/B,EAAG,CAAC,CAAC,EACL4B,EAAU,IAAM,CACV3B,GACFwB,EAAKxB,CAAK,CAEd,EAAG,CAACA,CAAK,CAAC,EACV,IAAM4B,EAAU,CACd,KAAAtB,EACA,QAAAE,EACA,aAAAE,EACA,MAAAG,EACA,gBAAAZ,EACA,iBAAAC,EACA,KAAAsB,CACF,EACA,OAAuBK,EAAIpC,EAAqB,SAAU,CAAE,MAAOmC,EAAS,SAA0BC,EAAI,MAAO,CAAE,IAAAxB,EAAK,GAAGD,EAAM,MAAO,CACtI,GAAGN,EACH,GAAGgC,EACL,EAAG,SAAAjC,CAAS,CAAC,CAAE,CAAC,CAClB,CAAC,EACKiC,GAAiB,CACrB,QAAS,OACT,cAAe,QACjB,ECnEA,IAAMC,EAA0B,IAAM,CACpC,IAAMC,EAAUC,EAAWC,CAAoB,EAC/C,GAAI,CAACF,EACH,MAAM,IAAI,MAAM,oDAAoD,EAEtE,OAAOA,CACT,ECHA,IAAMG,GAAWC,EAAW,CAAC,CAC3B,MAAAC,EACA,MAAAC,EAAQ,QACR,GAAGC,CACL,EAAGC,IAAQ,CACT,GAAM,CACJ,QAAAC,CACF,EAAIC,EAAwB,EACtBC,EAAYC,GAAiB,EAC7BC,EAAUC,EAAaH,EAAW,CAAC,IAAM,CAAC,EAAG,CAAC,EAAG,CAAC,CAAC,EACnD,CAACI,EAAQC,CAAS,EAAIC,EAAS,EAAI,EACzC,OAAAC,EAAU,IAAM,CACd,IAAMC,EAAYV,EAAQ,QACtBU,IAAc,MAGlBH,EAAUG,EAAU,aAAeA,EAAU,WAAW,CAC1D,EAAG,CAAC,CAAC,EACkBC,EAAIC,EAAO,IAAK,CAAE,IAAAb,EAAK,GAAGD,EAAO,MAAO,CAC7D,GAAGe,GACH,GAAGC,GAAqBjB,CAAK,EAC7B,QAASS,EAAS,EAAIF,EACtB,GAAGR,CACL,CAAE,CAAC,CACL,CAAC,EACKO,GAAmB,IAAM,CAC7B,GAAM,CACJ,MAAAY,EACA,QAAAf,CACF,EAAIC,EAAwB,EACtBC,EAAYc,EAAe,CAAC,EAClC,OAAAC,EAAoBF,EAAO,SAAWG,GAAW,CAC/ChB,EAAU,IAAI,CAACgB,EAASC,EAAmBnB,EAAQ,OAAO,CAAC,CAC7D,CAAC,EACME,CACT,EACMW,GAAgB,CACpB,SAAU,WACV,OAAQ,EACR,MAAO,aACP,cAAe,OACf,MAAO,EACT,EACMC,GAAuB,CAC3B,MAAO,CACL,WAAY,4DACd,EACA,KAAM,CACJ,WAAY,4DACd,CACF,ECvDA,IAAMM,GAAU,CAACC,EAAOC,IACfD,EAAM,OAAO,CAACE,EAAMC,IAAS,KAAK,IAAIA,EAAOF,CAAM,EAAI,KAAK,IAAIC,EAAOD,CAAM,EAAIE,EAAOD,EAAM,CAAC,ECOxG,IAAME,GAAiB,YACjBC,GAAkB,GAClBC,GAAM,CAAC;AAAA,OACNF,EAAc;AAAA;AAAA;AAAA,GAGlB,EACGG,GAAOC,EAAQC,EAAW,CAAC,CAC/B,SAAAC,EACA,MAAAC,EACA,IAAAC,EAAM,EACN,QAAAC,EAAUR,GACV,GAAGS,CACL,EAAGC,IAAQ,CACT,GAAM,CACJ,QAAAC,EACA,KAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,iBAAAC,CACF,EAAIC,EAAwB,EACtBC,EAAuB,IACpB,MAAM,KAAKL,EAAK,QAAQ,OAAO,CAAC,EAAE,IAAKM,GAAYA,EAAQ,UAAU,EAExEC,EAAgB,CAACC,EAAG,CACxB,SAAAC,CACF,IAAM,CACJ,IAAMC,EAAeT,EAAM,IAAI,EAAIQ,EAAS,EAAIb,EAC1Ce,EAAWC,GAAQP,EAAqB,EAAG,CAACK,CAAY,EACxDG,EAAYC,EAAmBf,EAAQ,OAAO,EAC9CgB,EAAS,CAACC,EAAM,EAAGH,EAAWF,EAAWT,CAAe,EAC9De,EAAQhB,EAAOc,EAAQ,CACrB,KAAM,SACN,UAAW,IACX,QAAS,EACX,CAAC,CACH,EACA,OAAuBG,EAAI,MAAO,CAAE,IAAKC,EAAU,CAACrB,EAAKC,CAAO,CAAC,EAAG,UAAW,GAAGZ,EAAc,aAAc,MAAO,CACnH,GAAGiC,GACH,GAAG1B,CACL,EAAG,GAAGG,EAAM,SAA0BqB,EAAIG,EAAO,IAAK,CAAE,MAAO,CAC7D,GAAGC,GACH,EAAGrB,EACH,IAAAN,EACA,YAAaO,EACb,aAAcC,CAChB,EAAG,KAAM,IAAK,YAAa,GAAK,gBAAiBJ,EAAS,gBAAiB,GAAO,UAAWQ,EAAe,UAAW,CACrH,cAAe,MACjB,EAAG,SAAAd,CAAS,CAAC,CAAE,CAAC,CAClB,CAAC,EAAGJ,EAAG,EACD+B,GAAiB,CACrB,SAAU,WACV,OAAQ,EACR,MAAO,OACP,SAAU,SACV,gBAAiB,OACjB,eAAgB,OAChB,OAAQ,MACV,EACME,GAAY,CAChB,QAAS,cACT,SAAU,MACZ,ECrEA,IAAMC,GAAQ,CAAC,CACb,SAAAC,EACA,MAAAC,CACF,IAAM,CACJ,GAAM,CACJ,aAAAC,CACF,EAAIC,EAAwB,EAE5B,OADkBF,IAAUC,EACTF,EAAW,IAChC,ECJA,IAAMI,GAAUC,EAAW,CAAC,CAC1B,SAAAC,EACA,MAAAC,EACA,MAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,IAAQ,CACT,GAAM,CACJ,KAAAC,EACA,aAAAC,EACA,KAAAC,CACF,EAAIC,EAAwB,EACtBC,EAAYR,IAAUK,EACtBI,EAAYC,GAAcC,GAAY,CAC1CP,EAAK,QAAQ,IAAIM,EAAUC,CAAO,CACpC,EACMC,EAAeC,GAAM,CACEZ,IAAQY,CAAC,EACpCP,EAAKN,CAAK,EACVc,GAAW,OAAO,CACpB,EACA,OAAuBC,EAAI,MAAO,CAAE,IAAKC,EAAU,CAACb,EAAKM,EAAST,CAAK,CAAC,CAAC,EAAG,MAAO,CACjF,GAAGiB,GACH,GAAGlB,CACL,EAAG,GAAGG,EAAM,QAASU,EAAa,SAAUM,EAAWpB,CAAQ,EAAIA,EAASU,CAAS,EAAIV,CAAS,CAAC,CACrG,CAAC,EACKmB,GAAiB,CACrB,SAAU,WACV,QAAS,OACT,KAAM,WACN,WAAY,SACZ,eAAgB,SAChB,OAAQ,UACR,gBAAiB,OACnB,ECnCA,IAAME,GAAgB,CACpB,KAAAC,GACA,KAAAC,GACA,QAAAC,GACA,MAAAC,GACA,SAAAC,EACF",
  "names": ["HeadlineMedia", "mediaType", "imageSrc", "videoSrc", "videoSrcWebm", "poster", "lazy", "p", "Headline", "props", "priority", "title", "description", "action", "loading", "hasMediaType", "isPrimary", "canRenderMedia", "u", "FramerHeadline", "ThemeProvider", "BreakpointProvider", "addPropertyControls", "BREAKPOINT_CONTROLS", "THEME_CONTROLS", "ControlType", "HEADLINE_CONTROLS", "ControlType", "mediaType", "SECTION_CONTROLS", "BREAKPOINT_CONTROLS", "THEME_CONTROLS", "HEADLINE_CONTROLS", "ControlType", "CARD_HORIZONTAL_AUTO", "createOptionTemplate", "ProductCardType", "getResponsiveWidth", "BAR_HORIZONTAL_AUTO", "getRestScrollWidth", "element", "scrollWidth", "offsetWidth", "DraggableTabsContext", "z", "Root", "Y", "children", "style", "defaultValue", "value", "dragPaddingLeft", "dragPaddingRight", "onValueChange", "rest", "ref", "refs", "pe", "listRef", "firstValue", "currentValue", "setCurrentValue", "ye", "listX", "useMotionValue", "focusTo", "incoming", "smooth", "item", "threshold", "getRestScrollWidth", "finalX", "clamp", "animate", "move", "next", "fe", "ue", "context", "p", "containerStyle", "useDraggableTabsContext", "context", "re", "DraggableTabsContext", "Gradient", "Y", "style", "theme", "props", "ref", "listRef", "useDraggableTabsContext", "xProgress", "useListXProgress", "opacity", "useTransform", "hidden", "setHidden", "ye", "ue", "container", "p", "motion", "gradientStyle", "gradientStyleByTheme", "listX", "useMotionValue", "useMotionValueEvent", "latest", "getRestScrollWidth", "closest", "array", "target", "prev", "curr", "COMPONENT_NAME", "INITIAL_DAMPING", "css", "List", "withCSS", "Y", "children", "style", "gap", "damping", "rest", "ref", "listRef", "refs", "listX", "dragPaddingLeft", "dragPaddingRight", "useDraggableTabsContext", "getChildrenPositions", "element", "handleDragEnd", "_", "velocity", "destinationX", "closestX", "closest", "threshold", "getRestScrollWidth", "finalX", "clamp", "animate", "p", "mergeRefs", "containerStyle", "motion", "listStyle", "Panel", "children", "value", "currentValue", "useDraggableTabsContext", "Trigger", "Y", "children", "style", "value", "onClick", "rest", "ref", "refs", "currentValue", "move", "useDraggableTabsContext", "isCurrent", "register", "incoming", "element", "handleClick", "e", "playHaptic", "p", "mergeRefs", "containerStyle", "isFunction", "DraggableTabs", "Root", "List", "Trigger", "Panel", "Gradient"]
}
