{"version":3,"file":"CopyableTextBlock.C74WMfOl.mjs","names":["React.useState","React.useRef","React.useCallback","React.useMemo"],"sources":["https:/framerusercontent.com/modules/hYsLsDCUM4KUeX06BA1v/tZxkAD9z4aj7pKjAGsmi/CopyableTextBlock.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */export default function CopyableTextBlock(props){const{headerLabel,content,backgroundColor,headerColor,textColor,borderColor,iconColor,successColor,cornerRadius,headerHeight,bodyPadding,font,fontSize,lineHeight,wrapText,successDuration}=props;const[copyState,setCopyState]=React.useState(\"idle\");const[announcement,setAnnouncement]=React.useState(\"\");const[isFocusVisible,setIsFocusVisible]=React.useState(false);const[prefersReducedMotion,setPrefersReducedMotion]=React.useState(false);const resetTimeoutRef=React.useRef(null);React.useEffect(()=>{if(typeof window===\"undefined\"||typeof window.matchMedia!==\"function\")return;const mediaQuery=window.matchMedia(\"(prefers-reduced-motion: reduce)\");setPrefersReducedMotion(mediaQuery.matches);const onChange=event=>{React.startTransition(()=>setPrefersReducedMotion(event.matches));};if(typeof mediaQuery.addEventListener===\"function\"){mediaQuery.addEventListener(\"change\",onChange);return()=>mediaQuery.removeEventListener(\"change\",onChange);}mediaQuery.addListener(onChange);return()=>mediaQuery.removeListener(onChange);},[]);const clearResetTimeout=React.useCallback(()=>{if(resetTimeoutRef.current!==null&&typeof window!==\"undefined\"){window.clearTimeout(resetTimeoutRef.current);resetTimeoutRef.current=null;}},[]);React.useEffect(()=>{return()=>clearResetTimeout();},[clearResetTimeout]);const scheduleReset=React.useCallback(()=>{clearResetTimeout();if(typeof window===\"undefined\")return;resetTimeoutRef.current=window.setTimeout(()=>{React.startTransition(()=>{setCopyState(\"idle\");setAnnouncement(\"\");});},Math.max(0,successDuration)*1e3);},[clearResetTimeout,successDuration]);const copyWithFallback=React.useCallback(value=>{if(typeof document===\"undefined\")return false;const textarea=document.createElement(\"textarea\");textarea.value=value;textarea.setAttribute(\"readonly\",\"true\");textarea.style.position=\"fixed\";textarea.style.opacity=\"0\";textarea.style.pointerEvents=\"none\";textarea.style.left=\"-9999px\";document.body.appendChild(textarea);textarea.select();textarea.setSelectionRange(0,textarea.value.length);let succeeded=false;try{succeeded=document.execCommand(\"copy\");}catch(error){succeeded=false;}document.body.removeChild(textarea);return succeeded;},[]);const onCopyClick=React.useCallback(async()=>{clearResetTimeout();if(RenderTarget.current()===RenderTarget.canvas){React.startTransition(()=>{setCopyState(\"error\");setAnnouncement(\"コピーできませんでした\");});scheduleReset();return;}let didCopy=false;if(typeof navigator!==\"undefined\"&&navigator.clipboard?.writeText){try{await navigator.clipboard.writeText(content);didCopy=true;}catch(error){didCopy=copyWithFallback(content);}}else{didCopy=copyWithFallback(content);}if(didCopy){React.startTransition(()=>{setCopyState(\"success\");setAnnouncement(\"コピーしました\");});}else{React.startTransition(()=>{setCopyState(\"error\");setAnnouncement(\"コピーできませんでした\");});}scheduleReset();},[clearResetTimeout,content,copyWithFallback,scheduleReset]);const buttonAriaLabel=React.useMemo(()=>{if(copyState===\"success\")return\"コピーしました\";if(copyState===\"error\")return\"コピーに失敗しました\";return\"コードをコピー\";},[copyState]);const iconTransition=React.useMemo(()=>{return prefersReducedMotion?\"none\":\"color 0.2s ease, opacity 0.2s ease\";},[prefersReducedMotion]);const bodyWhiteSpace=wrapText?\"pre-wrap\":\"pre\";const icon=React.useMemo(()=>{if(copyState===\"success\"){return /*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M20 7L10 17L5 12\",fill:\"none\",stroke:successColor,strokeWidth:\"2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})});}if(copyState===\"error\"){return /*#__PURE__*/_jsxs(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"9\",fill:\"none\",stroke:iconColor,strokeWidth:\"1.8\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M9 9L15 15M15 9L9 15\",fill:\"none\",stroke:iconColor,strokeWidth:\"2.2\",strokeLinecap:\"round\"})]});}return /*#__PURE__*/_jsxs(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"9\",y:\"9\",width:\"11\",height:\"11\",rx:\"2.5\",fill:\"none\",stroke:iconColor,strokeWidth:\"1.8\"}),/*#__PURE__*/_jsx(\"rect\",{x:\"4\",y:\"4\",width:\"11\",height:\"11\",rx:\"2.5\",fill:\"none\",stroke:iconColor,strokeWidth:\"1.8\"})]});},[copyState,iconColor,successColor]);return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"auto\",background:backgroundColor,borderRadius:cornerRadius,border:`1px solid ${borderColor}`,overflow:\"hidden\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{height:headerHeight,display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",padding:\"0 12px 0 16px\",background:headerColor},children:[/*#__PURE__*/_jsx(\"span\",{style:{color:iconColor,fontSize:12,letterSpacing:\"0.02em\",lineHeight:1},children:headerLabel}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",role:\"button\",\"aria-label\":buttonAriaLabel,onClick:onCopyClick,onFocus:event=>{const target=event.currentTarget;if(typeof target.matches===\"function\"&&target.matches(\":focus-visible\")){React.startTransition(()=>setIsFocusVisible(true));}},onBlur:()=>{React.startTransition(()=>setIsFocusVisible(false));},style:{width:44,height:44,minWidth:44,minHeight:44,display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",border:\"none\",background:\"transparent\",color:iconColor,cursor:\"pointer\",borderRadius:10,padding:0,boxShadow:isFocusVisible?`0 0 0 2px ${successColor}`:\"none\",transition:iconTransition},children:/*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",opacity:1,transition:iconTransition},children:icon})})]}),/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:1,background:borderColor}}),/*#__PURE__*/_jsx(\"div\",{style:{padding:bodyPadding,overflowX:wrapText?\"hidden\":\"auto\",overflowY:\"hidden\"},children:/*#__PURE__*/_jsx(\"pre\",{style:{margin:0,color:textColor,whiteSpace:bodyWhiteSpace,fontFamily:font?.fontFamily??'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace',fontSize:fontSize,lineHeight:lineHeight,letterSpacing:font?.letterSpacing,fontStyle:font?.fontStyle,fontWeight:font?.fontWeight,textAlign:font?.textAlign,width:wrapText?\"100%\":\"max-content\",minWidth:\"100%\"},children:content})}),/*#__PURE__*/_jsx(\"span\",{\"aria-live\":\"polite\",style:{position:\"absolute\",width:1,height:1,padding:0,margin:-1,overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",border:0},children:announcement})]});}addPropertyControls(CopyableTextBlock,{headerLabel:{title:\"Header Label\",type:ControlType.String,defaultValue:\"コード\"},content:{title:\"Content\",type:ControlType.String,defaultValue:\"01\\n02\\n03\",displayTextArea:true},backgroundColor:{title:\"Background Color\",type:ControlType.Color,defaultValue:\"#1A1A1A\"},headerColor:{title:\"Header Color\",type:ControlType.Color,defaultValue:\"#202020\"},textColor:{title:\"Text Color\",type:ControlType.Color,defaultValue:\"#E3E3E3\"},borderColor:{title:\"Border Color\",type:ControlType.Color,defaultValue:\"rgba(255,255,255,0.12)\"},iconColor:{title:\"Icon Color\",type:ControlType.Color,defaultValue:\"#A8A8A8\"},successColor:{title:\"Success Color\",type:ControlType.Color,defaultValue:\"#4ADE80\"},cornerRadius:{title:\"Corner Radius\",type:ControlType.Number,defaultValue:16,min:0,max:64,unit:\"px\",step:1},headerHeight:{title:\"Header Height\",type:ControlType.Number,defaultValue:48,min:36,max:120,unit:\"px\",step:1},bodyPadding:{title:\"Body Padding\",type:ControlType.Number,defaultValue:20,min:0,max:64,unit:\"px\",step:1},font:{title:\"Font\",type:ControlType.Font,controls:\"extended\",defaultFontType:\"monospace\",defaultValue:{fontSize:\"14px\",lineHeight:\"1.6em\",letterSpacing:\"0em\",textAlign:\"left\"}},fontSize:{title:\"Font Size\",type:ControlType.Number,defaultValue:14,min:10,max:36,unit:\"px\",step:1},lineHeight:{title:\"Line Height\",type:ControlType.Number,defaultValue:1.6,min:1,max:2.4,step:.1},wrapText:{title:\"Wrap Text\",type:ControlType.Boolean,defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},successDuration:{title:\"Success Duration\",type:ControlType.Number,defaultValue:1.5,min:.5,max:5,step:.1,unit:\"s\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CopyableTextBlock\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CopyableTextBlock.map"],"mappings":"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"}