{"version":3,"file":"MiniCardGrid.BaMFU2y5.mjs","names":["React.useState","React.Fragment","p"],"sources":["https:/framerusercontent.com/modules/l9mnCDjXZrwpECEP3B1B/lPXnN0htbYI7LIlo48g4/MiniCardGrid.js"],"sourcesContent":["/**\n * MiniCardGrid — Compact centered cards for \"helper\" / \"chip\" style rows.\n *\n * Renders BOTH of these pricing-page patterns from one component:\n *   • Provider chips  — bold name + muted subtitle            (2 lines)\n *   • Plan helper      — bold criterion + accent plan + muted desc (3 lines)\n *\n * The accent middle line is OPTIONAL — it appears only when a card has 3 parts.\n *\n * ─── DATA FORMAT ─────────────────────────────────────────────────────────────\n * One card per line, fields separated by \" | \":\n *\n *   Two fields  →  Title | Description\n *     Vapi | Code-first voice agents\n *\n *   Three fields →  Title | Accent line | Description\n *     1 to 3 clients | Starter | Launching your first branded voice AI offer.\n *\n * Any field may be left blank — that line is simply omitted from the card.\n * Keep the pipes so the remaining fields stay in their slots:\n *      | Starter | Launching your first branded voice AI offer.   (no title)\n *     1 to 3 clients |  | Launching your first branded voice AI offer.  (no accent)\n *\n * Title, accent line, and description support **bold** and [links](url).\n * The content string is bindable to a CMS field or parent prop.\n *\n * ─── RESPONSIVE ──────────────────────────────────────────────────────────────\n * Desktop columns are configurable; collapses to 3 on tablet and 2 (or 1) on mobile.\n *\n * Drop into Framer → Assets → Code → New Component.\n */import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{motion}from\"framer-motion\";import*as React from\"react\";import{TYPE,useResponsiveType}from\"https://framerusercontent.com/modules/kiuy54vFfOwCzYTfyLbF/DdFmE3qF5DLkZsprKFfk/Typography.js\";// ─── Colour utility ───────────────────────────────────────────────────────────\nfunction parseToRgb(color){if(!color)return null;const rgbMatch=color.match(/rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)/);if(rgbMatch)return[parseInt(rgbMatch[1]),parseInt(rgbMatch[2]),parseInt(rgbMatch[3])];const hexMatch=color.match(/^#?([0-9a-fA-F]{3,8})$/);if(hexMatch){let h=hexMatch[1];if(h.length===3)h=h.split(\"\").map(c=>c+c).join(\"\");if(h.length>=6)return[parseInt(h.slice(0,2),16),parseInt(h.slice(2,4),16),parseInt(h.slice(4,6),16)];}return null;}function toRgba(color,alpha){const rgb=parseToRgb(color);if(!rgb)return color;return`rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${alpha})`;}// ─── TYPE map + tag helper ────────────────────────────────────────────────────\nconst TYPE_MAP={h1:TYPE.h1,h2:TYPE.h2,h3:TYPE.h3,h4:TYPE.h4,h5:TYPE.h5,h6:TYPE.h6,button:TYPE.button,paragraph:TYPE.blogParagraph};function tagFromStyle(s){return s===\"button\"||s===\"paragraph\"?\"p\":s;}const STYLE_OPTIONS=[\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"button\",\"paragraph\"];const STYLE_TITLES=[\"H1\",\"H2\",\"H3\",\"H4\",\"H5\",\"H6\",\"Button\",\"Paragraph\"];const HORIZONTAL_OPTIONS=[\"left\",\"center\",\"right\"];const HORIZONTAL_TITLES=[\"Left\",\"Center\",\"Right\"];const VERTICAL_OPTIONS=[\"top\",\"center\",\"bottom\"];const VERTICAL_TITLES=[\"Top\",\"Center\",\"Bottom\"];// ─── Inline markdown parser ───────────────────────────────────────────────────\nfunction sanitizeHref(rawHref){const href=rawHref.trim();if(!href)return null;const lower=href.toLowerCase();if(lower.startsWith(\"javascript:\")||lower.startsWith(\"data:\")||lower.startsWith(\"vbscript:\")){return null;}if(lower.startsWith(\"http://\")||lower.startsWith(\"https://\")||lower.startsWith(\"mailto:\")||lower.startsWith(\"tel:\")||lower.startsWith(\"/\")){return href;}return null;}function isExternalHref(href){return/^https?:\\/\\//i.test(href);}function InlineMarkdownLink({href,label,linkColor}){const[hovered,setHovered]=React.useState(false);const external=isExternalHref(href);return /*#__PURE__*/_jsx(\"a\",{href:href,style:{color:linkColor,textDecoration:hovered?\"underline\":\"none\"},target:external?\"_blank\":undefined,rel:external?\"noopener noreferrer\":undefined,onMouseEnter:()=>setHovered(true),onMouseLeave:()=>setHovered(false),children:label});}function parseInline(text,linkColor){const nodes=[];const pat=/(\\*\\*\\[([^\\]]+)\\]\\(([^)]+)\\)\\*\\*|\\*\\*([^*]+)\\*\\*|\\[([^\\]]+)\\]\\(([^)]+)\\))/g;let last=0,m;while((m=pat.exec(text))!==null){if(m.index>last)nodes.push(text.slice(last,m.index));const full=m[0];if(full.startsWith(\"**[\")){const safeHref=sanitizeHref(m[3]);nodes.push(/*#__PURE__*/_jsx(\"strong\",{children:safeHref?/*#__PURE__*/_jsx(InlineMarkdownLink,{href:safeHref,label:m[2],linkColor:linkColor}):m[2]},m.index));}else if(full.startsWith(\"**\")){nodes.push(/*#__PURE__*/_jsx(\"strong\",{children:m[4]},m.index));}else{const safeHref=sanitizeHref(m[6]);nodes.push(safeHref?/*#__PURE__*/_jsx(InlineMarkdownLink,{href:safeHref,label:m[5],linkColor:linkColor},m.index):/*#__PURE__*/_jsx(React.Fragment,{children:m[5]},m.index));}last=m.index+full.length;}if(last<text.length)nodes.push(text.slice(last));return nodes;}// ─── Parser ───────────────────────────────────────────────────────────────────\nfunction parseCards(raw){if(!raw?.trim())return[];return raw.split(\"\\n\").map(l=>l.trim()).filter(Boolean).map(line=>{const parts=line.split(\"|\").map(s=>s.trim());if(parts.length>=3)return{title:parts[0],accent:parts[1],description:parts.slice(2).join(\" \")};if(parts.length===2)return{title:parts[0],accent:\"\",description:parts[1]};return{title:parts[0]||\"\",accent:\"\",description:\"\"};})// Keep any card with at least one non-empty field — a blank title (e.g.\n// \" | Starter | Copy…\") is valid and just omits the title line.\n.filter(c=>c.title||c.accent||c.description);}// ─── Defaults ─────────────────────────────────────────────────────────────────\nconst DEFAULT_CONTENT=`1 to 3 clients | Starter | Launching your first branded voice AI offer.\n5 to 15 clients | Growth | Ready to rebill clients in-app through Stripe.\n15+ clients | Scale | Unlimited clients and all 5 provider platforms.\nBuilding a SaaS | Pro | Your own AI call centre and SaaS creator.`;const defaultProps={showHeader:false,eyebrow:\"\",heading:\"\",headingStyle:\"h2\",headerDescription:\"\",content:DEFAULT_CONTENT,columns:4,titleStyle:\"h5\",accentFirst:false,horizontalAlign:\"center\",verticalAlign:\"center\",accentColor:\"#5a40f0\",cardBg:\"#ffffff\",cardBorder:\"#ece9f6\",titleColor:\"#16142a\",descriptionColor:\"#4b4868\",cardRadius:14,cardPadding:20,gap:16,showShadow:true,animate:true};// ─── Card view ────────────────────────────────────────────────────────────────\nfunction CardView({card,p,titleTypeStyle,bodyTypeStyle}){const TitleTag=tagFromStyle(p.titleStyle);const alignItemsMap={left:\"flex-start\",center:\"center\",right:\"flex-end\"};const justifyContentMap={top:\"flex-start\",center:\"center\",bottom:\"flex-end\"};const accentEl=card.accent?/*#__PURE__*/_jsx(\"div\",{style:{...titleTypeStyle,color:p.accentColor,fontWeight:700,margin:\"2px 0\",textAlign:p.horizontalAlign},children:parseInline(card.accent,p.accentColor)},\"accent\"):null;const titleEl=card.title?/*#__PURE__*/_jsx(TitleTag,{style:{margin:0,...titleTypeStyle,color:p.titleColor,textTransform:\"none\",textAlign:p.horizontalAlign},children:parseInline(card.title,p.accentColor)},\"title\"):null;return /*#__PURE__*/_jsxs(\"div\",{style:{background:p.cardBg,border:`1px solid ${p.cardBorder}`,borderRadius:`${p.cardRadius}px`,padding:`${p.cardPadding}px`,boxShadow:p.showShadow?`0 1px 2px ${toRgba(p.titleColor,.05)}, 0 8px 22px ${toRgba(p.titleColor,.06)}`:\"none\",boxSizing:\"border-box\",width:\"100%\",height:\"100%\",display:\"flex\",flexDirection:\"column\",alignItems:alignItemsMap[p.horizontalAlign],justifyContent:justifyContentMap[p.verticalAlign],textAlign:p.horizontalAlign,gap:\"4px\"},children:[p.accentFirst?[accentEl,titleEl]:[titleEl,accentEl],card.description?/*#__PURE__*/_jsx(\"p\",{style:{margin:0,...bodyTypeStyle,fontSize:\"13px\",lineHeight:1.5,color:p.descriptionColor,textAlign:p.horizontalAlign},children:parseInline(card.description,p.accentColor)}):null]});}// ─── Component ────────────────────────────────────────────────────────────────\nexport function MiniCardGrid(props){const p={...defaultProps,...props};const[width,setWidth]=React.useState(1280);React.useEffect(()=>{const check=()=>setWidth(window.innerWidth);check();window.addEventListener(\"resize\",check);return()=>window.removeEventListener(\"resize\",check);},[]);const titleTypeStyle=useResponsiveType(TYPE_MAP[p.titleStyle]);const bodyTypeStyle=useResponsiveType(TYPE.blogParagraph);const headingTypeStyle=useResponsiveType(TYPE_MAP[p.headingStyle]);const eyebrowTypeStyle=useResponsiveType(TYPE.h6);const HeadingTag=tagFromStyle(p.headingStyle);const cards=parseCards(p.content);// Responsive columns: desktop → 3 on tablet → 2 (or 1 for ≤3 cols) on mobile.\nconst effectiveCols=width<600?p.columns>=4?2:1:width<1024?Math.min(3,p.columns):p.columns;return /*#__PURE__*/_jsxs(motion.section,{style:{width:\"100%\",boxSizing:\"border-box\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",gap:\"24px\"},initial:p.animate?{opacity:0,y:12}:undefined,whileInView:p.animate?{opacity:1,y:0}:undefined,viewport:{once:true,margin:\"-40px\"},transition:{duration:.4,ease:\"easeOut\"},children:[p.showHeader?/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",gap:\"10px\",textAlign:\"center\",maxWidth:\"640px\"},children:[p.eyebrow?/*#__PURE__*/_jsx(\"span\",{style:{...eyebrowTypeStyle,color:p.accentColor,letterSpacing:\"0.12em\",textTransform:\"uppercase\",fontWeight:700},children:p.eyebrow}):null,p.heading?/*#__PURE__*/_jsx(HeadingTag,{style:{margin:0,...headingTypeStyle,color:p.titleColor,textTransform:\"none\"},children:p.heading}):null,p.headerDescription?/*#__PURE__*/_jsx(\"p\",{style:{margin:0,...bodyTypeStyle,color:p.descriptionColor},children:parseInline(p.headerDescription,p.accentColor)}):null]}):null,/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",justifyContent:\"center\",alignItems:\"stretch\",gap:`${p.gap}px`,width:\"100%\"},children:[cards.map((card,i)=>{// Each card takes one column's width; the row wraps and centers.\nconst basis=`calc((100% - ${(effectiveCols-1)*p.gap}px) / ${effectiveCols})`;return /*#__PURE__*/_jsx(\"div\",{style:{flex:`0 0 ${basis}`,maxWidth:basis,display:\"flex\"},children:/*#__PURE__*/_jsx(CardView,{card:card,p:p,titleTypeStyle:titleTypeStyle,bodyTypeStyle:bodyTypeStyle})},i);}),cards.length===0?/*#__PURE__*/_jsx(\"p\",{style:{...bodyTypeStyle,color:p.descriptionColor,opacity:.4,margin:0},children:\"No cards found — check your content format in the property panel.\"}):null]})]});}MiniCardGrid.defaultProps=defaultProps;// ─── Property controls ────────────────────────────────────────────────────────\n// Order: Content → Typography → Layout → Colors → Spacing → Animation\naddPropertyControls(MiniCardGrid,{// ── Header ──\nshowHeader:{type:ControlType.Boolean,title:\"Show Header\",defaultValue:false},eyebrow:{type:ControlType.String,title:\"↳ Eyebrow\",defaultValue:\"\",hidden:p=>!p.showHeader},heading:{type:ControlType.String,title:\"↳ Heading\",defaultValue:\"\",displayTextArea:true,hidden:p=>!p.showHeader},headingStyle:{type:ControlType.Enum,title:\"↳ Heading Style\",options:STYLE_OPTIONS,optionTitles:STYLE_TITLES,defaultValue:\"h2\",description:\"Applies size, weight, line-height and letter-spacing from the type scale. Sets the HTML tag automatically.\",hidden:p=>!p.showHeader},headerDescription:{type:ControlType.String,title:\"↳ Description\",defaultValue:\"\",displayTextArea:true,hidden:p=>!p.showHeader},// ── Cards ──\ncontent:{type:ControlType.String,title:\"Cards\",defaultValue:DEFAULT_CONTENT,displayTextArea:true,description:`One card per line, fields separated by \" | \".\n\nTwo fields → Title | Description\n  Vapi | Code-first voice agents\n\nThree fields → Title | Accent line | Description\n  1 to 3 clients | Starter | Launching your first branded voice AI offer.\n\nLeave a field blank to drop that line — keep the pipes:\n   | Starter | Launching your first branded voice AI offer.\n\nAll fields support **bold** and [links](url). Bindable to CMS or parent prop.`},columns:{type:ControlType.Enum,title:\"Columns (desktop)\",options:[2,3,4,5,6],optionTitles:[\"2\",\"3\",\"4\",\"5\",\"6\"],defaultValue:4,description:\"Columns on desktop (≥1024px). Collapses to 3 on tablet and 2 (or 1) on mobile.\"},titleStyle:{type:ControlType.Enum,title:\"Title Style\",options:STYLE_OPTIONS,optionTitles:STYLE_TITLES,defaultValue:\"h5\",description:\"Applies size, weight, line-height and letter-spacing from the type scale. The accent line uses the same size.\"},accentFirst:{type:ControlType.Boolean,title:\"Accent On Top\",defaultValue:false,description:'Puts the accent line above the title (e.g. \"SOC 2\" over \"SOC 2 Type 2\") instead of below it.'},horizontalAlign:{type:ControlType.Enum,title:\"Horizontal Align\",options:HORIZONTAL_OPTIONS,optionTitles:HORIZONTAL_TITLES,defaultValue:\"center\"},verticalAlign:{type:ControlType.Enum,title:\"Vertical Align\",options:VERTICAL_OPTIONS,optionTitles:VERTICAL_TITLES,defaultValue:\"center\"},// ── Colors ──\naccentColor:{type:ControlType.Color,title:\"Accent Color\",defaultValue:defaultProps.accentColor,description:\"The middle accent line (e.g. the plan name) and any links.\"},cardBg:{type:ControlType.Color,title:\"Card Background\",defaultValue:defaultProps.cardBg},cardBorder:{type:ControlType.Color,title:\"Card Border\",defaultValue:defaultProps.cardBorder},titleColor:{type:ControlType.Color,title:\"Title Color\",defaultValue:defaultProps.titleColor},descriptionColor:{type:ControlType.Color,title:\"Description Color\",defaultValue:defaultProps.descriptionColor},// ── Spacing & shape ──\ncardRadius:{type:ControlType.Number,title:\"Card Radius\",defaultValue:14,min:0,max:36,step:2,displayStepper:true},cardPadding:{type:ControlType.Number,title:\"Card Padding\",defaultValue:20,min:8,max:48,step:2,displayStepper:true},gap:{type:ControlType.Number,title:\"Grid Gap\",defaultValue:16,min:0,max:48,step:2,displayStepper:true},showShadow:{type:ControlType.Boolean,title:\"Show Shadow\",defaultValue:true},// ── Animation ──\nanimate:{type:ControlType.Boolean,title:\"Entrance Animation\",defaultValue:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"MiniCardGrid\":{\"type\":\"reactComponent\",\"name\":\"MiniCardGrid\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MiniCardGrid.map"],"mappings":"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"}