{"version":3,"file":"CopyCodeButton.CXERpC40.mjs","names":["useState","_Fragment"],"sources":["https:/framerusercontent.com/modules/wXqigQr1rkuDfl5kDA1U/MKAsDE0Mq3iUIZcVtTog/CopyCodeButton.js"],"sourcesContent":["/**\n * CopyCodeButton — Code block with syntax highlighting + copy button\n *\n * v2.1 (2026-09-30): focus-visible ring, hover (gated by hover:hover), aria-live result, Chivo Mono.\n * v3 (round 8): \"Terminal\" frame (Figma Code/Install terminal 192:40 / R6-04 290:201): window bar with\n * title + Copy, Figma palette, optional comment line and a link under the block (air-gapped guide).\n * v3.1 (round 9): \"Button\" frame, a one-line \"Copy install command\" button (same copy + live region,\n * optional link under it) for tight spots such as the phone hero, where the full command wraps to 5 lines.\n * v3.2 (2026-10-02, r12, staging QA F12): the <style> goes in through dangerouslySetInnerHTML. React 18 escapes\n * quotes in <style> text on the server ([data-copied=&quot;true&quot;]), the client text differs, and hydration\n * failed with error #425 on every page with this component.\n * Colors use Juno's design system tokens.\n */import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState}from\"react\";// ─── Bash tokenizer ──────────────────────────────────────────────────────────\nconst BASH_COMMANDS=new Set([\"curl\",\"grep\",\"cut\",\"bash\",\"sed\",\"awk\",\"sort\",\"uniq\",\"head\",\"tail\",\"cat\",\"echo\",\"export\",\"cd\",\"ls\",\"find\",\"xargs\",\"wc\",\"tr\",\"tee\",\"sh\",\"python\",\"python3\",\"pip\",\"npm\",\"yarn\",\"node\",\"helm\",\"kubectl\",\"docker\",\"git\",\"make\",\"sudo\",\"chmod\",\"chown\",\"mkdir\",\"rm\",\"cp\",\"mv\",\"which\",\"source\",\"env\",\"read\",\"printf\",\"test\",\"true\",\"false\",\"set\",\"unset\",\"exec\",\"eval\",\"ssh\",\"scp\"]);const T={command:\"rgb(52, 213, 131)\",flag:\"rgb(154, 154, 163)\",url:\"rgb(147, 197, 253)\",operator:\"rgb(244, 166, 29)\",string:\"rgb(56, 189, 248)\",number:\"rgb(244, 166, 29)\",plain:\"rgb(201, 201, 207)\"};function tokenizeBash(input){const tokens=[];let i=0;const s=input;while(i<s.length){// Single-quoted string: consume up to (and including) next '\nif(s[i]===\"'\"){let j=i+1;while(j<s.length&&s[j]!==\"'\")j++;if(j<s.length)j++;tokens.push({value:s.slice(i,j),color:T.string});i=j;continue;}// URL — must check before word scanner\nconst urlM=s.slice(i).match(/^https?:\\/\\/[^\\s\"')]+/);if(urlM){tokens.push({value:urlM[0],color:T.url});i+=urlM[0].length;continue;}// $( subshell opener\nif(s[i]===\"$\"&&s[i+1]===\"(\"){tokens.push({value:\"$(\",color:T.operator});i+=2;continue;}// ) closing paren\nif(s[i]===\")\"){tokens.push({value:\")\",color:T.operator});i++;continue;}// Pipe or || \nif(s[i]===\"|\"){const v=s[i+1]===\"|\"?\"||\":\"|\";tokens.push({value:v,color:T.operator});i+=v.length;continue;}// &&\nif(s[i]===\"&\"&&s[i+1]===\"&\"){tokens.push({value:\"&&\",color:T.operator});i+=2;continue;}// >> or >\nif(s[i]===\">\"){const v=s[i+1]===\">\"?\">>\":\">\";tokens.push({value:v,color:T.operator});i+=v.length;continue;}// Flag: - or -- followed by a letter\nif(s[i]===\"-\"&&i+1<s.length&&/[a-zA-Z-]/.test(s[i+1])){const flagM=s.slice(i).match(/^-{1,2}[a-zA-Z][-\\w]*/);if(flagM){tokens.push({value:flagM[0],color:T.flag});i+=flagM[0].length;continue;}}// Word (command or plain identifier — allow hyphens for slug-style names)\nif(/[a-zA-Z_]/.test(s[i])){const wordM=s.slice(i).match(/^[a-zA-Z_][a-zA-Z0-9_./-]*/);if(wordM){const word=wordM[0];const color=BASH_COMMANDS.has(word)?T.command:T.plain;tokens.push({value:word,color});i+=word.length;continue;}}// Standalone number (preceded by whitespace, pipe, or paren)\nif(/\\d/.test(s[i])){const prev=i===0?\" \":s[i-1];if(/[\\s|&(]/.test(prev)){const numM=s.slice(i).match(/^\\d+/);if(numM){tokens.push({value:numM[0],color:T.number});i+=numM[0].length;continue;}}}// Horizontal whitespace — preserve as plain\nif(/[ \\t]/.test(s[i])){let j=i;while(j<s.length&&/[ \\t]/.test(s[j]))j++;tokens.push({value:s.slice(i,j),color:T.plain});i=j;continue;}// Newline\nif(s[i]===\"\\n\"){tokens.push({value:\"\\n\",color:T.plain});i++;continue;}// Everything else: single character, plain\ntokens.push({value:s[i],color:T.plain});i++;}return tokens;}// ─── Component ───────────────────────────────────────────────────────────────\n// motion scale: keep in sync (EASE also in ScreenRotator, LaunchHero, StackFlow, WhyArch, FieldSwitcher)\nconst EASE=\"cubic-bezier(0.22,1,0.36,1)\";const CSS=`\n.jcc-btn{transition:color .15s ${EASE},background-color .15s ${EASE},border-color .15s ${EASE};outline:none}\n@media (hover:hover){.jcc-btn:not([data-copied=\"true\"]):hover{color:#E4E4E7;border-color:rgba(154,154,163,.4)}}\n.jcc-btn:focus-visible{box-shadow:0 0 0 2px #60A5FA;color:#E4E4E7;border-color:rgba(154,154,163,.4)}\n.jcc-ok{display:inline-block;animation:jcc-pop .15s ${EASE}}\n@keyframes jcc-pop{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}\n.jcc-link:focus-visible{outline:2px solid #60A5FA;outline-offset:2px;border-radius:4px}\n.jcc-arrow{display:inline-block;transition:transform .15s ${EASE}}\n@media (hover:hover){.jcc-link:hover{color:#BFDBFE!important}.jcc-link:hover .jcc-arrow{transform:translateX(3px)}}\n@media (prefers-reduced-motion:reduce){.jcc-btn{transition:none}.jcc-ok{animation:none}}\n`;// Figma Code/Install terminal palette (Terminal frame): commands orange, strings/URLs green, pipes sky\nconst TERM={[T.command]:\"#F4A61D\",[T.flag]:\"#E6E6E9\",[T.url]:\"#34D583\",[T.operator]:\"#38BDF8\",[T.string]:\"#34D583\",[T.number]:\"#E6E6E9\",[T.plain]:\"#E6E6E9\"};async function copyText(code){try{await navigator.clipboard.writeText(code);}catch{const el=document.createElement(\"textarea\");el.value=code;el.style.position=\"fixed\";el.style.opacity=\"0\";document.body.appendChild(el);el.focus();el.select();document.execCommand(\"copy\");document.body.removeChild(el);}}export default function CopyCodeButton({code=\"\",language=\"bash\",showPrompt=false,feedbackSeconds=2,frame=\"Plain\",buttonLabel=\"Copy install command\",title=\"bash\",comment=\"\",linkText=\"\",linkUrl=\"\",bodyHeight=0,style}){const[copied,setCopied]=useState(false);const term=frame===\"Terminal\";const handleCopy=async()=>{await copyText(code);setCopied(true);setTimeout(()=>setCopied(false),Math.max(.5,feedbackSeconds)*1e3);};const tokens=language===\"bash\"?tokenizeBash(code):[];const color=c=>term?TERM[c]||\"#E6E6E9\":c;const live=/*#__PURE__*/_jsx(\"span\",{\"aria-live\":\"polite\",style:{position:\"absolute\",width:1,height:1,overflow:\"hidden\",clip:\"rect(0 0 0 0)\",whiteSpace:\"nowrap\"},children:copied?\"Copied to clipboard\":\"\"});const btn=extra=>/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"jcc-btn\",\"data-copied\":copied,onClick:handleCopy,style:{fontFamily:\"'Montserrat', sans-serif\",fontSize:term?\"12px\":\"11px\",fontWeight:term?500:600,letterSpacing:term?\"0\":\"0.04em\",color:copied?\"rgb(52, 213, 131)\":term?\"#C9C9CF\":\"rgb(154, 154, 163)\",backgroundColor:copied?\"rgba(52, 213, 131, 0.08)\":term?\"transparent\":\"rgba(154, 154, 163, 0.08)\",border:`1px solid ${copied?\"rgba(52, 213, 131, 0.25)\":term?\"#3B3B42\":\"rgba(154, 154, 163, 0.2)\"}`,borderRadius:term?\"7px\":\"5px\",padding:term?\"5px 10px\":\"4px 10px\",cursor:\"pointer\",userSelect:\"none\",display:\"inline-flex\",alignItems:\"center\",gap:6,...extra},children:copied?/*#__PURE__*/_jsx(\"span\",{className:\"jcc-ok\",children:\"✓ Copied\"}):/*#__PURE__*/_jsxs(_Fragment,{children:[term&&/*#__PURE__*/_jsxs(\"svg\",{width:\"13\",height:\"13\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.8\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"rect\",{x:\"8\",y:\"8\",width:\"12\",height:\"12\",rx:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M16 8V5.5A1.5 1.5 0 0 0 14.5 4h-9A1.5 1.5 0 0 0 4 5.5v9A1.5 1.5 0 0 0 5.5 16H8\"})]}),\"Copy\"]})});const codeEl=/*#__PURE__*/_jsxs(\"pre\",{style:{margin:0,paddingRight:term?0:\"64px\",fontFamily:\"'Chivo Mono', ui-monospace, monospace\",fontSize:term?\"14px\":\"13px\",lineHeight:term?\"1.75\":\"1.65\",whiteSpace:\"pre-wrap\",// r15: break long tokens (the URL) only when needed; words like \"prompts.\" wrap at spaces, no 1-letter orphans\nwordBreak:\"normal\",overflowWrap:\"anywhere\"},children:[(showPrompt||term)&&/*#__PURE__*/_jsx(\"span\",{style:{color:term?\"#9A9AA3\":\"rgb(244, 166, 29)\",userSelect:\"none\",marginRight:\"8px\"},children:\"$\"}),language===\"bash\"&&tokens.length>0?tokens.map((tk,idx)=>/*#__PURE__*/_jsx(\"span\",{style:{color:color(tk.color)},children:tk.value},idx)):/*#__PURE__*/_jsx(\"span\",{style:{color:term?\"#E6E6E9\":\"rgb(201, 201, 207)\"},children:code}),term&&comment&&/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",color:\"#9A9AA3\",marginTop:\"18px\"},children:comment.startsWith(\"#\")?comment:\"# \"+comment})]});const linkEl=linkText?/*#__PURE__*/_jsxs(\"a\",{className:\"jcc-link\",href:linkUrl||undefined,target:/^https?:/.test(linkUrl)?\"_blank\":undefined,rel:\"noopener noreferrer\",style:{fontFamily:\"'Montserrat', sans-serif\",fontSize:15,fontWeight:500,color:\"#93C5FD\",textDecoration:\"none\",width:\"fit-content\"},children:[linkText.replace(/\\s*→\\s*$/,\"\"),\" \",/*#__PURE__*/_jsx(\"span\",{className:\"jcc-arrow\",children:\"→\"})]}):null;if(frame===\"Button\"){return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",boxSizing:\"border-box\",display:\"flex\",flexDirection:\"column\",alignItems:\"flex-start\",gap:14,...style},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"jcc-btn\",\"data-copied\":copied,onClick:handleCopy,title:code,style:{fontFamily:\"'Montserrat', sans-serif\",fontSize:\"15px\",fontWeight:600,lineHeight:1,color:copied?\"rgb(52, 213, 131)\":\"#F2F2F3\",backgroundColor:copied?\"rgba(52, 213, 131, 0.08)\":\"#141416\",border:`1px solid ${copied?\"rgba(52, 213, 131, 0.25)\":\"#3B3B42\"}`,borderRadius:10,padding:\"15px 20px\",cursor:\"pointer\",userSelect:\"none\",display:\"inline-flex\",alignItems:\"center\",gap:10,maxWidth:\"100%\"},children:copied?/*#__PURE__*/_jsx(\"span\",{className:\"jcc-ok\",children:\"✓ Copied\"}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":true,style:{fontFamily:\"'Chivo Mono', ui-monospace, monospace\",fontSize:14,color:\"#9A9AA3\"},children:\"$\"}),buttonLabel,/*#__PURE__*/_jsxs(\"svg\",{width:\"15\",height:\"15\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.8\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"rect\",{x:\"8\",y:\"8\",width:\"12\",height:\"12\",rx:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M16 8V5.5A1.5 1.5 0 0 0 14.5 4h-9A1.5 1.5 0 0 0 4 5.5v9A1.5 1.5 0 0 0 5.5 16H8\"})]})]})}),live,linkEl]});}if(term){return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",boxSizing:\"border-box\",display:\"flex\",flexDirection:\"column\",gap:14,...style},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),/*#__PURE__*/_jsxs(\"div\",{style:{backgroundColor:\"#141416\",border:\"1px solid #26262B\",borderRadius:\"14px\",overflow:\"hidden\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:8,padding:\"10px 12px 10px 18px\",borderBottom:\"1px solid #26262B\",background:\"#18181B\"},children:[[0,1,2].map(k=>/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":true,style:{width:10,height:10,borderRadius:9,background:\"#3B3B42\"}},k)),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:\"'Chivo Mono', ui-monospace, monospace\",fontSize:13,color:\"#A1A1AA\",marginLeft:14},children:title}),/*#__PURE__*/_jsx(\"span\",{style:{flex:1}}),btn({})]}),/*#__PURE__*/_jsx(\"div\",{style:{padding:\"22px 24px\",minHeight:bodyHeight?bodyHeight:undefined,boxSizing:\"border-box\"},children:codeEl}),live]}),linkEl]});}return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",backgroundColor:\"rgb(14, 14, 16)\",borderRadius:\"12px\",border:\"1px solid rgb(46, 46, 51)\",padding:\"20px 24px\",width:\"100%\",boxSizing:\"border-box\",...style},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),btn({position:\"absolute\",top:\"12px\",right:\"12px\"}),live,codeEl]});}addPropertyControls(CopyCodeButton,{code:{type:ControlType.String,title:\"Code\",displayTextArea:true,defaultValue:'curl -sL \"$(curl -s https://api.github.com/repos/juno-fx/Juno-Bootstrap/releases/latest | grep browser_download_url | grep orion-install-helper | cut -d \\'\"\\' -f 4)\" | bash -'},language:{type:ControlType.Enum,title:\"Language\",options:[\"bash\",\"plain\"],optionTitles:[\"Bash / Shell\",\"Plain text\"],defaultValue:\"bash\"},frame:{type:ControlType.Enum,title:\"Frame\",options:[\"Plain\",\"Terminal\",\"Button\"],displaySegmentedControl:true,defaultValue:\"Plain\"},buttonLabel:{type:ControlType.String,title:\"Button label\",defaultValue:\"Copy install command\",hidden:p=>p.frame!==\"Button\"},title:{type:ControlType.String,title:\"Title\",defaultValue:\"bash\",hidden:p=>p.frame!==\"Terminal\"},comment:{type:ControlType.String,title:\"Comment\",defaultValue:\"\",hidden:p=>p.frame!==\"Terminal\"},linkText:{type:ControlType.String,title:\"Link text\",defaultValue:\"\",hidden:p=>p.frame===\"Plain\"},linkUrl:{type:ControlType.Link,title:\"Link\",hidden:p=>p.frame===\"Plain\"},bodyHeight:{type:ControlType.Number,title:\"Body height\",min:0,max:600,step:10,unit:\"px\",defaultValue:0,description:\"0 = fit content\",hidden:p=>p.frame!==\"Terminal\"},showPrompt:{type:ControlType.Boolean,title:\"Show $ prompt\",defaultValue:false,hidden:p=>p.frame!==\"Plain\"},feedbackSeconds:{type:ControlType.Number,title:\"Copied label (s)\",defaultValue:2,min:.5,max:6,step:.5}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CopyCodeButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CopyCodeButton.map"],"mappings":"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"}