{"version":3,"file":"TextButton.CP0aZptn.mjs","names":["TextButton"],"sources":["https:/asset.29cm.co.kr/contents/framer/hooks/useCreateIsomorphicAppSchemeLink.js","https:/asset.29cm.co.kr/contents/framer/components/systems/TextButton/TextButton.constants.js","https:/asset.29cm.co.kr/contents/framer/components/systems/TextButton/TextButton.utils.js","https:/asset.29cm.co.kr/contents/framer/components/systems/TextButton/TextButton.js","https:/framerusercontent.com/modules/XO0o3hQK1oWWy3FaPwi1/q6L8Z0kY6HS407XKBvZD/TextButton.js"],"sourcesContent":["import { useDeviceInfo } from \"./useDeviceInfo.js\";\nconst useCreateIsomorphicAppSchemeLink = (url) => {\n  const {\n    isWebview\n  } = useDeviceInfo();\n  return isWebview && url ? `app29cm://web/${url}` : url;\n};\nexport {\n  useCreateIsomorphicAppSchemeLink\n};\n","import \"react/jsx-runtime\";\nimport { download } from \"../../@shared/Icon/assets/download.js\";\nimport { plus } from \"../../@shared/Icon/assets/plus.js\";\nimport { chevronRight } from \"../../@shared/Icon/assets/chevronRight.js\";\nimport { chevronDown } from \"../../@shared/Icon/assets/chevronDown.js\";\nimport { heart } from \"../../@shared/Icon/assets/heart.js\";\nimport { bell } from \"../../@shared/Icon/assets/bell.js\";\nimport { gift } from \"../../@shared/Icon/assets/gift.js\";\nimport { share } from \"../../@shared/Icon/assets/share.js\";\nimport { scrap } from \"../../@shared/Icon/assets/scrap.js\";\nimport { lock } from \"../../@shared/Icon/assets/lock.js\";\nimport { lockOff } from \"../../@shared/Icon/assets/lockOff.js\";\nconst prefixIconAssets = {\n  scrap,\n  lock,\n  lockOff,\n  heart,\n  bell,\n  gift,\n  share\n};\nconst postfixIconAssets = {\n  plus,\n  chevronRight,\n  download,\n  chevronDown,\n  share\n};\nconst PREFIX_ICON_OPTIONS = Object.keys(prefixIconAssets);\nconst POSTFIX_ICON_OPTIONS = Object.keys(postfixIconAssets);\nexport {\n  POSTFIX_ICON_OPTIONS,\n  PREFIX_ICON_OPTIONS,\n  postfixIconAssets,\n  prefixIconAssets\n};\n","import { getAnchorTarget } from \"../../../utils/getAnchorTarget.js\";\nconst reshapeProps = ({\n  url,\n  onTap,\n  prefixIcon,\n  postfixIcon,\n  fillIcon,\n  ...rest\n}) => {\n  const disabled = rest.variant === \"disabled\";\n  return {\n    as: url ? \"a\" : \"button\",\n    href: url,\n    target: url ? getAnchorTarget(url) : \"_self\",\n    disabled,\n    onClick: onTap,\n    ...toPropsWithIcon(fillIcon, prefixIcon, postfixIcon),\n    ...rest\n  };\n};\nconst toPropsWithIcon = (fill, prefixIcon, postfixIcon) => {\n  if (!postfixIcon) {\n    return {\n      prefixIcon: toIconOptions(fill, prefixIcon)\n    };\n  }\n  return {\n    postfixIcon: toIconOptions(fill, postfixIcon)\n  };\n};\nconst toIconOptions = (fill, icon) => {\n  if (icon && typeof icon === \"string\") {\n    return {\n      type: icon,\n      fill\n    };\n  }\n  return void 0;\n};\nexport {\n  reshapeProps\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { addPropertyControls, ControlType } from \"framer\";\nimport { TextButton as Default } from \"../../@shared/TextButton/TextButton.js\";\nimport { TextButtonVariant, TextButtonTheme, TextButtonSize, UrlType } from \"../../@shared/TextButton/TextButton.types.js\";\nimport { useCreateIsomorphicAppSchemeLink } from \"../../../hooks/useCreateIsomorphicAppSchemeLink.js\";\nimport { PREFIX_ICON_OPTIONS, POSTFIX_ICON_OPTIONS } from \"./TextButton.constants.js\";\nimport { reshapeProps } from \"./TextButton.utils.js\";\nconst FramerTextButton = (props) => {\n  const url = useCreateIsomorphicAppSchemeLink(props.url);\n  const {\n    text,\n    ...rest\n  } = reshapeProps({\n    ...props,\n    url: props.urlType === UrlType.ONELINK ? props.url : url\n  });\n  return /* @__PURE__ */ jsx(Default, { ...rest, children: text });\n};\naddPropertyControls(FramerTextButton, {\n  variant: {\n    type: ControlType.Enum,\n    title: \"변형\",\n    options: [TextButtonVariant.PRIMARY, TextButtonVariant.SECONDARY, TextButtonVariant.TERTIARY, TextButtonVariant.DISABLED],\n    optionTitles: [\"primary\", \"secondary\", \"tertiary\", \"disabled\"]\n  },\n  theme: {\n    type: ControlType.Enum,\n    title: \"테마\",\n    options: [TextButtonTheme.LIGHT, TextButtonTheme.DARK],\n    optionTitles: [\"light\", \"dark\"],\n    defaultValue: TextButtonTheme.LIGHT,\n    displaySegmentedControl: true\n  },\n  size: {\n    type: ControlType.Enum,\n    title: \"크기\",\n    options: [TextButtonSize.LARGE, TextButtonSize.MEDIUM, TextButtonSize.SMALL],\n    optionTitles: [\"large\", \"medium\", \"small\"],\n    defaultValue: TextButtonSize.MEDIUM\n  },\n  text: {\n    type: ControlType.String,\n    title: \"텍스트\",\n    defaultValue: \"텍스트\"\n  },\n  prefixIcon: {\n    hidden: ({\n      postfixIcon\n    }) => Boolean(postfixIcon),\n    type: ControlType.Enum,\n    title: \"좌측 아이콘\",\n    options: [void 0, ...PREFIX_ICON_OPTIONS],\n    optionTitles: [\"선택 안 함\", ...PREFIX_ICON_OPTIONS]\n  },\n  postfixIcon: {\n    hidden: ({\n      prefixIcon\n    }) => Boolean(prefixIcon),\n    type: ControlType.Enum,\n    title: \"우측 아이콘\",\n    options: [void 0, ...POSTFIX_ICON_OPTIONS],\n    optionTitles: [\"선택 안 함\", ...POSTFIX_ICON_OPTIONS]\n  },\n  fillIcon: {\n    type: ControlType.Boolean,\n    title: \"아이콘 채우기\",\n    defaultValue: false\n  },\n  url: {\n    hidden: ({\n      variant\n    }) => variant === TextButtonVariant.DISABLED,\n    type: ControlType.Link,\n    title: \"URL\"\n  },\n  urlType: {\n    type: ControlType.Enum,\n    title: \"URL 타입\",\n    options: [UrlType.DEFAULT, UrlType.ONELINK],\n    optionTitles: [\"기본\", \"OneLink\"],\n    defaultValue: UrlType.DEFAULT,\n    description: \"onelink 타입을 선택하면 deeplink 변환없이 해당 url을 그대로 사용합니다.\"\n  },\n  onTap: {\n    hidden: ({\n      variant\n    }) => variant === TextButtonVariant.DISABLED,\n    type: ControlType.EventHandler\n  }\n});\nexport {\n  FramerTextButton\n};\n","import{FramerTextButton as TextButton}from\"https://asset.29cm.co.kr/contents/framer/components/systems/TextButton/TextButton.js\";TextButton.displayName=\"TextButton\";/**\n * @framerDisableUnlink\n */export default TextButton;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TextButton\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextButton.map"],"mappings":"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"}