{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/ryHSmrRczEUyOzpZ2Hws/IKPdqbFZ1OmRsxUhTxoL/DandoraRollingText_1.js"],
  "sourcesContent": ["// Vertically rolling text for \"DANDORA.\" in Poppins, fully responsive, all letters and animation scale with parent size, blue dot static, spacing 0\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,useIsStaticRenderer}from\"framer\";const poppinsUrl=\"https://fonts.googleapis.com/css2?family=Poppins:wght@700&display=swap\";const LETTERS=[{char:\"D\",color:\"#fff\"},{char:\"A\",color:\"#fff\"},{char:\"N\",color:\"#fff\"},{char:\"D\",color:\"#fff\"},{char:\"O\",color:\"#fff\"},{char:\"R\",color:\"#fff\"},{char:\"A\",color:\"#fff\"}];const DOT={char:\".\",color:\"#007AFF\"};/**\n * Vertically rolling text for DANDORA. with 9-stack per letter, fully responsive, resizes to parent, blue dot static, spacing 0\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function DandoraRollingText(props){const isStatic=useIsStaticRenderer();const duration=1.2;const stackCount=9;const containerRef=useRef(null);const[containerHeight,setContainerHeight]=useState(200);const[containerWidth,setContainerWidth]=useState(1e3);// Unique animation name per mount\nconst[animId]=useState(()=>Math.random().toString(36).slice(2,10));const[playAnim,setPlayAnim]=useState(false);useEffect(()=>{if(typeof window===\"undefined\")return;let observer=null;function handleIntersect(entries){if(entries[0].isIntersecting&&entries[0].intersectionRatio===1){setPlayAnim(true);}else{setPlayAnim(false);}}if(containerRef.current&&window.IntersectionObserver){observer=new window.IntersectionObserver(handleIntersect,{threshold:1});observer.observe(containerRef.current);}else{// fallback: always play\nsetPlayAnim(true);}return()=>{if(observer&&containerRef.current)observer.unobserve(containerRef.current);};},[]);useEffect(()=>{if(typeof window!==\"undefined\"){if(!document.getElementById(\"poppins-font\")){const link=document.createElement(\"link\");link.id=\"poppins-font\";link.rel=\"stylesheet\";link.href=poppinsUrl;document.head.appendChild(link);}}},[]);// Use ResizeObserver to get parent height and width for scaling\nuseEffect(()=>{function update(){if(containerRef.current){setContainerHeight(containerRef.current.offsetHeight);setContainerWidth(containerRef.current.offsetWidth);}}update();let ro=null;if(typeof window!==\"undefined\"&&window.ResizeObserver){ro=new window.ResizeObserver(update);ro.observe(containerRef.current);}else if(typeof window!==\"undefined\"){window.addEventListener&&window.addEventListener(\"resize\",update);}return()=>{if(ro)ro.disconnect();if(typeof window!==\"undefined\"){window.removeEventListener&&window.removeEventListener(\"resize\",update);}};},[]);// Responsive font size based on both width and height\n// The original design is 208px font size for 250px height, so ratio is ~0.83\n// There are 7 letters and 1 dot. Letter width is 0.8*fontSize, O is 0.9*fontSize, dot is 0.4*fontSize\nconst letterCount=7;const dotCount=1;const letterWidthRatio=.8;const oWidthRatio=.9;const dotWidthRatio=.4;const totalWidthRatio=6*letterWidthRatio+oWidthRatio+dotWidthRatio;// fontSize by height\nconst fontSizeByHeight=containerHeight*.83;// fontSize by width\nconst fontSizeByWidth=containerWidth/totalWidthRatio;// Use the smaller font size to fit both width and height\nconst fontSize=Math.min(fontSizeByHeight,fontSizeByWidth);// Use the widest letter width for all letters (monospace effect)\n// Set letter width ratio for minimal spacing without overlap\nconst tightLetterWidthRatio=.68;const tightOWidthRatio=.75;const widestLetterWidth=Math.max(fontSize*tightLetterWidthRatio,fontSize*tightOWidthRatio);const dotWidth=fontSize*dotWidthRatio;const centerIndex=Math.floor(stackCount/2);return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{display:\"flex\",flexDirection:\"row\",alignItems:\"center\",justifyContent:\"center\",background:\"transparent\",width:\"100%\",height:\"100%\",position:\"relative\",gap:0,boxSizing:\"border-box\",overflow:\"hidden\"},children:[LETTERS.map((l,i)=>{const direction=i%2===0?1:-1;const stack=Array.from({length:stackCount},(_,j)=>/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",fontFamily:\"Poppins, Arial, sans-serif\",fontWeight:700,fontSize:fontSize,color:l.color,lineHeight:1,letterSpacing:0,textAlign:\"center\",userSelect:\"none\",height:fontSize,width:widestLetterWidth,margin:0,padding:0},\"aria-hidden\":j!==centerIndex,children:l.char},j));const translateYStart=0;const translateYEnd=direction>0?centerIndex*fontSize*-1:centerIndex*fontSize;const anim=isStatic||!playAnim?{transform:`translateY(${translateYStart}px)`}:{animation:`rollStack${direction>0?\"Down\":\"Up\"}-${animId} ${duration*1.2}s cubic-bezier(0.77,0,0.18,1) 0s 1 forwards`};return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",height:fontSize*1.1,width:widestLetterWidth,overflow:\"hidden\",margin:0,padding:0},children:/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",height:fontSize*1.1,width:\"100%\",...anim,margin:0,padding:0},children:stack})},i);}),/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",fontFamily:\"Poppins, Arial, sans-serif\",fontWeight:700,fontSize:fontSize,color:DOT.color,lineHeight:1,letterSpacing:0,textAlign:\"center\",userSelect:\"none\",height:fontSize,width:dotWidth,margin:0,padding:0,alignItems:\"center\",justifyContent:\"center\"},children:DOT.char}),/*#__PURE__*/_jsx(\"style\",{children:`\n                @keyframes rollStackDown-${animId} {\n                    0% { transform: translateY(0); }\n                    100% { transform: translateY(-${centerIndex*fontSize}px); }\n                }\n                @keyframes rollStackUp-${animId} {\n                    0% { transform: translateY(0); }\n                    100% { transform: translateY(${centerIndex*fontSize}px); }\n                }\n            `})]});}addPropertyControls(DandoraRollingText,{});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DandoraRollingText\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DandoraRollingText_1.map"],
  "mappings": "4HACkK,IAAMA,EAAW,yEAA+EC,EAAQ,CAAC,CAAC,KAAK,IAAI,MAAM,MAAM,EAAE,CAAC,KAAK,IAAI,MAAM,MAAM,EAAE,CAAC,KAAK,IAAI,MAAM,MAAM,EAAE,CAAC,KAAK,IAAI,MAAM,MAAM,EAAE,CAAC,KAAK,IAAI,MAAM,MAAM,EAAE,CAAC,KAAK,IAAI,MAAM,MAAM,EAAE,CAAC,KAAK,IAAI,MAAM,MAAM,CAAC,EAAQC,EAAI,CAAC,KAAK,IAAI,MAAM,SAAS,EAKrc,SAARC,EAAoCC,EAAM,CAAC,IAAMC,EAASC,EAAoB,EAAQC,EAAS,IAAUC,EAAW,EAAQC,EAAaC,EAAO,IAAI,EAAO,CAACC,EAAgBC,CAAkB,EAAEC,EAAS,GAAG,EAAO,CAACC,EAAeC,CAAiB,EAAEF,EAAS,GAAG,EACvQ,CAACG,CAAM,EAAEH,EAAS,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAO,CAACI,EAASC,CAAW,EAAEL,EAAS,EAAK,EAAEM,EAAU,IAAI,CAAC,GAAG,OAAOC,EAAS,IAAY,OAAO,IAAIC,EAAS,KAAK,SAASC,EAAgBC,EAAQ,CAAIA,EAAQ,CAAC,EAAE,gBAAgBA,EAAQ,CAAC,EAAE,oBAAoB,EAAGL,EAAY,EAAI,EAAQA,EAAY,EAAK,CAAG,CAAC,OAAGT,EAAa,SAASW,EAAO,sBAAsBC,EAAS,IAAID,EAAO,qBAAqBE,EAAgB,CAAC,UAAU,CAAC,CAAC,EAAED,EAAS,QAAQZ,EAAa,OAAO,GACxeS,EAAY,EAAI,EAAS,IAAI,CAAIG,GAAUZ,EAAa,SAAQY,EAAS,UAAUZ,EAAa,OAAO,CAAE,CAAE,EAAE,CAAC,CAAC,EAAEU,EAAU,IAAI,CAAC,GAAG,OAAOC,EAAS,KAAgB,CAAC,SAAS,eAAe,cAAc,EAAE,CAAC,IAAMI,EAAK,SAAS,cAAc,MAAM,EAAEA,EAAK,GAAG,eAAeA,EAAK,IAAI,aAAaA,EAAK,KAAKxB,EAAW,SAAS,KAAK,YAAYwB,CAAI,CAAE,CAAE,EAAE,CAAC,CAAC,EAC/VL,EAAU,IAAI,CAAC,SAASM,GAAQ,CAAIhB,EAAa,UAASG,EAAmBH,EAAa,QAAQ,YAAY,EAAEM,EAAkBN,EAAa,QAAQ,WAAW,EAAG,CAACgB,EAAO,EAAE,IAAIC,EAAG,KAAK,OAAG,OAAON,EAAS,KAAaA,EAAO,gBAAgBM,EAAG,IAAIN,EAAO,eAAeK,CAAM,EAAEC,EAAG,QAAQjB,EAAa,OAAO,GAAW,OAAOW,EAAS,KAAaA,EAAO,kBAAkBA,EAAO,iBAAiB,SAASK,CAAM,EAAS,IAAI,CAAIC,GAAGA,EAAG,WAAW,EAAK,OAAON,EAAS,KAAaA,EAAO,qBAAqBA,EAAO,oBAAoB,SAASK,CAAM,CAAG,CAAE,EAAE,CAAC,CAAC,EAGjjB,IAAME,EAAY,EAAQC,EAAS,EAAQC,EAAiB,GAASC,EAAY,GAASC,EAAc,GAASC,EAAgB,EAAEH,EAAiBC,EAAYC,EAC1JE,EAAiBtB,EAAgB,IACjCuB,EAAgBpB,EAAekB,EAC/BG,EAAS,KAAK,IAAIF,EAAiBC,CAAe,EAESE,EAAkB,KAAK,IAAID,EAAhE,IAA+FA,EAApE,GAA6F,EAAQE,EAASF,EAASJ,EAAoBO,EAAY,KAAK,MAAM9B,EAAW,CAAC,EAAE,OAAoB+B,EAAM,MAAM,CAAC,IAAI9B,EAAa,MAAM,CAAC,QAAQ,OAAO,cAAc,MAAM,WAAW,SAAS,eAAe,SAAS,WAAW,cAAc,MAAM,OAAO,OAAO,OAAO,SAAS,WAAW,IAAI,EAAE,UAAU,aAAa,SAAS,QAAQ,EAAE,SAAS,CAACR,EAAQ,IAAI,CAACuC,EAAEC,IAAI,CAAC,IAAMC,EAAUD,EAAE,IAAI,EAAE,EAAE,GAASE,EAAM,MAAM,KAAK,CAAC,OAAOnC,CAAU,EAAE,CAACoC,EAAEC,IAAiBC,EAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,QAAQ,WAAW,6BAA6B,WAAW,IAAI,SAASX,EAAS,MAAMK,EAAE,MAAM,WAAW,EAAE,cAAc,EAAE,UAAU,SAAS,WAAW,OAAO,OAAOL,EAAS,MAAMC,EAAkB,OAAO,EAAE,QAAQ,CAAC,EAAE,cAAcS,IAAIP,EAAY,SAASE,EAAE,IAAI,EAAEK,CAAC,CAAC,EAAQE,EAAgB,EAAQC,EAAcN,EAAU,EAAEJ,EAAYH,EAAS,GAAGG,EAAYH,EAAec,EAAK5C,GAAU,CAACY,EAAS,CAAC,UAAU,cAAc8B,CAAe,KAAK,EAAE,CAAC,UAAU,YAAYL,EAAU,EAAE,OAAO,IAAI,IAAI1B,CAAM,IAAIT,EAAS,GAAG,6CAA6C,EAAE,OAAoBuC,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,cAAc,SAAS,WAAW,SAAS,eAAe,SAAS,OAAOX,EAAS,IAAI,MAAMC,EAAkB,SAAS,SAAS,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAsBU,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,cAAc,SAAS,WAAW,SAAS,eAAe,SAAS,OAAOX,EAAS,IAAI,MAAM,OAAO,GAAGc,EAAK,OAAO,EAAE,QAAQ,CAAC,EAAE,SAASN,CAAK,CAAC,CAAC,EAAEF,CAAC,CAAE,CAAC,EAAeK,EAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,QAAQ,WAAW,6BAA6B,WAAW,IAAI,SAASX,EAAS,MAAMjC,EAAI,MAAM,WAAW,EAAE,cAAc,EAAE,UAAU,SAAS,WAAW,OAAO,OAAOiC,EAAS,MAAME,EAAS,OAAO,EAAE,QAAQ,EAAE,WAAW,SAAS,eAAe,QAAQ,EAAE,SAASnC,EAAI,IAAI,CAAC,EAAe4C,EAAK,QAAQ,CAAC,SAAS;AAAA,2CAC14D9B,CAAM;AAAA;AAAA,oDAEGsB,EAAYH,CAAQ;AAAA;AAAA,yCAE/BnB,CAAM;AAAA;AAAA,mDAEIsB,EAAYH,CAAQ;AAAA;AAAA,aAE1D,CAAC,CAAC,CAAC,CAAC,CAAE,CAACe,EAAoB/C,EAAmB,CAAC,CAAC",
  "names": ["poppinsUrl", "LETTERS", "DOT", "DandoraRollingText", "props", "isStatic", "useIsStaticRenderer", "duration", "stackCount", "containerRef", "pe", "containerHeight", "setContainerHeight", "ye", "containerWidth", "setContainerWidth", "animId", "playAnim", "setPlayAnim", "ue", "window", "observer", "handleIntersect", "entries", "link", "update", "ro", "letterCount", "dotCount", "letterWidthRatio", "oWidthRatio", "dotWidthRatio", "totalWidthRatio", "fontSizeByHeight", "fontSizeByWidth", "fontSize", "widestLetterWidth", "dotWidth", "centerIndex", "u", "l", "i", "direction", "stack", "_", "j", "p", "translateYStart", "translateYEnd", "anim", "addPropertyControls"]
}
