{"version":3,"file":"shared-lib.CIdXICIV.mjs","names":["useRef","useState","useMemo"],"sources":["https:/framerusercontent.com/modules/vbaJXlyVEeIvuEevvudG/VCVuhA5gwjOBZ729Kxzm/UnicornStudioEmbed.js","https:/framerusercontent.com/modules/iBxQuxoh1dK95d2YD99s/ZLKbD1wLyZuPb1U6oxB9/siteMetadata.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useMemo,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";const VERSION=\"2.2.1\";function parseVariablesJSON(value){if(!value?.trim())return{};try{const parsed=JSON.parse(value);return parsed&&typeof parsed===\"object\"&&!Array.isArray(parsed)?parsed:{};}catch(error){console.warn(\"[UnicornStudioEmbed] Invalid Variables JSON\",error);return{};}}function getVariables(props){return{...parseVariablesJSON(props.initialVariables)};}/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicHeight 400\n * @framerIntrinsicWidth 800\n */export default function UnicornStudioEmbed(props){const userSdkVersion=props.sdkVersion?.trim();const sdkVersion=userSdkVersion||VERSION;const controlsEnabled=props.controls!==false;const initialPreset=props.preset?.trim()||\"\";const elementRef=useRef(null);const sceneRef=useRef(null);const unsubscribeVariablesRef=useRef(null);const scriptId=useRef(`unicorn-project-${Math.random().toString(36).substr(2,9)}`);const[versionError,setVersionError]=useState(null);const[latestVariablesJSON,setLatestVariablesJSON]=useState(props.initialVariables||\"\");const variables=useMemo(()=>getVariables(props),[props.initialVariables,props.variableControls]);const destroyRuntimeControls=(scene=sceneRef.current)=>{const element=elementRef.current;if(!element)return;const controlsApi=window.UnicornStudioControls;if(controlsApi?.initControls&&scene){try{const container=document.createElement(\"div\");controlsApi.initControls({scene,element,container})?.destroy?.();}catch(error){console.warn(\"[UnicornStudioEmbed] Failed to destroy controls\",error);}}element.querySelectorAll(\"[data-us-controls-root]\").forEach(node=>node.remove());};// simple semver check: 1.2.3\nconst isValidVersion=v=>/^\\d+\\.\\d+\\.\\d+(-[0-9A-Za-z.-]+)?$/.test(v.trim());useEffect(()=>{const isEditingOrPreviewing=[\"CANVAS\",\"PREVIEW\"].includes(RenderTarget.current());if(!isValidVersion(sdkVersion)){console.error(`[UnicornStudioEmbed] Invalid SDK version \"${sdkVersion}\". Expected format: x.y.z (e.g. 1.5.3)`);setVersionError(`Invalid SDK version \"${sdkVersion}\". Use x.y.z (e.g. 1.5.3).`);return;}setVersionError(null);const initializeScript=callback=>{const cdnPrefix=\"https://cdn.jsdelivr.net/gh/hiunicornstudio/unicornstudio.js\";const scriptSrc=`${cdnPrefix}@v${sdkVersion}/dist/unicornStudio.umd.js`;const existingScript=document.querySelector('script[src^=\"https://cdn.jsdelivr.net/gh/hiunicornstudio/unicornstudio.js\"]');if(!existingScript){const script=document.createElement(\"script\");script.src=scriptSrc;script.onload=callback;script.onerror=()=>console.error(\"Failed to load UnicornStudio script at \"+scriptSrc);document.body.appendChild(script);}else if(window.UnicornStudio){callback();}else{const waitForLoad=setInterval(()=>{if(window.UnicornStudio){clearInterval(waitForLoad);callback();}},100);}};const initializeUnicornStudio=()=>{if(props.projectJSON){const dataScript=document.createElement(\"script\");dataScript.id=scriptId.current;dataScript.type=\"application/json\";dataScript.textContent=props.projectJSON;document.body.appendChild(dataScript);elementRef.current?.setAttribute(\"data-us-project-src\",scriptId.current);}else if(props.projectId){const query=props.projectId.split(\"?\");const projectId=query[0];const production=query[1]&&query[1].includes(\"production\");const cacheBuster=isEditingOrPreviewing?\"?update=\"+Math.random():\"\";elementRef.current?.setAttribute(\"data-us-project\",projectId+cacheBuster);if(production){elementRef.current?.setAttribute(\"data-us-production\",\"1\");}}const US=window.UnicornStudio;if(!US||!elementRef.current)return;const existingScene=US.scenes?.find(s=>s.element===elementRef.current);if(existingScene){destroyRuntimeControls(existingScene);existingScene.destroy();}const args={element:elementRef.current,dpi:props.dpi,scale:props.scale,fps:props.fps,lazyLoad:!!props.lazyLoad,fixed:!!props.fixed,altText:props.altText,ariaLabel:props.ariaLabel,controls:controlsEnabled,initialPreset,initialVariables:variables};if(props.projectJSON){args.filePath=scriptId.current;}else{args.projectId=props.projectId;}US.addScene(args).then(scene=>{sceneRef.current=scene;setLatestVariablesJSON(JSON.stringify(scene.getVariables?.()||variables,null,2));unsubscribeVariablesRef.current=scene.onVariableChange?.((_name,_value,values)=>{setLatestVariablesJSON(JSON.stringify(values,null,2));});});};if(props.projectId||props.projectJSON){initializeScript(initializeUnicornStudio);}return()=>{unsubscribeVariablesRef.current?.();unsubscribeVariablesRef.current=null;destroyRuntimeControls();if(sceneRef.current){sceneRef.current.destroy();sceneRef.current=null;}const dataScript=document.getElementById(scriptId.current);if(dataScript)dataScript.remove();};},[props.projectId,props.projectJSON,sdkVersion,controlsEnabled,initialPreset]);useEffect(()=>{if(!sceneRef.current)return;sceneRef.current.setVariables?.(variables);setLatestVariablesJSON(JSON.stringify(variables,null,2));},[variables]);return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",position:\"relative\"},children:[/*#__PURE__*/_jsx(\"div\",{ref:elementRef,\"data-us-dpi\":props.dpi,\"data-us-scale\":props.scale,\"data-us-fps\":props.fps,\"data-us-altText\":props.altText,\"data-us-ariaLabel\":props.ariaLabel,\"data-us-preset\":initialPreset||undefined,\"data-us-controls\":controlsEnabled?\"true\":undefined,...props.lazyLoad?{\"data-us-lazyload\":\"true\"}:{},style:{width:\"100%\",height:\"100%\",...props.style},children:props.header&&/*#__PURE__*/_jsx(\"h1\",{style:{width:\"1px\",height:\"1px\",margin:\"-1px\",padding:\"0\",overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",border:\"0\"},children:props.header})}),versionError?/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:8,background:\"rgba(239, 68, 68, 0.12)\",border:\"1px solid rgba(239, 68, 68, 0.5)\",borderRadius:6,padding:\"8px 10px\",fontSize:12,color:\"#991B1B\",pointerEvents:\"none\"},children:versionError}):null]});}UnicornStudioEmbed.displayName=\"Unicorn Studio Embed\";addPropertyControls(UnicornStudioEmbed,{projectId:{type:ControlType.String,title:\"Project ID\"},projectJSON:{type:ControlType.String,title:\"Project JSON\"},sdkVersion:{type:ControlType.String,title:\"SDK version\",defaultValue:VERSION,placeholder:VERSION},preset:{type:ControlType.String,title:\"Preset\",placeholder:\"Brand Dark\"},initialVariables:{type:ControlType.String,title:\"Variables JSON\",displayTextArea:true,placeholder:'{\"accentColor\":\"#88bbff\",\"intensity\":0.75}'},controls:{type:ControlType.Boolean,title:\"Controls\",defaultValue:true},scale:{type:ControlType.Number,title:\"Scale\",defaultValue:1,min:.25,max:1,step:.01},dpi:{type:ControlType.Number,title:\"DPI\",defaultValue:1.5,min:.5,max:2,step:.1},fps:{type:ControlType.Number,title:\"FPS\",defaultValue:60,min:10,max:120,step:5},header:{type:ControlType.String,title:\"H1 text\"},altText:{type:ControlType.String,title:\"Alt text\"},ariaLabel:{type:ControlType.String,title:\"Aria label\"},lazyLoad:{type:ControlType.Boolean,title:\"Lazy Load\",defaultValue:false},fixed:{type:ControlType.Boolean,title:\"Fixed\",defaultValue:false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"UnicornStudioEmbed\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"800\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicHeight\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UnicornStudioEmbed.map","// Generated by Framer (005c846)\nexport default function metadata(params,activeLocale){return{description:\"GRIT Talent Consulting connects businesses with top offshore talent through strategic recruitment, seamless onboarding, and scalable workforce solutions.\",favicon:\"https://framerusercontent.com/assets/rW8dRQDrUCbMyDRpAUakznDkf0.png\",robots:\"max-image-preview:large\",title:\"GRIT Talent Consulting\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}