UNPKG

@sundaywong/launched-badges

Version:

Universal badges for your product launches — celebrate on Lovable, Reddit, X, Hacker News, and more, not just Product Hunt.

561 lines (550 loc) 30.6 kB
// @sundaywong/launched-badges - MIT License // src/generic/SocialBadge.tsx import { jsx, jsxs } from "react/jsx-runtime"; var SocialBadge = ({ count = 0, theme = "light", width, height, featuredText = "FEATURED ON", platformName = "Social", platformNameComponent, linkEnabled = true, linkUrl, displayMode = "count", iconType = "upvote", colors, logoComponent, viewBoxWidth = 220, countGroupX = 172 }) => { const limitedFeaturedText = featuredText.substring(0, 15); const formattedCount = typeof count === "string" ? count.substring(0, 6) : count.toString(); if (displayMode === "count" && count === "") { console.error('SocialBadge requires a count prop when displayMode is "count"'); return null; } const defaultColors = { light: { border: "#00000020", text: "#000000", background: "#FFFFFF" }, dark: { border: "#363636", text: "#FFFFFF", background: "#201e1e" } }; const themeColors = typeof theme === "string" && theme in defaultColors ? defaultColors[theme] : defaultColors.light; const borderColor = colors?.border || themeColors.border; const textColor = colors?.text || themeColors.text; const bgColor = colors?.background || themeColors.background; const borderRadius = 16; const adjustedViewBoxWidth = displayMode === "none" ? viewBoxWidth - 30 : viewBoxWidth; const defaultWidth = adjustedViewBoxWidth; const getCountXPosition = (countText) => { const length = countText.length; return 16.5 - 3.3 * (length - 1); }; const containerStyle = {}; if (!width && !height) { containerStyle.width = `${defaultWidth}px`; } else if (width) { containerStyle.width = `${width}px`; } else if (height && !width) { containerStyle.height = `${height}px`; } if (width && height) { containerStyle.height = `${height}px`; } const renderDefaultIcon = () => { switch (iconType) { case "upvote-arrow": return /* @__PURE__ */ jsxs("svg", { x: "13.5", y: "-2", width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", strokeWidth: "3", stroke: textColor, strokeLinecap: "round", strokeLinejoin: "round", children: [ /* @__PURE__ */ jsx("path", { d: "m5 12 7-7 7 7" }), /* @__PURE__ */ jsx("path", { d: "M12 19V5" }) ] }); case "likes": return /* @__PURE__ */ jsxs("svg", { x: "14.5", y: "-1", width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", strokeWidth: "2", stroke: textColor, strokeLinecap: "round", strokeLinejoin: "round", children: [ /* @__PURE__ */ jsx("path", { d: "M7 10v12" }), /* @__PURE__ */ jsx("path", { d: "M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z" }) ] }); case "followers": return /* @__PURE__ */ jsxs("svg", { x: "14.5", y: "-1", width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", strokeWidth: "2", stroke: textColor, strokeLinecap: "round", strokeLinejoin: "round", children: [ /* @__PURE__ */ jsx("path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" }), /* @__PURE__ */ jsx("circle", { cx: "9", cy: "7", r: "4" }), /* @__PURE__ */ jsx("path", { d: "M22 21v-2a4 4 0 0 0-3-3.87" }), /* @__PURE__ */ jsx("path", { d: "M16 3.13a4 4 0 0 1 0 7.75" }) ] }); case "star": return /* @__PURE__ */ jsx("svg", { x: "14.5", y: "-1", width: "12", height: "12", viewBox: "0 0 18 16", fill: "none", stroke: textColor, strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx("path", { d: "M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Z" }) }); case "upvote": default: return /* @__PURE__ */ jsx("polygon", { points: "26.0024997 10 15 10 20.5012498 0", fill: textColor }); } }; const renderLinkIcon = () => { return /* @__PURE__ */ jsxs("svg", { x: "12", y: "6", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: textColor, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [ /* @__PURE__ */ jsx("path", { d: "M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6" }), /* @__PURE__ */ jsx("path", { d: "m21 3-9 9" }), /* @__PURE__ */ jsx("path", { d: "M15 3h6v6" }) ] }); }; const renderDefaultLogo = () => /* @__PURE__ */ jsxs("svg", { x: "0", y: "0", width: "29", height: "29", viewBox: "0 0 29 29", fill: textColor, children: [ /* @__PURE__ */ jsx("circle", { cx: "14.5", cy: "14.5", r: "12.5", stroke: textColor, strokeWidth: "2", fill: "none" }), /* @__PURE__ */ jsx("text", { x: "10", y: "20", fontFamily: "Helvetica", fontSize: "14", fontWeight: "bold", children: platformName.substring(0, 1) }) ] }); const badgeContent = /* @__PURE__ */ jsx("div", { style: containerStyle, children: /* @__PURE__ */ jsx( "svg", { xmlns: "http://www.w3.org/2000/svg", width: "100%", height: "100%", preserveAspectRatio: "xMidYMid meet", viewBox: `0 0 ${adjustedViewBoxWidth} 54`, version: "1.1", children: /* @__PURE__ */ jsx("g", { stroke: "none", strokeWidth: "1", fill: "none", fillRule: "evenodd", children: /* @__PURE__ */ jsx("g", { transform: "translate(-130.000000, -73.000000)", children: /* @__PURE__ */ jsxs("g", { transform: "translate(130.000000, 73.000000)", children: [ /* @__PURE__ */ jsx("rect", { stroke: borderColor, strokeWidth: "1", fill: bgColor, x: "0.5", y: "0.5", width: adjustedViewBoxWidth - 1, height: "53", rx: borderRadius }), /* @__PURE__ */ jsx("text", { fontFamily: "Helvetica-Bold, Helvetica", fontSize: "9", fontWeight: "bold", fill: textColor, children: /* @__PURE__ */ jsx("tspan", { x: "63", y: "20", children: limitedFeaturedText }) }), platformNameComponent ? platformNameComponent : /* @__PURE__ */ jsx("text", { fontFamily: "Helvetica-Bold, Helvetica", fontSize: "21", fontWeight: "bold", fill: textColor, children: /* @__PURE__ */ jsx("tspan", { x: "62", y: "40", children: platformName }) }), displayMode === "count" && /* @__PURE__ */ jsx("g", { transform: `translate(${countGroupX}, 13)`, fill: textColor, children: /* @__PURE__ */ jsxs("g", { children: [ renderDefaultIcon(), /* @__PURE__ */ jsx("text", { fontFamily: "Helvetica-Bold, Helvetica", fontSize: "13", fontWeight: "bold", style: { lineHeight: "20px" }, children: /* @__PURE__ */ jsx("tspan", { x: getCountXPosition(formattedCount), y: "27", children: formattedCount }) }) ] }) }), displayMode === "link" && /* @__PURE__ */ jsx("g", { transform: `translate(${countGroupX}, 13)`, fill: textColor, children: /* @__PURE__ */ jsx("g", { children: renderLinkIcon() }) }), /* @__PURE__ */ jsx("g", { transform: "translate(18.000000, 12.000000)", children: logoComponent || renderDefaultLogo() }) ] }) }) }) } ) }); if (linkEnabled && linkUrl) { return /* @__PURE__ */ jsx( "a", { href: linkUrl, target: "_blank", rel: "noopener noreferrer", style: { textDecoration: "none", display: "inline-block" }, children: badgeContent } ); } return badgeContent; }; // src/lovable/LovableBadge.tsx import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime"; var LovableBadge = ({ iconType = "upvote", theme = "light", ...props }) => { const lovableColors = { light: { border: "#ff385c20", text: "#ff385c", background: "#FFFFFF" }, dark: { border: "#363636", text: "#FFFFFF", background: "#201e1e" } }; const colors = theme === "dark" ? lovableColors.dark : lovableColors.light; const lovableLogo = /* @__PURE__ */ jsxs2("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 23 24", width: 29, height: 29, children: [ /* @__PURE__ */ jsx2("mask", { id: "lovable-logo_svg__b", width: "23", height: "24", x: "0", y: "0", maskUnits: "userSpaceOnUse", style: { maskType: "alpha" }, children: /* @__PURE__ */ jsx2("path", { fill: "url(#lovable-logo_svg__a)", fillRule: "evenodd", d: "M6.898 0c3.81 0 6.898 3.179 6.898 7.1v2.7h2.295c3.81 0 6.898 3.178 6.898 7.1S19.901 24 16.091 24H0V7.1C0 3.18 3.088 0 6.898 0", clipRule: "evenodd" }) }), /* @__PURE__ */ jsxs2("g", { mask: "url(#lovable-logo_svg__b)", children: [ /* @__PURE__ */ jsx2("g", { filter: "url(#lovable-logo_svg__c)", children: /* @__PURE__ */ jsx2("ellipse", { cx: "10.084", cy: "12.811", fill: "#4B73FF", rx: "15.562", ry: "15.977" }) }), /* @__PURE__ */ jsx2("g", { filter: "url(#lovable-logo_svg__d)", children: /* @__PURE__ */ jsx2("ellipse", { cx: "11.794", cy: "4.043", fill: "#FF66F4", rx: "19.931", ry: "15.977" }) }), /* @__PURE__ */ jsx2("g", { filter: "url(#lovable-logo_svg__e)", children: /* @__PURE__ */ jsx2("ellipse", { cx: "15.045", cy: "1.037", fill: "#FF0105", rx: "15.562", ry: "14.031" }) }), /* @__PURE__ */ jsx2("g", { filter: "url(#lovable-logo_svg__f)", children: /* @__PURE__ */ jsx2("ellipse", { cx: "12.071", cy: "4.039", fill: "#FE7B02", rx: "9.359", ry: "9.608" }) }) ] }), /* @__PURE__ */ jsxs2("defs", { children: [ /* @__PURE__ */ jsxs2("filter", { id: "lovable-logo_svg__c", width: "45.444", height: "46.274", x: "-12.638", y: "-10.326", colorInterpolationFilters: "sRGB", filterUnits: "userSpaceOnUse", children: [ /* @__PURE__ */ jsx2("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }), /* @__PURE__ */ jsx2("feBlend", { in: "SourceGraphic", in2: "BackgroundImageFix", result: "shape" }), /* @__PURE__ */ jsx2("feGaussianBlur", { result: "effect1_foregroundBlur_19703_3420", stdDeviation: "3.58" }) ] }), /* @__PURE__ */ jsxs2("filter", { id: "lovable-logo_svg__d", width: "54.181", height: "46.274", x: "-15.297", y: "-19.094", colorInterpolationFilters: "sRGB", filterUnits: "userSpaceOnUse", children: [ /* @__PURE__ */ jsx2("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }), /* @__PURE__ */ jsx2("feBlend", { in: "SourceGraphic", in2: "BackgroundImageFix", result: "shape" }), /* @__PURE__ */ jsx2("feGaussianBlur", { result: "effect1_foregroundBlur_19703_3420", stdDeviation: "3.58" }) ] }), /* @__PURE__ */ jsxs2("filter", { id: "lovable-logo_svg__e", width: "45.444", height: "42.383", x: "-7.677", y: "-20.154", colorInterpolationFilters: "sRGB", filterUnits: "userSpaceOnUse", children: [ /* @__PURE__ */ jsx2("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }), /* @__PURE__ */ jsx2("feBlend", { in: "SourceGraphic", in2: "BackgroundImageFix", result: "shape" }), /* @__PURE__ */ jsx2("feGaussianBlur", { result: "effect1_foregroundBlur_19703_3420", stdDeviation: "3.58" }) ] }), /* @__PURE__ */ jsxs2("filter", { id: "lovable-logo_svg__f", width: "33.038", height: "33.538", x: "-4.448", y: "-12.73", colorInterpolationFilters: "sRGB", filterUnits: "userSpaceOnUse", children: [ /* @__PURE__ */ jsx2("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }), /* @__PURE__ */ jsx2("feBlend", { in: "SourceGraphic", in2: "BackgroundImageFix", result: "shape" }), /* @__PURE__ */ jsx2("feGaussianBlur", { result: "effect1_foregroundBlur_19703_3420", stdDeviation: "3.58" }) ] }), /* @__PURE__ */ jsxs2("linearGradient", { id: "lovable-logo_svg__a", x1: "7.736", x2: "15.072", y1: "4.218", y2: "23.867", gradientUnits: "userSpaceOnUse", children: [ /* @__PURE__ */ jsx2("stop", { offset: "0.025", stopColor: "#FF8E63" }), /* @__PURE__ */ jsx2("stop", { offset: "0.56", stopColor: "#FF7EB0" }), /* @__PURE__ */ jsx2("stop", { offset: "0.95", stopColor: "#4B73FF" }) ] }) ] }) ] }); return /* @__PURE__ */ jsx2( SocialBadge, { ...props, platformName: "Lovable", colors, logoComponent: lovableLogo, iconType, viewBoxWidth: 220, countGroupX: 172, theme } ); }; // src/reddit/RedditBadge.tsx import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime"; var RedditBadge = ({ iconType = "upvote", theme = "light", ...props }) => { const redditColors = { light: { border: "#FC471E20", text: "#FC471E", background: "#FFFFFF" }, dark: { border: "#363636", text: "#FFFFFF", background: "#201e1e" } }; const colors = theme === "dark" ? redditColors.dark : redditColors.light; const redditLogo = /* @__PURE__ */ jsxs3("svg", { width: "30", height: "30", viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ /* @__PURE__ */ jsx3("path", { d: "M16 2C8.27812 2 2 8.27812 2 16C2 23.7219 8.27812 30 16 30C23.7219 30 30 23.7219 30 16C30 8.27812 23.7219 2 16 2Z", fill: "#FC471E" }), /* @__PURE__ */ jsx3("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M20.0193 8.90951C20.0066 8.98984 20 9.07226 20 9.15626C20 10.0043 20.6716 10.6918 21.5 10.6918C22.3284 10.6918 23 10.0043 23 9.15626C23 8.30819 22.3284 7.6207 21.5 7.6207C21.1309 7.6207 20.7929 7.7572 20.5315 7.98359L16.6362 7L15.2283 12.7651C13.3554 12.8913 11.671 13.4719 10.4003 14.3485C10.0395 13.9863 9.54524 13.7629 9 13.7629C7.89543 13.7629 7 14.6796 7 15.8103C7 16.5973 7.43366 17.2805 8.06967 17.6232C8.02372 17.8674 8 18.1166 8 18.3696C8 21.4792 11.5817 24 16 24C20.4183 24 24 21.4792 24 18.3696C24 18.1166 23.9763 17.8674 23.9303 17.6232C24.5663 17.2805 25 16.5973 25 15.8103C25 14.6796 24.1046 13.7629 23 13.7629C22.4548 13.7629 21.9605 13.9863 21.5997 14.3485C20.2153 13.3935 18.3399 12.7897 16.2647 12.7423L17.3638 8.24143L20.0193 8.90951ZM12.5 18.8815C13.3284 18.8815 14 18.194 14 17.3459C14 16.4978 13.3284 15.8103 12.5 15.8103C11.6716 15.8103 11 16.4978 11 17.3459C11 18.194 11.6716 18.8815 12.5 18.8815ZM19.5 18.8815C20.3284 18.8815 21 18.194 21 17.3459C21 16.4978 20.3284 15.8103 19.5 15.8103C18.6716 15.8103 18 16.4978 18 17.3459C18 18.194 18.6716 18.8815 19.5 18.8815ZM12.7773 20.503C12.5476 20.3462 12.2372 20.4097 12.084 20.6449C11.9308 20.8802 11.9929 21.198 12.2226 21.3548C13.3107 22.0973 14.6554 22.4686 16 22.4686C17.3446 22.4686 18.6893 22.0973 19.7773 21.3548C20.0071 21.198 20.0692 20.8802 19.916 20.6449C19.7628 20.4097 19.4524 20.3462 19.2226 20.503C18.3025 21.1309 17.1513 21.4449 16 21.4449C15.3173 21.4449 14.6345 21.3345 14 21.1137C13.5646 20.9621 13.1518 20.7585 12.7773 20.503Z", fill: "white" }) ] }); return /* @__PURE__ */ jsx3( SocialBadge, { ...props, platformName: "Reddit", colors, logoComponent: redditLogo, iconType, theme } ); }; // src/hackernews/HackerNewsBadge.tsx import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime"; var HackerNewsBadge = ({ iconType = "upvote", theme = "light", ...props }) => { const hnColors = { light: { border: "#FF660020", text: "#FF6600", background: "#FFFFFF" }, dark: { border: "#363636", text: "#FFFFFF", background: "#201e1e" } }; const colors = theme === "dark" ? hnColors.dark : hnColors.light; const hnLogo = /* @__PURE__ */ jsxs4("svg", { width: "29", height: "29", viewBox: "0 0 512 512", xmlns: "http://www.w3.org/2000/svg", children: [ /* @__PURE__ */ jsx4("rect", { width: "512", height: "512", rx: "15%", fill: "#f60" }), /* @__PURE__ */ jsx4("path", { fill: "#ffffff", d: "M124 91h51l81 162 81-164h51L276 293v136h-40V293z" }) ] }); return /* @__PURE__ */ jsx4( SocialBadge, { ...props, platformName: "Hacker News", colors, logoComponent: hnLogo, iconType, viewBoxWidth: 250, countGroupX: 202, theme } ); }; // src/facebook/FacebookBadge.tsx import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime"; var FacebookBadge = ({ iconType = "likes", theme = "light", ...props }) => { const fbColors = { light: { border: "#1877F220", text: "#1877F2", background: "#FFFFFF" }, dark: { border: "#363636", text: "#FFFFFF", background: "#201e1e" } }; const colors = theme === "dark" ? fbColors.dark : fbColors.light; const fbLogo = /* @__PURE__ */ jsxs5("svg", { width: "32", height: "32", viewBox: "0 0 16 16", xmlns: "http://www.w3.org/2000/svg", fill: "none", children: [ /* @__PURE__ */ jsx5("path", { fill: "#1877F2", d: "M15 8a7 7 0 00-7-7 7 7 0 00-1.094 13.915v-4.892H5.13V8h1.777V6.458c0-1.754 1.045-2.724 2.644-2.724.766 0 1.567.137 1.567.137v1.723h-.883c-.87 0-1.14.54-1.14 1.093V8h1.941l-.31 2.023H9.094v4.892A7.001 7.001 0 0015 8z" }), /* @__PURE__ */ jsx5("path", { fill: "#ffffff", d: "M10.725 10.023L11.035 8H9.094V6.687c0-.553.27-1.093 1.14-1.093h.883V3.87s-.801-.137-1.567-.137c-1.6 0-2.644.97-2.644 2.724V8H5.13v2.023h1.777v4.892a7.037 7.037 0 002.188 0v-4.892h1.63z" }) ] }); return /* @__PURE__ */ jsx5( SocialBadge, { ...props, platformName: "Facebook", colors, logoComponent: fbLogo, iconType, viewBoxWidth: 250, countGroupX: 202, theme } ); }; // src/instagram/InstagramBadge.tsx import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime"; var InstagramBadge = ({ iconType = "likes", theme = "light", ...props }) => { const igColors = { light: { border: "#E1306C20", text: "#E1306C", background: "#FFFFFF" }, dark: { border: "#363636", text: "#FFFFFF", background: "#201e1e" } }; const colors = theme === "dark" ? igColors.dark : igColors.light; const igLogo = /* @__PURE__ */ jsxs6("svg", { width: "29", height: "29", viewBox: "0 0 3364.7 3364.7", xmlns: "http://www.w3.org/2000/svg", children: [ /* @__PURE__ */ jsxs6("defs", { children: [ /* @__PURE__ */ jsxs6("radialGradient", { id: "0", cx: "217.76", cy: "3290.99", r: "4271.92", gradientUnits: "userSpaceOnUse", children: [ /* @__PURE__ */ jsx6("stop", { offset: ".09", stopColor: "#fa8f21" }), /* @__PURE__ */ jsx6("stop", { offset: ".78", stopColor: "#d82d7e" }) ] }), /* @__PURE__ */ jsxs6("radialGradient", { id: "1", cx: "2330.61", cy: "3182.95", r: "3759.33", gradientUnits: "userSpaceOnUse", children: [ /* @__PURE__ */ jsx6("stop", { offset: ".64", stopColor: "#8c3aaa", stopOpacity: "0" }), /* @__PURE__ */ jsx6("stop", { offset: "1", stopColor: "#8c3aaa" }) ] }) ] }), /* @__PURE__ */ jsx6("path", { d: "M853.2,3352.8c-200.1-9.1-308.8-42.4-381.1-70.6-95.8-37.3-164.1-81.7-236-153.5S119.7,2988.6,82.6,2892.8c-28.2-72.3-61.5-181-70.6-381.1C2,2295.4,0,2230.5,0,1682.5s2.2-612.8,11.9-829.3C21,653.1,54.5,544.6,82.5,472.1,119.8,376.3,164.3,308,236,236c71.8-71.8,140.1-116.4,236-153.5C544.3,54.3,653,21,853.1,11.9,1069.5,2,1134.5,0,1682.3,0c548,0,612.8,2.2,829.3,11.9,200.1,9.1,308.6,42.6,381.1,70.6,95.8,37.1,164.1,81.7,236,153.5s116.2,140.2,153.5,236c28.2,72.3,61.5,181,70.6,381.1,9.9,216.5,11.9,281.3,11.9,829.3,0,547.8-2,612.8-11.9,829.3-9.1,200.1-42.6,308.8-70.6,381.1-37.3,95.8-81.7,164.1-153.5,235.9s-140.2,116.2-236,153.5c-72.3,28.2-181,61.5-381.1,70.6-216.3,9.9-281.3,11.9-829.3,11.9-547.8,0-612.8-1.9-829.1-11.9", fill: "url(#0)" }), /* @__PURE__ */ jsx6("path", { d: "M853.2,3352.8c-200.1-9.1-308.8-42.4-381.1-70.6-95.8-37.3-164.1-81.7-236-153.5S119.7,2988.6,82.6,2892.8c-28.2-72.3-61.5-181-70.6-381.1C2,2295.4,0,2230.5,0,1682.5s2.2-612.8,11.9-829.3C21,653.1,54.5,544.6,82.5,472.1,119.8,376.3,164.3,308,236,236c71.8-71.8,140.1-116.4,236-153.5C544.3,54.3,653,21,853.1,11.9,1069.5,2,1134.5,0,1682.3,0c548,0,612.8,2.2,829.3,11.9,200.1,9.1,308.6,42.6,381.1,70.6,95.8,37.1,164.1,81.7,236,153.5s116.2,140.2,153.5,236c28.2,72.3,61.5,181,70.6,381.1,9.9,216.5,11.9,281.3,11.9,829.3,0,547.8-2,612.8-11.9,829.3-9.1,200.1-42.6,308.8-70.6,381.1-37.3,95.8-81.7,164.1-153.5,235.9s-140.2,116.2-236,153.5c-72.3,28.2-181,61.5-381.1,70.6-216.3,9.9-281.3,11.9-829.3,11.9-547.8,0-612.8-1.9-829.1-11.9", fill: "url(#1)" }), /* @__PURE__ */ jsx6("path", { d: "M1269.25,1689.52c0-230.11,186.49-416.7,416.6-416.7s416.7,186.59,416.7,416.7-186.59,416.7-416.7,416.7-416.6-186.59-416.6-416.7m-225.26,0c0,354.5,287.36,641.86,641.86,641.86s641.86-287.36,641.86-641.86-287.36-641.86-641.86-641.86S1044,1335,1044,1689.52m1159.13-667.31a150,150,0,1,0,150.06-149.94h-0.06a150.07,150.07,0,0,0-150,149.94M1180.85,2707c-121.87-5.55-188.11-25.85-232.13-43-58.36-22.72-100-49.78-143.78-93.5s-70.88-85.32-93.5-143.68c-17.16-44-37.46-110.26-43-232.13-6.06-131.76-7.27-171.34-7.27-505.15s1.31-373.28,7.27-505.15c5.55-121.87,26-188,43-232.13,22.72-58.36,49.78-100,93.5-143.78s85.32-70.88,143.78-93.5c44-17.16,110.26-37.46,232.13-43,131.76-6.06,171.34-7.27,505-7.27S2059.13,666,2191,672c121.87,5.55,188,26,232.13,43,58.36,22.62,100,49.78,143.78,93.5s70.78,85.42,93.5,143.78c17.16,44,37.46,110.26,43,232.13,6.06,131.87,7.27,171.34,7.27,505.15s-1.21,373.28-7.27,505.15c-5.55,121.87-25.95,188.11-43,232.13-22.72,58.36-49.78,100-93.5,143.68s-85.42,70.78-143.78,93.5c-44,17.16-110.26,37.46-232.13,43-131.76,6.06-171.34,7.27-505.15,7.27s-373.28-1.21-505-7.27M1170.5,447.09c-133.07,6.06-224,27.16-303.41,58.06-82.19,31.91-151.86,74.72-221.43,144.18S533.39,788.47,501.48,870.76c-30.9,79.46-52,170.34-58.06,303.41-6.16,133.28-7.57,175.89-7.57,515.35s1.41,382.07,7.57,515.35c6.06,133.08,27.16,223.95,58.06,303.41,31.91,82.19,74.62,152,144.18,221.43s139.14,112.18,221.43,144.18c79.56,30.9,170.34,52,303.41,58.06,133.35,6.06,175.89,7.57,515.35,7.57s382.07-1.41,515.35-7.57c133.08-6.06,223.95-27.16,303.41-58.06,82.19-32,151.86-74.72,221.43-144.18s112.18-139.24,144.18-221.43c30.9-79.46,52.1-170.34,58.06-303.41,6.06-133.38,7.47-175.89,7.47-515.35s-1.41-382.07-7.47-515.35c-6.06-133.08-27.16-224-58.06-303.41-32-82.19-74.72-151.86-144.18-221.43S2586.8,537.06,2504.71,505.15c-79.56-30.9-170.44-52.1-303.41-58.06C2068,441,2025.41,439.52,1686,439.52s-382.1,1.41-515.45,7.57", fill: "#ffffff" }) ] }); return /* @__PURE__ */ jsx6( SocialBadge, { ...props, platformName: "Instagram", colors, logoComponent: igLogo, iconType, viewBoxWidth: 250, countGroupX: 202, theme } ); }; // src/twitter/TwitterBadge.tsx import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime"; var TwitterBadge = ({ iconType = "likes", theme = "light", ...props }) => { const twitterColors = { light: { border: "#00000020", text: "#000000", background: "#FFFFFF" }, dark: { border: "#363636", text: "#FFFFFF", background: "#201e1e" } }; const colors = theme === "dark" ? twitterColors.dark : twitterColors.light; const twitterLogo = /* @__PURE__ */ jsx7("svg", { width: "29", height: "29", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsx7("g", { children: /* @__PURE__ */ jsx7( "path", { fill: theme === "dark" ? "#FFFFFF" : "#000000", d: "M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" } ) }) }); const customPlatformName = /* @__PURE__ */ jsxs7("g", { children: [ /* @__PURE__ */ jsx7("text", { fontFamily: "Helvetica-Bold, Helvetica", fontSize: "21", fontWeight: "bold", fill: colors.text, children: /* @__PURE__ */ jsx7("tspan", { x: "62", y: "40", children: "X" }) }), /* @__PURE__ */ jsx7("text", { fontFamily: "Helvetica-Bold, Helvetica", fontSize: "11", fill: colors.text, opacity: "0.6", children: /* @__PURE__ */ jsx7("tspan", { x: "84", y: "38", children: "(" }) }), /* @__PURE__ */ jsx7("text", { fontFamily: "Helvetica-Bold, Helvetica", fontSize: "14", fill: colors.text, opacity: theme === "dark" ? "0.85" : "0.6", children: /* @__PURE__ */ jsx7("tspan", { x: "89", y: "40", children: "Twitter" }) }), /* @__PURE__ */ jsx7("text", { fontFamily: "Helvetica-Bold, Helvetica", fontSize: "11", fill: colors.text, opacity: "0.6", children: /* @__PURE__ */ jsx7("tspan", { x: "135", y: "38", children: ")" }) }) ] }); return /* @__PURE__ */ jsx7( SocialBadge, { ...props, platformNameComponent: customPlatformName, colors, logoComponent: twitterLogo, iconType, theme } ); }; // src/microlaunch/MicroLaunchBadge.tsx import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime"; var MicroLaunchBadge = ({ iconType = "upvote", theme = "light", ...props }) => { const microLaunchColors = { light: { border: "#885EF220", text: "#885EF2", background: "#FFFFFF" }, dark: { border: "#363636", text: "#FFFFFF", background: "#201e1e" } }; const colors = theme === "dark" ? microLaunchColors.dark : microLaunchColors.light; const microLaunchLogo = /* @__PURE__ */ jsxs8("svg", { xmlns: "http://www.w3.org/2000/svg", width: "29", height: "29", viewBox: "0 0 117 115", fill: "none", children: [ /* @__PURE__ */ jsx8("rect", { width: "117", height: "114.911", rx: "57.4554", fill: "url(#paint0_linear_10_66)" }), /* @__PURE__ */ jsx8("path", { d: "M63.6719 34.1406H83.2188V70H63.6719V34.1406ZM38.4297 34.1406H57.8711V87.9297H38.4297V34.1406Z", fill: "white" }), /* @__PURE__ */ jsx8("defs", { children: /* @__PURE__ */ jsxs8("linearGradient", { id: "paint0_linear_10_66", x1: "91.5", y1: "10.5", x2: "30.5", y2: "105.5", gradientUnits: "userSpaceOnUse", children: [ /* @__PURE__ */ jsx8("stop", { stopColor: "#0094FF" }), /* @__PURE__ */ jsx8("stop", { offset: "0.51", stopColor: "#B741FF" }), /* @__PURE__ */ jsx8("stop", { offset: "1", stopColor: "#8000FF" }) ] }) }) ] }); const platformNameComponent = /* @__PURE__ */ jsxs8("text", { fontFamily: "Helvetica-Bold, Helvetica", fontSize: "21", fontWeight: "bold", children: [ /* @__PURE__ */ jsx8("tspan", { x: "62", y: "40", fill: theme === "light" ? "#885EF2" : "#FFFFFF", children: "Micro" }), /* @__PURE__ */ jsx8("tspan", { fill: theme === "light" ? "#885EF2" : "#A889F4", children: "Launch" }) ] }); return /* @__PURE__ */ jsx8( SocialBadge, { ...props, platformName: "MicroLaunch", colors, logoComponent: microLaunchLogo, iconType, viewBoxWidth: 250, countGroupX: 202, theme, platformNameComponent } ); }; // src/linkedin/LinkedInBadge.tsx import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime"; var LinkedInBadge = ({ iconType = "likes", theme = "light", ...props }) => { const linkedInColors = { light: { border: "#0077B520", text: "#0077B5", background: "#FFFFFF" }, dark: { border: "#363636", text: "#FFFFFF", background: "#201e1e" } }; const colors = theme === "dark" ? linkedInColors.dark : linkedInColors.light; const logoFills = theme === "light" ? { rect: "#FFF", path: "#0077B5" } : { rect: "none", path: "rgba(255,255,255,90)" }; const linkedInLogo = /* @__PURE__ */ jsx9("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 34 34", width: "30", height: "30", focusable: "false", children: /* @__PURE__ */ jsxs9("g", { transform: "scale(.7083)", fill: "none", fillRule: "evenodd", children: [ /* @__PURE__ */ jsx9("rect", { fill: logoFills.rect, x: "1", y: "1", width: "46", height: "46", rx: "4" }), /* @__PURE__ */ jsx9("path", { d: "M0 4.01A4.01 4.01 0 014.01 0h39.98A4.01 4.01 0 0148 4.01v39.98A4.01 4.01 0 0143.99 48H4.01A4.01 4.01 0 010 43.99V4.01zM19 18.3h6.5v3.266C26.437 19.688 28.838 18 32.445 18 39.359 18 41 21.738 41 28.597V41.3h-7V30.159c0-3.906-.937-6.109-3.32-6.109-3.305 0-4.68 2.375-4.68 6.109V41.3h-7v-23zM7 41h7V18H7v23zm8-30.5a4.5 4.5 0 11-9 0 4.5 4.5 0 019 0z", fill: logoFills.path }) ] }) }); return /* @__PURE__ */ jsx9( SocialBadge, { ...props, platformName: "LinkedIn", colors, logoComponent: linkedInLogo, iconType, viewBoxWidth: 250, countGroupX: 202, theme } ); }; // src/github/GitHubBadge.tsx import { jsx as jsx10 } from "react/jsx-runtime"; var GitHubBadge = ({ iconType = "star", theme = "light", ...props }) => { const gitHubColors = { light: { border: "#24292e20", text: "#24292e", background: "#FFFFFF" }, dark: { border: "#363636", text: "#FFFFFF", background: "#201e1e" } }; const colors = theme === "dark" ? gitHubColors.dark : gitHubColors.light; const logoFills = theme === "light" ? { path: "#24292e" } : { path: "#FFFFFF" }; const gitHubLogo = /* @__PURE__ */ jsx10("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 34 34", width: "31", height: "31", focusable: "false", children: /* @__PURE__ */ jsx10("g", { transform: "scale(1.4)", fill: "none", fillRule: "evenodd", children: /* @__PURE__ */ jsx10( "path", { d: "M12 1C5.9225 1 1 5.9225 1 12C1 16.8675 4.14875 20.9787 8.52125 22.4362C9.07125 22.5325 9.2775 22.2025 9.2775 21.9137C9.2775 21.6525 9.26375 20.7862 9.26375 19.865C6.5 20.3737 5.785 19.1912 5.565 18.5725C5.44125 18.2562 4.905 17.28 4.4375 17.0187C4.0525 16.8125 3.5025 16.3037 4.42375 16.29C5.29 16.2762 5.90875 17.0875 6.115 17.4175C7.105 19.0812 8.68625 18.6137 9.31875 18.325C9.415 17.61 9.70375 17.1287 10.02 16.8537C7.5725 16.5787 5.015 15.63 5.015 11.4225C5.015 10.2262 5.44125 9.23625 6.1425 8.46625C6.0325 8.19125 5.6475 7.06375 6.2525 5.55125C6.2525 5.55125 7.17375 5.2625 9.2775 6.67875C10.1575 6.43125 11.0925 6.3075 12.0275 6.3075C12.9625 6.3075 13.8975 6.43125 14.7775 6.67875C16.8813 5.24875 17.8025 5.55125 17.8025 5.55125C18.4075 7.06375 18.0225 8.19125 17.9125 8.46625C18.6138 9.23625 19.04 10.2125 19.04 11.4225C19.04 15.6437 16.4688 16.5787 14.0213 16.8537C14.42 17.1975 14.7638 17.8575 14.7638 18.8887C14.7638 20.36 14.75 21.5425 14.75 21.9137C14.75 22.2025 14.9563 22.5462 15.5063 22.4362C19.8513 20.9787 23 16.8537 23 12C23 5.9225 18.0775 1 12 1Z", fill: logoFills.path } ) }) }); return /* @__PURE__ */ jsx10( SocialBadge, { ...props, platformName: "GitHub", colors, logoComponent: gitHubLogo, iconType, viewBoxWidth: 220, countGroupX: 172, theme } ); }; export { FacebookBadge, GitHubBadge, HackerNewsBadge, InstagramBadge, LinkedInBadge, LovableBadge, MicroLaunchBadge, RedditBadge, SocialBadge, TwitterBadge };