{"version":3,"file":"HeadlineModule.pHQuSPyV.mjs","names":["createContext","forwardRef","containerStyle","forwardRef","containerStyle","containerStyleByBreakpoint","useRef","useState","useCallback","forwardRef","useMemo","containerStyle","useRef","useContext","forwardRef","contentStyle","forwardRef","skeletonStyle","skeletonStyleByPriority","skeletonStyleByTheme","containerStyle","textColor","forwardRef","containerStyle","containerStyleByPriority","forwardRef","containerStyle","forwardRef","containerStyle","forwardRef","forwardRef","useMemo","useMemo"],"sources":["https:/asset.29cm.co.kr/contents/framer/components/modules/HeadlineModule/HeadlineModule.types.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Headline/Root.js","https:/asset.29cm.co.kr/contents/framer/utils/mediaBuilder.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Headline/Root.constants.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Headline/Image.js","https:/asset.29cm.co.kr/contents/framer/hooks/useVideoVisibility.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Headline/Video.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Headline/Root.hooks.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Headline/Content.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Headline/Title.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Headline/Description.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Headline/Action.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Headline/Gradient.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Headline/Body.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Headline/index.js","https:/asset.29cm.co.kr/contents/framer/components/modules/HeadlineModule/HeadlineMediaElement/HeadlineMediaElement.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/TextButton/TextButton.js","https:/asset.29cm.co.kr/contents/framer/hooks/useCreateAppSchemeLink.js","https:/asset.29cm.co.kr/contents/framer/utils/getAnchorTarget.js","https:/asset.29cm.co.kr/contents/framer/hooks/useNavigatePage.js","https:/asset.29cm.co.kr/contents/framer/components/modules/HeadlineModule/HeadlineActionElement/HeadlineLinkActionElement.utils.js","https:/asset.29cm.co.kr/contents/framer/components/modules/HeadlineModule/HeadlineActionElement/HeadlineLinkActionElement.js","https:/asset.29cm.co.kr/contents/framer/components/modules/HeadlineModule/HeadlineActionElement/HeadlineCountdownActionElement.js","https:/asset.29cm.co.kr/contents/framer/components/modules/HeadlineModule/HeadlineActionElement/HeadlineActionElement.js","https:/asset.29cm.co.kr/contents/framer/components/modules/HeadlineModule/HeadlineElement/HeadlineElement.js","https:/asset.29cm.co.kr/contents/framer/components/modules/HeadlineModule/HeadlineModule.utils.js","https:/asset.29cm.co.kr/contents/framer/components/modules/HeadlineModule/LinkedHeadlineModule/LinkedHeadlineModule.utils.js","https:/asset.29cm.co.kr/contents/framer/components/modules/HeadlineModule/LinkedHeadlineModule/LinkedHeadlineModule.js","https:/asset.29cm.co.kr/contents/framer/components/modules/ProfilesModule/ProfilesModule.types.js","https:/asset.29cm.co.kr/contents/framer/components/modules/HeadlineModule/HeadlineModule.controls.js","https:/asset.29cm.co.kr/contents/framer/components/modules/HeadlineModule/HeadlineModule.hooks.js","https:/asset.29cm.co.kr/contents/framer/components/modules/HeadlineModule/AutoHeadlineModule/AutoHeadlineModule.js","https:/asset.29cm.co.kr/contents/framer/components/modules/HeadlineModule/HeadlineModule.js","https:/framerusercontent.com/modules/PueLRXpmraBi4DPH0bQS/EXPZgr67fHEDGc5sLEZJ/HeadlineModule.js"],"sourcesContent":["var HeadlineActionType = /* @__PURE__ */ ((HeadlineActionType2) => {\n  HeadlineActionType2[HeadlineActionType2[\"External\"] = 0] = \"External\";\n  HeadlineActionType2[HeadlineActionType2[\"Link\"] = 1] = \"Link\";\n  HeadlineActionType2[HeadlineActionType2[\"Countdown\"] = 2] = \"Countdown\";\n  return HeadlineActionType2;\n})(HeadlineActionType || {});\nvar HeadlinePresetType = /* @__PURE__ */ ((HeadlinePresetType2) => {\n  HeadlinePresetType2[HeadlinePresetType2[\"Default\"] = 0] = \"Default\";\n  HeadlinePresetType2[HeadlinePresetType2[\"Schedule\"] = 1] = \"Schedule\";\n  HeadlinePresetType2[HeadlinePresetType2[\"Link\"] = 2] = \"Link\";\n  return HeadlinePresetType2;\n})(HeadlinePresetType || {});\nvar HeadlineModuleInputType = /* @__PURE__ */ ((HeadlineModuleInputType2) => {\n  HeadlineModuleInputType2[HeadlineModuleInputType2[\"Linked\"] = 0] = \"Linked\";\n  HeadlineModuleInputType2[HeadlineModuleInputType2[\"Manual\"] = 1] = \"Manual\";\n  HeadlineModuleInputType2[HeadlineModuleInputType2[\"Auto\"] = 2] = \"Auto\";\n  return HeadlineModuleInputType2;\n})(HeadlineModuleInputType || {});\nexport {\n  HeadlineActionType,\n  HeadlineModuleInputType,\n  HeadlinePresetType\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { createContext, forwardRef } from \"react\";\nconst HeadlineContext = createContext(null);\nconst Root = forwardRef(({\n  children,\n  style,\n  priority = \"primary\",\n  loading = false,\n  ...rest\n}, ref) => {\n  return /* @__PURE__ */ jsx(HeadlineContext.Provider, { value: {\n    priority,\n    loading\n  }, children: /* @__PURE__ */ jsx(\"div\", { ref, ...rest, style: {\n    ...containerStyle,\n    ...style\n  }, children }) });\n});\nconst containerStyle = {\n  position: \"relative\",\n  width: \"100%\"\n};\nexport {\n  HeadlineContext,\n  Root\n};\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n  __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n  return value;\n};\nclass MediaBuilder {\n  constructor(src) {\n    __publicField(this, \"src\");\n    this.src = new URL(src);\n  }\n  set(name, value) {\n    this.src.searchParams.set(name, value);\n  }\n  setWidth(width) {\n    this.set(\"width\", `${width}`);\n    return this;\n  }\n  getSrc() {\n    const url = new URL(this.src);\n    url.searchParams.set(\"format\", \"webp\");\n    return url.href;\n  }\n  getSrcSet() {\n    const unique = Array.from(new Set(DEFAULT_SRC_SET_WIDTHS));\n    const array = unique.map((width) => {\n      const url = new URL(this.src);\n      url.searchParams.set(\"width\", `${width}`);\n      url.searchParams.set(\"format\", \"webp\");\n      return `${url.href} ${width}w`;\n    });\n    return array.join(\",\");\n  }\n}\nconst DEFAULT_SRC_SET_WIDTHS = [375, 408, 564, 720, 828, 1080, 1440, 1920, 2048, 3840];\nconst mediaBuilder = (src) => new MediaBuilder(src);\nexport {\n  DEFAULT_SRC_SET_WIDTHS,\n  mediaBuilder\n};\n","const HEADLINE_MEDIA_MAX_WIDTH = 1080;\nexport {\n  HEADLINE_MEDIA_MAX_WIDTH\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { mediaBuilder } from \"../../../../utils/mediaBuilder.js\";\nimport { HEADLINE_MEDIA_MAX_WIDTH } from \"./Root.constants.js\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../apis/highlight-products/HighlightProductsApiService.js\";\nimport \"../../../../apis/one-brand-days/OneBrandDaysApiService.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../apis/user/UserApiService.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport \"../../../@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport { useBreakpoint } from \"../../../../hooks/useBreakpoint.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nconst Image = forwardRef(({\n  source,\n  lazy = true\n}, ref) => {\n  const breakpoint = useBreakpoint();\n  if (!source) {\n    return null;\n  }\n  const result = mediaBuilder(source);\n  return /* @__PURE__ */ jsx(\"img\", { ref, style: {\n    ...containerStyle,\n    ...containerStyleByBreakpoint[breakpoint]\n  }, loading: lazy ? \"lazy\" : \"eager\", sizes: \"100vw\", srcSet: result.getSrcSet(), src: result.getSrc(), alt: \"\", \"data-headline-media\": \"true\" });\n});\nconst containerStyle = {\n  width: \"100%\",\n  maxWidth: HEADLINE_MEDIA_MAX_WIDTH,\n  objectFit: \"cover\"\n};\nconst containerStyleByBreakpoint = {\n  desktop: {\n    aspectRatio: \"3 / 1\"\n  },\n  tablet: {\n    aspectRatio: \"16 / 9\"\n  },\n  mobile: {\n    aspectRatio: \"16 / 9\"\n  }\n};\nexport {\n  Image\n};\n","import { useInView } from \"framer-motion\";\nimport { useRef, useState, useCallback, useEffect } from \"react\";\nimport { usePageVisibility } from \"./usePageVisibility.js\";\nimport { useReceiveMessage } from \"./useReceiveMessage.js\";\nconst useVideoVisibility = () => {\n  const videoRef = useRef(null);\n  const isInView = useInView(videoRef);\n  const isPageVisible = usePageVisibility();\n  const [isWindowFocused, setIsWindowFocused] = useState(true);\n  const [shouldLoadSources, setShouldLoadSources] = useState(false);\n  const handleWindowFocusMessage = useCallback((payload) => {\n    setIsWindowFocused(payload.value.toString() === \"true\");\n  }, []);\n  useReceiveMessage(\"isWindowFocused\", handleWindowFocusMessage);\n  useEffect(() => {\n    if (isInView && !shouldLoadSources) {\n      setShouldLoadSources(true);\n    }\n  }, [isInView, shouldLoadSources]);\n  useEffect(() => {\n    var _a;\n    if (!videoRef.current) {\n      return;\n    }\n    if (document.visibilityState === \"hidden\") {\n      videoRef.current.pause();\n      return;\n    }\n    if (!isWindowFocused) {\n      videoRef.current.pause();\n      return;\n    }\n    if (isInView) {\n      (_a = videoRef.current) == null ? void 0 : _a.play().catch(() => {\n      });\n    } else {\n      videoRef.current.pause();\n    }\n  }, [isInView, isPageVisible, isWindowFocused]);\n  return {\n    videoRef,\n    isInView,\n    shouldLoadSources\n  };\n};\nexport {\n  useVideoVisibility\n};\n","import { jsxs, jsx } from \"react/jsx-runtime\";\nimport { forwardRef, useMemo, useRef } from \"react\";\nimport { useInView } from \"framer-motion\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../apis/highlight-products/HighlightProductsApiService.js\";\nimport \"../../../../apis/one-brand-days/OneBrandDaysApiService.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../apis/user/UserApiService.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport \"../../../@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport { useBreakpoint } from \"../../../../hooks/useBreakpoint.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../Dialog/Dialog.module.css.js\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport { useVideoVisibility } from \"../../../../hooks/useVideoVisibility.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { mergeRefs } from \"../../../../utils/react/mergeRefs.js\";\nimport { querify } from \"../../../../utils/querify.js\";\nimport { HEADLINE_MEDIA_MAX_WIDTH } from \"./Root.constants.js\";\nconst VideoInner = forwardRef(({\n  poster,\n  source,\n  sourceWebm\n}, ref) => {\n  const breakpoint = useBreakpoint();\n  const {\n    videoRef\n  } = useVideoVisibility();\n  const query = useMemo(() => querify({\n    width: posterWidthByBreakpoint[breakpoint],\n    q: 90\n  }), [breakpoint]);\n  const media = mediaByBreakpoint[breakpoint];\n  return /* @__PURE__ */ jsxs(\"video\", { ref: mergeRefs([ref, videoRef]), style: {\n    ...containerStyle,\n    ...containerStyleByBreakpoint[breakpoint]\n  }, poster: poster !== void 0 ? `${poster}?${query}` : void 0, playsInline: true, muted: true, loop: true, preload: \"metadata\", \"data-headline-media\": \"true\", children: [\n    sourceWebm ? /* @__PURE__ */ jsx(\"source\", { type: \"video/webm\", src: sourceWebm, media }) : null,\n    /* @__PURE__ */ jsx(\"source\", { type: \"video/mp4\", src: source, media })\n  ] });\n});\nconst Video = forwardRef(({\n  poster,\n  source,\n  sourceWebm,\n  lazy = true\n}, ref) => {\n  const breakpoint = useBreakpoint();\n  const fallbackRef = useRef(null);\n  const isInView = useInView(fallbackRef, {\n    margin: \"400px 0px\",\n    once: true\n  });\n  if (!source) {\n    return null;\n  }\n  if (lazy && !isInView) {\n    return /* @__PURE__ */ jsx(\"div\", { ref: fallbackRef, style: {\n      ...containerStyle,\n      ...containerStyleByBreakpoint[breakpoint]\n    }, \"data-headline-media\": \"true\" });\n  }\n  return /* @__PURE__ */ jsx(VideoInner, { ref, poster, source, sourceWebm });\n});\nconst containerStyle = {\n  width: \"100%\",\n  maxWidth: HEADLINE_MEDIA_MAX_WIDTH,\n  objectFit: \"cover\"\n};\nconst containerStyleByBreakpoint = {\n  desktop: {\n    aspectRatio: \"3 / 1\"\n  },\n  tablet: {\n    aspectRatio: \"16 / 9\"\n  },\n  mobile: {\n    aspectRatio: \"16 / 9\"\n  }\n};\nconst posterWidthByBreakpoint = {\n  desktop: void 0,\n  tablet: 1440,\n  mobile: 1024\n};\nconst mediaByBreakpoint = {\n  desktop: \"(min-width: 1025px)\",\n  tablet: \"(min-width: 541px)\",\n  mobile: void 0\n};\nexport {\n  Video\n};\n","import { useContext } from \"react\";\nimport { HeadlineContext } from \"./Root.js\";\nconst useHeadlineContext = () => {\n  const context = useContext(HeadlineContext);\n  if (!context) {\n    throw new Error(\"useHeadlineContext should be used within Root\");\n  }\n  return context;\n};\nexport {\n  useHeadlineContext\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../apis/highlight-products/HighlightProductsApiService.js\";\nimport \"../../../../apis/one-brand-days/OneBrandDaysApiService.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../apis/user/UserApiService.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport \"../../../@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport { useBreakpoint } from \"../../../../hooks/useBreakpoint.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { useHeadlineContext } from \"./Root.hooks.js\";\nimport { ComponentName } from \"../../../../styles/ComponentName.js\";\nimport { createWithStyle } from \"../../../../styles/createWithStyle.js\";\nimport { css } from \"../../../../styles/css.js\";\nconst {\n  classNames,\n  withStyle\n} = createWithStyle(ComponentName.HeadlineContent, {\n  container: css`\n    position: relative;\n\n    /* NOTE(임규민): data-headline-media 속성을 가진 요소가 형제로 존재하는 경우에만 스타일 적용 */\n    &:where([data-headline-media='true'], [data-headline-media='true'] + *) {\n      position: absolute;\n      inset: auto 0 0;\n    }\n\n    &:where([data-headline-media='true'], [data-headline-media='true'] + *) > * {\n      padding-top: 40px !important;\n    }\n\n    &:where([data-headline-media='true'], [data-headline-media='true'] + *) > *[data-breakpoint='desktop'] {\n      padding-right: 32px !important;\n    }\n  `\n});\nconst Content = withStyle(forwardRef(({\n  children,\n  style,\n  contentStyle: _contentStyle,\n  emptyTitle,\n  ...rest\n}, ref) => {\n  const breakpoint = useBreakpoint();\n  const {\n    priority\n  } = useHeadlineContext();\n  return /* @__PURE__ */ jsx(\"div\", { ref, ...rest, className: classNames.container, children: /* @__PURE__ */ jsx(\"div\", { style: {\n    ...wrapperStyle,\n    ...wrapperStyleByBreakpoint[breakpoint],\n    ...style\n  }, \"data-breakpoint\": breakpoint, children: /* @__PURE__ */ jsx(\"div\", { style: {\n    ...contentStyle,\n    ...contentStyleByPriority[priority][breakpoint],\n    ...priority === \"primary\" && emptyTitle === true ? {\n      gap: 0\n    } : {},\n    ..._contentStyle\n  }, children }) }) });\n}));\nconst wrapperStyle = {\n  position: \"relative\"\n};\nconst wrapperStyleByBreakpoint = {\n  desktop: {\n    paddingRight: 0,\n    paddingLeft: 0,\n    paddingBottom: 16\n  },\n  tablet: {\n    paddingRight: 16,\n    paddingLeft: 16,\n    paddingBottom: 12\n  },\n  mobile: {\n    paddingRight: 16,\n    paddingLeft: 16,\n    paddingBottom: 12\n  }\n};\nconst contentStyle = {\n  display: \"flex\"\n};\nconst contentStyleByPriority = {\n  primary: {\n    desktop: {\n      flexDirection: \"column\",\n      gap: 4\n    },\n    tablet: {\n      flexDirection: \"column\",\n      gap: 3\n    },\n    mobile: {\n      flexDirection: \"column\",\n      gap: 3\n    }\n  },\n  secondary: {\n    desktop: {\n      minHeight: 40,\n      flexDirection: \"row\",\n      alignItems: \"center\",\n      gap: 16\n    },\n    tablet: {\n      minHeight: 40,\n      flexDirection: \"row\",\n      alignItems: \"center\",\n      gap: 16\n    },\n    mobile: {\n      minHeight: 40,\n      flexDirection: \"row\",\n      alignItems: \"center\",\n      gap: 16\n    }\n  },\n  tertiary: {\n    desktop: {\n      flexDirection: \"row\",\n      alignItems: \"center\",\n      gap: 16\n    },\n    tablet: {\n      flexDirection: \"row\",\n      alignItems: \"center\",\n      gap: 16\n    },\n    mobile: {\n      flexDirection: \"row\",\n      alignItems: \"center\",\n      gap: 16\n    }\n  }\n};\nexport {\n  Content\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport \"framer\";\nimport { typography } from \"../../../../styles/typography.js\";\nimport { useHeadlineContext } from \"./Root.hooks.js\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../apis/highlight-products/HighlightProductsApiService.js\";\nimport \"../../../../apis/one-brand-days/OneBrandDaysApiService.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../apis/user/UserApiService.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport { useTheme } from \"../../../../hooks/useTheme.js\";\nimport { useBreakpoint } from \"../../../../hooks/useBreakpoint.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { Skeleton } from \"../../../@shared/Skeleton/Skeleton.js\";\nconst Title = forwardRef(({\n  children,\n  style,\n  ...rest\n}, ref) => {\n  const {\n    priority,\n    loading\n  } = useHeadlineContext();\n  const breakpoint = useBreakpoint();\n  const theme = useTheme();\n  if (loading) {\n    return /* @__PURE__ */ jsx(Skeleton, { style: {\n      ...skeletonStyle,\n      ...skeletonStyleByPriority[priority][breakpoint],\n      ...skeletonStyleByTheme[theme]\n    } });\n  }\n  return /* @__PURE__ */ jsx(\"div\", { ref, ...rest, style: {\n    ...containerStyle,\n    ...textStyle[priority][breakpoint],\n    ...textColor[theme],\n    ...style\n  }, children });\n});\nconst containerStyle = {\n  zIndex: 1,\n  width: \"100%\",\n  whiteSpace: \"pre-wrap\",\n  color: \"#ffffff\"\n};\nconst skeletonStyle = {\n  width: \"40%\",\n  borderRadius: 6\n};\nconst skeletonStyleByPriority = {\n  primary: {\n    desktop: {\n      height: 40.8\n    },\n    tablet: {\n      height: 27.2\n    },\n    mobile: {\n      height: 27.2\n    }\n  },\n  secondary: {\n    desktop: {\n      height: 22.4\n    },\n    tablet: {\n      height: 19.6\n    },\n    mobile: {\n      height: 19.6\n    }\n  },\n  tertiary: {\n    desktop: {\n      height: 19.6\n    },\n    tablet: {\n      height: 19.6\n    },\n    mobile: {\n      height: 19.6\n    }\n  }\n};\nconst skeletonStyleByTheme = {\n  light: {\n    backgroundColor: \"#dee2e6\"\n  },\n  dark: {\n    backgroundColor: \"#27272a\"\n  }\n};\nconst textColor = {\n  light: {\n    color: \"#000000\"\n  },\n  dark: {\n    color: \"#ffffff\"\n  }\n};\nconst textStyle = {\n  primary: {\n    desktop: typography(30, 600, 1.36),\n    tablet: typography(20, 600, 1.36),\n    mobile: typography(20, 600, 1.36)\n  },\n  secondary: {\n    desktop: typography(16, 500),\n    tablet: typography(14, 500),\n    mobile: typography(14, 500)\n  },\n  tertiary: {\n    desktop: typography(14, 500),\n    tablet: typography(14, 500),\n    mobile: typography(14, 500)\n  }\n};\nexport {\n  Title\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../apis/highlight-products/HighlightProductsApiService.js\";\nimport \"../../../../apis/one-brand-days/OneBrandDaysApiService.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../apis/user/UserApiService.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport { useTheme } from \"../../../../hooks/useTheme.js\";\nimport { useBreakpoint } from \"../../../../hooks/useBreakpoint.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { typography } from \"../../../../styles/typography.js\";\nimport { useHeadlineContext } from \"./Root.hooks.js\";\nimport { Skeleton } from \"../../../@shared/Skeleton/Skeleton.js\";\nconst Description = forwardRef(({\n  children,\n  style,\n  ...rest\n}, ref) => {\n  const {\n    priority,\n    loading\n  } = useHeadlineContext();\n  const breakpoint = useBreakpoint();\n  const theme = useTheme();\n  if (!children) {\n    return null;\n  }\n  if (loading) {\n    return /* @__PURE__ */ jsx(Skeleton, { style: {\n      ...skeletonStyle,\n      ...skeletonStyleByPriority[priority][breakpoint],\n      ...skeletonStyleByTheme[theme]\n    } });\n  }\n  return /* @__PURE__ */ jsx(\"div\", { ref, ...rest, style: {\n    ...containerStyle,\n    ...containerStyleByPriority[priority][breakpoint],\n    ...textColor[theme],\n    ...style\n  }, children });\n});\nconst containerStyle = {\n  zIndex: 1,\n  width: \"100%\",\n  whiteSpace: \"pre-wrap\"\n};\nconst skeletonStyle = {\n  width: \"36%\",\n  borderRadius: 6\n};\nconst skeletonStyleByPriority = {\n  primary: {\n    desktop: {\n      height: 22.4\n    },\n    tablet: {\n      height: 19.6\n    },\n    mobile: {\n      height: 19.6\n    }\n  },\n  secondary: {\n    desktop: {\n      height: 16.8\n    },\n    tablet: {\n      height: 16.8\n    },\n    mobile: {\n      height: 16.8\n    }\n  },\n  tertiary: {\n    desktop: {\n      height: 16.8\n    },\n    tablet: {\n      height: 16.8\n    },\n    mobile: {\n      height: 16.8\n    }\n  }\n};\nconst skeletonStyleByTheme = {\n  light: {\n    backgroundColor: \"#dee2e6\"\n  },\n  dark: {\n    backgroundColor: \"#27272a\"\n  }\n};\nconst containerStyleByPriority = {\n  primary: {\n    desktop: typography(16, 400),\n    tablet: typography(14, 400),\n    mobile: typography(14, 400)\n  },\n  secondary: {\n    desktop: typography(12, 400),\n    tablet: typography(12, 400),\n    mobile: typography(12, 400)\n  },\n  // NOTE:(김홍동) tertiary에서 Description 사용케이스가 아직 없어 secondary와 동일하게 가져갑니다.\n  tertiary: {\n    desktop: typography(12, 400),\n    tablet: typography(12, 400),\n    mobile: typography(12, 400)\n  }\n};\nconst textColor = {\n  light: {\n    color: \"#474747\"\n  },\n  dark: {\n    color: \"#a0a0a0\"\n  }\n};\nexport {\n  Description\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nconst Action = forwardRef(({\n  children,\n  style,\n  ...rest\n}, ref) => {\n  if (!children) {\n    return null;\n  }\n  return /* @__PURE__ */ jsx(\"div\", { ref, ...rest, style: {\n    ...containerStyle,\n    ...style\n  }, children });\n});\nconst containerStyle = {\n  zIndex: 1,\n  minWidth: \"fit-content\",\n  display: \"flex\",\n  alignItems: \"center\"\n};\nexport {\n  Action\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../apis/highlight-products/HighlightProductsApiService.js\";\nimport \"../../../../apis/one-brand-days/OneBrandDaysApiService.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../apis/user/UserApiService.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport { useTheme } from \"../../../../hooks/useTheme.js\";\nimport \"../../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nconst Gradient = forwardRef(({\n  style,\n  ...rest\n}, ref) => {\n  const theme = useTheme();\n  return /* @__PURE__ */ jsx(\"div\", { ref, ...rest, style: {\n    ...containerStyle,\n    ...containerStyleByTheme[theme],\n    ...style\n  } });\n});\nconst containerStyle = {\n  position: \"absolute\",\n  inset: 0,\n  zIndex: 0,\n  width: \"100%\"\n};\nconst containerStyleByTheme = {\n  light: {\n    background: \"linear-gradient(180deg, rgba(255, 255, 255, 0.00) 0%, rgba(255, 255, 255, 0.60) 46%, #fff 90%)\"\n  },\n  dark: {\n    background: \"linear-gradient(180deg, rgba(0, 0, 0, 0.00) 0%, rgba(0, 0, 0, 0.60) 46%, #000 90%)\"\n  }\n};\nexport {\n  Gradient\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { useHeadlineContext } from \"./Root.hooks.js\";\nconst Body = forwardRef(({\n  children,\n  style,\n  ...rest\n}, ref) => {\n  const {\n    priority\n  } = useHeadlineContext();\n  return /* @__PURE__ */ jsx(\"div\", { ref, ...rest, style: {\n    ...containerStyle,\n    ...containerStyleByPriority[priority],\n    ...style\n  }, children });\n});\nconst containerStyle = {\n  width: \"100%\",\n  display: \"flex\"\n};\nconst containerStyleByPriority = {\n  primary: {\n    flexDirection: \"row\",\n    gap: 16\n  },\n  secondary: {\n    flexDirection: \"column\"\n  },\n  tertiary: {\n    flexDirection: \"column\"\n  }\n};\nexport {\n  Body\n};\n","import { Root } from \"./Root.js\";\nimport { Image } from \"./Image.js\";\nimport { Video } from \"./Video.js\";\nimport { Content } from \"./Content.js\";\nimport { Title } from \"./Title.js\";\nimport { Description } from \"./Description.js\";\nimport { Action } from \"./Action.js\";\nimport { Gradient } from \"./Gradient.js\";\nimport { Body } from \"./Body.js\";\nconst Headline = {\n  Root,\n  Image,\n  Video,\n  Content,\n  Body,\n  Title,\n  Description,\n  Action,\n  Gradient\n};\nexport {\n  Headline\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { Headline } from \"../../../systems/curations/Headline/index.js\";\nconst HeadlineMediaElement = ({\n  mediaType,\n  imageSrc,\n  videoSrc,\n  videoSrcWebm,\n  poster,\n  lazy\n}) => {\n  switch (mediaType) {\n    case \"image\":\n      return /* @__PURE__ */ jsx(Headline.Image, { source: imageSrc, lazy });\n    case \"video\":\n      return /* @__PURE__ */ jsx(Headline.Video, { source: videoSrc, sourceWebm: videoSrcWebm, poster, lazy });\n    default:\n      return null;\n  }\n};\nexport {\n  HeadlineMediaElement\n};\n","import { jsxs, jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { Icon } from \"../Icon/Icon.js\";\nimport { typography } from \"../../../styles/typography.js\";\nconst TextButton = ({\n  children,\n  style,\n  as,\n  theme = \"light\",\n  size = \"medium\",\n  prefixIcon,\n  postfixIcon,\n  variant,\n  backgroundColor,\n  color,\n  isUnderlined = false,\n  ...rest\n}, ref) => {\n  const Component = as ?? \"button\";\n  const variantStyle = textButtonStyleByVariant[rest.disabled ? \"disabled\" : variant];\n  const textButtonStyle = {\n    ...style,\n    ...baseTextButtonStyle,\n    ...textButtonStyleBySize[size],\n    ...variantStyle[theme],\n    ...isUnderlined && {\n      textDecoration: \"underline\"\n    }\n  };\n  const reshapedProps = {\n    ...rest,\n    href: rest.disabled ? void 0 : rest.href,\n    onClick: rest.disabled ? void 0 : rest.onClick\n  };\n  return /* @__PURE__ */ jsxs(Component, { ref, ...reshapedProps, style: textButtonStyle, children: [\n    prefixIcon ? /* @__PURE__ */ jsx(Icon, { type: getIconType(prefixIcon), fill: getIconFill(prefixIcon), size: iconSizeByButtonSize[size], color: textButtonStyle.color, weight: \"bold\" }) : null,\n    /* @__PURE__ */ jsx(\"div\", { style: contentStyle, children }),\n    postfixIcon ? /* @__PURE__ */ jsx(Icon, { type: getIconType(postfixIcon), fill: getIconFill(postfixIcon), size: iconSizeByButtonSize[size], color: textButtonStyle.color, weight: \"bold\" }) : null\n  ] });\n};\nconst getIconType = (icon) => typeof icon === \"string\" ? icon : icon.type;\nconst getIconFill = (icon) => typeof icon === \"string\" ? void 0 : icon.fill;\nconst baseTextButtonStyle = {\n  minWidth: \"fit-content\",\n  height: \"auto\",\n  display: \"flex\",\n  alignItems: \"center\",\n  justifyContent: \"center\",\n  cursor: \"pointer\",\n  // reset button element css\n  backgroundColor: \"transparent\",\n  textDecoration: \"none\",\n  padding: 0,\n  outline: \"none\",\n  border: \"none\",\n  boxSizing: \"border-box\"\n};\nconst textButtonStyleBySize = {\n  large: {\n    gap: \"4px\",\n    ...typography(18, 600, 1.2)\n  },\n  medium: {\n    gap: \"4px\",\n    ...typography(16, 600, 1.2)\n  },\n  small: {\n    gap: \"2px\",\n    ...typography(14, 600, 1.2)\n  },\n  xSmall: {\n    gap: \"2px\",\n    ...typography(12, 700, 1.36)\n  }\n};\nconst textButtonStyleByVariant = {\n  primary: {\n    light: {\n      color: \"#000\"\n    },\n    dark: {\n      color: \"#fff\"\n    }\n  },\n  secondary: {\n    light: {\n      color: \"#474747\"\n    },\n    dark: {\n      color: \"#a0a0a0\"\n    }\n  },\n  tertiary: {\n    light: {\n      color: \"#a0a0a0\"\n    },\n    dark: {\n      color: \"#474747\"\n    }\n  },\n  disabled: {\n    light: {\n      color: \"#c4c4c4\",\n      cursor: \"not-allowed\"\n    },\n    dark: {\n      color: \"#303033\",\n      cursor: \"not-allowed\"\n    }\n  }\n};\nconst iconSizeByButtonSize = {\n  large: 20,\n  medium: 18,\n  small: 16,\n  xSmall: 12\n};\nconst contentStyle = {\n  display: \"flex\",\n  alignItems: \"center\"\n};\nconst Default = forwardRef(TextButton);\nexport {\n  Default as TextButton\n};\n","const CONTENT_DOMAIN_HOSTNAME = \"https://content.29cm.co.kr\";\nconst useCreateAppSchemeLink = () => {\n  const createAppSchemeLink = (href, options = {}) => {\n    const fullPath = href.includes(\"https://\") ? href : `${CONTENT_DOMAIN_HOSTNAME}${href}`;\n    const params = [];\n    if (options.home !== void 0) {\n      params.push(`29cm_nav_home=${getOnOffValue(options.home)}`);\n    }\n    if (options.cart !== void 0) {\n      params.push(`29cm_nav_cart=${getOnOffValue(options.cart)}`);\n    }\n    if (options.search !== void 0) {\n      params.push(`29cm_nav_search=${getOnOffValue(options.search)}`);\n    }\n    if (options.title !== void 0) {\n      params.push(`29cm_title=${encodeURIComponent(options.title)}`);\n    }\n    const hasExistingParams = fullPath.includes(\"?\");\n    const queryDelimiter = hasExistingParams ? \"&\" : \"?\";\n    const queryString = params.length ? `${queryDelimiter}${params.join(\"&\")}` : \"\";\n    return `app29cm://web/${encodeURIComponent(`${fullPath}${queryString}`)}`;\n  };\n  return {\n    createAppSchemeLink\n  };\n};\nconst getOnOffValue = (value) => value ? \"on\" : \"off\";\nexport {\n  useCreateAppSchemeLink\n};\n","import { isServer } from \"./context.js\";\nconst getAnchorTarget = (url) => {\n  if (isServer()) {\n    return \"_self\";\n  }\n  return normalizeURL(url) === normalizeURL(window.location.href) ? \"_self\" : \"_blank\";\n};\nconst normalizeURL = (url) => {\n  const hasOrigin = !url.startsWith(\"/\");\n  try {\n    const {\n      origin,\n      pathname\n    } = new URL(hasOrigin ? url : `${window.location.origin}${url}`);\n    return `${origin}${pathname}`;\n  } catch (error) {\n    return \"\";\n  }\n};\nexport {\n  getAnchorTarget\n};\n","import { isWebview } from \"../utils/device.js\";\nimport { useCreateAppSchemeLink } from \"./useCreateAppSchemeLink.js\";\nimport { getAnchorTarget } from \"../utils/getAnchorTarget.js\";\nconst useNavigatePage = (url, options = {}) => {\n  const {\n    createAppSchemeLink\n  } = useCreateAppSchemeLink();\n  return () => {\n    if (isWebview()) {\n      document.location.href = createAppSchemeLink(url, options.webview);\n    } else {\n      window.open(url, getAnchorTarget(url));\n    }\n  };\n};\nexport {\n  useNavigatePage\n};\n","import { QueryType } from \"../../types.js\";\nimport { env } from \"../../../../config/index.js\";\nimport { querify } from \"../../../../utils/querify.js\";\nconst getCouponCollectionHref = (query, componentId) => {\n  return `${env.workspace.shop}/coupon-collection/${query.couponCollectionId}/products?${querify({\n    source: componentId ?? \"CouponCollection\"\n  })}`;\n};\nconst getKeywordCollectionHref = (query, componentId) => {\n  var _a;\n  return `${env.workspace.content}/collection/${query.keywordCollectionId}?${querify({\n    source: componentId,\n    product_group: (_a = query.selectedProductGroup) == null ? void 0 : _a.id\n  })}`;\n};\nconst getHref = (query, componentId) => {\n  switch (query.type) {\n    case QueryType.CouponCollection:\n      return getCouponCollectionHref(query, componentId);\n    case QueryType.KeywordCollection:\n      return getKeywordCollectionHref(query, componentId);\n    default:\n      return \"\";\n  }\n};\nexport {\n  getCouponCollectionHref,\n  getHref,\n  getKeywordCollectionHref\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { TextButton as Default } from \"../../../@shared/TextButton/TextButton.js\";\nimport \"react\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../apis/highlight-products/HighlightProductsApiService.js\";\nimport \"../../../../apis/one-brand-days/OneBrandDaysApiService.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../apis/user/UserApiService.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport { useTheme } from \"../../../../hooks/useTheme.js\";\nimport \"../../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../../systems/Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { useNavigatePage } from \"../../../../hooks/useNavigatePage.js\";\nimport { getHref } from \"./HeadlineLinkActionElement.utils.js\";\nimport { useRootComponentId, useTrackClickButtonEvent } from \"../../hooks.js\";\nconst HeadlineLinkActionElement = ({\n  action,\n  query\n}) => {\n  const theme = useTheme();\n  const componentId = useRootComponentId(query);\n  const trackClickButtonEvent = useTrackClickButtonEvent(query);\n  const navigate = useNavigatePage(getHref(action.query, componentId));\n  const handleClick = () => {\n    trackClickButtonEvent({\n      type: \"more\",\n      name: action.label\n    });\n    navigate();\n  };\n  return /* @__PURE__ */ jsx(Default, { onClick: handleClick, style: {\n    opacity: 0.6\n  }, theme, variant: \"primary\", size: \"xSmall\", postfixIcon: \"chevronRight\", children: action.label });\n};\nexport {\n  HeadlineLinkActionElement\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { Countdown } from \"../../../systems/Countdown/Countdown.js\";\nimport { formatDate as format } from \"../../../../node_modules/date-fns/format.js\";\nimport \"react\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../apis/highlight-products/HighlightProductsApiService.js\";\nimport \"../../../../apis/one-brand-days/OneBrandDaysApiService.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../apis/user/UserApiService.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport { useTheme } from \"../../../../hooks/useTheme.js\";\nimport \"../../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../../systems/Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { typography } from \"../../../../styles/typography.js\";\nconst HeadlineCountdownActionElement = ({\n  action\n}) => {\n  const {\n    endAt\n  } = action;\n  const theme = useTheme();\n  return /* @__PURE__ */ jsx(Countdown, { targetDateString: format(endAt, \"yyyy-MM-dd\"), targetTimeString: format(endAt, \"HH:mm:ss\"), dateDisplayFormat: \"D일\", timeDisplayFormat: \"H시간 m분 s초\", fontSize: 15, color: countdownColorByTheme[theme], style: {\n    ...typography(15, 500)\n  } });\n};\nconst countdownColorByTheme = {\n  light: \"#FF4800\",\n  dark: \"#D53E00\"\n};\nexport {\n  HeadlineCountdownActionElement\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { HeadlineActionType } from \"../HeadlineModule.types.js\";\nimport { HeadlineLinkActionElement } from \"./HeadlineLinkActionElement.js\";\nimport { HeadlineCountdownActionElement } from \"./HeadlineCountdownActionElement.js\";\nconst HeadlineActionElement = ({\n  actionElement,\n  action,\n  query\n}) => {\n  switch (action.type) {\n    case HeadlineActionType.External:\n      return actionElement;\n    case HeadlineActionType.Link:\n      return /* @__PURE__ */ jsx(HeadlineLinkActionElement, { action, query });\n    case HeadlineActionType.Countdown:\n      return /* @__PURE__ */ jsx(HeadlineCountdownActionElement, { action });\n  }\n};\nexport {\n  HeadlineActionElement\n};\n","import { jsxs, jsx } from \"react/jsx-runtime\";\nimport { useMemo, useEffect } from \"react\";\nimport { HeadlineMediaElement } from \"../HeadlineMediaElement/HeadlineMediaElement.js\";\nimport { Headline } from \"../../../systems/curations/Headline/index.js\";\nimport { HeadlineActionElement } from \"../HeadlineActionElement/HeadlineActionElement.js\";\nimport { useQueryStore } from \"../../query-store/query.store.js\";\nimport { getPadding } from \"../../../../utils/spacing.js\";\nimport { useSetRootModule } from \"../../hooks.js\";\nimport { useSegment } from \"../../../@shared/providers/SegmentProvider/SegmentProvider.js\";\nconst HeadlineElement = ({\n  loading,\n  input: _input,\n  output,\n  layout,\n  actionElement\n}) => {\n  const dispatchSetQuery = useQueryStore((state) => state.dispatchSetQuery);\n  const input = useMemo(() => attachAdditionalQuery(_input, output), [_input, output]);\n  const {\n    isVisible\n  } = useSegment();\n  const {\n    title,\n    description,\n    action\n  } = input;\n  const {\n    priority,\n    mediaType,\n    ...rest\n  } = layout;\n  const hasMediaType = mediaType !== \"none\";\n  const isPrimary = priority === \"primary\";\n  const canRenderMedia = isPrimary && hasMediaType;\n  useEffect(() => {\n    window == null ? void 0 : window.dispatchEvent(new CustomEvent(\"layout-done\"));\n    if (!input.query) {\n      return;\n    }\n    if (!output) {\n      return;\n    }\n    dispatchSetQuery(output, input.query);\n  }, [output, input]);\n  useSetRootModule(input.query, output);\n  const padding = getPadding(layout);\n  if (!isVisible) {\n    window == null ? void 0 : window.dispatchEvent(new CustomEvent(\"layout-done\"));\n    return null;\n  }\n  return /* @__PURE__ */ jsxs(Headline.Root, { style: {\n    paddingTop: padding.top\n  }, loading, priority, children: [\n    canRenderMedia ? /* @__PURE__ */ jsx(HeadlineMediaElement, { mediaType, ...rest }) : null,\n    /* @__PURE__ */ jsxs(\n      Headline.Content,\n      {\n        style: {\n          paddingRight: padding.right,\n          paddingBottom: padding.bottom,\n          paddingLeft: padding.left\n        },\n        contentStyle: priority === \"secondary\" ? {\n          minHeight: \"unset\"\n        } : {},\n        emptyTitle: title === \"\",\n        children: [\n          /* @__PURE__ */ jsxs(Headline.Body, { children: [\n            /* @__PURE__ */ jsx(Headline.Title, { children: title }),\n            isPrimary ? /* @__PURE__ */ jsx(Headline.Action, { children: action ? /* @__PURE__ */ jsx(HeadlineActionElement, { actionElement, action, query: input.query }) : null }) : /* @__PURE__ */ jsx(Headline.Description, { children: description })\n          ] }),\n          isPrimary ? /* @__PURE__ */ jsx(Headline.Description, { children: description }) : /* @__PURE__ */ jsx(Headline.Action, { children: action ? /* @__PURE__ */ jsx(HeadlineActionElement, { actionElement, action, query: input.query }) : null }),\n          canRenderMedia ? /* @__PURE__ */ jsx(Headline.Gradient, {}) : null\n        ]\n      }\n    )\n  ] });\n};\nconst attachAdditionalQuery = (value, output) => {\n  return {\n    ...value,\n    query: value.query ? {\n      ...value.query,\n      isRoot: value.query.rootOutput === void 0,\n      rootOutput: value.query.rootOutput || output\n    } : void 0\n  };\n};\nexport {\n  HeadlineElement\n};\n","import { HeadlineActionType, HeadlinePresetType } from \"./HeadlineModule.types.js\";\nimport { getScheduleStatus } from \"../../../utils/date.js\";\nimport { parseISO } from \"../../../node_modules/date-fns/parseISO.js\";\nimport { formatDate as format } from \"../../../node_modules/date-fns/format.js\";\nimport { ko } from \"../../../node_modules/date-fns/locale/ko.js\";\nconst getScheduleHeadline = (query, startAt, endAt) => {\n  const start = parseISO(startAt.toString());\n  const end = parseISO(endAt.toString());\n  const status = getScheduleStatus(start, end);\n  return {\n    title: getScheduleHeadlineTitle(status, start),\n    action: getScheduleHeadlineAction(status, start, end),\n    query\n  };\n};\nconst getScheduleHeadlineAction = (status, startAt, endAt) => {\n  switch (status) {\n    case \"ongoing\":\n      return {\n        type: HeadlineActionType.Countdown,\n        startAt,\n        endAt\n      };\n    case \"upcoming\":\n      return {\n        type: HeadlineActionType.External\n      };\n    default:\n      return;\n  }\n};\nconst getScheduleHeadlineTitle = (status, startAt) => {\n  switch (status) {\n    case \"ongoing\":\n      return \"종료까지 남은 시간\";\n    case \"upcoming\":\n      return format(startAt, startAt.getMinutes() > 0 ? \"a h시 m분 오픈\" : \"a h시 오픈\", {\n        locale: ko\n      });\n    case \"end\":\n      return \"종료된 이벤트\";\n    default:\n      return \"\";\n  }\n};\nconst getHeadlinePreset = (layout) => {\n  switch (layout.priority) {\n    case \"primary\":\n      return HeadlinePresetType.Default;\n    default:\n      return layout.preset;\n  }\n};\nexport {\n  getHeadlinePreset,\n  getScheduleHeadline\n};\n","import { QueryType } from \"../../types.js\";\nimport { HeadlinePresetType, HeadlineActionType } from \"../HeadlineModule.types.js\";\nimport { getScheduleHeadline } from \"../HeadlineModule.utils.js\";\nconst getCouponCollectionHeadline = (query, preset) => {\n  const {\n    displayStartAt,\n    displayEndAt,\n    frontBrand,\n    title,\n    description\n  } = query;\n  const hasFrontBrand = frontBrand !== void 0;\n  if (preset === HeadlinePresetType.Link && hasFrontBrand) {\n    return {\n      // TODO(임규민): title format 을 외부에서 입력받을 수 있도록 처리\n      title: `${frontBrand.nameKor} 인기 아이템`,\n      action: {\n        type: HeadlineActionType.Link,\n        // TODO(임규민): label 을 외부에서 입력받을 수 있도록 처리\n        label: \"전체보기\",\n        query\n      },\n      query\n    };\n  }\n  const hasSchedule = displayStartAt && displayEndAt;\n  if (preset === HeadlinePresetType.Schedule && hasSchedule) {\n    return getScheduleHeadline(query, displayStartAt, displayEndAt);\n  }\n  return {\n    title: title ?? \"\",\n    description,\n    action: {\n      type: HeadlineActionType.External\n    },\n    query\n  };\n};\nconst getKeywordCollectionHeadline = (query, preset) => {\n  const {\n    selectedProductGroup,\n    title,\n    description\n  } = query;\n  const {\n    startAt,\n    endAt\n  } = selectedProductGroup ?? {};\n  if (preset === HeadlinePresetType.Link) {\n    return {\n      title: title ?? \"\",\n      action: {\n        type: HeadlineActionType.Link,\n        // TODO(임규민): label 을 외부에서 입력받을 수 있도록 처리\n        label: \"전체보기\",\n        query\n      },\n      query\n    };\n  }\n  const hasSchedule = startAt && endAt;\n  if (preset === HeadlinePresetType.Schedule && hasSchedule) {\n    return getScheduleHeadline(query, startAt, endAt);\n  }\n  return {\n    title: title ?? \"\",\n    description,\n    action: {\n      type: HeadlineActionType.External\n    },\n    query\n  };\n};\nconst getHeadline = (query, preset) => {\n  if (!query) {\n    return {\n      title: \"\",\n      description: \"\"\n    };\n  }\n  switch (query.type) {\n    case QueryType.CouponCollection:\n      return getCouponCollectionHeadline(query, preset);\n    case QueryType.KeywordCollection:\n      return getKeywordCollectionHeadline(query, preset);\n    default:\n      return {\n        title: \"\",\n        description: \"\"\n      };\n  }\n};\nexport {\n  getHeadline\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { useMemo } from \"react\";\nimport { useQueryStore } from \"../../query-store/query.store.js\";\nimport { HeadlineElement } from \"../HeadlineElement/HeadlineElement.js\";\nimport { getHeadline } from \"./LinkedHeadlineModule.utils.js\";\nimport { getHeadlinePreset } from \"../HeadlineModule.utils.js\";\nimport { createKey } from \"../../utils/key.js\";\nconst LinkedHeadlineModule = ({\n  value,\n  input,\n  output,\n  layout,\n  actionElement\n}) => {\n  const query = useQueryStore((state) => state.queries[value]);\n  const headline = useMemo(() => getHeadline(query, getHeadlinePreset(layout)), [query, layout]);\n  return /* @__PURE__ */ jsx(HeadlineElement, { input: {\n    ...headline,\n    title: input.title || headline.title,\n    description: input.description || headline.description\n  }, output, layout, actionElement }, createKey(query));\n};\nexport {\n  LinkedHeadlineModule\n};\n","var ProfilesModuleInputType = /* @__PURE__ */ ((ProfilesModuleInputType2) => {\n  ProfilesModuleInputType2[ProfilesModuleInputType2[\"Linked\"] = 0] = \"Linked\";\n  ProfilesModuleInputType2[ProfilesModuleInputType2[\"Manual\"] = 1] = \"Manual\";\n  ProfilesModuleInputType2[ProfilesModuleInputType2[\"Auto\"] = 2] = \"Auto\";\n  return ProfilesModuleInputType2;\n})(ProfilesModuleInputType || {});\nexport {\n  ProfilesModuleInputType\n};\n","import { combineObjectPropertyControls } from \"../../../libs/property-controls/helpers.js\";\nimport { QUERY_CONTROL, COUPON_COLLECTION_CONTROLS, KEYWORD_COLLECTIONS_CONTROLS, KEYWORD_COLLECTION_CONTROLS } from \"../controls.js\";\nconst AUTO_HEADLINE_MODULE_QUERY = {\n  ...QUERY_CONTROL,\n  controls: combineObjectPropertyControls(KEYWORD_COLLECTION_CONTROLS, KEYWORD_COLLECTIONS_CONTROLS, COUPON_COLLECTION_CONTROLS)\n};\nexport {\n  AUTO_HEADLINE_MODULE_QUERY\n};\n","import useSWR from \"../../../node_modules/swr/core/dist/index.js\";\nimport { QueryType } from \"../types.js\";\nimport { HeadlinePresetType, HeadlineActionType } from \"./HeadlineModule.types.js\";\nimport { brandSaleApi } from \"../../../apis/brand-sale/BrandSaleApiService.js\";\nimport { keywordCollectionApi } from \"../../../apis/keyword-collections/KeywordCollectionApiService.js\";\nimport { getProductGroupType } from \"../../systems/KeywordCollection/KeywordCollectionTags/KeywordCollectionTags.utils.js\";\nimport { reshapeProductGroups } from \"../../systems/curations/KeywordCollectionV2/TimeSaleCollection.utils.js\";\nimport { orderByDateAsc, getCurrentScheduleIndex } from \"../../../utils/date.js\";\nimport { getScheduleHeadline } from \"./HeadlineModule.utils.js\";\nimport { splitToNumberArray } from \"../../../utils/splitToNumberArray.js\";\nimport { collectionApi } from \"../../../apis/collection/CollectionApiService.js\";\nconst HEADLINE_FETCHER_KEY = \"headline-module/headline\";\nconst INITIAL_PRODUCT_GROUP_INDEX = 0;\nconst useHeadlineQuery = (options) => {\n  const {\n    enabled: _enabled = true,\n    query,\n    preset\n  } = options;\n  const enabled = _enabled && query !== void 0;\n  const {\n    data,\n    isLoading,\n    ...rest\n  } = useSWR(enabled ? [HEADLINE_FETCHER_KEY, query, preset] : null, () => queryHeadline(query, preset));\n  const hasHeadline = data !== void 0 && data.title !== \"\";\n  return {\n    isLoading: isLoading || !enabled || !hasHeadline,\n    headline: data ?? {\n      title: \"\"\n    },\n    ...rest\n  };\n};\nconst fetchKeywordCollectionHeadline = async (query, preset) => {\n  if (!query.keywordCollectionId) {\n    return {\n      title: \"\"\n    };\n  }\n  const {\n    data\n  } = await keywordCollectionApi.getKeywordCollection(Number(query.keywordCollectionId));\n  const {\n    title,\n    description,\n    displayEndAt,\n    productGroups\n  } = data;\n  const [firstProductGroup] = productGroups;\n  if (preset === HeadlinePresetType.Link && firstProductGroup) {\n    return {\n      // TODO(임규민): title format 을 외부에서 입력받을 수 있도록 처리\n      title,\n      action: {\n        type: HeadlineActionType.Link,\n        // TODO(임규민): label 을 외부에서 입력받을 수 있도록 처리\n        label: \"전체보기\",\n        query\n      },\n      query: {\n        ...query,\n        displayEndAt: displayEndAt ?? void 0,\n        couponId: data.couponId ?? void 0,\n        productGroups,\n        selectedProductGroup: {\n          id: firstProductGroup.productGroupId,\n          sort: firstProductGroup.sort,\n          index: INITIAL_PRODUCT_GROUP_INDEX\n        }\n      }\n    };\n  }\n  if (preset === HeadlinePresetType.Schedule) {\n    const type = getProductGroupType(productGroups);\n    if (type === \"DATE\") {\n      const groups = orderByDateAsc(reshapeProductGroups(productGroups, displayEndAt ?? \"\"), (x) => x.startAt);\n      const currentIndex = getCurrentScheduleIndex(groups, (x) => x.startAt, (x) => x.endAt) ?? 0;\n      const {\n        productGroupId,\n        sort,\n        startAt,\n        endAt\n      } = groups[currentIndex];\n      return getScheduleHeadline({\n        ...query,\n        displayEndAt: displayEndAt ?? void 0,\n        couponId: data.couponId ?? void 0,\n        productGroups,\n        selectedProductGroup: {\n          id: productGroupId,\n          sort,\n          index: currentIndex,\n          startAt,\n          endAt\n        }\n      }, startAt, endAt);\n    }\n  }\n  return {\n    title,\n    description: description ?? void 0,\n    action: {\n      type: HeadlineActionType.External\n    },\n    query: {\n      ...query,\n      displayEndAt: displayEndAt ?? void 0,\n      couponId: data.couponId ?? void 0,\n      productGroups,\n      selectedProductGroup: {\n        id: firstProductGroup.productGroupId,\n        sort: firstProductGroup.sort,\n        index: INITIAL_PRODUCT_GROUP_INDEX\n      }\n    }\n  };\n};\nconst fetchCouponCollectionHeadline = async (query) => {\n  if (!query.brandSaleGroupId) {\n    return {\n      title: \"\"\n    };\n  }\n  const {\n    data\n  } = await brandSaleApi.getBrandSaleGroup(Number(query.brandSaleGroupId));\n  const {\n    title,\n    description,\n    brandSaleList\n  } = data;\n  return {\n    title,\n    description,\n    action: {\n      type: HeadlineActionType.External\n    },\n    query: {\n      ...query,\n      brandSales: brandSaleList\n    }\n  };\n};\nconst fetchKeywordCollectionsHeadline = async (query, preset) => {\n  if (!query.keywordCollectionIds) {\n    return {\n      title: \"\"\n    };\n  }\n  const {\n    data\n  } = await collectionApi.getCollections(splitToNumberArray(query.keywordCollectionIds));\n  const collections = orderByDateAsc(data, (x) => x.displayStartAt);\n  const currentIndex = getCurrentScheduleIndex(collections, (current) => current.displayStartAt, (_, next) => next == null ? void 0 : next.displayStartAt);\n  const collection = collections[currentIndex ?? 0];\n  if (!collection) {\n    return {\n      title: \"\"\n    };\n  }\n  const {\n    title,\n    description,\n    displayEndAt,\n    productGroupList\n  } = collection;\n  const [firstProductGroup] = productGroupList ?? [];\n  if (preset === HeadlinePresetType.Link && firstProductGroup) {\n    return {\n      title,\n      action: {\n        type: HeadlineActionType.Link,\n        label: \"전체보기\",\n        query: {\n          type: QueryType.KeywordCollection,\n          keywordCollectionId: String(collection.collectionId),\n          selectedProductGroup: firstProductGroup ? {\n            id: firstProductGroup.collectionProductGroupId,\n            sort: firstProductGroup.sort,\n            index: INITIAL_PRODUCT_GROUP_INDEX\n          } : void 0\n        }\n      },\n      query: {\n        type: QueryType.KeywordCollection,\n        keywordCollectionId: String(collection.collectionId),\n        displayEndAt: displayEndAt ?? void 0,\n        couponId: collection.couponId ?? void 0,\n        productGroups: productGroupList.map((productGroup) => ({\n          ...productGroup,\n          productGroupId: productGroup.collectionProductGroupId\n        })),\n        selectedProductGroup: firstProductGroup ? {\n          id: firstProductGroup.collectionProductGroupId,\n          sort: firstProductGroup.sort,\n          index: INITIAL_PRODUCT_GROUP_INDEX\n        } : void 0\n      }\n    };\n  }\n  return {\n    title,\n    description: description ?? void 0,\n    action: {\n      type: HeadlineActionType.External\n    },\n    query: {\n      type: QueryType.KeywordCollection,\n      keywordCollectionId: String(collection.collectionId),\n      displayEndAt: displayEndAt ?? void 0,\n      couponId: collection.couponId ?? void 0,\n      productGroups: productGroupList.map((productGroup) => ({\n        ...productGroup,\n        productGroupId: productGroup.collectionProductGroupId\n      })),\n      selectedProductGroup: firstProductGroup ? {\n        id: firstProductGroup.collectionProductGroupId,\n        sort: firstProductGroup.sort,\n        index: INITIAL_PRODUCT_GROUP_INDEX\n      } : void 0\n    }\n  };\n};\nconst queryHeadline = (query, preset) => {\n  if (!query) {\n    return {\n      title: \"\"\n    };\n  }\n  switch (query.type) {\n    case QueryType.KeywordCollection:\n      return fetchKeywordCollectionHeadline(query, preset);\n    case QueryType.KeywordCollections:\n      return fetchKeywordCollectionsHeadline(query, preset);\n    case QueryType.CouponCollection:\n      return fetchCouponCollectionHeadline(query);\n    default:\n      return {\n        title: \"\"\n      };\n  }\n};\nexport {\n  useHeadlineQuery\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { HeadlineElement } from \"../HeadlineElement/HeadlineElement.js\";\nimport \"../../../systems/curations/IntersectionProvider/IntersectionProvider.js\";\nimport { useIntersectionContext } from \"../../../systems/curations/IntersectionProvider/IntersectionProvider.hooks.js\";\nimport { useHeadlineQuery } from \"../HeadlineModule.hooks.js\";\nimport { getHeadlinePreset } from \"../HeadlineModule.utils.js\";\nconst AutoHeadlineModule = ({\n  query,\n  input,\n  output,\n  layout,\n  actionElement\n}) => {\n  const {\n    isInView\n  } = useIntersectionContext();\n  const {\n    isLoading,\n    headline\n  } = useHeadlineQuery({\n    query,\n    preset: getHeadlinePreset(layout),\n    enabled: isInView\n  });\n  return /* @__PURE__ */ jsx(HeadlineElement, { loading: isLoading, input: {\n    ...headline,\n    title: input.title || headline.title,\n    description: input.description || headline.description\n  }, output, layout, actionElement });\n};\nexport {\n  AutoHeadlineModule\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { addPropertyControls, ControlType } from \"framer\";\nimport { BREAKPOINT_CONTROLS } from \"../../../libs/property-controls/breakpoint.js\";\nimport { THEME_CONTROLS } from \"../../../libs/property-controls/theme.js\";\nimport { COMPONENT_ID_PROPS } from \"../../../libs/property-controls/component-id.js\";\nimport { HeadlineModuleInputType, HeadlineActionType, HeadlinePresetType } from \"./HeadlineModule.types.js\";\nimport { SectionLayout } from \"../../systems/curations/SectionLayout/SectionLayout.js\";\nimport { HeadlineElement } from \"./HeadlineElement/HeadlineElement.js\";\nimport { LinkedHeadlineModule } from \"./LinkedHeadlineModule/LinkedHeadlineModule.js\";\nimport { ProfilesModuleInputType } from \"../ProfilesModule/ProfilesModule.types.js\";\nimport { AUTO_HEADLINE_MODULE_QUERY } from \"./HeadlineModule.controls.js\";\nimport { AutoHeadlineModule } from \"./AutoHeadlineModule/AutoHeadlineModule.js\";\nimport { SEGMENT_CONTROLS } from \"../../../libs/property-controls/segment.js\";\nconst HeadlineModuleInner = ({\n  input,\n  output,\n  layout,\n  actionElement\n}) => {\n  switch (input.type) {\n    case HeadlineModuleInputType.Linked:\n      return /* @__PURE__ */ jsx(LinkedHeadlineModule, { ...input, output, layout, actionElement });\n    case HeadlineModuleInputType.Auto:\n      return /* @__PURE__ */ jsx(AutoHeadlineModule, { ...input, output, layout, actionElement });\n    case HeadlineModuleInputType.Manual:\n      return /* @__PURE__ */ jsx(HeadlineElement, { ...input, output, layout, actionElement });\n  }\n};\nconst HeadlineModule = ({\n  componentId,\n  breakpoint,\n  theme,\n  segment,\n  ...rest\n}) => {\n  return /* @__PURE__ */ jsx(SectionLayout, { theme, breakpoint, componentId, segment, children: /* @__PURE__ */ jsx(HeadlineModuleInner, { ...rest }) });\n};\naddPropertyControls(HeadlineModule, {\n  ...BREAKPOINT_CONTROLS,\n  ...THEME_CONTROLS,\n  ...SEGMENT_CONTROLS,\n  componentId: {\n    hidden: ({\n      input\n    }) => (input == null ? void 0 : input.type) === HeadlineModuleInputType.Linked,\n    ...COMPONENT_ID_PROPS.componentId\n  },\n  input: {\n    type: ControlType.Object,\n    title: \"입력 값\",\n    controls: {\n      type: {\n        type: ControlType.Enum,\n        title: \"유형\",\n        options: [HeadlineModuleInputType.Linked, HeadlineModuleInputType.Manual, HeadlineModuleInputType.Auto],\n        optionTitles: [\"연결\", \"수동\", \"자동\"]\n      },\n      value: {\n        hidden: ({\n          type\n        }) => type !== HeadlineModuleInputType.Linked,\n        type: ControlType.String,\n        title: \"출력 값\",\n        defaultValue: \"\"\n      },\n      input: {\n        type: ControlType.Object,\n        title: \"헤드라인 옵션\",\n        description: \"자동 또는 연결 유형일 때에는 데이터를 통해 가져온 옵션을 대체할 수 있습니다.\",\n        controls: {\n          title: {\n            type: ControlType.String,\n            title: \"제목\",\n            placeholder: \"제목 텍스트 입력\",\n            defaultValue: \"\"\n          },\n          description: {\n            type: ControlType.String,\n            title: \"설명\",\n            placeholder: \"설명 텍스트 입력\",\n            defaultValue: \"\",\n            displayTextArea: true\n          },\n          action: {\n            hidden: ({\n              type\n            }) => type !== HeadlineModuleInputType.Manual,\n            type: ControlType.Object,\n            title: \"액션\",\n            controls: {\n              type: {\n                type: ControlType.Enum,\n                title: \"유형\",\n                options: [HeadlineActionType.External],\n                optionTitles: [\"외부 연결\"]\n              }\n            }\n          }\n        }\n      },\n      query: {\n        hidden: ({\n          type\n        }) => type !== ProfilesModuleInputType.Auto,\n        ...AUTO_HEADLINE_MODULE_QUERY\n      }\n    }\n  },\n  output: {\n    type: ControlType.String,\n    title: \"출력 값\",\n    defaultValue: \"\"\n  },\n  // NOTE:(김홍동) 참고) ControlType.ComponentInstance은 객체 내에서 정의할 수 없고 배열 내에서 정의한 경우 옵션에 미노출 되므로 최상단에 위치시킵니다.\n  actionElement: {\n    type: ControlType.ComponentInstance,\n    title: \"액션 컴포넌트\",\n    description: \"헤드라인 우측에 별도의 컴포넌트가 삽입되어야 하는 경우 연결\"\n  },\n  layout: {\n    title: \"레이아웃\",\n    type: ControlType.Object,\n    controls: {\n      priority: {\n        type: ControlType.Enum,\n        title: \"우선 순위\",\n        description: \"미디어 관련 옵션은 primary 일 때에만 사용 가능합니다.\",\n        options: [\"primary\", \"secondary\", \"tertiary\"]\n      },\n      preset: {\n        hidden: ({\n          priority\n        }, {\n          input\n        }) => priority === \"primary\" || input.type === HeadlineModuleInputType.Manual,\n        type: ControlType.Enum,\n        title: \"프리셋\",\n        options: [HeadlinePresetType.Default, HeadlinePresetType.Schedule, HeadlinePresetType.Link],\n        optionTitles: [\"기본\", \"일자별\", \"링크\"]\n      },\n      mediaType: {\n        hidden: ({\n          priority\n        }) => priority !== \"primary\",\n        type: ControlType.Enum,\n        title: \"미디어 유형\",\n        description: \"삽입할 키비주얼의 미디어 유형 선택\",\n        options: [\"none\", \"image\", \"video\"],\n        optionTitles: [\"선택 안 함\", \"이미지\", \"영상\"]\n      },\n      imageSrc: {\n        hidden: ({\n          priority,\n          mediaType\n        }) => priority !== \"primary\" || mediaType !== \"image\",\n        type: ControlType.String,\n        title: \"이미지 URL\",\n        placeholder: \"이미지 URL 입력\"\n      },\n      videoSrc: {\n        hidden: ({\n          priority,\n          mediaType\n        }) => priority !== \"primary\" || mediaType !== \"video\",\n        type: ControlType.String,\n        title: \"영상 URL\",\n        placeholder: \"영상 URL 입력\"\n      },\n      videoSrcWebm: {\n        hidden: ({\n          priority,\n          mediaType\n        }) => priority !== \"primary\" || mediaType !== \"video\",\n        type: ControlType.String,\n        title: \"WEBM 영상 URL\",\n        placeholder: \"WEBM 포맷의 영상 URL 입력\"\n      },\n      poster: {\n        hidden: ({\n          priority,\n          mediaType\n        }) => priority !== \"primary\" || mediaType !== \"video\",\n        type: ControlType.String,\n        title: \"포스터 이미지 URL\",\n        description: \"영상이 자동재생되지 않는 환경(ex. 저전력 모드)에서 임시로 노출할 이미지 URL을 입력합니다.\",\n        placeholder: \"포스터 이미지 URL 입력\"\n      },\n      lazy: {\n        hidden: ({\n          priority,\n          mediaType\n        }) => priority !== \"primary\" || mediaType === \"none\",\n        type: ControlType.Boolean,\n        title: \"미디어 지연 요청\",\n        description: \"컴포넌트가 화면에 보일 때에만 미디어를 로드합니다.\\n(성능 최적화를 위해 활성화하는 것을 권장합니다.)\",\n        defaultValue: true\n      },\n      padding: {\n        type: ControlType.FusedNumber,\n        title: \"패딩\",\n        defaultValue: 0,\n        toggleKey: \"isMixed\",\n        toggleTitles: [\"All\", \"Individual\"],\n        valueKeys: [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\"],\n        valueLabels: [\"T\", \"R\", \"B\", \"L\"],\n        min: 0\n      }\n    }\n  }\n});\nexport {\n  HeadlineModule\n};\n","import{HeadlineModule}from\"https://asset.29cm.co.kr/contents/framer/components/modules/HeadlineModule/HeadlineModule.js\";HeadlineModule.displayName=\"[조립형]Headline\";export default HeadlineModule;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HeadlineModule\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HeadlineModule.map"],"mappings":"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"}