{"version":3,"file":"PrinterScanText.B3q5GbEE.mjs","names":["useMemo","useRef","useId","useMemo","useState","useCallback","useLayoutEffect","useEffect","startTransition"],"sources":["https:/framerusercontent.com/modules/sbWEZhpbWDNQ64mRZcmT/Tf0ECRTfyblFDXnVL11a/Background_Pattern.js","https:/framerusercontent.com/modules/eQzoD1EpfWT6tZUZ3qT9/Bpk5oOQ3DJZRrdIWDWIN/PrinterScanText.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion}from\"framer-motion\";import{useMemo}from\"react\";// Check if we're in Canvas mode for static rendering\nconst renderContext=RenderTarget.current();const isCanvasMode=renderContext===RenderTarget.canvas;/**\n * BackgroundPattern Component\n * A comprehensive background pattern component supporting 21 different pattern types\n * with optional radial fade effect. Patterns are generated using SVG data URLs for optimal performance\n * All patterns sourced from Hero Patterns (heropatterns.com) by Steve Schoger\n * @framerDisableUnlink\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 600\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function BackgroundPattern(props){const{patternType=\"cross\",patternColor=\"#0540E3\",backgroundColor=\"transparent\",patternSize=40,patternOpacity=.4,strokeWidth=3,dotSize=1.2,gap=15,fade=true,fadeIntensity=90,fadeShape=\"circle\",style}=props;// Encode the color for use in SVG data URL\n// This ensures special characters in color values don't break the URL\nconst encodedPatternColor=useMemo(()=>encodeURIComponent(patternColor),[patternColor]);// Generate mask style for radial fade effect\n// Uses both standard and webkit prefixed properties for browser compatibility\nconst maskStyle=useMemo(()=>{if(!fade)return{};const gradientShape=fadeShape===\"ellipse\"?\"ellipse at top\":\"circle\";return{maskImage:`radial-gradient(${gradientShape}, white 10%, transparent ${fadeIntensity}%)`,WebkitMaskImage:`radial-gradient(${gradientShape}, white 10%, transparent ${fadeIntensity}%)`};},[fade,fadeIntensity,fadeShape]);// 1. Generate Cross pattern SVG\nconst crossPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' viewBox='0 0 40 40'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath d='M0 38.59l2.83-2.83 1.41 1.41L1.41 40H0v-1.41zM0 1.4l2.83 2.83 1.41-1.41L1.41 0H0v1.41zM38.59 40l-2.83-2.83 1.41-1.41L40 38.59V40h-1.41zM40 1.41l-2.83 2.83-1.41-1.41L38.59 0H40v1.41zM20 18.6l2.83-2.83 1.41 1.41L21.41 20l2.83 2.83-1.41 1.41L20 21.41l-2.83 2.83-1.41-1.41L18.59 20l-2.83-2.83 1.41-1.41L20 18.59z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 2. Generate Grid pattern SVG\nconst gridPatternSVG=useMemo(()=>{const svg=`<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' stroke='${patternColor}' stroke-width='${strokeWidth}' fill-opacity='${patternOpacity}'><path d='M 100 0 L 100 200'/><path d='M 0 100 L 200 100'/></svg>`;return`url(\"data:image/svg+xml;utf8,${encodeURIComponent(svg)}\")`;},[patternColor,strokeWidth,patternOpacity]);// 3. Generate Dots pattern SVG\nconst dotsPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg width='${gap}' height='${gap}' viewBox='0 0 ${gap} ${gap}' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}' fill-rule='evenodd'%3E%3Ccircle cx='${dotSize}' cy='${dotSize}' r='${dotSize}'/%3E%3C/g%3E%3C/svg%3E\")`,[gap,dotSize,encodedPatternColor,patternOpacity]);// 4. Generate Plus pattern SVG\nconst plusPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg width='${patternSize}' height='${patternSize}' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 5. Generate Zigzag pattern SVG\nconst zigzagPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize/2}' viewBox='0 0 20 12'%3E%3Cg fill-rule='evenodd'%3E%3Cg id='charlie-brown' fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath d='M9.8 12L0 2.2V.8l10 10 10-10v1.4L10.2 12h-.4zm-4 0L0 6.2V4.8L7.2 12H5.8zm8.4 0L20 6.2V4.8L12.8 12h1.4zM9.8 0l.2.2.2-.2h-.4zm-4 0L10 4.2 14.2 0h-1.4L10 2.8 7.2 0H5.8z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 6. Generate Waves pattern SVG\nconst wavesPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize/2}' viewBox='0 0 52 26'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath d='M10 10c0-2.21-1.79-4-4-4-3.314 0-6-2.686-6-6h2c0 2.21 1.79 4 4 4 3.314 0 6 2.686 6 6 0 2.21 1.79 4 4 4 3.314 0 6 2.686 6 6 0 2.21 1.79 4 4 4v2c-3.314 0-6-2.686-6-6 0-2.21-1.79-4-4-4-3.314 0-6-2.686-6-6zm25.464-1.95l8.486 8.486-1.414 1.414-8.486-8.486 1.414-1.414z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 7. Generate Triangles pattern SVG\nconst trianglesPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize*.866}' viewBox='0 0 12 16'%3E%3Cpath fill='${encodedPatternColor}' fill-opacity='${patternOpacity}' d='M4 .99L0 8h8l-4-7.01zM12 15L8 8h8l-4 7z'/%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 8. Generate Hexagons pattern SVG\nconst hexagonsPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize*1.4}' height='${patternSize*1.4}' viewBox='0 0 28 49'%3E%3Cg fill-rule='evenodd'%3E%3Cg id='hexagons' fill='${encodedPatternColor}' fill-opacity='${patternOpacity}' fill-rule='nonzero'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.31h-.01L17 42.15V49h-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 9. Generate Bricks pattern SVG (MOVED HERE after Hexagons)\nconst bricksPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg width='${patternSize}' height='${patternSize*1.05}' viewBox='0 0 42 44' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='Page-1' fill='none' fill-rule='evenodd'%3E%3Cg id='brick-wall' fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath d='M0 0h42v44H0V0zm1 1h40v20H1V1zM0 23h20v20H0V23zm22 0h20v20H22V23z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]// Add patternSize to dependencies\n);// 10. Generate Diagonal Grid Lines pattern SVG (WITH STROKE WIDTH CONTROL)\nconst diagonalGridPatternSVG=useMemo(()=>{const svg=`<svg width='${patternSize}' height='${patternSize}' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'><g fill='none' stroke='${patternColor}' stroke-width='${strokeWidth}' stroke-opacity='${patternOpacity}' stroke-linecap='square'><path d='M0 40L40 0'/><path d='M0 0L40 40'/></g></svg>`;return`url(\"data:image/svg+xml;utf8,${encodeURIComponent(svg)}\")`;},[patternSize,patternColor,strokeWidth,patternOpacity]);// 11. Generate Diagonal Line pattern SVG (NEW - Single diagonal with stroke width)\nconst diagonalPatternSVG=useMemo(()=>{const svg=`<svg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' viewBox='0 0 ${patternSize} ${patternSize}' fill='none'><line x1='0' y1='${patternSize}' x2='${patternSize}' y2='0' stroke='${patternColor}' stroke-width='${strokeWidth}' stroke-opacity='${patternOpacity}' stroke-linecap='square'/><line x1='-${patternSize}' y1='${patternSize}' x2='0' y2='0' stroke='${patternColor}' stroke-width='${strokeWidth}' stroke-opacity='${patternOpacity}' stroke-linecap='square'/><line x1='${patternSize}' y1='${patternSize}' x2='${patternSize*2}' y2='0' stroke='${patternColor}' stroke-width='${strokeWidth}' stroke-opacity='${patternOpacity}' stroke-linecap='square'/></svg>`;return`url(\"data:image/svg+xml;utf8,${encodeURIComponent(svg)}\")`;},[patternSize,patternColor,strokeWidth,patternOpacity]);// 12. Generate Diagonal Dots pattern SVG (NEW - Dotted diagonal effect)\nconst diagonalDotsPatternSVG=useMemo(()=>{const svg=`<svg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' fill='none' overflow='visible'><path d='M 0 ${patternSize} L ${patternSize} 0' fill='transparent' stroke-width='${strokeWidth}' stroke='${patternColor}' stroke-linecap='square' stroke-miterlimit='10' stroke-opacity='${patternOpacity}' stroke-dasharray=''></path></svg>`;return`url(\"data:image/svg+xml;utf8,${encodeURIComponent(svg)}\")`;},[patternSize,patternColor,strokeWidth,patternOpacity]);// 13. Generate Diamonds pattern SVG\nconst diamondsPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' viewBox='0 0 20 20'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath d='M10 0l10 10-10 10L0 10 10 0zm0 2.828L2.828 10 10 17.172 17.172 10 10 2.828z'/%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 14. Generate Circles pattern SVG\nconst circlesPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' viewBox='0 0 80 80'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Ccircle cx='40' cy='40' r='20'/%3E%3Ccircle cx='0' cy='0' r='20'/%3E%3Ccircle cx='0' cy='80' r='20'/%3E%3Ccircle cx='80' cy='0' r='20'/%3E%3Ccircle cx='80' cy='80' r='20'/%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 15. Generate Overlapping Circles pattern SVG\nconst overlappingPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' viewBox='0 0 80 80'%3E%3Cg fill='none' stroke='${encodedPatternColor}' stroke-opacity='${patternOpacity}' stroke-width='${strokeWidth}'%3E%3Ccircle cx='40' cy='40' r='40'/%3E%3Ccircle cx='0' cy='40' r='40'/%3E%3Ccircle cx='80' cy='40' r='40'/%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity,strokeWidth]// Add strokeWidth to dependencies\n);// 16. Generate Signal pattern SVG\nconst signalPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg width='${patternSize}' height='${patternSize}' viewBox='0 0 84 48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h12v6H0V0zm28 8h12v6H28V8zm14-8h12v6H42V0zm14 0h12v6H56V0zm0 8h12v6H56V8zM42 8h12v6H42V8zm0 16h12v6H42v-6zm14-8h12v6H56v-6zm14 0h12v6H70v-6zm0-16h12v6H70V0zM28 32h12v6H28v-6zM14 16h12v6H14v-6zM0 24h12v6H0v-6zm0 8h12v6H0v-6zm14 0h12v6H14v-6zm14 8h12v6H28v-6zm-14 0h12v6H14v-6zm28 0h12v6H42v-6zm14-8h12v6H56v-6zm0-8h12v6H56v-6zm14 8h12v6H70v-6zm0 8h12v6H70v-6zM14 24h12v6H14v-6zm14-8h12v6H28v-6zM14 8h12v6H14V8zM0 8h12v6H0V8z' fill='${encodedPatternColor}' fill-opacity='${patternOpacity}' fill-rule='evenodd'/%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 17. Generate Architect pattern SVG\nconst architectPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' viewBox='0 0 20 20'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath d='M0 0h20L0 20z'/%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 18. Generate Stars pattern SVG\nconst starsPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' viewBox='0 0 80 80'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath d='M20 10l2 6h6l-5 4 2 6-5-4-5 4 2-6-5-4h6l2-6zm40 0l2 6h6l-5 4 2 6-5-4-5 4 2-6-5-4h6l2-6zM0 50l2 6h6l-5 4 2 6-5-4-5 4 2-6-5-4h6l2-6zm40 0l2 6h6l-5 4 2 6-5-4-5 4 2-6-5-4h6l2-6zm40 0l2 6h6l-5 4 2 6-5-4-5 4 2-6-5-4h6l2-6z'/%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 19. Generate XO pattern SVG (MOVED HERE after Stars)\nconst xoPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg width='${patternSize}' height='${patternSize}' viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 16c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zm0-2c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zm33.414-6l5.95-5.95L45.95.636 40 6.586 34.05.636 32.636 2.05 38.586 8l-5.95 5.95 1.414 1.414L40 9.414l5.95 5.95 1.414-1.414L41.414 8zM40 48c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zm0-2c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zM9.414 40l5.95-5.95-1.414-1.414L8 38.586l-5.95-5.95L.636 34.05 6.586 40l-5.95 5.95 1.414 1.414L8 41.414l5.95 5.95 1.414-1.414L9.414 40z' fill='${encodedPatternColor}' fill-opacity='${patternOpacity}' fill-rule='evenodd'/%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 20. Generate Texture pattern SVG\nconst texturePatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize/2}' height='${patternSize/2}' viewBox='0 0 4 4'%3E%3Cpath fill='${encodedPatternColor}' fill-opacity='${patternOpacity}' d='M1 3h1v1H1V3zm2-2h1v1H3V1z'/%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 21. Generate Checkerboard pattern SVG\nconst checkerboardPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize}' viewBox='0 0 8 8'%3E%3Cg fill='${encodedPatternColor}' fill-opacity='${patternOpacity}'%3E%3Cpath fill-rule='evenodd' d='M0 0h4v4H0V0zm4 4h4v4H4V4z'/%3E%3C/g%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// 22. Generate Hideout pattern SVG\nconst hideoutPatternSVG=useMemo(()=>`url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${patternSize}' height='${patternSize*.866}' viewBox='0 0 12 16'%3E%3Cpath fill='${encodedPatternColor}' fill-opacity='${patternOpacity}' d='M4 .99C4 .445 4.444 0 5 0c.552 0 1 .45 1 .99v4.02C6 5.555 5.556 6 5 6c-.552 0-1-.45-1-.99V.99zm6 8c0-.546.444-.99 1-.99.552 0 1 .45 1 .99v4.02c0 .546-.444.99-1 .99-.552 0-1-.45-1-.99V8.99z'/%3E%3C/svg%3E\")`,[patternSize,encodedPatternColor,patternOpacity]);// Select the appropriate pattern based on patternType\nconst getPatternImage=useMemo(()=>{switch(patternType){case\"grid\":return gridPatternSVG;case\"dots\":return dotsPatternSVG;case\"bricks\":return bricksPatternSVG;case\"plus\":return plusPatternSVG;case\"xo\":return xoPatternSVG;case\"zigzag\":return zigzagPatternSVG;case\"waves\":return wavesPatternSVG;case\"triangles\":return trianglesPatternSVG;case\"hexagons\":return hexagonsPatternSVG;case\"diagonalGrid\":return diagonalGridPatternSVG;case\"diagonal\":return diagonalPatternSVG;case\"diagonalDots\":return diagonalDotsPatternSVG;case\"diamonds\":return diamondsPatternSVG;case\"circles\":return circlesPatternSVG;case\"overlapping\":return overlappingPatternSVG;case\"signal\":return signalPatternSVG;case\"architect\":return architectPatternSVG;case\"stars\":return starsPatternSVG;case\"texture\":return texturePatternSVG;case\"checkerboard\":return checkerboardPatternSVG;case\"hideout\":return hideoutPatternSVG;case\"cross\":default:return crossPatternSVG;}},[patternType,crossPatternSVG,gridPatternSVG,dotsPatternSVG,bricksPatternSVG,plusPatternSVG,xoPatternSVG,zigzagPatternSVG,wavesPatternSVG,trianglesPatternSVG,hexagonsPatternSVG,diagonalGridPatternSVG,diagonalPatternSVG,diamondsPatternSVG,circlesPatternSVG,overlappingPatternSVG,signalPatternSVG,architectPatternSVG,starsPatternSVG,texturePatternSVG,checkerboardPatternSVG,hideoutPatternSVG]);// Determine background size based on pattern type\nconst getBackgroundSize=useMemo(()=>{if(patternType===\"grid\"){return`${patternSize}px`;}return undefined;},[patternType,patternSize]);// Generate the complete background style with SVG pattern\nconst backgroundStyle=useMemo(()=>({backgroundColor,backgroundImage:getPatternImage,backgroundRepeat:\"repeat\",backgroundSize:getBackgroundSize,...maskStyle}),[backgroundColor,getPatternImage,getBackgroundSize,maskStyle,style]);// Render as a motion.div for potential animation support\nreturn /*#__PURE__*/_jsx(motion.div,{style:{position:\"relative\",inset:0,width:style?.width||600,height:style?.height||600,pointerEvents:\"none\",...backgroundStyle,...style}});}// Set display name for better debugging in React DevTools\nBackgroundPattern.displayName=\"Background Pattern\";// Default props ensure component works out of the box\nBackgroundPattern.defaultProps={patternType:\"cross\",patternColor:\"#0540E3\",backgroundColor:\"transparent\",patternSize:40,patternOpacity:.4,strokeWidth:3,dotSize:1.2,gap:15,fade:true,fadeIntensity:90,fadeShape:\"circle\"};/**\n * Property Controls define the UI in Framer's properties panel\n * Organized into logical groups for better UX\n */addPropertyControls(BackgroundPattern,{// Pattern type selection\npatternType:{type:ControlType.Enum,title:\"Pattern Type\",options:[\"cross\",\"grid\",\"dots\",\"plus\",\"zigzag\",\"waves\",\"triangles\",\"hexagons\",\"bricks\",\"diagonalGrid\",\"diagonal\",\"diagonalDots\",\"diamonds\",\"circles\",\"overlapping\",\"signal\",\"architect\",\"stars\",\"xo\",\"texture\",\"checkerboard\",\"hideout\"],optionTitles:[\"Cross\",\"Grid\",\"Dots\",\"Plus\",\"Zigzag\",\"Waves\",\"Triangles\",\"Hexagons\",\"Bricks\",\"Diagonal Grid\",\"Diagonal\",\"Diagonal Dots\",\"Diamonds\",\"Circles\",\"Overlapping\",\"Signal\",\"Architect\",\"Stars\",\"X & O\",\"Texture\",\"Checkerboard\",\"Hideout\"],defaultValue:\"cross\",displaySegmentedControl:false},// Pattern appearance controls\npatternColor:{type:ControlType.Color,title:\"Pattern Color\",defaultValue:\"#0540E3\"},patternOpacity:{type:ControlType.Number,title:\"Pattern Opacity\",defaultValue:.4,min:0,max:1,step:.05,displayStepper:true},patternSize:{type:ControlType.Number,title:\"Pattern Size\",defaultValue:40,min:10,max:200,step:5,unit:\"px\",displayStepper:true,description:\"Controls the overall size of the pattern\"},// Stroke width control for Grid, Diagonal Grid, and Diagonal patterns\nstrokeWidth:{type:ControlType.Number,title:\"Stroke Width\",defaultValue:3,min:1,max:10,step:.5,unit:\"px\",displayStepper:true,hidden:props=>props.patternType!==\"grid\"&&props.patternType!==\"diagonalGrid\"&&props.patternType!==\"diagonal\"&&props.patternType!==\"diagonalDots\"&&props.patternType!==\"overlapping\",description:\"Controls the thickness of lines\"},// Dots-specific controls\ndotSize:{type:ControlType.Number,title:\"Dot Size\",defaultValue:1.2,min:.5,max:10,step:.1,unit:\"px\",displayStepper:true,hidden:props=>props.patternType!==\"dots\",description:\"Controls the radius of each dot\"},gap:{type:ControlType.Number,title:\"Dot Gap\",defaultValue:15,min:5,max:50,step:1,unit:\"px\",displayStepper:true,hidden:props=>props.patternType!==\"dots\",description:\"Controls spacing between dots\"},// Background controls\nbackgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"transparent\"},// Fade effect controls\nfade:{type:ControlType.Boolean,title:\"Fade Effect\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Made with ❤️ by [Soyeb](https://framer.link/MBYIDPK)\"},fadeShape:{type:ControlType.Enum,title:\"Fade Shape\",options:[\"circle\",\"ellipse\"],optionTitles:[\"Circle\",\"Ellipse\"],defaultValue:\"circle\",displaySegmentedControl:true,hidden:props=>props.fade===false},fadeIntensity:{type:ControlType.Number,title:\"Fade Intensity\",defaultValue:90,min:50,max:100,step:5,unit:\"%\",displayStepper:true,hidden:props=>props.fade===false,description:\"Controls how far the fade extends from center.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BackgroundPattern\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicHeight\":\"600\",\"framerDisableUnlink\":\"* @framerIntrinsicWidth 600\",\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Background_Pattern.map","// User request: Create a standalone Framer code component that renders two lines of text with a Pixel Lines-style printer-scan reveal using staggered horizontal cover bands, with mount/in-view trigger options and full property controls.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{startTransition,useCallback,useEffect,useId,useLayoutEffect,useMemo,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";// Cap throwaway cover bands so a full-viewport loader doesn't spawn hundreds of\n// animated <rect>s. Normal text-sized usage never reaches this.\nconst MAX_BANDS=160;const defaultPrinterFont={fontSelector:\"CUSTOMV2;Geist Pixel\",fontSize:\"109px\",textAlignment:\"center\",letterSpacing:\"0em\",lineHeight:\"100%\"};/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function PrinterScanText(props){const{text=\"\",text1=\"I'M LUIS ACCORSI\",text2=\"AI-NATIVE DESIGNER\",font=defaultPrinterFont,textColor=\"#000000\",coverColor=\"#ffffff\",effect=\"Printer Scan\",stripeHeight=2.3,gap=2.3,stagger=.015,duration=.5,flicker=true,delay=.1,trigger=\"On Mount\",// Default to Solid Cover: Transparent Mask uses SVG <foreignObject>, which\n// renders in Canvas/Preview but is dropped on PUBLISHED Framer sites.\nrevealStyle=\"Solid Cover\",initialState=\"Hidden\",easing=\"Default\",customEasing=\"cubic-bezier(0.34, 1.56, 0.64, 1)\",skeleton=false,skeletonColor=\"rgba(100,100,100,0.35)\",autoHide=false,holdDuration=.5,fadeDuration=.4,unmountOnHide=true,showOnce=false,sessionKey=\"framer:loader-shown\",emitCompleteEvent=true,completeEventName=\"framer:loader-complete\"}=props;// Dismiss timers must NEVER run on the Framer editor canvas, or the component\n// unmounts itself while the designer is configuring it.\nconst isCanvas=RenderTarget.current()===RenderTarget.canvas;const autoHideActive=autoHide&&!isCanvas;const rootRef=useRef(null);// Do NOT use Math.random() for mask IDs — it causes hydration mismatches in Preview/published.\n// useId() is deterministic across SSR + client hydration.\nconst stableId=useId();const maskId=useMemo(()=>`printer-scan-text-mask-${stableId.replace(/[:]/g,\"\")}`,[stableId]);const[measuredSize,setMeasuredSize]=useState(null);const[shouldRun,setShouldRun]=useState(trigger===\"On Mount\");const[reduceMotion,setReduceMotion]=useState(false);const[keyframesReady,setKeyframesReady]=useState(false);const[keyframeTimeoutReveal,setKeyframeTimeoutReveal]=useState(false);// Self-dismiss lifecycle: revealComplete -> hiding (fade) -> gone/collapsed.\nconst[revealComplete,setRevealComplete]=useState(false);const[hiding,setHiding]=useState(false);const[collapsed,setCollapsed]=useState(false);// Init false on both server and client (reading sessionStorage in a lazy\n// initializer would cause an SSR/hydration mismatch). The \"show once\" skip\n// runs post-hydration in an effect below.\nconst[gone,setGone]=useState(false);// Notify the Hero hand-off: set a synchronous global flag AND dispatch the\n// event, so the override reveals whether its listener registered before or\n// after us (order-independent).\nconst notifyComplete=useCallback(()=>{if(typeof window===\"undefined\")return;try{window.__framerLoaderComplete=true;}catch(_error){}if(emitCompleteEvent){try{window.dispatchEvent(new CustomEvent(completeEventName));}catch(_error){}}},[emitCompleteEvent,completeEventName]);const svgWidth=measuredSize?.width??400;const svgHeight=measuredSize?.height??220;const safeStripeHeight=Math.max(.1,stripeHeight);const safeGap=Math.max(0,gap);const cycle=Math.max(.1,safeStripeHeight+safeGap);const safeDuration=Math.max(.1,duration);const safeStagger=Math.max(0,stagger);const safeDelay=Math.max(0,delay);const useIsomorphicLayoutEffect=typeof window!==\"undefined\"?useLayoutEffect:useEffect;useIsomorphicLayoutEffect(()=>{if(typeof document===\"undefined\"){startTransition(()=>setKeyframesReady(false));return;}const styleId=\"printer-scan-text-keyframes\";if(!document.getElementById(styleId)){// Keep keyframes at document level (not inside SVG <style>) so Preview/export does not strip them.\nconst styleEl=document.createElement(\"style\");styleEl.id=styleId;styleEl.textContent=`\n                @keyframes pstRevealBand {\n                    from { transform: scaleX(1); opacity: 1; }\n                    to { transform: scaleX(0); opacity: 0; }\n                }\n                @keyframes pstRevealBandFlicker {\n                    0%   { transform: scaleX(1);    opacity: 1; }\n                    22%  { transform: scaleX(0.72); opacity: 0.65; }\n                    38%  { transform: scaleX(0.48); opacity: 0.45; }\n                    55%  { transform: scaleX(0.28); opacity: 0.28; }\n                    74%  { transform: scaleX(0.12); opacity: 0.12; }\n                    100% { transform: scaleX(0);    opacity: 0; }\n                }\n                @keyframes pstDotMatrix {\n                    0%   { transform: scaleX(1);    opacity: 1; }\n                    18%  { transform: scaleX(0.82); opacity: 0.5; }\n                    30%  { transform: scaleX(0.7);  opacity: 0.85; }\n                    46%  { transform: scaleX(0.52); opacity: 0.4; }\n                    62%  { transform: scaleX(0.36); opacity: 0.7; }\n                    80%  { transform: scaleX(0.16); opacity: 0.25; }\n                    100% { transform: scaleX(0);    opacity: 0; }\n                }\n                @keyframes pstThermal {\n                    from { transform: scaleY(1); opacity: 1; }\n                    to   { transform: scaleY(0); opacity: 0; }\n                }\n                @keyframes pstInkStamp {\n                    0%   { opacity: 0; transform: scale(1.06) rotate(-1.2deg); filter: blur(3px); }\n                    60%  { opacity: 1; transform: scale(0.99) rotate(0.3deg); filter: blur(0.4px); }\n                    100% { opacity: 1; transform: scale(1) rotate(0deg);     filter: blur(0); }\n                }\n            `;document.head.appendChild(styleEl);}startTransition(()=>setKeyframesReady(true));},[]);useEffect(()=>{if(typeof window===\"undefined\")return;if(initialState!==\"Hidden\"||reduceMotion||trigger!==\"On Mount\"){startTransition(()=>setKeyframeTimeoutReveal(false));return;}if(keyframesReady){startTransition(()=>setKeyframeTimeoutReveal(false));return;}const timeout=window.setTimeout(()=>{// Anti-lock fallback: if keyframes never become ready in a broken runtime,\n// force end-state visibility so text is never permanently hidden.\nstartTransition(()=>setKeyframeTimeoutReveal(true));},1200);return()=>window.clearTimeout(timeout);},[initialState,keyframesReady,reduceMotion,trigger]);useEffect(()=>{if(typeof window===\"undefined\"||typeof window.matchMedia!==\"function\")return;const media=window.matchMedia(\"(prefers-reduced-motion: reduce)\");startTransition(()=>setReduceMotion(media.matches));const onChange=event=>{startTransition(()=>setReduceMotion(event.matches));};if(typeof media.addEventListener===\"function\"){media.addEventListener(\"change\",onChange);return()=>media.removeEventListener(\"change\",onChange);}if(typeof media.addListener===\"function\"){media.addListener(onChange);return()=>media.removeListener(onChange);}return;},[]);useEffect(()=>{if(trigger===\"On Mount\"){startTransition(()=>setShouldRun(true));return;}if(typeof window===\"undefined\"||!rootRef.current){startTransition(()=>setShouldRun(false));return;}const maybeIO=window.IntersectionObserver;if(!maybeIO){// Fallback: if IntersectionObserver is unavailable in Preview/static runtime,\n// run the reveal instead of getting stuck waiting forever.\nstartTransition(()=>setShouldRun(true));return;}const observer=new maybeIO(entries=>{if(entries[0]?.isIntersecting){startTransition(()=>setShouldRun(true));observer.disconnect();}},{threshold:.08});observer.observe(rootRef.current);return()=>observer.disconnect();},[trigger]);useEffect(()=>{const target=rootRef.current;if(!target)return;if(typeof ResizeObserver===\"undefined\"){// Fallback so SVG size is still usable even without ResizeObserver.\nconst rect=target.getBoundingClientRect();if(rect.width>0&&rect.height>0){startTransition(()=>setMeasuredSize({width:rect.width,height:rect.height}));}return;}const ro=new ResizeObserver(entries=>{const entry=entries[0];if(!entry)return;const{width:w,height:h}=entry.contentRect;if(w>0&&h>0){startTransition(()=>setMeasuredSize({width:w,height:h}));}});ro.observe(target);return()=>ro.disconnect();},[]);// Cap the band count; when capped, widen each band so they still fully tile\n// the height (no holes), preserving complete coverage with fewer nodes.\nconst{bandCount,bandCycle}=useMemo(()=>{const ideal=Math.ceil(svgHeight/cycle)+4;if(ideal<=MAX_BANDS){return{bandCount:Math.max(1,ideal),bandCycle:cycle};}// (MAX_BANDS - 4) bands cover svgHeight, the remaining 4 are overscan.\nconst effective=svgHeight/Math.max(1,MAX_BANDS-4)+.5;return{bandCount:MAX_BANDS,bandCycle:effective};},[svgHeight,cycle]);// Ink Stamp is the only effect that doesn't use cover bands — it animates\n// the text layer itself (whole-word press), so it gets its own render path.\nconst isInkStamp=effect===\"Ink Stamp\";// Per-effect band config: keyframe name, timing, transform origin, the\n// hidden-start transform, whether it's a single full-height band (carriage\n// wipe), and whether to add deterministic per-band jitter (dot-matrix).\nconst bandCfg=useMemo(()=>{switch(effect){case\"Dot-Matrix\":return{name:\"pstDotMatrix\",timing:\"steps(10, end)\",origin:\"right center\",hidden:\"scaleX(1)\",single:false,jitter:true};case\"Thermal Sweep\":return{name:\"pstThermal\",timing:\"linear\",origin:\"center top\",hidden:\"scaleY(1)\",single:false,jitter:false};case\"Carriage Wipe\":return{name:\"pstRevealBand\",timing:\"linear\",origin:\"right center\",hidden:\"scaleX(1)\",single:true,jitter:false};case\"Printer Scan\":default:return{name:flicker?\"pstRevealBandFlicker\":\"pstRevealBand\",timing:\"steps(6, end)\",origin:\"right center\",hidden:\"scaleX(1)\",single:false,jitter:false};}},[effect,flicker]);const easingMap={Linear:\"linear\",Ease:\"ease\",\"Ease In\":\"ease-in\",\"Ease Out\":\"ease-out\",\"Ease In Out\":\"ease-in-out\",Snappy:\"cubic-bezier(0.4, 0, 0.2, 1)\",Bouncy:\"cubic-bezier(0.34, 1.56, 0.64, 1)\",Custom:customEasing||\"linear\"};const resolvedTiming=easing===\"Default\"?bandCfg.timing:easingMap[easing]??bandCfg.timing;const loopCount=bandCfg.single?1:bandCount;// Up to 4 lines from the multiline `text` field; falls back to the legacy\n// text1/text2 fields when `text` is empty.\nconst lines=useMemo(()=>{const raw=String(text??\"\").replace(/\\r\\n?/g,\"\\n\");let arr=raw.length?raw.split(\"\\n\"):[];while(arr.length&&arr[arr.length-1].trim()===\"\")arr.pop();if(arr.length===0){arr=[text1??\"\",text2??\"\"].filter(l=>(l??\"\").trim()!==\"\");}return arr.slice(0,4);},[text,text1,text2]);const animateBands=shouldRun&&!reduceMotion&&keyframesReady;const prefersHiddenStart=initialState===\"Hidden\";const shouldShowHiddenStart=prefersHiddenStart&&!reduceMotion&&!keyframeTimeoutReveal&&(trigger===\"On Mount\"&&!animateBands||trigger===\"On View\"&&!shouldRun&&keyframesReady);// Mark reveal complete once the last band's animation would have finished.\n// Clock starts when the reveal actually BEGINS (shouldRun), not at mount, so\n// an \"On View\" instance never dismisses before it has revealed.\nuseEffect(()=>{if(typeof window===\"undefined\")return;if(!shouldRun)return;// Ink Stamp and the single-band Carriage Wipe have no per-band stagger.\nconst staggerUnits=isInkStamp||bandCfg.single?0:Math.max(0,bandCount-1)*safeStagger;const revealMs=reduceMotion?0:(safeDelay+staggerUnits+safeDuration)*1e3;const timer=window.setTimeout(()=>{startTransition(()=>setRevealComplete(true));},revealMs);return()=>window.clearTimeout(timer);},[shouldRun,reduceMotion,safeDelay,bandCount,safeStagger,safeDuration,isInkStamp,bandCfg.single]);// Hold the fully-revealed art, then start the fade-out.\nuseEffect(()=>{if(typeof window===\"undefined\")return;if(!autoHideActive||!revealComplete)return;const timer=window.setTimeout(()=>startTransition(()=>setHiding(true)),Math.max(0,holdDuration)*1e3);return()=>window.clearTimeout(timer);},[autoHideActive,revealComplete,holdDuration]);// After the fade completes: persist the session flag, emit the hand-off\n// event, then either unmount (free RAM/GPU) or collapse to display:none.\nuseEffect(()=>{if(typeof window===\"undefined\")return;if(!hiding)return;const timer=window.setTimeout(()=>{try{window.sessionStorage.setItem(sessionKey,\"1\");}catch(_error){}notifyComplete();startTransition(()=>{if(unmountOnHide)setGone(true);else setCollapsed(true);});},Math.max(0,fadeDuration)*1e3);return()=>window.clearTimeout(timer);},[hiding,fadeDuration,unmountOnHide,sessionKey,emitCompleteEvent,completeEventName]);// \"Show once\": skip post-hydration (not in the useState initializer, which\n// would mismatch SSR). Mark + notify synchronously so the Hero override sees\n// the global flag even if its listener registers after we dispatch.\nuseEffect(()=>{if(!showOnce||isCanvas||typeof window===\"undefined\")return;let already=false;try{already=!!window.sessionStorage.getItem(sessionKey);}catch(_error){}if(!already)return;notifyComplete();startTransition(()=>setGone(true));// eslint-disable-next-line react-hooks/exhaustive-deps\n},[]);const textLayerStyle=useMemo(()=>({position:\"relative\",width:\"100%\",...font,color:textColor,whiteSpace:\"pre-line\"}),[font,textColor]);if(gone)return null;// One cover band. `single` (carriage wipe) spans the full height; otherwise\n// each band is one cycle tall. Dot-Matrix adds deterministic jitter.\n// `alwaysHide`: SVG mask path — bands must cover from frame 0 regardless of\n// initialState, because invisible bands leave text visible through the mask.\nconst renderBand=(i,fill,alwaysHide=false)=>{const single=bandCfg.single;const y=single?0:i*bandCycle;const h=single?svgHeight:bandCycle;const jitter=bandCfg.jitter?i*37%13/13*safeStagger:0;const animationDelay=(single?safeDelay:safeDelay+i*safeStagger)+jitter;const style=animateBands?{transformBox:\"fill-box\",transformOrigin:bandCfg.origin,animation:`${bandCfg.name} ${safeDuration}s ${resolvedTiming} ${animationDelay}s both`}:alwaysHide||shouldShowHiddenStart?{transform:bandCfg.hidden,opacity:1}:{transform:\"scaleX(0)\",opacity:0};return /*#__PURE__*/_jsx(\"rect\",{x:0,y:y,width:svgWidth,height:h,fill:fill,style:style},i);};// Bands are dropped once revealed (frees all <rect>s).\nconst bands=(fill,alwaysHide=false)=>!revealComplete&&Array.from({length:loopCount}).map((_,i)=>renderBand(i,fill,alwaysHide));const renderedLines=lines.map((line,i)=>/*#__PURE__*/_jsx(\"div\",{children:line===\"\"?\"\\xa0\":line},i));// Ink Stamp animates the text layer itself instead of using cover bands.\nconst inkStampTextStyle=animateBands?{transformBox:\"fill-box\",animation:`pstInkStamp ${safeDuration}s cubic-bezier(0.2, 0.8, 0.2, 1) ${safeDelay}s both`}:shouldShowHiddenStart?{opacity:0}:{opacity:1};// SVG text metrics for the Transparent Mask path (SVG <text> replaces HTML).\nconst svgFontSizePx=Math.max(1,parseFloat(String(font?.fontSize??\"109\")));const svgLhRaw=String(font?.lineHeight??\"100%\");const svgLhFactor=svgLhRaw.includes(\"%\")?parseFloat(svgLhRaw)/100:parseFloat(svgLhRaw)||1;const svgLineHeightPx=svgFontSizePx*svgLhFactor;const svgFirstLineY=(svgHeight-lines.length*svgLineHeightPx)/2+svgFontSizePx*.82;const svgAlignRaw=font?.textAlignment??\"center\";const svgTextAnchor=svgAlignRaw===\"right\"?\"end\":svgAlignRaw===\"left\"?\"start\":\"middle\";const svgTextX=svgAlignRaw===\"right\"?svgWidth:svgAlignRaw===\"left\"?0:svgWidth/2;return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,style:{position:\"relative\",width:\"100%\",height:\"100%\",display:collapsed?\"none\":\"flex\",alignItems:\"center\",justifyContent:\"center\",// Ink Stamp overshoots scale + blur past the text box; the band\n// effects need clipping. Switch per effect.\noverflow:isInkStamp?\"visible\":\"hidden\",opacity:hiding?0:1,transition:autoHideActive?`opacity ${Math.max(0,fadeDuration)}s ease`:undefined,pointerEvents:hiding?\"none\":undefined},children:[skeleton&&!gone&&/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":true,style:{position:\"absolute\",inset:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",overflow:\"hidden\",opacity:revealComplete?0:1,transition:\"opacity 0.4s ease\",pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"div\",{style:{...textLayerStyle,color:skeletonColor},children:renderedLines})}),isInkStamp?/*#__PURE__*/_jsx(\"div\",{style:{...textLayerStyle,...inkStampTextStyle},children:renderedLines}):revealStyle===\"Transparent Mask\"?// SVG <text> masked by SVG <mask> attribute — no <foreignObject>, no CSS\n// mask on HTML. SVG-to-SVG masking is the most stable cross-browser path\n// and survives Framer's static export. Background shows through the\n// transparent (black-masked) regions.\n/*#__PURE__*/_jsxs(\"svg\",{width:\"100%\",height:\"100%\",viewBox:`0 0 ${svgWidth} ${svgHeight}`,preserveAspectRatio:\"none\",style:{display:\"block\",overflow:\"visible\",// Hide until ResizeObserver fires so we never paint the\n// distorted pre-measurement frame (wrong viewBox dimensions).\n// visibility:hidden keeps layout space; won't affect RO on rootRef.\nvisibility:measuredSize?\"visible\":\"hidden\"},children:[/*#__PURE__*/_jsx(\"defs\",{children:/*#__PURE__*/_jsxs(\"mask\",{id:maskId,maskUnits:\"userSpaceOnUse\",x:0,y:0,width:svgWidth,height:svgHeight,children:[/*#__PURE__*/_jsx(\"rect\",{x:0,y:0,width:svgWidth,height:svgHeight,fill:\"white\"}),bands(\"black\",true)]})}),/*#__PURE__*/_jsx(\"text\",{x:svgTextX,y:svgFirstLineY,textAnchor:svgTextAnchor,mask:`url(#${maskId})`,style:{...font,fill:textColor},children:lines.map((line,i)=>/*#__PURE__*/_jsx(\"tspan\",{x:svgTextX,dy:i===0?0:svgLineHeightPx,children:line||\"\\xa0\"},i))})]}):/*#__PURE__*/_jsxs(\"div\",{style:textLayerStyle,children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",zIndex:1},children:renderedLines}),/*#__PURE__*/_jsx(\"svg\",{\"aria-hidden\":true,width:\"100%\",height:\"100%\",viewBox:`0 0 ${svgWidth} ${svgHeight}`,preserveAspectRatio:\"none\",style:{position:\"absolute\",inset:0,pointerEvents:\"none\",zIndex:2,display:\"block\",overflow:\"visible\"},children:bands(coverColor)})]})]});}addPropertyControls(PrinterScanText,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"\",displayTextArea:true,placeholder:\"One line per row (up to 4)\",description:\"Up to 4 lines. Leave empty to use the legacy Text 1/2.\"},text1:{type:ControlType.String,title:\"Text 1\",defaultValue:\"I'M LUIS ACCORSI\",hidden:props=>!!(props.text&&props.text.trim())},text2:{type:ControlType.String,title:\"Text 2\",defaultValue:\"AI-NATIVE DESIGNER\",hidden:props=>!!(props.text&&props.text.trim())},effect:{type:ControlType.Enum,title:\"Effect\",defaultValue:\"Printer Scan\",options:[\"Printer Scan\",\"Dot-Matrix\",\"Thermal Sweep\",\"Ink Stamp\",\"Carriage Wipe\"],description:\"Reveal style. Ink Stamp presses the whole word in.\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultValue:defaultPrinterFont},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#000000\"},coverColor:{type:ControlType.Color,title:\"Cover\",defaultValue:\"#ffffff\",hidden:props=>props.effect===\"Ink Stamp\"||props.revealStyle!==\"Solid Cover\"},revealStyle:{type:ControlType.Enum,title:\"Reveal Style\",defaultValue:\"Solid Cover\",options:[\"Solid Cover\",\"Transparent Mask\"],description:\"Solid Cover overlays colored bands (set Cover to match your background). Transparent Mask reveals through the background — works with images, gradients, and patterns.\",hidden:props=>props.effect===\"Ink Stamp\"},initialState:{type:ControlType.Enum,title:\"Initial State\",defaultValue:\"Hidden\",options:[\"Hidden\",\"Visible\"]},stripeHeight:{type:ControlType.Number,title:\"Stripe H\",defaultValue:2.3,min:.1,step:.1,hidden:props=>props.effect===\"Ink Stamp\"||props.effect===\"Carriage Wipe\"},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:2.3,min:0,step:.1,hidden:props=>props.effect===\"Ink Stamp\"||props.effect===\"Carriage Wipe\"},stagger:{type:ControlType.Number,title:\"Stagger\",defaultValue:.015,min:0,step:.005,hidden:props=>props.effect===\"Ink Stamp\"||props.effect===\"Carriage Wipe\"},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:.5,min:.1,step:.1},flicker:{type:ControlType.Boolean,title:\"Flicker\",defaultValue:true,hidden:props=>props.effect&&props.effect!==\"Printer Scan\"},delay:{type:ControlType.Number,title:\"Delay\",defaultValue:.1,min:0,step:.05},trigger:{type:ControlType.Enum,title:\"Trigger\",defaultValue:\"On Mount\",options:[\"On Mount\",\"On View\"]},easing:{type:ControlType.Enum,title:\"Easing\",defaultValue:\"Default\",options:[\"Default\",\"Linear\",\"Ease\",\"Ease In\",\"Ease Out\",\"Ease In Out\",\"Snappy\",\"Bouncy\",\"Custom\"],description:\"Override the band animation timing. Default keeps each effect's built-in curve.\"},customEasing:{type:ControlType.String,title:\"Custom Curve\",defaultValue:\"cubic-bezier(0.34, 1.56, 0.64, 1)\",description:\"Any valid CSS timing function, e.g. cubic-bezier(0.2, 0, 0, 1).\",hidden:props=>props.easing!==\"Custom\"},skeleton:{type:ControlType.Boolean,title:\"Skeleton\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Show faded gray text instantly, before the reveal animation loads.\"},skeletonColor:{type:ControlType.Color,title:\"Skeleton Color\",defaultValue:\"rgba(100,100,100,0.35)\",hidden:props=>!props.skeleton},autoHide:{type:ControlType.Boolean,title:\"Auto Hide\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Dismiss after the reveal completes. Total on-screen time ≈ skeleton + reveal + Hold + Fade.\"},holdDuration:{type:ControlType.Number,title:\"Hold\",defaultValue:.5,min:0,max:20,step:.1,unit:\"s\",description:\"Seconds the revealed text lingers before fading out.\",hidden:props=>!props.autoHide},fadeDuration:{type:ControlType.Number,title:\"Fade Out\",defaultValue:.4,min:0,max:5,step:.1,unit:\"s\",hidden:props=>!props.autoHide},unmountOnHide:{type:ControlType.Boolean,title:\"Remove From DOM\",defaultValue:true,enabledTitle:\"Unmount\",disabledTitle:\"Hide\",description:\"Fully remove the node after fading (frees RAM/GPU).\",hidden:props=>!props.autoHide},showOnce:{type:ControlType.Boolean,title:\"Show Once\",defaultValue:false,description:\"Skip instantly if already shown this browser session.\"},sessionKey:{type:ControlType.String,title:\"Session Key\",defaultValue:\"framer:loader-shown\",description:\"Share across both loader parts so they count as one.\",hidden:props=>!props.showOnce},emitCompleteEvent:{type:ControlType.Boolean,title:\"Emit Event\",defaultValue:true,description:\"Fire the hand-off event on dismiss. Enable on only ONE loader part.\"},completeEventName:{type:ControlType.String,title:\"Event Name\",defaultValue:\"framer:loader-complete\",description:\"Must match the Hero override's event name.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PrinterScanText\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PrinterScanText.map"],"mappings":"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"}