{"version":3,"file":"TextareaToBlockquote.CSCFk07A.mjs","names":["useState","useMemo","useCallback"],"sources":["https:/framerusercontent.com/modules/PppIfk3iy4nvDlJdiYfU/YPR2a5s41ffvlBrZvagO/TextareaToBlockquote.js"],"sourcesContent":["// Instructions utilisateur : créer un composant texte qui prend un input via une textarea, permettre de définir le style de police, et produire en sortie une balise <blockquote> sans style. Supprimer les paramètres fond/bordure/rayon/padding. Corriger pour ne voir le texte qu’une seule fois. Supprimer les paramètres lignes et placeholder.\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";import{startTransition,useCallback,useEffect,useMemo,useState}from\"react\";/**\n * Textarea → Blockquote\n *\n * @framerIntrinsicWidth 420\n * @framerIntrinsicHeight 200\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function TextareaToBlockquote(props){const isStatic=useIsStaticRenderer();const{text,font,textColor,style}=props;const[value,setValue]=useState(text);// Sync state when changed from Framer property panel\nuseEffect(()=>{startTransition(()=>setValue(text));},[text]);const canEditInline=useMemo(()=>{if(isStatic)return false;return RenderTarget.current()===RenderTarget.canvas;},[isStatic]);const onChange=useCallback(e=>{const next=e.target.value;startTransition(()=>setValue(next));},[]);const textareaStyle=useMemo(()=>({width:\"100%\",height:\"100%\",resize:\"none\",boxSizing:\"border-box\",outline:\"none\",border:\"none\",background:\"transparent\",padding:0,margin:0,color:textColor,...font}),[font,textColor]);return /*#__PURE__*/_jsx(\"div\",{style:{...style,position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",padding:0,color:textColor,...font},children:canEditInline?/*#__PURE__*/_jsx(\"textarea\",{value:value,onChange:onChange,\"aria-label\":\"Texte\",spellCheck:false,style:textareaStyle}):// Output: blockquote sans style\n/*#__PURE__*/_jsx(\"blockquote\",{style:{margin:0,padding:0},children:value})});}addPropertyControls(TextareaToBlockquote,{text:{type:ControlType.String,title:\"Texte\",defaultValue:\"Votre citation…\",displayTextArea:true},font:{type:ControlType.Font,title:\"Police\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"15px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.3em\"}},textColor:{type:ControlType.Color,title:\"Couleur\",defaultValue:\"#000000\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TextareaToBlockquote\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"200\",\"framerIntrinsicWidth\":\"420\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextareaToBlockquote.map"],"mappings":"iNASG,SAAwB,EAAqB,EAAM,CAAC,IAAM,EAAS,GAAqB,CAAM,CAAC,OAAK,OAAK,YAAU,SAAO,EAAW,CAAC,EAAM,GAAUA,EAAS,EAAK,CACvK,MAAc,CAAC,MAAoB,EAAS,EAAK,CAAC,EAAG,CAAC,EAAK,CAAC,CAAC,IAAM,EAAcC,MAAgB,EAAgB,GAAa,EAAa,SAAS,GAAG,EAAa,OAAS,CAAC,EAAS,CAAC,CAAO,EAASC,EAAY,GAAG,CAAC,IAAM,EAAK,EAAE,OAAO,MAAM,MAAoB,EAAS,EAAK,CAAC,EAAG,EAAE,CAAC,CAAO,EAAcD,OAAa,CAAC,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,UAAU,aAAa,QAAQ,OAAO,OAAO,OAAO,WAAW,cAAc,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAU,GAAG,EAAK,EAAE,CAAC,EAAK,EAAU,CAAC,CAAC,OAAoB,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAM,SAAS,WAAW,MAAM,OAAO,OAAO,OAAO,SAAS,SAAS,QAAQ,EAAE,MAAM,EAAU,GAAG,EAAK,CAAC,SAAS,EAA2B,EAAK,WAAW,CAAO,QAAe,WAAS,aAAa,QAAQ,WAAW,GAAM,MAAM,EAAc,CAAC,CACxwB,EAAK,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAM,CAAC,CAAC,CAAC,kBAVlC,IAAqF,IAA0E,CAU3H,EAAoB,EAAqB,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,kBAAkB,gBAAgB,GAAK,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,SAAS,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,OAAO,QAAQ,SAAS,cAAc,UAAU,WAAW,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,UAAU,aAAa,UAAU,CAAC,CAAC"}