{
  "version": 3,
  "sources": ["ssg:https://framer.com/m/resolveUrlParams-eoJB.js@wQwgveLX1K8i0LbH58zT", "ssg:https://framerusercontent.com/modules/OMsZxWAmmRDbAsSdQfUR/ww4LZ8isonkjAJgyNT4C/Button.js"],
  "sourcesContent": ["import{useParams}from\"https://framer.com/m/useParams-KbgL.js@qR7GBo6Trce0T0WeDFfw\";const{sponsorID,identifierIDParam,sponsorIDFromStorage,identifierIDFromStorage}=useParams();export const resolveLinkUrlParams=(link,sponsorAsSlug,paramStartType)=>{const identifierParamStart=!sponsorIDFromStorage?paramStartType:sponsorIDFromStorage&&sponsorAsSlug?paramStartType:\"&\";const resolvedSponsorParam=sponsorIDFromStorage&&sponsorAsSlug?`/${sponsorIDFromStorage}`:sponsorIDFromStorage&&!sponsorAsSlug?`${paramStartType}sponsor=${sponsorIDFromStorage}`:\"\";const resolvedIdentifierParam=identifierIDFromStorage?`${identifierParamStart}identifierID=${identifierIDFromStorage}`:\"\";return`${link}${resolvedSponsorParam}${resolvedIdentifierParam}`;};// Starting new hook for shoppingcart link formats\nexport const resolveShopCategoryUrl=shopCategoryID=>{return`https://shop.bydesign.com/SendOutCards/#/shop/from/${sponsorIDFromStorage!==null&&sponsorIDFromStorage!==void 0?sponsorIDFromStorage:\"\"}?categoryID=${shopCategoryID}`;};\nexport const __FramerMetadata__ = {\"exports\":{\"resolveShopCategoryUrl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"resolveLinkUrlParams\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./resolveUrlParams.map", "import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { motion } from \"framer-motion\";\nimport { addPropertyControls, ControlType } from \"framer\";\nimport { resolveLinkUrlParams, resolveShopCategoryUrl } from \"https://framer.com/m/resolveUrlParams-eoJB.js@wQwgveLX1K8i0LbH58zT\"; /**\n                                                                                                                                   * These annotations control how your component sizes\n                                                                                                                                   * Learn more: https://www.framer.com/docs/guides/auto-sizing\n                                                                                                                                   *\n                                                                                                                                   * @framerSupportedLayoutWidth any\n                                                                                                                                   * @framerSupportedLayoutHeight any\n                                                                                                                                   */\nexport default function Button(props) {\n  const {\n    title,\n    color,\n    background,\n    radius,\n    padding,\n    style,\n    fontSize,\n    link,\n    shopLink,\n    onClick\n  } = props;\n  const resolvedLinkUrl = resolveLinkUrlParams(link.url, link.sponsorIDAsSlug, link.paramStartType);\n  const resolveShopLinkUrl = resolveShopCategoryUrl(shopLink.shopCategoryID);\n  const resolveButtonBackground = () => {\n    switch (background.gradient) {\n      case \"promptings\":\n        return \"linear-gradient(281deg, #00e0e0 0%, rgb(5, 197, 235) 100%)\";\n      default:\n        return background.solid;\n    }\n  };\n  const isShopLink = shopLink.shopCategoryID > 0;\n  const willOpenNewTab = shopLink.shop && shopLink.shouldOpenNewTab || link && link.shouldOpenNewTab;\n  return /*#__PURE__*/_jsx(motion.a, {\n    style: {\n      cursor: \"pointer\",\n      textDecoration: \"none\"\n    },\n    href: isShopLink ? resolveShopLinkUrl : link.isLinkDynamic ? resolvedLinkUrl : link.url,\n    target: willOpenNewTab ? \"_blank\" : \"initial\",\n    children: /*#__PURE__*/_jsx(motion.div, {\n      style: {\n        ...style,\n        ...containerStyle\n      },\n      children: /*#__PURE__*/_jsx(motion.div, {\n        style: {\n          padding: padding,\n          borderRadius: radius,\n          background: resolveButtonBackground(),\n          color: color,\n          fontSize: fontSize,\n          fontWeight: \"bold\",\n          cursor: \"pointer\"\n        },\n        whileHover: {\n          scale: 1.01\n        },\n        children: title\n      })\n    })\n  });\n}\n;\nButton.defaultProps = {\n  background: {\n    solid: \"#09F\",\n    gradient: \"promptings\"\n  },\n  title: \"New Button\",\n  link: {\n    url: \"/opportunity\",\n    shouldOpenNewTab: false,\n    isSponsorQueryParam: false,\n    isLinkDynamic: true,\n    sponsorIDType: \"param\",\n    paramStartType: \"?\"\n  }\n};\naddPropertyControls(Button, {\n  title: {\n    title: \"Title\",\n    type: ControlType.String\n  },\n  padding: {\n    title: \"Padding\",\n    defaultValue: \"15px 30px\",\n    type: ControlType.String\n  },\n  fontSize: {\n    title: \"Font Size Override\",\n    defaultValue: \"18px\",\n    type: ControlType.String\n  },\n  radius: {\n    title: \"Radius\",\n    defaultValue: 13,\n    type: ControlType.Number\n  },\n  color: {\n    title: \"Text Color\",\n    type: ControlType.Color,\n    defaultValue: \"#FFF\"\n  },\n  background: {\n    type: ControlType.Object,\n    controls: {\n      solid: {\n        title: \"Solid Background\",\n        type: ControlType.Color\n      },\n      gradient: {\n        title: \"Gradient Background\",\n        type: ControlType.Enum,\n        defaultValue: \"none\",\n        displaySegmentedControl: true,\n        segmentedControlDirection: \"vertical\",\n        options: [\"none\", \"promptings\"],\n        optionTitles: [\"No Gradient\", \"Promptings Gradient\"]\n      }\n    }\n  },\n  link: {\n    type: ControlType.Object,\n    description: \"This option will format any non-shopping link with a sponsor slug\",\n    controls: {\n      url: {\n        type: ControlType.String,\n        defaultValue: \"\",\n        description: \"Supports both full url and /pagename slugs, to use a full url the value of this field must start with http or https:// \"\n      },\n      shouldOpenNewTab: {\n        title: \"New Tab\",\n        type: ControlType.Boolean,\n        defaultValue: false\n      },\n      isLinkDynamic: {\n        type: ControlType.Boolean,\n        defaultValue: true\n      },\n      sponsorIDAsSlug: {\n        type: ControlType.Boolean,\n        title: \"Slugify Sponsor?\",\n        defaultValue: false\n      },\n      paramStartType: {\n        displaySegmentedControl: true,\n        segmentedControlDirection: \"vertical\",\n        title: \"Param Start Type\",\n        type: ControlType.Enum,\n        defaultValue: \"?\",\n        options: [\"?\", \"&\"],\n        optionTitles: [\"Param Start (?)\", \"Param Extend (&)\"],\n        description: \"This determines if the code generated query parameters are added to the end of a url with existing query params or at the end of the last url slug\"\n      }\n    }\n  },\n  shopLink: {\n    type: ControlType.Object,\n    description: \"If you are linking this button to a shopping cart link insert the categoryID here, you may leave the link field above blank\",\n    controls: {\n      shouldOpenNewTab: {\n        title: \"New Tab\",\n        type: ControlType.Boolean,\n        defaultValue: false\n      },\n      isLinkDynamic: {\n        type: ControlType.Boolean,\n        defaultValue: true\n      },\n      shopCategoryID: {\n        type: ControlType.Number,\n        defaultValue: 0,\n        description: \"Insert shopping cart categoryID here\"\n      }\n    }\n  }\n});\nconst containerStyle = {\n  display: \"flex\",\n  justifyContent: \"center\",\n  alignItems: \"center\",\n  overflow: \"hidden\"\n};\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"default\": {\n      \"type\": \"reactComponent\",\n      \"name\": \"Button\",\n      \"slots\": [],\n      \"annotations\": {\n        \"framerSupportedLayoutWidth\": \"any\",\n        \"framerContractVersion\": \"1\",\n        \"framerSupportedLayoutHeight\": \"any\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./Button.map"],
  "mappings": "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",
  "names": ["sponsorID", "identifierIDParam", "sponsorIDFromStorage", "identifierIDFromStorage", "useParams", "resolveLinkUrlParams", "link", "sponsorAsSlug", "paramStartType", "identifierParamStart", "resolvedSponsorParam", "resolvedIdentifierParam", "resolveShopCategoryUrl", "shopCategoryID", "Button", "props", "title", "color", "background", "radius", "padding", "style", "fontSize", "link", "shopLink", "onClick", "resolvedLinkUrl", "resolveLinkUrlParams", "resolveShopLinkUrl", "resolveShopCategoryUrl", "resolveButtonBackground", "isShopLink", "willOpenNewTab", "motion", "containerStyle", "addPropertyControls", "ControlType"]
}
